#!/usr/bin/env python3 """Regenerate the repository's release badge from pyproject.toml.""" from pathlib import Path import re from changelog_notes import pyproject_version ROOT = Path(__file__).resolve().parent.parent BADGE_PATH = "assets/readme/release.svg" def badge_svg(version: str) -> str: if not re.fullmatch(r"[0-9]+\.[0-9]+\.[0-9]+", version): raise ValueError(f"invalid release version: {version!r}") label = f"v{version}" value_width = max(54, len(label) * 7 + 8) width = 48 + value_width center = 48 + value_width / 2 return f''' release: {label} release {label} ''' if __name__ == "__main__": target = ROOT / BADGE_PATH target.write_text(badge_svg(pyproject_version()), encoding="utf-8") print(f"Updated {BADGE_PATH}")