From fa89e340dc4b5fbdd670fa6c54aa200be375f5f3 Mon Sep 17 00:00:00 2001 From: Andrew Helsby Date: Tue, 18 Oct 2022 11:23:53 +0400 Subject: [PATCH] provider-metadata: Add metadata to providers Signed-off-by: Andrew Helsby Signed-off-by: Andrew Helsby --- open_feature/provider/metadata.py | 6 ++++++ open_feature/provider/no_op_provider.py | 17 +++++++---------- open_feature/provider/provider.py | 3 ++- 3 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 open_feature/provider/metadata.py diff --git a/open_feature/provider/metadata.py b/open_feature/provider/metadata.py new file mode 100644 index 0000000..6f3e250 --- /dev/null +++ b/open_feature/provider/metadata.py @@ -0,0 +1,6 @@ +from dataclasses import dataclass + + +@dataclass +class Metadata: + name: str diff --git a/open_feature/provider/no_op_provider.py b/open_feature/provider/no_op_provider.py index d91395e..1341e0e 100644 --- a/open_feature/provider/no_op_provider.py +++ b/open_feature/provider/no_op_provider.py @@ -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, ) diff --git a/open_feature/provider/provider.py b/open_feature/provider/provider.py index f305703..4a79113 100644 --- a/open_feature/provider/provider.py +++ b/open_feature/provider/provider.py @@ -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