"""Simple module for handling errors.
This module contains no functions. It is only used to define the
Error classes that the other modules use.
"""
from dataclasses import dataclass
[docs]@dataclass
class BaseError(BaseException):
code: int
msg: str
def __init__(self, *args: object) -> None:
super().__init__(f"Error [Code {self.code}]: {self.msg}")
[docs]class BadRequest(BaseError):
code = 400
msg = "Bad Request"
[docs]class Unauthorized(BaseError):
code = 401
msg = "Unauthorized"
[docs]class Forbidden(BaseError):
code = 403
msg = "Forbidden"
[docs]class NotFound(BaseError):
code = 404
msg = "Not Found"
[docs]class Conflict(BaseError):
code = 409
msg = "Conflict"
[docs]class InternalServerError(BaseError):
code = 500
msg = "Internal Server Error"
[docs]class NotImplemented(BaseError):
code = 501
msg = "Not Implemented"
[docs]class BadGateway(BaseError):
code = 502
msg = "Bad Gateway"
[docs]class ServiceUnavailable(BaseError):
code = 503
msg = "Service Unavailable"
[docs]class GatewayTimeout(BaseError):
code = 504
msg = "Gateway Timeout"