Commit 6281f549 by Eric Florenzano

Compile the regular expression once and re-use it for the render_sections bit

parent 43cb2c22
import re import re
SECTION_RE = re.compile(r"{{\#([^\}]*)}}\s*(.+?)\s*{{/\1}}", re.M | re.S)
class Template(object): class Template(object):
tag_types = { tag_types = {
None: 'tag', None: 'tag',
...@@ -20,8 +22,7 @@ class Template(object): ...@@ -20,8 +22,7 @@ class Template(object):
def render_sections(self, template, context): def render_sections(self, template, context):
"""Expands sections.""" """Expands sections."""
regexp = re.compile(r"{{\#([^\}]*)}}\s*(.+?)\s*{{/\1}}", re.M | re.S) match = SECTION_RE.search(template)
match = re.search(regexp, template)
while match: while match:
section, section_name, inner = match.group(0, 1, 2) section, section_name, inner = match.group(0, 1, 2)
...@@ -37,7 +38,7 @@ class Template(object): ...@@ -37,7 +38,7 @@ class Template(object):
template = template.replace(section, inner) template = template.replace(section, inner)
else: else:
template = template.replace(section, '') template = template.replace(section, '')
match = re.search(regexp, template) match = SECTION_RE.search(template)
return template return template
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment