diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-10-25 18:21:18 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-10-25 18:21:18 +0000 |
commit | a679378455d79ee34b3465323fcba438f0afac74 (patch) | |
tree | d12dd267eee2bc7c4aaca459d2e60f7ee6a312d6 /lib | |
parent | bbba9fedbe68b8ba9cc0e298f5ba8146efc48b8b (diff) | |
download | external_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.py | 19 | ||||
-rw-r--r-- | lib/mako/runtime.py | 7 | ||||
-rw-r--r-- | lib/mako/template.py | 8 |
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_): |