failure.py 640 B

123456789101112131415161718192021222324
  1. from __future__ import annotations
  2. from typing import Optional
  3. from enum import Enum, auto
  4. class RollbotFailureException(BaseException):
  5. def __init__(self, failure: RollbotFailure, detail: Optional[str]):
  6. super().__init__()
  7. self.failure = failure
  8. self.detail = detail
  9. class RollbotFailure(Enum):
  10. INVALID_COMMAND = auto()
  11. MISSING_SUBCOMMAND = auto()
  12. INVALID_SUBCOMMAND = auto()
  13. INVALID_ARGUMENTS = auto()
  14. SERVICE_DOWN = auto()
  15. PERMISSIONS = auto()
  16. INTERNAL_ERROR = auto()
  17. def raise_exc(self, detail: Optional[str] = None):
  18. raise RollbotFailureException(self, detail)