From 0b63819ff13876f46cf8775947979d2c3d787649 Mon Sep 17 00:00:00 2001 From: Adrian Czarnecki Date: Wed, 8 Dec 2021 09:11:02 -0800 Subject: [PATCH] Fix problem with pyparsing.operatorPrecedence method Pyparsing library was recently updated in golab requiremnts [1]. Since version 3.0.0 operatorPrecedence method was renamed to infixNotation [2]. [1]https://github.com/openstack/requirements/commit/62f92c01870c2cf007ca65c5f796e819d7ae52e4 [2]https://github.com/pyparsing/pyparsing/blob/16b766b97c9c144be8c3fad4fec00417728abfa6/CHANGES#L598 Change-Id: I3bfefe5b9bc601f383e0b9d80046de387e420fd8 --- lower-constraints.txt | 2 +- monasca_api/expression_parser/alarm_expr_parser.py | 6 +++--- monasca_api/tests/test_alarm_expression.py | 2 +- requirements.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lower-constraints.txt b/lower-constraints.txt index ae43d1b75..8a8c967f1 100644 --- a/lower-constraints.txt +++ b/lower-constraints.txt @@ -77,7 +77,7 @@ pycparser==2.18 Pygments==2.2.0 pyinotify==0.9.6 PyMySQL==0.8.0 -pyparsing==2.1.0 +pyparsing==3.0.6 pyperclip==1.5.27 python-dateutil==2.5.3 python-editor==1.0.3 diff --git a/monasca_api/expression_parser/alarm_expr_parser.py b/monasca_api/expression_parser/alarm_expr_parser.py index 81e6701d1..63a931f8e 100644 --- a/monasca_api/expression_parser/alarm_expr_parser.py +++ b/monasca_api/expression_parser/alarm_expr_parser.py @@ -300,9 +300,9 @@ sub_expression = ((function_and_metric | metric) + relational_op + threshold + sub_expression.setParseAction(SubExpr) expression = ( - pyparsing.operatorPrecedence(sub_expression, - [(AND, 2, pyparsing.opAssoc.LEFT, AndSubExpr), - (OR, 2, pyparsing.opAssoc.LEFT, OrSubExpr)])) + pyparsing.infixNotation(sub_expression, + [(AND, 2, pyparsing.opAssoc.LEFT, AndSubExpr), + (OR, 2, pyparsing.opAssoc.LEFT, OrSubExpr)])) class AlarmExprParser(object): diff --git a/monasca_api/tests/test_alarm_expression.py b/monasca_api/tests/test_alarm_expression.py index 6cfd8a9b2..fbc201b77 100644 --- a/monasca_api/tests/test_alarm_expression.py +++ b/monasca_api/tests/test_alarm_expression.py @@ -73,7 +73,7 @@ class TestAlarmExpression(base.BaseTestCase): sub_exprs = alarm_expr_parser.AlarmExprParser(expression).sub_expr_list print([x.dimensions_as_list for x in sub_exprs].__str__()) self.assertEqual([x.dimensions_as_list for x in sub_exprs].__str__(), - "[(['hostname=fred'], {}), [], []]") + "[ParseResults(['hostname=fred'], {}), [], []]") def test_operator(self): expression = self.good_simple_expression diff --git a/requirements.txt b/requirements.txt index 5f3656564..9c6a1e848 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19,7 +19,7 @@ Paste>=2.0.2 # MIT PasteDeploy>=1.5.0 # MIT pbr!=2.1.0,>=2.0.0 # Apache-2.0 six>=1.12.0 # MIT -pyparsing>=2.1.0 # MIT +pyparsing>=3.0.6 # MIT voluptuous>=0.11.1 # BSD License eventlet!=0.18.3,!=0.20.1,!=0.21.0,!=0.23.0,!=0.25.0,>=0.18.2 # MIT monasca-common>=2.16.0 # Apache-2.0