diff --git a/openbb_platform/core/openbb_core/app/static/package_builder/reference_generator.py b/openbb_platform/core/openbb_core/app/static/package_builder/reference_generator.py index cc0fc7bfd0f..283a9d7f121 100644 --- a/openbb_platform/core/openbb_core/app/static/package_builder/reference_generator.py +++ b/openbb_platform/core/openbb_core/app/static/package_builder/reference_generator.py @@ -602,7 +602,7 @@ class ReferenceGenerator: else str(param_type) ) description = default.description # type: ignore - json_extra = default.json_schema_extra # type: ignore + json_extra = default.json_schema_extra or {} # type: ignore has_default = hasattr(default, "default") and default.default not in [ Parameter.empty, PydanticUndefined, diff --git a/openbb_platform/core/tests/app/static/package_builder/test_docstring_generator_helpers.py b/openbb_platform/core/tests/app/static/package_builder/test_docstring_generator_helpers.py index 980fabc78ea..ff77867c589 100644 --- a/openbb_platform/core/tests/app/static/package_builder/test_docstring_generator_helpers.py +++ b/openbb_platform/core/tests/app/static/package_builder/test_docstring_generator_helpers.py @@ -1961,6 +1961,7 @@ def test_literal_choices_reads_bare_optional_and_non_literal_types(): ("list[typing.Optional[str]]", "list[str | None]"), ("", "str"), ("datetime.date", "date"), + ("typing.Optional[str", "Optional[str"), # Literal still collapses to str; duplicates still collapse ("typing.Optional[typing.Literal['a', 'b']]", "str | None"), ("typing.Union[typing.Literal['a'], typing.Literal['b']]", "str"),