--- /dev/null
+from typing import Any, Optional\r
+\r
+GETTEXT_FUNCTIONS = ... # type: Any\r
+\r
+class ExtensionRegistry(type):\r
+ def __new__(cls, name, bases, d): ...\r
+\r
+class Extension:\r
+ tags = ... # type: Any\r
+ priority = ... # type: int\r
+ environment = ... # type: Any\r
+ def __init__(self, environment) -> None: ...\r
+ def bind(self, environment): ...\r
+ def preprocess(self, source, name, filename: Optional[Any] = ...): ...\r
+ def filter_stream(self, stream): ...\r
+ def parse(self, parser): ...\r
+ def attr(self, name, lineno: Optional[Any] = ...): ...\r
+ def call_method(self, name, args: Optional[Any] = ..., kwargs: Optional[Any] = ..., dyn_args: Optional[Any] = ..., dyn_kwargs: Optional[Any] = ..., lineno: Optional[Any] = ...): ...\r
+\r
+class InternationalizationExtension(Extension):\r
+ tags = ... # type: Any\r
+ def __init__(self, environment) -> None: ...\r
+ def parse(self, parser): ...\r
+\r
+class ExprStmtExtension(Extension):\r
+ tags = ... # type: Any\r
+ def parse(self, parser): ...\r
+\r
+class LoopControlExtension(Extension):\r
+ tags = ... # type: Any\r
+ def parse(self, parser): ...\r
+\r
+class WithExtension(Extension):\r
+ tags = ... # type: Any\r
+ def parse(self, parser): ...\r
+\r
+class AutoEscapeExtension(Extension):\r
+ tags = ... # type: Any\r
+ def parse(self, parser): ...\r
+\r
+def extract_from_ast(node, gettext_functions: Any = ..., babel_style: bool = ...): ...\r
+\r
+class _CommentFinder:\r
+ tokens = ... # type: Any\r
+ comment_tags = ... # type: Any\r
+ offset = ... # type: int\r
+ last_lineno = ... # type: int\r
+ def __init__(self, tokens, comment_tags) -> None: ...\r
+ def find_backwards(self, offset): ...\r
+ def find_comments(self, lineno): ...\r
+\r
+def babel_extract(fileobj, keywords, comment_tags, options): ...\r
+\r
+i18n = ... # type: Any\r
+do = ... # type: Any\r
+loopcontrols = ... # type: Any\r
+with_ = ... # type: Any\r
+autoescape = ... # type: Any\r