import logging import warnings class LgndrException(RuntimeError): def __init__(self, message="Error in Legendary"): self.message = message super(LgndrException, self).__init__(self.message) class LgndrWarning(RuntimeWarning): def __init__(self, message="Warning in Legendary"): self.message = message super(LgndrWarning, self).__init__(self.message) class LgndrLogHandler(logging.Handler): def emit(self, record: logging.LogRecord) -> None: # lk: FATAL is the same as CRITICAL if record.levelno == logging.ERROR or record.levelno == logging.CRITICAL: raise LgndrException(record.getMessage()) if record.levelno == logging.INFO or record.levelno == logging.WARNING: warnings.warn(record.getMessage())