Scaffold bggpipe: typer CLI, config loading, title normalization

uv project with typer/httpx/rapidfuzz, ruff and pytest wired into
pyproject. Six stub subcommands matching the pipeline stages, config.toml
plus BGG_USERNAME env override, accent/ampersand/article-safe title
normalization with tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Eric Wagoner
2026-08-01 12:23:00 -04:00
parent 6bd4222fc1
commit d58568cceb
11 changed files with 626 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
from bggpipe.normalize import normalize_title
def test_casefold_and_punctuation():
assert normalize_title("Wingspan: European Expansion") == (
"wingspan european expansion"
)
def test_accents_stripped():
assert normalize_title("Café International") == "cafe international"
def test_ampersand_becomes_and():
assert normalize_title("Axis & Allies") == "axis and allies"
assert normalize_title("Axis and Allies") == "axis and allies"
def test_articles_dropped():
assert normalize_title("The Castles of Burgundy") == "castles of burgundy"
assert normalize_title("A Feast for Odin") == "feast for odin"
def test_whitespace_collapsed():
assert normalize_title(" Ticket to Ride ") == "ticket to ride"