1from keyword import iskeyword as is_python_keyword
2from typing import Any
3
4from jinja2.visitor import NodeVisitor
5
6operators: Any
7dict_item_iter: str
8
9unoptimize_before_dead_code: bool
10
11def generate(node, environment, name, filename, stream: Any | None = ..., defer_init: bool = ...): ...
12def has_safe_repr(value): ...
13def find_undeclared(nodes, names): ...
14
15class Identifiers:
16    declared: Any
17    outer_undeclared: Any
18    undeclared: Any
19    declared_locally: Any
20    declared_parameter: Any
21    def __init__(self) -> None: ...
22    def add_special(self, name): ...
23    def is_declared(self, name): ...
24    def copy(self): ...
25
26class Frame:
27    eval_ctx: Any
28    identifiers: Any
29    toplevel: bool
30    rootlevel: bool
31    require_output_check: Any
32    buffer: Any
33    block: Any
34    assigned_names: Any
35    parent: Any
36    def __init__(self, eval_ctx, parent: Any | None = ...) -> None: ...
37    def copy(self): ...
38    def inspect(self, nodes): ...
39    def find_shadowed(self, extra: Any = ...): ...
40    def inner(self): ...
41    def soft(self): ...
42    __copy__: Any
43
44class VisitorExit(RuntimeError): ...
45
46class DependencyFinderVisitor(NodeVisitor):
47    filters: Any
48    tests: Any
49    def __init__(self) -> None: ...
50    def visit_Filter(self, node): ...
51    def visit_Test(self, node): ...
52    def visit_Block(self, node): ...
53
54class UndeclaredNameVisitor(NodeVisitor):
55    names: Any
56    undeclared: Any
57    def __init__(self, names) -> None: ...
58    def visit_Name(self, node): ...
59    def visit_Block(self, node): ...
60
61class FrameIdentifierVisitor(NodeVisitor):
62    identifiers: Any
63    def __init__(self, identifiers) -> None: ...
64    def visit_Name(self, node): ...
65    def visit_If(self, node): ...
66    def visit_Macro(self, node): ...
67    def visit_Import(self, node): ...
68    def visit_FromImport(self, node): ...
69    def visit_Assign(self, node): ...
70    def visit_For(self, node): ...
71    def visit_CallBlock(self, node): ...
72    def visit_FilterBlock(self, node): ...
73    def visit_AssignBlock(self, node): ...
74    def visit_Scope(self, node): ...
75    def visit_Block(self, node): ...
76
77class CompilerExit(Exception): ...
78
79class CodeGenerator(NodeVisitor):
80    environment: Any
81    name: Any
82    filename: Any
83    stream: Any
84    created_block_context: bool
85    defer_init: Any
86    import_aliases: Any
87    blocks: Any
88    extends_so_far: int
89    has_known_extends: bool
90    code_lineno: int
91    tests: Any
92    filters: Any
93    debug_info: Any
94    def __init__(self, environment, name, filename, stream: Any | None = ..., defer_init: bool = ...) -> None: ...
95    def fail(self, msg, lineno): ...
96    def temporary_identifier(self): ...
97    def buffer(self, frame): ...
98    def return_buffer_contents(self, frame): ...
99    def indent(self): ...
100    def outdent(self, step: int = ...): ...
101    def start_write(self, frame, node: Any | None = ...): ...
102    def end_write(self, frame): ...
103    def simple_write(self, s, frame, node: Any | None = ...): ...
104    def blockvisit(self, nodes, frame): ...
105    def write(self, x): ...
106    def writeline(self, x, node: Any | None = ..., extra: int = ...): ...
107    def newline(self, node: Any | None = ..., extra: int = ...): ...
108    def signature(self, node, frame, extra_kwargs: Any | None = ...): ...
109    def pull_locals(self, frame): ...
110    def pull_dependencies(self, nodes): ...
111    def unoptimize_scope(self, frame): ...
112    def push_scope(self, frame, extra_vars: Any = ...): ...
113    def pop_scope(self, aliases, frame): ...
114    def function_scoping(self, node, frame, children: Any | None = ..., find_special: bool = ...): ...
115    def macro_body(self, node, frame, children: Any | None = ...): ...
116    def macro_def(self, node, frame): ...
117    def position(self, node): ...
118    def visit_Template(self, node, frame: Any | None = ...): ...
119    def visit_Block(self, node, frame): ...
120    def visit_Extends(self, node, frame): ...
121    def visit_Include(self, node, frame): ...
122    def visit_Import(self, node, frame): ...
123    def visit_FromImport(self, node, frame): ...
124    def visit_For(self, node, frame): ...
125    def visit_If(self, node, frame): ...
126    def visit_Macro(self, node, frame): ...
127    def visit_CallBlock(self, node, frame): ...
128    def visit_FilterBlock(self, node, frame): ...
129    def visit_ExprStmt(self, node, frame): ...
130    def visit_Output(self, node, frame): ...
131    def make_assignment_frame(self, frame): ...
132    def export_assigned_vars(self, frame, assignment_frame): ...
133    def visit_Assign(self, node, frame): ...
134    def visit_AssignBlock(self, node, frame): ...
135    def visit_Name(self, node, frame): ...
136    def visit_Const(self, node, frame): ...
137    def visit_TemplateData(self, node, frame): ...
138    def visit_Tuple(self, node, frame): ...
139    def visit_List(self, node, frame): ...
140    def visit_Dict(self, node, frame): ...
141    def binop(self, interceptable: bool = ...): ...
142    def uaop(self, interceptable: bool = ...): ...
143    visit_Add: Any
144    visit_Sub: Any
145    visit_Mul: Any
146    visit_Div: Any
147    visit_FloorDiv: Any
148    visit_Pow: Any
149    visit_Mod: Any
150    visit_And: Any
151    visit_Or: Any
152    visit_Pos: Any
153    visit_Neg: Any
154    visit_Not: Any
155    def visit_Concat(self, node, frame): ...
156    def visit_Compare(self, node, frame): ...
157    def visit_Operand(self, node, frame): ...
158    def visit_Getattr(self, node, frame): ...
159    def visit_Getitem(self, node, frame): ...
160    def visit_Slice(self, node, frame): ...
161    def visit_Filter(self, node, frame): ...
162    def visit_Test(self, node, frame): ...
163    def visit_CondExpr(self, node, frame): ...
164    def visit_Call(self, node, frame, forward_caller: bool = ...): ...
165    def visit_Keyword(self, node, frame): ...
166    def visit_MarkSafe(self, node, frame): ...
167    def visit_MarkSafeIfAutoescape(self, node, frame): ...
168    def visit_EnvironmentAttribute(self, node, frame): ...
169    def visit_ExtensionAttribute(self, node, frame): ...
170    def visit_ImportedName(self, node, frame): ...
171    def visit_InternalName(self, node, frame): ...
172    def visit_ContextReference(self, node, frame): ...
173    def visit_Continue(self, node, frame): ...
174    def visit_Break(self, node, frame): ...
175    def visit_Scope(self, node, frame): ...
176    def visit_EvalContextModifier(self, node, frame): ...
177    def visit_ScopedEvalContextModifier(self, node, frame): ...
178