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]