Skip to main content

glmstar

A Python implementation of the glmnet algorithm for fitting generalized linear models via penalized maximum likelihood. This package provides fast and efficient regularization paths for linear, logistic, multinomial, Poisson, and Cox regression models.

Features

  • Multiple GLM Families: Support for Gaussian (linear), Binomial (logistic), Multinomial, Poisson, and Cox regression
  • Elastic Net Regularization: Combines L1 (Lasso) and L2 (Ridge) penalties with mixing parameter α
  • Fast Path Algorithms: Efficient computation of regularization paths using coordinate descent
  • Cross-Validation: Built-in cross-validation for optimal λ selection
  • Prediction Methods: Interpolation and prediction at arbitrary λ values
  • sklearn Compatibility: Follows scikit-learn API conventions
  • C++ Backend: High-performance C++ implementation with pybind11 bindings

Installation

Get the source

The C++ code depends on two git submodules, Eigen and glmnetpp, so clone recursively:

git clone --recursive https://github.com/jonathan-taylor/pyglmnet.git
cd pyglmnet

# Or, if already cloned without submodules
git submodule update --init --recursive

A C++17 compiler is required to build the extension modules.

uv sync          # editable install plus build and test tools (the `dev` group)
uv run pytest tests --test-size=small

The project uses meson-python, whose editable installs recompile the C++ extensions on import. For that reason pyproject.toml disables build isolation for glmstar under uv, so the build tools (meson, ninja, pybind11, ...) must live in the project environment -- uv sync takes care of this. To target an already-activated venv other than .venv, use uv sync --active.

If you prefer uv pip, install the build tools first:

uv pip install meson-python meson ninja pybind11 setuptools_scm
uv pip install -e .      # or `uv pip install .` for a regular install

Running uv pip install . without them fails with No module named 'mesonpy'.

Install with pip

pip install .

For an editable install with pip, again install the build tools into the environment and disable build isolation:

pip install meson-python meson ninja pybind11 setuptools_scm
pip install --no-build-isolation -e .

Troubleshooting

If the build fails with 'pybind11/pybind11.h' file not found, a stale meson build directory (e.g. build/cp310) is pointing at a temporary build environment that no longer exists. Delete it and reinstall:

rm -rf build/cp*
uv sync

Quick Start

import numpy as np
from glmnet import GaussNet, LogNet
from sklearn.datasets import make_regression, make_classification

# Linear Regression
X, y = make_regression(n_samples=100, n_features=20, n_informative=5, random_state=42)
fit_gaussian = GaussNet().fit(X, y)

# Plot coefficient paths
ax = fit_gaussian.coef_path_.plot()
ax.set_title('Linear Regression Coefficient Paths')

# Logistic Regression
X, y = make_classification(n_samples=100, n_features=20, n_informative=5, random_state=42)
fit_logistic = LogNet().fit(X, y)

# Cross-validation
cvfit = LogNet().fit(X, y)
_, cvpath = cvfit.cross_validation_path(X, y, cv=5)
ax = cvpath.plot(score='Binomial Deviance')

Available Models

  • GaussNet: Linear regression (Gaussian family)
  • LogNet: Logistic regression (Binomial family)
  • MultiClassNet: Multinomial regression
  • FishNet: Poisson regression
  • MultiGaussNet: Multi-response linear regression
  • CoxNet: Cox proportional hazards model

Key Features

Elastic Net Regularization

# Lasso (α=1, default)
fit_lasso = GaussNet(alpha=1.0).fit(X, y)

# Ridge (α=0)
fit_ridge = GaussNet(alpha=0.0).fit(X, y)

# Elastic Net (α=0.5)
fit_elastic = GaussNet(alpha=0.5).fit(X, y)

Cross-Validation

# Perform cross-validation
cvfit = GaussNet().fit(X, y)
_, cvpath = cvfit.cross_validation_path(X, y, cv=5)

# Get optimal lambda
lambda_min = cvpath.index_best['Mean Squared Error']
coef_min, intercept_min = cvfit.interpolate_coefs(lambda_min)

Prediction and Interpolation

# Predict at specific lambda values
predictions = fit_gaussian.predict(X_new, interpolation_grid=[0.1, 0.05])

# Interpolate coefficients
coef, intercept = fit_gaussian.interpolate_coefs(0.5)

Weights and Offsets

import pandas as pd

# Create DataFrame with response, weights, and offsets
Df = pd.DataFrame({
    'response': y,
    'weight': sample_weights,
    'offset': offsets
})

# Fit with weights and offsets
fit = GaussNet(response_id="response", 
               weight_id="weight", 
               offset_id="offset").fit(X, Df)

