@@ -187,16 +187,6 @@ def __init__(
187187 else :
188188 self ._event_logger = DebugLogger ()
189189
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-
200190 def _send_expose (self , event : str , exposure_fields : dict ) -> None :
201191 event_fields = deepcopy (exposure_fields )
202192 try :
@@ -379,30 +369,31 @@ def expose(
379369 if variant_name is None or variant_name == "" :
380370 return
381371
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." )
384374 return
385375
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 ))
390383 return
391384
392385 event_context_fields = self ._decider_context .to_event_dict ()
393386 event_context_fields .update (exposure_kwargs or {})
394387 event_fields = deepcopy (event_context_fields )
395388
396- exp_dict = experiment .val ()
397-
398389 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 ,
406397 )
407398
408399 self ._event_logger .log (
@@ -847,31 +838,28 @@ def get_experiment(self, experiment_name: str) -> Optional[ExperimentConfig]:
847838 :return: an :py:class:`~reddit_decider.ExperimentConfig` `dataclass <https://github.com/reddit/experiments.py/blob/develop/reddit_decider/__init__.py#L44>`_
848839 representation of an experiment if found, else :code:`None`.
849840 """
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." )
852843 return None
853844
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 ))
859849 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 ))
864852 return None
865853
866854 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 ,
875863 )
876864
877865
0 commit comments