from typing import Dict, Any from .base import SourceAdapter from .local import LocalAdapter from .ssh import SSHAdapter from .database import DatabaseAdapter ADAPTER_MAP = { "local": LocalAdapter, "ssh": SSHAdapter, "database": DatabaseAdapter, } def get_adapter(source_type: str, config: Dict[str, Any]) -> SourceAdapter: adapter_class = ADAPTER_MAP.get(source_type) if not adapter_class: raise ValueError(f"Unknown source type: {source_type}") return adapter_class(config)