From a8e89ca57920bc5d5a0f88dbe0f83112549ff911 Mon Sep 17 00:00:00 2001 From: Skye Date: Thu, 7 Dec 2023 18:20:56 -0500 Subject: [PATCH] Add type to CSV row --- format.py | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/format.py b/format.py index 1d6d61a..9316b32 100755 --- a/format.py +++ b/format.py @@ -273,6 +273,19 @@ elif args.address_file.suffix == ".ods": else: raise Exception("Unknown file type for --address-file") + +class CSVRow(TypedDict): + Name: str + Address: str + DPC: str + Country: str + Design: str + Type: str + Personalization: str + Avatar: str | None + US: str + + csvfile = open(csv_filename) rows = csv.DictReader(csvfile) @@ -286,12 +299,13 @@ mid = secrets.get("mailer_id") class Card(TypedDict): address: str avatar: Path | None - row: dict[str, str] + row: CSVRow imb: str cards: list[Card] = [] for row in rows: + row = CSVRow(**row) if row["Address"] == "": continue @@ -304,18 +318,19 @@ for row in rows: address = row["Address"].split("\n") + country - if row.get("Avatar", "") != "": - avatar = get_avatar(row["Avatar"], secrets) + if (avatar_url := row.get("Avatar", "")) != "": + avatar = get_avatar(avatar_url, secrets) # type: ignore else: avatar = None - card: Card = { - "address": "\n".join(address), - "avatar": avatar, - "row": row, - "imb": "", - } - cards.append(card) + cards.append( + { + "address": "\n".join(address), + "avatar": avatar, + "row": row, + "imb": "", + } + ) # Typst can't access files outside the project root, except through a symlink # Create one in cache to use here