|
13 | 13 |
|
14 | 14 | class CompareCommand(PrimerCommand): |
15 | 15 | def run(self) -> None: |
16 | | - main_dict = self._load_json(self.config.base_file) |
17 | | - new_dict = self._load_json(self.config.new_file) |
18 | | - final_main_dict = self._cross_reference(main_dict, new_dict) |
19 | | - comment = self._create_comment(final_main_dict, new_dict) |
| 16 | + main_messages = self._load_json(self.config.base_file) |
| 17 | + pr_messages = self._load_json(self.config.new_file) |
| 18 | + missing_messages, new_messages = self._cross_reference( |
| 19 | + main_messages, pr_messages |
| 20 | + ) |
| 21 | + comment = self._create_comment(missing_messages, new_messages) |
20 | 22 | with open(self.primer_directory / "comment.txt", "w", encoding="utf-8") as f: |
21 | 23 | f.write(comment) |
22 | 24 |
|
| 25 | + @staticmethod |
23 | 26 | def _cross_reference( |
24 | | - self, main_dict: PackageMessages, new_dict: PackageMessages |
25 | | - ) -> PackageMessages: |
26 | | - final_main_dict: PackageMessages = {} |
| 27 | + main_dict: PackageMessages, pr_messages: PackageMessages |
| 28 | + ) -> tuple[PackageMessages, PackageMessages]: |
| 29 | + missing_messages: PackageMessages = {} |
27 | 30 | for package, messages in main_dict.items(): |
28 | | - final_main_dict[package] = [] |
| 31 | + missing_messages[package] = [] |
29 | 32 | for message in messages: |
30 | 33 | try: |
31 | | - new_dict[package].remove(message) |
| 34 | + pr_messages[package].remove(message) |
32 | 35 | except ValueError: |
33 | | - final_main_dict[package].append(message) |
34 | | - return final_main_dict |
| 36 | + missing_messages[package].append(message) |
| 37 | + return missing_messages, pr_messages |
35 | 38 |
|
36 | | - def _load_json(self, file_path: Path | str) -> PackageMessages: |
| 39 | + @staticmethod |
| 40 | + def _load_json(file_path: Path | str) -> PackageMessages: |
37 | 41 | with open(file_path, encoding="utf-8") as f: |
38 | 42 | result: PackageMessages = json.load(f) |
39 | 43 | return result |
|
0 commit comments