diff --git a/fastapi/_compat/v2.py b/fastapi/_compat/v2.py index 79fba93188..76acbe5c5d 100644 --- a/fastapi/_compat/v2.py +++ b/fastapi/_compat/v2.py @@ -22,10 +22,10 @@ from pydantic import BaseModel, ConfigDict, Field, TypeAdapter, create_model from pydantic import PydanticSchemaGenerationError as PydanticSchemaGenerationError from pydantic import PydanticUndefinedAnnotation as PydanticUndefinedAnnotation from pydantic import ValidationError as ValidationError +from pydantic._internal import _typing_extra as _pydantic_typing_extra from pydantic._internal._schema_generation_shared import ( # type: ignore[attr-defined] GetJsonSchemaHandler as GetJsonSchemaHandler, ) -from pydantic._internal._typing_extra import eval_type_lenient from pydantic.fields import FieldInfo as FieldInfo from pydantic.json_schema import GenerateJsonSchema as _GenerateJsonSchema from pydantic.json_schema import JsonSchemaValue as JsonSchemaValue @@ -38,7 +38,11 @@ from pydantic_core.core_schema import ( RequiredParam = PydanticUndefined Undefined = PydanticUndefined -evaluate_forwardref = eval_type_lenient + +# eval_type_lenient has been deprecated since Pydantic v2.10.0b1 (PR #10530) +evaluate_forwardref = getattr(_pydantic_typing_extra, "try_eval_type", None) +if evaluate_forwardref is None: + evaluate_forwardref = getattr(_pydantic_typing_extra, "eval_type_lenient") class GenerateJsonSchema(_GenerateJsonSchema):