Source code for aiohomeconnect.model.error
"""Provide error models for the Home Connect API."""
from __future__ import annotations
from dataclasses import dataclass
from mashumaro.mixins.json import DataClassJSONMixin
[docs]
class HomeConnectError(Exception):
"""Base class for Home Connect exceptions."""
[docs]
@dataclass
class HomeConnectApiError(HomeConnectError, DataClassJSONMixin):
"""Base class for Home Connect API exceptions."""
key: str
description: str | None = None
def __str__(self) -> str:
"""Return the string representation of the error."""
return f"{self.description} ({self.key})"
def __repr__(self) -> str:
"""Return the representation of the error."""
return f"{self.description} ({self.key})"
[docs]
@dataclass
class UnauthorizedError(HomeConnectApiError):
"""Represent UnauthorizedError."""
[docs]
@dataclass
class ForbiddenError(HomeConnectApiError):
"""Represent ForbiddenError."""
[docs]
@dataclass
class NotFoundError(HomeConnectApiError):
"""Represent NotFoundError."""
[docs]
@dataclass
class NoProgramSelectedError(HomeConnectApiError):
"""Represent NoProgramSelectedError."""
[docs]
@dataclass
class NoProgramActiveError(HomeConnectApiError):
"""Represent NoProgramActiveError."""
[docs]
@dataclass
class NotAcceptableError(HomeConnectApiError):
"""Represent NotAcceptableError."""
[docs]
@dataclass
class RequestTimeoutError(HomeConnectApiError):
"""Represent RequestTimeoutError."""
[docs]
@dataclass
class ConflictError(HomeConnectApiError):
"""Represent ConflictError."""
[docs]
@dataclass
class SelectedProgramNotSetError(HomeConnectApiError):
"""Represent SelectedProgramNotSetError."""
[docs]
@dataclass
class ActiveProgramNotSetError(HomeConnectApiError):
"""Represent ActiveProgramNotSetError."""
[docs]
@dataclass
class WrongOperationStateError(HomeConnectApiError):
"""Represent WrongOperationStateError."""
[docs]
@dataclass
class ProgramNotAvailableError(HomeConnectApiError):
"""Represent ProgramNotAvailableError."""
[docs]
@dataclass
class TooManyRequestsError(HomeConnectApiError):
"""Represent TooManyRequestsError."""
retry_after: int | None = None
[docs]
@dataclass
class InternalServerError(HomeConnectApiError):
"""Represent InternalServerError."""
[docs]
@dataclass
class Conflict(HomeConnectApiError): # noqa: N818
"""Represent Conflict."""
[docs]
class HomeConnectRequestError(HomeConnectError):
"""Represent the error cause when the event stream ends abruptly."""
[docs]
class EventStreamInterruptedError(HomeConnectError):
"""Represent the error cause when the event stream ends abruptly."""