Skip to content

Commit f80757a

Browse files
committed
Tidy generate_release_artifacts.py: imports at top, drop _dt alias
1 parent 5c08beb commit f80757a

1 file changed

Lines changed: 34 additions & 33 deletions

File tree

xkcd-script/generator/generate_release_artifacts.py

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,21 @@
22

33
from __future__ import annotations
44

5+
import argparse
6+
import datetime
7+
import pathlib
58
import re
69

10+
from fontTools.ttLib import TTFont
11+
712
_VERSION_RE = re.compile(r"^\d{4}\.\d+$")
813
_DEV_VERSION = "0.0-dev"
14+
_HEAD_ALLOWED_DIFF = frozenset({"fontRevision", "modified", "checksumAdjustment"})
15+
_NAME_ALLOWED_DIFF = frozenset({5})
16+
17+
18+
class TableMismatch(Exception):
19+
"""Raised when a verified font table differs from its expected baseline."""
920

1021

1122
def validate_version(version: str) -> None:
@@ -18,9 +29,6 @@ def validate_version(version: str) -> None:
1829
)
1930

2031

21-
from fontTools.ttLib import TTFont
22-
23-
2432
def patch_font(font: TTFont, *, version: str, build_date: str) -> None:
2533
"""Patch name table version + head.fontRevision in-place."""
2634
validate_version(version)
@@ -41,14 +49,6 @@ def patch_font(font: TTFont, *, version: str, build_date: str) -> None:
4149
font["head"].fontRevision = float(version)
4250

4351

44-
class TableMismatch(Exception):
45-
"""Raised when a verified font table differs from its expected baseline."""
46-
47-
48-
_HEAD_ALLOWED_DIFF = frozenset({"fontRevision", "modified", "checksumAdjustment"})
49-
_NAME_ALLOWED_DIFF = frozenset({5})
50-
51-
5252
def verify_tables_identical(*, original: TTFont, patched: TTFont) -> None:
5353
"""Raise TableMismatch if any table differs outside the allowed fields."""
5454
# GlyphOrder is a virtual table fontTools exposes but never serialises.
@@ -78,20 +78,20 @@ def _verify_head(orig, patched) -> None:
7878

7979

8080
def _verify_name(orig, patched) -> None:
81-
def key(r):
82-
return (r.nameID, r.platformID, r.platEncID, r.langID)
81+
def key(record):
82+
return (record.nameID, record.platformID, record.platEncID, record.langID)
8383

8484
orig_records = {key(r): str(r) for r in orig.names}
8585
patched_records = {key(r): str(r) for r in patched.names}
8686

8787
if set(orig_records) != set(patched_records):
8888
raise TableMismatch("name table record set differs")
8989

90-
for k, original_value in orig_records.items():
91-
if k[0] in _NAME_ALLOWED_DIFF:
90+
for record_key, original_value in orig_records.items():
91+
if record_key[0] in _NAME_ALLOWED_DIFF:
9292
continue
93-
if patched_records[k] != original_value:
94-
raise TableMismatch(f"name record {k} changed unexpectedly")
93+
if patched_records[record_key] != original_value:
94+
raise TableMismatch(f"name record {record_key} changed unexpectedly")
9595

9696

9797
def _verify_generic(tag: str, original: TTFont, patched: TTFont) -> None:
@@ -113,15 +113,12 @@ def inject_js_version(source: str, *, version: str, build_date: str) -> str:
113113
return header + runtime + source
114114

115115

116-
import argparse
117-
import datetime as _dt
118-
import pathlib
119-
120-
121116
def _ttf_seconds(build_date: str) -> int:
122117
"""Seconds since 1904-01-01 for *build_date* (YYYY-MM-DD, UTC midnight)."""
123-
epoch = _dt.datetime(1904, 1, 1, tzinfo=_dt.timezone.utc)
124-
when = _dt.datetime.strptime(build_date, "%Y-%m-%d").replace(tzinfo=_dt.timezone.utc)
118+
epoch = datetime.datetime(1904, 1, 1, tzinfo=datetime.timezone.utc)
119+
when = datetime.datetime.strptime(build_date, "%Y-%m-%d").replace(
120+
tzinfo=datetime.timezone.utc
121+
)
125122
return int((when - epoch).total_seconds())
126123

127124

@@ -160,13 +157,13 @@ def regenerate_woff2(patched_otf: pathlib.Path, out_path: pathlib.Path) -> None:
160157

161158

162159
def main(argv: list[str] | None = None) -> int:
163-
p = argparse.ArgumentParser(description=__doc__)
164-
p.add_argument("--version", required=True)
165-
p.add_argument("--font-dir", type=pathlib.Path, required=True)
166-
p.add_argument("--js", type=pathlib.Path, required=True)
167-
p.add_argument("--out-dir", type=pathlib.Path, required=True)
168-
p.add_argument("--build-date", default=_dt.date.today().isoformat())
169-
args = p.parse_args(argv)
160+
parser = argparse.ArgumentParser(description=__doc__)
161+
parser.add_argument("--version", required=True)
162+
parser.add_argument("--font-dir", type=pathlib.Path, required=True)
163+
parser.add_argument("--js", type=pathlib.Path, required=True)
164+
parser.add_argument("--out-dir", type=pathlib.Path, required=True)
165+
parser.add_argument("--build-date", default=datetime.date.today().isoformat())
166+
args = parser.parse_args(argv)
170167

171168
validate_version(args.version)
172169
args.out_dir.mkdir(parents=True, exist_ok=True)
@@ -184,8 +181,12 @@ def main(argv: list[str] | None = None) -> int:
184181
if not ttf_in.exists():
185182
raise FileNotFoundError(ttf_in)
186183

187-
write_patched_font(otf_in, otf_out, version=args.version, build_date=args.build_date)
188-
write_patched_font(ttf_in, ttf_out, version=args.version, build_date=args.build_date)
184+
write_patched_font(
185+
otf_in, otf_out, version=args.version, build_date=args.build_date
186+
)
187+
write_patched_font(
188+
ttf_in, ttf_out, version=args.version, build_date=args.build_date
189+
)
189190
regenerate_woff(otf_out, woff_out)
190191
regenerate_woff2(otf_out, woff2_out)
191192

0 commit comments

Comments
 (0)