python-sdk/open_feature/provider/provider.py

48 lines
1.1 KiB
Python

from abc import abstractmethod
from numbers import Number
from open_feature.evaluation_context.evaluation_context import EvaluationContext
from open_feature.provider.metadata import Metadata
class AbstractProvider:
@abstractmethod
def get_metadata(self) -> Metadata:
pass
@abstractmethod
def get_boolean_details(
self,
flag_key: str,
default_value: bool,
evaluation_context: EvaluationContext = EvaluationContext(),
):
pass
@abstractmethod
def get_string_details(
self,
flag_key: str,
default_value: str,
evaluation_context: EvaluationContext = EvaluationContext(),
):
pass
@abstractmethod
def get_number_details(
self,
flag_key: str,
default_value: Number,
evaluation_context: EvaluationContext = EvaluationContext(),
):
pass
@abstractmethod
def get_object_details(
self,
flag_key: str,
default_value: dict,
evaluation_context: EvaluationContext = EvaluationContext(),
):
pass