Skip to main content

greybox

PyPI version PyPI - Downloads Python CI Python versions License: LGPL-2.1

Python port of the R greybox package — a toolbox for regression model building and forecasting.

hex-sticker of the greybox package for Python

Installation

pip install greybox

For more installation options, see the Installation wiki page.

Quick Example

import numpy as np
import pandas as pd
from greybox import ALM, formula

# Generate sample data
np.random.seed(42)
n = 200
data = pd.DataFrame({
    "y": np.random.normal(10, 2, n),
    "x1": np.random.normal(5, 1, n),
    "x2": np.random.normal(3, 1, n),
})
data["y"] = 2 + 0.5 * data["x1"] - 0.3 * data["x2"] + np.random.normal(0, 1, n)

# Parse formula and fit model
y, X = formula("y ~ x1 + x2", data=data)
model = ALM(distribution="dnorm")
model.fit(X, y)

# Summary
print(model.summary())

# Predict with intervals
pred = model.predict(result.data, interval="prediction", level=0.95)
print(pred.mean[:5])

# Include AR terms (ARIMA-like models)
# For example, ARIMA(1,1,0) model with Log-Normal distribution:
model = ALM(distribution="dlnorm", orders=(1, 1, 0))
model.fit(X, y)

Supported Distributions

Category Distributions
Continuous dnorm, dlaplace, ds, dgnorm, dlgnorm, dfnorm, drectnorm, dt
Positive dlnorm, dinvgauss, dgamma, dexp, dchisq
Count dpois, dnbinom, dgeom
Bounded dbeta, dlogitnorm, dbcnorm
CDF-based pnorm, plogis
Other dalaplace, dbinom

Smoothers (lowess, supsmu)

See the Smoothers wiki page for the full reference.

Non-parametric smoothers that reproduce R's stats::lowess and stats::supsmu to machine precision (native pybind11 implementations).

import numpy as np
from greybox import lowess, supsmu

rng = np.random.default_rng(0)
x = np.linspace(0, 6, 80)
y = np.sin(x) + rng.normal(0, 0.2, 80)

# Cleveland's LOWESS — robust local regression
lo = lowess(x, y, f=0.4)
print(lo["x"], lo["y"])   # sorted x, smoothed y

# Friedman's SuperSmoother — variable-span cross-validation
sm_cv    = supsmu(x, y)              # automatic span selection
sm_fixed = supsmu(x, y, span=0.3)    # fixed span

References: Cleveland (1979) for LOWESS, Friedman (1984) for SuperSmoother.

Automatic Identification of Demand (aid, aid_cat)

See the AID wiki page for the full reference.

Classifies a time series into one of six demand types and flags stockouts, new products, and obsolete products. Port of R's greybox::aid() / aidCat().

import numpy as np
import matplotlib.pyplot as plt
from greybox import aid, aid_cat

rng = np.random.default_rng(42)

# Intermittent count demand: Poisson(0.7)
y = rng.poisson(0.7, 120).astype(float)
result = aid(y)
print(result)                       # human-readable summary
print(result.name)                  # e.g. "smooth intermittent count"
print(result.type.type1)            # "count" or "fractional" — R-style attribute access
print(result.type["type1"])         # dict-style fallback also works

# Detect injected stockouts and plot them
y2 = rng.poisson(3, 100).astype(float)
y2[40:50] = 0
result2 = aid(y2)
print(result2.stockouts.start, result2.stockouts.end)  # 1-based, [41] [50]
ax = result2.plot()                 # series + grey-shaded stockout span
plt.show()

# Apply to multiple series at once
series = {
    "a": rng.poisson(1, 80).astype(float),
    "b": rng.poisson(5, 80).astype(float),
    "c": rng.normal(10, 2, 80),
}
cat = aid_cat(series)
print(cat.types)        # 2x3 demand-category frequency table
print(cat.anomalies)    # counts of new / stockouts / old products
ax = cat.plot()         # 2x3 demand-category panel
plt.show()

The nested type and stockouts fields are typed dataclasses that support both result.stockouts.start (R-style attribute access) and result.stockouts["start"] (dict-style fallback).

Features

  • ALM (Augmented Linear Model): Likelihood-based regression with 26 distributions
  • Formula parser: R-style formulas (y ~ x1 + x2, log(y) ~ ., y ~ 0 + x1) with support for backshift operator
  • stepwise(): IC-based variable selection with partial correlations
  • CALM(): Combine ALM models based on IC weights
  • Forecast error measures: MAE, MSE, RMSE, MAPE, MASE, MPE, sMAPE, and more
  • Variable processing: xreg_expander (lags/leads), xreg_multiplier (interactions), temporal_dummy
  • Distributions: 27 distribution families with density, CDF, quantile, and random generation
  • Association: Partial correlations and measures of association
  • Diagnostics: Model diagnostics and validation
  • Smoothers: lowess and supsmu matching R's stats::lowess and stats::supsmu to machine precision
  • Demand identification: aid() and aid_cat() for automatic classification of demand series and stockout detection
  • Method comparison (RMCB): rmcb() for the Nemenyi/MCB test comparing forecasting methods, with "mcb" and "lines" plots

License

LGPL-2.1

About

greybox is developed and maintained by OpenForecast, a demand forecasting and inventory management consultancy. The package implements the methods we use in our consulting and teach in our training courses.

Metadata

Release files for greybox 1.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for greybox 1.0.9
File Size Uploaded
greybox-1.0.9.tar.gz 209.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for greybox 1.0.9
File
greybox-1.0.9-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
greybox-1.0.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
greybox-1.0.9-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
greybox-1.0.9-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
greybox-1.0.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
greybox-1.0.9-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
greybox-1.0.9-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
greybox-1.0.9-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
greybox-1.0.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
greybox-1.0.9-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
greybox-1.0.9-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
greybox-1.0.9-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
greybox-1.0.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
greybox-1.0.9-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
greybox-1.0.9-cp311-cp311-macosx_10_13_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.13+ x86-64 Details

Total release size: 8.5 MB

Release files / greybox-1.0.9.tar.gz

Download URL greybox-1.0.9.tar.gz
Size 209.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7b056c3428884d1049f9b7b69a0fa41397a1b6bc05be966e5801c0ab3ad041b0
BLAKE2b-256 checksum
How to use checksums
6d130a502de218be1e916cbdac53b8e89c7dbc634197a7448e5097216af53f01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp314-cp314-win_amd64.whl

Download URL greybox-1.0.9-cp314-cp314-win_amd64.whl
Size 714.3 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
b26c0a5fcb8fbc67fedaf827dab266938ad8693d98eeec9e94a62cdf013f667b
BLAKE2b-256 checksum
How to use checksums
17f0f944ebf6d0003e1725cfa4a97ffa368d19d171552b6e936fce9cbba0c25b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL greybox-1.0.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 547.0 kB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f076c53d05c60e24cb37c976174fb67304a4329524f0fa6546a0310f877bf321
BLAKE2b-256 checksum
How to use checksums
bd9f660a3368bea7c7e33b084527fe0288513baa0b5f002a058edb620b126d1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp314-cp314-macosx_11_0_arm64.whl

Download URL greybox-1.0.9-cp314-cp314-macosx_11_0_arm64.whl
Size 473.8 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4e9c1a3b8fdf7973948d74917aeb4ad59c7ea03e86658a1a78c71672e417ec16
BLAKE2b-256 checksum
How to use checksums
07473554f1732607591c0c7ec97a5f0d688cd1910c99147c890a19ce2f966793
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp313-cp313-win_amd64.whl

Download URL greybox-1.0.9-cp313-cp313-win_amd64.whl
Size 698.1 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
398342657bed428e003a638136932282e64d4ef8652af29b5a891538704fc0e4
BLAKE2b-256 checksum
How to use checksums
7cd5fb5486f3bfc045fdd5c46e74e84a38d71af619491847438ba6a62b3f6102
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL greybox-1.0.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 546.6 kB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
432434ccfbdf050fe6cfb2a50775f005549aea7a879682cfdc320a1956201fff
BLAKE2b-256 checksum
How to use checksums
cddda71ad60a9000481cb02ce8e8b668285616afab2557088966b246c22a9786
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp313-cp313-macosx_11_0_arm64.whl

