Source code for ai.backend.client.exceptions

from typing import Any
import json

__all__ = (
    'BackendError',
    'BackendAPIError',
    'BackendClientError',
)


[docs]class BackendError(Exception): '''Exception type to catch all ai.backend-related errors.''' def __str__(self): return repr(self)
[docs]class BackendAPIError(BackendError): '''Exceptions returned by the API gateway.''' def __init__(self, status: int, reason: str, data: Any): if isinstance(data, (str, bytes)): try: data = json.loads(data) except json.JSONDecodeError: data = { 'type': 'https://api.backend.ai/probs/generic-error', 'title': 'Generic Error (could not parse error string)', 'content': data, } super().__init__(status, reason, data) @property def status(self) -> int: return self.args[0] @property def reason(self) -> str: return self.args[1] @property def data(self) -> Any: return self.args[2]
[docs]class BackendClientError(BackendError): ''' Exceptions from the client library, such as argument validation errors. ''' pass