fix(parteien): BIW → BiW (kanonische Schreibweise) für HB-Wahlprogramme

parteien.py listet 'BiW' als kanonischen Key (Mixed-Case), 'BIW' nur als
Alias. Bestehende HB-Assessments tragen bereits 'BiW' in
wahlprogramm_scores. Beim Block 2.4 hatte ich die historischen BiW-
Wahlprogramme aber mit "BIW" angelegt — Folge: find_relevant_chunks
mit parteien=["BiW"] hätte die 131 Chunks der biw-hb-*-PDFs nicht
gefunden, weil der partei-Filter exakt matcht.

Geändert:
- embeddings.PROGRAMME: 3 biw-hb-* Einträge "partei": "BIW" → "BiW"
- wahlprogramme.WAHLPROGRAMME["HB"]: Key "BIW" → "BiW", "partei" Feld
  "BIW Bremen" → "BiW Bremen"
- test_hb_has_five_parteien: erwartete Set entsprechend angepasst

Folge-Schritt: chunks.partei in der embeddings.db muss von 'BIW'
auf 'BiW' migriert werden — die 131 betroffenen Chunks werden beim
nächsten Reindex der biw-hb-* Programme ohnehin überschrieben.

92/92 Programme-Tests grün, 1242 Unit-Tests grün.
This commit is contained in:
Dotty Dotter 2026-05-08 14:28:12 +02:00
parent d418fb0b4a
commit 9169e7699d
3 changed files with 6 additions and 6 deletions

View File

