from resources import phrases from src.model.error.ErrorSource import ErrorSource class Error: """ Error class """ def __init__(self, code, message, source: ErrorSource, only_message: bool = False): """ :param message: Either a phrases.py constant name (str) to be resolved lazily in the currently active language, or an already resolved message text """ self.code = code self.message = message self.source = source self.only_message = only_message def get_message(self) -> str: """ Resolve the message, translating it if it's a phrases.py constant name :return: The resolved message """ if isinstance(self.message, str) and hasattr(phrases, self.message): return getattr(phrases, self.message) return self.message def __str__(self): if self.only_message: return self.get_message() result = f"Error " + self.source + str(self.code) + ": " + self.get_message() result += phrases.FORWARD_TO_SUPPORT_GROUP return result def build(self): return str(self)