Skip to content

Commit 4465259

Browse files
luordthibaudcolas
authored andcommitted
Moving from loading at the global level to loading at the template level
1 parent 7becd4c commit 4465259

File tree

1 file changed

+25
-17
lines changed

1 file changed

+25
-17
lines changed

pattern_library/utils.py

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,6 @@ def get_template_dirs():
8282
return template_dirs
8383

8484

85-
86-
8785
def get_pattern_config_str(template_name):
8886
replace_pattern = "{}$".format(get_pattern_template_suffix())
8987
context_path = re.sub(replace_pattern, "", template_name)
@@ -162,13 +160,12 @@ def render_pattern(request, template_name, allow_non_patterns=False, config=None
162160

163161

164162
def get_renderer():
165-
return JinjaTemplateRenderer
163+
return TemplateRenderer
166164

167165

168166
class TemplateRenderer:
169-
170167
@classmethod
171-
def get_pattern_templates(cls,):
168+
def get_pattern_templates(cls):
172169
templates = base_dict()
173170
template_dirs = get_template_dirs()
174171

@@ -239,13 +236,28 @@ def get_pattern_templates(cls,):
239236

240237
return templates
241238

242-
class DTLTemplateRenderer(TemplateRenderer):
243239
@classmethod
244240
def get_pattern_source(cls, template):
245-
return escape(template.template.source)
241+
return cls._get_engine(template).get_pattern_source(template)
246242

247243
@classmethod
248-
def get_template_ancestors(cls, template_name, context=None, ancestors=None):
244+
def get_template_ancestors(cls, template_name, context=None):
245+
template = get_template(template_name)
246+
return cls._get_engine(template).get_template_ancestors(template_name, context=context)
247+
248+
@classmethod
249+
def _get_engine(cls, template):
250+
if "jinja" in str(type(template)).lower():
251+
return JinjaTemplateRenderer
252+
return DTLTemplateRenderer
253+
254+
class DTLTemplateRenderer:
255+
@staticmethod
256+
def get_pattern_source(template):
257+
return escape(template.template.source)
258+
259+
@staticmethod
260+
def get_template_ancestors(template_name, context=None, ancestors=None):
249261
"""
250262
Returns a list of template names, starting with provided name
251263
and followed by the names of any templates that extends until
@@ -271,18 +283,15 @@ def get_template_ancestors(cls, template_name, context=None, ancestors=None):
271283
return ancestors
272284

273285

274-
275-
class JinjaTemplateRenderer(TemplateRenderer):
276-
277-
@classmethod
278-
def get_pattern_source(cls, template):
286+
class JinjaTemplateRenderer:
287+
@staticmethod
288+
def get_pattern_source(template):
279289
with open(template.template.filename) as f:
280290
source = escape(f.read())
281291
return source
282292

283-
284-
@classmethod
285-
def get_template_ancestors(cls, template_name, context=None, ancestors=None):
293+
@staticmethod
294+
def get_template_ancestors(template_name, context=None, ancestors=None):
286295
"""
287296
Returns a list of template names, starting with provided name
288297
and followed by the names of any templates that extends until
@@ -306,4 +315,3 @@ def get_template_ancestors(cls, template_name, context=None, ancestors=None):
306315
cls.get_template_ancestors(parent_template_name, context=context, ancestors=ancestors)
307316

308317
return ancestors
309-
>>>>>>> 68fea3c (First pass at renderers)

0 commit comments

Comments
 (0)