Skip to main content

Modern Black-Scholes-Merton pricing, Greeks, and implied volatility for Python. Rust core. Drop-in py_vollib replacement.

Project description

pyvolr

PyPI Python versions Wheel OpenSSF Scorecard CI License

Modern Black-Scholes-Merton pricing, Greeks, and implied volatility for Python. Rust core. Vectorized. Correct in the tails. Drop-in compatible with py_vollib/vollib.

from pyvolr import bs

bs.price("c", S=100, K=105, T=0.5, r=0.05, sigma=0.2) # 4.581680167540007

⚡ Performance

Throughput: pyvolr vs the active BSM-pricing ecosystem, log-log by array size Implied-vol recovery accuracy (correct digits, higher is better) vs option-price depth: pyvolr stays f64-exact down to prices of 1e-215 while the fast 2026 entrants and QuantLib fall to zero correct digits between 1e-6 and 1e-26

pyvolr owns implied vol at scale — 2× faster than fast-vollib's numba backend and 12× faster than opengreeks at 1M solves — and ties fast-vollib on the bundled five-Greeks kernel. It concedes bulk price throughput to fast-vollib's multithreaded numba kernels; its scalar-call latency, once 20–30× behind opengreeks' dedicated FFI, closed to under 2.5× with the 0.1.6 scalar fast path (both now sub-microsecond). The right chart is why that trade is worth making: pushed deep out-of-the-money, every fast 2026 entrant starts returning silently wrong implied vols (a wrong-constant σ, with onset between prices of ~1e-6 and ~1e-26), while pyvolr — with the other two Let's-Be-Rational descendants, vollib and py_vollib_vectorized — stays f64-exact down to prices of 1e-215.

Workload pyvolr fast-vollib 0.1.6 ¹ opengreeks 0.2.0 vollib 1.0.11 ²
bs.price, scalar ⁴ 0.25 µs 88 µs 0.13 µs 1.5 µs
bs.price, 10k strikes 326 µs 174 µs 223 µs 14.7 ms
bs.price, 1M strikes 31.9 ms 4.4 ms 21.9 ms 1.53 s
bs.implied_vol, scalar 0.50 µs 156 µs 0.21 µs 13.2 µs
bs.implied_vol, 10k 449 µs 727 µs 3.35 ms 97.7 ms
bs.implied_vol, 1M 27.1 ms 53.2 ms 331 ms ≈9.7 s ³
bs.greeks (all 5), 10k 251 µs 191 µs 566 µs 47.0 ms
bs.greeks (all 5), 1M 5.0 ms 5.2 ms 56.1 ms ≈4.7 s ³

¹ The numba backend — fast-vollib's fast CPU path (a plain pip install fast-vollib runs its numpy backend, 5–7× slower). One-time ~0.4 s JIT warmup per function excluded. ² vollib (the revived py_vollib upstream — see docs/why.md) is scalar-only pure Python: the migration baseline, not a vectorization competitor. pyvolr runs its workloads 45–360× faster in batch. ³ Extrapolated ×10 from the measured 100k-row time (scalar loop). ⁴ pyvolr's price uses the normalised-Black engine — ~1-ULP into the deep-OTM tail, ~2.3× slower than the textbook S·Φ(d1) − K·Φ(d2) form (that is opengreeks' per-core price edge). A deliberate trade; Greeks and IV are unaffected.

Also on the throughput chart: py_vollib_vectorized (numba, unmaintained since 2021), blackscholes (pure Python), QuantLib (C++ core, looped scalar), and quantforge (Rust + rayon, reduced-precision fast_erf; unmaintained since Sep 2025). pyvolr's implied_vol parallelises via rayon above N≈1k (greeks ≥4096); RAYON_NUM_THREADS=1 forces serial.

Numerical agreement: pyvolr matches every library above to f64 precision (~1e-13) on all well-posed inputs across price + 5 Greeks + IV (bench/sanity_check_competitors.py). The edges differ: blackscholes underflows deep-OTM prices to zero and quantforge hard-clamps Φ at ±8σ where pyvolr's erfcx-based cdf keeps the ~1e-50 price; the IV tail is the right chart, methodology in bench/compare_tail_accuracy.py (a known-σ ladder priced through pyvolr's mpmath-golden-pinned forward map).

Reproduce it all with just all, or per-chart via the recipes in the justfile (needs just + uv; uv builds the pinned environments on demand). Measured on an Apple M4 Pro: scalar rows on pyvolr 0.1.6 (the scalar fast path), vector rows and both charts unchanged from 0.1.5 — the fast path leaves the vectorized and IV code paths untouched. Competitor versions are pinned in the justfile.

📦 Install

pip install pyvolr

Or via uv:

uv pip install pyvolr

Pre-built wheels are published for Linux (x86_64, aarch64), macOS (Intel, Apple Silicon), and Windows (x86_64) across Python 3.10–3.14, plus a free-threaded build for 3.14t. (3.13t wheels were last published at pyvolr 0.1.3 — cibuildwheel 4 dropped Python 3.13 free-threading, which never left experimental status.)

Tested on

3.10 3.11 3.12 3.13 3.14
Linux
macOS
Windows

Every push and PR runs the full pytest + cargo test suites across the matrix above. Windows × {3.10, 3.11} are skipped intentionally to keep CI minutes reasonable — the wheels themselves still build for those combinations and are published. The free-threaded wheel (3.14t) is built and exercised through cibuildwheel's in-wheel test pass on every release across Linux/macOS/Windows, and on packaging-touching PRs via the wheel-smoke check.

From source (requires Rust):

git clone https://github.com/yipjunkai/pyvolr
cd pyvolr
uv venv --python 3.12 && source .venv/bin/activate
uv pip install -e ".[dev,test]"
maturin develop --release

🚀 Quick start

import numpy as np
from pyvolr import bs

# Scalar
bs.price("c", S=100, K=105, T=0.5, r=0.05, sigma=0.2)

# Vectorized — broadcast over any combination of inputs
strikes = np.linspace(80, 120, 41)
prices = bs.price("c", S=100, K=strikes, T=0.5, r=0.05, sigma=0.2)

# All five Greeks in one call
greeks = bs.greeks("c", S=100, K=strikes, T=0.5, r=0.05, sigma=0.2)
# {"delta": [...], "gamma": [...], "theta": [...], "vega": [...], "rho": [...]}

# Implied volatility from a market price
bs.implied_vol(price=5.20, flag="c", S=100, K=100, T=0.25, r=0.05)

# Broadcasting works in any dimension
strike_grid = np.linspace(80, 120, 5).reshape(-1, 1)
vol_grid = np.linspace(0.10, 0.40, 4).reshape(1, -1)
surface = bs.price("c", S=100, K=strike_grid, T=0.5, r=0.05, sigma=vol_grid)
# shape (5, 4)

# Black-76 for options on futures / forwards — same API, F replaces S, no q.
from pyvolr import black76
black76.price("c", F=100, K=105, T=0.5, r=0.05, sigma=0.2)

✨ Features

  • Black-Scholes-Merton pricing — calls and puts with continuous dividend yield
  • Black-76 pricing — European options on futures/forwards (pyvolr.black76), same vectorized API as bs
  • Analytical Greeks — delta, gamma, theta, vega, rho (with documented sign and unit conventions)
  • Robust implied volatility — Jäckel "Let's Be Rational" algorithm: rational-cubic initial guess plus Householder order-4 iteration converges to ~1e-13 precision in ≤2 iterations across the full no-arbitrage range
  • Automatic parallelism on large batchesimplied_vol (above N≈1,000 rows) and the bundled greeks kernel (above N≈4,000) release the GIL and dispatch per-row work to rayon's global thread pool; set RAYON_NUM_THREADS=1 to opt out
  • Full numpy broadcasting — any combination of inputs in any shape, scalar-in scalar-out
  • py_vollib drop-in shimspyvolr.compat.py_vollib mirrors the upstream module tree (including py_vollib.black) for one-import-line migration; pyvolr.compat.py_vollib_vectorized mirrors the vectorized API (vectorized_*, get_all_greeks, price_dataframe)
  • Rust core, no compiler needed — abi3 wheels for Python 3.10–3.14 × {Linux, macOS, Windows}
  • Free-threaded Python ready — a dedicated 3.14t wheel: with no GIL, every entry point scales across threads. On standard (GIL) builds, the large-batch implied_vol (≥1k rows) and bundled greeks (≥4k rows) kernels release the GIL while rayon works; price and single-Greek calls hold it
  • Typed end-to-end — pyright-strict library code, full type stubs for the Rust extension

