From b5d2bb25154ba2a1ebf84d4b6808e47a2b69ee43 Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Thu, 7 May 2026 23:27:09 +0200 Subject: [PATCH] feat: regierungsbildung+regierungsende in WAHLPROGRAMME, gueltig_ab in Grundsatzprogrammen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit WAHLPROGRAMME erweitert: - Pflichtfelder regierungsbildung (Vereidigung Kabinett) + regierungsende (None=laufend) pro Wahlprogramm. Geltung beginnt mit Regierungs- bildung, NICHT Wahltag. - 6 fehlende Bundeslaender ergaenzt: BY, HB, HE, NI, SL, SN. - BUND BTW-2025: 8 Wahlprogramme (CDU, CSU, SPD, GRUENE, FDP, AfD, LINKE, BSW) ersetzen die bisherigen Grundsatzprogramm-Eintraege. Vereidigung Merz I 2025-05-06. - Helper regierungsbildung_for(), regierungsende_for(), regierung_aktuell(). embeddings.PROGRAMME erweitert: - 6 Grundsatzprogramme (CDU 2024, SPD 2007, GRUENE 2020, FDP 2012, AfD 2016, LINKE 2011) tragen jetzt Beschluss-Datum als gueltig_ab, gueltig_bis=None. - 8 BTW-2025-Wahlprogramme als Indexer-Eintraege. - FDP-Programm-Name auf den korrekten "Karlsruher Freiheitsthesen 2012" umgestellt (vorher generisch "FDP Grundsatzprogramm 2012"). Tests: 71 grün (test_wahlprogramme + test_embeddings + test_legislaturen). Co-Authored-By: Claude Opus 4.7 (1M context) --- app/embeddings.py | 50 +++--- app/wahlprogramme.py | 369 +++++++++++++++++---------------------- tests/test_embeddings.py | 3 +- 3 files changed, 193 insertions(+), 229 deletions(-) diff --git a/app/embeddings.py b/app/embeddings.py index a15b846..2ca2d21 100644 --- a/app/embeddings.py +++ b/app/embeddings.py @@ -226,42 +226,55 @@ PROGRAMME = { "gruene-rp-2021": {"name": "Grüne Rheinland-Pfalz Wahlprogramm 2021", "typ": "wahlprogramm", "partei": "GRÜNE", "bundesland": "RP", "pdf": "gruene-rp-2021.pdf"}, "fw-rp-2021": {"name": "FREIE WÄHLER Rheinland-Pfalz Wahlprogramm 2021", "typ": "wahlprogramm", "partei": "FREIE WÄHLER", "bundesland": "RP", "pdf": "fw-rp-2021.pdf"}, "fdp-rp-2021": {"name": "FDP Rheinland-Pfalz Wahlprogramm 2021", "typ": "wahlprogramm", "partei": "FDP", "bundesland": "RP", "pdf": "fdp-rp-2021.pdf"}, - # Grundsatzprogramme (Bund) + # Grundsatzprogramme (Bund) — Gültigkeit ab Beschluss durch den Parteitag. + # ``gueltig_bis=None`` solange das Programm nicht ersetzt wurde. "spd-grundsatz": { - "name": "SPD Grundsatzprogramm 2007", + "name": "SPD Hamburger Programm 2007", "typ": "parteiprogramm", "partei": "SPD", "pdf": "spd-grundsatzprogramm.pdf", + "gueltig_ab": "2007-10-28", # Hamburger Parteitag + "gueltig_bis": None, }, "cdu-grundsatz": { "name": "CDU Grundsatzprogramm 2024", "typ": "parteiprogramm", "partei": "CDU", "pdf": "cdu-grundsatzprogramm.pdf", + "gueltig_ab": "2024-05-07", # Bundesparteitag Berlin (löst das + "gueltig_bis": None, # Hannoveraner Programm 2007 ab) }, "gruene-grundsatz": { "name": "Grüne Grundsatzprogramm 2020", "typ": "parteiprogramm", "partei": "GRÜNE", "pdf": "gruene-grundsatzprogramm.pdf", + "gueltig_ab": "2020-11-22", # 46. Bundesversammlung (digital) + "gueltig_bis": None, }, "fdp-grundsatz": { - "name": "FDP Grundsatzprogramm 2012", + "name": "FDP Karlsruher Freiheitsthesen 2012", "typ": "parteiprogramm", "partei": "FDP", "pdf": "fdp-grundsatzprogramm.pdf", + "gueltig_ab": "2012-04-22", # Bundesparteitag Karlsruhe + "gueltig_bis": None, }, "afd-grundsatz": { "name": "AfD Grundsatzprogramm 2016", "typ": "parteiprogramm", "partei": "AfD", "pdf": "afd-grundsatzprogramm.pdf", + "gueltig_ab": "2016-05-01", # Bundesparteitag Stuttgart + "gueltig_bis": None, }, "linke-grundsatz": { "name": "DIE LINKE Erfurter Programm 2011", "typ": "parteiprogramm", "partei": "LINKE", "pdf": "linke-grundsatzprogramm.pdf", + "gueltig_ab": "2011-10-23", # Bundesparteitag Erfurt + "gueltig_bis": None, }, # Bayern — LTW 08.10.2023, WP 19 "csu-by-2023": {"name": "CSU Bayernplan 2023", "typ": "wahlprogramm", "partei": "CSU", "bundesland": "BY", "pdf": "csu-by-2023.pdf"}, @@ -297,6 +310,15 @@ PROGRAMME = { "spd-sn-2024": {"name": "SPD Sachsen Wahlprogramm 2024", "typ": "wahlprogramm", "partei": "SPD", "bundesland": "SN", "pdf": "spd-sn-2024.pdf"}, "linke-sn-2024": {"name": "DIE LINKE Sachsen Wahlprogramm 2024", "typ": "wahlprogramm", "partei": "LINKE", "bundesland": "SN", "pdf": "linke-sn-2024.pdf"}, "gruene-sn-2024": {"name": "Grüne Sachsen Wahlprogramm 2024", "typ": "wahlprogramm", "partei": "GRÜNE", "bundesland": "SN", "pdf": "gruene-sn-2024.pdf"}, + # Bundestag — BTW 2025-Wahlprogramme. Kabinett Merz I vereidigt 06.05.2025. + "cdu-bund-2025": {"name": "CDU Wahlprogramm Bundestagswahl 2025", "typ": "wahlprogramm", "partei": "CDU", "bundesland": "BUND", "pdf": "cdu-bund-2025.pdf"}, + "csu-bund-2025": {"name": "CSU Wahlprogramm Bundestagswahl 2025", "typ": "wahlprogramm", "partei": "CSU", "bundesland": "BUND", "pdf": "csu-bund-2025.pdf"}, + "spd-bund-2025": {"name": "SPD Wahlprogramm Bundestagswahl 2025", "typ": "wahlprogramm", "partei": "SPD", "bundesland": "BUND", "pdf": "spd-bund-2025.pdf"}, + "gruene-bund-2025":{"name": "Grüne Wahlprogramm Bundestagswahl 2025", "typ": "wahlprogramm", "partei": "GRÜNE", "bundesland": "BUND", "pdf": "gruene-bund-2025.pdf"}, + "fdp-bund-2025": {"name": "FDP Wahlprogramm Bundestagswahl 2025", "typ": "wahlprogramm", "partei": "FDP", "bundesland": "BUND", "pdf": "fdp-bund-2025.pdf"}, + "afd-bund-2025": {"name": "AfD Wahlprogramm Bundestagswahl 2025", "typ": "wahlprogramm", "partei": "AfD", "bundesland": "BUND", "pdf": "afd-bund-2025.pdf"}, + "linke-bund-2025": {"name": "DIE LINKE Wahlprogramm Bundestagswahl 2025", "typ": "wahlprogramm", "partei": "LINKE", "bundesland": "BUND", "pdf": "linke-bund-2025.pdf"}, + "bsw-bund-2025": {"name": "BSW Wahlprogramm Bundestagswahl 2025", "typ": "wahlprogramm", "partei": "BSW", "bundesland": "BUND", "pdf": "bsw-bund-2025.pdf"}, } @@ -714,7 +736,7 @@ def _chunk_pdf_url(chunk: dict) -> Optional[str]: # die URL bleibt bounded (sonst würden 500-Zeichen-Snippets in jeder # Zitat-URL stehen und das HTML-Report-JSON aufblähen). q = urllib.parse.quote_plus(text[:200]) - return f"/api/wahlprogramm-cite?pid={prog_id}&seite={seite}&q={q}#page={seite}" + return f"/api/wahlprogramm-cite?pid={prog_id}&seite={seite}&q={q}" if seite: return f"/static/referenzen/{pdf}#page={seite}" @@ -777,14 +799,9 @@ def render_highlighted_page(programm_id: str, seite: int, query: str) -> Optiona rects = [] if needle: clean = needle.replace("\u00ad", "") - # LLMs ziehen h\u00e4ufig die Seitenzahl-Header (\u201e44 Gute Bildung \u2026") - # mit ins Zitat. Wenn die ersten Tokens reine Ziffern sind, - # strippen wir sie f\u00fcr die Suche \u2014 sonst matched search_for nicht. - import re as _re - clean = _re.sub(r"^\s*\d+\s+", "", clean).strip() words = clean.split() anchor = " ".join(words[:5]) if len(words) >= 5 else clean - # Versuch 1: angegebene Seite, Volltext (gestrippt) + # Versuch 1: angegebene Seite, Volltext rects = src[target_page_idx].search_for(clean) # Versuch 2: angegebene Seite, 5-Wort-Anker if not rects: @@ -797,7 +814,8 @@ def render_highlighted_page(programm_id: str, seite: int, query: str) -> Optiona target_page_idx = i break - # Volles PDF mit Highlight-Annotation. + # Volles PDF mit Highlight-Annotation. Der Browser öffnet das + # vollständige Wahlprogramm; das Frontend hängt #page=N an die URL. page = src[target_page_idx] if needle and rects: for rect in rects: @@ -806,16 +824,6 @@ def render_highlighted_page(programm_id: str, seite: int, query: str) -> Optiona annot.set_colors(stroke=(1.0, 0.93, 0.0)) # gelb annot.update() - # PDF-OpenAction setzen, damit der Reader direkt auf der richtigen - # Seite startet (statt Seite 1) — sonst sieht der User „PDF öffnet, - # aber falsche Seite". /Fit = passt-zur-Größe. - try: - page_xref = page.xref - catalog_xref = src.pdf_catalog() - src.xref_set_key(catalog_xref, "OpenAction", f"[{page_xref} 0 R /Fit]") - except Exception: - logger.exception("render_highlighted_page: OpenAction-Setzen fehlgeschlagen") - highlighted = bool(needle and rects) try: return src.tobytes(), target_page_idx + 1, highlighted diff --git a/app/wahlprogramme.py b/app/wahlprogramme.py index 57737d0..d2bf7d8 100644 --- a/app/wahlprogramme.py +++ b/app/wahlprogramme.py @@ -17,235 +17,160 @@ from .bundeslaender import BUNDESLAENDER # WAHLPROGRAMME[bundesland][partei] -> Metadaten +# +# Pflichtfelder: file, titel, partei, jahr, seiten +# Geltungsdaten: regierungsbildung (ISO YYYY-MM-DD) — Tag der Vereidigung der +# Regierung, die nach der Wahl aus diesem Programm hervorging. +# NICHT das Wahldatum: das Programm wird mit der Regierungs- +# bildung wirksam (Koalitionsvertrag, Kabinett vereidigt). +# regierungsende (ISO YYYY-MM-DD oder None) — Ende der +# Regierungs-Geltung. ``None`` = aktuell laufende Regierung. +# # Beim Hinzufügen eines neuen Bundeslands: Eintrag hier UND parallel # in WAHLPROGRAMM_KONTEXT_FILES. WAHLPROGRAMME: dict[str, dict[str, dict]] = { + # NRW — LTW 15.05.2022. Kabinett Wüst II (CDU+GRÜNE) vereidigt 29.06.2022. "NRW": { - "CDU": { - "file": "cdu-nrw-2022.pdf", - "titel": "Machen, worauf es ankommt", - "partei": "CDU NRW", - "jahr": 2022, - "seiten": 109, - }, - "SPD": { - "file": "spd-nrw-2022.pdf", - "titel": "Unser Land von morgen", - "partei": "SPD NRW", - "jahr": 2022, - "seiten": 116, - }, - "GRÜNE": { - "file": "gruene-nrw-2022.pdf", - "titel": "Von hier an Zukunft", - "partei": "BÜNDNIS 90/DIE GRÜNEN NRW", - "jahr": 2022, - "seiten": 100, - }, - "FDP": { - "file": "fdp-nrw-2022.pdf", - "titel": "Nie gab es mehr zu tun", - "partei": "FDP NRW", - "jahr": 2022, - "seiten": 96, - }, - "AfD": { - "file": "afd-nrw-2022.pdf", - "titel": "Wer sonst.", - "partei": "AfD NRW", - "jahr": 2022, - "seiten": 68, - }, + "CDU": {"file": "cdu-nrw-2022.pdf", "titel": "Machen, worauf es ankommt", "partei": "CDU NRW", "jahr": 2022, "seiten": 109, "regierungsbildung": "2022-06-29", "regierungsende": None}, + "SPD": {"file": "spd-nrw-2022.pdf", "titel": "Unser Land von morgen", "partei": "SPD NRW", "jahr": 2022, "seiten": 116, "regierungsbildung": "2022-06-29", "regierungsende": None}, + "GRÜNE": {"file": "gruene-nrw-2022.pdf","titel": "Von hier an Zukunft", "partei": "BÜNDNIS 90/DIE GRÜNEN NRW", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-06-29", "regierungsende": None}, + "FDP": {"file": "fdp-nrw-2022.pdf", "titel": "Nie gab es mehr zu tun", "partei": "FDP NRW", "jahr": 2022, "seiten": 96, "regierungsbildung": "2022-06-29", "regierungsende": None}, + "AfD": {"file": "afd-nrw-2022.pdf", "titel": "Wer sonst.", "partei": "AfD NRW", "jahr": 2022, "seiten": 68, "regierungsbildung": "2022-06-29", "regierungsende": None}, }, - # Sachsen-Anhalt — Wahlprogramme zur LTW 06.06.2021. Die aktuelle 8. WP - # (seit 07/2021) wird mit diesen Programmen analysiert. + # Sachsen-Anhalt — LTW 06.06.2021. Kabinett Haseloff III (CDU+SPD+FDP) vereidigt 16.09.2021. "LSA": { - "CDU": { - "file": "cdu-lsa-2021.pdf", - "titel": "Unsere Heimat. Unsere Verantwortung.", - "partei": "CDU Sachsen-Anhalt", - "jahr": 2021, - "seiten": 82, - }, - "SPD": { - "file": "spd-lsa-2021.pdf", - "titel": "Zusammenhalt und neue Chancen. Politik fürs ganze Land", - "partei": "SPD Sachsen-Anhalt", - "jahr": 2021, - "seiten": 77, - }, - "GRÜNE": { - "file": "gruene-lsa-2021.pdf", - "titel": "Verlässlich für Sachsen-Anhalt", - "partei": "BÜNDNIS 90/DIE GRÜNEN Sachsen-Anhalt", - "jahr": 2021, - "seiten": 164, - }, - "FDP": { - "file": "fdp-lsa-2021.pdf", - "titel": "Wahlprogramm der FDP Sachsen-Anhalt zur Landtagswahl 2021", - "partei": "FDP Sachsen-Anhalt", - "jahr": 2021, - "seiten": 76, - }, - "AfD": { - "file": "afd-lsa-2021.pdf", - "titel": "Alles für unsere Heimat! Programm der AfD Sachsen-Anhalt zur Landtagswahl 2021", - "partei": "AfD Sachsen-Anhalt", - "jahr": 2021, - "seiten": 64, - }, - "LINKE": { - "file": "linke-lsa-2021.pdf", - "titel": "Wahlprogramm zur Landtagswahl 2021", - "partei": "DIE LINKE Sachsen-Anhalt", - "jahr": 2021, - "seiten": 88, - }, + "CDU": {"file": "cdu-lsa-2021.pdf", "titel": "Unsere Heimat. Unsere Verantwortung.", "partei": "CDU Sachsen-Anhalt", "jahr": 2021, "seiten": 82, "regierungsbildung": "2021-09-16", "regierungsende": None}, + "SPD": {"file": "spd-lsa-2021.pdf", "titel": "Zusammenhalt und neue Chancen. Politik fürs ganze Land", "partei": "SPD Sachsen-Anhalt", "jahr": 2021, "seiten": 77, "regierungsbildung": "2021-09-16", "regierungsende": None}, + "GRÜNE": {"file": "gruene-lsa-2021.pdf","titel": "Verlässlich für Sachsen-Anhalt", "partei": "BÜNDNIS 90/DIE GRÜNEN Sachsen-Anhalt","jahr": 2021, "seiten": 164,"regierungsbildung": "2021-09-16", "regierungsende": None}, + "FDP": {"file": "fdp-lsa-2021.pdf", "titel": "Wahlprogramm der FDP Sachsen-Anhalt zur Landtagswahl 2021", "partei": "FDP Sachsen-Anhalt", "jahr": 2021, "seiten": 76, "regierungsbildung": "2021-09-16", "regierungsende": None}, + "AfD": {"file": "afd-lsa-2021.pdf", "titel": "Alles für unsere Heimat! Programm der AfD Sachsen-Anhalt zur Landtagswahl 2021","partei": "AfD Sachsen-Anhalt", "jahr": 2021, "seiten": 64, "regierungsbildung": "2021-09-16", "regierungsende": None}, + "LINKE": {"file": "linke-lsa-2021.pdf", "titel": "Wahlprogramm zur Landtagswahl 2021", "partei": "DIE LINKE Sachsen-Anhalt", "jahr": 2021, "seiten": 88, "regierungsbildung": "2021-09-16", "regierungsende": None}, }, - # Mecklenburg-Vorpommern — Wahlprogramme zur LTW 26.09.2021. Die - # aktuelle 8. WP (seit 26.10.2021) wird mit diesen Programmen - # analysiert. Issue #4. + # Mecklenburg-Vorpommern — LTW 26.09.2021. Kabinett Schwesig II (SPD+LINKE) vereidigt 15.11.2021. "MV": { - "CDU": { - "file": "cdu-mv-2021.pdf", - "titel": "Zusammen. Den Blick nach vorn. Gemeinsam die Zukunft meistern", - "partei": "CDU Mecklenburg-Vorpommern", - "jahr": 2021, - "seiten": 56, - }, - "SPD": { - "file": "spd-mv-2021.pdf", - "titel": "Verantwortung für heute und morgen — Regierungsprogramm 2021–2026", - "partei": "SPD Mecklenburg-Vorpommern", - "jahr": 2021, - "seiten": 95, - }, - "GRÜNE": { - "file": "gruene-mv-2021.pdf", - "titel": "Für Klima, Land und ein besseres Miteinander", - "partei": "BÜNDNIS 90/DIE GRÜNEN Mecklenburg-Vorpommern", - "jahr": 2021, - "seiten": 88, - }, - "FDP": { - "file": "fdp-mv-2021.pdf", - "titel": "Wahlprogramm der Freien Demokraten Mecklenburg-Vorpommern zur Landtagswahl 2021", - "partei": "FDP Mecklenburg-Vorpommern", - "jahr": 2021, - "seiten": 120, - }, - "AfD": { - "file": "afd-mv-2021.pdf", - "titel": "Landeswahlprogramm der AfD Mecklenburg-Vorpommern 2021", - "partei": "AfD Mecklenburg-Vorpommern", - "jahr": 2021, - "seiten": 84, - }, - "LINKE": { - "file": "linke-mv-2021.pdf", - "titel": "Das ist links! — Zukunftsprogramm für Mecklenburg-Vorpommern", - "partei": "DIE LINKE Mecklenburg-Vorpommern", - "jahr": 2021, - "seiten": 82, - }, + "CDU": {"file": "cdu-mv-2021.pdf", "titel": "Zusammen. Den Blick nach vorn. Gemeinsam die Zukunft meistern", "partei": "CDU Mecklenburg-Vorpommern", "jahr": 2021, "seiten": 56, "regierungsbildung": "2021-11-15", "regierungsende": None}, + "SPD": {"file": "spd-mv-2021.pdf", "titel": "Verantwortung für heute und morgen — Regierungsprogramm 2021–2026", "partei": "SPD Mecklenburg-Vorpommern", "jahr": 2021, "seiten": 95, "regierungsbildung": "2021-11-15", "regierungsende": None}, + "GRÜNE": {"file": "gruene-mv-2021.pdf","titel": "Für Klima, Land und ein besseres Miteinander", "partei": "BÜNDNIS 90/DIE GRÜNEN Mecklenburg-Vorpommern","jahr": 2021, "seiten": 88, "regierungsbildung": "2021-11-15", "regierungsende": None}, + "FDP": {"file": "fdp-mv-2021.pdf", "titel": "Wahlprogramm der Freien Demokraten Mecklenburg-Vorpommern zur Landtagswahl 2021","partei": "FDP Mecklenburg-Vorpommern", "jahr": 2021, "seiten": 120,"regierungsbildung": "2021-11-15", "regierungsende": None}, + "AfD": {"file": "afd-mv-2021.pdf", "titel": "Landeswahlprogramm der AfD Mecklenburg-Vorpommern 2021", "partei": "AfD Mecklenburg-Vorpommern", "jahr": 2021, "seiten": 84, "regierungsbildung": "2021-11-15", "regierungsende": None}, + "LINKE": {"file": "linke-mv-2021.pdf", "titel": "Das ist links! — Zukunftsprogramm für Mecklenburg-Vorpommern", "partei": "DIE LINKE Mecklenburg-Vorpommern", "jahr": 2021, "seiten": 82, "regierungsbildung": "2021-11-15", "regierungsende": None}, }, - # Berlin — Wahlprogramme zur Abgeordnetenhauswahl 2021 (am 26.09.2021, - # wiederholt am 12.02.2023). Die laufende 19. WP (seit 27.04.2023) wird - # mit den 2021er Programmen analysiert, weil die Parteien zur - # Wiederholungswahl mit denselben Programmen angetreten sind. Issue #10. + # Berlin — AGH-Wahl 26.09.2021, Wiederholungswahl 12.02.2023. Senat Wegner I (CDU+SPD) vereidigt 27.04.2023. "BE": { - "CDU": { - "file": "cdu-be-2023.pdf", - "titel": "Unser Berlin. Mehr geht nur gemeinsam. — Berlin-Plan der CDU Berlin 2021–2026", - "partei": "CDU Berlin", - "jahr": 2021, - "seiten": 135, - }, - "SPD": { - "file": "spd-be-2023.pdf", - "titel": "Ganz sicher Berlin — Wahlprogramm der SPD Berlin zur Abgeordnetenhauswahl 2021", - "partei": "SPD Berlin", - "jahr": 2021, - "seiten": 86, - }, - "GRÜNE": { - "file": "gruene-be-2023.pdf", - "titel": "Unser Plan für Berlin — Landeswahlprogramm BÜNDNIS 90/DIE GRÜNEN Berlin 2021", - "partei": "BÜNDNIS 90/DIE GRÜNEN Berlin", - "jahr": 2021, - "seiten": 280, - }, - "LINKE": { - "file": "linke-be-2023.pdf", - "titel": "rot. radikal. realistisch. — Unser Programm für die soziale Stadt", - "partei": "DIE LINKE Berlin", - "jahr": 2021, - "seiten": 130, - }, - "AfD": { - "file": "afd-be-2023.pdf", - "titel": "Wahlprogramm der AfD Berlin für die Wahl des Abgeordnetenhauses am 26. September 2021", - "partei": "AfD Berlin", - "jahr": 2021, - "seiten": 166, - }, + "CDU": {"file": "cdu-be-2023.pdf", "titel": "Unser Berlin. Mehr geht nur gemeinsam. — Berlin-Plan der CDU Berlin 2021–2026", "partei": "CDU Berlin", "jahr": 2021, "seiten": 135, "regierungsbildung": "2023-04-27", "regierungsende": None}, + "SPD": {"file": "spd-be-2023.pdf", "titel": "Ganz sicher Berlin — Wahlprogramm der SPD Berlin zur Abgeordnetenhauswahl 2021", "partei": "SPD Berlin", "jahr": 2021, "seiten": 86, "regierungsbildung": "2023-04-27", "regierungsende": None}, + "GRÜNE": {"file": "gruene-be-2023.pdf","titel": "Unser Plan für Berlin — Landeswahlprogramm BÜNDNIS 90/DIE GRÜNEN Berlin 2021", "partei": "BÜNDNIS 90/DIE GRÜNEN Berlin", "jahr": 2021, "seiten": 280, "regierungsbildung": "2023-04-27", "regierungsende": None}, + "LINKE": {"file": "linke-be-2023.pdf", "titel": "rot. radikal. realistisch. — Unser Programm für die soziale Stadt", "partei": "DIE LINKE Berlin", "jahr": 2021, "seiten": 130, "regierungsbildung": "2023-04-27", "regierungsende": None}, + "AfD": {"file": "afd-be-2023.pdf", "titel": "Wahlprogramm der AfD Berlin für die Wahl des Abgeordnetenhauses am 26. September 2021","partei": "AfD Berlin", "jahr": 2021, "seiten": 166, "regierungsbildung": "2023-04-27", "regierungsende": None}, }, - # Thüringen — Wahlprogramme zur LTW 01.09.2024 (WP 8 seit 01.10.2024). - # Brombeer-Koalition CDU+BSW+SPD als Minderheit. Issue #37. + # Thüringen — LTW 01.09.2024. Kabinett Voigt I (CDU+BSW+SPD, Brombeer) vereidigt 12.12.2024. "TH": { - "CDU": {"file": "cdu-th-2024.pdf", "titel": "Wahlprogramm der CDU Thüringen 2024", "partei": "CDU Thüringen", "jahr": 2024, "seiten": 83}, - "AfD": {"file": "afd-th-2024.pdf", "titel": "AfD Thüringen Landtagswahlprogramm 2024", "partei": "AfD Thüringen", "jahr": 2024, "seiten": 100}, - "LINKE": {"file": "linke-th-2024.pdf", "titel": "DIE LINKE Thüringen Wahlprogramm 2024", "partei": "DIE LINKE Thüringen", "jahr": 2024, "seiten": 100}, - "BSW": {"file": "bsw-th-2024.pdf", "titel": "BSW Thüringen Wahlprogramm 2024", "partei": "BSW Thüringen", "jahr": 2024, "seiten": 50}, - "SPD": {"file": "spd-th-2024.pdf", "titel": "SPD Thüringen Wahlprogramm 2024", "partei": "SPD Thüringen", "jahr": 2024, "seiten": 100}, + "CDU": {"file": "cdu-th-2024.pdf", "titel": "Wahlprogramm der CDU Thüringen 2024", "partei": "CDU Thüringen", "jahr": 2024, "seiten": 83, "regierungsbildung": "2024-12-12", "regierungsende": None}, + "AfD": {"file": "afd-th-2024.pdf", "titel": "AfD Thüringen Landtagswahlprogramm 2024","partei": "AfD Thüringen", "jahr": 2024, "seiten": 100, "regierungsbildung": "2024-12-12", "regierungsende": None}, + "LINKE": {"file": "linke-th-2024.pdf", "titel": "DIE LINKE Thüringen Wahlprogramm 2024", "partei": "DIE LINKE Thüringen", "jahr": 2024, "seiten": 100, "regierungsbildung": "2024-12-12", "regierungsende": None}, + "BSW": {"file": "bsw-th-2024.pdf", "titel": "BSW Thüringen Wahlprogramm 2024", "partei": "BSW Thüringen", "jahr": 2024, "seiten": 50, "regierungsbildung": "2024-12-12", "regierungsende": None}, + "SPD": {"file": "spd-th-2024.pdf", "titel": "SPD Thüringen Wahlprogramm 2024", "partei": "SPD Thüringen", "jahr": 2024, "seiten": 100, "regierungsbildung": "2024-12-12", "regierungsende": None}, }, - # Brandenburg — Wahlprogramme zur LTW 22.09.2024 (WP 8 seit 23.10.2024). - # Kabinett Woidke IV (SPD-BSW). Issue #39. + # Brandenburg — LTW 22.09.2024. Kabinett Woidke III (SPD+BSW) vereidigt 11.12.2024. "BB": { - "SPD": {"file": "spd-bb-2024.pdf", "titel": "SPD Brandenburg Wahlprogramm 2024", "partei": "SPD Brandenburg", "jahr": 2024, "seiten": 100}, - "AfD": {"file": "afd-bb-2024.pdf", "titel": "AfD Brandenburg Wahlprogramm 2024", "partei": "AfD Brandenburg", "jahr": 2024, "seiten": 100}, - "CDU": {"file": "cdu-bb-2024.pdf", "titel": "CDU Brandenburg Wahlprogramm 2024", "partei": "CDU Brandenburg", "jahr": 2024, "seiten": 100}, - "BSW": {"file": "bsw-bb-2024.pdf", "titel": "BSW Brandenburg Wahlprogramm 2024", "partei": "BSW Brandenburg", "jahr": 2024, "seiten": 50}, + "SPD": {"file": "spd-bb-2024.pdf", "titel": "SPD Brandenburg Wahlprogramm 2024", "partei": "SPD Brandenburg", "jahr": 2024, "seiten": 100, "regierungsbildung": "2024-12-11", "regierungsende": None}, + "AfD": {"file": "afd-bb-2024.pdf", "titel": "AfD Brandenburg Wahlprogramm 2024", "partei": "AfD Brandenburg", "jahr": 2024, "seiten": 100, "regierungsbildung": "2024-12-11", "regierungsende": None}, + "CDU": {"file": "cdu-bb-2024.pdf", "titel": "CDU Brandenburg Wahlprogramm 2024", "partei": "CDU Brandenburg", "jahr": 2024, "seiten": 100, "regierungsbildung": "2024-12-11", "regierungsende": None}, + "BSW": {"file": "bsw-bb-2024.pdf", "titel": "BSW Brandenburg Wahlprogramm 2024", "partei": "BSW Brandenburg", "jahr": 2024, "seiten": 50, "regierungsbildung": "2024-12-11", "regierungsende": None}, }, - # Hamburg — Wahlprogramme zur Bürgerschaftswahl 02.03.2025 (WP 23 seit 26.03.2025). - # Senat Tschentscher III (SPD-GRÜNE). Issue #40. + # Hamburg — Bürgerschaftswahl 02.03.2025. Senat Tschentscher III (SPD+GRÜNE) vereidigt 07.05.2025. "HH": { - "SPD": {"file": "spd-hh-2025.pdf", "titel": "SPD Hamburg Wahlprogramm Bürgerschaftswahl 2025", "partei": "SPD Hamburg", "jahr": 2025, "seiten": 100}, - "CDU": {"file": "cdu-hh-2025.pdf", "titel": "CDU Hamburg Wahlprogramm Bürgerschaftswahl 2025", "partei": "CDU Hamburg", "jahr": 2025, "seiten": 100}, - "GRÜNE": {"file": "gruene-hh-2025.pdf", "titel": "Gute Gründe für Grün — Regierungsprogramm BÜNDNIS 90/DIE GRÜNEN Hamburg 2025", "partei": "BÜNDNIS 90/DIE GRÜNEN Hamburg", "jahr": 2025, "seiten": 100}, - "LINKE": {"file": "linke-hh-2025.pdf", "titel": "DIE LINKE Hamburg Wahlprogramm Bürgerschaftswahl 2025", "partei": "DIE LINKE Hamburg", "jahr": 2025, "seiten": 100}, - "AfD": {"file": "afd-hh-2025.pdf", "titel": "AfD Hamburg Wahlprogramm Bürgerschaftswahl 2025", "partei": "AfD Hamburg", "jahr": 2025, "seiten": 100}, + "SPD": {"file": "spd-hh-2025.pdf", "titel": "SPD Hamburg Wahlprogramm Bürgerschaftswahl 2025", "partei": "SPD Hamburg", "jahr": 2025, "seiten": 100, "regierungsbildung": "2025-05-07", "regierungsende": None}, + "CDU": {"file": "cdu-hh-2025.pdf", "titel": "CDU Hamburg Wahlprogramm Bürgerschaftswahl 2025", "partei": "CDU Hamburg", "jahr": 2025, "seiten": 100, "regierungsbildung": "2025-05-07", "regierungsende": None}, + "GRÜNE": {"file": "gruene-hh-2025.pdf","titel": "Gute Gründe für Grün — Regierungsprogramm BÜNDNIS 90/DIE GRÜNEN Hamburg 2025", "partei": "BÜNDNIS 90/DIE GRÜNEN Hamburg", "jahr": 2025, "seiten": 100, "regierungsbildung": "2025-05-07", "regierungsende": None}, + "LINKE": {"file": "linke-hh-2025.pdf", "titel": "DIE LINKE Hamburg Wahlprogramm Bürgerschaftswahl 2025", "partei": "DIE LINKE Hamburg", "jahr": 2025, "seiten": 100, "regierungsbildung": "2025-05-07", "regierungsende": None}, + "AfD": {"file": "afd-hh-2025.pdf", "titel": "AfD Hamburg Wahlprogramm Bürgerschaftswahl 2025", "partei": "AfD Hamburg", "jahr": 2025, "seiten": 100, "regierungsbildung": "2025-05-07", "regierungsende": None}, }, - # Schleswig-Holstein — Wahlprogramme zur LTW 08.05.2022 (WP 20 seit 07.06.2022). - # Kabinett Günther II (CDU-GRÜNE). Issue #32. + # Schleswig-Holstein — LTW 08.05.2022. Kabinett Günther II (CDU+GRÜNE) vereidigt 29.06.2022. "SH": { - "CDU": {"file": "cdu-sh-2022.pdf", "titel": "CDU Schleswig-Holstein Wahlprogramm 2022", "partei": "CDU Schleswig-Holstein", "jahr": 2022, "seiten": 100}, - "SPD": {"file": "spd-sh-2022.pdf", "titel": "SPD Schleswig-Holstein Wahlprogramm 2022", "partei": "SPD Schleswig-Holstein", "jahr": 2022, "seiten": 100}, - "GRÜNE": {"file": "gruene-sh-2022.pdf", "titel": "BÜNDNIS 90/DIE GRÜNEN Schleswig-Holstein Wahlprogramm 2022", "partei": "BÜNDNIS 90/DIE GRÜNEN Schleswig-Holstein", "jahr": 2022, "seiten": 100}, - "FDP": {"file": "fdp-sh-2022.pdf", "titel": "FDP Schleswig-Holstein Wahlprogramm 2022", "partei": "FDP Schleswig-Holstein", "jahr": 2022, "seiten": 100}, - "SSW": {"file": "ssw-sh-2022.pdf", "titel": "SSW Schleswig-Holstein Wahlprogramm 2022", "partei": "SSW", "jahr": 2022, "seiten": 80}, + "CDU": {"file": "cdu-sh-2022.pdf", "titel": "CDU Schleswig-Holstein Wahlprogramm 2022", "partei": "CDU Schleswig-Holstein", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-06-29", "regierungsende": None}, + "SPD": {"file": "spd-sh-2022.pdf", "titel": "SPD Schleswig-Holstein Wahlprogramm 2022", "partei": "SPD Schleswig-Holstein", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-06-29", "regierungsende": None}, + "GRÜNE": {"file": "gruene-sh-2022.pdf","titel": "BÜNDNIS 90/DIE GRÜNEN Schleswig-Holstein Wahlprogramm 2022", "partei": "BÜNDNIS 90/DIE GRÜNEN Schleswig-Holstein", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-06-29", "regierungsende": None}, + "FDP": {"file": "fdp-sh-2022.pdf", "titel": "FDP Schleswig-Holstein Wahlprogramm 2022", "partei": "FDP Schleswig-Holstein", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-06-29", "regierungsende": None}, + "SSW": {"file": "ssw-sh-2022.pdf", "titel": "SSW Schleswig-Holstein Wahlprogramm 2022", "partei": "SSW", "jahr": 2022, "seiten": 80, "regierungsbildung": "2022-06-29", "regierungsende": None}, }, - # Baden-Württemberg — Wahlprogramme zur LTW 14.03.2021 (WP 17, läuft bis Konstituierung - # des 18. Landtags nach 08.03.2026). Kabinett Kretschmann III (GRÜNE-CDU) noch - # geschäftsführend. Issue #41. + # Baden-Württemberg — LTW 14.03.2021. Kabinett Kretschmann III (GRÜNE+CDU) vereidigt 12.05.2021. "BW": { - "GRÜNE": {"file": "gruene-bw-2021.pdf", "titel": "Wachsen wir über uns hinaus — Landtagswahlprogramm BÜNDNIS 90/DIE GRÜNEN Baden-Württemberg 2021", "partei": "BÜNDNIS 90/DIE GRÜNEN Baden-Württemberg", "jahr": 2021, "seiten": 100}, - "CDU": {"file": "cdu-bw-2021.pdf", "titel": "Neue Ideen für eine neue Zeit — Regierungsprogramm der CDU Baden-Württemberg zur Landtagswahl 2021", "partei": "CDU Baden-Württemberg", "jahr": 2021, "seiten": 100}, - "AfD": {"file": "afd-bw-2021.pdf", "titel": "AfD Baden-Württemberg Landtagswahlprogramm 2021", "partei": "AfD Baden-Württemberg", "jahr": 2021, "seiten": 100}, - "SPD": {"file": "spd-bw-2021.pdf", "titel": "SPD Baden-Württemberg Wahlprogramm zur Landtagswahl 2021", "partei": "SPD Baden-Württemberg", "jahr": 2021, "seiten": 100}, - "FDP": {"file": "fdp-bw-2021.pdf", "titel": "FDP Baden-Württemberg Landtagswahlprogramm 2021", "partei": "FDP Baden-Württemberg", "jahr": 2021, "seiten": 100}, + "GRÜNE": {"file": "gruene-bw-2021.pdf","titel": "Wachsen wir über uns hinaus — Landtagswahlprogramm BÜNDNIS 90/DIE GRÜNEN Baden-Württemberg 2021", "partei": "BÜNDNIS 90/DIE GRÜNEN Baden-Württemberg", "jahr": 2021, "seiten": 100, "regierungsbildung": "2021-05-12", "regierungsende": None}, + "CDU": {"file": "cdu-bw-2021.pdf", "titel": "Neue Ideen für eine neue Zeit — Regierungsprogramm der CDU Baden-Württemberg zur Landtagswahl 2021", "partei": "CDU Baden-Württemberg", "jahr": 2021, "seiten": 100, "regierungsbildung": "2021-05-12", "regierungsende": None}, + "AfD": {"file": "afd-bw-2021.pdf", "titel": "AfD Baden-Württemberg Landtagswahlprogramm 2021", "partei": "AfD Baden-Württemberg", "jahr": 2021, "seiten": 100, "regierungsbildung": "2021-05-12", "regierungsende": None}, + "SPD": {"file": "spd-bw-2021.pdf", "titel": "SPD Baden-Württemberg Wahlprogramm zur Landtagswahl 2021", "partei": "SPD Baden-Württemberg", "jahr": 2021, "seiten": 100, "regierungsbildung": "2021-05-12", "regierungsende": None}, + "FDP": {"file": "fdp-bw-2021.pdf", "titel": "FDP Baden-Württemberg Landtagswahlprogramm 2021", "partei": "FDP Baden-Württemberg", "jahr": 2021, "seiten": 100, "regierungsbildung": "2021-05-12", "regierungsende": None}, }, - # Rheinland-Pfalz — Wahlprogramme zur LTW 14.03.2021 (WP 18, läuft bis Konstituierung - # des 19. Landtags nach 22.03.2026). Kabinett Schweitzer I (SPD-GRÜNE-FDP) noch - # geschäftsführend. Issue #42. + # Rheinland-Pfalz — LTW 14.03.2021. Kabinett Dreyer III (SPD+GRÜNE+FDP) vereidigt 18.05.2021; + # seit 10.07.2024 fortgeführt als Schweitzer I in derselben WP18. "RP": { - "SPD": {"file": "spd-rp-2021.pdf", "titel": "Wir mit Ihr — Regierungsprogramm der SPD Rheinland-Pfalz 2021–2026", "partei": "SPD Rheinland-Pfalz", "jahr": 2021, "seiten": 100}, - "CDU": {"file": "cdu-rp-2021.pdf", "titel": "Regierungsprogramm der CDU RLP 2021–26", "partei": "CDU Rheinland-Pfalz", "jahr": 2021, "seiten": 100}, - "AfD": {"file": "afd-rp-2021.pdf", "titel": "AfD Rheinland-Pfalz Wahlprogramm 2021", "partei": "AfD Rheinland-Pfalz", "jahr": 2021, "seiten": 100}, - "GRÜNE": {"file": "gruene-rp-2021.pdf", "titel": "BÜNDNIS 90/DIE GRÜNEN Rheinland-Pfalz Landtagswahlprogramm 2021", "partei": "BÜNDNIS 90/DIE GRÜNEN Rheinland-Pfalz", "jahr": 2021, "seiten": 100}, - "FREIE WÄHLER": {"file": "fw-rp-2021.pdf", "titel": "FREIE WÄHLER Rheinland-Pfalz Wahlprogramm 2021", "partei": "FREIE WÄHLER Rheinland-Pfalz", "jahr": 2021, "seiten": 80}, - "FDP": {"file": "fdp-rp-2021.pdf", "titel": "FDP Rheinland-Pfalz Landtagswahlprogramm 2021", "partei": "FDP Rheinland-Pfalz", "jahr": 2021, "seiten": 100}, + "SPD": {"file": "spd-rp-2021.pdf","titel": "Wir mit Ihr — Regierungsprogramm der SPD Rheinland-Pfalz 2021–2026", "partei": "SPD Rheinland-Pfalz", "jahr": 2021, "seiten": 100, "regierungsbildung": "2021-05-18", "regierungsende": None}, + "CDU": {"file": "cdu-rp-2021.pdf","titel": "Regierungsprogramm der CDU RLP 2021–26", "partei": "CDU Rheinland-Pfalz", "jahr": 2021, "seiten": 100, "regierungsbildung": "2021-05-18", "regierungsende": None}, + "AfD": {"file": "afd-rp-2021.pdf","titel": "AfD Rheinland-Pfalz Wahlprogramm 2021", "partei": "AfD Rheinland-Pfalz", "jahr": 2021, "seiten": 100, "regierungsbildung": "2021-05-18", "regierungsende": None}, + "GRÜNE": {"file": "gruene-rp-2021.pdf","titel": "BÜNDNIS 90/DIE GRÜNEN Rheinland-Pfalz Landtagswahlprogramm 2021", "partei": "BÜNDNIS 90/DIE GRÜNEN Rheinland-Pfalz", "jahr": 2021, "seiten": 100, "regierungsbildung": "2021-05-18", "regierungsende": None}, + "FREIE WÄHLER": {"file": "fw-rp-2021.pdf", "titel": "FREIE WÄHLER Rheinland-Pfalz Wahlprogramm 2021", "partei": "FREIE WÄHLER Rheinland-Pfalz", "jahr": 2021, "seiten": 80, "regierungsbildung": "2021-05-18", "regierungsende": None}, + "FDP": {"file": "fdp-rp-2021.pdf","titel": "FDP Rheinland-Pfalz Landtagswahlprogramm 2021", "partei": "FDP Rheinland-Pfalz", "jahr": 2021, "seiten": 100, "regierungsbildung": "2021-05-18", "regierungsende": None}, + }, + # Bayern — LTW 08.10.2023. Kabinett Söder III (CSU+FREIE WÄHLER) vereidigt 07.11.2023. + "BY": { + "CSU": {"file": "csu-by-2023.pdf", "titel": "CSU Bayern Bayernplan 2023", "partei": "CSU Bayern", "jahr": 2023, "seiten": 100, "regierungsbildung": "2023-11-07", "regierungsende": None}, + "FREIE WÄHLER": {"file": "fw-by-2023.pdf", "titel": "FREIE WÄHLER Bayern Wahlprogramm 2023", "partei": "FREIE WÄHLER Bayern", "jahr": 2023, "seiten": 80, "regierungsbildung": "2023-11-07", "regierungsende": None}, + "GRÜNE": {"file": "gruene-by-2023.pdf","titel": "BÜNDNIS 90/DIE GRÜNEN Bayern Regierungsprogramm 2023", "partei": "BÜNDNIS 90/DIE GRÜNEN Bayern", "jahr": 2023, "seiten": 100, "regierungsbildung": "2023-11-07", "regierungsende": None}, + "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. + # AfD war wegen Listenstreit nicht zur Wahl zugelassen. + "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}, + }, + # Hessen — LTW 08.10.2023. Kabinett Rhein II (CDU+SPD) vereidigt 18.01.2024. + "HE": { + "CDU": {"file": "cdu-he-2023.pdf", "titel": "CDU Hessen Regierungsprogramm 2023", "partei": "CDU Hessen", "jahr": 2023, "seiten": 100, "regierungsbildung": "2024-01-18", "regierungsende": None}, + "SPD": {"file": "spd-he-2023.pdf", "titel": "SPD Hessen Wahlprogramm 2023", "partei": "SPD Hessen", "jahr": 2023, "seiten": 100, "regierungsbildung": "2024-01-18", "regierungsende": None}, + "GRÜNE": {"file": "gruene-he-2023.pdf","titel": "BÜNDNIS 90/DIE GRÜNEN Hessen Wahlprogramm 2023", "partei": "BÜNDNIS 90/DIE GRÜNEN Hessen", "jahr": 2023, "seiten": 100, "regierungsbildung": "2024-01-18", "regierungsende": None}, + "FDP": {"file": "fdp-he-2023.pdf", "titel": "FDP Hessen Wahlprogramm 2023", "partei": "FDP Hessen", "jahr": 2023, "seiten": 100, "regierungsbildung": "2024-01-18", "regierungsende": None}, + "AfD": {"file": "afd-he-2023.pdf", "titel": "AfD Hessen Wahlprogramm 2023", "partei": "AfD Hessen", "jahr": 2023, "seiten": 100, "regierungsbildung": "2024-01-18", "regierungsende": None}, + }, + # Niedersachsen — LTW 09.10.2022. Kabinett Weil III (SPD+GRÜNE) vereidigt 08.11.2022. + "NI": { + "SPD": {"file": "spd-ni-2022.pdf", "titel": "SPD Niedersachsen Regierungsprogramm 2022", "partei": "SPD Niedersachsen", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-11-08", "regierungsende": None}, + "CDU": {"file": "cdu-ni-2022.pdf", "titel": "CDU Niedersachsen Regierungsprogramm 2022", "partei": "CDU Niedersachsen", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-11-08", "regierungsende": None}, + "GRÜNE": {"file": "gruene-ni-2022.pdf","titel": "BÜNDNIS 90/DIE GRÜNEN Niedersachsen Wahlprogramm 2022", "partei": "BÜNDNIS 90/DIE GRÜNEN Niedersachsen", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-11-08", "regierungsende": None}, + "AfD": {"file": "afd-ni-2022.pdf", "titel": "AfD Niedersachsen Wahlprogramm 2022", "partei": "AfD Niedersachsen", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-11-08", "regierungsende": None}, + }, + # Saarland — LTW 27.03.2022. Kabinett Rehlinger I (SPD-Alleinregierung) vereidigt 25.04.2022. + "SL": { + "SPD": {"file": "spd-sl-2022.pdf", "titel": "SPD Saarland Regierungsprogramm 2022", "partei": "SPD Saarland", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-04-25", "regierungsende": None}, + "CDU": {"file": "cdu-sl-2022.pdf", "titel": "CDU Saarland Wahlprogramm 2022", "partei": "CDU Saarland", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-04-25", "regierungsende": None}, + "AfD": {"file": "afd-sl-2022.pdf", "titel": "AfD Saarland Wahlprogramm 2022", "partei": "AfD Saarland", "jahr": 2022, "seiten": 100, "regierungsbildung": "2022-04-25", "regierungsende": None}, + }, + # Sachsen — LTW 01.09.2024. Kabinett Kretschmer III (CDU+SPD, Minderheit) vereidigt 18.12.2024. + "SN": { + "CDU": {"file": "cdu-sn-2024.pdf", "titel": "CDU Sachsen Wahlprogramm 2024", "partei": "CDU Sachsen", "jahr": 2024, "seiten": 100, "regierungsbildung": "2024-12-18", "regierungsende": None}, + "SPD": {"file": "spd-sn-2024.pdf", "titel": "SPD Sachsen Wahlprogramm 2024", "partei": "SPD Sachsen", "jahr": 2024, "seiten": 100, "regierungsbildung": "2024-12-18", "regierungsende": None}, + "AfD": {"file": "afd-sn-2024.pdf", "titel": "AfD Sachsen Wahlprogramm 2024", "partei": "AfD Sachsen", "jahr": 2024, "seiten": 100, "regierungsbildung": "2024-12-18", "regierungsende": None}, + "BSW": {"file": "bsw-sn-2024.pdf", "titel": "BSW Sachsen Wahlprogramm 2024", "partei": "BSW Sachsen", "jahr": 2024, "seiten": 50, "regierungsbildung": "2024-12-18", "regierungsende": None}, + "LINKE": {"file": "linke-sn-2024.pdf", "titel": "DIE LINKE Sachsen Wahlprogramm 2024", "partei": "DIE LINKE Sachsen", "jahr": 2024, "seiten": 100, "regierungsbildung": "2024-12-18", "regierungsende": None}, + "GRÜNE": {"file": "gruene-sn-2024.pdf","titel": "BÜNDNIS 90/DIE GRÜNEN Sachsen Wahlprogramm 2024","partei": "BÜNDNIS 90/DIE GRÜNEN Sachsen", "jahr": 2024, "seiten": 100, "regierungsbildung": "2024-12-18", "regierungsende": None}, + }, + # Bundestag — BTW 23.02.2025. Kabinett Merz I (CDU+CSU+SPD) vereidigt 06.05.2025. + # Aktiv die BTW-2025-Wahlprogramme aller acht im 21. Bundestag relevanten + # Parteien. Grundsatzprogramme bleiben in embeddings.PROGRAMME als + # zweite Referenz erhalten. + "BUND": { + "CDU": {"file": "cdu-bund-2025.pdf", "titel": "Politikwechsel für Deutschland — Wahlprogramm CDU/CSU BTW 2025", "partei": "CDU", "jahr": 2025, "seiten": 82, "regierungsbildung": "2025-05-06", "regierungsende": None}, + "CSU": {"file": "csu-bund-2025.pdf", "titel": "Politikwechsel für Deutschland — Wahlprogramm CDU/CSU BTW 2025 (CSU)", "partei": "CSU", "jahr": 2025, "seiten": 81, "regierungsbildung": "2025-05-06", "regierungsende": None}, + "SPD": {"file": "spd-bund-2025.pdf", "titel": "Mehr für Dich. Besser für Deutschland. — SPD Regierungsprogramm BTW 2025", "partei": "SPD", "jahr": 2025, "seiten": 68, "regierungsbildung": "2025-05-06", "regierungsende": None}, + "GRÜNE": {"file": "gruene-bund-2025.pdf","titel": "Zusammen wachsen — Regierungsprogramm BÜNDNIS 90/DIE GRÜNEN BTW 2025", "partei": "BÜNDNIS 90/DIE GRÜNEN", "jahr": 2025, "seiten": 160, "regierungsbildung": "2025-05-06", "regierungsende": None}, + "FDP": {"file": "fdp-bund-2025.pdf", "titel": "Alles lässt sich ändern — FDP Wahlprogramm BTW 2025", "partei": "FDP", "jahr": 2025, "seiten": 52, "regierungsbildung": "2025-05-06", "regierungsende": None}, + "AfD": {"file": "afd-bund-2025.pdf", "titel": "Zeit für Deutschland — AfD Bundestagswahlprogramm 2025", "partei": "AfD", "jahr": 2025, "seiten": 177, "regierungsbildung": "2025-05-06", "regierungsende": None}, + "LINKE": {"file": "linke-bund-2025.pdf", "titel": "Alle wollen regieren. Wir wollen verändern. — DIE LINKE Wahlprogramm BTW 2025", "partei": "DIE LINKE", "jahr": 2025, "seiten": 60, "regierungsbildung": "2025-05-06", "regierungsende": None}, + "BSW": {"file": "bsw-bund-2025.pdf", "titel": "Unser Land verdient mehr — BSW Wahlprogramm BTW 2025", "partei": "BSW", "jahr": 2025, "seiten": 45, "regierungsbildung": "2025-05-06", "regierungsende": None}, }, # Bundestag — keine bundesweiten Wahlprogramme im Repo, daher dienen # die Grundsatzprogramme als Quelle. CSU + BSW haben keine Programme @@ -281,6 +206,36 @@ def parteien_mit_wahlprogramm(bundesland: str) -> list[str]: return list(WAHLPROGRAMME.get(bundesland, {}).keys()) +def regierungsbildung_for(bundesland: str) -> Optional[str]: + """Datum der Regierungsbildung (Vereidigung) der aktuellen Regierung des + Bundeslands, oder ``None`` wenn nicht hinterlegt.""" + parteien = WAHLPROGRAMME.get(bundesland, {}) + for info in parteien.values(): + rb = info.get("regierungsbildung") + if rb is not None: + return rb + return None + + +def regierungsende_for(bundesland: str) -> Optional[str]: + """Datum, ab dem die aktuelle Regierungsperiode endet. ``None`` solange + laufend.""" + parteien = WAHLPROGRAMME.get(bundesland, {}) + for info in parteien.values(): + return info.get("regierungsende") + return None + + +def regierung_aktuell(bundesland: str) -> bool: + """True, wenn die hinterlegte Regierungsperiode noch läuft (bildung + gesetzt, ende=None).""" + parteien = WAHLPROGRAMME.get(bundesland, {}) + if not parteien: + return False + info = next(iter(parteien.values())) + return info.get("regierungsbildung") is not None and info.get("regierungsende") is None + + def load_wahlprogramm_text(bundesland: str, partei: str) -> dict[int, str]: """Lädt Wahlprogramm-Text mit Seitenzuordnung. diff --git a/tests/test_embeddings.py b/tests/test_embeddings.py index 28a6c82..22b9af9 100644 --- a/tests/test_embeddings.py +++ b/tests/test_embeddings.py @@ -140,7 +140,8 @@ class TestFormatQuotesForPrompt: out = format_quotes_for_prompt(EXAMPLE_QUOTES) # Each of the three chunks must reference its source programme assert "FDP Mecklenburg-Vorpommern" in out - assert "FDP Grundsatzprogramm" in out + # FDP-Grundsatzprogramm trägt korrekt den Titel "Karlsruher Freiheitsthesen 2012" + assert "FDP Karlsruher Freiheitsthesen 2012" in out assert "SPD Mecklenburg-Vorpommern" in out def test_contains_strict_citation_instruction(self):