@@ -187,16 +187,6 @@ def __init__(
187
187
else :
188
188
self ._event_logger = DebugLogger ()
189
189
190
- def _get_decider (self ) -> Optional [T ]:
191
- if self ._internal is not None :
192
- return self ._internal .get_decider ()
193
-
194
- return None
195
-
196
- def _get_ctx (self ) -> Any :
197
- context_fields = self ._decider_context .to_dict ()
198
- return make_ctx (context_fields )
199
-
200
190
def _send_expose (self , event : str , exposure_fields : dict ) -> None :
201
191
event_fields = deepcopy (exposure_fields )
202
192
try :
@@ -379,30 +369,31 @@ def expose(
379
369
if variant_name is None or variant_name == "" :
380
370
return
381
371
382
- decider = self ._get_decider ()
383
- if decider is None :
372
+ if self ._internal is None :
373
+ logger . error ( "RustDecider is None--did not initialize." )
384
374
return
385
375
386
- experiment = decider .get_experiment (experiment_name )
387
- error = experiment .err ()
388
- if error :
389
- logger .warning (f"Encountered error in decider.get_experiment(): { error } " )
376
+ try :
377
+ feature = self ._internal .get_feature (experiment_name )
378
+ except FeatureNotFoundException as exc :
379
+ warnings .warn (str (exc ))
380
+ return
381
+ except DeciderException as exc :
382
+ logger .info (str (exc ))
390
383
return
391
384
392
385
event_context_fields = self ._decider_context .to_event_dict ()
393
386
event_context_fields .update (exposure_kwargs or {})
394
387
event_fields = deepcopy (event_context_fields )
395
388
396
- exp_dict = experiment .val ()
397
-
398
389
experiment = ExperimentConfig (
399
- id = int ( exp_dict . get ( "id" , 0 )) ,
400
- name = exp_dict . get ( " name" ) ,
401
- version = str (exp_dict . get ( " version" ) ),
402
- bucket_val = exp_dict . get ( "variant_set" , {}). get ( " bucket_val" ) ,
403
- start_ts = exp_dict . get ( "variant_set" , {}). get ( " start_ts" ) ,
404
- stop_ts = exp_dict . get ( "variant_set" , {}). get ( " stop_ts" ) ,
405
- owner = exp_dict . get ( " owner" ) ,
390
+ id = feature . id ,
391
+ name = feature . name ,
392
+ version = str (feature . version ),
393
+ bucket_val = feature . bucket_val ,
394
+ start_ts = feature . start_ts ,
395
+ stop_ts = feature . stop_ts ,
396
+ owner = feature . owner ,
406
397
)
407
398
408
399
self ._event_logger .log (
@@ -847,31 +838,28 @@ def get_experiment(self, experiment_name: str) -> Optional[ExperimentConfig]:
847
838
:return: an :py:class:`~reddit_decider.ExperimentConfig` `dataclass <https://github.com/reddit/experiments.py/blob/develop/reddit_decider/__init__.py#L44>`_
848
839
representation of an experiment if found, else :code:`None`.
849
840
"""
850
- decider = self ._get_decider ()
851
- if decider is None :
841
+ if self ._internal is None :
842
+ logger . error ( "RustDecider is None--did not initialize." )
852
843
return None
853
844
854
- experiment = decider .get_experiment (experiment_name )
855
- error = experiment .err ()
856
- if error :
857
- # sending to debug logger to avoid printing "Feature x not found." logs
858
- logger .debug (f"Encountered error in decider.get_experiment(): { error } " )
845
+ try :
846
+ feature = self ._internal .get_feature (experiment_name )
847
+ except FeatureNotFoundException as exc :
848
+ warnings .warn (str (exc ))
859
849
return None
860
-
861
- exp_dict = experiment .val ()
862
-
863
- if exp_dict is None :
850
+ except DeciderException as exc :
851
+ logger .info (str (exc ))
864
852
return None
865
853
866
854
return ExperimentConfig (
867
- id = int ( exp_dict . get ( "id" , 0 )) ,
868
- name = exp_dict . get ( " name" ) ,
869
- version = str (exp_dict . get ( " version" ) ),
870
- bucket_val = exp_dict . get ( "variant_set" , {}). get ( " bucket_val" ) ,
871
- start_ts = exp_dict . get ( "variant_set" , {}). get ( " start_ts" ) ,
872
- stop_ts = exp_dict . get ( "variant_set" , {}). get ( " stop_ts" ) ,
873
- owner = exp_dict . get ( " owner" ) ,
874
- emit_event = bool ( exp_dict . get ( " emit_event" )) ,
855
+ id = feature . id ,
856
+ name = feature . name ,
857
+ version = str (feature . version ),
858
+ bucket_val = feature . bucket_val ,
859
+ start_ts = feature . start_ts ,
860
+ stop_ts = feature . stop_ts ,
861
+ owner = feature . owner ,
862
+ emit_event = feature . emit_event ,
875
863
)
876
864
877
865
0 commit comments