🗺️ Coming soon

  • Bachelier (normal model, for negative rates) — with analytic implied-normal-vol inversion
  • Higher-order Greeks (vanna, vomma, charm, speed, zomma, color)
  • American options (Andersen-Lake-Offengenden spectral collocation)
  • Volatility surface fitting (arbitrage-free eSSVI)

SIMD batch evaluation used to be on this list and was deliberately dropped: no vectorized math library currently meets pyvolr's precision bar on the erfc-dependent tails (~1 ULP against 60-digit references), and the crate forbids unsafe code. Batch throughput comes from rayon parallelism instead.

🔄 Migrating from py_vollib

Replace your imports — the signatures and 'c'/'p' flag convention are preserved exactly:

# Before
from py_vollib.black_scholes import black_scholes
from py_vollib.black_scholes.greeks.analytical import delta
from py_vollib.black_scholes.implied_volatility import implied_volatility
from py_vollib.black import black  # futures options

# After
from pyvolr.compat.py_vollib.black_scholes import black_scholes
from pyvolr.compat.py_vollib.black_scholes.greeks.analytical import delta
from pyvolr.compat.py_vollib.black_scholes.implied_volatility import implied_volatility
from pyvolr.compat.py_vollib.black import black  # futures options

The compat shim also preserves py_vollib's unit conventions: vega is per-1% vol, theta is per-day, rho is per-1% rate, and implied_volatility takes flag as its last argument. For new code, prefer the modern pyvolr.bs API — it accepts numpy arrays, broadcasts naturally, uses per-unit conventions consistently, and returns all Greeks in a single call.

Migrating from py_vollib_vectorized

pyvolr.compat.py_vollib_vectorized mirrors the vectorized API — the vectorized_* functions, get_all_greeks, and price_dataframe — with the same (quirky) argument orders, return_as values, and "Price"/"IV"/greek column names:

# Before
from py_vollib_vectorized import vectorized_black_scholes, vectorized_implied_volatility

# After
from pyvolr.compat.py_vollib_vectorized import vectorized_black_scholes, vectorized_implied_volatility

Two deliberate differences: importing the shim does not monkeypatch py_vollib (call the vectorized_* functions directly), and pandas is an optional dependency — return_as="dataframe"/"series" need it (pip install pyvolr[pandas]) and otherwise fall back to numpy with a one-time warning.

🤔 Why pyvolr exists

py_vollib spent six years abandoned (2020–2026) and hard-broken on Python 3.12+ — a transitive dependency imported DBL_MIN / DBL_MAX from CPython's internal _testcapi test module. pyvolr was built so that failure mode cannot recur: the numerical core is Rust and touches no CPython internals, and the release pipeline is engineered to survive its maintainer (GOVERNANCE.md).

In April 2026 the upstream was revived as vollib, which fixes the import error. It doesn't change the math: vollib remains scalar-only pure Python — 45–360× slower on the batch workloads in the table above — with no Python 3.14 or free-threaded wheels.

Full backstory, including the revival: docs/why.md.

📁 Project structure

Directory-level map; each module documents itself in its docstring/rustdoc header.

pyvolr/
├── crates/core/     # Rust numerical core (BSM, Black-76, Greeks, Jäckel IV, Φ/erfcx) + criterion benches
├── python/pyvolr/   # numpy-broadcasting public API, type stubs, py_vollib(+vectorized) compat shims
├── tests/           # pytest + hypothesis property tests
├── bench/           # dev-only speed/accuracy benchmarks vs the competitor field (not in CI)
├── fuzz/            # cargo-fuzz targets for the numerical core
├── tools/           # regenerable mpmath golden generator
├── docs/            # backstory (why.md) + chart assets
├── .github/         # CI/release workflows (all SHA-pinned) + helper scripts
└── justfile         # benchmark-reproduction recipes (`just all`, `just perf-stat`, ...) via uv

