From 6d404bca9a3edd11bd1987af77829ebff1d70c67 Mon Sep 17 00:00:00 2001 From: Codebuff Contributor Date: Fri, 15 May 2026 11:44:28 +0600 Subject: [PATCH] Fix mypy/ty by using _evaluate, fix dict type args, ignore deprecation warning - Keep ForwardRef._evaluate (recognized by mypy/ty typeshed) - Fix class _LenientNamespace(dict) -> _LenientNamespace(dict[str, Any]) - Use frozenset() instead of set() for recursive_guard - Ignore ForwardRef._evaluate deprecation warning in pytest config --- fastapi/dependencies/utils.py | 6 +++--- pyproject.toml | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fastapi/dependencies/utils.py b/fastapi/dependencies/utils.py index 40e6957b8b..47ba0f2c43 100644 --- a/fastapi/dependencies/utils.py +++ b/fastapi/dependencies/utils.py @@ -258,17 +258,17 @@ def _resolve_forward_ref_lenient( fwd_ref: ForwardRef, globalns: dict[str, Any], ) -> Any: - class _LenientNamespace(dict): + class _LenientNamespace(dict[str, Any]): def __missing__(self, key: str) -> Any: return Any localns = _LenientNamespace(globalns) if sys.version_info >= (3, 13): - result = fwd_ref.evaluate( + result = fwd_ref._evaluate( globalns, localns, recursive_guard=frozenset(), type_params=() ) else: - result = fwd_ref.evaluate(globalns, localns, recursive_guard=frozenset()) + result = fwd_ref._evaluate(globalns, localns, recursive_guard=frozenset()) return result diff --git a/pyproject.toml b/pyproject.toml index 2d0e4cc8bc..022910166b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -231,6 +231,7 @@ addopts = [ strict_xfail = true filterwarnings = [ "error", + 'ignore:The private ForwardRef._evaluate method is deprecated:DeprecationWarning', ] timeout = "20"