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

1from pydantic import BaseModel 

2 

3from adrs.types import Topic 

4 

5 

6class DataColumn(BaseModel): 

7 src: str # source (original column) 

8 dst: str # destination (final column) 

9 

10 def __hash__(self): 

11 return hash(f"{self.src}-{self.dst}") 

12 

13 def __repr__(self): 

14 return f"{self.src}-{self.dst}" 

15 

16 def __lt__(self, value): 

17 return hash(self) < hash(value) 

18 

19 

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 

27 

28 def __hash__(self): 

29 return hash(f"{Topic.from_str(self.topic)}-{sorted(self.columns)}") 

30 

31 def __eq__(self, value): 

32 return hash(self) == hash(value)