from dataclasses import dataclass from datetime import datetime from psycopg2.extras import DateTimeRange @dataclass class TimeslotDateTimeRange: lower: datetime upper: datetime @classmethod def from_dt_range(cls, dt_range: DateTimeRange) -> 'TimeslotDateTimeRange': return cls( lower=dt_range.lower, upper=dt_range.upper, ) def to_dt_range(self) -> 'TimeslotDateTimeRange': return DateTimeRange( lower=self.lower, upper=self.upper, )