Dependencies

  • Core: numpy, scipy, pandas, scikit-learn, joblib, statsmodels, coxdev, tqdm
  • Build: meson-python, meson, ninja, pybind11, setuptools_scm
  • Optional: matplotlib (plotting), pytest (tests)

Development

Building from Source

See Installation; uv sync builds the C++ extensions in place and rebuilds them automatically on import after source changes.

Running Tests

# Run all tests (or prefix with `uv run`)
pytest tests/

# Quicker subset
pytest tests --test-size=small

# Run specific test suites
pytest tests/paths/
pytest tests/compare_R/

Saved Results in the Docs

The calibration experiments in the docs' Inference chapter are too slow to run when the docs are built, so they are run locally and their results saved in docs/results/*.csv, each with a header recording the commit and the package versions it was computed with. To recompute all of them, commit your changes, then, from the top of the repository, with the development install (uv sync, or pip install -e . and the doc extra),

uv run python docs/experiments.py --all    # or: python docs/experiments.py --all
git add docs/results && git commit -m "docs: recompute the saved results"

python docs/experiments.py probit_regression recomputes one page. See docs/experiments.py for the conventions.

When changing versions (a glmstar release, a new lassoinf or other dependency pin, or the src/glmnetpp submodule), recompute these results, so that the docs show results from the code they describe.

Citation

If you use this package in your research, please cite:

Friedman, J., Hastie, T., & Tibshirani, R. (2010). 
Regularization paths for generalized linear models via coordinate descent. 
Journal of Statistical Software, 33(1), 1-22.

License

This project is licensed under the BSD-3-Clause License - see the LICENSE.txt file for details.

Authors

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

Acknowledgments

This package is based on the original R glmnet package by Jerome Friedman, Trevor Hastie, Rob Tibshirani, and others. The C++ implementation uses the Eigen library for linear algebra operations.

Metadata

Release files for glmstar 0.3.2

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

Source distribution (sdist)

Source distribution for glmstar 0.3.2
File Size Uploaded Provenance
glmstar-0.3.2.tar.gz 8.3 MB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for glmstar 0.3.2
File
glmstar-0.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
glmstar-0.3.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
glmstar-0.3.2-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
glmstar-0.3.2-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
glmstar-0.3.2-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
glmstar-0.3.2-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
glmstar-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
glmstar-0.3.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
glmstar-0.3.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
glmstar-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
glmstar-0.3.2-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
glmstar-0.3.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
glmstar-0.3.2-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
glmstar-0.3.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
glmstar-0.3.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
glmstar-0.3.2-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
glmstar-0.3.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
glmstar-0.3.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 34.8 MB

Release files / glmstar-0.3.2.tar.gz

Download URL glmstar-0.3.2.tar.gz
Size 8.3 MB
Tags Source
SHA-256 checksum
How to use checksums
9b65774aaee18414624d2bd5e12049486b50d7f85f18430c01abfd147bde9780
BLAKE2b-256 checksum
How to use checksums
12cb50575b6bd975ee245e3999e0ccb37de44d7360556d1c9c092fd3350a915f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL glmstar-0.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
bf7ac2ee3c68836219b0c01e2fca61f19481831984badbb2cffcf91376fa8bef
BLAKE2b-256 checksum
How to use checksums
b5e46e4d3b7b645734538c2496cdb5f82443b74ad6bf34a8e9046a9dd0da85ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL glmstar-0.3.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cd47244a76e7042fec126eaa8286455191e21cab1e1f37d00c03f0c9bd01daf0
BLAKE2b-256 checksum
How to use checksums
a95310ea0bffb304daa8959df8e81b50b46ba9cc4e3f355f2dbef028baeca8b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp314-cp314t-macosx_11_0_arm64.whl

Download URL glmstar-0.3.2-cp314-cp314t-macosx_11_0_arm64.whl
Size 1.0 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8bf342bc6c0aecd8dc51df40e4954f454b6c37118098547d72f1c164787d515e
BLAKE2b-256 checksum
How to use checksums
27adf6edf49bcac8041ff8cde2586ebbca781f98c1cd7502674fa80457ec0acc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL glmstar-0.3.2-cp314-cp314-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
102094b214ec235b5948e0d26e3eaf4e9203985d340e9f3745d793844dbbd1e7
BLAKE2b-256 checksum
How to use checksums
41296134726bd1420e8ede9647fa4f898cfcd8e4a89cde684df87257a4656341
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL glmstar-0.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f2309b11c3e6d1fe2e712d25f7bb74aca1e77b7a446a757e745a19d56af7148f
BLAKE2b-256 checksum
How to use checksums
f2ff5ec8e18f62983af6eb4c89fd09d046d3fb3179ce6e888130fafdd12f675c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp314-cp314-macosx_11_0_arm64.whl

