Ein moderner, vollständiger Python-Client für die deutsche Bundestag API (DIP) mit erweiterten Funktionen für Batch-Operationen, Caching und Performance-Optimierung.
pip install pydipapi
export DIP_API_KEY='ihr_api_key'
from pydipapi import DipAnfrage
# Client initialisieren
dip = DipAnfrage(api_key='ihr_api_key')
# Personen abrufen
persons = dip.get_person(anzahl=10)
# Dokumente durchsuchen
docs = dip.search_documents("Bundeshaushalt", anzahl=5)
# Batch-Operationen
person_ids = [12345, 67890, 11111]
persons_batch = dip.get_person_ids(person_ids)
# Convenience-Methoden
recent_activities = dip.get_recent_activities(days=7)
Die vollständige Dokumentation ist verfügbar unter: https://lichtbaer.github.io/pydipapi/
Interaktive Tutorials für praktisches Lernen (im notebooks/
Verzeichnis):
01_basic_usage.ipynb
- Grundlagen und erste Schritte mit der API02_filtering_and_search.ipynb
- Erweiterte Filteroptionen und Suchfunktionen03_batch_operations_and_caching.ipynb
- Performance-Optimierung und Batch-Operationen# Erweiterte Konfiguration
dip = DipAnfrage(
api_key='ihr_api_key',
rate_limit_delay=0.1, # 100ms zwischen Requests
max_retries=3, # Maximale Wiederholungsversuche
enable_cache=True, # Caching aktivieren
cache_ttl=3600 # Cache-TTL in Sekunden
)
Endpunkt | Beschreibung | Batch-Support |
---|---|---|
get_person() |
Personen abrufen | ✅ |
get_aktivitaet() |
Aktivitäten abrufen | ✅ |
get_drucksache() |
Dokumente abrufen | ✅ |
get_plenarprotokoll() |
Protokolle abrufen | ✅ |
get_vorgang() |
Vorgänge abrufen | ✅ |
get_vorgangsposition() |
Vorgangspositionen abrufen | ✅ |
Parameter | Beschreibung | Beispiel |
---|---|---|
wahlperiode |
Legislaturperiode | wahlperiode=20 |
datum_start / datum_end |
Datumsbereich | datum_start="2024-01-01" |
titel |
Titel-Suche | titel="Bundeshaushalt" |
drucksachetyp |
Dokumenttyp | drucksachetyp="Antrag" |
vorgangstyp |
Vorgangstyp | vorgangstyp="Gesetzgebung" |
# Suche nach Dokumenten
docs = dip.search_documents("Klimaschutz", anzahl=10)
# Aktuelle Aktivitäten
recent = dip.get_recent_activities(days=7)
# Personen nach Namen suchen
persons = dip.get_person_by_name("Merkel", anzahl=5)
# Dokumente nach Typ
anträge = dip.get_documents_by_type("Antrag", anzahl=10)
# Vorgänge nach Typ
gesetzgebung = dip.get_proceedings_by_type("Gesetzgebung", anzahl=10)
# Cache aktivieren
dip = DipAnfrage(api_key='key', enable_cache=True, cache_ttl=7200)
# Cache verwalten
dip.clear_cache() # Gesamten Cache löschen
dip.clear_expired_cache() # Abgelaufene Einträge löschen
# Mehrere IDs auf einmal abrufen
person_ids = [12345, 67890, 11111]
persons = dip.get_person_ids(person_ids)
doc_ids = [12345, 67890]
docs = dip.get_drucksache_ids(doc_ids, text=True)
git clone https://github.com/lichtbaer/pydipapi.git
cd pydipapi
pip install -e .
pip install -r requirements-dev.txt
pytest tests/
ruff check .
bandit -r pydipapi/
mkdocs serve
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Siehe LICENSE für Details.
Beiträge sind willkommen! Bitte lesen Sie den Entwickler-Guide für Details.
pip install -r requirements-dev.txt
pre-commit install
pytest tests/
Hinweis: Dieses Projekt ist nicht mit dem deutschen Bundestag affiliiert. Für offizielle Informationen besuchen Sie https://dip.bundestag.de/.