summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Florenzano <floguy@gmail.com>2009-10-29 02:51:21 -0700
committerEric Florenzano <floguy@gmail.com>2009-10-29 02:51:21 -0700
commitdbb50631d3daa99965cf726df46e06a7af256b9f (patch)
treec78942f01178613c3f049de4a7c1867c7a769990
parent8303869d3dc5e667fa0fc42e12627ce1cc6b464f (diff)
downloadpystache-dbb50631d3daa99965cf726df46e06a7af256b9f.tar.gz
Flattened the render_sections loop
-rw-r--r--pystache/template.py26
1 files changed, 14 insertions, 12 deletions
diff --git a/pystache/template.py b/pystache/template.py
index f28124d..56650aa 100644
--- a/pystache/template.py
+++ b/pystache/template.py
@@ -29,18 +29,20 @@ class Template(object):
break
section, section_name, inner = match.group(0, 1, 2)
- if section_name in context and context[section_name]:
- if hasattr(context[section_name], '__iter__'):
- insides = []
- for item in context[section_name]:
- ctx = context.copy()
- ctx.update(item)
- insides.append(self.render(inner, ctx))
- template = template.replace(section, ''.join(insides))
- else:
- template = template.replace(section, inner)
- else:
- template = template.replace(section, '')
+
+ it = context.get(section_name)
+ replacer = ''
+ if it and not hasattr(it, '__iter__'):
+ replacer = inner
+ elif it:
+ insides = []
+ for item in context[section_name]:
+ ctx = context.copy()
+ ctx.update(item)
+ insides.append(self.render(inner, ctx))
+ replacer = ''.join(insides)
+
+ template = template.replace(section, replacer)
return template