"""OwsError class.""" class OwsError(Exception): """Exception to create OwsException from str message.""" def __init__(self, message, status=500): """Initialize exception.""" super().__init__() self.message = message self.status = status @classmethod def not_found(cls, message=None): """Return not found error.""" return OwsError(message, 404) @classmethod def forbidden(cls, message='Access Forbidden'): """Return not found error.""" return OwsError(message, 403) @classmethod def bad_request(cls, message=None): """Return bad request error.""" return OwsError(message, 400) def __str__(self): """Turn this exception into a string.""" if not self.message: return str(self.status) return 'Status %d: %s' % (self.status, self.message)