mirror of
https://github.com/fastapi/fastapi.git
synced 2026-09-14 13:36:21 +08:00
♻️ Make the result of Depends() and Security() hashable, as a workaround for other tools interacting with these internal parts (#14372)
This commit is contained in:
committed by
GitHub
parent
566e3157a5
commit
85701631a0
@@ -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(
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user