Browse Source

Fix pre-commit and Python 3.14 test CI failures

- Remove duplicate _resolve_forward_ref_lenient function
- Use ForwardRef.evaluate() instead of deprecated _evaluate()
- Use frozenset() instead of set() for recursive_guard parameter
- Add noqa for E402 in test file (deliberate late import)
pull/15519/head
Codebuff Contributor 3 weeks ago
parent
commit
4c998f64db
  1. 19
      fastapi/dependencies/utils.py
  2. 2
      tests/test_annotated_forward_ref.py

19
fastapi/dependencies/utils.py

@ -254,19 +254,6 @@ def get_typed_annotation(annotation: Any, globalns: dict[str, Any]) -> Any:
return annotation
def _resolve_forward_ref_lenient(
fwd_ref: ForwardRef,
globalns: dict[str, Any],
) -> Any:
class _LenientNamespace(dict):
def __missing__(self, key: str) -> Any:
return Any
localns = _LenientNamespace(globalns)
result = fwd_ref._evaluate(globalns, localns, set())
return result
def _resolve_forward_ref_lenient(
fwd_ref: ForwardRef,
globalns: dict[str, Any],
@ -277,11 +264,11 @@ def _resolve_forward_ref_lenient(
localns = _LenientNamespace(globalns)
if sys.version_info >= (3, 13):
result = fwd_ref._evaluate(
globalns, localns, recursive_guard=set(), type_params=()
result = fwd_ref.evaluate(
globalns, localns, recursive_guard=frozenset(), type_params=()
)
else:
result = fwd_ref._evaluate(globalns, localns, recursive_guard=set())
result = fwd_ref.evaluate(globalns, localns, recursive_guard=frozenset())
return result

2
tests/test_annotated_forward_ref.py

@ -20,7 +20,7 @@ async def read_root(potato: Annotated[Potato, Depends(get_potato)]):
return {"color": potato.color, "size": potato.size}
from dataclasses import dataclass
from dataclasses import dataclass # noqa: E402
@dataclass

Loading…
Cancel
Save