Method: pylint.checkers.base.name_checker.checker.NameChecker.leave_module
Calls: 1112, Exceptions: 0, Paths: 3Back
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)