diff --git a/src/openai/_models.py b/src/openai/_models.py index af71a91850..92dc0447c7 100644 --- a/src/openai/_models.py +++ b/src/openai/_models.py @@ -66,7 +66,7 @@ from ._constants import RAW_RESPONSE_HEADER if TYPE_CHECKING: - from pydantic_core.core_schema import ModelField, ModelSchema, LiteralSchema, ModelFieldsSchema + from pydantic_core.core_schema import ModelField, LiteralSchema __all__ = ["BaseModel", "GenericModel"] @@ -700,18 +700,19 @@ def _build_discriminated_union_meta(*, union: type, meta_annotations: tuple[Any, def _extract_field_schema_pv2(model: type[BaseModel], field_name: str) -> ModelField | None: schema = model.__pydantic_core_schema__ - if schema["type"] == "definitions": + schema_type = schema["type"] + if schema_type == "definitions": schema = schema["schema"] + schema_type = schema["type"] - if schema["type"] != "model": + if schema_type != "model": return None - schema = cast("ModelSchema", schema) fields_schema = schema["schema"] - if fields_schema["type"] != "model-fields": + fields_schema_type = fields_schema["type"] + if fields_schema_type != "model-fields": return None - fields_schema = cast("ModelFieldsSchema", fields_schema) field = fields_schema["fields"].get(field_name) if not field: return None