gwoe-antragspruefer/app/protokoll_parsers
Dotty Dotter 22a2b63c35 feat(#148): BUND-Parser produktiv — Bundestags-XML-Plenarprotokolle
Erster vollwertiger Plenarprotokoll-Parser nach NRW. Quelle:
https://dserver.bundestag.de/btp/{wp}/{wp}{n:03}.xml

Anchor-Sprache (verifiziert WP20 Sitzungen 30 + 100):
  'Die Beschlussempfehlung ist mit den Stimmen der Koalitionsfraktionen
   gegen die Stimmen der CDU/CSU-Fraktion bei Enthaltung der AfD-Fraktion
   angenommen.'

Pattern:
- Subjekt: Beschlussempfehlung | Ueberweisungsvorschlag | Antrag | Gesetzentwurf
- Vote-Block: 'mit den Stimmen X / gegen die Stimmen Y / bei Enthaltung Z'
- Ergebnis: 'angenommen' oder 'abgelehnt'
- Drucksache rueckwaerts vom Anchor (1500 chars Window)
- Kind 'ueberweisung' invertiert ergebnis zu 'ueberwiesen'

Fraktions-Mapping (WP20 = Ampel):
- 'Koalitionsfraktionen' → SPD + GRÜNE + FDP
- 'Oppositionsfraktionen' → CDU/CSU + AfD + LINKE
- 'CDU/CSU-Fraktion', 'Fraktion Bündnis 90/Die Grünen', etc.

WP21 (ab 2025) braucht eigenes Mapping-Update.

26 Tests in test_protokoll_parsers_bund.py (Vote-Block-Parsing, Anchor-
Erkennung, Drucksachen-Lookup, End-to-End mit Mock-XML).

Cron + Ingest-CLI:
- PROTO_TARGETS-Format erweitert um PROTOKOLL_ID_PREFIX und {n3}-
  Placeholder fuer 3-stellig zero-gepaddetes BT-Schema (BTP20-N)
- ingest_votes URL-Suffix dynamisch (PDF vs XML) statt hardcoded .pdf
- Eintrag in PROTOKOLL_PARSERS (NRW + BUND)
- Stub-Test angepasst: BUND raus aus STUB_BL_CODES

889 Tests gruen (787 → 889, +102 fuer Phase-2 Stubs+Tests+BUND).
2026-04-28 23:21:39 +02:00
..
__init__.py feat(#148): BUND-Parser produktiv — Bundestags-XML-Plenarprotokolle 2026-04-28 23:21:39 +02:00
bb.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
be.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
bund.py feat(#148): BUND-Parser produktiv — Bundestags-XML-Plenarprotokolle 2026-04-28 23:21:39 +02:00
bw.py docs(#151): BW-Stub um konkrete Recherche-Befunde erweitert 2026-04-28 23:14:17 +02:00
by.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
hb.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
he.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
hh.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
lsa.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
mv.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
ni.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
nrw.py feat(#126): protokoll_parsers/-Sub-Package + Registry-Pattern + ADR 0009 2026-04-28 08:37:31 +02:00
rp.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
sh.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
sl.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
sn.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00
th.py feat(#106 Folge): 16 Stub-Parser + Tracking-Issues fuer alle Bundeslaender 2026-04-28 23:09:07 +02:00