import dataclasses @dataclasses.dataclass class TrackingNumberEntry: number: str name: str def __post_init__(self): assert ' ' not in self.number assert '\t' not in self.number assert '\n' not in self.number assert '\t' not in self.name assert '\n' not in self.name FILEPATH = 'output/entries_db.txt' def get_tracking_numbers() -> list[TrackingNumberEntry]: with open(FILEPATH) as f: lines = f.read().split('\n') lines = [line.split(' ') for line in lines if len(line) > 0] return [TrackingNumberEntry(line[0], ' '.join(line[1:])) for line in lines] def add_tracking_number(tracking_number: TrackingNumberEntry) -> None: with open(FILEPATH, 'a') as f: f.write(tracking_number.number) f.write(' ') f.write(tracking_number.name) f.write('\n')