From: Kevin Date: Tue, 12 May 2020 01:49:56 +0000 (-0400) Subject: Support in/notin operator expressions in parser X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cf8262bd479eb9ae62b3b97049d36a99beaa3187;p=thirdparty%2Fjinja.git Support in/notin operator expressions in parser --- diff --git a/new_parser.py b/new_parser.py index 8e13c1e4..f9b31071 100644 --- a/new_parser.py +++ b/new_parser.py @@ -294,8 +294,8 @@ def parse_conditional_expression(ast): if 'variable' in ast: return parse_variable(ast) - if 'comparator' in ast: - return parse_conditional_expression_comparator(ast) + if 'operator' in ast: + return parse_conditional_expression_operator(ast) if 'concatenate' in ast: return parse_concatenate_expression(ast) @@ -311,7 +311,7 @@ def parse_conditional_expression(ast): return None -def parse_conditional_expression_comparator(ast): +def parse_conditional_expression_operator(ast): operand_map = { '>': 'gt', '>=': 'gteq', @@ -325,7 +325,7 @@ def parse_conditional_expression_comparator(ast): parse_variable(ast['left']), [ nodes.Operand( - operand_map[ast['comparator']], + operand_map.get(ast['operator'], ast['operator']), parse_variable(ast['right']) ) ], diff --git a/test_template.jinja b/test_template.jinja index 4c7beea6..07b8dc9f 100644 --- a/test_template.jinja +++ b/test_template.jinja @@ -66,4 +66,5 @@ across lines #} {{ "[{}]".format(page.title) if page.title }} {% extends layout_template if layout_template is defined else 'master.html' %} -{{ "Hello " ~ name ~ "!" }} \ No newline at end of file +{{ "Hello " ~ name ~ "!" }} +{{ 1 in [1, 2, 3] }} \ No newline at end of file