| #!/usr/bin/env python3 | 
 |  | 
 | import argparse | 
 | import json | 
 | import re | 
 |  | 
 | parser = argparse.ArgumentParser() | 
 | parser.add_argument("-b", "--base", default=None, required=True) | 
 | parser.add_argument("-f", "--file", default=None, required=True) | 
 | args = parser.parse_args() | 
 |  | 
 | with open(args.file) as error_file: | 
 |     error_data = error_file.readlines() | 
 |  | 
 |     with open(args.base) as base_file: | 
 |         base_json = json.load(base_file) | 
 |         for message_name, message_data in base_json["Messages"].items(): | 
 |             message_id = ( | 
 |                 base_json["RegistryPrefix"] | 
 |                 + "." | 
 |                 + base_json["RegistryVersion"] | 
 |                 + "." | 
 |                 + message_name | 
 |             ) | 
 |             message_found = False | 
 |             index = 0 | 
 |             for i, error in enumerate(error_data): | 
 |                 if message_id in error: | 
 |                     message_found = True | 
 |                     index = i | 
 |                     break | 
 |             if not message_found: | 
 |                 print("{} not found".format(message_id)) | 
 |                 continue | 
 |  | 
 |             error_info = error_data[index : index + 15] | 
 |             error_str = " ".join(error_info) | 
 |             error_str = re.sub( | 
 |                 "std::to_string\\(arg(\\d+)\\)", "arg\\1", error_str | 
 |             ) | 
 |             error_str = re.sub('"\n\\s*"', "", error_str, re.MULTILINE) | 
 |             error_str = re.sub( | 
 |                 '"\\s*\\+\\s*arg(\\d+)\\s*\\+\n?\\s*"', | 
 |                 "%\\1", | 
 |                 error_str, | 
 |                 re.MULTILINE, | 
 |             ) | 
 |             if message_data["Message"] not in error_str: | 
 |                 print( | 
 |                     "{}: error in Message: {}".format( | 
 |                         message_id, message_data["Message"] | 
 |                     ) | 
 |                 ) | 
 |                 print(error_str) | 
 |  | 
 |             if message_data["MessageSeverity"] not in error_str: | 
 |                 print( | 
 |                     "{}: error in MessageSeverity: {}".format( | 
 |                         message_id, message_data["MessageSeverity"] | 
 |                     ) | 
 |                 ) | 
 |                 print(error_str) | 
 |  | 
 |             if message_data["Resolution"] not in error_str: | 
 |                 print( | 
 |                     "{}: error in Resolution: {}".format( | 
 |                         message_id, message_data["Resolution"] | 
 |                     ) | 
 |                 ) | 
 |                 print(error_str) |