Batched robust Whittaker smoother (divided differences) implemented in Rust (PyO3).
Project description
whitsmooth_rust
A fast, compiled (no JIT warmup) implementation of a batched robust Whittaker smoother with divided differences in Rust, exposed to Python via PyO3.
It is designed for data shaped as many independent time series:
Sseries (samples / pixels / bands / locations)Ttime points per series
and supports time- and series-varying weights (e.g. missing data, quality flags, IRLS robust weights).
This package provides both float64 and float32 implementations.
Installation
Install from PyPI (recommended)
python -m pip install --upgrade pip
python -m pip install whitsmooth_rust
Wheels are built in CI for:
- Python: CPython 3.9+
- Platforms: Linux (manylinux x86_64), macOS (x86_64 + arm64), Windows (x86_64)
Build locally (from source)
If you are on an unsupported platform (or want to build the latest code), install Rust and maturin:
python -m pip install maturin
git clone https://github.com/MarcYin/whitsmooth_rust_repo.git
cd whitsmooth_rust_repo
maturin develop --release
This builds and installs the extension into the current Python environment.
Mathematical background
We solve a Whittaker-type penalized least squares problem for each series s:
$$ \min_{z_s}; \sum_{t=1}^T w_{s,t}(y_{s,t}-z_{s,t})^2 + \lambda \lVert D z_s \rVert^2 $$
y_{s,t}: observationw_{s,t} >= 0: weight (0 means missing/ignored)D: divided-difference operator of orderddefined on a strictly increasing sampling gridxλ(lambda): smoothing strength
The normal equations are:
$$ (\mathrm{diag}(w_s) + \lambda D^\top D + \text{ridge} I) z_s = w_s \odot y_s $$
P = D^T D is symmetric positive semidefinite and banded with half-bandwidth k = 2d.
We store only the lower band Pb[j, i] = P[i, i-j].
We solve each system using an SPD banded Cholesky factorization:
$$ A = L L^\top $$
which exploits symmetry and banded structure.
Robust IRLS (iteratively reweighted least squares)
Robust smoothing down-weights outliers by iterating:
- Solve Whittaker system with current weights
- Compute residuals
r = y - z - Estimate per-series scale (default: MAD)
- Compute standardized residuals
u = r / scale - Update robust weights
w_rob(u)and repeat
Final weights per entry are:
$$ w_{total} = w_{base} \cdot w_{rob} $$
Supported robust weight functions:
- Tukey / Bisquare (hard rejection outside
c) - Huber (soft clipping)
- Cauchy
- Welsch
- Fair
- Hampel (3-parameter redescending)
Supported scale estimators:
mad(default):scale = 1.4826 * median(|r|)huber: iterative Huber M-scale (more stable for heavy tails)
x normalization (recommended)
Because divided differences depend on the units/spacing of x, a fixed λ can mean different smoothness
when sampling density changes. You can normalize x to approximately unit spacing:
normalize="mean": average step becomes ~1normalize="median": median step becomes ~1 (robust)
This makes λ more comparable across datasets.
Handling near-duplicate x (recommended for float32)
If your x has very small gaps (near-duplicate sampling positions), the divided-difference penalty can become
ill-conditioned (especially in float32). By default, the robust solvers use merge_x_tol=1e-2 (set merge_x_tol=None
to disable). Options:
- Use
robust_whittaker_irls_f64(most stable). - Tune
merge_x_tolto merge adjacent points within a tolerance (in input-x units). - Increase
epsand/orridgefor float32.
Long runs of missing values (especially missing tails) reduce the data constraints at the edges and can also make
the float32 solve ill-conditioned. Mitigations: use robust_whittaker_irls_f64, increase ridge/eps, use
weighting="huber", or reduce iterations.
API overview
All functions use series-first layout for speed:
y_st: shape(S, T)w_base_st: shape(S, T)or omitted
Build penalty band
build_pb_f64(x, d=2, normalize=None, eps=None) -> (pb, k)build_pb_f32(x, d=2, normalize=None, eps=None) -> (pb, k)
Returns:
pb: array of shape(k+1, T)storing lower band ofP = D^T Dk = 2d
Robust IRLS smoother
robust_whittaker_irls_f64(...) -> z_st(or(z_st, w_total_st)ifreturn_weights=True)robust_whittaker_irls_f32(...) -> z_st(or(z_st, w_total_st))
Parameters (both dtypes):
x: strictly increasing sampling positions (lengthT)y_st:(S,T)observations (NaNs allowed; they will be treated as missing)w_base_st:(S,T)base weights (optional; if provided, NaNs in y are forced to 0 weight)lam: smoothing parameter λ (default:10)d: difference order (default:2)iterations: IRLS iterations (default:1; typical 3..10)weighting: one of"tukey"|"huber"|"cauchy"|"welsch"|"fair"|"hampel"(default:"tukey")scale:"mad"or"huber"(default:"mad")ridge: small diagonal stabilizer (default:1e-10; f32 may need larger values on difficult grids)normalize: None /"mean"/"median"(default:"mean")eps: numerical floor for stability (default:1e-10; f32 may need larger values on difficult grids)merge_x_tol: tolerance (in input-x units) to merge near-duplicate sampling points by base-weighted averaging before solving (default:1e-2, set toNoneto disable)parallel: parallelize across series (Rayon). Recommended when S is large. (default:True)tuning: optional tuple- for Tukey/Huber/Cauchy/Welsch/Fair:
(0,0,c) - for Hampel:
(a,b,c)
- for Tukey/Huber/Cauchy/Welsch/Fair:
return_weights: return finalw_total_stas well (default:False)
Usage examples
Float64
import numpy as np
import whitsmooth_rust
rng = np.random.default_rng(0)
T, S = 2000, 1000
x = np.cumsum(rng.uniform(0.8, 1.2, size=T)).astype(np.float64)
y = rng.normal(size=(S, T)).astype(np.float64)
y[2, T//2] += 25.0
y[4, 10:25] = np.nan
w = rng.uniform(0.2, 1.0, size=(S, T)).astype(np.float64)
w[~np.isfinite(y)] = 0.0
z, wtot = whitsmooth_rust.robust_whittaker_irls_f64(
x, y, w,
lam=50.0, d=2, iterations=3,
weighting="tukey",
scale="mad",
ridge=1e-10,
normalize="mean",
eps=1e-12,
parallel=True,
tuning=None,
return_weights=True
)
Float32
x32 = x.astype(np.float32)
y32 = y.astype(np.float32)
w32 = w.astype(np.float32)
z32 = whitsmooth_rust.robust_whittaker_irls_f32(
x32, y32, w32,
lam=50.0, d=2, iterations=6,
weighting="tukey",
scale="mad",
ridge=1e-6,
normalize="mean",
eps=1e-6,
parallel=True,
tuning=None,
return_weights=False
)
If your data is (T,S)
Transpose when calling:
z_st = whitsmooth_rust.robust_whittaker_irls_f64(x, y_ts.T, w_ts.T, ...)
z_ts = z_st.T
Notes on performance
- The solver is SPD banded Cholesky, per series, with half-bandwidth
k=2d. - Parallelization is across series
S. - Float32 can be significantly faster and reduce memory footprint for very large
S. - For highly irregular / near-duplicate
x, prefermerge_x_tolorrobust_whittaker_irls_f64(float32 may fallback to float64 internally).
License
MIT
Single-pass (non-robust) Whittaker solver
If you don't need IRLS robustness, you can run a single solve (much cheaper):
whittaker_solve_f64(x, y_st, w_base_st=None, lam=10.0, d=2, ridge=1e-10, normalize="mean", eps=1e-10, parallel=True) -> z_stwhittaker_solve_f32(x, y_st, w_base_st=None, lam=10.0, d=2, ridge=1e-10, normalize="mean", eps=1e-10, parallel=True) -> z_st
These solve: [ (\mathrm{diag}(w_s) + \lambda D^\top D + \text{ridge} I) z_s = w_s \odot y_s ] with no robust reweighting.
Benchmark script
This repo includes benchmark.py which times:
- single solve f64 / f32
- robust IRLS (Tukey) f64 / f32
Across multiple S values and plots runtime.
After installing the extension:
python benchmark.py
Optional: if you have SciPy installed, the benchmark can also compare against a sparse reference (looping over series).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file whitsmooth_rust-0.1.3.tar.gz.
File metadata
- Download URL: whitsmooth_rust-0.1.3.tar.gz
- Upload date:
- Size: 23.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f58ce95566a0d2ecd8b6408c7473d85a3eae96d7188a8e9afb4dc9af72c3530
|
|
| MD5 |
859ffe941a667a123391bcfa8ff1a1c9
|
|
| BLAKE2b-256 |
5d67e07b5065974f33dbd82e79490f9fab4c523b410da0bf2e61a7e546a45415
|
File details
Details for the file whitsmooth_rust-0.1.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 362.5 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e8bdc479df0354db06735d9158855ddbfeb54b88b79a0e157e70c79c8297083
|
|
| MD5 |
a39986a273c0b0743b30674d0859cfb3
|
|
| BLAKE2b-256 |
8898369b2894dbe3c85d771b95b3c1d617607bc04d7444a677cee0a37f19d02e
|
File details
Details for the file whitsmooth_rust-0.1.3-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 248.9 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7526d84303b1910071624bc590669018de03c4fb5467dd1f1ed7b9a6cae3b50f
|
|
| MD5 |
f613a7e397d36b464d691171884a6e93
|
|
| BLAKE2b-256 |
819d4b071a71ca19639127e7fbff878d2fdf2661554f1cf6725d59c49a2a6ab5
|
File details
Details for the file whitsmooth_rust-0.1.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 359.9 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
652c8f62df2de8d190e39f7987410fdf3d33173073afcbc916e74c25c37e56e9
|
|
| MD5 |
96b1bae43afa43edd66235390c4b8a10
|
|
| BLAKE2b-256 |
95fc5cd08ee9219712bdc1a2a645697b2449336635164081c31e1918aff345ab
|
File details
Details for the file whitsmooth_rust-0.1.3-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 316.3 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4390eae4efb4cf900ad06f85e72c226936de17db3482d22366f03006e0d36b1
|
|
| MD5 |
7415e2e6cf37e6c5188222c7bf23345e
|
|
| BLAKE2b-256 |
cbe537ef6a07ffc2532bb5474c2e4b1bfdb9a4c1ba77c94f49e8036261aea6ba
|
File details
Details for the file whitsmooth_rust-0.1.3-cp314-cp314-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp314-cp314-macosx_10_12_x86_64.whl
- Upload date:
- Size: 328.7 kB
- Tags: CPython 3.14, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4492a060b04687b3e4107fdc25bee6e6a6790aba7811f5fb3100293b5292c4d
|
|
| MD5 |
438c16ed83d9ae9aa9e9bb64b261ca0c
|
|
| BLAKE2b-256 |
e38032c1363e71535637187fbe061211966870b28832c5de606b5f0cb52eea1c
|
File details
Details for the file whitsmooth_rust-0.1.3-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 248.1 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a8e6eca97ca617d7b6d7fcd3e0e5f0cd2d05a0c2428103d5fd769ddb7c09aa7
|
|
| MD5 |
03ab9292ff8d005ca8024fa5c470cb7f
|
|
| BLAKE2b-256 |
7c305b26e9d199ffc12e06c977628d4b93c73ec1a73c0aab7c27dbdd8719d620
|
File details
Details for the file whitsmooth_rust-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 359.4 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc2e050eacda24deeab3936ad74605a643851532f6eab3ffc8680b43b5fe9fee
|
|
| MD5 |
5ba7c70c215d10dbf13ce779809a217a
|
|
| BLAKE2b-256 |
e5006eee141a52e042b027b77a7054f9992e91f059a0d5105946f80b0d203529
|
File details
Details for the file whitsmooth_rust-0.1.3-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 317.4 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
827d5882843ff2a9485055a57eefd345853c3cd7d04e6988ea2672a5e4794c1b
|
|
| MD5 |
bc627ee279ec88edda315bdeccf30739
|
|
| BLAKE2b-256 |
7a1263e210873b566ffd3d585893a83b5f9c8b1c51c0b65022863d38f60a8c77
|
File details
Details for the file whitsmooth_rust-0.1.3-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 328.5 kB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c920335ec5ef43fc4dd6956998739269ddc0d0573820783fae27ea620bc9d681
|
|
| MD5 |
efe113004cdce7bb41d13ebfb09ad543
|
|
| BLAKE2b-256 |
cf24c8658a910aba17d3da9b320bdcfcf83dc415fe4775b424f28be35b989487
|
File details
Details for the file whitsmooth_rust-0.1.3-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 248.3 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad23af51960c08e42f2a9163dce7ee540af5bed584f98a02544e7d1add2521cb
|
|
| MD5 |
7f10a1f31cc9057d14d845bce8d15c36
|
|
| BLAKE2b-256 |
c0f1d869fa74aa26721e3e1f286e49c602b9b68247be5367d4b2cd964dca3d09
|
File details
Details for the file whitsmooth_rust-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 359.6 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76c6cfaa57d28531cb0e1f5a228e8c126d1cc78f0f8145a45a77ed18c27b4254
|
|
| MD5 |
4e72a1c8a02a899200877796a9e83f45
|
|
| BLAKE2b-256 |
de7091188989aa9ebdb776fe94c6e0b3d5215f6aaaac46994b942063dc167818
|
File details
Details for the file whitsmooth_rust-0.1.3-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 317.6 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae064841f85ca830669395f44e5a5f06422a4660aaa4c79d0d9b54116a5b2fa9
|
|
| MD5 |
546b0a6f17f754a5fc1d627467de850b
|
|
| BLAKE2b-256 |
dcf51686994170cd2b498c68733db0ac49411e86d74398acbea26d4d4e6365e5
|
File details
Details for the file whitsmooth_rust-0.1.3-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 328.6 kB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad18566afc79f044dd0fc52f840d607133cdde893b5a67f9e932ccdd1ab99008
|
|
| MD5 |
5b69c18cb1e0180a46d7db41cb0cca63
|
|
| BLAKE2b-256 |
f12f7695f78cd85a93de898b6a457ddb74754e007f7725cca1633e86d99e65b9
|
File details
Details for the file whitsmooth_rust-0.1.3-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 250.4 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8417b0d40c147bd93e628ebf7082665d1ebfe1282c9cdfb32012bd8441642b8e
|
|
| MD5 |
47c0b97edca35f692d86f65bbc9c67b6
|
|
| BLAKE2b-256 |
b825536c48f74627e0c2074a0338c03c7afbcdf2d8f782cb9af943b61eec6a65
|
File details
Details for the file whitsmooth_rust-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 361.6 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
631b9628ac5c639ad3f9076efd56a4751ddb3a24b1245c10d2489ed08d8cf83e
|
|
| MD5 |
23d514d9a3fb6eca288b7ed37311a38e
|
|
| BLAKE2b-256 |
f364f8be5c5e225f48640e7021d3130d1905b2b49b036dd5f8c80961537195af
|
File details
Details for the file whitsmooth_rust-0.1.3-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 320.4 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27f05cec53f35e7fbae5681fd121939ad92915a5390378eed39e694f95233d84
|
|
| MD5 |
6b9ccdcb46741e7e6fc0381fd8417a53
|
|
| BLAKE2b-256 |
360dee762a60bbd44c65bab000642742275c5f026720cc3e4563d7fa9601a8c5
|
File details
Details for the file whitsmooth_rust-0.1.3-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 331.3 kB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75ac11383991ea2754c840a8a5e5d5bbe28160f079e453278a9ce5ebaff91af3
|
|
| MD5 |
f8187fec13b051a970de555648fb9d4e
|
|
| BLAKE2b-256 |
b8eeee76183f84d23ff677f4f2ac6431fd3f097688610a89c3d757b8d54a4511
|
File details
Details for the file whitsmooth_rust-0.1.3-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 250.2 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0a6193cd8324c8735ba209f9e1aa382c34c55d856650857bcecb09e647ecc4d
|
|
| MD5 |
6061c39f5c22f61e8f20f5b156aee143
|
|
| BLAKE2b-256 |
abc099f4fe30e61d17f4398912303b1f91ea6b45817c125b42bdc34a5535d50a
|
File details
Details for the file whitsmooth_rust-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 361.6 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8548ecd69a960bb0559d08ab2062ef9cae51431eb06e5f4b2b40481ae71419d
|
|
| MD5 |
f6c66d25c8da95f073a138537f0955da
|
|
| BLAKE2b-256 |
1e8334f0afdd464a35f0296debdcf2e769580c6bbeff8795eae7e196bd3950e1
|
File details
Details for the file whitsmooth_rust-0.1.3-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 320.2 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84ae8214bef44bd63d13af7537efd2800f70f247d3abcf2f9be2f247c2a05a37
|
|
| MD5 |
991d9f45b3ce4d351a51d7280b5c7b4c
|
|
| BLAKE2b-256 |
5d67775e368c70b012cc6cfe80d112292987098530c6d38330a9c69e4417e1af
|
File details
Details for the file whitsmooth_rust-0.1.3-cp310-cp310-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 331.3 kB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35b1253b92a53f0e68693ce07521aecdf077121ad222037a30439ec9a3cb1c08
|
|
| MD5 |
78524c7bf80db49b9fb829a83eb40642
|
|
| BLAKE2b-256 |
48bb8c17148a78fcae7f511db0a52d1fd58f4bbf8adf5e364577f33dd3068c1d
|
File details
Details for the file whitsmooth_rust-0.1.3-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 250.5 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
737a4ade9c8942f9d76041b44d0d6be3a8c548884ab550c0393185343214924e
|
|
| MD5 |
ab65edf30bd18614f97b27c18462bc9f
|
|
| BLAKE2b-256 |
dcba4073c719d88ba77eda60228f254089dba9da7c4d646e23b25f7cf8b87722
|
File details
Details for the file whitsmooth_rust-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 362.1 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44ad34ee961b0dd10deb13c8c12acaeb1dd96a28e9641fff26b8c9d5edd3f72e
|
|
| MD5 |
3a44c35f233888429e01845d9c2df585
|
|
| BLAKE2b-256 |
5b0e785be7abd665efbc1ffbbabac2fdb9c2f3fccf40ae623ea3e0f54a05d63c
|
File details
Details for the file whitsmooth_rust-0.1.3-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 321.1 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d51d3386774e84968f8158ea3be7894032b99f511c8b3481a811291e03d7283a
|
|
| MD5 |
7b77cd961d1557e3934f2e77bf08eca0
|
|
| BLAKE2b-256 |
4bd571cfa97737c94ef45fa03e1046a3cd784899ee99c007aa8830d541c071ab
|
File details
Details for the file whitsmooth_rust-0.1.3-cp39-cp39-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.3-cp39-cp39-macosx_10_12_x86_64.whl
- Upload date:
- Size: 332.2 kB
- Tags: CPython 3.9, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f813d655ffd3bcae6a7306e2dc0da7d23ce886036c1e978f95c41fcd2ae92cc0
|
|
| MD5 |
fc5fb27e0833242664390f2c9d4a8b6d
|
|
| BLAKE2b-256 |
8505fe6caf8ce404b1229af37b3c94474e17d0204375c621cb573e89a2dcf096
|