# services/external/app/ingestion/adapters/__init__.py """ Adapter registry - Maps city IDs to adapter implementations """ from typing import Dict, Type from ..base_adapter import CityDataAdapter from .madrid_adapter import MadridAdapter ADAPTER_REGISTRY: Dict[str, Type[CityDataAdapter]] = { "madrid": MadridAdapter, } def get_adapter(city_id: str, config: Dict) -> CityDataAdapter: """Factory to instantiate appropriate adapter""" adapter_class = ADAPTER_REGISTRY.get(city_id) if not adapter_class: raise ValueError(f"No adapter registered for city: {city_id}") return adapter_class(city_id, config)