Method: pylint.checkers.classes.class_checker.ClassChecker._check_invalid_class_object
Calls: 510, Exceptions: 0, Paths: 7Back
Path 1: 491 calls (0.96)
AssignAttr (491)
None (491)
1def _check_invalid_class_object(self, node: nodes.AssignAttr) -> None:
2 if not node.attrname == "__class__":
3 return
4 if isinstance(node.parent, nodes.Tuple):
5 class_index = -1
6 for i, elt in enumerate(node.parent.elts):
7 if hasattr(elt, "attrname") and elt.attrname == "__class__":
8 class_index = i
9 if class_index == -1:
10 # This should not happen because we checked that the node name
11 # is '__class__' earlier, but let's not be too confident here
12 return # pragma: no cover
13 inferred = safe_infer(node.parent.parent.value.elts[class_index])
14 else:
15 inferred = safe_infer(node.parent.value)
16 if (
17 isinstance(inferred, nodes.ClassDef)
18 or inferred is astroid.Uninferable
19 or inferred is None
20 ):
21 # If is uninferable, we allow it to prevent false positives
22 return
23 self.add_message(
24 "invalid-class-object",
25 node=node,
26 args=inferred.__class__.__name__,
27 confidence=INFERENCE,
28 )
Path 2: 9 calls (0.02)
AssignAttr (9)
None (9)
1def _check_invalid_class_object(self, node: nodes.AssignAttr) -> None:
2 if not node.attrname == "__class__":
3 return
4 if isinstance(node.parent, nodes.Tuple):
5 class_index = -1
6 for i, elt in enumerate(node.parent.elts):
7 if hasattr(elt, "attrname") and elt.attrname == "__class__":
8 class_index = i
9 if class_index == -1:
10 # This should not happen because we checked that the node name
11 # is '__class__' earlier, but let's not be too confident here
12 return # pragma: no cover
13 inferred = safe_infer(node.parent.parent.value.elts[class_index])
14 else:
15 inferred = safe_infer(node.parent.value)
16 if (
17 isinstance(inferred, nodes.ClassDef)
18 or inferred is astroid.Uninferable
19 or inferred is None
20 ):
21 # If is uninferable, we allow it to prevent false positives
22 return
23 self.add_message(
24 "invalid-class-object",
25 node=node,
26 args=inferred.__class__.__name__,
27 confidence=INFERENCE,
28 )
Path 3: 3 calls (0.01)
AssignAttr (3)
None (3)
1def _check_invalid_class_object(self, node: nodes.AssignAttr) -> None:
2 if not node.attrname == "__class__":
3 return
4 if isinstance(node.parent, nodes.Tuple):
5 class_index = -1
6 for i, elt in enumerate(node.parent.elts):
7 if hasattr(elt, "attrname") and elt.attrname == "__class__":
8 class_index = i
9 if class_index == -1:
10 # This should not happen because we checked that the node name
11 # is '__class__' earlier, but let's not be too confident here
12 return # pragma: no cover
13 inferred = safe_infer(node.parent.parent.value.elts[class_index])
14 else:
15 inferred = safe_infer(node.parent.value)
16 if (
17 isinstance(inferred, nodes.ClassDef)
18 or inferred is astroid.Uninferable
19 or inferred is None
20 ):
21 # If is uninferable, we allow it to prevent false positives
22 return
23 self.add_message(
24 "invalid-class-object",
25 node=node,
26 args=inferred.__class__.__name__,
27 confidence=INFERENCE,
28 )
Path 4: 3 calls (0.01)
AssignAttr (3)
1def _check_invalid_class_object(self, node: nodes.AssignAttr) -> None:
2 if not node.attrname == "__class__":
3 return
4 if isinstance(node.parent, nodes.Tuple):
5 class_index = -1
6 for i, elt in enumerate(node.parent.elts):
7 if hasattr(elt, "attrname") and elt.attrname == "__class__":
8 class_index = i
9 if class_index == -1:
10 # This should not happen because we checked that the node name
11 # is '__class__' earlier, but let's not be too confident here
12 return # pragma: no cover
13 inferred = safe_infer(node.parent.parent.value.elts[class_index])
14 else:
15 inferred = safe_infer(node.parent.value)
16 if (
17 isinstance(inferred, nodes.ClassDef)
18 or inferred is astroid.Uninferable
19 or inferred is None
20 ):
21 # If is uninferable, we allow it to prevent false positives
22 return
23 self.add_message(
24 "invalid-class-object",
25 node=node,
26 args=inferred.__class__.__name__,
27 confidence=INFERENCE,
28 )
Path 5: 2 calls (0.0)
AssignAttr (2)
1def _check_invalid_class_object(self, node: nodes.AssignAttr) -> None:
2 if not node.attrname == "__class__":
3 return
4 if isinstance(node.parent, nodes.Tuple):
5 class_index = -1
6 for i, elt in enumerate(node.parent.elts):
7 if hasattr(elt, "attrname") and elt.attrname == "__class__":
8 class_index = i
9 if class_index == -1:
10 # This should not happen because we checked that the node name
11 # is '__class__' earlier, but let's not be too confident here
12 return # pragma: no cover
13 inferred = safe_infer(node.parent.parent.value.elts[class_index])
14 else:
15 inferred = safe_infer(node.parent.value)
16 if (
17 isinstance(inferred, nodes.ClassDef)
18 or inferred is astroid.Uninferable
19 or inferred is None
20 ):
21 # If is uninferable, we allow it to prevent false positives
22 return
23 self.add_message(
24 "invalid-class-object",
25 node=node,
26 args=inferred.__class__.__name__,
27 confidence=INFERENCE,
28 )
Path 6: 1 calls (0.0)
AssignAttr (1)
None (1)
1def _check_invalid_class_object(self, node: nodes.AssignAttr) -> None:
2 if not node.attrname == "__class__":
3 return
4 if isinstance(node.parent, nodes.Tuple):
5 class_index = -1
6 for i, elt in enumerate(node.parent.elts):
7 if hasattr(elt, "attrname") and elt.attrname == "__class__":
8 class_index = i
9 if class_index == -1:
10 # This should not happen because we checked that the node name
11 # is '__class__' earlier, but let's not be too confident here
12 return # pragma: no cover
13 inferred = safe_infer(node.parent.parent.value.elts[class_index])
14 else:
15 inferred = safe_infer(node.parent.value)
16 if (
17 isinstance(inferred, nodes.ClassDef)
18 or inferred is astroid.Uninferable
19 or inferred is None
20 ):
21 # If is uninferable, we allow it to prevent false positives
22 return
23 self.add_message(
24 "invalid-class-object",
25 node=node,
26 args=inferred.__class__.__name__,
27 confidence=INFERENCE,
28 )
Path 7: 1 calls (0.0)
AssignAttr (1)
None (1)
1def _check_invalid_class_object(self, node: nodes.AssignAttr) -> None:
2 if not node.attrname == "__class__":
3 return
4 if isinstance(node.parent, nodes.Tuple):
5 class_index = -1
6 for i, elt in enumerate(node.parent.elts):
7 if hasattr(elt, "attrname") and elt.attrname == "__class__":
8 class_index = i
9 if class_index == -1:
10 # This should not happen because we checked that the node name
11 # is '__class__' earlier, but let's not be too confident here
12 return # pragma: no cover
13 inferred = safe_infer(node.parent.parent.value.elts[class_index])
14 else:
15 inferred = safe_infer(node.parent.value)
16 if (
17 isinstance(inferred, nodes.ClassDef)
18 or inferred is astroid.Uninferable
19 or inferred is None
20 ):
21 # If is uninferable, we allow it to prevent false positives
22 return
23 self.add_message(
24 "invalid-class-object",
25 node=node,
26 args=inferred.__class__.__name__,
27 confidence=INFERENCE,
28 )