request.py 578 Bytes
Newer Older
1
from abc import ABC, abstractmethod
2
3


4
class AdapterRequest(ABC):
5
6
7
8
9
10
    """
    Base class for adapter requests.
    """

    @property
    @abstractmethod
11
12
    def adapter_id(self) -> int:
        raise NotImplementedError
13

14
    def __post_init__(self) -> None:
15
16
17
18
19
20
21
22
23
        if self.adapter_id < 1:
            raise ValueError(f"id must be > 0, got {self.adapter_id}")

    def __eq__(self, value: object) -> bool:
        return isinstance(
            value, self.__class__) and self.adapter_id == value.adapter_id

    def __hash__(self) -> int:
        return hash(self.adapter_id)