@@ -348,7 +348,7 @@ def get_variant(
348
348
logger .info (exc )
349
349
return None
350
350
351
- if decision is not None :
351
+ if decision :
352
352
event_context_fields = self ._decider_context .to_event_dict ()
353
353
event_context_fields .update (exposure_kwargs or {})
354
354
@@ -378,32 +378,31 @@ def get_variant_without_expose(self, experiment_name: str) -> Optional[str]:
378
378
379
379
:return: Variant name if a variant is assigned, None otherwise.
380
380
"""
381
- decider = self ._get_decider ()
382
- if decider is None :
383
- return None
384
-
385
- ctx = self ._get_ctx ()
386
- ctx_err = ctx .err ()
387
- if ctx_err is not None :
388
- logger .info (f"Encountered error in rust_decider.make_ctx(): { ctx_err } " )
381
+ if self ._rs_decider is None :
382
+ logger .error ("rs_decider is None--did not initialize." )
389
383
return None
390
384
391
- choice = decider .choose (experiment_name , ctx )
392
- error = choice .err ()
385
+ ctx = self ._decider_context .to_dict ()
393
386
394
- if error :
395
- logger .info (f"Encountered error in decider.choose(): { error } " )
387
+ try :
388
+ decision = self ._rs_decider .choose (experiment_name , ctx )
389
+ except ValueError as exc :
390
+ logger .info (exc )
396
391
return None
397
392
398
- variant = choice .decision ()
393
+ if decision :
394
+ event_context_fields = self ._decider_context .to_event_dict ()
399
395
400
- event_context_fields = self ._decider_context .to_event_dict ()
396
+ for event in decision .get ("events" , []):
397
+ self ._send_expose_if_holdout (event = event , exposure_fields = event_context_fields )
401
398
402
- # expose Holdout if the experiment is part of one
403
- for event in choice .events ():
404
- self ._send_expose_if_holdout (event = event , exposure_fields = event_context_fields )
399
+ try :
400
+ return decision ["variant" ]
401
+ except KeyError :
402
+ logger .error ("Field 'variant' not found in choose() return value" )
403
+ return None
405
404
406
- return variant
405
+ return None
407
406
408
407
def expose (
409
408
self , experiment_name : str , variant_name : str , ** exposure_kwargs : Optional [Dict [str , Any ]]
0 commit comments