from __future__ import annotations


class AdapterError(Exception):
    def __init__(self, kind: str) -> None:
        super().__init__(kind)
        self.kind = kind

    @staticmethod
    def invalid_command() -> "AdapterError":
        return AdapterError("invalid_command")

    @staticmethod
    def no_data() -> "AdapterError":
        return AdapterError("no_data")

    @staticmethod
    def bus_init_error() -> "AdapterError":
        return AdapterError("bus_init_error")

    @staticmethod
    def unable_to_connect() -> "AdapterError":
        return AdapterError("unable_to_connect")

    @staticmethod
    def start_monitor_mode() -> "AdapterError":
        return AdapterError("start_monitor_mode")
