MCPcopy
hub / github.com/fastapi/fastapi / Dependant

Class Dependant

fastapi/dependencies/models.py:32–193  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30
31@dataclass
32class Dependant:
33 path_params: list[ModelField] = field(default_factory=list)
34 query_params: list[ModelField] = field(default_factory=list)
35 header_params: list[ModelField] = field(default_factory=list)
36 cookie_params: list[ModelField] = field(default_factory=list)
37 body_params: list[ModelField] = field(default_factory=list)
38 dependencies: list["Dependant"] = field(default_factory=list)
39 name: str | None = None
40 call: Callable[..., Any] | None = None
41 request_param_name: str | None = None
42 websocket_param_name: str | None = None
43 http_connection_param_name: str | None = None
44 response_param_name: str | None = None
45 background_tasks_param_name: str | None = None
46 security_scopes_param_name: str | None = None
47 own_oauth_scopes: list[str] | None = None
48 parent_oauth_scopes: list[str] | None = None
49 use_cache: bool = True
50 path: str | None = None
51 scope: Literal["function", "request"] | None = None
52
53 @cached_property
54 def oauth_scopes(self) -> list[str]:
55 scopes = self.parent_oauth_scopes.copy() if self.parent_oauth_scopes else []
56 # This doesn't use a set to preserve order, just in case
57 for scope in self.own_oauth_scopes or []:
58 if scope not in scopes:
59 scopes.append(scope)
60 return scopes
61
62 @cached_property
63 def cache_key(self) -> DependencyCacheKey:
64 scopes_for_cache = (
65 tuple(sorted(set(self.oauth_scopes or []))) if self._uses_scopes else ()
66 )
67 return (
68 self.call,
69 scopes_for_cache,
70 self.computed_scope or "",
71 )
72
73 @cached_property
74 def _uses_scopes(self) -> bool:
75 if self.own_oauth_scopes:
76 return True
77 if self.security_scopes_param_name is not None:
78 return True
79 if self._is_security_scheme:
80 return True
81 for sub_dep in self.dependencies:
82 if sub_dep._uses_scopes:
83 return True
84 return False
85
86 @cached_property
87 def _is_security_scheme(self) -> bool:
88 if self.call is None:
89 return False # pragma: no cover

Callers 2

get_flat_dependantFunction · 0.90
get_dependantFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…