Skip to content
Back to top

# 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

    class HomeConnectError(Exception):
        """Base class for Home Connect exceptions."""

    @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})"

    @dataclass
    class UnauthorizedError(HomeConnectApiError):
        """Represent UnauthorizedError."""

    @dataclass
    class ForbiddenError(HomeConnectApiError):
        """Represent ForbiddenError."""

    @dataclass
    class NotFoundError(HomeConnectApiError):
        """Represent NotFoundError."""

    @dataclass
    class NoProgramSelectedError(HomeConnectApiError):
        """Represent NoProgramSelectedError."""

    @dataclass
    class NoProgramActiveError(HomeConnectApiError):
        """Represent NoProgramActiveError."""

    @dataclass
    class NotAcceptableError(HomeConnectApiError):
        """Represent NotAcceptableError."""

    @dataclass
    class RequestTimeoutError(HomeConnectApiError):
        """Represent RequestTimeoutError."""

    @dataclass
    class ConflictError(HomeConnectApiError):
        """Represent ConflictError."""

    @dataclass
    class SelectedProgramNotSetError(HomeConnectApiError):
        """Represent SelectedProgramNotSetError."""

    @dataclass
    class ActiveProgramNotSetError(HomeConnectApiError):
        """Represent ActiveProgramNotSetError."""

    @dataclass
    class WrongOperationStateError(HomeConnectApiError):
        """Represent WrongOperationStateError."""

    @dataclass
    class ProgramNotAvailableError(HomeConnectApiError):
        """Represent ProgramNotAvailableError."""

    @dataclass
    class UnsupportedMediaTypeError(HomeConnectApiError):
        """Represent UnsupportedMediaTypeError."""

    @dataclass
    class TooManyRequestsError(HomeConnectApiError):
        """Represent TooManyRequestsError."""

        retry_after: float | None = None

    @dataclass
    class InternalServerError(HomeConnectApiError):
        """Represent InternalServerError."""

    @dataclass
    class Conflict(HomeConnectApiError):  # noqa: N818
        """Represent Conflict."""

    class HomeConnectRequestError(HomeConnectError):
        """Represent the error cause when the event stream ends abruptly."""

    class EventStreamInterruptedError(HomeConnectError):
        """Represent the error cause when the event stream ends abruptly."""