experiments.py
Experiments allow us to determine the impact of changes we make. This library helps you run and track them in Baseplate.py services.
Documentation: https://reddit-experiments.readthedocs.io/
Usage
Install the library:
# `reddit-v2-events` is a Reddit internal package used for emitting exposure events
$ pip install reddit-experiments reddit-v2-events>=2.8.2
Add the client to your application's Baseplate context:
from event_utils.v2_event_utils import ExperimentLogger
from reddit_decider import decider_client_from_config
decider = decider_client_from_config(
app_config=app_config,
event_logger=ExperimentLogger(),
request_field_extractor=decider_field_extractor,
)
baseplate.add_to_context("decider", decider)
and use it in request:
def my_method(request):
if request.decider.get_variant("foo") == "bar":
pass
See the documentation for more information (documentation builds can be found here) .
Development
A Dockerfile is provided to get a development environment running. To use it, build the base Docker image:
$ docker build -t experiments .
And then fire up the environment and use the provided Makefile targets to do common tasks:
$ docker run -it -v $PWD:/src -w /src experiments
$ make fmt
The following make targets are provided:
fmt: Apply automatic formatting to the source code.lint: Run linters on the code.test: Run the test suite.docs: Build the docs. Output can be found inbuild/html/.
Note: some tests are skipped by default locally because they are quite slow.
Enable these by setting CI=true in the environment: CI=true make test.
Release files for reddit-experiments 1.12.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| reddit_experiments-1.12.0.tar.gz | 1.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| reddit_experiments-1.12.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.5 MB
Release files / reddit_experiments-1.12.0.tar.gz
| Download URL | reddit_experiments-1.12.0.tar.gz |
|---|---|
| Size | 1.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b24ce992f007c9529d37851a8b211c51086242376f2a8c5070d91af688b5bbc2
|
|
BLAKE2b-256 checksum How to use checksums |
e30504163c5425c96dfae046ad339f1953a456f25567c188e487a3bf410de3da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.12.1.2 requests/2.32.4 setuptools/47.3.0 requests-toolbelt/1.0.0 tqdm/4.70.1 CPython/3.8.18
|
Release files / reddit_experiments-1.12.0-py3-none-any.whl
| Download URL | reddit_experiments-1.12.0-py3-none-any.whl |
|---|---|
| Size | 39.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d1c2a4fe8e183d71bf0d7b8ab9c9acf9daa90b11d99fdfa3ee373c6b46856b59
|
|
BLAKE2b-256 checksum How to use checksums |
b91f7dda7ab234d4c30b352dad6761bd731dc37bd5899608ce6f9583b3074963
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.12.1.2 requests/2.32.4 setuptools/47.3.0 requests-toolbelt/1.0.0 tqdm/4.70.1 CPython/3.8.18
|