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 UnsupportedMediaTypeError(HomeConnectApiError): """Represent UnsupportedMediaTypeError."""
[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."""