implement jinja2 header overrides
This commit is contained in:
parent
de98dc2968
commit
720e184f88
1 changed files with 12 additions and 0 deletions
|
@ -19,6 +19,7 @@
|
||||||
from __future__ import (absolute_import, division, print_function)
|
from __future__ import (absolute_import, division, print_function)
|
||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
|
import ast
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from jinja2 import Environment
|
from jinja2 import Environment
|
||||||
|
@ -256,6 +257,17 @@ class Templar:
|
||||||
overrides = JINJA2_ALLOWED_OVERRIDES.intersection(set(overrides))
|
overrides = JINJA2_ALLOWED_OVERRIDES.intersection(set(overrides))
|
||||||
myenv = self.environment.overlay(overrides)
|
myenv = self.environment.overlay(overrides)
|
||||||
|
|
||||||
|
# Get jinja env overrides from template
|
||||||
|
if data.startswith(JINJA2_OVERRIDE):
|
||||||
|
eol = data.find('\n')
|
||||||
|
line = data[len(JINJA2_OVERRIDE):eol]
|
||||||
|
data = data[eol+1:]
|
||||||
|
for pair in line.split(','):
|
||||||
|
(key,val) = pair.split(':')
|
||||||
|
key = key.strip()
|
||||||
|
if key in JINJA2_ALLOWED_OVERRIDES:
|
||||||
|
setattr(myenv, key, ast.literal_eval(val.strip()))
|
||||||
|
|
||||||
#FIXME: add tests
|
#FIXME: add tests
|
||||||
myenv.filters.update(self._get_filters())
|
myenv.filters.update(self._get_filters())
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue