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.1

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.1
File Size Uploaded Provenance
glmstar-0.3.1.tar.gz 8.3 MB Without provenance Details

Built distributions (wheels)

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

Download URL glmstar-0.3.1.tar.gz
Size 8.3 MB
Tags Source
SHA-256 checksum
How to use checksums
03cd78392214d51e383b6c4cb8ad9d6fcce9c830fb5696459369e400cb677a49
BLAKE2b-256 checksum
How to use checksums
e8f1c359f32eccd65612e451eb555ad7492cb6fa3bca9c60d0ac8102a8f938e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
9a5712f60b82d896b0a3de55093622e44c0ea35b27556e358051a5934e40ae7b
BLAKE2b-256 checksum
How to use checksums
fd4078dcd6a116c7256e6b1923e3f2eba0ebac4de2feff902e7fef3568850d34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
7e4a92eb3d82608049d3bab28ac7dcbefd9fb8eff4a1a1c260eec92bebc1bda3
BLAKE2b-256 checksum
How to use checksums
902c4fb6a729678d3c457dc9c402dd369cfa94e9d6b27aacd4ced02c7ead608f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
588fca1f9c936ffc2834e311074df56bf84356d6720aca23b16b328385b9d6b3
BLAKE2b-256 checksum
How to use checksums
14b17e4a0707e3e8c8f6f23f2ca4db7c16f47026567580b6b4929d2d92d15473
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
a9902f7bedcf99ab2002b50e8539c439d6962983bfe3ed9bae1b9d60022c3c68
BLAKE2b-256 checksum
How to use checksums
c878dbe9f107db224c2324e3955c8dcdea5216d5b5574ebc4a7d5705c4fb5d22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
c7d63d3bde9dff8ddc78d124c2f319647dc931053b39e25d40615e134a8c758e
BLAKE2b-256 checksum
How to use checksums
4b0aef252df39179c1d5c511a1ff0d820bd9022ebf60311f9c12a4d8970e537c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-cp314-cp314-macosx_11_0_arm64.whl
Size 997.5 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cffe79b0681c0553e36750ac0d05411b2f90ed2d84436eed6d9b34dea3334246
BLAKE2b-256 checksum
How to use checksums
dbbb6d0f80347a82a0e1c5be2bc80b6f7fb5f0cb0992bc0c9589aeb58dc2ff1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
c875f618bd08606614c628a063a86c1005bdc8ff6caef0b0947d48552219834a
BLAKE2b-256 checksum
How to use checksums
27f2a70ff85080e51e0cbed23c976285a2231a2e3face521204a3167d20223e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
6585c173bd5ab4b56bcf53ef1cdaaad295eb422a7c2a824c4585ad17ae6b39ce
BLAKE2b-256 checksum
How to use checksums
0cacd10e48d5856dab33e00a9db20fc24526c9721c6fc90bdbdf2941aa9a977d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
Size 996.2 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ce48db6cccbdafd45ad788bfafa8820ed87e2133c1a091f6e47cf37e3245c85f
BLAKE2b-256 checksum
How to use checksums
9a7cf2f8880362ef42ffd6e6de1ed01a833a766e14dd3f27288780bc3e5a8c20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
1a3cc230626430c82c40c320ff2064951767599fcc608afac2d2951984393910
BLAKE2b-256 checksum
How to use checksums
c006ed8ab043733dbe8dde4e08be215168b642e0eab799ed11a6bc51974007e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
32bc0a6e99934dd4c29ae92bc4242e7d4814de51b368067129d1184650c7190f
BLAKE2b-256 checksum
How to use checksums
0a84838dca52bf13a4ad7df8e5939bfa9fd8497220e41889ad6d5095939f4d87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Size 996.0 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d6e101b1309b777045aca608635017f0c9e6ba85f91fa61bccb9d26ae55caa9e
BLAKE2b-256 checksum
How to use checksums
f780d1af75dffb20849d73927667bdf8472da4029354a9cf9874ac625ecb90fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
9431229520ea4338623922d19ff634c157bb7d40218bdbfcd15b59a599ce7371
BLAKE2b-256 checksum
How to use checksums
4ca555dad6437347c4a3a981a12499a1728915221baa7a554635687a85fbd23f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
46d59c89904ea1afab6a67e9cf9d6ad957231b1285f04c24584f70f6d57aa541
BLAKE2b-256 checksum
How to use checksums
8fbb6b4637c843378e6b5d52e501039d66e8e5a8dcfbe02f1d09d3b025ff820a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Size 986.2 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
32ac3e5ad44e3c7d0c8f40cc0f5c539c1fcd0ab6fea12dd4b9cecaf88dca89e3
BLAKE2b-256 checksum
How to use checksums
2d4614808f90c83f2e57506e32821ec6cc26967158d8ab6e85c6f5088c3b7e1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
95dd89213b2da88f63aa1d222ac5551adeda3bfaeaa612844ce9603f20012cba
BLAKE2b-256 checksum
How to use checksums
7af28e841f9ecc92b9780c457d9a4540e68cd297636a0e8ecf19f2540720939d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-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
3b98a49c675690c9206d7ccad4ce394cebc703f0a495847338c69c79a3b2dcee
BLAKE2b-256 checksum
How to use checksums
de256b119600a107d75b30eea4c8ad91a0ab3ee1509331fc1bf406f0dc51f4d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

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

Download URL glmstar-0.3.1-cp310-cp310-macosx_11_0_arm64.whl
Size 979.5 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bb4062ca8ca6b504c5e4d569d1109cf9186eab7dbd82ae86ec13029fea2433bb
BLAKE2b-256 checksum
How to use checksums
eb562dc8258887b633d6d9ed19a24cc8747cacc0a18b7152ee3ca669f068331f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Security for glmstar 0.3.1

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