request.py 623 Bytes
Newer Older
1
from abc import ABC, abstractmethod
2
3
4
5
from dataclasses import dataclass


@dataclass
6
class AdapterRequest(ABC):
7
8
9
10
11
12
    """
    Base class for adapter requests.
    """

    @property
    @abstractmethod
13
14
    def adapter_id(self) -> int:
        raise NotImplementedError
15

16
    def __post_init__(self) -> None:
17
18
19
20
21
22
23
24
25
        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)