Fix European economic archive parsing

Handle German CPI corrections, year-end wording and monthly employment titles, and accept ONS labour-market titles without a colon.

Select EA21 rows when published and verify unemployment totals against the bulletin overview. Add real archive fixtures covering the backfill failures.
This commit is contained in:
eezd committed 2026-10-27 16:19:18 +08:00
1 parent 689c307c29
commit 66e811b23b
13 files changed
+4188 -9

No files matched your search

@@ -92,7 +92,7 @@ def relevant_news(source: str, title: str, url: str) -> bool:
if source == "eurostat":
return "inflation" in title or "unemployment" in title or bool(re.search(r"\bgdp\b.*(?:up|down|stable|growth|increased|decreased)|(?:growth|increase|decrease).*\bgdp\b", title))
if source == "ons":
return "time series" not in title and not url.endswith("timeseries") and bool(re.match(r"(?:consumer price inflation, uk:|labour market overview, uk:|uk labour market:|gdp first quarterly estimate, uk:|gdp quarterly national accounts, uk:)", title))
return "time series" not in title and not url.endswith("timeseries") and bool(re.match(r"(?:consumer price inflation, uk:|labour market overview, uk:|uk labour market(?::|\s)|gdp first quarterly estimate, uk:|gdp quarterly national accounts, uk:)", title))
if source == "destatis":
return any(t in title for t in ("verbraucherpreis", "inflationsrate", "bruttoinlandsprodukt", "erwerbstätig", "erwerbslos"))
if source == "insee":