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. Drop-in replacement for the abandoned py_vollib.

from pyvolr import bs

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

⚡ Performance

Time per call: pyvolr vs the active BSM-pricing ecosystem, log-log by array size Throughput: pyvolr vs the active BSM-pricing ecosystem, log-log by array size

Six libraries on the chart: pyvolr, vollib (resurrected upstream of py_vollib, pure Python), py_vollib_vectorized (numba), blackscholes (pure Python, object-per-call), QuantLib (C++ core, looped scalar), and quantforge (Rust + SIMD).

pyvolr leads the non-SIMD field at every batch size — ~2.4× faster than py_vollib_vectorized (numba), ~4× faster than QuantLib's looped scalar, 10×+ faster than the pure-Python libraries. quantforge (Rust + SIMD) is faster from ~1k strikes up, on the explicit-vectorisation axis fast-vollib takes with Triton kernels — a trade pyvolr deliberately skips. pyvolr is the "Rust-cored CPU option": no unsafe SIMD intrinsics, no GPU dependency, an abi3 wheel in one file, and ~1-ULP accuracy into the deep-OTM tail where quantforge and blackscholes underflow to zero (see Numerical agreement below). For raw batch throughput prefer quantforge; for a correct, dependency-light CPU pricer, pyvolr.

Scenario pyvolr py_vollib speedup
bs.price, scalar 4.2 µs 2.2 µs 0.5×
bs.price, 1k strikes 43.3 µs 2.32 ms 54×
bs.price, 10k strikes 350 µs 23.32 ms 67×
bs.price, 100k strikes 3.48 ms 234.91 ms 68×
bs.price, 1M strikes 34.10 ms 2,350 ms 69×
bs.greeks (all 5), 10k 273 µs 89.95 ms 330×
bs.implied_vol, scalar 4.4 µs 15.0 µs 3.4×
bs.implied_vol, 10k strikes 465 µs 128 ms ¹ 275×
black76.price, scalar 3.7 µs 2.2 µs 0.6×
black76.price, 10k strikes 346 µs 23.19 ms 67×
black76.implied_vol, scalar 3.9 µs 14.7 µs 3.8×

¹ py_vollib's implied_volatility is scalar-only; the 10k figure is N × scalar measured via compare_py_vollib.py. pyvolr's vectorised path parallelises automatically above N=1024 via rayon — set RAYON_NUM_THREADS=1 to force serial.

Pricing throughput note: the bs.price / black76.price rows use the normalised-Black engine — ~1-ULP accurate into the deep-OTM tail, ~2.3× slower on vectorised pricing than the prior textbook S·Φ(d1) − K·Φ(d2) form. A deliberate accuracy-for-speed trade; Greeks and IV are unaffected.