Download URL greybox-1.0.9-cp313-cp313-macosx_11_0_arm64.whl
Size 473.2 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8828e27da7d64f1b7a0fac5b5cf1bca101d425c92244d9567448df27a39efb60
BLAKE2b-256 checksum
How to use checksums
9616730536e7502ffbde25ea80a9b13202bab92d75b2e2f12b9f768695a9adab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp313-cp313-macosx_10_13_x86_64.whl

Download URL greybox-1.0.9-cp313-cp313-macosx_10_13_x86_64.whl
Size 489.8 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
793bdcd7d4f685bfcaab55a39c59da3a6f235178c4fd4a33948722ebfeff3923
BLAKE2b-256 checksum
How to use checksums
aa7f208d45c1b938b6908da44e541918f11efe3b089bc904bc2c0561643c009a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp312-cp312-win_amd64.whl

Download URL greybox-1.0.9-cp312-cp312-win_amd64.whl
Size 697.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
d50dce6d0c078c482425620c40ffcea9fc78425ed8e12598e8e851e29ac6bff0
BLAKE2b-256 checksum
How to use checksums
057162e8a9055874e5500bf91ff66d4bfcd30d631b1af0d40b28eb2d3f569765
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL greybox-1.0.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 546.4 kB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9fede3fd7c52fe909158274d75617072c7da47c17f13ee71b463dd3601bf5b0f
BLAKE2b-256 checksum
How to use checksums
4560cf194f1d74e2a474ce06d1c972ed867870e2880343d9eb40ea9b071bc7c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp312-cp312-macosx_11_0_arm64.whl

Download URL greybox-1.0.9-cp312-cp312-macosx_11_0_arm64.whl
Size 473.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
69b82f188db8119764c18be0051466983460b4282ef3b5719c1fab0754103a62
BLAKE2b-256 checksum
How to use checksums
2f89a0236e3b13abb7fa8c92ff6f33c6b9c66d81a2a97f61f200191a7f7c9e5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp312-cp312-macosx_10_13_x86_64.whl

Download URL greybox-1.0.9-cp312-cp312-macosx_10_13_x86_64.whl
Size 489.5 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
e8e6674c354ebc11368866693cb17967cee0974baea254a6636f7c80ff728336
BLAKE2b-256 checksum
How to use checksums
f312616de8292627ec9d728c2d9bb328d5f7f1bcb3e1db5d5c98f3538f1e7db2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp311-cp311-win_amd64.whl

Download URL greybox-1.0.9-cp311-cp311-win_amd64.whl
Size 687.7 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
d44a79d50258c5ebdd6422298f0b7e3a2b7943c8ebb0d7089ae8528d223e55d3
BLAKE2b-256 checksum
How to use checksums
bc030815850a8493f7f7d79ffede3fad34df894ab895a5ccc718b838a5cabb7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL greybox-1.0.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 538.6 kB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
69ebc5216459e122095a580c7fab585e5ba5cdff604e24045602886663f42649
BLAKE2b-256 checksum
How to use checksums
e477da7af2a7d3f1a80526c6ab8ce9c67b89584f4d7c37f3c7e010b7c7e929f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp311-cp311-macosx_11_0_arm64.whl

Download URL greybox-1.0.9-cp311-cp311-macosx_11_0_arm64.whl
Size 466.2 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
11207bb7a351a095c95f146e68f2ffc1cc67010fee58b26a0bd6d0971bb411b8
BLAKE2b-256 checksum
How to use checksums
7a730f748093a45d49b925322ba6471bbcd3dab40b66f2ca24ac379aaeda3f50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / greybox-1.0.9-cp311-cp311-macosx_10_13_x86_64.whl

Download URL greybox-1.0.9-cp311-cp311-macosx_10_13_x86_64.whl
Size 480.5 kB
Tags CPython 3.11 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
01b14a28f7bca7d72c82eda85ac3629f86de68decbd15b38fb8af39fccd77ddb
BLAKE2b-256 checksum
How to use checksums
a1fb70659ce14d45f1d84724d74238a6e9961abe5f0342cf5814c97955275fa9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.9 This release

16 release files

1.0.7

16 release files

1.0.6

16 release files

1.0.5

16 release files

1.0.4

16 release files

1.0.3

17 release files

1.0.2

17 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page