1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

# -*- coding: utf-8 -*- 

""" 

jinja2 

~~~~~~ 

 

Jinja2 is a template engine written in pure Python. It provides a 

Django inspired non-XML syntax but supports inline expressions and 

an optional sandboxed environment. 

 

Nutshell 

-------- 

 

Here a small example of a Jinja2 template:: 

 

{% extends 'base.html' %} 

{% block title %}Memberlist{% endblock %} 

{% block content %} 

<ul> 

{% for user in users %} 

<li><a href="{{ user.url }}">{{ user.username }}</a></li> 

{% endfor %} 

</ul> 

{% endblock %} 

 

 

:copyright: (c) 2017 by the Jinja Team. 

:license: BSD, see LICENSE for more details. 

""" 

__docformat__ = 'restructuredtext en' 

__version__ = '2.10' 

 

# high level interface 

from jinja2.environment import Environment, Template 

 

# loaders 

from jinja2.loaders import BaseLoader, FileSystemLoader, PackageLoader, \ 

DictLoader, FunctionLoader, PrefixLoader, ChoiceLoader, \ 

ModuleLoader 

 

# bytecode caches 

from jinja2.bccache import BytecodeCache, FileSystemBytecodeCache, \ 

MemcachedBytecodeCache 

 

# undefined types 

from jinja2.runtime import Undefined, DebugUndefined, StrictUndefined, \ 

make_logging_undefined 

 

# exceptions 

from jinja2.exceptions import TemplateError, UndefinedError, \ 

TemplateNotFound, TemplatesNotFound, TemplateSyntaxError, \ 

TemplateAssertionError, TemplateRuntimeError 

 

# decorators and public utilities 

from jinja2.filters import environmentfilter, contextfilter, \ 

evalcontextfilter 

from jinja2.utils import Markup, escape, clear_caches, \ 

environmentfunction, evalcontextfunction, contextfunction, \ 

is_undefined, select_autoescape 

 

__all__ = [ 

'Environment', 'Template', 'BaseLoader', 'FileSystemLoader', 

'PackageLoader', 'DictLoader', 'FunctionLoader', 'PrefixLoader', 

'ChoiceLoader', 'BytecodeCache', 'FileSystemBytecodeCache', 

'MemcachedBytecodeCache', 'Undefined', 'DebugUndefined', 

'StrictUndefined', 'TemplateError', 'UndefinedError', 'TemplateNotFound', 

'TemplatesNotFound', 'TemplateSyntaxError', 'TemplateAssertionError', 

'TemplateRuntimeError', 

'ModuleLoader', 'environmentfilter', 'contextfilter', 'Markup', 'escape', 

'environmentfunction', 'contextfunction', 'clear_caches', 'is_undefined', 

'evalcontextfilter', 'evalcontextfunction', 'make_logging_undefined', 

'select_autoescape', 

] 

 

 

def _patch_async(): 

from jinja2.utils import have_async_gen 

if have_async_gen: 

from jinja2.asyncsupport import patch_all 

patch_all() 

 

 

_patch_async() 

del _patch_async