@@ -28,17 +28,20 @@ class FeatureManager(FeatureManagerBase):
2828 evaluated.
2929 """
3030
31- def __init__ (self , configuration : Mapping , ** kwargs : Dict [ str , Any ] ):
31+ def __init__ (self , configuration : Mapping [ str , Any ], ** kwargs : Any ):
3232 super ().__init__ (configuration , ** kwargs )
33- filters = [TimeWindowFilter (), TargetingFilter ()] + cast (List , kwargs .pop (PROVIDED_FEATURE_FILTERS , []))
33+ self ._filters : Dict [str , FeatureFilter ] = {}
34+ filters = [TimeWindowFilter (), TargetingFilter ()] + cast (
35+ List [FeatureFilter ], kwargs .pop (PROVIDED_FEATURE_FILTERS , [])
36+ )
3437
3538 for feature_filter in filters :
3639 if not isinstance (feature_filter , FeatureFilter ):
3740 raise ValueError ("Custom filter must be a subclass of FeatureFilter" )
3841 self ._filters [feature_filter .name ] = feature_filter
3942
4043 @overload # type: ignore
41- def is_enabled (self , feature_flag_id : str , user_id : str , ** kwargs : Dict [ str , Any ] ) -> bool :
44+ def is_enabled (self , feature_flag_id : str , user_id : str , ** kwargs : Any ) -> bool :
4245 """
4346 Determine if the feature flag is enabled for the given context.
4447
@@ -48,7 +51,7 @@ def is_enabled(self, feature_flag_id: str, user_id: str, **kwargs: Dict[str, Any
4851 :rtype: bool
4952 """
5053
51- def is_enabled (self , feature_flag_id : str , * args : Any , ** kwargs : Dict [ str , Any ] ) -> bool : # type: ignore
54+ def is_enabled (self , feature_flag_id : str , * args : Any , ** kwargs : Any ) -> bool :
5255 """
5356 Determine if the feature flag is enabled for the given context.
5457
@@ -70,7 +73,7 @@ def is_enabled(self, feature_flag_id: str, *args: Any, **kwargs: Dict[str, Any])
7073 return result .enabled
7174
7275 @overload # type: ignore
73- def get_variant (self , feature_flag_id : str , user_id : str , ** kwargs : Dict [ str , Any ] ) -> Optional [Variant ]:
76+ def get_variant (self , feature_flag_id : str , user_id : str , ** kwargs : Any ) -> Optional [Variant ]:
7477 """
7578 Determine the variant for the given context.
7679
@@ -80,9 +83,7 @@ def get_variant(self, feature_flag_id: str, user_id: str, **kwargs: Dict[str, An
8083 :rtype: Variant
8184 """
8285
83- def get_variant ( # type: ignore
84- self , feature_flag_id : str , * args : Any , ** kwargs : Dict [str , Any ]
85- ) -> Optional [Variant ]:
86+ def get_variant (self , feature_flag_id : str , * args : Any , ** kwargs : Any ) -> Optional [Variant ]:
8687 """
8788 Determine the variant for the given context.
8889
@@ -105,7 +106,7 @@ def get_variant( # type: ignore
105106 return result .variant
106107
107108 def _check_feature_filters (
108- self , evaluation_event : EvaluationEvent , targeting_context : TargetingContext , ** kwargs : Dict
109+ self , evaluation_event : EvaluationEvent , targeting_context : TargetingContext , ** kwargs : Any
109110 ) -> None :
110111 feature_flag = evaluation_event .feature
111112 if not feature_flag :
@@ -123,8 +124,8 @@ def _check_feature_filters(
123124
124125 for feature_filter in feature_filters :
125126 filter_name = feature_filter [FEATURE_FILTER_NAME ]
126- kwargs ["user" ] = targeting_context .user_id # type: ignore
127- kwargs ["groups" ] = targeting_context .groups # type: ignore
127+ kwargs ["user" ] = targeting_context .user_id
128+ kwargs ["groups" ] = targeting_context .groups
128129 if filter_name not in self ._filters :
129130 raise ValueError (f"Feature flag { feature_flag .name } has unknown filter { filter_name } " )
130131 if feature_conditions .requirement_type == REQUIREMENT_TYPE_ALL :
@@ -136,7 +137,7 @@ def _check_feature_filters(
136137 break
137138
138139 def _check_feature (
139- self , feature_flag_id : str , targeting_context : TargetingContext , ** kwargs : Dict [ str , Any ]
140+ self , feature_flag_id : str , targeting_context : TargetingContext , ** kwargs : Any
140141 ) -> EvaluationEvent :
141142 """
142143 Determine if the feature flag is enabled for the given context.
0 commit comments