Coverage for adrs/data/types.py: 64%
14 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-08-29 04:01 +0800
« prev ^ index » next coverage.py v7.15.2, created at 2026-08-29 04:01 +0800
1from pydantic import BaseModel
3from adrs.types import Topic
6class DataColumn(BaseModel):
7 src: str # source (original column)
8 dst: str # destination (final column)
10 def __hash__(self):
11 return hash(f"{self.src}-{self.dst}")
13 def __repr__(self):
14 return f"{self.src}-{self.dst}"
16 def __lt__(self, value):
17 return hash(self) < hash(value)
20class DataInfo(BaseModel):
21 topic: str
22 columns: list[DataColumn]
23 lookback_size: int
24 # resample_methods: str
25 # resample_interval: str
26 # shift_min: int
28 def __hash__(self):
29 return hash(f"{Topic.from_str(self.topic)}-{sorted(self.columns)}")
31 def __eq__(self, value):
32 return hash(self) == hash(value)