Source code for gmocoin_client.errors

from __future__ import annotations

from typing import Any


[docs] class GmoCoinError(RuntimeError): """Base error for GMO Coin client failures."""
[docs] class GmoCoinApiError(GmoCoinError): """Raised when the API returns a non-success status payload.""" def __init__(self, status: int | None, messages: list[dict[str, Any]] | None, payload: Any): self.status = status self.messages = messages or [] self.payload = payload message = self._build_message() super().__init__(message) def _build_message(self) -> str: if not self.messages: return "GMO Coin API returned an error response" parts = [] for item in self.messages: code = item.get("message_code") text = item.get("message_string") if code or text: parts.append(f"{code or 'UNKNOWN'}: {text or 'Unknown error'}") if not parts: return "GMO Coin API returned an error response" return "; ".join(parts)
[docs] class GmoCoinHttpError(GmoCoinError): """Raised when the HTTP layer fails or returns a non-success status.""" def __init__(self, status_code: int | None, message: str, payload: Any | None = None): self.status_code = status_code self.payload = payload super().__init__(message)