The table above is the headline-vs-the-abandoned-upstream comparison (py_vollib's last release is broken on Python 3.12+, see docs/why.md). For the workload most people actually run — a smile, an option chain, an IV snapshot — pyvolr is tens of times faster than the abandoned py_vollib upstream and installs cleanly on every modern Python.

bs.greeks returning all five Greeks at once uses a single-pass Rust kernel that shares d1/d2, discount factors, cdf, and pdf across the five outputs — ~3× faster than the equivalent five separate calls. For batches ≥4096 rows, the work also dispatches across CPU cores in parallel.

Numerical agreement: pyvolr matches every library above to f64 precision (~1e-13 relative) on every well-posed input across price + 5 Greeks + IV. At deep-OTM short-expiry corners pyvolr is more precise than the rest — blackscholes and quantforge underflow to zero where pyvolr's erfcx-based cdf retains the ~1e-50 price; QuantLib and the alternatives lose 1-2 digits. Run python bench/sanity_check_competitors.py in each venv to re-validate.

Reproduce the table with python bench/compare_py_vollib.py; reproduce the chart with python bench/compare_competitors.py bench then python bench/compare_competitors.py chart (across the Python 3.11 + 3.12 venvs documented in the script's docstring). Library versions: Apple M4 Pro / Python 3.10.20 / numpy 2.2.6 / pyvolr 0.1.4 / py_vollib 1.0.1 (table) / vollib 1.0.7 / py_vollib_vectorized 0.1.1 / blackscholes 0.2.0 / QuantLib 1.42.1 / quantforge 0.1.1 (chart).

📦 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 shimpyvolr.compat.py_vollib mirrors the upstream module tree (including py_vollib.black) for one-import-line migration
  • 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; the Rust core releases the GIL around the math, so pricing scales across threads without a process pool
  • Typed end-to-end — pyright-strict library code, full type stubs for the Rust extension

🗺️ Coming soon

  • Drop-in compat shim for py_vollib_vectorized (vectorized_* API + price_dataframe/get_all_greeks, pandas as soft dep)
  • Bachelier (normal model, for negative rates)
  • Higher-order Greeks (vanna, vomma, charm, speed, zomma, color)
  • SIMD batch evaluation
  • American options (CRR binomial → finite difference)
  • Volatility surface fitting (SVI, SSVI)

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

🤔 Why pyvolr exists

py_vollib has been broken on Python 3.12+ since the release — a transitive dependency imports DBL_MIN / DBL_MAX from CPython's internal _testcapi test module, which isn't shipped with modern Python distributions. The fix is two lines (sys.float_info.{min,max} are the correct sources), but py_lets_be_rational hasn't released since 2017, py_vollib since 2020, and the maintainers are gone.

Full backstory: docs/why.md.

📁 Project structure

pyvolr/
├── crates/core/             # Rust numerical core
│   ├── src/
│   │   ├── lib.rs           # PyO3 bindings (flat-array entry points)
│   │   ├── bsm.rs           # BSM pricing, d1/d2, forward price
│   │   ├── black76.rs       # Black-76 (futures options) — delegates to BSM with q=r
│   │   ├── greeks.rs        # Delta, gamma, theta, vega, rho
│   │   ├── iv.rs            # Jäckel "Let's Be Rational" IV solver (Householder-4, ≤2 iters)
│   │   └── normal.rs        # Φ / φ, erfcx (Lentz CF), inverse CDF (Wichura AS241)
│   └── benches/             # criterion: perf-gate contracts (pricing) + experiment harness (experiments)
├── bench/                   # Python-level speed/precision scripts (dev-only, not in CI)
│   ├── compare_py_vollib.py            # reproduces the perf table
│   ├── compare_competitors.py          # reproduces the perf chart (6 libraries)
│   └── sanity_check_competitors.py     # cross-validates numerical agreement
├── python/pyvolr/
│   ├── bs.py                # BSM public API (numpy-broadcast wrappers)
│   ├── black76.py           # Black-76 public API
│   ├── _wrappers.py         # Shared FFI helpers (broadcast, flag normalize)
│   ├── _core.pyi            # Type stubs for the Rust extension
│   └── compat/py_vollib/    # Drop-in shim mirroring py_vollib's tree
├── tests/                   # pytest + hypothesis property tests
├── .github/workflows/       # ci, release, release-please, differential, fuzz, perf, security, scorecard, stale
├── .github/scripts/         # CI helper scripts (perf-gate comparator)
├── Cargo.toml               # Rust workspace
└── pyproject.toml           # maturin build backend + project config

📚 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)

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

🛡️ Sustainability

py_vollib died because nobody was paid to maintain it. 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, SIMD/vectorization work, 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.4.tar.gz (72.5 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.4-cp314-cp314t-win_amd64.whl (209.2 kB view details)

Uploaded CPython 3.14tWindows x86-64

pyvolr-0.1.4-cp314-cp314t-win32.whl (206.1 kB view details)

Uploaded CPython 3.14tWindows x86

pyvolr-0.1.4-cp314-cp314t-musllinux_1_2_x86_64.whl (395.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

pyvolr-0.1.4-cp314-cp314t-musllinux_1_2_aarch64.whl (358.7 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

pyvolr-0.1.4-cp314-cp314t-manylinux_2_28_x86_64.whl (314.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

pyvolr-0.1.4-cp314-cp314t-manylinux_2_28_aarch64.whl (293.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

pyvolr-0.1.4-cp314-cp314t-macosx_11_0_arm64.whl (266.5 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

pyvolr-0.1.4-cp314-cp314t-macosx_10_15_x86_64.whl (289.1 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

pyvolr-0.1.4-cp310-abi3-win_amd64.whl (212.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

pyvolr-0.1.4-cp310-abi3-win32.whl (209.4 kB view details)

Uploaded CPython 3.10+Windows x86

pyvolr-0.1.4-cp310-abi3-musllinux_1_2_x86_64.whl (399.0 kB view details)

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

pyvolr-0.1.4-cp310-abi3-musllinux_1_2_aarch64.whl (362.3 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

pyvolr-0.1.4-cp310-abi3-manylinux_2_28_x86_64.whl (317.6 kB view details)

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

pyvolr-0.1.4-cp310-abi3-manylinux_2_28_aarch64.whl (296.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

pyvolr-0.1.4-cp310-abi3-macosx_11_0_arm64.whl (269.8 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyvolr-0.1.4-cp310-abi3-macosx_10_13_x86_64.whl (292.7 kB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

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

File metadata

  • Download URL: pyvolr-0.1.4.tar.gz
  • Upload date:
  • Size: 72.5 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.4.tar.gz
Algorithm Hash digest
SHA256 1bcb4b9999ac986957c1be3f82bbf92b4b9eae939164da85c661126226f4467f
MD5 c5c4956a623a9887bf185fee72ab26ea
BLAKE2b-256 8f34ce6bba190bc8b5b145a9a3b78197bd2e57993f94f2bd4d0fd695d122d0bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4.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.4-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: pyvolr-0.1.4-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 209.2 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.4-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 fc384828239bdc4c61cf6a1b7fb53ac57fca1b0810e366be0147012321a72159
MD5 bcee23568c3f538d74207b988a1bf8db
BLAKE2b-256 1c536842676d23b658f95bceead8c4b2f498dd27b3d73bff908975c2d46a9a48

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp314-cp314t-win32.whl.

File metadata

  • Download URL: pyvolr-0.1.4-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 206.1 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.4-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 c9ca1b60315565ffdce2ac784d4d1115d9c6f466f2c930c8972a162b52df9aa4
MD5 d8497f87e02d0ed4a9cde439a99d371c
BLAKE2b-256 68dcf5f6ba2b1af0d018c8d436cd7e8b16f5c4e8f486dc55109d7dfa9afe6e9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 15803499c43e17a74899d22b59031033aefa3c934674a203af3fe890de458cf9
MD5 2c0aefbfe55123d1d46e82d609a6a2ac
BLAKE2b-256 23e7dd1cab36609daace819e9bb139eec3b80b0b4b1cdbfe0e51e55370edd94a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d986fe192a5c3819748cdd5e4b10124424625987d190b6cbe7769595df6ac62b
MD5 836a69df788b573a6d875e8a279a08c3
BLAKE2b-256 1cf35971cb3185254adbcd673b72ff9e038bfcb7c3a1b14842f45846824f3cb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f8ca01a19d49c33a25c880a7291ee99bc19124923e444c36d366593571b24141
MD5 38a67d53be2e60e63131c3396cb09e8e
BLAKE2b-256 01632e10f924fb11af6e6ab2d1f7da6f42b07f18a984cf967d1f6bcf0d6d698d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 35dc7d0a6bed2a7a477b0447ddf70210b8c1b354d2fcb4315a760990409b8dbe
MD5 9742b9a0b633bab92e47249013e36a23
BLAKE2b-256 c47fbd19d40e412e54c40980f4e082c0b68ce5d92f787229c468791e45e47f00

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 35a7f0c235922beb37952526e12d2a004a00ac461b087af6ecd5cfa1c8ee29a3
MD5 87733efd3fff71d974a91a7b2ad41f52
BLAKE2b-256 9d1f07dccfa5868c6d32e60552e7bdbf54736bf2fbeb75ea44acebbe143a1b6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 eaf7c5f2cab6d8d52e4af4df95f3030ed323361a54ddd5bd5d18224e4b6cf38d
MD5 1372b3e642082a84b00347d18bfcf9bc
BLAKE2b-256 81657f182d3c3956cdf2c9eac79d77ad9c935349e835d684c566969cda714571

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: pyvolr-0.1.4-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 212.7 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.4-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 db00894c665cb20fe90f2247dddd7a50cece9b49b19789f9a56e1204391573ea
MD5 f2f92a023e041b122795acd30926bed9
BLAKE2b-256 0a8de47a973227cdfe498c6cbf7b8577072462061647138768eee49cf844d00c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp310-abi3-win32.whl.

File metadata

  • Download URL: pyvolr-0.1.4-cp310-abi3-win32.whl
  • Upload date:
  • Size: 209.4 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.4-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 fc714c4bd933e293dbeafddcb23da44d5bbd50804b258d41eec01a34b39355c2
MD5 11f49c148054127662c50af677648ced
BLAKE2b-256 e6865532b81e37810091779ffebb616369e919d056c7d39f3e2bf5b89874cead

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7a848e1fd3c1b94b6b6815ef222cd721033bef4e72b13f93c94feeae50e77ebb
MD5 2787f799ac0df923e7259c2f578755c7
BLAKE2b-256 c78b4c1f78075ff15331c65492679b15f0b22b7044f674c702894af0728d10f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8de599bd97867e715582683eaf4e6aea6bb83fd4ceaeef53285e275593cc2930
MD5 58f40b54823c41f3ecdcc3d371694324
BLAKE2b-256 962520ed52b2df33d7b7d808d3c2293e2f7a9b558cd9bbec51444fc6a552aa24

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp310-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3c0c217fcb8e2d54ce1baf7a098d3463dcdc95913f849b8417af2b131d84ca3f
MD5 ded09aff5f432bfb525a68ef9b9f600e
BLAKE2b-256 ce4e26eb67393e59cf131edce1bd32eae92cc6cf68df5f7ba0ac44acf3e0cf3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp310-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 aff23ae4bfbcc5ced6819ca5e3ceddf21af81ffdaf457a4553eb105496155618
MD5 f6902f761f483ceb5ec2150b97fd53db
BLAKE2b-256 a6908652aa4ca95bcb588c46d3ae4e42d835d78fd8919d8d2d9fadcff14882ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bac06389d17e885e8910d70d0c28498d481f671192bc98a440b2c89b918933ba
MD5 a8c5933e543c1693d368ae3dad7eecc0
BLAKE2b-256 0528c871e0fe437c8768751961fe6e10694da06f2bb59f46d597eefe6960af19

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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.4-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.4-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 37ba68cba814e74815fc3f358d3b067ec7bf84e0ce061bc8866b71378f1d920e
MD5 0e2b7ec315bf5b191fd44cd6514b4b80
BLAKE2b-256 3bd56118b488d6a610a1e3860736d28bc4cf549d153dbc6a7e93eb65a46bb111

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.4-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