2025-01-22 14:58:55 +00:00
|
|
|
import dataclasses
|
|
|
|
|
2025-01-22 16:31:00 +00:00
|
|
|
|
2025-01-22 14:58:55 +00:00
|
|
|
@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]:
|
2025-01-22 20:20:16 +00:00
|
|
|
try:
|
|
|
|
with open(FILEPATH) as f:
|
|
|
|
lines = f.read().split('\n')
|
|
|
|
except FileNotFoundError:
|
|
|
|
lines = ''
|
2025-01-22 14:58:55 +00:00
|
|
|
|
|
|
|
lines = [line.split(' ') for line in lines if len(line) > 0]
|
2025-01-22 17:19:05 +00:00
|
|
|
return [TrackingNumberEntry(line[0], ' '.join(line[1:])) for line in lines]
|
2025-01-22 14:58:55 +00:00
|
|
|
|
|
|
|
|
|
|
|
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')
|