44from __future__ import annotations
55
66import json
7+ from pathlib import Path
78
89from pylint .testutils ._primer .primer_command import PackageMessages , PrimerCommand
910
1213
1314class CompareCommand (PrimerCommand ):
1415 def run (self ) -> None :
15- with open (self .config .base_file , encoding = "utf-8" ) as f :
16- main_dict : PackageMessages = json .load (f )
17- with open (self .config .new_file , encoding = "utf-8" ) as f :
18- new_dict : PackageMessages = json .load (f )
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 )
20+ with open (self .primer_directory / "comment.txt" , "w" , encoding = "utf-8" ) as f :
21+ f .write (comment )
1922
23+ def _cross_reference (
24+ self , main_dict : PackageMessages , new_dict : PackageMessages
25+ ) -> PackageMessages :
2026 final_main_dict : PackageMessages = {}
2127 for package , messages in main_dict .items ():
2228 final_main_dict [package ] = []
@@ -25,10 +31,12 @@ def run(self) -> None:
2531 new_dict [package ].remove (message )
2632 except ValueError :
2733 final_main_dict [package ].append (message )
34+ return final_main_dict
2835
29- comment = self ._create_comment (final_main_dict , new_dict )
30- with open (self .primer_directory / "comment.txt" , "w" , encoding = "utf-8" ) as f :
31- f .write (comment )
36+ def _load_json (self , file_path : Path | str ) -> PackageMessages :
37+ with open (file_path , encoding = "utf-8" ) as f :
38+ result : PackageMessages = json .load (f )
39+ return result
3240
3341 def _create_comment (
3442 self , all_missing_messages : PackageMessages , all_new_messages : PackageMessages
0 commit comments