overpass_old/worker.py

24 lines
976 B
Python

import requests
from overpass import fetch_overpass
# ---------------------------------------------------------------------------
# Worker-Funktion (muss auf Modul-Ebene stehen — Pickle-Anforderung!)
# ---------------------------------------------------------------------------
def fetch_fragment(args: tuple) -> tuple[str, list]:
"""
Führt einen einzelnen Overpass-Request aus.
Gibt (fragment_name, elements) zurück — oder (fragment_name, []) bei Fehler.
Wird von Pool.map() in einem separaten Prozess ausgeführt.
Logging funktioniert hier nicht zuverlässig → print() als Fallback.
"""
name, bbox, query = args
try:
result = fetch_overpass(overpass_query=query, bbox=bbox)
elements = result.get("elements", [])
print(f"[{name}] {len(elements)} Elemente gefunden")
return name, elements
except (RuntimeError, requests.Timeout) as e:
print(f"[{name}] Fehler: {e}")
return name, []