context.pyi
 1  from typing import Any, Callable, Dict, Iterator, List, Optional, Type, Union, Iterable
 2  
 3  from django.http.request import HttpRequest
 4  from django.template.base import Node, Origin, Template
 5  from django.template.defaulttags import IfChangedNode
 6  from django.template.loader_tags import IncludeNode
 7  
 8  _ContextValues = Union[Dict[str, Any], "Context"]
 9  
10  class ContextPopException(Exception): ...
11  
12  class 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  
18  class 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  
36  class 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  
50  class 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  
55  class 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  
76  def make_context(context: Any, request: Optional[HttpRequest] = ..., **kwargs: Any) -> Context: ...