25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 

38 satır
1.5 KiB

  1. from dataclasses import dataclass, field
  2. from typing import Any, Callable, List, Optional, Sequence, Tuple
  3. from fastapi._compat import ModelField
  4. from fastapi.security.base import SecurityBase
  5. @dataclass
  6. class SecurityRequirement:
  7. security_scheme: SecurityBase
  8. scopes: Optional[Sequence[str]] = None
  9. @dataclass
  10. class Dependant:
  11. path_params: List[ModelField] = field(default_factory=list)
  12. query_params: List[ModelField] = field(default_factory=list)
  13. header_params: List[ModelField] = field(default_factory=list)
  14. cookie_params: List[ModelField] = field(default_factory=list)
  15. body_params: List[ModelField] = field(default_factory=list)
  16. dependencies: List["Dependant"] = field(default_factory=list)
  17. security_requirements: List[SecurityRequirement] = field(default_factory=list)
  18. name: Optional[str] = None
  19. call: Optional[Callable[..., Any]] = None
  20. request_param_name: Optional[str] = None
  21. websocket_param_name: Optional[str] = None
  22. http_connection_param_name: Optional[str] = None
  23. response_param_name: Optional[str] = None
  24. background_tasks_param_name: Optional[str] = None
  25. security_scopes_param_name: Optional[str] = None
  26. security_scopes: Optional[List[str]] = None
  27. use_cache: bool = True
  28. path: Optional[str] = None
  29. cache_key: Tuple[Optional[Callable[..., Any]], Tuple[str, ...]] = field(init=False)
  30. def __post_init__(self) -> None:
  31. self.cache_key = (self.call, tuple(sorted(set(self.security_scopes or []))))