"""Export aggregated Cellaria overview data to a BI-friendly CSV file.""" import csv import json import os import urllib.request BASE_URL = os.environ.get("CELLARIA_BASE_URL", "https://api.market.winerim.wine") API_KEY = os.environ["CELLARIA_API_KEY"] request = urllib.request.Request( f"{BASE_URL.rstrip('/')}/v1/market/overview", headers={"Accept": "application/json", "X-API-Key": API_KEY}, ) with urllib.request.urlopen(request, timeout=30) as response: payload = json.loads(response.read().decode("utf-8")) rows = payload.get("presence_rows", []) fieldnames = sorted({key for row in rows for key in row}) with open("cellaria_presence_export.csv", "w", newline="", encoding="utf-8") as handle: writer = csv.DictWriter(handle, fieldnames=fieldnames) writer.writeheader() writer.writerows(rows) print(f"Exported {len(rows)} aggregated rows")