6666
6767__NOT_IN_SEGMENT_CLAUSE__ = 'User is not in segment'
6868
69- __EXPT_KEY_PREFIX__ = "expt"
70-
7169
7270class Evaluator :
7371 def __init__ (self ,
@@ -96,7 +94,7 @@ def _match_user_variation(self, flag: dict, user: FBUser, fb_event: Optional[FBE
9694 if er is not None :
9795 log .info ('FB Python SDK: User %s, Feature Flag %s, Flag Value %s' % (user .get ('KeyId' ), er .key_name , er .value ))
9896 # Match the server default: only an explicit boolean false
99- # disables insights; evaluation and experiment eligibility stay unchanged.
97+ # disables insights; evaluation stays unchanged.
10098 if fb_event is not None and flag .get ('insightsEnabled' ) is not False :
10199 fb_event .add (FlagEventVariation (er ))
102100
@@ -106,7 +104,6 @@ def _match_feature_flag_disabled_user_variation(self, flag: dict, user: FBUser)
106104 return _EvalResult (flag ['disabledVariationId' ],
107105 flag ['variationMap' ][flag ['disabledVariationId' ]],
108106 REASON_FLAG_OFF ,
109- False ,
110107 flag ['key' ],
111108 flag ['name' ],
112109 flag ['variationType' ])
@@ -119,7 +116,6 @@ def _match_targeted_user_variation(self, flag: dict, user: FBUser) -> Optional[_
119116 return _EvalResult (target ['variationId' ],
120117 flag ['variationMap' ][target ['variationId' ]],
121118 REASON_TARGET_MATCH ,
122- flag ['exptIncludeAllTargets' ],
123119 flag ['key' ],
124120 flag ['name' ],
125121 flag ['variationType' ])
@@ -269,36 +265,14 @@ def _get_rollout_variation_option(self,
269265 key_name : str ,
270266 name : str ) -> Optional [_EvalResult ]:
271267
272- def is_send_to_expt (dispatch_key : str ,
273- rollout : dict ,
274- expt_include_all_targets : bool ,
275- rule_inclued_in_expt : bool ) -> bool :
276- if expt_include_all_targets :
277- return True
278- if rule_inclued_in_expt :
279- send_to_expt_percentage = rollout ['exptRollout' ]
280- splitting_percentage = rollout ['rollout' ][1 ] - rollout ['rollout' ][0 ]
281-
282- if send_to_expt_percentage == 0 or splitting_percentage == 0 :
283- return False
284-
285- upper_bound = send_to_expt_percentage / splitting_percentage
286- if upper_bound > 1 :
287- upper_bound = 1
288- new_dispatch_key = "" .join ((__EXPT_KEY_PREFIX__ , dispatch_key ))
289- return VariationSplittingAlgorithm (new_dispatch_key , [0 , upper_bound ]).is_key_belongs_to_percentage ()
290- return False
291-
292268 dispatch_key = rollout_variations .get ('dispatchKey' )
293269 dispatch_key = dispatch_key if dispatch_key else 'keyid'
294270 dispatch_key_value = "" .join ((flag ['key' ], user .get (dispatch_key , "" ))) # type: ignore
295271 for rollout in rollout_variations ['variations' ]:
296272 if VariationSplittingAlgorithm (dispatch_key_value , rollout ['rollout' ]).is_key_belongs_to_percentage (): # type: ignore
297- send_to_expt = is_send_to_expt (dispatch_key_value , rollout , flag ['exptIncludeAllTargets' ], rollout_variations ['includedInExpt' ]) # type: ignore
298273 return _EvalResult (rollout ['id' ],
299274 flag ['variationMap' ][rollout ['id' ]],
300275 reason ,
301- send_to_expt ,
302276 key_name ,
303277 name ,
304278 flag ['variationType' ])
0 commit comments