Show More
@@ -83,14 +83,17 b' class engine(object):' | |||
|
83 | 83 | def _filter(self, expr, get, map): |
|
84 | 84 | if expr not in self.cache: |
|
85 | 85 | parts = expr.split('|') |
|
86 |
|
|
|
87 |
|
|
|
88 | if f not in self.filters: | |
|
89 | raise SyntaxError(_("unknown filter '%s'") % expr) | |
|
90 | calls = '('.join(i for i in reversed(filters)) | |
|
91 | end = ')' * len(filters) | |
|
92 | code = "lambda _get: %s(_get('%s')%s" % (calls, parts[0], end) | |
|
93 | self.cache[expr] = eval(code, self.filters) | |
|
86 | val = parts[0] | |
|
87 | try: | |
|
88 | filters = [self.filters[f] for f in parts[1:]] | |
|
89 | except KeyError, i: | |
|
90 | raise SyntaxError(_("unknown filter '%s'") % i[0]) | |
|
91 | def apply(get): | |
|
92 | x = get(val) | |
|
93 | for f in filters: | |
|
94 | x = f(x) | |
|
95 | return x | |
|
96 | self.cache[expr] = apply | |
|
94 | 97 | return self.cache[expr](get) |
|
95 | 98 | |
|
96 | 99 | def _process(self, tmpl, map): |
General Comments 0
You need to be logged in to leave comments.
Login now