Method: pylint.lint.parallel._merge_mapreduce_data
Calls: 38, Exceptions: 0, Paths: 3Back
Path 1: 21 calls (0.55)
PyLinter (20) _CustomPyLinter (1)
defaultdict (21)
1def _merge_mapreduce_data(
2 linter: PyLinter,
3 all_mapreduce_data: defaultdict[int, list[defaultdict[str, list[Any]]]],
4) -> None:
5 """Merges map/reduce data across workers, invoking relevant APIs on checkers."""
6 # First collate the data and prepare it, so we can send it to the checkers for
7 # validation. The intent here is to collect all the mapreduce data for all checker-
8 # runs across processes - that will then be passed to a static method on the
9 # checkers to be reduced and further processed.
10 collated_map_reduce_data: defaultdict[str, list[Any]] = defaultdict(list)
11 for linter_data in all_mapreduce_data.values():
12 for run_data in linter_data:
13 for checker_name, data in run_data.items():
14 collated_map_reduce_data[checker_name].extend(data)
15
16 # Send the data to checkers that support/require consolidated data
17 original_checkers = linter.get_checkers()
18 for checker in original_checkers:
19 if checker.name in collated_map_reduce_data:
20 # Assume that if the check has returned map/reduce data that it has the
21 # reducer function
22 checker.reduce_map_data(linter, collated_map_reduce_data[checker.name])
Path 2: 16 calls (0.42)
PyLinter (16)
defaultdict (16)
1def _merge_mapreduce_data(
2 linter: PyLinter,
3 all_mapreduce_data: defaultdict[int, list[defaultdict[str, list[Any]]]],
4) -> None:
5 """Merges map/reduce data across workers, invoking relevant APIs on checkers."""
6 # First collate the data and prepare it, so we can send it to the checkers for
7 # validation. The intent here is to collect all the mapreduce data for all checker-
8 # runs across processes - that will then be passed to a static method on the
9 # checkers to be reduced and further processed.
10 collated_map_reduce_data: defaultdict[str, list[Any]] = defaultdict(list)
11 for linter_data in all_mapreduce_data.values():
12 for run_data in linter_data:
13 for checker_name, data in run_data.items():
14 collated_map_reduce_data[checker_name].extend(data)
15
16 # Send the data to checkers that support/require consolidated data
17 original_checkers = linter.get_checkers()
18 for checker in original_checkers:
19 if checker.name in collated_map_reduce_data:
20 # Assume that if the check has returned map/reduce data that it has the
21 # reducer function
22 checker.reduce_map_data(linter, collated_map_reduce_data[checker.name])
Path 3: 1 calls (0.03)
PyLinter (1)
defaultdict (1)
1def _merge_mapreduce_data(
2 linter: PyLinter,
3 all_mapreduce_data: defaultdict[int, list[defaultdict[str, list[Any]]]],
4) -> None:
5 """Merges map/reduce data across workers, invoking relevant APIs on checkers."""
6 # First collate the data and prepare it, so we can send it to the checkers for
7 # validation. The intent here is to collect all the mapreduce data for all checker-
8 # runs across processes - that will then be passed to a static method on the
9 # checkers to be reduced and further processed.
10 collated_map_reduce_data: defaultdict[str, list[Any]] = defaultdict(list)
11 for linter_data in all_mapreduce_data.values():
12 for run_data in linter_data:
13 for checker_name, data in run_data.items():
14 collated_map_reduce_data[checker_name].extend(data)
15
16 # Send the data to checkers that support/require consolidated data
17 original_checkers = linter.get_checkers()
18 for checker in original_checkers:
19 if checker.name in collated_map_reduce_data:
20 # Assume that if the check has returned map/reduce data that it has the
21 # reducer function
22 checker.reduce_map_data(linter, collated_map_reduce_data[checker.name])