aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-10-25 18:21:18 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-10-25 18:21:18 +0000
commita679378455d79ee34b3465323fcba438f0afac74 (patch)
treed12dd267eee2bc7c4aaca459d2e60f7ee6a312d6 /lib
parentbbba9fedbe68b8ba9cc0e298f5ba8146efc48b8b (diff)
downloadexternal_python_mako-a679378455d79ee34b3465323fcba438f0afac74.tar.gz
external_python_mako-a679378455d79ee34b3465323fcba438f0afac74.tar.bz2
external_python_mako-a679378455d79ee34b3465323fcba438f0afac74.zip
- beaker bump
- added "cache_enabled=True" flag to Template, TemplateLookup. Setting this to False causes cache operations to "pass through" and execute every time; this flag should be integrated in Pylons with its own cache_enabled configuration setting.
Diffstat (limited to 'lib')
-rw-r--r--lib/mako/lookup.py19
-rw-r--r--lib/mako/runtime.py7
-rw-r--r--lib/mako/template.py8
3 files changed, 29 insertions, 5 deletions
diff --git a/lib/mako/lookup.py b/lib/mako/lookup.py
index f720e4c..8926254 100644
--- a/lib/mako/lookup.py
+++ b/lib/mako/lookup.py
@@ -39,7 +39,7 @@ class TemplateCollection(object):
class TemplateLookup(TemplateCollection):
def __init__(self, directories=None, module_directory=None, filesystem_checks=True, collection_size=-1, format_exceptions=False,
error_handler=None, disable_unicode=False, output_encoding=None, encoding_errors='strict', cache_type=None, cache_dir=None, cache_url=None,
- modulename_callable=None, default_filters=None, buffer_filters=[], imports=None, input_encoding=None, preprocessor=None):
+ cache_enabled=True, modulename_callable=None, default_filters=None, buffer_filters=[], imports=None, input_encoding=None, preprocessor=None):
if isinstance(directories, basestring):
directories = [directories]
self.directories = [posixpath.normpath(d) for d in directories or []]
@@ -47,7 +47,22 @@ class TemplateLookup(TemplateCollection):
self.modulename_callable = modulename_callable
self.filesystem_checks = filesystem_checks
self.collection_size = collection_size
- self.template_args = {'format_exceptions':format_exceptions, 'error_handler':error_handler, 'disable_unicode':disable_unicode, 'output_encoding':output_encoding, 'encoding_errors':encoding_errors, 'input_encoding':input_encoding, 'module_directory':module_directory, 'cache_type':cache_type, 'cache_dir':cache_dir or module_directory, 'cache_url':cache_url, 'default_filters':default_filters, 'buffer_filters':buffer_filters, 'imports':imports, 'preprocessor':preprocessor}
+ self.template_args = {
+ 'format_exceptions':format_exceptions,
+ 'error_handler':error_handler,
+ 'disable_unicode':disable_unicode,
+ 'output_encoding':output_encoding,
+ 'encoding_errors':encoding_errors,
+ 'input_encoding':input_encoding,
+ 'module_directory':module_directory,
+ 'cache_type':cache_type,
+ 'cache_dir':cache_dir or module_directory,
+ 'cache_url':cache_url,
+ 'cache_enabled':cache_enabled,
+ 'default_filters':default_filters,
+ 'buffer_filters':buffer_filters,
+ 'imports':imports,
+ 'preprocessor':preprocessor}
if collection_size == -1:
self.__collection = {}
self._uri_cache = {}
diff --git a/lib/mako/runtime.py b/lib/mako/runtime.py
index a82ffb4..33ac999 100644
--- a/lib/mako/runtime.py
+++ b/lib/mako/runtime.py
@@ -196,6 +196,13 @@ class Namespace(object):
def get_cached(self, key, **kwargs):
if self.template:
+ if not self.template.cache_enabled:
+ createfunc = kwargs.get('createfunc', None)
+ if createfunc:
+ return createfunc()
+ else:
+ return None
+
if self.template.cache_dir:
kwargs.setdefault('data_dir', self.template.cache_dir)
if self.template.cache_type:
diff --git a/lib/mako/template.py b/lib/mako/template.py
index d50eb8a..13823ea 100644
--- a/lib/mako/template.py
+++ b/lib/mako/template.py
@@ -18,7 +18,7 @@ class Template(object):
def __init__(self, text=None, filename=None, uri=None, format_exceptions=False, error_handler=None,
lookup=None, output_encoding=None, encoding_errors='strict', module_directory=None, cache_type=None,
cache_dir=None, cache_url=None, module_filename=None, input_encoding=None, disable_unicode=False, default_filters=None,
- buffer_filters=[], imports=None, preprocessor=None):
+ buffer_filters=[], imports=None, preprocessor=None, cache_enabled=True):
"""construct a new Template instance using either literal template text, or a previously loaded template module
text - textual template source, or None if a module is to be provided
@@ -106,6 +106,7 @@ class Template(object):
self.cache_type = cache_type
self.cache_dir = cache_dir
self.cache_url = cache_url
+ self.cache_enabled = cache_enabled
def source(self):
"""return the template source code for this Template."""
@@ -174,7 +175,7 @@ class ModuleTemplate(Template):
template=None, template_filename=None,
module_source=None, template_source=None,
output_encoding=None, encoding_errors='strict', disable_unicode=False, format_exceptions=False,
- error_handler=None, lookup=None, cache_type=None, cache_dir=None, cache_url=None
+ error_handler=None, lookup=None, cache_type=None, cache_dir=None, cache_url=None, cache_enabled=True
):
self.module_id = re.sub(r'\W', "_", module._template_uri)
self.uri = module._template_uri
@@ -193,7 +194,8 @@ class ModuleTemplate(Template):
self.cache_type = cache_type
self.cache_dir = cache_dir
self.cache_url = cache_url
-
+ self.cache_enabled = cache_enabled
+
class DefTemplate(Template):
"""a Template which represents a callable def in a parent template."""
def __init__(self, parent, callable_):