Mercurial > hg
changeset 17632:523625e46760
templater: factor out runtemplate method
As a side-effect, this makes the output of runmap non-flattened
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sat, 22 Sep 2012 13:02:33 -0500 |
parents | 0b241d7a8c62 |
children | 312184f930b7 |
files | mercurial/templater.py |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templater.py Fri Sep 21 18:54:00 2012 -0500 +++ b/mercurial/templater.py Sat Sep 22 13:02:33 2012 -0500 @@ -161,6 +161,10 @@ ctmpl = gettemplate(exp[2], context) return (runmap, (func, data, ctmpl)) +def runtemplate(context, mapping, template): + for func, data in template: + yield func(context, mapping, data) + def runmap(context, mapping, data): func, data, ctmpl = data d = func(context, mapping, data) @@ -172,8 +176,7 @@ for i in d: if isinstance(i, dict): lm.update(i) - for f, d in ctmpl: - yield f(context, lm, d) + yield runtemplate(context, lm, ctmpl) else: # v is not an iterable of dicts, this happen when 'key' # has been fully expanded already and format is useless. @@ -276,6 +279,7 @@ generator.''' return _flatten(func(self, mapping, data) for func, data in self._load(t)) + return _flatten(runtemplate(self, mapping, self._load(t))) engines = {'default': engine}