import dataclasses from pathlib import Path @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 = Path('./output/entries_db.txt') def get_tracking_numbers() -> list[TrackingNumberEntry]: try: with open(FILEPATH) as f: lines = f.read().split('\n') except FileNotFoundError: lines = '' 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: FILEPATH.parent.mkdir(exist_ok=True,parents=True) with open(FILEPATH, 'a') as f: f.write(tracking_number.number) f.write(' ') f.write(tracking_number.name) f.write('\n')