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.
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.
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, normalize=None, eps=1e-12) -> (pb, k)build_pb_f32(x, d, normalize=None, eps=1e-6) -> (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 λd: difference order (typical 1..6)iterations: IRLS iterations (typical 3..10)weighting: one of"tukey"|"huber"|"cauchy"|"welsch"|"fair"|"hampel"scale:"mad"or"huber"ridge: small diagonal stabilizer (e.g. 1e-10 for f64, 1e-6 for f32)normalize: None /"mean"/"median"eps: numerical floor for stabilityparallel: parallelize across series (Rayon). Recommended when S is large.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
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.
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.
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, lam, d, ridge, normalize=None, eps=1e-12, parallel=True) -> z_stwhittaker_solve_f32(x, y_st, w_base_st, lam, d, ridge, normalize=None, eps=1e-6, 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.0.tar.gz.
File metadata
- Download URL: whitsmooth_rust-0.1.0.tar.gz
- Upload date:
- Size: 17.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 |
8950d28c1239077cfde0fd15555733e62b36c89102be7ad2ac9e2a96378699cb
|
|
| MD5 |
dab63122f6c65fd3a48c52a6dc660f70
|
|
| BLAKE2b-256 |
574b7b8431863ece0ee9391b0107f6e0fa19520ee6fecf0965af82a9d45e88fa
|
File details
Details for the file whitsmooth_rust-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 347.9 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 |
f4dc881c3234340b4ee11afe59e58787002772b851422d30e101fa6e06dc3cca
|
|
| MD5 |
5c47d425df273be4813e33f6970c925c
|
|
| BLAKE2b-256 |
7625dbcdea5283c37b2fc3f7e2d9a8d96ffa54ca5d0d468e954ebd2dfc85aec8
|
File details
Details for the file whitsmooth_rust-0.1.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 230.1 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 |
58ac3593095a9be75e61c82a779021a69517043afbd8610e336156383a23119b
|
|
| MD5 |
3371ddbc8045aadb302576535a7f00cc
|
|
| BLAKE2b-256 |
4c899d38e6d807929a60a0dbb01826c2c16114eac950919aef97cdee915d8aed
|
File details
Details for the file whitsmooth_rust-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 342.5 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 |
6a1f11cde1cc28ae4742c09531f2ad6c7f80d1eeb44b22d5cdb6711dc6e1c98e
|
|
| MD5 |
8c3e32c36f575d945834c90eeeec624d
|
|
| BLAKE2b-256 |
f997e40f0a2bf80b5a806ac153a69a4e58677e19961b13ea2ee61016ac6a953c
|
File details
Details for the file whitsmooth_rust-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 298.2 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 |
d684503c674cab8c0858f7101612a731978915b141f895a667d52a8efd21efa3
|
|
| MD5 |
1987c84341d535435d1d22753437cf68
|
|
| BLAKE2b-256 |
3c2bbfb55ddb3b9ea4a5e7744eedbd1857b99a2472e74f9c9da57d525c2f8d24
|
File details
Details for the file whitsmooth_rust-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl
- Upload date:
- Size: 311.9 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 |
86134e29d645015ad1be80fc3e7f5960024752bac58403865bb6d99b514c36e2
|
|
| MD5 |
918beed8a26272f1cc4d1c357de13090
|
|
| BLAKE2b-256 |
e4051e8e21a3b0f7a030df405a0134637d6af9be00293bbb3b5743f1d44bad08
|
File details
Details for the file whitsmooth_rust-0.1.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 229.7 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 |
76bffc26fafbea9eb39196d2481ec348692192322c66ec2ec31966c3eedcd766
|
|
| MD5 |
659530ebab271f47ca946d9b127fccec
|
|
| BLAKE2b-256 |
a8974b75d05f09e5c026cfb150580fdccdeb93bce8bb73aca2f023f8a57c1b0f
|
File details
Details for the file whitsmooth_rust-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 342.8 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 |
18eadf28d85d3a5c9e94c5606c814abc4994c388253d46e954be204a43150dde
|
|
| MD5 |
8e07cc8c128c5acab0b97f1ce32c16c1
|
|
| BLAKE2b-256 |
2b9b015991fefce0077795ae7c0000edf010bb020abd504253785817fe9b911e
|
File details
Details for the file whitsmooth_rust-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 298.6 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 |
d49b659e37fd00f2bcd74cfdad93708c9c1b1186087e4a12226ff46b91c1cf4c
|
|
| MD5 |
ac7f8390be4a3f7d2c2c0e051d296c6f
|
|
| BLAKE2b-256 |
dd72cc19e98ccf1e53b53569bbdfec8d322c9b91d2f48749f3d2789d12a4fe05
|
File details
Details for the file whitsmooth_rust-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 313.1 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 |
d07bd988c183bb51cfe2b934e234cf2d4ec06673af02519c097f008b4af2f0c7
|
|
| MD5 |
6022adbc7a90428caac2932817965fba
|
|
| BLAKE2b-256 |
d7b9056c3ea4bdc4a877a7a14c1a7467ac31fb66c89ff1eacf6e57f4d6b142d5
|
File details
Details for the file whitsmooth_rust-0.1.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 229.9 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 |
1ecbc3e236f3ecbd0c31c7452aba3e8b0282ca5408aa970fcb932f4f270fe678
|
|
| MD5 |
5f077d1e322096e29f77b3c14296d8d8
|
|
| BLAKE2b-256 |
b281d85defc0c2fdd11b057b19f26c4628c07907532c6fdf2d342875c1ace42a
|
File details
Details for the file whitsmooth_rust-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 343.1 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 |
7b8e4fccf8712866c07ba41e9e98cc1f0876dd5d32c8971155dee37fea1eb877
|
|
| MD5 |
ad4762e633e3a1ec3e53185a3618da1f
|
|
| BLAKE2b-256 |
9ac25c553a3dc1ff6df495001593c1576635bdc6f6f40aeba4b0386f9167ed77
|
File details
Details for the file whitsmooth_rust-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 298.8 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 |
3526dd5008b81a1a75ff1478921f9d5a1bdf2c9a0be09aadd8c2b50cd25c4022
|
|
| MD5 |
8c932addb9547cf9e76e25c3079483d7
|
|
| BLAKE2b-256 |
2f5b2d4da19f0ce031fb29a15aaf38afadb359ed4f84346b509f25badc2ed3f4
|
File details
Details for the file whitsmooth_rust-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 313.3 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 |
8f962048fb667a7647d1514cdc00142e24ffd51925bc36dcd794304060bf7867
|
|
| MD5 |
54bdb5a3b9517c5be20af5a73af34ddf
|
|
| BLAKE2b-256 |
1d4afb55dbb313e35ee60783bdc36edfdb6b808ec5339870f953b9f5ec333fda
|
File details
Details for the file whitsmooth_rust-0.1.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 232.6 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 |
9ffb1038588fc29aa6acda0ff5d26ad8546f129dfc359fb2b9d7ab6a3d80923d
|
|
| MD5 |
ddf76871b8c810ebbb342baf44b486f3
|
|
| BLAKE2b-256 |
d9f31d2d05ed8c817db57f6d730aebbd069492a0d43f0ce15aa7bff11bb66b9c
|
File details
Details for the file whitsmooth_rust-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 346.4 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 |
4ec70ae323c67435a7a671f7e493141e029716fc1a1a8387d4c0428222e66b33
|
|
| MD5 |
570cef7a273fd71c552578cc1634868c
|
|
| BLAKE2b-256 |
1b9ee8be949c059476db4aacff1e6ac23482a070989bb3edf14e8408ea8c7aaa
|
File details
Details for the file whitsmooth_rust-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 301.8 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 |
4f1f06bdb231a370b4d45a596524e9c436f4fdabe3f7cf97359c8bad27216c80
|
|
| MD5 |
770cfab93d0a43d2f5c49a4740a29588
|
|
| BLAKE2b-256 |
8ece84995f64a0e412296b88b7e6efd4cd92d6dffae4d40107cd38b1ff6a70e6
|
File details
Details for the file whitsmooth_rust-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 314.1 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 |
e93371919911111602d7018c26116edc0f51991a350ad4ed16e3e47cefe98e0c
|
|
| MD5 |
de5906dd793615ecc65bf658f163a260
|
|
| BLAKE2b-256 |
b011d3a2384dac73583514b4cbe407e0fa6a5a267e429ad527d3a954c4c1da12
|
File details
Details for the file whitsmooth_rust-0.1.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 232.4 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 |
f25c0c346149c359e76b9e0929b3be257af2b5c2718fe97624036be294c7cfa1
|
|
| MD5 |
a32d69f15f9ed74fc553a5eca63d4cee
|
|
| BLAKE2b-256 |
cc8613c2583854ad26d8e2955f9e9d086b127dbc522561dff105c0c4b05d9fdf
|
File details
Details for the file whitsmooth_rust-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 346.5 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 |
ae694ed335ff95051d8b2d35cb73e1f243d71f3c6986b7058c067d0105278c5b
|
|
| MD5 |
753e883fdd2742e797149c981fcdb916
|
|
| BLAKE2b-256 |
104aef3d397463e477dc62a6b750852ab852226cebee44854a289edd526875c1
|
File details
Details for the file whitsmooth_rust-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 301.7 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 |
467e9ef0f2f5b744b37f6065be4f16dac5565b2a1dc3a84cd0fa45be2782219f
|
|
| MD5 |
bddab480e82a61071cfa79ba5dc92e33
|
|
| BLAKE2b-256 |
bcce936fc526b161dc87bed216dc7c9850f8c44f01d5968c9d95db9819b6c1ae
|
File details
Details for the file whitsmooth_rust-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 314.1 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 |
b8cbcb08d7c3d5b02685557d85620d57f63858b5eb298d2d4eae12a3fa309e05
|
|
| MD5 |
5cf5602582d07f5d8d5e3c514c0e7604
|
|
| BLAKE2b-256 |
cc650b65582dab9b11133c920f49fa34d4a954def0e920de4512987d869be11c
|
File details
Details for the file whitsmooth_rust-0.1.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 232.6 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 |
33d683ecfaed51778801820d2c97792c1c7c9e15480b5fe65785b04c4ffe4521
|
|
| MD5 |
4bf517594a76a6a6dd74725a033997fd
|
|
| BLAKE2b-256 |
8be96b23ce346acf0acebb1aa578e847e833f7273cd4ce2af626838893a04c68
|
File details
Details for the file whitsmooth_rust-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 347.0 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 |
ac1bd53c9142d8639aa4a093cb8c871625448acaed869d36dc03afac5d0131a5
|
|
| MD5 |
59fb98e62498b19d740a72b46d203951
|
|
| BLAKE2b-256 |
352cc8f71390bce5969a98e4c0764b7ca8e67b5905332f7a94cf25c05ad617f2
|
File details
Details for the file whitsmooth_rust-0.1.0-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 302.4 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 |
4904d793c1dd2398262b5d68e619719fd0fdc3350da49a8b79ae72c8de0c191a
|
|
| MD5 |
f864eba020970706f5979d13e683970f
|
|
| BLAKE2b-256 |
067f81633c86051bddc3e2a532d788055fcea0981ee0b0cd7fbef9bdce7cb231
|
File details
Details for the file whitsmooth_rust-0.1.0-cp39-cp39-macosx_10_12_x86_64.whl.
File metadata
- Download URL: whitsmooth_rust-0.1.0-cp39-cp39-macosx_10_12_x86_64.whl
- Upload date:
- Size: 315.1 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 |
0759ad76c7c1d8ee80a05b353e82043ad2b18448783dcbaa5e0648ccccdf8e27
|
|
| MD5 |
6a4310c3906319663be0036917a1963a
|
|
| BLAKE2b-256 |
299eafa1b73a8b7f9327ec683f9dfef8a6bbe80af2e98ccfe84cf679d31fa91c
|