From d418fb0b4ae2ec5dc294d5b7f4e29c6e1ffecd8a Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Fri, 8 May 2026 14:25:35 +0200 Subject: [PATCH] fix(wahlprogramme): HB-Bovenschulte-II-Datum + Helper-Semantik klarer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zwei kleine Verbesserungen, die beim Schreiben der Drift-Tests in bf5400a aufgefallen sind: 1. HB-Datum-Typo: regierungsbildung war 2023-07-04 (Tag der Konstituierung der 21. Bürgerschaft), korrekt ist 2023-07-05 (Vereidigung Senat Bovenschulte II). 5 Einträge angepasst (SPD/CDU/GRÜNE/LINKE/BIW). Kommentar im Header ebenfalls. 2. Helper-Docstrings (regierungsbildung_for, regierungsende_for, regierung_aktuell) explizit darüber, dass das Datum die ERSTE Regierung der WP ist, NICHT die aktuell amtierende. Wichtig bei Sukzessionen wie RP WP18 (Dreyer III 2021-05-18 → Schweitzer I 2024-07-10) — die 2021er Wahlprogramme bleiben wirksam, auch nach MP-Wechsel. Für aktuell amtierende Regierung gibt es ``legislaturen.aktuelle_regierung``. 92/92 Programme-Tests grün. --- app/wahlprogramme.py | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/app/wahlprogramme.py b/app/wahlprogramme.py index 521521e..9d0f18b 100644 --- a/app/wahlprogramme.py +++ b/app/wahlprogramme.py @@ -120,15 +120,15 @@ WAHLPROGRAMME: dict[str, dict[str, dict]] = { "SPD": {"file": "spd-by-2023.pdf", "titel": "SPD Bayern Zukunftsprogramm 2023", "partei": "SPD Bayern", "jahr": 2023, "seiten": 100, "regierungsbildung": "2023-11-07", "regierungsende": None}, "AfD": {"file": "afd-by-2023.pdf", "titel": "AfD Bayern Wahlprogramm 2023", "partei": "AfD Bayern", "jahr": 2023, "seiten": 100, "regierungsbildung": "2023-11-07", "regierungsende": None}, }, - # Bremen — Bürgerschaftswahl 14.05.2023. Senat Bovenschulte II (SPD+GRÜNE+LINKE) vereidigt 04.07.2023. + # Bremen — Bürgerschaftswahl 14.05.2023. Senat Bovenschulte II (SPD+GRÜNE+LINKE) vereidigt 05.07.2023. # AfD war wegen Listenstreit nicht zur Wahl zugelassen — stattdessen ist # BIW (Bürger in Wut) als 6. Fraktion in der 21. Bürgerschaft. "HB": { - "SPD": {"file": "spd-hb-2023.pdf", "titel": "SPD Bremen Wahlprogramm Bürgerschaftswahl 2023", "partei": "SPD Bremen", "jahr": 2023, "seiten": 100, "regierungsbildung": "2023-07-04", "regierungsende": None}, - "CDU": {"file": "cdu-hb-2023.pdf", "titel": "CDU Bremen Wahlprogramm Bürgerschaftswahl 2023", "partei": "CDU Bremen", "jahr": 2023, "seiten": 100, "regierungsbildung": "2023-07-04", "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-04", "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-04", "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-04", "regierungsende": None}, + "SPD": {"file": "spd-hb-2023.pdf", "titel": "SPD Bremen Wahlprogramm Bürgerschaftswahl 2023", "partei": "SPD Bremen", "jahr": 2023, "seiten": 100, "regierungsbildung": "2023-07-05", "regierungsende": None}, + "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}, }, # Hessen — LTW 08.10.2023. Kabinett Rhein II (CDU+SPD) vereidigt 18.01.2024. "HE": { @@ -197,8 +197,16 @@ def parteien_mit_wahlprogramm(bundesland: str) -> list[str]: def regierungsbildung_for(bundesland: str) -> Optional[str]: - """Datum der Regierungsbildung (Vereidigung) der aktuellen Regierung des - Bundeslands, oder ``None`` wenn nicht hinterlegt.""" + """Datum der Regierungsbildung (Vereidigung) der Regierung, die nach der + aktuellen Wahl aus diesem Programm hervorging. + + Achtung: NICHT die Vereidigung der gerade amtierenden Regierung — bei + Sukzessionen innerhalb derselben WP (z.B. RP Dreyer III → Schweitzer I + in WP18) bleibt das Datum bei der ersten Regierung der WP. Die + Wahlprogramme bleiben zur Wahl wirksam, auch wenn die MP-Person später + wechselt. Für die "aktuell amtierende" Regierung siehe + ``legislaturen.aktuelle_regierung``. + """ parteien = WAHLPROGRAMME.get(bundesland, {}) for info in parteien.values(): rb = info.get("regierungsbildung") @@ -208,8 +216,9 @@ def regierungsbildung_for(bundesland: str) -> Optional[str]: def regierungsende_for(bundesland: str) -> Optional[str]: - """Datum, ab dem die aktuelle Regierungsperiode endet. ``None`` solange - laufend.""" + """Datum, ab dem die aus dieser Wahl hervorgegangene Regierungsperiode + endet. ``None`` solange laufend (auch nach Sukzession in derselben WP). + """ parteien = WAHLPROGRAMME.get(bundesland, {}) for info in parteien.values(): return info.get("regierungsende") @@ -217,8 +226,8 @@ def regierungsende_for(bundesland: str) -> Optional[str]: def regierung_aktuell(bundesland: str) -> bool: - """True, wenn die hinterlegte Regierungsperiode noch läuft (bildung - gesetzt, ende=None).""" + """True, wenn die aus dieser Wahl hervorgegangene Regierungsperiode noch + läuft (bildung gesetzt, ende=None).""" parteien = WAHLPROGRAMME.get(bundesland, {}) if not parteien: return False