1from typing import Any, Callable, Dict, Iterator, List, Optional, Type, Union, Iterable 2 3from django.http.request import HttpRequest 4from django.template.base import Node, Origin, Template 5from django.template.defaulttags import IfChangedNode 6from django.template.loader_tags import IncludeNode 7 8_ContextValues = Union[Dict[str, Any], "Context"] 9 10class ContextPopException(Exception): ... 11 12class ContextDict(dict): 13 context: BaseContext = ... 14 def __init__(self, context: BaseContext, *args: Any, **kwargs: Any) -> None: ... 15 def __enter__(self) -> ContextDict: ... 16 def __exit__(self, *args: Any, **kwargs: Any) -> None: ... 17 18class BaseContext(Iterable[Any]): 19 def __init__(self, dict_: Any = ...) -> None: ... 20 def __copy__(self) -> BaseContext: ... 21 def __iter__(self) -> Iterator[Any]: ... 22 def push(self, *args: Any, **kwargs: Any) -> ContextDict: ... 23 def pop(self) -> ContextDict: ... 24 def __setitem__(self, key: Union[Node, str], value: Any) -> None: ... 25 def set_upward(self, key: str, value: Union[int, str]) -> None: ... 26 def __getitem__(self, key: Union[int, str]) -> Any: ... 27 def __delitem__(self, key: Any) -> None: ... 28 def __contains__(self, key: str) -> bool: ... 29 def get(self, key: str, otherwise: Optional[Any] = ...) -> Optional[Any]: ... 30 def setdefault( 31 self, key: Union[IfChangedNode, str], default: Optional[Union[List[Origin], int]] = ... 32 ) -> Optional[Union[List[Origin], int]]: ... 33 def new(self, values: Optional[_ContextValues] = ...) -> Context: ... 34 def flatten(self) -> Dict[str, Optional[Union[Dict[str, Union[Type[Any], str]], int, str]]]: ... 35 36class Context(BaseContext): 37 dicts: Any 38 autoescape: bool = ... 39 use_l10n: Optional[bool] = ... 40 use_tz: Optional[bool] = ... 41 template_name: Optional[str] = ... 42 render_context: RenderContext = ... 43 template: Optional[Template] = ... 44 def __init__( 45 self, dict_: Any = ..., autoescape: bool = ..., use_l10n: Optional[bool] = ..., use_tz: None = ... 46 ) -> None: ... 47 def bind_template(self, template: Template) -> Iterator[None]: ... 48 def update(self, other_dict: Union[Dict[str, Any], Context]) -> ContextDict: ... 49 50class RenderContext(BaseContext): 51 dicts: List[Dict[Union[IncludeNode, str], str]] 52 template: Optional[Template] = ... 53 def push_state(self, template: Template, isolated_context: bool = ...) -> Iterator[None]: ... 54 55class RequestContext(Context): 56 autoescape: bool 57 dicts: List[Dict[str, str]] 58 render_context: RenderContext 59 template_name: Optional[str] 60 use_l10n: None 61 use_tz: None 62 request: HttpRequest = ... 63 def __init__( 64 self, 65 request: HttpRequest, 66 dict_: Optional[Dict[str, Any]] = ..., 67 processors: Optional[List[Callable]] = ..., 68 use_l10n: None = ..., 69 use_tz: None = ..., 70 autoescape: bool = ..., 71 ) -> None: ... 72 template: Optional[Template] = ... 73 def bind_template(self, template: Template) -> Iterator[None]: ... 74 def new(self, values: Optional[_ContextValues] = ...) -> RequestContext: ... 75 76def make_context(context: Any, request: Optional[HttpRequest] = ..., **kwargs: Any) -> Context: ... 77