Skip to content

Commit 17a9887

Browse files
authored
Merge pull request #2077 from rtmalikian/fix/issue-2076-bool-in-config-validation
fix: reject bool values in ConnectionConfig int validators (Fixes #2076)
2 parents 344590c + 1eb1442 commit 17a9887

2 files changed

Lines changed: 13 additions & 5 deletions

File tree

weaviate/config.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,27 @@ class ConnectionConfig:
1414
session_pool_timeout: int = 5
1515

1616
def __post_init__(self) -> None:
17-
if not isinstance(self.session_pool_connections, int):
17+
if not isinstance(self.session_pool_connections, int) or isinstance(
18+
self.session_pool_connections, bool
19+
):
1820
raise TypeError(
1921
f"session_pool_connections must be {int}, received {type(self.session_pool_connections)}"
2022
)
21-
if not isinstance(self.session_pool_maxsize, int):
23+
if not isinstance(self.session_pool_maxsize, int) or isinstance(
24+
self.session_pool_maxsize, bool
25+
):
2226
raise TypeError(
2327
f"session_pool_maxsize must be {int}, received {type(self.session_pool_maxsize)}"
2428
)
25-
if not isinstance(self.session_pool_max_retries, int):
29+
if not isinstance(self.session_pool_max_retries, int) or isinstance(
30+
self.session_pool_max_retries, bool
31+
):
2632
raise TypeError(
2733
f"session_pool_max_retries must be {int}, received {type(self.session_pool_max_retries)}"
2834
)
29-
if not isinstance(self.session_pool_timeout, int):
35+
if not isinstance(self.session_pool_timeout, int) or isinstance(
36+
self.session_pool_timeout, bool
37+
):
3038
raise TypeError(
3139
f"session_pool_timeout must be {int}, received {type(self.session_pool_timeout)}"
3240
)

weaviate/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -672,7 +672,7 @@ def _get_valid_timeout_config(
672672
"""
673673

674674
def check_number(num: Union[NUMBER, Tuple[NUMBER, NUMBER], None]) -> bool:
675-
return isinstance(num, float) or isinstance(num, int)
675+
return isinstance(num, float) or (isinstance(num, int) and not isinstance(num, bool))
676676

677677
if (isinstance(timeout_config, float) or isinstance(timeout_config, int)) and not isinstance(
678678
timeout_config, bool

0 commit comments

Comments
 (0)