Method: pylint.extensions.mccabe.PathGraphingAstVisitor._subgraph_parse
Calls: 44, Exceptions: 0, Paths: 4Back
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