fix: narrow pi numeric settings types
lint / lint (push) Successful in 1m46s
test / unit (pull_request) Successful in 33s
test / integration (pull_request) Successful in 18s

This commit is contained in:
2026-06-10 04:30:13 +00:00
parent 2bb74ad9be
commit 7562c8b3f0
+16 -5
View File
@@ -77,6 +77,19 @@ def _settings_value(
return default if value is None else value return default if value is None else value
def _settings_int(
settings: dict[str, object],
key: str,
default: int,
) -> int:
value = _settings_value(settings, key, default)
if isinstance(value, bool):
return default
if isinstance(value, (int, str)):
return int(value)
return default
def _pi_models_json( def _pi_models_json(
settings: dict[str, object], settings: dict[str, object],
) -> tuple[dict[str, object], str, str, list[str], str]: ) -> tuple[dict[str, object], str, str, list[str], str]:
@@ -98,12 +111,10 @@ def _pi_models_json(
max_tokens_field = str( max_tokens_field = str(
_settings_value(settings, "max_tokens_field", "max_tokens") _settings_value(settings, "max_tokens_field", "max_tokens")
) )
context_window = int(_settings_value( context_window = _settings_int(
settings, "context_window", _DEFAULT_CONTEXT_WINDOW, settings, "context_window", _DEFAULT_CONTEXT_WINDOW,
)) )
max_tokens = int(_settings_value( max_tokens = _settings_int(settings, "max_tokens", _DEFAULT_MAX_TOKENS)
settings, "max_tokens", _DEFAULT_MAX_TOKENS,
))
input_context_window = max(1, context_window - max_tokens) input_context_window = max(1, context_window - max_tokens)
provider: dict[str, object] = { provider: dict[str, object] = {
"baseUrl": base_url, "baseUrl": base_url,