Path 1: 22 calls (0.5)

If (21) For (1)

If (21) For (1)

() (22)

1def _subgraph_parse(
2        self,
3        node: _SubGraphNodes,
4        pathnode: _SubGraphNodes,
5        extra_blocks: Sequence[nodes.ExceptHandler],
6    ) -> None:
7        """Parse the body and any `else` block of `if` and `for` statements."""
8        loose_ends = []
9        self.tail = node
10        self.dispatch_list(node.body)
11        loose_ends.append(self.tail)
12        for extra in extra_blocks:
13            self.tail = node
14            self.dispatch_list(extra.body)
15            loose_ends.append(self.tail)
16        if node.orelse:
17            self.tail = node
18            self.dispatch_list(node.orelse)
19            loose_ends.append(self.tail)
20        else:
21            loose_ends.append(node)
22        if node and self.graph:
23            bottom = f"{self._bottom_counter}"
24            self._bottom_counter += 1
25            for end in loose_ends:
26                self.graph.connect(end, bottom)
27            self.tail = bottom
            

Path 2: 20 calls (0.45)

If (14) For (5) While (1)

If (14) For (5) While (1)

() (20)

1def _subgraph_parse(
2        self,
3        node: _SubGraphNodes,
4        pathnode: _SubGraphNodes,
5        extra_blocks: Sequence[nodes.ExceptHandler],
6    ) -> None:
7        """Parse the body and any `else` block of `if` and `for` statements."""
8        loose_ends = []
9        self.tail = node
10        self.dispatch_list(node.body)
11        loose_ends.append(self.tail)
12        for extra in extra_blocks:
13            self.tail = node
14            self.dispatch_list(extra.body)
15            loose_ends.append(self.tail)
16        if node.orelse:
17            self.tail = node
18            self.dispatch_list(node.orelse)
19            loose_ends.append(self.tail)
20        else:
21            loose_ends.append(node)
22        if node and self.graph:
23            bottom = f"{self._bottom_counter}"
24            self._bottom_counter += 1
25            for end in loose_ends:
26                self.graph.connect(end, bottom)
27            self.tail = bottom
            

Path 3: 1 calls (0.02)

TryExcept (1)

TryExcept (1)

list (1)

1def _subgraph_parse(
2        self,
3        node: _SubGraphNodes,
4        pathnode: _SubGraphNodes,
5        extra_blocks: Sequence[nodes.ExceptHandler],
6    ) -> None:
7        """Parse the body and any `else` block of `if` and `for` statements."""
8        loose_ends = []
9        self.tail = node
10        self.dispatch_list(node.body)
11        loose_ends.append(self.tail)
12        for extra in extra_blocks:
13            self.tail = node
14            self.dispatch_list(extra.body)
15            loose_ends.append(self.tail)
16        if node.orelse:
17            self.tail = node
18            self.dispatch_list(node.orelse)
19            loose_ends.append(self.tail)
20        else:
21            loose_ends.append(node)
22        if node and self.graph:
23            bottom = f"{self._bottom_counter}"
24            self._bottom_counter += 1
25            for end in loose_ends:
26                self.graph.connect(end, bottom)
27            self.tail = bottom
            

Path 4: 1 calls (0.02)

TryExcept (1)

TryExcept (1)

list (1)

1def _subgraph_parse(
2        self,
3        node: _SubGraphNodes,
4        pathnode: _SubGraphNodes,
5        extra_blocks: Sequence[nodes.ExceptHandler],
6    ) -> None:
7        """Parse the body and any `else` block of `if` and `for` statements."""
8        loose_ends = []
9        self.tail = node
10        self.dispatch_list(node.body)
11        loose_ends.append(self.tail)
12        for extra in extra_blocks:
13            self.tail = node
14            self.dispatch_list(extra.body)
15            loose_ends.append(self.tail)
16        if node.orelse:
17            self.tail = node
18            self.dispatch_list(node.orelse)
19            loose_ends.append(self.tail)
20        else:
21            loose_ends.append(node)
22        if node and self.graph:
23            bottom = f"{self._bottom_counter}"
24            self._bottom_counter += 1
25            for end in loose_ends:
26                self.graph.connect(end, bottom)
27            self.tail = bottom