From a07534cfa4adae8db356d7fba7c7e6668de31df9 Mon Sep 17 00:00:00 2001 From: Danglewood <85772166+deeleeramone@users.noreply.github.com> Date: Wed, 22 Jul 2026 11:48:28 -0700 Subject: [PATCH] fix ty check failures exposed by newer version --- cli/openbb_cli/codegen/pydantic_gen.py | 18 ++++++++++-------- .../openbb_technical/indicators/statistics.py | 2 +- .../openbb_famafrench/utils/helpers.py | 2 ++ .../openbb_imf/models/balance_of_payments.py | 14 ++++++++++---- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/cli/openbb_cli/codegen/pydantic_gen.py b/cli/openbb_cli/codegen/pydantic_gen.py index 1550404f6fe..821dcf6b8f4 100644 --- a/cli/openbb_cli/codegen/pydantic_gen.py +++ b/cli/openbb_cli/codegen/pydantic_gen.py @@ -377,14 +377,16 @@ def _quick_schema_type(schema: dict[str, Any]) -> str: if schema_type == "object" or "properties" in schema: title = schema.get("title") return title or "object" - if schema_type in _PRIMITIVE_TYPES: - if schema_type == "string": - fmt = schema.get("format") - if fmt == "date": - return "date" - if fmt == "date-time": - return "datetime" - return _PRIMITIVE_TYPES[schema_type] + if isinstance(schema_type, str): + primitive_type = _PRIMITIVE_TYPES.get(schema_type) + if primitive_type is not None: + if schema_type == "string": + fmt = schema.get("format") + if fmt == "date": + return "date" + if fmt == "date-time": + return "datetime" + return primitive_type return "Any" diff --git a/openbb_platform/extensions/technical/openbb_technical/indicators/statistics.py b/openbb_platform/extensions/technical/openbb_technical/indicators/statistics.py index 117cfc9e659..3f9e4edec0d 100644 --- a/openbb_platform/extensions/technical/openbb_technical/indicators/statistics.py +++ b/openbb_platform/extensions/technical/openbb_technical/indicators/statistics.py @@ -566,7 +566,7 @@ def _kpss_block(values, regression: str) -> dict: from statsmodels.tsa.stattools import kpss - kpss_reg: Literal["c", "ct"] = "c" if regression not in {"c", "ct"} else regression # ty: ignore[invalid-assignment] + kpss_reg: Literal["c", "ct"] = "c" if regression not in {"c", "ct"} else regression with warnings.catch_warnings(): warnings.simplefilter("ignore") stat, pvalue, _, crit = kpss(values, regression=kpss_reg, nlags="auto") diff --git a/openbb_platform/providers/famafrench/openbb_famafrench/utils/helpers.py b/openbb_platform/providers/famafrench/openbb_famafrench/utils/helpers.py index 670bb95a60c..414b7786d70 100644 --- a/openbb_platform/providers/famafrench/openbb_famafrench/utils/helpers.py +++ b/openbb_platform/providers/famafrench/openbb_famafrench/utils/helpers.py @@ -553,6 +553,8 @@ def get_international_portfolio_data( with zipfile.ZipFile(BytesIO(response.content)) as f: filenames = f.namelist() + if index is None: + raise ValueError("Could not resolve portfolio index from input parameters.") if index in filenames: try: diff --git a/openbb_platform/providers/imf/openbb_imf/models/balance_of_payments.py b/openbb_platform/providers/imf/openbb_imf/models/balance_of_payments.py index 042cf7e6469..9b017908c4f 100644 --- a/openbb_platform/providers/imf/openbb_imf/models/balance_of_payments.py +++ b/openbb_platform/providers/imf/openbb_imf/models/balance_of_payments.py @@ -364,10 +364,16 @@ class ImfBalanceOfPaymentsFetcher( "debits_total_secondary_income", ) ] - if all(v is not None for v in credits_components): - bucket["credits_total"] = sum(credits_components) - if all(v is not None for v in debits_components): - bucket["debits_total"] = sum(debits_components) + credits_components_clean = [ + float(v) for v in credits_components if v is not None + ] + debits_components_clean = [ + float(v) for v in debits_components if v is not None + ] + if len(credits_components_clean) == 4: + bucket["credits_total"] = sum(credits_components_clean) + if len(debits_components_clean) == 4: + bucket["debits_total"] = sum(debits_components_clean) services_credits = bucket.get("credits_total_services") services_debits = bucket.get("debits_total_services")