1
0
package-tracking/package_tracking/database.py

39 lines
1012 B
Python
Raw Normal View History

2025-01-22 14:58:55 +00:00
import dataclasses
2025-01-22 20:54:40 +00:00
from pathlib import Path
2025-01-22 14:58:55 +00:00
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
2025-01-22 20:54:40 +00:00
FILEPATH = Path('./output/entries_db.txt')
2025-01-22 14:58:55 +00:00
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:
2025-01-22 20:54:40 +00:00
FILEPATH.parent.mkdir(exist_ok=True,parents=True)
2025-01-22 14:58:55 +00:00
with open(FILEPATH, 'a') as f:
f.write(tracking_number.number)
f.write(' ')
f.write(tracking_number.name)
f.write('\n')