@ -629,8 +629,8 @@ PROGRAMME = {
# Total: 83 historische Einträge
# Block 2.4 — direkte 2019-Lücken
"biw-hb-2019": {"name": "BIW Bremen Wahlprogramm 2019", "typ": "wahlprogramm", "partei": "BIW", "bundesland": "HB", "pdf": "biw-hb-2019.pdf", "gueltig_ab": "2019-05-26", "gueltig_bis": "2023-05-14", "wp": 20},
"biw-hb-2023": {"name": "BIW Bremen Wahlprogramm 2023", "typ": "wahlprogramm", "partei": "BIW", "bundesland": "HB", "pdf": "biw-hb-2023.pdf", "gueltig_ab": "2023-05-14", "gueltig_bis": None, "wp": 21},
"biw-hb-2019": {"name": "BIW Bremen Wahlprogramm 2019", "typ": "wahlprogramm", "partei": "BiW", "bundesland": "HB", "pdf": "biw-hb-2019.pdf", "gueltig_ab": "2019-05-26", "gueltig_bis": "2023-05-14", "wp": 20},
"biw-hb-2023": {"name": "BIW Bremen Wahlprogramm 2023", "typ": "wahlprogramm", "partei": "BiW", "bundesland": "HB", "pdf": "biw-hb-2023.pdf", "gueltig_ab": "2023-05-14", "gueltig_bis": None, "wp": 21},
"cdu-bund-2017": {"name": "CDU/CSU Wahlprogramm BTW 2017", "typ": "wahlprogramm", "partei": "CDU", "bundesland": "BUND", "pdf": "cdu-bund-2017.pdf", "gueltig_ab": "2017-09-24", "gueltig_bis": "2021-09-26", "wp": 19},
"csu-bund-2017": {"name": "CSU Bayernplan 2017", "typ": "wahlprogramm", "partei": "CSU", "bundesland": "BUND", "pdf": "csu-bund-2017.pdf", "gueltig_ab": "2017-09-24", "gueltig_bis": "2021-09-26", "wp": 19},
"spd-bund-2017": {"name": "SPD Zukunftsprogramm BTW 2017", "typ": "wahlprogramm", "partei": "SPD", "bundesland": "BUND", "pdf": "spd-bund-2017.pdf", "gueltig_ab": "2017-09-24", "gueltig_bis": "2021-09-26", "wp": 19},
@ -688,7 +688,7 @@ PROGRAMME = {
"cdu-hb-2015": {"name": "CDU HB Wahlprogramm 2015", "typ": "wahlprogramm", "partei": "CDU", "bundesland": "HB", "pdf": "cdu-hb-2015.pdf", "gueltig_ab": "2015-05-10", "gueltig_bis": "2019-05-26", "wp": 19},
"afd-hb-2015": {"name": "AfD HB Wahlprogramm 2015", "typ": "wahlprogramm", "partei": "AfD", "bundesland": "HB", "pdf": "afd-hb-2015.pdf", "gueltig_ab": "2015-05-10", "gueltig_bis": "2019-05-26", "wp": 19},
"fdp-hb-2015": {"name": "FDP HB Wahlprogramm 2015", "typ": "wahlprogramm", "partei": "FDP", "bundesland": "HB", "pdf": "fdp-hb-2015.pdf", "gueltig_ab": "2015-05-10", "gueltig_bis": "2019-05-26", "wp": 19},
"biw-hb-2015": {"name": "BIW Bremen HB Wahlprogramm 2015", "typ": "wahlprogramm", "partei": "BIW", "bundesland": "HB", "pdf": "biw-hb-2015.pdf", "gueltig_ab": "2015-05-10", "gueltig_bis": "2019-05-26", "wp": 19},
"biw-hb-2015": {"name": "BIW Bremen HB Wahlprogramm 2015", "typ": "wahlprogramm", "partei": "BiW", "bundesland": "HB", "pdf": "biw-hb-2015.pdf", "gueltig_ab": "2015-05-10", "gueltig_bis": "2019-05-26", "wp": 19},
# HE WP19 (Wahl 2013-09-22)
"cdu-he-2013": {"name": "CDU HE Wahlprogramm 2013", "typ": "wahlprogramm", "partei": "CDU", "bundesland": "HE", "pdf": "cdu-he-2013.pdf", "gueltig_ab": "2013-09-22", "gueltig_bis": "2019-01-18", "wp": 19},
"gruene-he-2013": {"name": "Grüne HE Wahlprogramm 2013", "typ": "wahlprogramm", "partei": "GRÜNE", "bundesland": "HE", "pdf": "gruene-he-2013.pdf", "gueltig_ab": "2013-09-22", "gueltig_bis": "2019-01-18", "wp": 19},

View File

@ -128,7 +128,7 @@ WAHLPROGRAMME: dict[str, dict[str, dict]] = {
"CDU": {"file": "cdu-hb-2023.pdf", "titel": "CDU Bremen Wahlprogramm Bürgerschaftswahl 2023", "partei": "CDU Bremen", "jahr": 2023, "seiten": 100, "regierungsbildung": "2023-07-05", "regierungsende": None},
"GRÜNE": {"file": "gruene-hb-2023.pdf","titel": "BÜNDNIS 90/DIE GRÜNEN Bremen Wahlprogramm 2023", "partei": "BÜNDNIS 90/DIE GRÜNEN Bremen", "jahr": 2023, "seiten": 100, "regierungsbildung": "2023-07-05", "regierungsende": None},
"LINKE": {"file": "linke-hb-2023.pdf", "titel": "DIE LINKE Bremen Wahlprogramm Bürgerschaftswahl 2023", "partei": "DIE LINKE Bremen", "jahr": 2023, "seiten": 100, "regierungsbildung": "2023-07-05", "regierungsende": None},
"BIW": {"file": "biw-hb-2023.pdf", "titel": "BÜRGER IN WUT — Programm für die Bürgerschaftswahl 2023", "partei": "BIW Bremen", "jahr": 2023, "seiten": 26, "regierungsbildung": "2023-07-05", "regierungsende": None},
"BiW": {"file": "biw-hb-2023.pdf", "titel": "BÜRGER IN WUT — Programm für die Bürgerschaftswahl 2023", "partei": "BiW Bremen", "jahr": 2023, "seiten": 26, "regierungsbildung": "2023-07-05", "regierungsende": None},
},
# Hessen — LTW 08.10.2023. Kabinett Rhein II (CDU+SPD) vereidigt 18.01.2024.
"HE": {

View File

@ -184,9 +184,9 @@ class TestParteienMitWahlprogramm:
def test_hb_has_five_parteien(self):
# AfD war wegen Listenstreit nicht zur Bürgerschaftswahl 2023 zugelassen.
# Stattdessen ist BIW (Bürger in Wut) als 6. Fraktion in der 21. WP.
# Stattdessen ist BiW (Bürger in Wut) als 6. Fraktion in der 21. WP.
parteien = parteien_mit_wahlprogramm("HB")
assert set(parteien) == {"SPD", "CDU", "GRÜNE", "LINKE", "BIW"}
assert set(parteien) == {"SPD", "CDU", "GRÜNE", "LINKE", "BiW"}
def test_he_has_five_parteien(self):
parteien = parteien_mit_wahlprogramm("HE")