import sys from prettytable import PrettyTable from termcolor import colored import pyfiglet def main() -> None: techs_a2: list[str] = ["ML21120047", "ML21110213", "ML25050133", "ML25090037", "MB12088148", "ML25050223", "ML25090208", "ML25100148", "ML25100158", "ML25100147", "ML25090117", "ML25090220", "ML25090177", "ML25090030", "ML25080299", "ML25090143", "ML25100149", "ML25060008", "ML25100162"] techs_a2_output: dict = {} with open(sys.argv[1], 'r', encoding="utf-8") as f: file = f.readlines() table_a = PrettyTable(["NAME", "REPAIRED", "TESTED", "PASS", "FAIL", "SUCCESS"]) total_a: int = 0 for index,line in enumerate(file): for ml_1 in techs_a2: if ml_1 in line: # repair, tested, pass, fail techs_a2_output[line.split('\t')[1].split('.')[0]] = {} if "repaired" in techs_a2_output[line.split('\t')[1].split('.')[0]]: techs_a2_output[line.split('\t')[1].split('.')[0]]["repaired"] += techs_a2_output[line.split('\t')[1].split('.')[0]]["repaired"] if "tested" in techs_a2_output[line.split('\t')[1].split('.')[0]]: techs_a2_output[line.split('\t')[1].split('.')[0]]["tested"] += techs_a2_output[line.split('\t')[1].split('.')[0]]["tested"] if "pass" in techs_a2_output[line.split('\t')[1].split('.')[0]]: techs_a2_output[line.split('\t')[1].split('.')[0]]["pass"] += techs_a2_output[line.split('\t')[1].split('.')[0]]["pass"] if "fail" in techs_a2_output[line.split('\t')[1].split('.')[0]]: techs_a2_output[line.split('\t')[1].split('.')[0]]["fail"] += techs_a2_output[line.split('\t')[1].split('.')[0]]["fail"] techs_a2_output[line.split('\t')[1].split('.')[0]] = {"repaired": int(line.split('\t')[3]), "tested": int(line.split('\t')[4]), "pass": int(line.split('\t')[5]), "fail": int(line.split('\t')[6])} for i in techs_a2: try: table_a.add_row([i, techs_a2_output[i]['repaired'], techs_a2_output[i]['tested'], techs_a2_output[i]['pass'], techs_a2_output[i]['fail'], (techs_a2_output[i]['tested']/techs_a2_output['ML25090220']['pass'])*100]) except KeyError: pass #table_a.add_row(['Total', total_a,'','','','','']) print(colored(pyfiglet.figlet_format('LINE A2'), 'blue')) print(colored(table_a, 'blue')) if __name__ == '__main__': main()