from typing import Dict, Type from .base import BaseRetriever class RetrieverRegistry: """Registry for retriever types""" _registry: Dict[str, Type[BaseRetriever]] = {} @classmethod def register(cls, retriever_type: str, retriever_class: Type[BaseRetriever]): """Register a new retriever type""" cls._registry[retriever_type] = retriever_class @classmethod def get_retriever_class(cls, retriever_type: str) -> Type[BaseRetriever]: """Get the retriever class for a given type""" if retriever_type not in cls._registry: raise ValueError(f"Unknown retriever type: {retriever_type}") return cls._registry[retriever_type]