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            )