Initial commit
This commit is contained in:
53
.github/report_processing/process_erc_json.py
vendored
Normal file
53
.github/report_processing/process_erc_json.py
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
from violation import Violation
|
||||
import datetime
|
||||
import json
|
||||
|
||||
class Sheet:
|
||||
def __init__(self, json_obj : dict) -> None:
|
||||
self.name : str = json_obj["path"]
|
||||
self.name_md : str = self.name.replace(" ", "-")
|
||||
self.number_of_errors : int = 0
|
||||
self.number_of_warns : int = 0
|
||||
self.errors : list[Violation] = list()
|
||||
self.warns : list[Violation] = list()
|
||||
|
||||
for violation in json_obj["violations"]:
|
||||
v = Violation(violation, "erc")
|
||||
if (v.violation_type == "error"):
|
||||
self.errors.append(v)
|
||||
self.number_of_errors += 1
|
||||
if (v.violation_type == "warn"):
|
||||
self.warns.append(v)
|
||||
self.number_of_warns += 1
|
||||
|
||||
def to_dict(self) -> dict:
|
||||
out_dict = self.__dict__
|
||||
errors_strings = []
|
||||
warns_strings = []
|
||||
|
||||
for error in out_dict["errors"]:
|
||||
errors_strings.append(error.__dict__)
|
||||
out_dict["errors"] = errors_strings
|
||||
|
||||
for warn in out_dict["warns"]:
|
||||
warns_strings.append(warn.__dict__)
|
||||
out_dict["warns"] = warns_strings
|
||||
|
||||
return out_dict
|
||||
|
||||
def process_report(report : str) -> dict:
|
||||
out_dict : dict = json.loads(report)
|
||||
|
||||
sheets = [Sheet(sheet) for sheet in out_dict["sheets"]]
|
||||
out_dict["sheets"] = [sheet.to_dict() for sheet in sheets]
|
||||
|
||||
out_dict.setdefault(
|
||||
"total_errors",
|
||||
sum(sheet.number_of_errors for sheet in sheets)
|
||||
)
|
||||
out_dict.setdefault(
|
||||
"total_warns",
|
||||
sum(sheet.number_of_warns for sheet in sheets)
|
||||
)
|
||||
|
||||
return out_dict
|
||||
Reference in New Issue
Block a user