from django.conf import settings from apps.providers.adapters.mvp_provider import MvpDemoProviderAdapter from apps.providers.exceptions import ProviderNotFoundError PROVIDER_REGISTRY = { MvpDemoProviderAdapter.namespace: MvpDemoProviderAdapter, } def get_provider(namespace: str | None = None): provider_namespace = namespace or settings.PROVIDER_DEFAULT_NAMESPACE provider_cls = PROVIDER_REGISTRY.get(provider_namespace) if not provider_cls: raise ProviderNotFoundError(f"Unknown provider namespace: {provider_namespace}") return provider_cls()