Skip to main content

Top-level package for MakeDistribution.com Python client.

Project description

Python client for the MakeDistribution API (docs).

Offers a thin wrapper around the API (JSONClient) as well as the Distribution class which lets you interact with MakeDistribution.com distributions as if they were ordinary SciPy distribution objects.

At the moment, Distribution supports commonly used functionality which should be sufficient for the great majority of use cases. Eventually, the goal is to provide a full drop-in replacement for SciPy's distributions (specifically, rv_continuous_frozen).

Installation

pip install make_distribution  # or `poetry add make_distribution`

Usage

import os

import make_distribution.client

TOKEN = os.environ["MAKEDISTRIBUTION_API_TOKEN"]

json_client = make_distribution.client.JSONClient(token=TOKEN)

client = make_distribution.client.SciPyClient(json_client)

data = {
    # See API docs for available families
    "family": {"requested": "cinterp5_01"},
    "arguments": {
        "quantiles": [
            {
                "p": 0.1,
                "x": 0,
            },
            {
                "p": 0.5,
                "x": 1,
            },
            {
                "p": 0.9,
                "x": 4,
            },
        ]
    },
}

# `dist` is an instance of class `Distribution`
dist = client.post("1d/dists/", json=data)

# Print basic information about the distribution
print(dist)

# `dist` lets you query other endpoints with a SciPy-like interface
size = 5
print(f"rvs(size={size}) = {dist.rvs(size)}")  # Draw random samples

x = [1, 2, 3]
print(f"cdf({x}) = {dist.cdf(x)}") # Cumulative distribution function
print(f"pdf({x}) = {dist.pdf(x)}") # Probability density function

p = [0.1, 0.2, 0.3]
print(f"ppf({p}) = {dist.ppf(p)}") # Quantile function (inverse CDF)

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

make_distribution-0.2.0.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

make_distribution-0.2.0-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file make_distribution-0.2.0.tar.gz.

File metadata

  • Download URL: make_distribution-0.2.0.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.2 Darwin/23.5.0

File hashes

Hashes for make_distribution-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1a08219c1d61aa5b78da5ccf468f58b51e7fc2ab93cf35cd7cef020b405f4142
MD5 3971f38497ddc0d575c1814369ea2dd2
BLAKE2b-256 94f7a02ea9b8f1ea496e07a0ab384b600eb508a0e5de5cd07ee39519e22e1cbd

See more details on using hashes here.

File details

Details for the file make_distribution-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for make_distribution-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d1b1d26eee80c8cb1ef4ec7d26dd6e1a424910c8abc374b369e743c2872ad0dd
MD5 850cd595079a96fcf6c501ed648e7a5e
BLAKE2b-256 815bac72a63dceaf3e9bd04a99df0d946c00e277b4a634f57baae413b448ab88

See more details on using hashes here.

Supported by

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