diff --git a/.env.template b/.env.template index 7bce2d5..e69de29 100644 --- a/.env.template +++ b/.env.template @@ -1 +0,0 @@ -FLAGSMITH_ENVIRONMENT_KEY="" \ No newline at end of file diff --git a/src/exception/exceptions.py b/src/exception/exceptions.py new file mode 100644 index 0000000..dc4fed8 --- /dev/null +++ b/src/exception/exceptions.py @@ -0,0 +1,29 @@ +from src.flag_evaluation.error_code import ErrorCode + + +class OpenFeatureError(Exception): + def __init__( + self, error_message: str = None, error_code: ErrorCode = None + ): + self.error_message = error_message + self.error_code = error_code + + +class FlagNotFoundError(OpenFeatureError): + def __init__(self, error_message: str = None): + super().__init__(error_message, ErrorCode.FLAG_NOT_FOUND) + + +class GeneralError(OpenFeatureError): + def __init__(self, error_message: str = None): + super().__init__(error_message, ErrorCode.GENERAL) + + +class ParseError(OpenFeatureError): + def __init__(self, error_message: str = None): + super().__init__(error_message, ErrorCode.PARSE_ERROR) + + +class TypeMismatchError(OpenFeatureError): + def __init__(self, error_message: str = None): + super().__init__(error_message, ErrorCode.TYPE_MISMATCH) diff --git a/src/exception/flag_not_found_error.py b/src/exception/flag_not_found_error.py deleted file mode 100644 index 95df99f..0000000 --- a/src/exception/flag_not_found_error.py +++ /dev/null @@ -1,8 +0,0 @@ -from src.exception.open_feature_error import OpenFeatureError -from src.flag_evaluation.error_code import ErrorCode - - -class FlagNotFoundError(OpenFeatureError): - def __init__(self, error_message: str = None): - self.error_message = error_message - self.error_code = ErrorCode.FLAG_NOT_FOUND diff --git a/src/exception/general_error.py b/src/exception/general_error.py deleted file mode 100644 index a02844f..0000000 --- a/src/exception/general_error.py +++ /dev/null @@ -1,8 +0,0 @@ -from src.exception.open_feature_error import OpenFeatureError -from src.flag_evaluation.error_code import ErrorCode - - -class GeneralError(OpenFeatureError): - def __init__(self, error_message: str = None): - self.error_message = error_message - self.error_code = ErrorCode.GENERAL diff --git a/src/exception/open_feature_error.py b/src/exception/open_feature_error.py deleted file mode 100644 index 312926f..0000000 --- a/src/exception/open_feature_error.py +++ /dev/null @@ -1,9 +0,0 @@ -from src.flag_evaluation.error_code import ErrorCode - - -class OpenFeatureError(Exception): - def __init__( - self, error_message: str = None, error_code: ErrorCode = None - ): - self.error_message = error_message - self.error_code = error_code diff --git a/src/exception/parse_error.py b/src/exception/parse_error.py deleted file mode 100644 index 25c1b65..0000000 --- a/src/exception/parse_error.py +++ /dev/null @@ -1,8 +0,0 @@ -from src.exception.open_feature_error import OpenFeatureError -from src.flag_evaluation.error_code import ErrorCode - - -class ParseError(OpenFeatureError): - def __init__(self, error_message: str = None): - self.error_message = error_message - self.error_code = ErrorCode.PARSE_ERROR diff --git a/src/exception/type_mismatch_error.py b/src/exception/type_mismatch_error.py deleted file mode 100644 index 2834ec0..0000000 --- a/src/exception/type_mismatch_error.py +++ /dev/null @@ -1,8 +0,0 @@ -from src.exception.open_feature_error import OpenFeatureError -from src.flag_evaluation.error_code import ErrorCode - - -class TypeMismatchError(OpenFeatureError): - def __init__(self, error_message: str = None): - self.error_message = error_message - self.error_code = ErrorCode.TYPE_MISMATCH diff --git a/src/open_feature_api.py b/src/open_feature_api.py index 33d5a04..5ca1f2c 100644 --- a/src/open_feature_api.py +++ b/src/open_feature_api.py @@ -8,10 +8,16 @@ class OpenFeatureAPI: def __init__(self): pass + @staticmethod def get_client( - self, name: str = None, version: str = None + name: str = None, version: str = None, provider=None ) -> OpenFeatureClient: - open_feature_provider = self.get_provider() + if provider is None: + open_feature_provider = OpenFeatureAPI.get_provider() + else: + OpenFeatureAPI.set_provider(provider) + open_feature_provider = provider + return OpenFeatureClient( name=name, version=version, provider=open_feature_provider )