From 5fe7833bb74851ec3e99a03e7ee4462b9468c075 Mon Sep 17 00:00:00 2001 From: svlandeg Date: Thu, 12 Mar 2026 22:10:53 +0100 Subject: [PATCH] use Pydantic's try_eval_type if available (otherwise deprecation warning) --- fastapi/_compat/v2.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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):