Download URL glmstar-0.3.2-cp314-cp314-macosx_11_0_arm64.whl
Size 999.3 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1bb8331e48063850587294c88ab555765dcf3d3982b1eb36571b2faed97c1f98
BLAKE2b-256 checksum
How to use checksums
fc528256876df6e33f17aac44372c16a4039cea74310304d9340dea4db51c568
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL glmstar-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
10d2a487c1fca1f82ec066177a11675d098945996c52e7eebfc1228833df6958
BLAKE2b-256 checksum
How to use checksums
cd743b8936178668c2f0367d90c7558f456ef9840d6323f849768c8e545e6ffa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL glmstar-0.3.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
254423be6bcac1e1baa7efbc97f87d1ca4979c6eb3c16b3ae603bb4944a67116
BLAKE2b-256 checksum
How to use checksums
8b6dce23e4f904b0bff24fad2b1ec827bc9aa247810daeede52703d860248ec5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL glmstar-0.3.2-cp313-cp313-macosx_11_0_arm64.whl
Size 998.0 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
50ba4abe07635baa253a75e6a4349b3b8dd35c11b9a76dcff4d78ac1f7dd14e6
BLAKE2b-256 checksum
How to use checksums
54c3761624830f9d49de433d0f2687012dd5cd51e1e7732d6182b138bcb445a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL glmstar-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3d5effc9abddf3dc31d448884757299023a54da625bccbb75b770bc7216d5dfe
BLAKE2b-256 checksum
How to use checksums
bd78e55b5777656e3b205821330df5b6ad2ebe26d43bf34b52b80f0994c05d22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL glmstar-0.3.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9a9e469d33e259db117ead48ed3acbe7abe034ec7b933a80b2900c87b2a13792
BLAKE2b-256 checksum
How to use checksums
6614f962e36a5a27bcbfb5e5c02bd36ba1e56e67c25769f6d3733c12dda5e474
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL glmstar-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Size 997.7 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f5cf5fdb3b594e8c35e9ea2557a6c89267c7191498b8221158f423001efb93d6
BLAKE2b-256 checksum
How to use checksums
76e215872547139587ea5ddfa0dbfc42307f06ffbac8ef8cb7f7b4c8de82f1cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL glmstar-0.3.2-cp311-cp311-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
c3f7b1378dfe997b8178d8c470a91e201c52a599d5eec5c2a5c9947488d00a60
BLAKE2b-256 checksum
How to use checksums
fd28ccf610b1993e124cd8dae45c566dc46877784bb3ee54c3ab65159863b4a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL glmstar-0.3.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ce6b51551aaf2cc972708c7c86b0e10a2696eec5002ecd95c020e0134b83b325
BLAKE2b-256 checksum
How to use checksums
a92cc5a1018cb112dad848077648b37367de8ee9f4a0975bda4a8a1730334e67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL glmstar-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
Size 987.9 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a2eabbabe78615f46c10d2289b158d195a8fa97594b4e08b4fe2c097a82a2a19
BLAKE2b-256 checksum
How to use checksums
bae7c3f07d78da419d7c4fd00d683ebd8c6f430f8af093ffd06016931e25bc30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL glmstar-0.3.2-cp310-cp310-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
8c7ebe962e6a6f2910fb8e1d3ac0fcb6784fa6dd075dd5c9e24f7c5eefc5b39b
BLAKE2b-256 checksum
How to use checksums
084dd3e6783f2126893bde301b8e58d78b7fd34ec90a75c3147f14a1165f2245
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL glmstar-0.3.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
075d53f060cf2fbf9bbf5ee1a105b681748c7ba6ccc066a5cbf9a4e897907c41
BLAKE2b-256 checksum
How to use checksums
ef3636153c71f63b9b25a44938f8cf95f2f2855fe62c9687088af68f2f1488cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / glmstar-0.3.2-cp310-cp310-macosx_11_0_arm64.whl

Download URL glmstar-0.3.2-cp310-cp310-macosx_11_0_arm64.whl
Size 981.3 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3ee884cc34dd1813c8d3e2efefe49c7ffa90f64c222fd959406e4acbcb97a736
BLAKE2b-256 checksum
How to use checksums
8abafe5c966c5583e2ba9b73cf7144f0b1f13fede513d682a83d4d54a9421783
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Security for glmstar 0.3.2

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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