Source code for ABConnect.exceptions

[docs] class ABConnectError(Exception): """Base exception class for all ABConnect errors."""
[docs] def __init__(self, message: str, *, code: str = None, details: dict = None): self.code = code self.details = details or {} super().__init__(message)
def __str__(self): return f"{self.__class__.__name__}: {self.args[0]}" def __repr__(self): return ( f"<{self.__class__.__name__} code={self.code!r} " f"message={self.args[0]!r} details={self.details!r}>" )
[docs] def no_traceback(self): return self.with_traceback(None)
[docs] def to_dict(self): return { "error": self.__class__.__name__, "code": self.code, "message": self.args[0], "details": self.details, }
[docs] class RequestError(ABConnectError): """Exception raised for HTTP request errors."""
[docs] def __init__(self, status_code, message, response=None, *, code="REQUEST_ERROR"): details = { "status_code": status_code, "response": getattr(response, "text", str(response)), } super().__init__( f"HTTP {status_code} Error: {message}", code=code, details=details ) self.status_code = status_code self.response = response
[docs] class NotLoggedInError(ABConnectError): """Exception raised when a user is not logged in."""
[docs] def __init__( self, message="User is not logged in.", *, code="NOT_LOGGED_IN", details=None ): super().__init__(message, code=code, details=details)
[docs] class LoginFailedError(ABConnectError): """Exception raised when login fails."""
[docs] def __init__(self, message="Login failed.", *, code="LOGIN_FAILED", details=None): super().__init__(message, code=code, details=details)