1from typing import Any, Optional
2
3GETTEXT_FUNCTIONS: Any
4
5class ExtensionRegistry(type):
6    def __new__(cls, name, bases, d): ...
7
8class Extension:
9    tags: Any
10    priority: int
11    environment: Any
12    def __init__(self, environment) -> None: ...
13    def bind(self, environment): ...
14    def preprocess(self, source, name, filename: Optional[Any] = ...): ...
15    def filter_stream(self, stream): ...
16    def parse(self, parser): ...
17    def attr(self, name, lineno: Optional[Any] = ...): ...
18    def call_method(self, name, args: Optional[Any] = ..., kwargs: Optional[Any] = ..., dyn_args: Optional[Any] = ..., dyn_kwargs: Optional[Any] = ..., lineno: Optional[Any] = ...): ...
19
20class InternationalizationExtension(Extension):
21    tags: Any
22    def __init__(self, environment) -> None: ...
23    def parse(self, parser): ...
24
25class ExprStmtExtension(Extension):
26    tags: Any
27    def parse(self, parser): ...
28
29class LoopControlExtension(Extension):
30    tags: Any
31    def parse(self, parser): ...
32
33class WithExtension(Extension):
34    tags: Any
35    def parse(self, parser): ...
36
37class AutoEscapeExtension(Extension):
38    tags: Any
39    def parse(self, parser): ...
40
41def extract_from_ast(node, gettext_functions: Any = ..., babel_style: bool = ...): ...
42
43class _CommentFinder:
44    tokens: Any
45    comment_tags: Any
46    offset: int
47    last_lineno: int
48    def __init__(self, tokens, comment_tags) -> None: ...
49    def find_backwards(self, offset): ...
50    def find_comments(self, lineno): ...
51
52def babel_extract(fileobj, keywords, comment_tags, options): ...
53
54i18n: Any
55do: Any
56loopcontrols: Any
57with_: Any
58autoescape: Any
59