From 86e0052bf0108c1903cfd17a69a6015e77591d9a Mon Sep 17 00:00:00 2001 From: Andrew Helsby Date: Fri, 7 Oct 2022 15:55:12 +0400 Subject: [PATCH] feature/flagsmith-implementation: Initialise flagsmith client in flagsmith provider --- .../providers/flagsmith/flagsmith_provider.py | 56 +++++++++++++++++++ requirements.in | 2 + 2 files changed, 58 insertions(+) create mode 100644 open_feature_contrib/providers/flagsmith/flagsmith_provider.py diff --git a/open_feature_contrib/providers/flagsmith/flagsmith_provider.py b/open_feature_contrib/providers/flagsmith/flagsmith_provider.py new file mode 100644 index 0000000..823626e --- /dev/null +++ b/open_feature_contrib/providers/flagsmith/flagsmith_provider.py @@ -0,0 +1,56 @@ +from numbers import Number + +from open_feature_sdk.provider.provider import AbstractProvider +from open_feature_sdk.evaluation_context.evaluation_context import EvaluationContext + +class FlagsmithProvider(AbstractProvider): + + def __init__(self, api_key: str): + self.api_key = api_key if api_key else os.environ.get("FLAGSMITH_ENVIRONMENT_KEY") + + self.flagsmith = Flagsmith( + environment_key=self.api_key, + enable_local_evaluation=False, + api_url="https://api.yourselfhostedflagsmith.com/api/v1/", + request_timeout_seconds=10, + environment_refresh_interval_seconds= 60, + retries=None, + enable_analytics= False, + custom_headers = None, + default_flag_handler=DefaultFlag(enabled=False, value=None) + ) + + def get_name(self) -> str: + return "Flagsmith" + + def get_boolean_details( + self, + key: str, + default_value: bool, + evaluation_context: EvaluationContext = EvaluationContext(), + ): + pass + + def get_string_details( + self, + key: str, + default_value: str, + evaluation_context: EvaluationContext = EvaluationContext(), + ): + pass + + def get_number_details( + self, + key: str, + default_value: Number, + evaluation_context: EvaluationContext = EvaluationContext(), + ): + pass + + def get_object_details( + self, + key: str, + default_value: dict, + evaluation_context: EvaluationContext = EvaluationContext(), + ): + pass diff --git a/requirements.in b/requirements.in index e69de29..9c95913 100644 --- a/requirements.in +++ b/requirements.in @@ -0,0 +1,2 @@ +open_feature_sdk +flagsmith \ No newline at end of file