Skip to main content

ReHLine-Python: Efficient Solver for ERM with PLQ Loss and Linear Constraints

PyPI version License: MIT Documentation Paper Downloads CI Tests

Fast, scalable, and scikit-learn compatible optimization for machine learning

ReHLine-Python is the official Python implementation of ReHLine, a powerful solver for large-scale empirical risk minimization (ERM) problems with convex piecewise linear-quadratic (PLQ) loss functions and linear constraints. Built with high-performance C++ core and seamless Python integration, ReHLine delivers exceptional speed while maintaining ease of use.

See more details in the ReHLine documentation.

✨ Key Features

  • 🚀 Blazing Fast: Linear computational complexity per iteration, scales to millions of samples
  • 🎯 Versatile: Supports any convex PLQ loss (hinge, check, Huber, and more)
  • 🔒 Constrained Optimization: Handle linear equality and inequality constraints
  • 📊 Scikit-Learn Compatible: Drop-in replacement with GridSearchCV, Pipeline support
  • 🐍 Pythonic API: Both low-level and high-level interfaces for flexibility

📦 Installation

Quick Install

pip install rehline

Release wheels and CI cover standard CPython 3.10–3.14 on these platforms:

Operating system Architecture Wheel family
Linux with glibc x86-64 manylinux
macOS (Apple Silicon) ARM64 macosx
Windows x86-64, with 64-bit Python win_amd64

We do not publish wheels for 32-bit systems, Alpine/musl, Intel macOS, Linux ARM, Windows ARM, or free-threaded Python. Alpine/musl lacks compatible scikit-learn wheels, and the extension has not been validated for free-threaded Python. Intel macOS and the other ARM targets are outside the current CI matrix. Source distributions remain available; builds on other targets are not covered by the release tests.

Development Install

For contributors and developers:

git clone https://github.com/softmin/ReHLine-python.git
cd ReHLine-python
pip install -e ".[test]"

To run tests:

pytest tests/

🚀 Quick Start

Sparse input

The solver and estimators accept SciPy sparse matrices and two-dimensional sparse arrays for X and constraint matrix A, including CSR, CSC and COO. Each may independently be dense or sparse. Training normalizes sparse inputs to float64 CSR.

from scipy.sparse import csr_matrix
from rehline import plq_Ridge_Classifier

X = csr_matrix([[1., 0., 0.], [0., 1., 0.], [1., 0., 1.], [0., 1., 1.]])
model = plq_Ridge_Classifier(loss={"name": "svm"}, C=0.1, tol=1e-8, max_iter=100000)
model.fit(X, [1, -1, 1, -1])
prediction = model.predict(X)

Sparse X also works with quantile regression, ElasticNet, multiclass models, CQR, warm starts, C paths and to_inference() snapshots. Intercept augmentation preserves sparsity. In sklearn pipelines, use StandardScaler(with_mean=False).

Sparse A works through ReHLine_solver, ReHLine, the PLQ Ridge/ElasticNet estimators, custom constraints, and constrained C paths. Constraints retain the convention A @ beta + b >= 0. For example:

from scipy.sparse import eye

# Nonnegative feature coefficients, without constructing a dense identity.
model = plq_Ridge_Classifier(loss={"name": "svm"}, A=eye(X.shape[1]),
                             b=[0.] * X.shape[1], tol=1e-8, max_iter=100000)
model.fit(X, [1, -1, 1, -1])

Constraint normalization, dual recovery and CD updates preserve sparse storage. Nonnegativity (nonnegative / >=0) and monotonicity (monotonic / monotonicity, including decreasing=True) always construct CSR constraints, even for dense X. Their storage grows linearly with the number of features. Mixed constraint blocks stay sparse. Fairness computes dense covariance rows without centering the full design. With fit_intercept=True, a custom A with d columns constrains feature coefficients; d+1 columns constrain the features and actual intercept, including intercept_scaling.

Loss parameters, b, rho, coefficients and dual variables remain dense. Dimensions and stored-entry counts must fit in int32; representable int64 indices are converted safely. Conversion and native binding may copy sparse buffers using storage proportional to nnz. The optional precision-floor polish_primal step may densify a small active constraint submatrix, capped at 1,000,000 entries for sparse A; above this size it continues CD without that correction. The objective-gap and feasibility stopping requirements are unchanged.

