"""Wahlperioden + Regierungen pro Bundesland — historisch + aktuell. Diese Datei beantwortet zwei Fragen pro Bundesland: 1. **Welche Legislatur lief zum Zeitpunkt X?** (``legislatur_zum_zeitpunkt``) 2. **Welche Regierung war zum Zeitpunkt X im Amt?** (``regierung_zum_zeitpunkt``) Die Strukturen sind ergänzend zu ``app/programme.py``: Programme verweisen über ``wp`` (Legislatur-Nummer) bzw. ``gueltig_ab`` (= Vereidigung der Regierung) auf die hier gelisteten Einträge. Sonderfälle, die das Schema unterstützt: - Mehrere Regierungen in einer Legislatur (z.B. RP: Dreyer III → Schweitzer I) - Vorgezogene Wahlen / verkürzte Legislaturen (z.B. NRW WP15 2010-2012) - BUND als 17. Eintrag (technisch kein BL, aber Schema-konform) """ from __future__ import annotations from typing import Optional, TypedDict # ───────────────────────────────────────────────────────────────────────────── # Typ # ───────────────────────────────────────────────────────────────────────────── class Legislatur(TypedDict, total=False): """Eine Wahlperiode eines deutschen Parlaments.""" bundesland: str # BL-Code (NRW, BUND, …) wp: int # Wahlperioden-Nummer wahltermin: str # ISO YYYY-MM-DD konstituierung: str # ISO YYYY-MM-DD (= Beginn der WP) ende: Optional[str] # ISO oder None bei aktueller WP class Regierung(TypedDict, total=False): """Eine Landes- oder Bundesregierung (Kabinett). Eine Legislatur kann mehrere Regierungen enthalten (z.B. wenn mitten in der WP der/die Ministerpräsident:in zurücktritt). Bei diesen wird ``bis`` der Vorgängerin = ``von`` der Nachfolgerin gesetzt. """ bundesland: str name: str # "Wüst II", "Schweitzer I", "Merz I", … wp: int # Legislatur-Nummer parteien: list[str] # Koalitionspartner (sortiert nach Größe) ministerpraesident: str # MP / Bundeskanzler:in von: str # ISO — Vereidigung bis: Optional[str] # ISO — Vereidigung der Nachfolge oder Ende der WP # ───────────────────────────────────────────────────────────────────────────── # Daten-Container # Werden vom Daten-Modul ``legislaturen_data.py`` befüllt sobald die # Recherche fertig ist. Hier bleiben sie initial leer und werden später # importiert / erweitert. # ───────────────────────────────────────────────────────────────────────────── LEGISLATUREN: list[Legislatur] = [ # ─── Baden-Württemberg ─────────────────────────────────────────────── {"bundesland": "BW", "wp": 15, "wahltermin": "2011-03-27", "konstituierung": "2011-05-11", "ende": "2016-05-11"}, {"bundesland": "BW", "wp": 16, "wahltermin": "2016-03-13", "konstituierung": "2016-05-11", "ende": "2021-05-11"}, {"bundesland": "BW", "wp": 17, "wahltermin": "2021-03-14", "konstituierung": "2021-05-11", "ende": None}, # ─── Bayern ────────────────────────────────────────────────────────── {"bundesland": "BY", "wp": 17, "wahltermin": "2013-09-15", "konstituierung": "2013-10-07", "ende": "2018-11-05"}, {"bundesland": "BY", "wp": 18, "wahltermin": "2018-10-14", "konstituierung": "2018-11-05", "ende": "2023-10-30"}, {"bundesland": "BY", "wp": 19, "wahltermin": "2023-10-08", "konstituierung": "2023-10-30", "ende": None}, # ─── Berlin ────────────────────────────────────────────────────────── {"bundesland": "BE", "wp": 17, "wahltermin": "2011-09-18", "konstituierung": "2011-10-27", "ende": "2016-10-27"}, {"bundesland": "BE", "wp": 18, "wahltermin": "2016-09-18", "konstituierung": "2016-10-27", "ende": "2021-11-04"}, # WP19: Originalwahl 2021-09-26; Wiederholung 2023-02-12 (BVerfG). Formal weiter WP19. {"bundesland": "BE", "wp": 19, "wahltermin": "2021-09-26", "konstituierung": "2021-11-04", "ende": None}, # ─── Brandenburg ───────────────────────────────────────────────────── {"bundesland": "BB", "wp": 6, "wahltermin": "2014-09-14", "konstituierung": "2014-10-21", "ende": "2019-09-25"}, {"bundesland": "BB", "wp": 7, "wahltermin": "2019-09-01", "konstituierung": "2019-09-25", "ende": "2024-10-23"}, {"bundesland": "BB", "wp": 8, "wahltermin": "2024-09-22", "konstituierung": "2024-10-23", "ende": None}, # ─── Bremen ────────────────────────────────────────────────────────── {"bundesland": "HB", "wp": 18, "wahltermin": "2011-05-22", "konstituierung": "2011-06-07", "ende": "2015-06-15"}, {"bundesland": "HB", "wp": 19, "wahltermin": "2015-05-10", "konstituierung": "2015-06-15", "ende": "2019-07-04"}, {"bundesland": "HB", "wp": 20, "wahltermin": "2019-05-26", "konstituierung": "2019-07-04", "ende": "2023-07-04"}, {"bundesland": "HB", "wp": 21, "wahltermin": "2023-05-14", "konstituierung": "2023-07-04", "ende": None}, # ─── Hamburg ───────────────────────────────────────────────────────── {"bundesland": "HH", "wp": 21, "wahltermin": "2015-02-15", "konstituierung": "2015-03-18", "ende": "2020-03-18"}, {"bundesland": "HH", "wp": 22, "wahltermin": "2020-02-23", "konstituierung": "2020-03-18", "ende": "2025-03-19"}, {"bundesland": "HH", "wp": 23, "wahltermin": "2025-03-02", "konstituierung": "2025-03-19", "ende": None}, # ─── Hessen ────────────────────────────────────────────────────────── {"bundesland": "HE", "wp": 19, "wahltermin": "2013-09-22", "konstituierung": "2014-01-18", "ende": "2019-01-18"}, {"bundesland": "HE", "wp": 20, "wahltermin": "2018-10-28", "konstituierung": "2019-01-18", "ende": "2024-01-18"}, {"bundesland": "HE", "wp": 21, "wahltermin": "2023-10-08", "konstituierung": "2024-01-18", "ende": None}, # ─── Mecklenburg-Vorpommern ────────────────────────────────────────── {"bundesland": "MV", "wp": 6, "wahltermin": "2011-09-04", "konstituierung": "2011-10-04", "ende": "2016-10-04"}, {"bundesland": "MV", "wp": 7, "wahltermin": "2016-09-04", "konstituierung": "2016-10-04", "ende": "2021-10-26"}, {"bundesland": "MV", "wp": 8, "wahltermin": "2021-09-26", "konstituierung": "2021-10-26", "ende": None}, # ─── Niedersachsen ─────────────────────────────────────────────────── {"bundesland": "NI", "wp": 17, "wahltermin": "2013-01-20", "konstituierung": "2013-02-19", "ende": "2017-11-14"}, {"bundesland": "NI", "wp": 18, "wahltermin": "2017-10-15", "konstituierung": "2017-11-14", "ende": "2022-11-08"}, {"bundesland": "NI", "wp": 19, "wahltermin": "2022-10-09", "konstituierung": "2022-11-08", "ende": None}, # ─── Nordrhein-Westfalen ───────────────────────────────────────────── {"bundesland": "NRW", "wp": 15, "wahltermin": "2010-05-09", "konstituierung": "2010-06-09", "ende": "2012-06-12"}, {"bundesland": "NRW", "wp": 16, "wahltermin": "2012-05-13", "konstituierung": "2012-06-12", "ende": "2017-06-01"}, {"bundesland": "NRW", "wp": 17, "wahltermin": "2017-05-14", "konstituierung": "2017-06-01", "ende": "2022-06-01"}, {"bundesland": "NRW", "wp": 18, "wahltermin": "2022-05-15", "konstituierung": "2022-06-01", "ende": None}, # ─── Rheinland-Pfalz ───────────────────────────────────────────────── {"bundesland": "RP", "wp": 16, "wahltermin": "2011-03-27", "konstituierung": "2011-05-18", "ende": "2016-05-18"}, {"bundesland": "RP", "wp": 17, "wahltermin": "2016-03-13", "konstituierung": "2016-05-18", "ende": "2021-05-18"}, {"bundesland": "RP", "wp": 18, "wahltermin": "2021-03-14", "konstituierung": "2021-05-18", "ende": None}, # ─── Saarland ──────────────────────────────────────────────────────── {"bundesland": "SL", "wp": 14, "wahltermin": "2009-08-30", "konstituierung": "2009-09-30", "ende": "2012-04-25"}, {"bundesland": "SL", "wp": 15, "wahltermin": "2012-03-25", "konstituierung": "2012-04-25", "ende": "2017-05-09"}, {"bundesland": "SL", "wp": 16, "wahltermin": "2017-03-26", "konstituierung": "2017-05-09", "ende": "2022-04-25"}, {"bundesland": "SL", "wp": 17, "wahltermin": "2022-03-27", "konstituierung": "2022-04-25", "ende": None}, # ─── Sachsen ───────────────────────────────────────────────────────── {"bundesland": "SN", "wp": 5, "wahltermin": "2009-08-30", "konstituierung": "2009-09-29", "ende": "2014-09-29"}, {"bundesland": "SN", "wp": 6, "wahltermin": "2014-08-31", "konstituierung": "2014-09-29", "ende": "2019-10-01"}, {"bundesland": "SN", "wp": 7, "wahltermin": "2019-09-01", "konstituierung": "2019-10-01", "ende": "2024-10-01"}, {"bundesland": "SN", "wp": 8, "wahltermin": "2024-09-01", "konstituierung": "2024-10-01", "ende": None}, # ─── Sachsen-Anhalt ────────────────────────────────────────────────── {"bundesland": "LSA", "wp": 6, "wahltermin": "2011-03-20", "konstituierung": "2011-04-19", "ende": "2016-04-13"}, {"bundesland": "LSA", "wp": 7, "wahltermin": "2016-03-13", "konstituierung": "2016-04-13", "ende": "2021-07-06"}, {"bundesland": "LSA", "wp": 8, "wahltermin": "2021-06-06", "konstituierung": "2021-07-06", "ende": None}, # ─── Schleswig-Holstein ────────────────────────────────────────────── {"bundesland": "SH", "wp": 18, "wahltermin": "2012-05-06", "konstituierung": "2012-06-05", "ende": "2017-06-06"}, {"bundesland": "SH", "wp": 19, "wahltermin": "2017-05-07", "konstituierung": "2017-06-06", "ende": "2022-06-07"}, {"bundesland": "SH", "wp": 20, "wahltermin": "2022-05-08", "konstituierung": "2022-06-07", "ende": None}, # ─── Thüringen ─────────────────────────────────────────────────────── {"bundesland": "TH", "wp": 6, "wahltermin": "2014-09-14", "konstituierung": "2014-10-14", "ende": "2019-11-26"}, {"bundesland": "TH", "wp": 7, "wahltermin": "2019-10-27", "konstituierung": "2019-11-26", "ende": "2024-09-26"}, {"bundesland": "TH", "wp": 8, "wahltermin": "2024-09-01", "konstituierung": "2024-09-26", "ende": None}, # ─── Bund (Deutscher Bundestag) ────────────────────────────────────── {"bundesland": "BUND", "wp": 18, "wahltermin": "2013-09-22", "konstituierung": "2013-10-22", "ende": "2017-10-24"}, {"bundesland": "BUND", "wp": 19, "wahltermin": "2017-09-24", "konstituierung": "2017-10-24", "ende": "2021-10-26"}, {"bundesland": "BUND", "wp": 20, "wahltermin": "2021-09-26", "konstituierung": "2021-10-26", "ende": "2025-03-25"}, {"bundesland": "BUND", "wp": 21, "wahltermin": "2025-02-23", "konstituierung": "2025-03-25", "ende": None}, ] REGIERUNGEN: list[Regierung] = [ # ─── Baden-Württemberg ─────────────────────────────────────────────── {"bundesland": "BW", "name": "Kretschmann I", "wp": 15, "parteien": ["GRÜNE", "SPD"], "ministerpraesident": "Winfried Kretschmann", "von": "2011-05-12", "bis": "2016-05-12"}, {"bundesland": "BW", "name": "Kretschmann II", "wp": 16, "parteien": ["GRÜNE", "CDU"], "ministerpraesident": "Winfried Kretschmann", "von": "2016-05-12", "bis": "2021-05-12"}, {"bundesland": "BW", "name": "Kretschmann III", "wp": 17, "parteien": ["GRÜNE", "CDU"], "ministerpraesident": "Winfried Kretschmann", "von": "2021-05-12", "bis": None}, # ─── Bayern ────────────────────────────────────────────────────────── {"bundesland": "BY", "name": "Seehofer II", "wp": 17, "parteien": ["CSU"], "ministerpraesident": "Horst Seehofer", "von": "2013-10-10", "bis": "2018-03-21"}, {"bundesland": "BY", "name": "Söder I", "wp": 17, "parteien": ["CSU"], "ministerpraesident": "Markus Söder", "von": "2018-03-21", "bis": "2018-11-12"}, {"bundesland": "BY", "name": "Söder II", "wp": 18, "parteien": ["CSU", "FREIE WÄHLER"], "ministerpraesident": "Markus Söder", "von": "2018-11-12", "bis": "2023-11-07"}, {"bundesland": "BY", "name": "Söder III", "wp": 19, "parteien": ["CSU", "FREIE WÄHLER"], "ministerpraesident": "Markus Söder", "von": "2023-11-07", "bis": None}, # ─── Berlin ────────────────────────────────────────────────────────── {"bundesland": "BE", "name": "Wowereit IV", "wp": 17, "parteien": ["SPD", "CDU"], "ministerpraesident": "Klaus Wowereit", "von": "2011-11-24", "bis": "2014-12-11"}, {"bundesland": "BE", "name": "Müller I", "wp": 17, "parteien": ["SPD", "CDU"], "ministerpraesident": "Michael Müller", "von": "2014-12-11", "bis": "2016-12-08"}, {"bundesland": "BE", "name": "Müller II", "wp": 18, "parteien": ["SPD", "LINKE", "GRÜNE"], "ministerpraesident": "Michael Müller", "von": "2016-12-08", "bis": "2021-12-21"}, {"bundesland": "BE", "name": "Giffey I", "wp": 19, "parteien": ["SPD", "GRÜNE", "LINKE"], "ministerpraesident": "Franziska Giffey", "von": "2021-12-21", "bis": "2023-04-27"}, {"bundesland": "BE", "name": "Wegner I", "wp": 19, "parteien": ["CDU", "SPD"], "ministerpraesident": "Kai Wegner", "von": "2023-04-27", "bis": None}, # ─── Brandenburg ───────────────────────────────────────────────────── {"bundesland": "BB", "name": "Woidke I", "wp": 6, "parteien": ["SPD", "LINKE"], "ministerpraesident": "Dietmar Woidke", "von": "2014-11-05", "bis": "2019-11-20"}, {"bundesland": "BB", "name": "Woidke II", "wp": 7, "parteien": ["SPD", "CDU", "GRÜNE"], "ministerpraesident": "Dietmar Woidke", "von": "2019-11-20", "bis": "2024-12-11"}, {"bundesland": "BB", "name": "Woidke III", "wp": 8, "parteien": ["SPD", "BSW"], "ministerpraesident": "Dietmar Woidke", "von": "2024-12-11", "bis": None}, # ─── Bremen ────────────────────────────────────────────────────────── {"bundesland": "HB", "name": "Böhrnsen III", "wp": 18, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Jens Böhrnsen", "von": "2011-06-29", "bis": "2015-07-15"}, {"bundesland": "HB", "name": "Sieling I", "wp": 19, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Carsten Sieling", "von": "2015-07-15", "bis": "2019-08-15"}, {"bundesland": "HB", "name": "Bovenschulte I", "wp": 20, "parteien": ["SPD", "GRÜNE", "LINKE"], "ministerpraesident": "Andreas Bovenschulte", "von": "2019-08-15", "bis": "2023-07-05"}, {"bundesland": "HB", "name": "Bovenschulte II", "wp": 21, "parteien": ["SPD", "GRÜNE", "LINKE"], "ministerpraesident": "Andreas Bovenschulte", "von": "2023-07-05", "bis": None}, # ─── Hamburg ───────────────────────────────────────────────────────── {"bundesland": "HH", "name": "Scholz II", "wp": 21, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Olaf Scholz", "von": "2015-04-15", "bis": "2018-03-28"}, {"bundesland": "HH", "name": "Tschentscher I", "wp": 21, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Peter Tschentscher", "von": "2018-03-28", "bis": "2020-06-10"}, {"bundesland": "HH", "name": "Tschentscher II", "wp": 22, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Peter Tschentscher", "von": "2020-06-10", "bis": "2025-05-07"}, {"bundesland": "HH", "name": "Tschentscher III", "wp": 23, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Peter Tschentscher", "von": "2025-05-07", "bis": None}, # ─── Hessen ────────────────────────────────────────────────────────── {"bundesland": "HE", "name": "Bouffier II", "wp": 19, "parteien": ["CDU", "GRÜNE"], "ministerpraesident": "Volker Bouffier", "von": "2014-01-18", "bis": "2019-01-18"}, {"bundesland": "HE", "name": "Bouffier III", "wp": 20, "parteien": ["CDU", "GRÜNE"], "ministerpraesident": "Volker Bouffier", "von": "2019-01-18", "bis": "2022-05-31"}, {"bundesland": "HE", "name": "Rhein I", "wp": 20, "parteien": ["CDU", "GRÜNE"], "ministerpraesident": "Boris Rhein", "von": "2022-05-31", "bis": "2024-01-18"}, {"bundesland": "HE", "name": "Rhein II", "wp": 21, "parteien": ["CDU", "SPD"], "ministerpraesident": "Boris Rhein", "von": "2024-01-18", "bis": None}, # ─── Mecklenburg-Vorpommern ────────────────────────────────────────── {"bundesland": "MV", "name": "Sellering II", "wp": 6, "parteien": ["SPD", "CDU"], "ministerpraesident": "Erwin Sellering", "von": "2011-10-25", "bis": "2016-11-01"}, {"bundesland": "MV", "name": "Sellering III", "wp": 7, "parteien": ["SPD", "CDU"], "ministerpraesident": "Erwin Sellering", "von": "2016-11-01", "bis": "2017-07-04"}, {"bundesland": "MV", "name": "Schwesig I", "wp": 7, "parteien": ["SPD", "CDU"], "ministerpraesident": "Manuela Schwesig", "von": "2017-07-04", "bis": "2021-11-15"}, {"bundesland": "MV", "name": "Schwesig II", "wp": 8, "parteien": ["SPD", "LINKE"], "ministerpraesident": "Manuela Schwesig", "von": "2021-11-15", "bis": None}, # ─── Niedersachsen ─────────────────────────────────────────────────── {"bundesland": "NI", "name": "Weil I", "wp": 17, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Stephan Weil", "von": "2013-02-19", "bis": "2017-11-22"}, {"bundesland": "NI", "name": "Weil II", "wp": 18, "parteien": ["SPD", "CDU"], "ministerpraesident": "Stephan Weil", "von": "2017-11-22", "bis": "2022-11-08"}, {"bundesland": "NI", "name": "Weil III", "wp": 19, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Stephan Weil", "von": "2022-11-08", "bis": None}, # ─── Nordrhein-Westfalen ───────────────────────────────────────────── {"bundesland": "NRW", "name": "Kraft I", "wp": 15, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Hannelore Kraft", "von": "2010-07-15", "bis": "2012-06-20"}, {"bundesland": "NRW", "name": "Kraft II", "wp": 16, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Hannelore Kraft", "von": "2012-06-20", "bis": "2017-06-30"}, {"bundesland": "NRW", "name": "Laschet I", "wp": 17, "parteien": ["CDU", "FDP"], "ministerpraesident": "Armin Laschet", "von": "2017-06-30", "bis": "2021-10-27"}, {"bundesland": "NRW", "name": "Wüst I", "wp": 17, "parteien": ["CDU", "FDP"], "ministerpraesident": "Hendrik Wüst", "von": "2021-10-27", "bis": "2022-06-29"}, {"bundesland": "NRW", "name": "Wüst II", "wp": 18, "parteien": ["CDU", "GRÜNE"], "ministerpraesident": "Hendrik Wüst", "von": "2022-06-29", "bis": None}, # ─── Rheinland-Pfalz ───────────────────────────────────────────────── {"bundesland": "RP", "name": "Beck V", "wp": 16, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Kurt Beck", "von": "2011-05-18", "bis": "2013-01-16"}, {"bundesland": "RP", "name": "Dreyer I", "wp": 16, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Malu Dreyer", "von": "2013-01-16", "bis": "2016-05-18"}, {"bundesland": "RP", "name": "Dreyer II", "wp": 17, "parteien": ["SPD", "GRÜNE", "FDP"], "ministerpraesident": "Malu Dreyer", "von": "2016-05-18", "bis": "2021-05-18"}, {"bundesland": "RP", "name": "Dreyer III", "wp": 18, "parteien": ["SPD", "GRÜNE", "FDP"], "ministerpraesident": "Malu Dreyer", "von": "2021-05-18", "bis": "2024-07-10"}, {"bundesland": "RP", "name": "Schweitzer I", "wp": 18, "parteien": ["SPD", "GRÜNE", "FDP"], "ministerpraesident": "Alexander Schweitzer", "von": "2024-07-10", "bis": None}, # ─── Saarland ──────────────────────────────────────────────────────── {"bundesland": "SL", "name": "Müller III", "wp": 14, "parteien": ["CDU", "FDP", "GRÜNE"], "ministerpraesident": "Peter Müller", "von": "2009-11-10", "bis": "2011-08-10"}, {"bundesland": "SL", "name": "Kramp-Karrenbauer I", "wp": 14, "parteien": ["CDU", "FDP", "GRÜNE"], "ministerpraesident": "Annegret Kramp-Karrenbauer", "von": "2011-08-10", "bis": "2012-05-09"}, {"bundesland": "SL", "name": "Kramp-Karrenbauer II", "wp": 15, "parteien": ["CDU", "SPD"], "ministerpraesident": "Annegret Kramp-Karrenbauer", "von": "2012-05-09", "bis": "2017-05-17"}, {"bundesland": "SL", "name": "Kramp-Karrenbauer III", "wp": 16, "parteien": ["CDU", "SPD"], "ministerpraesident": "Annegret Kramp-Karrenbauer", "von": "2017-05-17", "bis": "2018-02-28"}, {"bundesland": "SL", "name": "Hans I", "wp": 16, "parteien": ["CDU", "SPD"], "ministerpraesident": "Tobias Hans", "von": "2018-02-28", "bis": "2022-04-25"}, {"bundesland": "SL", "name": "Rehlinger I", "wp": 17, "parteien": ["SPD"], "ministerpraesident": "Anke Rehlinger", "von": "2022-04-25", "bis": None}, # ─── Sachsen ───────────────────────────────────────────────────────── {"bundesland": "SN", "name": "Tillich I", "wp": 5, "parteien": ["CDU", "FDP"], "ministerpraesident": "Stanislaw Tillich", "von": "2009-09-29", "bis": "2014-11-13"}, {"bundesland": "SN", "name": "Tillich II", "wp": 6, "parteien": ["CDU", "SPD"], "ministerpraesident": "Stanislaw Tillich", "von": "2014-11-13", "bis": "2017-12-13"}, {"bundesland": "SN", "name": "Kretschmer I", "wp": 6, "parteien": ["CDU", "SPD"], "ministerpraesident": "Michael Kretschmer", "von": "2017-12-13", "bis": "2019-12-20"}, {"bundesland": "SN", "name": "Kretschmer II", "wp": 7, "parteien": ["CDU", "GRÜNE", "SPD"], "ministerpraesident": "Michael Kretschmer", "von": "2019-12-20", "bis": "2024-12-18"}, {"bundesland": "SN", "name": "Kretschmer III", "wp": 8, "parteien": ["CDU", "SPD"], "ministerpraesident": "Michael Kretschmer", "von": "2024-12-18", "bis": None}, # ─── Sachsen-Anhalt ────────────────────────────────────────────────── {"bundesland": "LSA", "name": "Haseloff I", "wp": 6, "parteien": ["CDU", "SPD"], "ministerpraesident": "Reiner Haseloff", "von": "2011-04-19", "bis": "2016-04-25"}, {"bundesland": "LSA", "name": "Haseloff II", "wp": 7, "parteien": ["CDU", "SPD", "GRÜNE"], "ministerpraesident": "Reiner Haseloff", "von": "2016-04-25", "bis": "2021-09-16"}, {"bundesland": "LSA", "name": "Haseloff III", "wp": 8, "parteien": ["CDU", "SPD", "FDP"], "ministerpraesident": "Reiner Haseloff", "von": "2021-09-16", "bis": None}, # ─── Schleswig-Holstein ────────────────────────────────────────────── {"bundesland": "SH", "name": "Albig I", "wp": 18, "parteien": ["SPD", "GRÜNE", "SSW"], "ministerpraesident": "Torsten Albig", "von": "2012-06-12", "bis": "2017-06-28"}, {"bundesland": "SH", "name": "Günther I", "wp": 19, "parteien": ["CDU", "GRÜNE", "FDP"], "ministerpraesident": "Daniel Günther", "von": "2017-06-28", "bis": "2022-06-29"}, {"bundesland": "SH", "name": "Günther II", "wp": 20, "parteien": ["CDU", "GRÜNE"], "ministerpraesident": "Daniel Günther", "von": "2022-06-29", "bis": None}, # ─── Thüringen ─────────────────────────────────────────────────────── {"bundesland": "TH", "name": "Ramelow I", "wp": 6, "parteien": ["LINKE", "SPD", "GRÜNE"], "ministerpraesident": "Bodo Ramelow", "von": "2014-12-05", "bis": "2020-02-05"}, {"bundesland": "TH", "name": "Kemmerich I", "wp": 7, "parteien": ["FDP"], "ministerpraesident": "Thomas Kemmerich", "von": "2020-02-05", "bis": "2020-03-04"}, {"bundesland": "TH", "name": "Ramelow II", "wp": 7, "parteien": ["LINKE", "SPD", "GRÜNE"], "ministerpraesident": "Bodo Ramelow", "von": "2020-03-04", "bis": "2024-12-12"}, {"bundesland": "TH", "name": "Voigt I", "wp": 8, "parteien": ["CDU", "BSW", "SPD"], "ministerpraesident": "Mario Voigt", "von": "2024-12-12", "bis": None}, # ─── Bund (Deutscher Bundestag) ────────────────────────────────────── {"bundesland": "BUND", "name": "Merkel III", "wp": 18, "parteien": ["CDU", "CSU", "SPD"], "ministerpraesident": "Angela Merkel", "von": "2013-12-17", "bis": "2018-03-14"}, {"bundesland": "BUND", "name": "Merkel IV", "wp": 19, "parteien": ["CDU", "CSU", "SPD"], "ministerpraesident": "Angela Merkel", "von": "2018-03-14", "bis": "2021-12-08"}, {"bundesland": "BUND", "name": "Scholz I", "wp": 20, "parteien": ["SPD", "GRÜNE", "FDP"], "ministerpraesident": "Olaf Scholz", "von": "2021-12-08", "bis": "2024-11-06"}, {"bundesland": "BUND", "name": "Scholz I (geschäftsführend)", "wp": 20, "parteien": ["SPD", "GRÜNE"], "ministerpraesident": "Olaf Scholz", "von": "2024-11-06", "bis": "2025-05-06"}, {"bundesland": "BUND", "name": "Merz I", "wp": 21, "parteien": ["CDU", "CSU", "SPD"], "ministerpraesident": "Friedrich Merz", "von": "2025-05-06", "bis": None}, ] # ───────────────────────────────────────────────────────────────────────────── # Helper-API # ───────────────────────────────────────────────────────────────────────────── def _datum_in_range(datum: str, von: str, bis: Optional[str]) -> bool: if datum < von: return False if bis is None: return True return datum < bis def legislatur_zum_zeitpunkt( bundesland: str, datum: str, ) -> Optional[Legislatur]: """Welche Wahlperiode lief im Bundesland zum gegebenen Datum?""" for leg in LEGISLATUREN: if leg["bundesland"] != bundesland: continue if _datum_in_range(datum, leg["konstituierung"], leg.get("ende")): return leg return None def regierung_zum_zeitpunkt( bundesland: str, datum: str, ) -> Optional[Regierung]: """Welche Regierung war im Bundesland zum gegebenen Datum im Amt?""" for reg in REGIERUNGEN: if reg["bundesland"] != bundesland: continue if _datum_in_range(datum, reg["von"], reg.get("bis")): return reg return None def aktuelle_regierung(bundesland: str) -> Optional[Regierung]: """Aktuelle Regierung des Bundeslands (bis=None).""" for reg in REGIERUNGEN: if reg["bundesland"] == bundesland and reg.get("bis") is None: return reg return None def aktuelle_legislatur(bundesland: str) -> Optional[Legislatur]: """Laufende Wahlperiode (ende=None).""" for leg in LEGISLATUREN: if leg["bundesland"] == bundesland and leg.get("ende") is None: return leg return None def regierungen_einer_wp(bundesland: str, wp: int) -> list[Regierung]: """Alle Regierungen einer bestimmten Legislatur, chronologisch.""" regs = [ r for r in REGIERUNGEN if r["bundesland"] == bundesland and r["wp"] == wp ] regs.sort(key=lambda r: r["von"]) return regs def parteien_in_regierung_zum_zeitpunkt( bundesland: str, datum: str, ) -> list[str]: """Welche Parteien waren zum Zeitpunkt in der Regierung?""" reg = regierung_zum_zeitpunkt(bundesland, datum) if reg is None: return [] return list(reg.get("parteien", [])) def alle_legislaturen(bundesland: str) -> list[Legislatur]: """Alle Wahlperioden eines Bundeslands, sortiert nach WP-Nummer.""" legs = [leg for leg in LEGISLATUREN if leg["bundesland"] == bundesland] legs.sort(key=lambda l: l["wp"]) return legs def alle_regierungen(bundesland: str) -> list[Regierung]: """Alle Regierungen eines Bundeslands, chronologisch nach von.""" regs = [r for r in REGIERUNGEN if r["bundesland"] == bundesland] regs.sort(key=lambda r: r["von"]) return regs