reddit's python experiments framework
Project description
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:
$ pip install reddit-experiments
Add the client to your application's Baseplate context:
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.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reddit_experiments-1.3.6.tar.gz.
File metadata
- Download URL: reddit_experiments-1.3.6.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.8.3 requests/2.28.1 setuptools/47.3.0 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
875702419f7a27787b4a1fb2fd070301c657235443486703bcc7d08da332194d
|
|
| MD5 |
6571ea713df846cdf395565de6c3ba4f
|
|
| BLAKE2b-256 |
de11353e42a51dea1611121b62f8c80e37410806dd2f7d216ae53fb1f47478e5
|
File details
Details for the file reddit_experiments-1.3.6-py3-none-any.whl.
File metadata
- Download URL: reddit_experiments-1.3.6-py3-none-any.whl
- Upload date:
- Size: 36.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.8.3 requests/2.28.1 setuptools/47.3.0 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a02e8f432c44d250bca091c6848b0c6e67d146a79507e59f41b699a367066e3d
|
|
| MD5 |
a2710348fcdb535ec3f84f5e93188e8f
|
|
| BLAKE2b-256 |
754187c9f53163c3ee5fb39f0f45d18af5ba5d2219a0560e2f2f01b355cc54b8
|