feat: regierungsbildung+regierungsende in WAHLPROGRAMME, gueltig_ab in Grundsatzprogrammen

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) <noreply@anthropic.com>
This commit is contained in:
Dotty Dotter 2026-05-07 23:27:09 +02:00 committed by Dotty Dotter
parent 991d1eb903
commit b5d2bb2515
3 changed files with 193 additions and 229 deletions

View File

@ -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"}, "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"}, "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"}, "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": { "spd-grundsatz": {
"name": "SPD Grundsatzprogramm 2007", "name": "SPD Hamburger Programm 2007",
"typ": "parteiprogramm", "typ": "parteiprogramm",
"partei": "SPD", "partei": "SPD",
"pdf": "spd-grundsatzprogramm.pdf", "pdf": "spd-grundsatzprogramm.pdf",
"gueltig_ab": "2007-10-28", # Hamburger Parteitag
"gueltig_bis": None,
}, },
"cdu-grundsatz": { "cdu-grundsatz": {
"name": "CDU Grundsatzprogramm 2024", "name": "CDU Grundsatzprogramm 2024",
"typ": "parteiprogramm", "typ": "parteiprogramm",
"partei": "CDU", "partei": "CDU",
"pdf": "cdu-grundsatzprogramm.pdf", "pdf": "cdu-grundsatzprogramm.pdf",
"gueltig_ab": "2024-05-07", # Bundesparteitag Berlin (löst das
"gueltig_bis": None, # Hannoveraner Programm 2007 ab)
}, },
"gruene-grundsatz": { "gruene-grundsatz": {
"name": "Grüne Grundsatzprogramm 2020", "name": "Grüne Grundsatzprogramm 2020",
"typ": "parteiprogramm", "typ": "parteiprogramm",
"partei": "GRÜNE", "partei": "GRÜNE",
"pdf": "gruene-grundsatzprogramm.pdf", "pdf": "gruene-grundsatzprogramm.pdf",
"gueltig_ab": "2020-11-22", # 46. Bundesversammlung (digital)
"gueltig_bis": None,
}, },
"fdp-grundsatz": { "fdp-grundsatz": {
"name": "FDP Grundsatzprogramm 2012", "name": "FDP Karlsruher Freiheitsthesen 2012",
"typ": "parteiprogramm", "typ": "parteiprogramm",
"partei": "FDP", "partei": "FDP",
"pdf": "fdp-grundsatzprogramm.pdf", "pdf": "fdp-grundsatzprogramm.pdf",
"gueltig_ab": "2012-04-22", # Bundesparteitag Karlsruhe
"gueltig_bis": None,
}, },
"afd-grundsatz": { "afd-grundsatz": {
"name": "AfD Grundsatzprogramm 2016", "name": "AfD Grundsatzprogramm 2016",
"typ": "parteiprogramm", "typ": "parteiprogramm",
"partei": "AfD", "partei": "AfD",
"pdf": "afd-grundsatzprogramm.pdf", "pdf": "afd-grundsatzprogramm.pdf",
"gueltig_ab": "2016-05-01", # Bundesparteitag Stuttgart
"gueltig_bis": None,
}, },
"linke-grundsatz": { "linke-grundsatz": {
"name": "DIE LINKE Erfurter Programm 2011", "name": "DIE LINKE Erfurter Programm 2011",
"typ": "parteiprogramm", "typ": "parteiprogramm",
"partei": "LINKE", "partei": "LINKE",
"pdf": "linke-grundsatzprogramm.pdf", "pdf": "linke-grundsatzprogramm.pdf",
"gueltig_ab": "2011-10-23", # Bundesparteitag Erfurt
"gueltig_bis": None,
}, },
# Bayern — LTW 08.10.2023, WP 19 # 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"}, "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"}, "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"}, "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"}, "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 # die URL bleibt bounded (sonst würden 500-Zeichen-Snippets in jeder
# Zitat-URL stehen und das HTML-Report-JSON aufblähen). # Zitat-URL stehen und das HTML-Report-JSON aufblähen).
q = urllib.parse.quote_plus(text[:200]) 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: if seite:
return f"/static/referenzen/{pdf}#page={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 = [] rects = []
if needle: if needle:
clean = needle.replace("\u00ad", "") 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() words = clean.split()
anchor = " ".join(words[:5]) if len(words) >= 5 else clean 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) rects = src[target_page_idx].search_for(clean)
# Versuch 2: angegebene Seite, 5-Wort-Anker # Versuch 2: angegebene Seite, 5-Wort-Anker
if not rects: if not rects:
@ -797,7 +814,8 @@ def render_highlighted_page(programm_id: str, seite: int, query: str) -> Optiona
target_page_idx = i target_page_idx = i
break 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] page = src[target_page_idx]
if needle and rects: if needle and rects:
for rect in 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.set_colors(stroke=(1.0, 0.93, 0.0)) # gelb
annot.update() 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) highlighted = bool(needle and rects)
try: try:
return src.tobytes(), target_page_idx + 1, highlighted return src.tobytes(), target_page_idx + 1, highlighted

