From 0aaab36717da5efe3d03bd75a4875e396f8e30fb Mon Sep 17 00:00:00 2001 From: paksh1 Date: Sun, 21 Jun 2026 04:44:30 +0100 Subject: [PATCH] fix: handle bare list annotations in construct_type --- src/openai/_models.py | 3 +++ tests/test_models.py | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/openai/_models.py b/src/openai/_models.py index ed4c1f82d6..0550afc9b4 100644 --- a/src/openai/_models.py +++ b/src/openai/_models.py @@ -678,6 +678,9 @@ def construct_type(*, value: object, type_: object, metadata: Optional[List[Any] if not is_list(value): return value + if not args: + return value + inner_type = args[0] # List[inner_type] return [construct_type(value=entry, type_=inner_type) for entry in value] diff --git a/tests/test_models.py b/tests/test_models.py index cc204bac1d..e95a25effa 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -121,6 +121,10 @@ class NestedModel(BaseModel): assert cast(Any, m.nested) is False +def test_bare_list_type() -> None: + assert construct_type(value=[{"hello": "world"}], type_=list) == [{"hello": "world"}] + + def test_raw_dictionary() -> None: class NestedModel(BaseModel): nested: Dict[str, str]