Path 1: 1107 calls (1.0)

Module (1107)

1def leave_module(self, _: nodes.Module) -> None:
2        for all_groups in self._bad_names.values():
3            if len(all_groups) < 2:
4                continue
5            groups: collections.defaultdict[
6                int, list[list[_BadNamesTuple]]
7            ] = collections.defaultdict(list)
8            min_warnings = sys.maxsize
9            prevalent_group, _ = max(all_groups.items(), key=lambda item: len(item[1]))
10            for group in all_groups.values():
11                groups[len(group)].append(group)
12                min_warnings = min(len(group), min_warnings)
13            if len(groups[min_warnings]) > 1:
14                by_line = sorted(
15                    groups[min_warnings],
16                    key=lambda group: min(  # type: ignore[no-any-return]
17                        warning[0].lineno
18                        for warning in group
19                        if warning[0].lineno is not None
20                    ),
21                )
22                warnings: Iterable[_BadNamesTuple] = itertools.chain(*by_line[1:])
23            else:
24                warnings = groups[min_warnings][0]
25            for args in warnings:
26                self._raise_name_warning(prevalent_group, *args)
            

Path 2: 3 calls (0.0)

NodeNG.root def (3)

1def leave_module(self, _: nodes.Module) -> None:
2        for all_groups in self._bad_names.values():
3            if len(all_groups) < 2:
4                continue
5            groups: collections.defaultdict[
6                int, list[list[_BadNamesTuple]]
7            ] = collections.defaultdict(list)
8            min_warnings = sys.maxsize
9            prevalent_group, _ = max(all_groups.items(), key=lambda item: len(item[1]))
10            for group in all_groups.values():
11                groups[len(group)].append(group)
12                min_warnings = min(len(group), min_warnings)
13            if len(groups[min_warnings]) > 1:
14                by_line = sorted(
15                    groups[min_warnings],
16                    key=lambda group: min(  # type: ignore[no-any-return]
17                        warning[0].lineno
18                        for warning in group
19                        if warning[0].lineno is not None
20                    ),
21                )
22                warnings: Iterable[_BadNamesTuple] = itertools.chain(*by_line[1:])
23            else:
24                warnings = groups[min_warnings][0]
25            for args in warnings:
26                self._raise_name_warning(prevalent_group, *args)
            

Path 3: 2 calls (0.0)

Module (1) NodeNG.root def (1)

1def leave_module(self, _: nodes.Module) -> None:
2        for all_groups in self._bad_names.values():
3            if len(all_groups) < 2:
4                continue
5            groups: collections.defaultdict[
6                int, list[list[_BadNamesTuple]]
7            ] = collections.defaultdict(list)
8            min_warnings = sys.maxsize
9            prevalent_group, _ = max(all_groups.items(), key=lambda item: len(item[1]))
10            for group in all_groups.values():
11                groups[len(group)].append(group)
12                min_warnings = min(len(group), min_warnings)
13            if len(groups[min_warnings]) > 1:
14                by_line = sorted(
15                    groups[min_warnings],
16                    key=lambda group: min(  # type: ignore[no-any-return]
17                        warning[0].lineno
18                        for warning in group
19                        if warning[0].lineno is not None
20                    ),
21                )
22                warnings: Iterable[_BadNamesTuple] = itertools.chain(*by_line[1:])
23            else:
24                warnings = groups[min_warnings][0]
25            for args in warnings:
26                self._raise_name_warning(prevalent_group, *args)