@@ -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