transformer.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:airflow-declarative 作者: rambler-digital-solutions 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号