This release is a pre-release and may not be stable for production use.
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.11.0rc3
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.11.0rc3.tar.gz | 1.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| reddit_experiments-1.11.0rc3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.5 MB
Release files / reddit_experiments-1.11.0rc3.tar.gz
| Download URL | reddit_experiments-1.11.0rc3.tar.gz |
|---|---|
| Size | 1.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c7bcf142f47fac9fa770bc5c520e46f2b32a8df1f92225a708edf56950f838ff
|
|
BLAKE2b-256 checksum How to use checksums |
9d2db6bddb94a61d58c874ea00ce6d70ed83d45421e76f34dd371c914418ab22
|
| 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.11.0rc3-py3-none-any.whl
| Download URL | reddit_experiments-1.11.0rc3-py3-none-any.whl |
|---|---|
| Size | 39.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
797e3b5bc6f509f384e211d992311c66ab81fb8fe815d66524a7e2af1ddf9cea
|
|
BLAKE2b-256 checksum How to use checksums |
c00fb07fbe0d2a246ad80bbb253b9cc2a5b878ba291f34cefe9a8e178b0b74dd
|
| 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
|