Browse Source

♻️ Make the result of `Depends` and `Security` hashable

pull/14372/head
Sebastián Ramírez 8 months ago
parent
commit
da0162b95c
  1. 3
      fastapi/dependencies/utils.py
  2. 4
      fastapi/params.py

3
fastapi/dependencies/utils.py

@ -1,3 +1,4 @@
import dataclasses
import inspect
from contextlib import AsyncExitStack, contextmanager
from copy import copy, deepcopy
@ -428,7 +429,7 @@ def analyze_param(
if depends is not None and depends.dependency is None:
# Copy `depends` before mutating it
depends = copy(depends)
depends.dependency = type_annotation
depends = dataclasses.replace(depends, dependency=type_annotation)
# Handle non-param type annotations like Request
if lenient_issubclass(

4
fastapi/params.py

@ -762,13 +762,13 @@ class File(Form): # type: ignore[misc]
)
@dataclass
@dataclass(frozen=True)
class Depends:
dependency: Optional[Callable[..., Any]] = None
use_cache: bool = True
scope: Union[Literal["function", "request"], None] = None
@dataclass
@dataclass(frozen=True)
class Security(Depends):
scopes: Optional[Sequence[str]] = None

Loading…
Cancel
Save