Problem
In weaviate/config.py, the ConnectionConfig.__post_init__ method validates that session_pool_connections, session_pool_maxsize, session_pool_max_retries, and session_pool_timeout are int types using isinstance(x, int).
Since bool is a subclass of int in Python, isinstance(True, int) returns True. This means True and False pass validation for these fields:
from weaviate.config import ConnectionConfig
config = ConnectionConfig(session_pool_connections=True) # No error!
config.session_pool_connections # True (not a valid connection count)
Expected Behaviour
True/False should be rejected with a TypeError since they are not valid integer values for connection pool settings.
Proposed Fix
Add and not isinstance(x, bool) guard to each validation check:
if not isinstance(self.session_pool_connections, int) or isinstance(self.session_pool_connections, bool):
Affected Files
weaviate/config.py (lines 17, 21, 25, 29)
Problem
In
weaviate/config.py, theConnectionConfig.__post_init__method validates thatsession_pool_connections,session_pool_maxsize,session_pool_max_retries, andsession_pool_timeoutareinttypes usingisinstance(x, int).Since
boolis a subclass ofintin Python,isinstance(True, int)returnsTrue. This meansTrueandFalsepass validation for these fields:Expected Behaviour
True/Falseshould be rejected with aTypeErrorsince they are not valid integer values for connection pool settings.Proposed Fix
Add
and not isinstance(x, bool)guard to each validation check:Affected Files
weaviate/config.py(lines 17, 21, 25, 29)