python-sdk/open_feature/open_feature_api.py

28 lines
798 B
Python

import typing
from open_feature.exception.exceptions import GeneralError
from open_feature.open_feature_client import OpenFeatureClient
from open_feature.provider.provider import AbstractProvider
_provider = None
def get_client(name: str = None, version: str = None) -> OpenFeatureClient:
if _provider is None:
raise GeneralError(
error_message="Provider not set. Call set_provider before using get_client"
)
return OpenFeatureClient(name=name, version=version, provider=_provider)
def set_provider(provider: AbstractProvider):
global _provider
if provider is None:
raise GeneralError(error_message="No provider")
_provider = provider
def get_provider() -> typing.Optional[AbstractProvider]:
global _provider
return _provider