4
4
from __future__ import annotations
5
5
6
6
import json
7
+ from pathlib import Path
7
8
8
9
from pylint .testutils ._primer .primer_command import PackageMessages , PrimerCommand
9
10
12
13
13
14
class CompareCommand (PrimerCommand ):
14
15
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 )
19
22
23
+ def _cross_reference (
24
+ self , main_dict : PackageMessages , new_dict : PackageMessages
25
+ ) -> PackageMessages :
20
26
final_main_dict : PackageMessages = {}
21
27
for package , messages in main_dict .items ():
22
28
final_main_dict [package ] = []
@@ -25,10 +31,12 @@ def run(self) -> None:
25
31
new_dict [package ].remove (message )
26
32
except ValueError :
27
33
final_main_dict [package ].append (message )
34
+ return final_main_dict
28
35
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
32
40
33
41
def _create_comment (
34
42
self , all_missing_messages : PackageMessages , all_new_messages : PackageMessages
0 commit comments