from typing import List ISSUE_UNKNOWN_INGREDIENT = "unknown-ingredient" ISSUE_DUPLICATE_UNITS = "duplicate-units" ISSUE_KNOWN_PRICE_UNKNOWN_CONVERSION = "known-price-unknown-conversion" ISSUE_UNKNOWN_UNIT = "unknown-unit" class Issue: def __init__(self, id: str, msg: str) -> None: self.id = id self.msg = msg class Issues: def __init__(self) -> None: self.errors: List[Issue] = [] self.warnings: List[Issue] = [] def error(self, id: str, msg: str) -> None: self.errors.append(Issue(id, msg)) def warn(self, id: str, msg: str) -> None: self.warnings.append(Issue(id, msg)) def check(self) -> int: retcode = len(self.errors) != 0 for msg in self.errors: print(f"ERROR {msg.id}: {msg.msg}") for msg in self.warnings: print(f"WARNING {msg.id}: {msg.msg}") self.errors.clear() self.warnings.clear() return retcode