aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mako/codegen.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-12-31 23:12:08 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-12-31 23:12:08 +0000
commit7525e89e7e0b5b2fe6fe2bdec81cce31b678a976 (patch)
tree812965025dfdf031a57518cd368907674fd4803d /lib/mako/codegen.py
parent34cf1313951ab718d8d3a214dfc18de64b2c9d8d (diff)
downloadexternal_python_mako-7525e89e7e0b5b2fe6fe2bdec81cce31b678a976.tar.gz
external_python_mako-7525e89e7e0b5b2fe6fe2bdec81cce31b678a976.tar.bz2
external_python_mako-7525e89e7e0b5b2fe6fe2bdec81cce31b678a976.zip
- added "encoding()" filter; this allows a filter expression to specify the encoding and error
handling for the given expression. usage is like: ${data | encoding('utf-8', errors='strict')}
Diffstat (limited to 'lib/mako/codegen.py')
-rw-r--r--lib/mako/codegen.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/mako/codegen.py b/lib/mako/codegen.py
index f4f5350..a0bc70a 100644
--- a/lib/mako/codegen.py
+++ b/lib/mako/codegen.py
@@ -377,7 +377,14 @@ class _GenerateRenderMethod(object):
if self.compiler.pagetag:
args += self.compiler.pagetag.filter_args.args
for e in args:
- e = d.get(e, e)
+ # if filter given as a function, get just the identifier portion
+ m = re.match(r'(.+?)(\(.*\))', e)
+ if m:
+ (ident, fargs) = m.group(1,2)
+ f = d.get(ident, ident)
+ e = f + fargs
+ else:
+ e = d.get(e, e)
target = "%s(%s)" % (e, target)
return target