Method: pylint.checkers.variables.VariablesChecker._check_module_attrs
Calls: 1577, Exceptions: 144, Paths: 8Back
Path 1: 820 calls (0.52)
ImportFrom (414) Import (406)
Module (820)
[] (820)
Module (820)
1def _check_module_attrs(
2 self,
3 node: _base_nodes.ImportNode,
4 module: nodes.Module,
5 module_names: list[str],
6 ) -> nodes.Module | None:
7 """Check that module_names (list of string) are accessible through the
8 given module, if the latest access name corresponds to a module, return it.
9 """
10 while module_names:
11 name = module_names.pop(0)
12 if name == "__dict__":
13 module = None
14 break
15 try:
16 module = next(module.getattr(name)[0].infer())
17 if module is astroid.Uninferable:
18 return None
19 except astroid.NotFoundError:
20 if module.name in self._ignored_modules:
21 return None
22 self.add_message(
23 "no-name-in-module", args=(name, module.name), node=node
24 )
25 return None
26 except astroid.InferenceError:
27 return None
28 if module_names:
29 modname = module.name if module else "__dict__"
30 self.add_message(
31 "no-name-in-module", node=node, args=(".".join(module_names), modname)
32 )
33 return None
34 if isinstance(module, nodes.Module):
35 return module
36 return None
Path 2: 505 calls (0.32)
ImportFrom (504) Import (1)
Module (505)
['annotations'] (22) ['Union'] (21) ['List'] (19) ['print_function'] (18) ['TYPE_CHECKING'] (18) ['dataclass'] (18) ['Any'] (18) ['Enum'] (17) ['Dict'...
None (505)
1def _check_module_attrs(
2 self,
3 node: _base_nodes.ImportNode,
4 module: nodes.Module,
5 module_names: list[str],
6 ) -> nodes.Module | None:
7 """Check that module_names (list of string) are accessible through the
8 given module, if the latest access name corresponds to a module, return it.
9 """
10 while module_names:
11 name = module_names.pop(0)
12 if name == "__dict__":
13 module = None
14 break
15 try:
16 module = next(module.getattr(name)[0].infer())
17 if module is astroid.Uninferable:
18 return None
19 except astroid.NotFoundError:
20 if module.name in self._ignored_modules:
21 return None
22 self.add_message(
23 "no-name-in-module", args=(name, module.name), node=node
24 )
25 return None
26 except astroid.InferenceError:
27 return None
28 if module_names:
29 modname = module.name if module else "__dict__"
30 self.add_message(
31 "no-name-in-module", node=node, args=(".".join(module_names), modname)
32 )
33 return None
34 if isinstance(module, nodes.Module):
35 return module
36 return None
Path 3: 106 calls (0.07)
ImportFrom (95) Import (11)
Module (106)
['path'] (19) ['ABCMeta'] (15) ['are_exclusive'] (6) ['Callable'] (5) ['Sequence'] (4) ['Run'] (4) ['Awaitable'] (3) ['BufferedReader'] (3) ['GenericT...
None (106)
InferenceError (106)
1def _check_module_attrs(
2 self,
3 node: _base_nodes.ImportNode,
4 module: nodes.Module,
5 module_names: list[str],
6 ) -> nodes.Module | None:
7 """Check that module_names (list of string) are accessible through the
8 given module, if the latest access name corresponds to a module, return it.
9 """
10 while module_names:
11 name = module_names.pop(0)
12 if name == "__dict__":
13 module = None
14 break
15 try:
16 module = next(module.getattr(name)[0].infer())
17 if module is astroid.Uninferable:
18 return None
19 except astroid.NotFoundError:
20 if module.name in self._ignored_modules:
21 return None
22 self.add_message(
23 "no-name-in-module", args=(name, module.name), node=node
24 )
25 return None
26 except astroid.InferenceError:
27 return None
28 if module_names:
29 modname = module.name if module else "__dict__"
30 self.add_message(
31 "no-name-in-module", node=node, args=(".".join(module_names), modname)
32 )
33 return None
34 if isinstance(module, nodes.Module):
35 return module
36 return None
Path 4: 104 calls (0.07)
ImportFrom (78) Import (26)
Module (104)
['abc'] (23) ['mock'] (7) ['w0401_cycle'] (6) ['func_w0401'] (5) ['lint'] (5) ['testutils'] (4) ['config'] (3) ['handlers'] (3) ['checkers'] (3) ['etr...
Module (104)
1def _check_module_attrs(
2 self,
3 node: _base_nodes.ImportNode,
4 module: nodes.Module,
5 module_names: list[str],
6 ) -> nodes.Module | None:
7 """Check that module_names (list of string) are accessible through the
8 given module, if the latest access name corresponds to a module, return it.
9 """
10 while module_names:
11 name = module_names.pop(0)
12 if name == "__dict__":
13 module = None
14 break
15 try:
16 module = next(module.getattr(name)[0].infer())
17 if module is astroid.Uninferable:
18 return None
19 except astroid.NotFoundError:
20 if module.name in self._ignored_modules:
21 return None
22 self.add_message(
23 "no-name-in-module", args=(name, module.name), node=node
24 )
25 return None
26 except astroid.InferenceError:
27 return None
28 if module_names:
29 modname = module.name if module else "__dict__"
30 self.add_message(
31 "no-name-in-module", node=node, args=(".".join(module_names), modname)
32 )
33 return None
34 if isinstance(module, nodes.Module):
35 return module
36 return None
Path 5: 36 calls (0.02)
ImportFrom (31) Import (5)
Module (36)
['_private'] (3) ['bar'] (3) ['foo'] (3) ['foo2'] (3) ['missing'] (2) ['doesnottexists'] (2) ['__print_function__'] (1) ['other_file'] (1) ['tutu'] (1...
None (36)
AttributeInferenceError (36)
1def _check_module_attrs(
2 self,
3 node: _base_nodes.ImportNode,
4 module: nodes.Module,
5 module_names: list[str],
6 ) -> nodes.Module | None:
7 """Check that module_names (list of string) are accessible through the
8 given module, if the latest access name corresponds to a module, return it.
9 """
10 while module_names:
11 name = module_names.pop(0)
12 if name == "__dict__":
13 module = None
14 break
15 try:
16 module = next(module.getattr(name)[0].infer())
17 if module is astroid.Uninferable:
18 return None
19 except astroid.NotFoundError:
20 if module.name in self._ignored_modules:
21 return None
22 self.add_message(
23 "no-name-in-module", args=(name, module.name), node=node
24 )
25 return None
26 except astroid.InferenceError:
27 return None
28 if module_names:
29 modname = module.name if module else "__dict__"
30 self.add_message(
31 "no-name-in-module", node=node, args=(".".join(module_names), modname)
32 )
33 return None
34 if isinstance(module, nodes.Module):
35 return module
36 return None
Path 6: 4 calls (0.0)
ImportFrom (3) Import (1)
Module (4)
['THING1_PLUS_THING2'] (2) ['flags'] (1) ['dom', 'minidom'] (1)
None (4)
1def _check_module_attrs(
2 self,
3 node: _base_nodes.ImportNode,
4 module: nodes.Module,
5 module_names: list[str],
6 ) -> nodes.Module | None:
7 """Check that module_names (list of string) are accessible through the
8 given module, if the latest access name corresponds to a module, return it.
9 """
10 while module_names:
11 name = module_names.pop(0)
12 if name == "__dict__":
13 module = None
14 break
15 try:
16 module = next(module.getattr(name)[0].infer())
17 if module is astroid.Uninferable:
18 return None
19 except astroid.NotFoundError:
20 if module.name in self._ignored_modules:
21 return None
22 self.add_message(
23 "no-name-in-module", args=(name, module.name), node=node
24 )
25 return None
26 except astroid.InferenceError:
27 return None
28 if module_names:
29 modname = module.name if module else "__dict__"
30 self.add_message(
31 "no-name-in-module", node=node, args=(".".join(module_names), modname)
32 )
33 return None
34 if isinstance(module, nodes.Module):
35 return module
36 return None
Path 7: 1 calls (0.0)
ImportFrom (1)
Module (1)
['s', 'syntax', 'syntax_error'] (1)
None (1)
AttributeInferenceError (1)
1def _check_module_attrs(
2 self,
3 node: _base_nodes.ImportNode,
4 module: nodes.Module,
5 module_names: list[str],
6 ) -> nodes.Module | None:
7 """Check that module_names (list of string) are accessible through the
8 given module, if the latest access name corresponds to a module, return it.
9 """
10 while module_names:
11 name = module_names.pop(0)
12 if name == "__dict__":
13 module = None
14 break
15 try:
16 module = next(module.getattr(name)[0].infer())
17 if module is astroid.Uninferable:
18 return None
19 except astroid.NotFoundError:
20 if module.name in self._ignored_modules:
21 return None
22 self.add_message(
23 "no-name-in-module", args=(name, module.name), node=node
24 )
25 return None
26 except astroid.InferenceError:
27 return None
28 if module_names:
29 modname = module.name if module else "__dict__"
30 self.add_message(
31 "no-name-in-module", node=node, args=(".".join(module_names), modname)
32 )
33 return None
34 if isinstance(module, nodes.Module):
35 return module
36 return None
Path 8: 1 calls (0.0)
ImportFrom (1)
Module (1)
['THIS_does_not_EXIST'] (1)
None (1)
AttributeInferenceError (1)
1def _check_module_attrs(
2 self,
3 node: _base_nodes.ImportNode,
4 module: nodes.Module,
5 module_names: list[str],
6 ) -> nodes.Module | None:
7 """Check that module_names (list of string) are accessible through the
8 given module, if the latest access name corresponds to a module, return it.
9 """
10 while module_names:
11 name = module_names.pop(0)
12 if name == "__dict__":
13 module = None
14 break
15 try:
16 module = next(module.getattr(name)[0].infer())
17 if module is astroid.Uninferable:
18 return None
19 except astroid.NotFoundError:
20 if module.name in self._ignored_modules:
21 return None
22 self.add_message(
23 "no-name-in-module", args=(name, module.name), node=node
24 )
25 return None
26 except astroid.InferenceError:
27 return None
28 if module_names:
29 modname = module.name if module else "__dict__"
30 self.add_message(
31 "no-name-in-module", node=node, args=(".".join(module_names), modname)
32 )
33 return None
34 if isinstance(module, nodes.Module):
35 return module
36 return None