"""Ошибки клиента. Разделены по смыслу, чтобы их можно было ловить прицельно.""" from __future__ import annotations class RegCloudError(RuntimeError): """Общая ошибка платформы.""" def __init__(self, message: str, status: int = 0, code: str = "", payload: dict | None = None): super().__init__(message) self.status = status self.code = code self.payload = payload or {} class AuthError(RegCloudError): """Токен не принят.""" class NotFound(RegCloudError): """Ресурса нет.""" class Locked(RegCloudError): """Ресурс занят другой операцией. Обычно проходит само за полминуты.""" class ValidationError(RegCloudError): """Платформа не приняла параметры. В payload лежит её объяснение.""" class InsufficientFunds(RegCloudError): """Не хватает денег на счету.""" class Timeout(RegCloudError): """Не дождались нужного состояния."""