From f302b2aa84cb73f01b4ed2c0865f344450ff145a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Ram=C3=ADrez?= Date: Thu, 30 Oct 2025 05:31:21 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20scope=20logic=20to=20Dependan?= =?UTF-8?q?t=20internal=20class?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastapi/dependencies/models.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fastapi/dependencies/models.py b/fastapi/dependencies/models.py index 418c11725..d0783c8f0 100644 --- a/fastapi/dependencies/models.py +++ b/fastapi/dependencies/models.py @@ -3,6 +3,7 @@ from typing import Any, Callable, List, Optional, Sequence, Tuple from fastapi._compat import ModelField from fastapi.security.base import SecurityBase +from typing_extensions import Literal @dataclass @@ -31,7 +32,12 @@ class Dependant: security_scopes: Optional[List[str]] = None use_cache: bool = True path: Optional[str] = None - cache_key: Tuple[Optional[Callable[..., Any]], Tuple[str, ...]] = field(init=False) + scope: Literal["function", "request"] = "request" + cache_key: Tuple[Optional[Callable[..., Any]], Tuple[str, ...], str] = field(init=False) def __post_init__(self) -> None: - self.cache_key = (self.call, tuple(sorted(set(self.security_scopes or [])))) + self.cache_key = ( + self.call, + tuple(sorted(set(self.security_scopes or []))), + self.scope, + )