Hey everyone,
I'm attaching a patch that adds an 'auto_reload_templates'
configuration option to the tg2 AppConfig object. At the moment, if
you wish to disable template auto-reloading for your production
applications, it requires doing something like this in your app_cfg:
class MyConfig(AppConfig):
def setup_genshi_renderer(self):
from genshi.template import TemplateLoader
from tg.render import render_genshi
def template_loaded(template):
genshi.template.filters.insert(0,
Translator(ugettext))
config['pylons.app_globals'].genshi_loader =
TemplateLoader(
self.paths['templates'], auto_reload=False)
self.renderer_functions = render_genshi
def setup_mako_renderer(self):
from mako.lookup import TemplateLookup
from tg.render import render_mako
config['pylons.app_globals'].mako_lookup = TemplateLookup(
directories=self.paths['templates'],
module_directory=self.paths['templates'],
input_encoding='utf-8', output_encoding='utf-8',
imports=['from webhelpers.html import escape'],
default_filters=['escape'], filesystem_checks=False)
self.render_functions.mako = render_mako
Yes, it's trivial to copy/paste the existing setup methods, and tweak
them a bit -- but the problem is that the variable to disable this
feature differs between the various template engines. With my
proposed patch, disabling template auto-reloading becomes as simple as
this:
base_config.auto_reload_templates = False
Here is the patch. I'd be glad to commit this if people think it's a
good idea.
Cheers,
luke
--- configuration.py (revision 5362)
+++ configuration.py (working copy)
@@ -112,7 +112,7 @@
self.auth_backend = None
self.serve_static = True
self.use_legacy_render = True
-
+ self.auto_reload_templates = True
def setup_paths(self):
root =
os.path.dirname(os.path.abspath(self.package.__file__))
@@ -181,10 +181,11 @@
module_directory=self.paths['templates'],
input_encoding='utf-8', output_encoding='utf-8',
imports=['from webhelpers.html import escape'],
- default_filters=['escape'])
-
+ default_filters=['escape'],
+ filesystem_checks=self.auto_reload_templates)
+
self.render_functions.mako = render_mako
-
+
def setup_genshi_renderer(self):
"""Setup a renderer and loader for Genshi templates"""
from genshi.template import TemplateLoader
@@ -194,7 +195,7 @@
"Plug-in our i18n function to Genshi."
genshi.template.filters.insert(0, Translator(ugettext))
loader = TemplateLoader(search_path=self.paths.templates,
- auto_reload=True)
+
auto_reload=self.auto_reload_templates)
config['pylons.app_globals'].genshi_loader = loader
@@ -206,7 +207,8 @@
from tg.render import render_jinja
config['pylons.app_globals'].jinja_env =
Environment(loader=ChoiceLoader(
- [FileSystemLoader(path) for path in
self.paths['templates']]))
+ [FileSystemLoader(path,
auto_reload=self.auto_reload_templates)
+ for path in self.paths['templates']]))
# Jinja's unable to request c's attributes without strict_c
config['pylons.strict_c'] = True
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears Trunk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/turbogears-trunk?hl=en
-~----------~----~----~----~------~----~------~--~---