provider-metadata: Add metadata to providers

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>
This commit is contained in:
Andrew Helsby 2022-10-18 11:23:53 +04:00
parent 7ef8667f12
commit fa89e340dc
3 changed files with 15 additions and 11 deletions

View File

@ -0,0 +1,6 @@
from dataclasses import dataclass
@dataclass
class Metadata:
name: str

View File

@ -3,14 +3,15 @@ from numbers import Number
from open_feature.evaluation_context.evaluation_context import EvaluationContext
from open_feature.flag_evaluation.flag_evaluation_details import FlagEvaluationDetails
from open_feature.flag_evaluation.reason import Reason
from open_feature.provider.metadata import Metadata
from open_feature.provider.provider import AbstractProvider
PASSED_IN_DEFAULT = "Passed in default"
class NoOpProvider(AbstractProvider):
def get_name(self) -> str:
return "No-op Provider"
def get_metadata(self) -> Metadata:
return Metadata(name="No-op Provider")
def get_boolean_details(
self,
@ -19,10 +20,9 @@ class NoOpProvider(AbstractProvider):
evaluation_context: EvaluationContext = None,
):
return FlagEvaluationDetails(
key=key,
flag_key=key,
value=default_value,
reason=Reason.DEFAULT,
variant=PASSED_IN_DEFAULT,
)
def get_string_details(
@ -32,10 +32,9 @@ class NoOpProvider(AbstractProvider):
evaluation_context: EvaluationContext = None,
):
return FlagEvaluationDetails(
key=key,
flag_key=key,
value=default_value,
reason=Reason.DEFAULT,
variant=PASSED_IN_DEFAULT,
)
def get_number_details(
@ -45,10 +44,9 @@ class NoOpProvider(AbstractProvider):
evaluation_context: EvaluationContext = None,
):
return FlagEvaluationDetails(
key=key,
flag_key=key,
value=default_value,
reason=Reason.DEFAULT,
variant=PASSED_IN_DEFAULT,
)
def get_object_details(
@ -58,8 +56,7 @@ class NoOpProvider(AbstractProvider):
evaluation_context: EvaluationContext = None,
):
return FlagEvaluationDetails(
key=key,
flag_key=key,
value=default_value,
reason=Reason.DEFAULT,
variant=PASSED_IN_DEFAULT,
)

View File

@ -2,11 +2,12 @@ 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_name(self) -> str:
def get_metadata(self) -> Metadata:
pass
@abstractmethod