Method: pylint.checkers.utils.get_import_name
Calls: 1528, Exceptions: 8, Paths: 3Back
Path 1: 1362 calls (0.89)
ImportFrom (1241) Import (121)
'typing' (219) '__future__' (102) 'collections' (76) 'missing' (55) 'unknown' (41) 'enum' (40) 'dataclasses' (40) 'abc' (36) 'functools' (26) 'sys' (2...
'typing' (219) '__future__' (102) 'collections' (76) 'missing' (55) 'unknown' (41) 'enum' (40) 'dataclasses' (40) 'abc' (36) 'functools' (26) 'sys' (2...
1def get_import_name(importnode: ImportNode, modname: str | None) -> str | None:
2 """Get a prepared module name from the given import node.
3
4 In the case of relative imports, this will return the
5 absolute qualified module name, which might be useful
6 for debugging. Otherwise, the initial module name
7 is returned unchanged.
8
9 :param importnode: node representing import statement.
10 :param modname: module name from import statement.
11 :returns: absolute qualified module name of the module
12 used in import.
13 """
14 if isinstance(importnode, nodes.ImportFrom) and importnode.level:
15 root = importnode.root()
16 if isinstance(root, nodes.Module):
17 try:
18 return root.relative_to_absolute_name(modname, level=importnode.level) # type: ignore[no-any-return]
19 except TooManyLevelsError:
20 return modname
21 return modname
Path 2: 158 calls (0.1)
ImportFrom (158)
'' (59) 'foo.bar' (9) 'thing2' (8) 'a' (7) 'optparse' (6) 'd' (6) 'thing1' (4) 'all_the_things' (4) 'b' (4) 'no_self_argument' (4)
'input' (22) 'functional.i' (14) 'functional.w' (10) 'input.func_w0401_package.thing2' (8) 'deprecated_relative_import.optparse' (6) 'functional.foo.b...
1def get_import_name(importnode: ImportNode, modname: str | None) -> str | None:
2 """Get a prepared module name from the given import node.
3
4 In the case of relative imports, this will return the
5 absolute qualified module name, which might be useful
6 for debugging. Otherwise, the initial module name
7 is returned unchanged.
8
9 :param importnode: node representing import statement.
10 :param modname: module name from import statement.
11 :returns: absolute qualified module name of the module
12 used in import.
13 """
14 if isinstance(importnode, nodes.ImportFrom) and importnode.level:
15 root = importnode.root()
16 if isinstance(root, nodes.Module):
17 try:
18 return root.relative_to_absolute_name(modname, level=importnode.level) # type: ignore[no-any-return]
19 except TooManyLevelsError:
20 return modname
21 return modname
Path 3: 8 calls (0.01)
ImportFrom (8)
'other_file' (2) 'parent' (2) 'a' (2) '' (2)
'other_file' (2) 'parent' (2) 'a' (2) '' (2)
TooManyLevelsError (8)
1def get_import_name(importnode: ImportNode, modname: str | None) -> str | None:
2 """Get a prepared module name from the given import node.
3
4 In the case of relative imports, this will return the
5 absolute qualified module name, which might be useful
6 for debugging. Otherwise, the initial module name
7 is returned unchanged.
8
9 :param importnode: node representing import statement.
10 :param modname: module name from import statement.
11 :returns: absolute qualified module name of the module
12 used in import.
13 """
14 if isinstance(importnode, nodes.ImportFrom) and importnode.level:
15 root = importnode.root()
16 if isinstance(root, nodes.Module):
17 try:
18 return root.relative_to_absolute_name(modname, level=importnode.level) # type: ignore[no-any-return]
19 except TooManyLevelsError:
20 return modname
21 return modname