in HTML. This function will not escaped objects that do have an HTML
representation such as already escaped data.
+.. autofunction:: jinja2.utils.clear_caches
+
.. autoclass:: jinja2.utils.Markup
# decorators and public utilities
from jinja2.filters import environmentfilter, contextfilter
-from jinja2.utils import Markup, escape, environmentfunction, contextfunction
+from jinja2.utils import Markup, escape, clear_caches, \
+ environmentfunction, contextfunction
__all__ = [
'Environment', 'Template', 'BaseLoader', 'FileSystemLoader',
'TemplateError', 'UndefinedError', 'TemplateNotFound',
'TemplateSyntaxError', 'TemplateAssertionError', 'environmentfilter',
'contextfilter', 'Markup', 'escape', 'environmentfunction',
- 'contextfunction'
+ 'contextfunction', 'clear_caches'
]
jinja2.debug
~~~~~~~~~~~~
- Implements the debug interface for Jinja.
+ Implements the debug interface for Jinja. This module does some pretty
+ ugly stuff with the Python traceback system in order to achieve tracebacks
+ with correct line numbers, locals and contents.
:copyright: Copyright 2008 by Armin Ronacher.
:license: BSD.
# cache for the lexers. Exists in order to be able to have multiple
# environments with the same lexer
-_lexer_cache = LRUCache(10)
+_lexer_cache = LRUCache(50)
# static regular expressions
whitespace_re = re.compile(r'\s+(?um)')
return f
+def clear_caches():
+ """Jinja2 keeps internal caches for environments and lexers. These are
+ used so that Jinja2 doesn't have to recreate environments and lexers all
+ the time. Normally you don't have to care about that but if you are
+ messuring memory consumption you may want to clean the caches.
+ """
+ from jinja2.environment import _spontaneous_environments
+ from jinja2.lexer import _lexer_cache
+ _spontaneous_environments.clear()
+ _lexer_cache.clear()
+
+
def import_string(import_name, silent=False):
"""Imports an object based on a string. This use useful if you want to
use import paths as endpoints or something similar. An import path can