pylint/checkers/typecheck.py
def visit_assign(self, node):
        """check that if assigning to a function call, the function is
        possibly returning something valuable
        """
        if not isinstance(node.value, astroid.Call):
            return
        function_node = safe_infer(node.value.func)
        # skip class, generator and incomplete function definition
        funcs = (astroid.FunctionDef, astroid.UnboundMethod, astroid.BoundMethod)
        if not (
            isinstance(function_node, funcs)
            and function_node.root().fully_defined()
            and not function_node.decorators
        ):
            return
        if (
            function_node.is_generator()
            or function_node.is_abstract(pass_is_abstract=False)
            or isinstance(function_node, astroid.AsyncFunctionDef)
        ):
            return
        returns = list(
            function_node.nodes_of_class(astroid.Return, skip_klass=astroid.FunctionDef)
        )
        if not returns:
            self.add_message("assignment-from-no-return", node=node)
        else:
            for rnode in returns:
                if not (
                    isinstance(rnode.value, astroid.Const)
                    and rnode.value.value is None
                    or rnode.value is None
                ):
                    break
            else:
                self.add_message("assignment-from-none", node=node)
def visit_assign(self, node):
        if not isinstance(node.value, astroid.Call):
            return
        function_node = safe_infer(node.value.func)
        # skip class, generator and incomplete function definition
        funcs = (astroid.FunctionDef, astroid.UnboundMethod, astroid.BoundMethod)
        if not (
            isinstance(function_node, funcs)
            and function_node.root().fully_defined()
            and not function_node.decorators
        ):
            return
        if (
            function_node.is_generator()
            or function_node.is_abstract(pass_is_abstract=False)
            or isinstance(function_node, astroid.AsyncFunctionDef)
        ):
            return
        returns = list(
            function_node.nodes_of_class(astroid.Return, skip_klass=astroid.FunctionDef)
        )
        if not returns:
            self.add_message("assignment-from-no-return", node=node)
        else:
            for rnode in returns:
                if not (
                    isinstance(rnode.value, astroid.Const)
                    and rnode.value.value is None
                    or rnode.value is None
                ):
                    break
            else:
                self.add_message("assignment-from-none", node=node)
def visit_assign ( self , node ) : if not isinstance ( node . value , astroid . Call ) : return function_node = safe_infer ( node . value . func ) # skip class, generator and incomplete function definition funcs = ( astroid . FunctionDef , astroid . UnboundMethod , astroid . BoundMethod ) if not ( isinstance ( function_node , funcs ) and function_node . root ( ) . fully_defined ( ) and not function_node . decorators ) : return if ( function_node . is_generator ( ) or function_node . is_abstract ( pass_is_abstract = False ) or isinstance ( function_node , astroid . AsyncFunctionDef ) ) : return returns = list ( function_node . nodes_of_class ( astroid . Return , skip_klass = astroid . FunctionDef ) ) if not returns : self . add_message ( "assignment-from-no-return" , node = node ) else : for rnode in returns : if not ( isinstance ( rnode . value , astroid . Const ) and rnode . value . value is None or rnode . value is None ) : break else : self . add_message ( "assignment-from-none" , node = node )
check that if assigning to a function call, the function is
        possibly returning something valuable
check that if assigning to a function call the function is possibly returning something valuable