1793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# -*- coding: utf-8 -*-
2793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler"""
3793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    jinja2
4793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    ~~~~~~
5793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
6793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    Jinja2 is a template engine written in pure Python.  It provides a
7793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    Django inspired non-XML syntax but supports inline expressions and
8793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    an optional sandboxed environment.
9793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
10793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    Nutshell
11793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    --------
12793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
13793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    Here a small example of a Jinja2 template::
14793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
15793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler        {% extends 'base.html' %}
16793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler        {% block title %}Memberlist{% endblock %}
17793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler        {% block content %}
18793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler          <ul>
19793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler          {% for user in users %}
20793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler            <li><a href="{{ user.url }}">{{ user.username }}</a></li>
21793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler          {% endfor %}
22793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler          </ul>
23793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler        {% endblock %}
24793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
25793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
26793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    :copyright: (c) 2010 by the Jinja Team.
27793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    :license: BSD, see LICENSE for more details.
28793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler"""
29793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler__docformat__ = 'restructuredtext en'
30793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler__version__ = '2.7.1'
31793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
32793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# high level interface
33793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.environment import Environment, Template
34793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
35793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# loaders
36793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.loaders import BaseLoader, FileSystemLoader, PackageLoader, \
37793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler     DictLoader, FunctionLoader, PrefixLoader, ChoiceLoader, \
38793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler     ModuleLoader
39793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
40793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# bytecode caches
41793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.bccache import BytecodeCache, FileSystemBytecodeCache, \
42793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler     MemcachedBytecodeCache
43793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
44793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# undefined types
45793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.runtime import Undefined, DebugUndefined, StrictUndefined
46793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
47793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# exceptions
48793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.exceptions import TemplateError, UndefinedError, \
49793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler     TemplateNotFound, TemplatesNotFound, TemplateSyntaxError, \
50793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler     TemplateAssertionError
51793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
52793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# decorators and public utilities
53793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.filters import environmentfilter, contextfilter, \
54793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler     evalcontextfilter
55793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.utils import Markup, escape, clear_caches, \
56793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler     environmentfunction, evalcontextfunction, contextfunction, \
57793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler     is_undefined
58793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
59793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler__all__ = [
60793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    'Environment', 'Template', 'BaseLoader', 'FileSystemLoader',
61793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    'PackageLoader', 'DictLoader', 'FunctionLoader', 'PrefixLoader',
62793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    'ChoiceLoader', 'BytecodeCache', 'FileSystemBytecodeCache',
63793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    'MemcachedBytecodeCache', 'Undefined', 'DebugUndefined',
64793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    'StrictUndefined', 'TemplateError', 'UndefinedError', 'TemplateNotFound',
65793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    'TemplatesNotFound', 'TemplateSyntaxError', 'TemplateAssertionError',
66793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    'ModuleLoader', 'environmentfilter', 'contextfilter', 'Markup', 'escape',
67793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    'environmentfunction', 'contextfunction', 'clear_caches', 'is_undefined',
68793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    'evalcontextfilter', 'evalcontextfunction'
69793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler]
70