📚 API reference

Function Returns Vectorized over
bs.price(flag, S, K, T, r, sigma, q=0) option price all numeric inputs
bs.delta(flag, S, K, T, r, sigma, q=0) ∂Price/∂S all numeric inputs
bs.gamma(S, K, T, r, sigma, q=0) ∂²Price/∂S² all numeric inputs
bs.vega(S, K, T, r, sigma, q=0) ∂Price/∂σ (per unit vol) all numeric inputs
bs.theta(flag, S, K, T, r, sigma, q=0) −∂Price/∂T (per year) all numeric inputs
bs.rho(flag, S, K, T, r, sigma, q=0) ∂Price/∂r (per unit r) all numeric inputs
bs.greeks(flag, S, K, T, r, sigma, q=0) dict of all five Greeks all numeric inputs
bs.implied_vol(price, flag, S, K, T, r, q=0) σ (NaN on bound violation) price + numeric inputs
black76.price(flag, F, K, T, r, sigma) option price on a forward all numeric inputs
black76.{delta,gamma,vega,theta,rho}(...) Greeks for Black-76 all numeric inputs
black76.greeks(flag, F, K, T, r, sigma) dict of all five Greeks all numeric inputs
black76.implied_vol(price, flag, F, K, T, r) σ (NaN on bound violation) price + numeric inputs
pyvolr.compat.py_vollib.… py_vollib-shaped scalars n/a (scalar API)
pyvolr.compat.py_vollib_vectorized.… arrays / DataFrame all numeric inputs

flag accepts 'c'/'C' (call), 'p'/'P' (put), or an array thereof.

Every function also accepts a keyword-only return_as: "numpy" (default — array, or scalar for scalar input), "dict" ({name: value}), or "dataframe" (a pandas DataFrame; pandas is an optional dependency, installed only if you use this mode).

implied_vol additionally accepts a keyword-only on_error for unsolvable inputs (price outside the no-arbitrage bounds, non-positive T/S/K, or non-finite input): "warn" (default — emit an ImpliedVolWarning and return NaN), "raise" (raise ImpliedVolError), or "ignore" (return NaN silently).

🛡️ Sustainability

py_vollib went dark for six years because nobody was paid to maintain it — its 2026 revival came only after the ecosystem had moved on. pyvolr is engineered to outlive its maintainer:

  • One-click releases via release-please + PyPI Trusted Publishing — PyPI publication needs no stored credentials (OIDC), and release-please authenticates as a repo-scoped GitHub App rather than a user PAT, so the credential survives a maintainer handoff
  • Release-gated differential tests against py_vollib (Python 3.10 sidecar) — every release is blocked unless pyvolr still matches the reference
  • Wide CI matrix (Python 3.10–3.14 × Linux/macOS/Windows) — the specific failure mode that killed the predecessor
  • All GitHub Actions pinned with weekly Dependabot bumps, hardening against supply-chain attacks
  • Hand-off plan documented in GOVERNANCE.md

Commercial sponsorship channels will be added if demand warrants. For now the best support is real-world use, good bug reports, and PRs.

🤝 Contributing

See CONTRIBUTING.md. Particularly welcome: new pricing models (Bachelier, American), higher-order Greeks, and property tests for edge cases.

📄 License

Dual-licensed under MIT or Apache 2.0, at your option.

Algorithms are reimplemented from published references (Hull, Merton, Jäckel); no third-party source code is incorporated.

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

