def _check_last_return_in_function(self, node: ast.Return) -> None: parent = get_parent(node) if not isinstance(parent, (ast.FunctionDef, ast.AsyncFunctionDef)): return if node is parent.body[-1] and node.value is None: self.add_violation(InconsistentReturnViolation(node))
def _check_last_return_in_function(self, node: ast.Return) -> None: parent = get_parent(node) if not isinstance(parent, FunctionNodes): return returns = len(tuple(filter( lambda return_node: return_node.value is not None, walk.get_subnodes_by_type(parent, ast.Return), ))) last_value_return = ( len(parent.body) > 1 and returns < 2 and isinstance(node.value, ast.NameConstant) and node.value.value is None ) one_return_with_none = ( returns == 1 and isinstance(node.value, ast.NameConstant) and node.value.value is None ) if node.value is None or last_value_return or one_return_with_none: self.add_violation(InconsistentReturnViolation(node))