View File

@ -17,235 +17,160 @@ from .bundeslaender import BUNDESLAENDER
# WAHLPROGRAMME[bundesland][partei] -> Metadaten # 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 # Beim Hinzufügen eines neuen Bundeslands: Eintrag hier UND parallel
# in WAHLPROGRAMM_KONTEXT_FILES. # in WAHLPROGRAMM_KONTEXT_FILES.
WAHLPROGRAMME: dict[str, dict[str, dict]] = { WAHLPROGRAMME: dict[str, dict[str, dict]] = {
# NRW — LTW 15.05.2022. Kabinett Wüst II (CDU+GRÜNE) vereidigt 29.06.2022.
"NRW": { "NRW": {
"CDU": { "CDU": {"file": "cdu-nrw-2022.pdf", "titel": "Machen, worauf es ankommt", "partei": "CDU NRW", "jahr": 2022, "seiten": 109, "regierungsbildung": "2022-06-29", "regierungsende": None},
"file": "cdu-nrw-2022.pdf", "SPD": {"file": "spd-nrw-2022.pdf", "titel": "Unser Land von morgen", "partei": "SPD NRW", "jahr": 2022, "seiten": 116, "regierungsbildung": "2022-06-29", "regierungsende": None},
"titel": "Machen, worauf es ankommt", "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},
"partei": "CDU NRW", "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},
"jahr": 2022, "AfD": {"file": "afd-nrw-2022.pdf", "titel": "Wer sonst.", "partei": "AfD NRW", "jahr": 2022, "seiten": 68, "regierungsbildung": "2022-06-29", "regierungsende": None},
"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,
},
}, },
# Sachsen-Anhalt — Wahlprogramme zur LTW 06.06.2021. Die aktuelle 8. WP # Sachsen-Anhalt — LTW 06.06.2021. Kabinett Haseloff III (CDU+SPD+FDP) vereidigt 16.09.2021.
# (seit 07/2021) wird mit diesen Programmen analysiert.
"LSA": { "LSA": {
"CDU": { "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},
"file": "cdu-lsa-2021.pdf", "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},
"titel": "Unsere Heimat. Unsere Verantwortung.", "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},
"partei": "CDU Sachsen-Anhalt", "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},
"jahr": 2021, "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},
"seiten": 82, "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},
},
"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,
},
}, },
# Mecklenburg-Vorpommern — Wahlprogramme zur LTW 26.09.2021. Die # Mecklenburg-Vorpommern — LTW 26.09.2021. Kabinett Schwesig II (SPD+LINKE) vereidigt 15.11.2021.
# aktuelle 8. WP (seit 26.10.2021) wird mit diesen Programmen
# analysiert. Issue #4.
"MV": { "MV": {
"CDU": { "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},
"file": "cdu-mv-2021.pdf", "SPD": {"file": "spd-mv-2021.pdf", "titel": "Verantwortung für heute und morgen — Regierungsprogramm 20212026", "partei": "SPD Mecklenburg-Vorpommern", "jahr": 2021, "seiten": 95, "regierungsbildung": "2021-11-15", "regierungsende": None},
"titel": "Zusammen. Den Blick nach vorn. Gemeinsam die Zukunft meistern", "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},
"partei": "CDU Mecklenburg-Vorpommern", "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},
"jahr": 2021, "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},
"seiten": 56, "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},
},
"SPD": {
"file": "spd-mv-2021.pdf",
"titel": "Verantwortung für heute und morgen — Regierungsprogramm 20212026",
"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,
},
}, },
# Berlin — Wahlprogramme zur Abgeordnetenhauswahl 2021 (am 26.09.2021, # Berlin — AGH-Wahl 26.09.2021, Wiederholungswahl 12.02.2023. Senat Wegner I (CDU+SPD) vereidigt 27.04.2023.
# 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.
"BE": { "BE": {
"CDU": { "CDU": {"file": "cdu-be-2023.pdf", "titel": "Unser Berlin. Mehr geht nur gemeinsam. — Berlin-Plan der CDU Berlin 20212026", "partei": "CDU Berlin", "jahr": 2021, "seiten": 135, "regierungsbildung": "2023-04-27", "regierungsende": None},
"file": "cdu-be-2023.pdf", "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},
"titel": "Unser Berlin. Mehr geht nur gemeinsam. — Berlin-Plan der CDU Berlin 20212026", "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},
"partei": "CDU Berlin", "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},
"jahr": 2021, "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},
"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,
},
}, },
# Thüringen — Wahlprogramme zur LTW 01.09.2024 (WP 8 seit 01.10.2024). # Thüringen — LTW 01.09.2024. Kabinett Voigt I (CDU+BSW+SPD, Brombeer) vereidigt 12.12.2024.
# Brombeer-Koalition CDU+BSW+SPD als Minderheit. Issue #37.
"TH": { "TH": {
"CDU": {"file": "cdu-th-2024.pdf", "titel": "Wahlprogramm der CDU Thüringen 2024", "partei": "CDU Thüringen", "jahr": 2024, "seiten": 83}, "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}, "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}, "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}, "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}, "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). # Brandenburg — LTW 22.09.2024. Kabinett Woidke III (SPD+BSW) vereidigt 11.12.2024.
# Kabinett Woidke IV (SPD-BSW). Issue #39.
"BB": { "BB": {
"SPD": {"file": "spd-bb-2024.pdf", "titel": "SPD Brandenburg Wahlprogramm 2024", "partei": "SPD Brandenburg", "jahr": 2024, "seiten": 100}, "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}, "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}, "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}, "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). # Hamburg — Bürgerschaftswahl 02.03.2025. Senat Tschentscher III (SPD+GRÜNE) vereidigt 07.05.2025.
# Senat Tschentscher III (SPD-GRÜNE). Issue #40.
"HH": { "HH": {
"SPD": {"file": "spd-hh-2025.pdf", "titel": "SPD Hamburg Wahlprogramm Bürgerschaftswahl 2025", "partei": "SPD 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}, "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}, "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}, "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}, "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). # Schleswig-Holstein — LTW 08.05.2022. Kabinett Günther II (CDU+GRÜNE) vereidigt 29.06.2022.
# Kabinett Günther II (CDU-GRÜNE). Issue #32.
"SH": { "SH": {
"CDU": {"file": "cdu-sh-2022.pdf", "titel": "CDU Schleswig-Holstein Wahlprogramm 2022", "partei": "CDU Schleswig-Holstein", "jahr": 2022, "seiten": 100}, "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}, "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}, "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}, "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}, "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 # Baden-Württemberg — LTW 14.03.2021. Kabinett Kretschmann III (GRÜNE+CDU) vereidigt 12.05.2021.
# des 18. Landtags nach 08.03.2026). Kabinett Kretschmann III (GRÜNE-CDU) noch
# geschäftsführend. Issue #41.
"BW": { "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}, "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}, "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}, "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}, "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}, "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 # Rheinland-Pfalz — LTW 14.03.2021. Kabinett Dreyer III (SPD+GRÜNE+FDP) vereidigt 18.05.2021;
# des 19. Landtags nach 22.03.2026). Kabinett Schweitzer I (SPD-GRÜNE-FDP) noch # seit 10.07.2024 fortgeführt als Schweitzer I in derselben WP18.
# geschäftsführend. Issue #42.
"RP": { "RP": {
"SPD": {"file": "spd-rp-2021.pdf", "titel": "Wir mit Ihr — Regierungsprogramm der SPD Rheinland-Pfalz 20212026", "partei": "SPD Rheinland-Pfalz", "jahr": 2021, "seiten": 100}, "SPD": {"file": "spd-rp-2021.pdf","titel": "Wir mit Ihr — Regierungsprogramm der SPD Rheinland-Pfalz 20212026", "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 202126", "partei": "CDU Rheinland-Pfalz", "jahr": 2021, "seiten": 100}, "CDU": {"file": "cdu-rp-2021.pdf","titel": "Regierungsprogramm der CDU RLP 202126", "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}, "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}, "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}, "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}, "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 # Bundestag — keine bundesweiten Wahlprogramme im Repo, daher dienen
# die Grundsatzprogramme als Quelle. CSU + BSW haben keine Programme # 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()) 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]: def load_wahlprogramm_text(bundesland: str, partei: str) -> dict[int, str]:
"""Lädt Wahlprogramm-Text mit Seitenzuordnung. """Lädt Wahlprogramm-Text mit Seitenzuordnung.

View File

@ -140,7 +140,8 @@ class TestFormatQuotesForPrompt:
out = format_quotes_for_prompt(EXAMPLE_QUOTES) out = format_quotes_for_prompt(EXAMPLE_QUOTES)
# Each of the three chunks must reference its source programme # Each of the three chunks must reference its source programme
assert "FDP Mecklenburg-Vorpommern" in out 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 assert "SPD Mecklenburg-Vorpommern" in out
def test_contains_strict_citation_instruction(self): def test_contains_strict_citation_instruction(self):