Method: pylint.checkers.utils.is_typing_member
Calls: 40, Exceptions: 1, Paths: 5Back
Path 1: 32 calls (0.8)
Name (32)
('Annotated', 'Literal') (30) ('Literal',) (2)
True (21) False (11)
1def is_typing_member(node: nodes.NodeNG, names_to_check: tuple[str, ...]) -> bool:
2 """Check if `node` is a member of the `typing` module and has one of the names from
3 `names_to_check`.
4 """
5 if isinstance(node, nodes.Name):
6 try:
7 import_from = node.lookup(node.name)[1][0]
8 except IndexError:
9 return False
10
11 if isinstance(import_from, nodes.ImportFrom):
12 return (
13 import_from.modname == "typing"
14 and import_from.real_name(node.name) in names_to_check
15 )
16 elif isinstance(node, nodes.Attribute):
17 inferred_module = safe_infer(node.expr)
18 return (
19 isinstance(inferred_module, nodes.Module)
20 and inferred_module.name == "typing"
21 and node.attrname in names_to_check
22 )
23 return False
Path 2: 5 calls (0.12)
Attribute (5)
('Annotated', 'Literal') (4) ('Literal',) (1)
True (5)
1def is_typing_member(node: nodes.NodeNG, names_to_check: tuple[str, ...]) -> bool:
2 """Check if `node` is a member of the `typing` module and has one of the names from
3 `names_to_check`.
4 """
5 if isinstance(node, nodes.Name):
6 try:
7 import_from = node.lookup(node.name)[1][0]
8 except IndexError:
9 return False
10
11 if isinstance(import_from, nodes.ImportFrom):
12 return (
13 import_from.modname == "typing"
14 and import_from.real_name(node.name) in names_to_check
15 )
16 elif isinstance(node, nodes.Attribute):
17 inferred_module = safe_infer(node.expr)
18 return (
19 isinstance(inferred_module, nodes.Module)
20 and inferred_module.name == "typing"
21 and node.attrname in names_to_check
22 )
23 return False
Path 3: 1 calls (0.03)
Name (1)
('Annotated', 'Literal') (1)
False (1)
1def is_typing_member(node: nodes.NodeNG, names_to_check: tuple[str, ...]) -> bool:
2 """Check if `node` is a member of the `typing` module and has one of the names from
3 `names_to_check`.
4 """
5 if isinstance(node, nodes.Name):
6 try:
7 import_from = node.lookup(node.name)[1][0]
8 except IndexError:
9 return False
10
11 if isinstance(import_from, nodes.ImportFrom):
12 return (
13 import_from.modname == "typing"
14 and import_from.real_name(node.name) in names_to_check
15 )
16 elif isinstance(node, nodes.Attribute):
17 inferred_module = safe_infer(node.expr)
18 return (
19 isinstance(inferred_module, nodes.Module)
20 and inferred_module.name == "typing"
21 and node.attrname in names_to_check
22 )
23 return False
Path 4: 1 calls (0.03)
Name (1)
('Literal',) (1)
False (1)
IndexError (1)
1def is_typing_member(node: nodes.NodeNG, names_to_check: tuple[str, ...]) -> bool:
2 """Check if `node` is a member of the `typing` module and has one of the names from
3 `names_to_check`.
4 """
5 if isinstance(node, nodes.Name):
6 try:
7 import_from = node.lookup(node.name)[1][0]
8 except IndexError:
9 return False
10
11 if isinstance(import_from, nodes.ImportFrom):
12 return (
13 import_from.modname == "typing"
14 and import_from.real_name(node.name) in names_to_check
15 )
16 elif isinstance(node, nodes.Attribute):
17 inferred_module = safe_infer(node.expr)
18 return (
19 isinstance(inferred_module, nodes.Module)
20 and inferred_module.name == "typing"
21 and node.attrname in names_to_check
22 )
23 return False
Path 5: 1 calls (0.03)
Attribute (1)
('Literal',) (1)
False (1)
1def is_typing_member(node: nodes.NodeNG, names_to_check: tuple[str, ...]) -> bool:
2 """Check if `node` is a member of the `typing` module and has one of the names from
3 `names_to_check`.
4 """
5 if isinstance(node, nodes.Name):
6 try:
7 import_from = node.lookup(node.name)[1][0]
8 except IndexError:
9 return False
10
11 if isinstance(import_from, nodes.ImportFrom):
12 return (
13 import_from.modname == "typing"
14 and import_from.real_name(node.name) in names_to_check
15 )
16 elif isinstance(node, nodes.Attribute):
17 inferred_module = safe_infer(node.expr)
18 return (
19 isinstance(inferred_module, nodes.Module)
20 and inferred_module.name == "typing"
21 and node.attrname in names_to_check
22 )
23 return False