Method: pylint.checkers.modified_iterating_checker.ModifiedIterationChecker._modified_iterating_check
Calls: 3825, Exceptions: 5, Paths: 10Back
Path 1: 2634 calls (0.69)
Name (808) Const (289) Call (286) Expr (253) AssignName (191) Subscript (102) AugAssign (86) Pass (83) Assign (67) If (63)
Call (2252) List (279) Subscript (39) Tuple (19) Set (14) ListComp (11) Const (10) BinOp (5) Dict (2) SetComp (1)
1def _modified_iterating_check(
2 self, node: nodes.NodeNG, iter_obj: nodes.NodeNG
3 ) -> None:
4 msg_id = None
5 if isinstance(node, nodes.Delete) and any(
6 self._deleted_iteration_target_cond(t, iter_obj) for t in node.targets
7 ):
8 inferred = utils.safe_infer(iter_obj)
9 if isinstance(inferred, nodes.List):
10 msg_id = "modified-iterating-list"
11 elif isinstance(inferred, nodes.Dict):
12 msg_id = "modified-iterating-dict"
13 elif isinstance(inferred, nodes.Set):
14 msg_id = "modified-iterating-set"
15 elif not isinstance(iter_obj, (nodes.Name, nodes.Attribute)):
16 pass
17 elif self._modified_iterating_list_cond(node, iter_obj):
18 msg_id = "modified-iterating-list"
19 elif self._modified_iterating_dict_cond(node, iter_obj):
20 msg_id = "modified-iterating-dict"
21 elif self._modified_iterating_set_cond(node, iter_obj):
22 msg_id = "modified-iterating-set"
23 if msg_id:
24 if isinstance(iter_obj, nodes.Attribute):
25 obj_name = iter_obj.attrname
26 else:
27 obj_name = iter_obj.name
28 self.add_message(
29 msg_id,
30 node=node,
31 args=(obj_name,),
32 confidence=interfaces.INFERENCE,
33 )
Path 2: 1169 calls (0.31)
Name (346) Const (138) Call (90) If (83) AssignName (79) Assign (71) Compare (69) Expr (56) Attribute (44) Break (31)
Name (1073) Attribute (96)
1def _modified_iterating_check(
2 self, node: nodes.NodeNG, iter_obj: nodes.NodeNG
3 ) -> None:
4 msg_id = None
5 if isinstance(node, nodes.Delete) and any(
6 self._deleted_iteration_target_cond(t, iter_obj) for t in node.targets
7 ):
8 inferred = utils.safe_infer(iter_obj)
9 if isinstance(inferred, nodes.List):
10 msg_id = "modified-iterating-list"
11 elif isinstance(inferred, nodes.Dict):
12 msg_id = "modified-iterating-dict"
13 elif isinstance(inferred, nodes.Set):
14 msg_id = "modified-iterating-set"
15 elif not isinstance(iter_obj, (nodes.Name, nodes.Attribute)):
16 pass
17 elif self._modified_iterating_list_cond(node, iter_obj):
18 msg_id = "modified-iterating-list"
19 elif self._modified_iterating_dict_cond(node, iter_obj):
20 msg_id = "modified-iterating-dict"
21 elif self._modified_iterating_set_cond(node, iter_obj):
22 msg_id = "modified-iterating-set"
23 if msg_id:
24 if isinstance(iter_obj, nodes.Attribute):
25 obj_name = iter_obj.attrname
26 else:
27 obj_name = iter_obj.name
28 self.add_message(
29 msg_id,
30 node=node,
31 args=(obj_name,),
32 confidence=interfaces.INFERENCE,
33 )
Path 3: 7 calls (0.0)
Expr (7)
Name (7)
1def _modified_iterating_check(
2 self, node: nodes.NodeNG, iter_obj: nodes.NodeNG
3 ) -> None:
4 msg_id = None
5 if isinstance(node, nodes.Delete) and any(
6 self._deleted_iteration_target_cond(t, iter_obj) for t in node.targets
7 ):
8 inferred = utils.safe_infer(iter_obj)
9 if isinstance(inferred, nodes.List):
10 msg_id = "modified-iterating-list"
11 elif isinstance(inferred, nodes.Dict):
12 msg_id = "modified-iterating-dict"
13 elif isinstance(inferred, nodes.Set):
14 msg_id = "modified-iterating-set"
15 elif not isinstance(iter_obj, (nodes.Name, nodes.Attribute)):
16 pass
17 elif self._modified_iterating_list_cond(node, iter_obj):
18 msg_id = "modified-iterating-list"
19 elif self._modified_iterating_dict_cond(node, iter_obj):
20 msg_id = "modified-iterating-dict"
21 elif self._modified_iterating_set_cond(node, iter_obj):
22 msg_id = "modified-iterating-set"
23 if msg_id:
24 if isinstance(iter_obj, nodes.Attribute):
25 obj_name = iter_obj.attrname
26 else:
27 obj_name = iter_obj.name
28 self.add_message(
29 msg_id,
30 node=node,
31 args=(obj_name,),
32 confidence=interfaces.INFERENCE,
33 )
Path 4: 6 calls (0.0)
Delete (6)
Call (5) List (1)
1def _modified_iterating_check(
2 self, node: nodes.NodeNG, iter_obj: nodes.NodeNG
3 ) -> None:
4 msg_id = None
5 if isinstance(node, nodes.Delete) and any(
6 self._deleted_iteration_target_cond(t, iter_obj) for t in node.targets
7 ):
8 inferred = utils.safe_infer(iter_obj)
9 if isinstance(inferred, nodes.List):
10 msg_id = "modified-iterating-list"
11 elif isinstance(inferred, nodes.Dict):
12 msg_id = "modified-iterating-dict"
13 elif isinstance(inferred, nodes.Set):
14 msg_id = "modified-iterating-set"
15 elif not isinstance(iter_obj, (nodes.Name, nodes.Attribute)):
16 pass
17 elif self._modified_iterating_list_cond(node, iter_obj):
18 msg_id = "modified-iterating-list"
19 elif self._modified_iterating_dict_cond(node, iter_obj):
20 msg_id = "modified-iterating-dict"
21 elif self._modified_iterating_set_cond(node, iter_obj):
22 msg_id = "modified-iterating-set"
23 if msg_id:
24 if isinstance(iter_obj, nodes.Attribute):
25 obj_name = iter_obj.attrname
26 else:
27 obj_name = iter_obj.name
28 self.add_message(
29 msg_id,
30 node=node,
31 args=(obj_name,),
32 confidence=interfaces.INFERENCE,
33 )
Path 5: 2 calls (0.0)
Assign (2)
Name (2)
1def _modified_iterating_check(
2 self, node: nodes.NodeNG, iter_obj: nodes.NodeNG
3 ) -> None:
4 msg_id = None
5 if isinstance(node, nodes.Delete) and any(
6 self._deleted_iteration_target_cond(t, iter_obj) for t in node.targets
7 ):
8 inferred = utils.safe_infer(iter_obj)
9 if isinstance(inferred, nodes.List):
10 msg_id = "modified-iterating-list"
11 elif isinstance(inferred, nodes.Dict):
12 msg_id = "modified-iterating-dict"
13 elif isinstance(inferred, nodes.Set):
14 msg_id = "modified-iterating-set"
15 elif not isinstance(iter_obj, (nodes.Name, nodes.Attribute)):
16 pass
17 elif self._modified_iterating_list_cond(node, iter_obj):
18 msg_id = "modified-iterating-list"
19 elif self._modified_iterating_dict_cond(node, iter_obj):
20 msg_id = "modified-iterating-dict"
21 elif self._modified_iterating_set_cond(node, iter_obj):
22 msg_id = "modified-iterating-set"
23 if msg_id:
24 if isinstance(iter_obj, nodes.Attribute):
25 obj_name = iter_obj.attrname
26 else:
27 obj_name = iter_obj.name
28 self.add_message(
29 msg_id,
30 node=node,
31 args=(obj_name,),
32 confidence=interfaces.INFERENCE,
33 )
Path 6: 2 calls (0.0)
Expr (2)
Name (2)
1def _modified_iterating_check(
2 self, node: nodes.NodeNG, iter_obj: nodes.NodeNG
3 ) -> None:
4 msg_id = None
5 if isinstance(node, nodes.Delete) and any(
6 self._deleted_iteration_target_cond(t, iter_obj) for t in node.targets
7 ):
8 inferred = utils.safe_infer(iter_obj)
9 if isinstance(inferred, nodes.List):
10 msg_id = "modified-iterating-list"
11 elif isinstance(inferred, nodes.Dict):
12 msg_id = "modified-iterating-dict"
13 elif isinstance(inferred, nodes.Set):
14 msg_id = "modified-iterating-set"
15 elif not isinstance(iter_obj, (nodes.Name, nodes.Attribute)):
16 pass
17 elif self._modified_iterating_list_cond(node, iter_obj):
18 msg_id = "modified-iterating-list"
19 elif self._modified_iterating_dict_cond(node, iter_obj):
20 msg_id = "modified-iterating-dict"
21 elif self._modified_iterating_set_cond(node, iter_obj):
22 msg_id = "modified-iterating-set"
23 if msg_id:
24 if isinstance(iter_obj, nodes.Attribute):
25 obj_name = iter_obj.attrname
26 else:
27 obj_name = iter_obj.name
28 self.add_message(
29 msg_id,
30 node=node,
31 args=(obj_name,),
32 confidence=interfaces.INFERENCE,
33 )
Path 7: 2 calls (0.0)
Delete (2)
List (2)
GeneratorExit (2)
1def _modified_iterating_check(
2 self, node: nodes.NodeNG, iter_obj: nodes.NodeNG
3 ) -> None:
4 msg_id = None
5 if isinstance(node, nodes.Delete) and any(
6 self._deleted_iteration_target_cond(t, iter_obj) for t in node.targets
7 ):
8 inferred = utils.safe_infer(iter_obj)
9 if isinstance(inferred, nodes.List):
10 msg_id = "modified-iterating-list"
11 elif isinstance(inferred, nodes.Dict):
12 msg_id = "modified-iterating-dict"
13 elif isinstance(inferred, nodes.Set):
14 msg_id = "modified-iterating-set"
15 elif not isinstance(iter_obj, (nodes.Name, nodes.Attribute)):
16 pass
17 elif self._modified_iterating_list_cond(node, iter_obj):
18 msg_id = "modified-iterating-list"
19 elif self._modified_iterating_dict_cond(node, iter_obj):
20 msg_id = "modified-iterating-dict"
21 elif self._modified_iterating_set_cond(node, iter_obj):
22 msg_id = "modified-iterating-set"
23 if msg_id:
24 if isinstance(iter_obj, nodes.Attribute):
25 obj_name = iter_obj.attrname
26 else:
27 obj_name = iter_obj.name
28 self.add_message(
29 msg_id,
30 node=node,
31 args=(obj_name,),
32 confidence=interfaces.INFERENCE,
33 )
Path 8: 1 calls (0.0)
Delete (1)
Name (1)
GeneratorExit (1)
1def _modified_iterating_check(
2 self, node: nodes.NodeNG, iter_obj: nodes.NodeNG
3 ) -> None:
4 msg_id = None
5 if isinstance(node, nodes.Delete) and any(
6 self._deleted_iteration_target_cond(t, iter_obj) for t in node.targets
7 ):
8 inferred = utils.safe_infer(iter_obj)
9 if isinstance(inferred, nodes.List):
10 msg_id = "modified-iterating-list"
11 elif isinstance(inferred, nodes.Dict):
12 msg_id = "modified-iterating-dict"
13 elif isinstance(inferred, nodes.Set):
14 msg_id = "modified-iterating-set"
15 elif not isinstance(iter_obj, (nodes.Name, nodes.Attribute)):
16 pass
17 elif self._modified_iterating_list_cond(node, iter_obj):
18 msg_id = "modified-iterating-list"
19 elif self._modified_iterating_dict_cond(node, iter_obj):
20 msg_id = "modified-iterating-dict"
21 elif self._modified_iterating_set_cond(node, iter_obj):
22 msg_id = "modified-iterating-set"
23 if msg_id:
24 if isinstance(iter_obj, nodes.Attribute):
25 obj_name = iter_obj.attrname
26 else:
27 obj_name = iter_obj.name
28 self.add_message(
29 msg_id,
30 node=node,
31 args=(obj_name,),
32 confidence=interfaces.INFERENCE,
33 )
Path 9: 1 calls (0.0)
Delete (1)
Name (1)
GeneratorExit (1)
1def _modified_iterating_check(
2 self, node: nodes.NodeNG, iter_obj: nodes.NodeNG
3 ) -> None:
4 msg_id = None
5 if isinstance(node, nodes.Delete) and any(
6 self._deleted_iteration_target_cond(t, iter_obj) for t in node.targets
7 ):
8 inferred = utils.safe_infer(iter_obj)
9 if isinstance(inferred, nodes.List):
10 msg_id = "modified-iterating-list"
11 elif isinstance(inferred, nodes.Dict):
12 msg_id = "modified-iterating-dict"
13 elif isinstance(inferred, nodes.Set):
14 msg_id = "modified-iterating-set"
15 elif not isinstance(iter_obj, (nodes.Name, nodes.Attribute)):
16 pass
17 elif self._modified_iterating_list_cond(node, iter_obj):
18 msg_id = "modified-iterating-list"
19 elif self._modified_iterating_dict_cond(node, iter_obj):
20 msg_id = "modified-iterating-dict"
21 elif self._modified_iterating_set_cond(node, iter_obj):
22 msg_id = "modified-iterating-set"
23 if msg_id:
24 if isinstance(iter_obj, nodes.Attribute):
25 obj_name = iter_obj.attrname
26 else:
27 obj_name = iter_obj.name
28 self.add_message(
29 msg_id,
30 node=node,
31 args=(obj_name,),
32 confidence=interfaces.INFERENCE,
33 )
Path 10: 1 calls (0.0)
Delete (1)
Attribute (1)
GeneratorExit (1)
1def _modified_iterating_check(
2 self, node: nodes.NodeNG, iter_obj: nodes.NodeNG
3 ) -> None:
4 msg_id = None
5 if isinstance(node, nodes.Delete) and any(
6 self._deleted_iteration_target_cond(t, iter_obj) for t in node.targets
7 ):
8 inferred = utils.safe_infer(iter_obj)
9 if isinstance(inferred, nodes.List):
10 msg_id = "modified-iterating-list"
11 elif isinstance(inferred, nodes.Dict):
12 msg_id = "modified-iterating-dict"
13 elif isinstance(inferred, nodes.Set):
14 msg_id = "modified-iterating-set"
15 elif not isinstance(iter_obj, (nodes.Name, nodes.Attribute)):
16 pass
17 elif self._modified_iterating_list_cond(node, iter_obj):
18 msg_id = "modified-iterating-list"
19 elif self._modified_iterating_dict_cond(node, iter_obj):
20 msg_id = "modified-iterating-dict"
21 elif self._modified_iterating_set_cond(node, iter_obj):
22 msg_id = "modified-iterating-set"
23 if msg_id:
24 if isinstance(iter_obj, nodes.Attribute):
25 obj_name = iter_obj.attrname
26 else:
27 obj_name = iter_obj.name
28 self.add_message(
29 msg_id,
30 node=node,
31 args=(obj_name,),
32 confidence=interfaces.INFERENCE,
33 )