Skip to content

Commit 7adf57a

Browse files
committed
update get_experiment() & remove old decider bindings usage
1 parent 02a4572 commit 7adf57a

File tree

1 file changed

+32
-44
lines changed

1 file changed

+32
-44
lines changed

reddit_decider/__init__.py

Lines changed: 32 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)