def _check_simplifiable_returning_if(self, node: ast.If) -> None:
        body = node.body
        simple_if_and_root = not (ifs.has_elif(node) or ifs.is_elif(node))
        if keywords.is_simple_return(body) and simple_if_and_root:
            if ifs.has_else(node):
                else_body = node.orelse
                if keywords.is_simple_return(else_body):
                    self.add_violation(SimplifiableReturningIfViolation(node))
                return

            self._check_simplifiable_returning_parent(node)
 def _check_simplifiable_returning_if(self, node: ast.If) -> None:
     body = node.body
     simple_if_and_root = not (ifs.has_elif(node) or ifs.is_elif(node))
     if keywords.is_simple_return(body) and simple_if_and_root:
         if ifs.has_else(node):
             else_body = node.orelse
             if keywords.is_simple_return(else_body):
                 self.add_violation(SimplifiableReturningIfViolation(node))
             return
         body = getattr(node, 'wps_parent').body
         next_index_in_parent = body.index(node) + 1
         if keywords.next_node_returns_bool(body, next_index_in_parent):
             self.add_violation(SimplifiableReturningIfViolation(node))
Esempio n. 3
0
 def _check_simplifiable_if(self, node: ast.If) -> None:
     if not ifs.is_elif(node) and not ifs.root_if(node):
         body_var = self._is_simplifiable_assign(node.body)
         else_var = self._is_simplifiable_assign(node.orelse)
         if body_var and body_var == else_var:
             self.add_violation(SimplifiableIfViolation(node))