request.py 576 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from abc import abstractmethod
from dataclasses import dataclass


@dataclass
class AdapterRequest:
    """
    Base class for adapter requests.
    """

    @property
    @abstractmethod
    def adapter_id(self):
        ...

    def __post_init__(self):
        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)