pyvolr-0.1.6.tar.gz (86.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyvolr-0.1.6-cp314-cp314t-win_amd64.whl (235.0 kB view details)

Uploaded CPython 3.14tWindows x86-64

pyvolr-0.1.6-cp314-cp314t-win32.whl (230.0 kB view details)

Uploaded CPython 3.14tWindows x86

pyvolr-0.1.6-cp314-cp314t-musllinux_1_2_x86_64.whl (422.6 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

pyvolr-0.1.6-cp314-cp314t-musllinux_1_2_aarch64.whl (384.0 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

pyvolr-0.1.6-cp314-cp314t-manylinux_2_28_x86_64.whl (340.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

pyvolr-0.1.6-cp314-cp314t-manylinux_2_28_aarch64.whl (318.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

pyvolr-0.1.6-cp314-cp314t-macosx_11_0_arm64.whl (289.9 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

pyvolr-0.1.6-cp314-cp314t-macosx_10_15_x86_64.whl (314.6 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

pyvolr-0.1.6-cp310-abi3-win_amd64.whl (237.2 kB view details)

Uploaded CPython 3.10+Windows x86-64

pyvolr-0.1.6-cp310-abi3-win32.whl (233.2 kB view details)

Uploaded CPython 3.10+Windows x86

pyvolr-0.1.6-cp310-abi3-musllinux_1_2_x86_64.whl (423.6 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

pyvolr-0.1.6-cp310-abi3-musllinux_1_2_aarch64.whl (386.4 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

pyvolr-0.1.6-cp310-abi3-manylinux_2_28_x86_64.whl (342.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ x86-64

pyvolr-0.1.6-cp310-abi3-manylinux_2_28_aarch64.whl (321.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

pyvolr-0.1.6-cp310-abi3-macosx_11_0_arm64.whl (294.2 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyvolr-0.1.6-cp310-abi3-macosx_10_13_x86_64.whl (316.3 kB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

Details for the file pyvolr-0.1.6.tar.gz.

File metadata

  • Download URL: pyvolr-0.1.6.tar.gz
  • Upload date:
  • Size: 86.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvolr-0.1.6.tar.gz
Algorithm Hash digest
SHA256 145117d13ce8f04e2d19df16d5e808a4ec32efb830281cc72f73682a2df92475
MD5 c078588ed5e4bd8951eef194e71e3794
BLAKE2b-256 dd5cdffd95b2577ca9aef56b80fbf05cbc16026b401ce21ec74054e67856b1e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6.tar.gz:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: pyvolr-0.1.6-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 235.0 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvolr-0.1.6-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 08becc5c73d1dcb7b336764579395c1e8db91d8a52a685956cd4ecfda2026d0e
MD5 3d8d4604ad12edd0f06a4931bb5e866a
BLAKE2b-256 65c528f8990be42ec30a9f28cbd08fcaa21bc54597a539e65a0bc70a40a473e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp314-cp314t-win_amd64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp314-cp314t-win32.whl.

File metadata

  • Download URL: pyvolr-0.1.6-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 230.0 kB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvolr-0.1.6-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 f04f15ab4950c081c9158bfa1bc4da92f04b2bedb11f4fd4dcf2139b426492eb
MD5 4d39a6dfae6c82efdde5d67e572b3f90
BLAKE2b-256 e1ba69f660fe8ae521f7533f5a0896871e2954a42dba802561a958f4061879c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp314-cp314t-win32.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 736b53fbd4fcf287408959f09d132ad3f83ae868a8f51ecd45ba51f7dac341af
MD5 51b4ab0d96e86f1fe804bc77fb1983a6
BLAKE2b-256 5885277a69fdd11fbee9b17855eb8b492e92cf307b8010cc190f8be1d760bbef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e556eae7c36139d521b5bc95860d5775d9ffed9d39e2fc80965529435518b8ae
MD5 aef6bbc95b623447b97a631b6fc01feb
BLAKE2b-256 e66eeb725db45ddb736da8623c22fe66f69a739dacdd04fec8633c9e725f0b72

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 af7aa50c84171bbdb79330e19db50d66eb21cded84c994ac60bae33bfcf34792
MD5 4cdcb91d975abd4ea4b931213520db51
BLAKE2b-256 dba5e0e7bb155837ecb789d8992beb23b9b9e8075e2204fa75804e7f7616773f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp314-cp314t-manylinux_2_28_x86_64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 740d48f37e4a716447d33bb7f2b1a2ab6878a2518c06f14eb2c4742578dcff03
MD5 dbd7c7f53456b2d55246b90f6edbcdcb
BLAKE2b-256 b95e4e3b9363bc431a121e7e4ad306bd4620ffc0891a8092ac1be854f76b6981

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp314-cp314t-manylinux_2_28_aarch64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ba8d3be7b114bb201ca9d377924733d60f2b0a8c4adeae5636d9e1b6eb4f29de
MD5 113b6b52796114d4540dd9033d58b156
BLAKE2b-256 c68bc5c82ceb8f2972a8c156faf533d57b9a0a7be4a0d97f497544ee0f444931

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 354936fcecb088ae55ff6a4c51ccc51638e604cd2fc1d92d7d30cb7763cdfe8f
MD5 dfbb90d93efcbe670e11c1082fbb273e
BLAKE2b-256 c523834049ec2daeeaec2f9b7d768d75c25b45d7e0fb4d28fa5cb429f63f1475

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp314-cp314t-macosx_10_15_x86_64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: pyvolr-0.1.6-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 237.2 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvolr-0.1.6-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fe2dada5d9382f974fa72dee315c5e79a9045b501cc5013b171f9bfe6ca65469
MD5 ed5dd689120cbfd795460a8aaaa32f01
BLAKE2b-256 1075d73767b81e6cc98a04fdf21bc61331e6c71b8a263fd855a0e1f9a24be54d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp310-abi3-win_amd64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp310-abi3-win32.whl.

File metadata

  • Download URL: pyvolr-0.1.6-cp310-abi3-win32.whl
  • Upload date:
  • Size: 233.2 kB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvolr-0.1.6-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 cd6b336808d21d571717cc816674edbb3eaa24431c370cf0d99b7cab66b0cbfd
MD5 2995af268e925f925d3ce73180ee7056
BLAKE2b-256 3d44a16552f4063b1832f52675b85423ddd3222d084be19d2eee172f28296281

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp310-abi3-win32.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d7c55cbda00ce196462bb55c2ef33bae91b5e44795300fd68d7abbb623312e28
MD5 bc5a72bb21d31ad68877bb4e8a0a20c8
BLAKE2b-256 d84b840dbf0aa498c76f509949328638a876167835adbaa1bb46c869a855b809

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 03755fa51913d35309a45e6e076d4eb1581074b5a5cf434f4d6c809c5d09da37
MD5 c4cfb7fabe3c8be17d76e38862a4c1a5
BLAKE2b-256 827c3d4aa62e624a6f7ff17899fbf8b9cbfae7af61ca5e3863fa11ce08af08e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp310-abi3-musllinux_1_2_aarch64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp310-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 997f34046351f7111c4075a8fe3abd1772a08ec3ece25e6e5115d1c645b2b9d3
MD5 fc2319f06f01c66afb62d9b485c8598d
BLAKE2b-256 4f5cbfb3acccf0f1b8c52d225a093e1b0ae23656a2d0ec77039e3da9bde10a4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp310-abi3-manylinux_2_28_x86_64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp310-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9b2e1a7a20d32fca019c0149579a28be168f84000e6ec4ee259b7199cc293e7d
MD5 5f9e1ee276691b123bde366ef76669fe
BLAKE2b-256 953133d5826da9cf102555c50c592d98a238585d7eba3f8c25dbeec1f447d89d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp310-abi3-manylinux_2_28_aarch64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41f5ec383345fd31303494e3e62f75a78ae1bf014478381de1b6fed43c9137d2
MD5 ba577e283f01e7bf9bb55e35ee1eb3d3
BLAKE2b-256 bb1b78d3642c2e6cc95652f0d1be12d5dfd1809bf5d5dffae7986bc1819fe2ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvolr-0.1.6-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.6-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 45bf3e533558b7e3eb18e38b5396e9e91b2d340ec5d78168594e8cb5c9a22a4c
MD5 a6b6e08b056658dee2d90af7d267445d
BLAKE2b-256 0aa7937bee6a5a9a0f3bc36ad561f3bec7de04e3f71e0e529359b74371846f45

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.6-cp310-abi3-macosx_10_13_x86_64.whl:

Publisher: release.yml on yipjunkai/pyvolr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page