aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mako/codegen.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-03-27 01:08:34 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-03-27 01:08:34 +0000
commitc5f2308263b09a7ed0fc967ce413106707493a45 (patch)
tree8bcbec71b61d7548c4a97b273103a3b6a4410945 /lib/mako/codegen.py
parentca4a1fdac5f6348d8b06644e40a678883220057c (diff)
downloadexternal_python_mako-c5f2308263b09a7ed0fc967ce413106707493a45.tar.gz
external_python_mako-c5f2308263b09a7ed0fc967ce413106707493a45.tar.bz2
external_python_mako-c5f2308263b09a7ed0fc967ce413106707493a45.zip
adjustments to the buffer_filters arg so it works right with cached/buffered
Diffstat (limited to 'lib/mako/codegen.py')
-rw-r--r--lib/mako/codegen.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/mako/codegen.py b/lib/mako/codegen.py
index c2a10d3..52ded80 100644
--- a/lib/mako/codegen.py
+++ b/lib/mako/codegen.py
@@ -346,8 +346,9 @@ class _GenerateRenderMethod(object):
s = "_buf.getvalue()"
if filtered:
s = self.create_filter_callable(node.filter_args.args, s, False)
- s = self.create_filter_callable(self.compiler.buffer_filters, s, False)
self.printer.writeline(None)
+ if buffered and not cached:
+ s = self.create_filter_callable(self.compiler.buffer_filters, s, False)
if buffered or cached:
self.printer.writeline("return %s" % s)
else:
@@ -384,10 +385,10 @@ class _GenerateRenderMethod(object):
self.write_variable_declares(identifiers, limit=node_or_pagetag.undeclared_identifiers())
if buffered:
- self.printer.writelines(
- "return context.get('local').get_cached(%s, %screatefunc=lambda:__%s(%s*args, **kwargs))" % (cachekey, ''.join(["%s=%s, " % (k,v) for k, v in cacheargs.iteritems()]), name, ctx_arg),
- None
- )
+ s = "context.get('local').get_cached(%s, %screatefunc=lambda:__%s(%s*args, **kwargs))" % (cachekey, ''.join(["%s=%s, " % (k,v) for k, v in cacheargs.iteritems()]), name, ctx_arg)
+ # apply buffer_filters
+ s = self.create_filter_callable(self.compiler.buffer_filters, s, False)
+ self.printer.writelines("return " + s,None)
else:
self.printer.writelines(
"context.write(context.get('local').get_cached(%s, %screatefunc=lambda:__%s(%s*args, **kwargs)))" % (cachekey, ''.join(["%s=%s, " % (k,v) for k, v in cacheargs.iteritems()]), name, ctx_arg),