Skip to content

Commit ae57a68

Browse files
Tomas-PytelTomas-Pytel
authored andcommitted
#4 Type Hints
1 parent dd685a7 commit ae57a68

1 file changed

Lines changed: 17 additions & 14 deletions

File tree

fastapi_featureflags/main.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,31 +9,34 @@ class FeatureFlags(object):
99
features = {}
1010

1111
@staticmethod
12-
def load_conf_from_url(conf_from_url):
12+
def load_conf_from_url(conf_from_url: str) -> bool:
1313
FeatureFlags.features.clear()
1414
FeatureFlags.conf_from_url = conf_from_url
1515
params = requests.get(conf_from_url).json()
1616
for k, v in params.items():
1717
FeatureFlags.features[k] = v
18+
return True
1819

1920
@staticmethod
20-
def load_conf_from_json(conf_from_json):
21+
def load_conf_from_json(conf_from_json: str) -> bool:
2122
FeatureFlags.features.clear()
2223
FeatureFlags.conf_from_json = conf_from_json
2324
with open(conf_from_json, "r") as f:
2425
params = json.loads(f.read())
2526
for k, v in params.items():
2627
FeatureFlags.features[k] = v
28+
return True
2729

2830
@staticmethod
29-
def load_conf_from_dict(conf_from_dict):
31+
def load_conf_from_dict(conf_from_dict: dict) -> bool:
3032
FeatureFlags.features.clear()
3133
FeatureFlags.conf_from_dict = conf_from_dict
3234
for k, v in conf_from_dict.items():
3335
FeatureFlags.features[k] = v
36+
return True
3437

3538
@staticmethod
36-
def reload_feature_flags():
39+
def reload_feature_flags() -> bool:
3740
FeatureFlags.features.clear()
3841
if FeatureFlags.conf_from_url:
3942
FeatureFlags.load_conf_from_url(FeatureFlags.conf_from_url)
@@ -48,32 +51,32 @@ def reload_feature_flags():
4851
return False
4952

5053
@classmethod
51-
def handle_feature(cls, feature_name):
54+
def handle_feature(cls, feature_name: str):
5255
features = cls.features
5356
if features.get(feature_name, False) is False:
5457
features[feature_name] = False
5558

5659
@classmethod
57-
def is_enabled(cls, feature_name):
58-
features = cls.features
59-
return features.get(feature_name, False)
60+
def get_features(cls) -> dict:
61+
return cls.features
6062

6163
@classmethod
62-
def get_features(cls):
63-
return cls.features
64+
def is_enabled(cls, feature_name: str) -> bool:
65+
features = cls.features
66+
return features.get(feature_name, False)
6467

6568
@classmethod
66-
def enable_feature(cls, feature_name):
69+
def enable_feature(cls, feature_name: str) -> bool:
6770
cls.features[feature_name] = True
6871
return cls.features[feature_name]
6972

7073
@classmethod
71-
def disable_feature(cls, feature_name):
74+
def disable_feature(cls, feature_name: str) -> bool:
7275
cls.features[feature_name] = False
7376
return cls.features[feature_name]
7477

7578

76-
def feature_flag(feature_name):
79+
def feature_flag(feature_name: str):
7780
def decorator(function):
7881
def wrapper(*args, **kwargs):
7982
FeatureFlags.handle_feature(feature_name)
@@ -87,6 +90,6 @@ def wrapper(*args, **kwargs):
8790
return decorator
8891

8992

90-
def feature_enabled(feature_name):
93+
def feature_enabled(feature_name: str) -> bool:
9194
FeatureFlags.handle_feature(feature_name)
9295
return FeatureFlags.is_enabled(feature_name)

0 commit comments

Comments
 (0)