mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-07 19:31:51 +08:00
29 lines
764 B
Python
29 lines
764 B
Python
import logging
|
|
import inspect
|
|
# from utils import singleton
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class ProviderManager:
|
|
PROVIDERS = {}
|
|
|
|
@classmethod
|
|
def register_service_provider(cls, target):
|
|
if inspect.isfunction(target):
|
|
cls.PROVIDERS[target.__name__] = target
|
|
elif inspect.isclass(target):
|
|
name = target.__dict__.get('NAME', None)
|
|
name = name if name else target.__class__.__name__
|
|
cls.PROVIDERS[name] = target
|
|
else:
|
|
assert False, 'Cannot register_service_provider for: {}'.format(target)
|
|
return target
|
|
|
|
@classmethod
|
|
def get_provider(cls, name):
|
|
return cls.PROVIDERS.get(name, None)
|
|
|
|
|
|
from sd import kubernetes_provider, static_provider
|