diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-03-27 01:08:34 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-03-27 01:08:34 +0000 |
commit | c5f2308263b09a7ed0fc967ce413106707493a45 (patch) | |
tree | 8bcbec71b61d7548c4a97b273103a3b6a4410945 /lib/mako/codegen.py | |
parent | ca4a1fdac5f6348d8b06644e40a678883220057c (diff) | |
download | external_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.py | 11 |
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), |