From f17f2d9546c42bbf53bb75a77734df33d0c2e182 Mon Sep 17 00:00:00 2001 From: Laura M?dioni Date: Tue, 27 Oct 2015 09:46:52 +0100 Subject: improve NotChecker - move reverse_op declaration out of visit_unaryop - build message out of operand, instead of using replace() on node.as_string() --- pylint/checkers/base.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pylint/checkers/base.py b/pylint/checkers/base.py index 75a4d7f..df76c60 100644 --- a/pylint/checkers/base.py +++ b/pylint/checkers/base.py @@ -1855,6 +1855,9 @@ class NotChecker(_BasicChecker): 'negation.'), } + reverse_op = {'<': '>=', '<=': '>', '>': '<=', '>=': '<', '==': '!=', + '!=': '=='} + @check_messages('unneeded-not') def visit_unaryop(self, node): if node.op != 'not': @@ -1865,11 +1868,11 @@ class NotChecker(_BasicChecker): args=(node.as_string(), operand.operand.as_string())) elif isinstance(operand, astroid.Compare): - operator, _ = operand.ops[0] - reverse_op = {'<': '>=', '<=': '>', '>': '<=', '>=': '<', - '==': '!=', '!=': '=='} - suggestion = node.as_string().replace('not ', '').replace( - operator, reverse_op[operator]) + left = operand.left + operator, right = operand.ops[0] + suggestion = '%s %s %s' % (left.as_string(), + self.reverse_op[operator], + right.as_string()) self.add_message('unneeded-not', node=node, args=(node.as_string(), suggestion)) -- cgit v1.2.1