moved caching from loaders to environment and added environment overlays
[jinja2.git] / jinja2 / __init__.py
1 # -*- coding: utf-8 -*-
2 """
3     jinja2
4     ~~~~~~
5
6     Jinja2 is a template engine written in pure Python.  It provides a
7     Django inspired non-XML syntax but supports inline expressions and
8     an optional sandboxed environment.
9
10     Nutshell
11     --------
12
13     Here a small example of a Jinja2 template::
14
15         {% extends 'base.html' %}
16         {% block title %}Memberlist{% endblock %}
17         {% block content %}
18           <ul>
19           {% for user in users %}
20             <li><a href="{{ user.url }}">{{ user.username }}</a></li>
21           {% endfor %}
22           </ul>
23         {% endblock %}
24
25
26     :copyright: 2008 by Armin Ronacher, Christoph Hack.
27     :license: BSD, see LICENSE for more details.
28 """
29 __docformat__ = 'restructuredtext en'
30 try:
31     __version__ = __import__('pkg_resources') \
32         .get_distribution('Jinja2').version
33 except:
34     __version__ = 'unknown'
35
36 # high level interface
37 from jinja2.environment import Environment, Template
38
39 # loaders
40 from jinja2.loaders import BaseLoader, FileSystemLoader, PackageLoader, \
41      DictLoader, FunctionLoader, PrefixLoader, ChoiceLoader
42
43 # undefined types
44 from jinja2.runtime import Undefined, DebugUndefined, StrictUndefined
45
46 # exceptions
47 from jinja2.exceptions import TemplateError, UndefinedError, \
48      TemplateNotFound, TemplateSyntaxError, TemplateAssertionError
49
50 # decorators and public utilities
51 from jinja2.filters import environmentfilter, contextfilter
52 from jinja2.utils import Markup, escape, environmentfunction, contextfunction
53
54 __all__ = [
55     'Environment', 'Template', 'BaseLoader', 'FileSystemLoader',
56     'PackageLoader', 'DictLoader', 'FunctionLoader', 'PrefixLoader',
57     'ChoiceLoader', 'Undefined', 'DebugUndefined', 'StrictUndefined',
58     'TemplateError', 'UndefinedError', 'TemplateNotFound',
59     'TemplateSyntaxError', 'TemplateAssertionError', 'environmentfilter',
60     'contextfilter', 'Markup', 'escape', 'environmentfunction',
61     'contextfunction'
62 ]