pylint/checkers/variables.py
def _check_module_attrs(self, node, module, module_names):
        """check that module_names (list of string) are accessible through the
        given module
        if the latest access name corresponds to a module, return it
        """
        assert isinstance(module, astroid.Module), module
        while module_names:
            name = module_names.pop(0)
            if name == "__dict__":
                module = None
                break
            try:
                module = next(module.getattr(name)[0].infer())
                if module is astroid.Uninferable:
                    return None
            except astroid.NotFoundError:
                if module.name in self._ignored_modules:
                    return None
                self.add_message(
                    "no-name-in-module", args=(name, module.name), node=node
                )
                return None
            except astroid.InferenceError:
                return None
        if module_names:
            # FIXME: other message if name is not the latest part of
            # module_names ?
            modname = module.name if module else "__dict__"
            self.add_message(
                "no-name-in-module", node=node, args=(".".join(module_names), modname)
            )
            return None
        if isinstance(module, astroid.Module):
            return module
        return None
def _check_module_attrs(self, node, module, module_names):
        """check that module_names (list of string) are accessible through the
        given module
        if the latest access name corresponds to a module, return it
        """
        assert isinstance(module, astroid.Module), module
        while module_names:
            name = module_names.pop(0)
            if name == "__dict__":
                module = None
                break
            try:
                module = next(module.getattr(name)[0].infer())
                if module is astroid.Uninferable:
                    return None
            except astroid.NotFoundError:
                if module.name in self._ignored_modules:
                    return None
                self.add_message(
                    "no-name-in-module", args=(name, module.name), node=node
                )
                return None
            except astroid.InferenceError:
                return None
        if module_names:
            # FIXME: other message if name is not the latest part of
            # module_names ?
            modname = module.name if module else "__dict__"
            self.add_message(
                "no-name-in-module", node=node, args=(".".join(module_names), modname)
            )
            return None
        if isinstance(module, astroid.Module):
            return module
        return None
def _check_module_attrs ( self , node , module , module_names ) : assert isinstance ( module , astroid . Module ) , module while module_names : name = module_names . pop ( 0 ) if name == "__dict__" : module = None break try : module = next ( module . getattr ( name ) [ 0 ] . infer ( ) ) if module is astroid . Uninferable : return None except astroid . NotFoundError : if module . name in self . _ignored_modules : return None self . add_message ( "no-name-in-module" , args = ( name , module . name ) , node = node ) return None except astroid . InferenceError : return None if module_names : # FIXME: other message if name is not the latest part of # module_names ? modname = module . name if module else "__dict__" self . add_message ( "no-name-in-module" , node = node , args = ( "." . join ( module_names ) , modname ) ) return None if isinstance ( module , astroid . Module ) : return module return None
check that module_names (list of string) are accessible through the
        given module
        if the latest access name corresponds to a module, return it
check that module_names ( list of string ) are accessible through the given module if the latest access name corresponds to a module return it