Open In Colab

ReHLine provides plq_Ridge_Classifier and plq_Ridge_Regressor that work seamlessly with scikit-learn:

from rehline import plq_Ridge_Classifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler

# Generate dataset
X, y = make_classification(n_samples=1000, n_features=20, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# Simple usage
clf = plq_Ridge_Classifier(loss={'name': 'svm'}, C=1.0)
clf.fit(X_train, y_train)
print(f"Accuracy: {clf.score(X_test, y_test):.3f}")

# Use in Pipeline
pipeline = Pipeline([
    ('scaler', StandardScaler()),
    ('classifier', plq_Ridge_Classifier(loss={'name': 'svm'}))
])
pipeline.fit(X_train, y_train)

# Hyperparameter tuning with GridSearchCV
param_grid = {
    'C': [0.1, 1.0, 10.0],
    'loss': [{'name': 'svm'}, {'name': 'sSVM'}]
}
grid_search = GridSearchCV(plq_Ridge_Classifier(loss={"name": "svm"}), param_grid, cv=5)
grid_search.fit(X_train, y_train)
print(f"Best params: {grid_search.best_params_}")

See more details in ReHLine with Scikit-Learn.

Low-Level API for Custom Problems

from rehline import ReHLine
import numpy as np

# Generate sample data
np.random.seed(42)
X = np.random.randn(100, 5)
y = np.random.choice([-1, 1], size=100)
n, d = X.shape
C = 1.0

# Define custom PLQ loss parameters
clf = ReHLine()
# Set custom U, V matrices for ReLU loss
# and S, T, tau for ReHU loss
## U
clf._U = -(C*y).reshape(1,-1)
## V
clf._V = (C*np.ones(n)).reshape(1,-1)

# Set custom linear constraints A*beta + b >= 0
X_sen = X[:,0] - X[:,0].mean()
tol_sen = 0.1
clf._A = np.repeat([X_sen @ X], repeats=[2], axis=0) / n
clf._A[1] = -clf._A[1]
clf._b = np.full(2, tol_sen)

clf.fit(X)

See more detailed in Manual ReHLine Formulation.

🎯 Use Cases

ReHLine excels at solving a wide range of machine learning problems:

Problem Description Key Benefits
Support Vector Machines Binary and multi-class classification 100-400× faster than CVXPY solvers
Fair Machine Learning Classification with fairness constraints Bounds sensitive-attribute/score covariance
Quantile Regression Robust conditional quantile estimation 2800× faster than general solvers
Huber Regression Outlier-resistant regression Superior to specialized solvers
Sparse Learning Feature selection with L1 regularization Scales to high dimensions
Custom Optimization Any PLQ loss with linear constraints Flexible framework for research

⚡ Performance Benchmarks

ReHLine delivers exceptional speed compared to state-of-the-art solvers. Here are speed-up factors on real-world datasets:

Task vs. ECOS vs. MOSEK vs. SCS vs. Specialized Solvers
SVM 415× faster ∞ (failed) 340× faster 4.5× vs. LIBLINEAR
Fair SVM 273× faster 100× faster 252× faster ∞ vs. DCCP (failed)
Quantile Regression 2843× faster ∞ (failed) ∞ (failed) —
Huber Regression ∞ (failed) 452× faster ∞ (failed) 2.4× vs. hqreg
Smoothed SVM — — — 1.6-2.3× vs. SAGA/SAG/SDCA/SVRG

Note: "∞" indicates the competing solver failed to produce a valid solution or exceeded time limits. Results from NeurIPS 2023 paper.

Reproducible Benchmarks (powered by benchopt)

All benchmarks are reproducible via benchopt at our ReHLine-benchmark repository.

The current quick/dense suites and shared objective checks are maintained in ReHLine-benchmarking. See test setup for the Python repository's external test dependency.

Problem Benchmark Code Interactive Results
SVM Code 📊 View
Smoothed SVM Code 📊 View
Fair SVM Code 📊 View
Quantile Regression Code 📊 View
Huber Regression Code 📊 View

🤝 Contributing

We welcome contributions! Whether it's bug reports, feature requests, or code contributions:

📚 Citation

If you use ReHLine in your research, please cite our NeurIPS 2023 paper:

@inproceedings{dai2023rehline,
  title={ReHLine: Regularized Composite ReLU-ReHU Loss Minimization with Linear Computation and Linear Convergence},
  author={Dai, Ben and Qiu, Yixuan},
  booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
  year={2023}
}

🔗 ReHLine Ecosystem

🏠 Core Projects

📊 Resources

Source distributions include Eigen 5.0.1 headers and licenses, so compiling a published source package does not require an Eigen download. A C++ compiler and the Python build dependencies are still required.

Git checkouts do not include Eigen. Editable installs, wheel builds and source distribution builds automatically download the pinned release when needed and check its SHA-256 and individual file checksums against tools/eigen-5.0.1.json. No separate preparation command is required. The files in vendor/eigen-5.0.1/ are ignored by Git and reused after verification on later builds. For offline preparation, use python tools/prepare_eigen.py --archive /path/to/eigen-5.0.1.zip; the same checksums are required. Running python tools/prepare_eigen.py without --archive is an optional way to download Eigen ahead of time. Builds from published source packages use only the bundled headers and do not download Eigen, including when their contents are missing or corrupted.

Set EIGEN3_INCLUDE_DIR to a local directory containing Eigen/Core to compile against a different local Eigen installation without preparing the default headers. Creating an sdist still prepares the pinned headers automatically so the resulting package remains self-contained, regardless of this override. To build an sdist:

python -m build --sdist

The sdist command verifies all pinned headers and licenses before packaging. An incomplete or modified existing copy fails verification instead of being silently reused. CI exercises automatic preparation and rebuilds the sdist with Python network access disabled.

Metadata

Release files for rehline 0.1.4

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

Source distribution (sdist)

Source distribution for rehline 0.1.4
File Size Uploaded
rehline-0.1.4.tar.gz 4.9 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for rehline 0.1.4
File
rehline-0.1.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
rehline-0.1.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
rehline-0.1.4-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
rehline-0.1.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
rehline-0.1.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
rehline-0.1.4-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
rehline-0.1.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
rehline-0.1.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
rehline-0.1.4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
rehline-0.1.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
rehline-0.1.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
rehline-0.1.4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
rehline-0.1.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
rehline-0.1.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
rehline-0.1.4-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 11.0 MB

Release files / rehline-0.1.4.tar.gz

Download URL rehline-0.1.4.tar.gz
Size 4.9 MB
Tags Source
SHA-256 checksum
How to use checksums
dab0785838583d73be8ffe369d1016cc95df420838f63f9f403f59965794734b
BLAKE2b-256 checksum
How to use checksums
27efe8dfa27264d0f278d450a7b10c856bfe7c4263a63131db73792a7146c639
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp314-cp314-win_amd64.whl

Download URL rehline-0.1.4-cp314-cp314-win_amd64.whl
Size 322.3 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
4e7750b4c7a7b955d3355b94962a1bec09103c7100472303a6db8ba6ef018afe
BLAKE2b-256 checksum
How to use checksums
ee8a6003a47402ddaf246937ccc5c528d2f0502faa763da9218ab79fd7855196
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL rehline-0.1.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 428.2 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
dc500dca8409949cbe65091b76ada8fe9802d4b0ca138b711488c9019c2c92f0
BLAKE2b-256 checksum
How to use checksums
44e0febe2573c3141fbf226b2007e16629efa7809f595c830f0d4bfbbc6d7114
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp314-cp314-macosx_11_0_arm64.whl

Download URL rehline-0.1.4-cp314-cp314-macosx_11_0_arm64.whl
Size 472.6 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ecb193d2cba6274c9ac96a912d26e2a0efff235d0ea161cb4f3c75e09e8703f2
BLAKE2b-256 checksum
How to use checksums
668ec3e565aefada111cc5a447f752ff9d033566bc2bd7a7303d6e244c2018fc
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp313-cp313-win_amd64.whl

Download URL rehline-0.1.4-cp313-cp313-win_amd64.whl
Size 314.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
441da0f77feb8d95304e4590e7026f02ff37a7c95db686d352bb6d632b2b37df
BLAKE2b-256 checksum
How to use checksums
787112a1f13ebe9bc7b77e79bbea4ffdd7458515b957eb0f22a8ded7b348158b
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL rehline-0.1.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 427.9 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c6d60b132f1a675871e943e4189dd7a84b7b93d7867e64cb9494d1ad42b63bee
BLAKE2b-256 checksum
How to use checksums
1c7f9debcaf757fcb8c0d72716a0b6711221cd108b66291717c6018bbe563dd3
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp313-cp313-macosx_11_0_arm64.whl

Download URL rehline-0.1.4-cp313-cp313-macosx_11_0_arm64.whl
Size 472.2 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
dfc54059f3f370b3fbc2e649e60d3b710c3850b5ee02e5b01321fd10f70c963f
BLAKE2b-256 checksum
How to use checksums
3771a861eeadc20af3c4cfb9d524a7939c3d61763f7ccbc09fe8c7c861b3f89a
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp312-cp312-win_amd64.whl

Download URL rehline-0.1.4-cp312-cp312-win_amd64.whl
Size 314.8 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
9527d8086293fc7178c67b37be05d9228422edd2ca8120d1cd98cd7be6bcb979
BLAKE2b-256 checksum
How to use checksums
0cfe6e170222a9acdf405d02a5daea0e508dd2fc293fa54519ebb36500719ad5
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL rehline-0.1.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 427.9 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
04d5c4fc931f050ebc884a93b49b05e795c969126a5529e4205012911174d6b5
BLAKE2b-256 checksum
How to use checksums
07352fa7ca68f2920f006a58fc08aa8d0d6095fe364c14554c1f9d596ddc5904
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp312-cp312-macosx_11_0_arm64.whl

Download URL rehline-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Size 472.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
01b06ff54ec4b30f20601ce3b1c3ea11f9d24c55ee16b0a900dcdcd81dc79c8a
BLAKE2b-256 checksum
How to use checksums
cc1ceac2fb032a4e5c6f464516c22d18d623ef9bf3a864928fb165ec76edbf6f
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp311-cp311-win_amd64.whl

Download URL rehline-0.1.4-cp311-cp311-win_amd64.whl
Size 312.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
f5c473bcc1bbd14750eda451bfe0372f3a57d5924988e0dbf11fde32a7fc27c8
BLAKE2b-256 checksum
How to use checksums
f4bb8ed36871cca7491daece660c25a93db1ed587704a69abda70ce80dd9a962
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL rehline-0.1.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 425.8 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
97ccd5fb6c35d944df34afad4afd09adf038bd0d944ea6036e70bbfa57473ea8
BLAKE2b-256 checksum
How to use checksums
d5af998ea135142eb53c0a0ffdab6cabba3fa9182ebdfa66e60fe19cdb8b2132
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp311-cp311-macosx_11_0_arm64.whl

Download URL rehline-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Size 470.1 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8165d19536ebdfe0673ed3534930814e3eb68d250a2b5753ab403e19d98d72ce
BLAKE2b-256 checksum
How to use checksums
cc66a9ba8d36ab7566d4b5595574654a9deda6e3d93014fff6b52b62f6e2bef3
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp310-cp310-win_amd64.whl

Download URL rehline-0.1.4-cp310-cp310-win_amd64.whl
Size 311.3 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
2ed11f01a13f04ac5680b1306334e3f54eececb97fbb635f28d90edf4855b542
BLAKE2b-256 checksum
How to use checksums
170d5a92666db78ed1fb06c0477870c80fd117d1c97c8219671fce4f6496de06
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL rehline-0.1.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 425.2 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f5050d4c469da84f02e7dd496b9d0a89bb8d3405b9b6b6d8fe1b928e16a06ff8
BLAKE2b-256 checksum
How to use checksums
df450734dbfc8521833f09d347c01ab3fc55c5cb92d8b0a39c0ae09fdd143222
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 Sep 30, 2026.

Transparency log

Release files / rehline-0.1.4-cp310-cp310-macosx_11_0_arm64.whl

Download URL rehline-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Size 469.2 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
46841b6ba2791f656133ad9e8e8826fe8615f9fadd7ca1460bdc9870aea4c2a5
BLAKE2b-256 checksum
How to use checksums
544d0575674cec0250abce4c165f624d352f4f4331257708554216507fd91da5
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 Sep 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.4 This release

16 release files

0.1.3

16 release files

0.1.2

31 release files

0.1.0

33 release files

0.0.6

33 release files

0.0.1

1 release file

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