@@ -268,7 +268,6 @@ def get_variation(
268268 And an array of log messages representing decision making.
269269 """
270270 user_id = user_context .user_id
271- attributes = user_context .get_user_attributes ()
272271
273272 if options :
274273 ignore_user_profile = OptimizelyDecideOption .IGNORE_USER_PROFILE_SERVICE in options
@@ -323,7 +322,7 @@ def get_variation(
323322 project_config , audience_conditions ,
324323 enums .ExperimentAudienceEvaluationLogs ,
325324 experiment .key ,
326- attributes , self .logger )
325+ user_context , self .logger )
327326 decide_reasons += reasons_received
328327 if not user_meets_audience_conditions :
329328 message = f'User "{ user_id } " does not meet conditions to be in experiment "{ experiment .key } ".'
@@ -332,7 +331,7 @@ def get_variation(
332331 return None , decide_reasons
333332
334333 # Determine bucketing ID to be used
335- bucketing_id , bucketing_id_reasons = self ._get_bucketing_id (user_id , attributes )
334+ bucketing_id , bucketing_id_reasons = self ._get_bucketing_id (user_id , user_context . get_user_attributes () )
336335 decide_reasons += bucketing_id_reasons
337336 variation , bucket_reasons = self .bucketer .bucket (project_config , experiment , user_id , bucketing_id )
338337 decide_reasons += bucket_reasons
@@ -354,7 +353,7 @@ def get_variation(
354353 return None , decide_reasons
355354
356355 def get_variation_for_rollout (
357- self , project_config : ProjectConfig , feature : entities .FeatureFlag , user : OptimizelyUserContext
356+ self , project_config : ProjectConfig , feature : entities .FeatureFlag , user_context : OptimizelyUserContext
358357 ) -> tuple [Decision , list [str ]]:
359358 """ Determine which experiment/variation the user is in for a given rollout.
360359 Returns the variation of the first experiment the user qualifies for.
@@ -371,8 +370,8 @@ def get_variation_for_rollout(
371370 array of log messages representing decision making.
372371 """
373372 decide_reasons : list [str ] = []
374- user_id = user .user_id
375- attributes = user .get_user_attributes ()
373+ user_id = user_context .user_id
374+ attributes = user_context .get_user_attributes ()
376375
377376 if not feature or not feature .rolloutId :
378377 return Decision (None , None , enums .DecisionSources .ROLLOUT ), decide_reasons
@@ -401,7 +400,7 @@ def get_variation_for_rollout(
401400 rule = rollout_rules [index ]
402401 optimizely_decision_context = OptimizelyUserContext .OptimizelyDecisionContext (feature .key , rule .key )
403402 forced_decision_variation , reasons_received = self .validated_forced_decision (
404- project_config , optimizely_decision_context , user )
403+ project_config , optimizely_decision_context , user_context )
405404 decide_reasons += reasons_received
406405
407406 if forced_decision_variation :
@@ -422,7 +421,7 @@ def get_variation_for_rollout(
422421
423422 audience_decision_response , reasons_received_audience = audience_helper .does_user_meet_audience_conditions (
424423 project_config , audience_conditions , enums .RolloutRuleAudienceEvaluationLogs ,
425- logging_key , attributes , self .logger )
424+ logging_key , user_context , self .logger )
426425
427426 decide_reasons += reasons_received_audience
428427
0 commit comments