Skip to content
Browse files

added cache_clear function

branch : trunk
  • Loading branch information...
1 parent aaf010d commit 187bde1aff75cfc41cb345cd7798d5500900a3c0 @mitsuhiko committed
2  docs/api.rst
@@ -211,6 +211,8 @@ functions to a Jinja2 environment.
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
5 jinja2/
@@ -49,7 +49,8 @@
# 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',
@@ -58,5 +59,5 @@
'TemplateError', 'UndefinedError', 'TemplateNotFound',
'TemplateSyntaxError', 'TemplateAssertionError', 'environmentfilter',
'contextfilter', 'Markup', 'escape', 'environmentfunction',
- 'contextfunction'
+ 'contextfunction', 'clear_caches'
4 jinja2/
@@ -3,7 +3,9 @@
- 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.
2  jinja2/
@@ -23,7 +23,7 @@
# 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)')
12 jinja2/
@@ -47,6 +47,18 @@ def environmentfunction(f):
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

0 comments on commit 187bde1

Please sign in to comment.
Something went wrong with that request. Please try again.