Skip to main content

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 in build/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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reddit_experiments-1.3.6.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reddit_experiments-1.3.6-py3-none-any.whl (36.7 kB view details)

Uploaded Python 3

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

Hashes for reddit_experiments-1.3.6.tar.gz
Algorithm Hash digest
SHA256 875702419f7a27787b4a1fb2fd070301c657235443486703bcc7d08da332194d
MD5 6571ea713df846cdf395565de6c3ba4f
BLAKE2b-256 de11353e42a51dea1611121b62f8c80e37410806dd2f7d216ae53fb1f47478e5

See more details on using hashes here.

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

Hashes for reddit_experiments-1.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a02e8f432c44d250bca091c6848b0c6e67d146a79507e59f41b699a367066e3d
MD5 a2710348fcdb535ec3f84f5e93188e8f
BLAKE2b-256 754187c9f53163c3ee5fb39f0f45d18af5ba5d2219a0560e2f2f01b355cc54b8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page