--- /dev/null
+import sys\r
+from typing import Any, Callable, Dict, Iterator, List, Optional, Text, Type, Union\r
+\r
+from .bccache import BytecodeCache\r
+from .loaders import BaseLoader\r
+from .runtime import Context, Undefined\r
+\r
+if sys.version_info >= (3, 6):\r
+ from typing import Awaitable, AsyncIterator\r
+\r
+def get_spontaneous_environment(*args): ...\r
+def create_cache(size): ...\r
+def copy_cache(cache): ...\r
+def load_extensions(environment, extensions): ...\r
+\r
+class Environment:\r
+ sandboxed = ... # type: bool\r
+ overlayed = ... # type: bool\r
+ linked_to = ... # type: Any\r
+ shared = ... # type: bool\r
+ exception_handler = ... # type: Any\r
+ exception_formatter = ... # type: Any\r
+ code_generator_class = ... # type: Any\r
+ context_class = ... # type: Any\r
+ block_start_string = ... # type: Text\r
+ block_end_string = ... # type: Text\r
+ variable_start_string = ... # type: Text\r
+ variable_end_string = ... # type: Text\r
+ comment_start_string = ... # type: Text\r
+ comment_end_string = ... # type: Text\r
+ line_statement_prefix = ... # type: Text\r
+ line_comment_prefix = ... # type: Text\r
+ trim_blocks = ... # type: bool\r
+ lstrip_blocks = ... # type: Any\r
+ newline_sequence = ... # type: Text\r
+ keep_trailing_newline = ... # type: bool\r
+ undefined = ... # type: Type[Undefined]\r
+ optimized = ... # type: bool\r
+ finalize = ... # type: Callable\r
+ autoescape = ... # type: Any\r
+ filters = ... # type: Any\r
+ tests = ... # type: Any\r
+ globals = ... # type: Dict[str, Any]\r
+ loader = ... # type: BaseLoader\r
+ cache = ... # type: Any\r
+ bytecode_cache = ... # type: BytecodeCache\r
+ auto_reload = ... # type: bool\r
+ extensions = ... # type: List\r
+ def __init__(self, block_start_string: Text = ..., block_end_string: Text = ..., variable_start_string: Text = ..., variable_end_string: Text = ..., comment_start_string: Any = ..., comment_end_string: Text = ..., line_statement_prefix: Text = ..., line_comment_prefix: Text = ..., trim_blocks: bool = ..., lstrip_blocks: bool = ..., newline_sequence: Text = ..., keep_trailing_newline: bool = ..., extensions: List = ..., optimized: bool = ..., undefined: Type[Undefined] = ..., finalize: Optional[Callable] = ..., autoescape: Union[bool, Callable[[str], bool]] = ..., loader: Optional[BaseLoader] = ..., cache_size: int = ..., auto_reload: bool = ..., bytecode_cache: Optional[BytecodeCache] = ..., enable_async: bool = ...) -> None: ...\r
+ def add_extension(self, extension): ...\r
+ def extend(self, **attributes): ...\r
+ def overlay(self, block_start_string: Text = ..., block_end_string: Text = ..., variable_start_string: Text = ..., variable_end_string: Text = ..., comment_start_string: Any = ..., comment_end_string: Text = ..., line_statement_prefix: Text = ..., line_comment_prefix: Text = ..., trim_blocks: bool = ..., lstrip_blocks: bool = ..., extensions: List = ..., optimized: bool = ..., undefined: Type[Undefined] = ..., finalize: Callable = ..., autoescape: bool = ..., loader: Optional[BaseLoader] = ..., cache_size: int = ..., auto_reload: bool = ..., bytecode_cache: Optional[BytecodeCache] = ...): ...\r
+ lexer = ... # type: Any\r
+ def iter_extensions(self): ...\r
+ def getitem(self, obj, argument): ...\r
+ def getattr(self, obj, attribute): ...\r
+ def call_filter(self, name, value, args: Optional[Any] = ..., kwargs: Optional[Any] = ..., context: Optional[Any] = ..., eval_ctx: Optional[Any] = ...): ...\r
+ def call_test(self, name, value, args: Optional[Any] = ..., kwargs: Optional[Any] = ...): ...\r
+ def parse(self, source, name: Optional[Any] = ..., filename: Optional[Any] = ...): ...\r
+ def lex(self, source, name: Optional[Any] = ..., filename: Optional[Any] = ...): ...\r
+ def preprocess(self, source: Text, name: Optional[Any] = ..., filename: Optional[Any] = ...): ...\r
+ def compile(self, source, name: Optional[Any] = ..., filename: Optional[Any] = ..., raw: bool = ..., defer_init: bool = ...): ...\r
+ def compile_expression(self, source: Text, undefined_to_none: bool = ...): ...\r
+ def compile_templates(self, target, extensions: Optional[Any] = ..., filter_func: Optional[Any] = ..., zip: str = ..., log_function: Optional[Any] = ..., ignore_errors: bool = ..., py_compile: bool = ...): ...\r
+ def list_templates(self, extensions: Optional[Any] = ..., filter_func: Optional[Any] = ...): ...\r
+ def handle_exception(self, exc_info: Optional[Any] = ..., rendered: bool = ..., source_hint: Optional[Any] = ...): ...\r
+ def join_path(self, template: Union[Template, Text], parent: Text) -> Text: ...\r
+ def get_template(self, name: Union[Template, Text], parent: Optional[Text] = ..., globals: Optional[Any] = ...) -> Template: ...\r
+ def select_template(self, names: List[Union[Template, Text]], parent: Optional[Text] = ..., globals: Optional[Dict[str, Any]] = ...) -> Template: ...\r
+ def get_or_select_template(self, template_name_or_list: Union[Union[Template, Text], List[Union[Template, Text]]], parent: Optional[Text] = ..., globals: Optional[Dict[str, Any]] = ...) -> Template: ...\r
+ def from_string(self, source: Text, globals: Optional[Dict[str, Any]] = ..., template_class: Optional[Type[Template]] = ...) -> Template: ...\r
+ def make_globals(self, d: Optional[Dict[str, Any]]) -> Dict[str, Any]: ...\r
+\r
+ # Frequently added extensions are included here:\r
+ # from InternationalizationExtension:\r
+ def install_gettext_translations(self, translations: Any, newstyle: Optional[bool]): ...\r
+ def install_null_translations(self, newstyle: Optional[bool]): ...\r
+ def install_gettext_callables(self, gettext: Callable, ngettext: Callable,\r
+ newstyle: Optional[bool]): ...\r
+ def uninstall_gettext_translations(self, translations: Any): ...\r
+ def extract_translations(self, source: Any, gettext_functions: Any): ...\r
+ newstyle_gettext = ... # type: bool\r
+\r
+class Template:\r
+ def __new__(cls, source, block_start_string: Any = ..., block_end_string: Any = ..., variable_start_string: Any = ..., variable_end_string: Any = ..., comment_start_string: Any = ..., comment_end_string: Any = ..., line_statement_prefix: Any = ..., line_comment_prefix: Any = ..., trim_blocks: Any = ..., lstrip_blocks: Any = ..., newline_sequence: Any = ..., keep_trailing_newline: Any = ..., extensions: Any = ..., optimized: bool = ..., undefined: Any = ..., finalize: Optional[Any] = ..., autoescape: bool = ...): ...\r
+ environment: Environment = ...\r
+ @classmethod\r
+ def from_code(cls, environment, code, globals, uptodate: Optional[Any] = ...): ...\r
+ @classmethod\r
+ def from_module_dict(cls, environment, module_dict, globals): ...\r
+ def render(self, *args, **kwargs) -> Text: ...\r
+ def stream(self, *args, **kwargs) -> TemplateStream: ...\r
+ def generate(self, *args, **kwargs) -> Iterator[Text]: ...\r
+ def new_context(self, vars: Optional[Dict[str, Any]] = ..., shared: bool = ..., locals: Optional[Dict[str, Any]] = ...) -> Context: ...\r
+ def make_module(self, vars: Optional[Dict[str, Any]] = ..., shared: bool = ..., locals: Optional[Dict[str, Any]] = ...) -> Context: ...\r
+ @property\r
+ def module(self) -> Any: ...\r
+ def get_corresponding_lineno(self, lineno): ...\r
+ @property\r
+ def is_up_to_date(self) -> bool: ...\r
+ @property\r
+ def debug_info(self): ...\r
+\r
+ if sys.version_info >= (3, 6):\r
+ def render_async(self, *args, **kwargs) -> Awaitable[Text]: ...\r
+ def generate_async(self, *args, **kwargs) -> AsyncIterator[Text]: ...\r
+\r
+\r
+class TemplateModule:\r
+ __name__ = ... # type: Any\r
+ def __init__(self, template, context) -> None: ...\r
+ def __html__(self): ...\r
+\r
+class TemplateExpression:\r
+ def __init__(self, template, undefined_to_none) -> None: ...\r
+ def __call__(self, *args, **kwargs): ...\r
+\r
+class TemplateStream:\r
+ def __init__(self, gen) -> None: ...\r
+ def dump(self, fp, encoding: Optional[Text] = ..., errors: Text = ...): ...\r
+ buffered = ... # type: bool\r
+ def disable_buffering(self) -> None: ...\r
+ def enable_buffering(self, size: int = ...) -> None: ...\r
+ def __iter__(self): ...\r
+ def __next__(self): ...\r