def filter_stream(self, stream):
"""
We convert
{{ some.variable | filter1 | filter 2}}
to
{{ some.variable | filter1 | filter 2 | yaml}}
... for all variable declarations in the template
This function is called by jinja2 immediately
after the lexing stage, but before the parser is called.
"""
while not stream.eos:
token = next(stream)
if token.test('variable_begin'):
var_expr = []
while not token.test('variable_end'):
var_expr.append(token)
token = next(stream)
variable_end = token
last_token = var_expr[-1]
if last_token.test('name') and last_token.value == 'yaml':
# don't yaml twice
continue
var_expr.append(Token(10, 'pipe', u'|'))
var_expr.append(Token(10, 'name', u'yaml'))
var_expr.append(variable_end)
for token in var_expr:
yield token
else:
yield token
transformer.py 文件源码
python
阅读 21
收藏 0
点赞 0
评论 0
评论列表
文章目录