diff --git a/pydantic/v1/typing.py b/pydantic/v1/typing.py index a690a053a26..c435fb11528 100644 --- a/pydantic/v1/typing.py +++ b/pydantic/v1/typing.py @@ -54,16 +54,16 @@ if sys.version_info < (3, 9): - def evaluate_forwardref(type_: ForwardRef, globalns: Any, localns: Any) -> Any: return type_._evaluate(globalns, localns) else: - def evaluate_forwardref(type_: ForwardRef, globalns: Any, localns: Any) -> Any: # Even though it is the right signature for python 3.9, mypy complains with # `error: Too many arguments for "_evaluate" of "ForwardRef"` hence the cast... - return cast(Any, type_)._evaluate(globalns, localns, set()) + # Note 3.13/3.12.4+ made `recursive_guard` a kwarg, so name it explicitly to avoid: + # TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: 'recursive_guard' + return cast(Any, type_)._evaluate(globalns, localns, recursive_guard=set()) if sys.version_info < (3, 9):