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 at every input size up to ~1M strikes. quantforge overtakes at very large batches via explicit SIMD vectorisation — the same axis fast-vollib takes with Triton kernels. pyvolr's positioning is explicitly the "Rust-cored CPU option" — no unsafe SIMD intrinsics, no GPU dependency, abi3 wheel ships in one file. If you're pricing 10M+ strikes per call and CPU-only, prefer quantforge.

Scenario pyvolr py_vollib speedup
bs.price, scalar 4.2 µs 2.2 µs 0.5×
bs.price, 1k strikes 24.6 µs 2.32 ms 94×
bs.price, 10k strikes 153 µs 23.32 ms 152×
bs.price, 100k strikes 1.39 ms 234.91 ms 169×
bs.price, 1M strikes 14.54 ms 2,350 ms 162×
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 141 µs 23.19 ms 164×
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.

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 faster than every actively-maintained alternative 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.2 / 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 free-threaded builds for 3.13t and 3.14t.

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. Free-threaded wheels (3.13t, 3.14t) are built and exercised through cibuildwheel's in-wheel test pass on every release across Linux/macOS/Windows.

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 — dedicated wheels for 3.13t and 3.14t; 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 benches gating the README's perf claims
├── 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
  • Nightly differential tests against py_vollib on a Python 3.10 sidecar to catch numerical drift
  • 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.3.tar.gz (64.8 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.3-cp314-cp314t-win_amd64.whl (205.2 kB view details)

Uploaded CPython 3.14tWindows x86-64

pyvolr-0.1.3-cp314-cp314t-win32.whl (199.8 kB view details)

Uploaded CPython 3.14tWindows x86

pyvolr-0.1.3-cp314-cp314t-musllinux_1_2_x86_64.whl (390.6 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

pyvolr-0.1.3-cp314-cp314t-musllinux_1_2_aarch64.whl (354.1 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

pyvolr-0.1.3-cp314-cp314t-manylinux_2_28_x86_64.whl (309.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

pyvolr-0.1.3-cp314-cp314t-manylinux_2_28_aarch64.whl (288.9 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

pyvolr-0.1.3-cp314-cp314t-macosx_11_0_arm64.whl (262.1 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

pyvolr-0.1.3-cp314-cp314t-macosx_10_15_x86_64.whl (283.5 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

pyvolr-0.1.3-cp313-cp313t-win_amd64.whl (207.9 kB view details)

Uploaded CPython 3.13tWindows x86-64

pyvolr-0.1.3-cp313-cp313t-win32.whl (199.8 kB view details)

Uploaded CPython 3.13tWindows x86

pyvolr-0.1.3-cp313-cp313t-musllinux_1_2_x86_64.whl (393.4 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

pyvolr-0.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl (356.3 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

pyvolr-0.1.3-cp313-cp313t-manylinux_2_28_x86_64.whl (312.0 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ x86-64

pyvolr-0.1.3-cp313-cp313t-manylinux_2_28_aarch64.whl (291.1 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

pyvolr-0.1.3-cp313-cp313t-macosx_11_0_arm64.whl (262.1 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

pyvolr-0.1.3-cp313-cp313t-macosx_10_13_x86_64.whl (283.4 kB view details)

Uploaded CPython 3.13tmacOS 10.13+ x86-64

pyvolr-0.1.3-cp310-abi3-win_amd64.whl (208.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

pyvolr-0.1.3-cp310-abi3-win32.whl (203.2 kB view details)

Uploaded CPython 3.10+Windows x86

pyvolr-0.1.3-cp310-abi3-musllinux_1_2_x86_64.whl (394.1 kB view details)

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

pyvolr-0.1.3-cp310-abi3-musllinux_1_2_aarch64.whl (357.5 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

pyvolr-0.1.3-cp310-abi3-manylinux_2_28_x86_64.whl (313.0 kB view details)

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

pyvolr-0.1.3-cp310-abi3-manylinux_2_28_aarch64.whl (292.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

pyvolr-0.1.3-cp310-abi3-macosx_11_0_arm64.whl (265.0 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyvolr-0.1.3-cp310-abi3-macosx_10_13_x86_64.whl (287.2 kB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

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

File metadata

  • Download URL: pyvolr-0.1.3.tar.gz
  • Upload date:
  • Size: 64.8 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.3.tar.gz
Algorithm Hash digest
SHA256 04f47c4f5917d9671106425db2ff2623fca5d9539905c94a4705dc7920ba8db7
MD5 a54fb89f7104236fd30f142a13cc326d
BLAKE2b-256 a63f35a90ddebc73060b33bba9583721f9bad14ad2726c0a1d8b9ae826e6cc8d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvolr-0.1.3-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 205.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.3-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 020e089e4726e131f67d518e42e1cb42c099382cecaab76e49fc72cad260455c
MD5 a4de13fbfa2449c01ddca7ff565bb12e
BLAKE2b-256 daed669e134849abe9634315cbaa5c445f7100774b9162621b6be2e5bc3ff5de

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvolr-0.1.3-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 199.8 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.3-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 ef8500e3514d5839e9e54aa890b652c0cc2ef7bc6c6f147edb9f7b879b2c4dac
MD5 3c1d13a9ab8a7062efc6abf998159c5c
BLAKE2b-256 1806ead84557a751470bbba674ed59fba007d63e1126cc178131fd77ff271f0b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5b5a4c3cb6347ef20c6341229b4a2481bb6f7470a653325c46b5acbdddd757a8
MD5 b209b9bf7926999827ec405a60b805ef
BLAKE2b-256 ab966fb69fe4c0a791e5b29f33019a3f333251dccc0d070331ac643dcc031218

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 313579ca10f449699013e6e31ea7fa10c371c056cfea8a0348a97abd975fba5c
MD5 10404c0f957e48bd223af26c62c6b30b
BLAKE2b-256 a489f0f7d4e7c4ec53a382b7433788c7278f1e357f2af5f04e71722cd525d1db

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fb05c1950f02168dd1e053785c792606ebbf4f84b73a83cc88fe2703ac43d4ca
MD5 c82b52f3f0effcc2873651ee3279da4c
BLAKE2b-256 9fc556c14980669b0cc2689357cc0dd3eb57bc7dca10cf719a1ef6e23cf6a813

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5b05277b87e9056a39212e5eff638bb46a3a43f386cbaf029a6de8d3b164d093
MD5 2d357b68cac6feff9736c53e48165705
BLAKE2b-256 2b887fb64a34e09d70c288747d5f54b876d269920b785d01180eacb8d46504f8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ce84d90cc305df185d825ed683d6ba1c5d1d0658de76540c0f09f547da5b709
MD5 85f3f409067124de19b4b84e5c1c01c6
BLAKE2b-256 9e2d0902d2134d89e1910e138165d119bdfb9f2662eb15cd2e0c7aa56505c0aa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c63e94d1697e443430306c2b4f37f9f8686bb8c73a7ef196091d2ececdb30d01
MD5 d34a408bf2e49891f0f17bcae04d7a70
BLAKE2b-256 f5711c01d1580ebc5605928912f8ab502830f5d24cd486d3c4c442e042a200d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.3-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.3-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: pyvolr-0.1.3-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 207.9 kB
  • Tags: CPython 3.13t, 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.3-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 a71dd49c13d54e229f07dadbf51a37db598a9c569c9200f662269e89c28a3230
MD5 176f4975217514af97a53749e2d42d87
BLAKE2b-256 32d42780c11c2c66724ec740bf866a616bdc1083a9a592ecd927827539af327f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.3-cp313-cp313t-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.3-cp313-cp313t-win32.whl.

File metadata

  • Download URL: pyvolr-0.1.3-cp313-cp313t-win32.whl
  • Upload date:
  • Size: 199.8 kB
  • Tags: CPython 3.13t, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvolr-0.1.3-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 dcdb0c06b2f75b355eb9843547b5d0869b8e294656735e3e023f7c13d20032e0
MD5 5f9663d4e0352cffb8a78f8519335e7f
BLAKE2b-256 9fe357e9e091788fca44e687945f72c4e8b2cc06c6e0e7faaf23cea3e280d537

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.3-cp313-cp313t-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.3-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a51c825747c97f3cec6023edc08fb520dba30862aaa49cb3d545903a793777a3
MD5 daa2d6b0b9933e0d72455ac02e2b0b4c
BLAKE2b-256 407ec4eeec9828517e32f32109020a7ec998a7084c43a55fe42f2acf6151d784

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.3-cp313-cp313t-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.3-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e9e8dc6b8e3c7367e310a2642bcaddf85aa01b89838894feae7c1e1555eede97
MD5 1f163ecfdc3d675c26d725224c5a9801
BLAKE2b-256 c366b90d6ebd3eb2307dd59ad0fdcc47d49f9fc4f02a9df8f5c7067c06758e3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.3-cp313-cp313t-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.3-cp313-cp313t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 886c8bd32fab9553454e5f49de541e4d4df0b31ebf17cb0a45de5a140f2cd297
MD5 5a4c277bb2b19d1246be7b68826db616
BLAKE2b-256 fbbc7040b9a4cfc6a55cc0211ee35dfbaa93f8f552728ed6b57ebb041571088b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.3-cp313-cp313t-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.3-cp313-cp313t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 76882df7a5a7e68f4fdcbd2c2ee8594fb02fe4bb50e5ba152d8688ba2bf0258f
MD5 b6297354dc3a8c6ee67d8c744a3a0910
BLAKE2b-256 9fc1b277bab9a218556f8cbad10267f54c81cc2c127189b526c00f911ac64599

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.3-cp313-cp313t-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.3-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d9092c659806622afacd83f2a90006721c1be81ffd4edbdc4845c5e78b39526e
MD5 bebd3f0a163022376d89297b14c58d2f
BLAKE2b-256 444dfb583c9dbdf38f2318580e705923628827b795b8f0a8a23f6977b9084b5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.3-cp313-cp313t-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.3-cp313-cp313t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp313-cp313t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 fad3cd41f16fd0499752a14b630479b6a0896d1315fccfcbd86126134d1c3966
MD5 3546fbe5c59aa429db34cbccae0286ea
BLAKE2b-256 1f5b315a432baa70bc1c0fb2d3f8834373cc2c36018481731f15867b5c046235

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvolr-0.1.3-cp313-cp313t-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.

File details

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

File metadata

  • Download URL: pyvolr-0.1.3-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 208.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.3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 883a46cdac9d8ac2a0ebf1c2b9910864b1bcf56d354d95a400ab89cee57bc1a2
MD5 e794985305550415856f70ec250e04e5
BLAKE2b-256 6d9844d324423e8656011078b2c423f0738fe801955722d2db2f18d000bf1747

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvolr-0.1.3-cp310-abi3-win32.whl
  • Upload date:
  • Size: 203.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.3-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 db1de3c07f7aa45a8913978d98e594410faa5c5ed43e62327f7a21000eb1fca9
MD5 d8a577014cd77c07eaa17b065c34db74
BLAKE2b-256 1b8c5c359f43b20c97271b534a5e0a1e7ac017edbdfd2a7b00124a8054c0c48f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d3782c186491293600ff36eb06c4568f7e124f00e3197e5b55e6977d9aa3642e
MD5 7e165218552b4139328669d93dc60e3d
BLAKE2b-256 fd01718e8a1209fc4d2952a332caa58581bfacbd66f8668235a00fb8bcdc7899

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 64a1edd1a9df71357ad5c7d5a4375329ca0b57b14d4246892344582848bd254f
MD5 882757c976de14e72b029b785ba0ef29
BLAKE2b-256 08936d88e8bdf4e7945bb156a6148d5c25b8efa98b65861fb9b7c90300a20c01

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a7b334b90722db360e4baa7100f6be5f4c08595cf66ce456c98753d0275d69c
MD5 7eb4665ac688e3b071350382059b1bfc
BLAKE2b-256 86ac90c02450c3854b09f8169cbfbf7a0e20d0d01a0b0233f66518bf499d5a55

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 993f668dfbc9cd9e76b9f5f83645572bc206c51419184a53f32dfc8923fa2932
MD5 3124c63aa5bba42c3817db20f1cf7e87
BLAKE2b-256 260818a40bda8514ea2e79b17c19eadfcceb4af0fba0cb0be1de04347e258f06

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4db8dc212e541b437659acbb051b0b56e76ff12d320277057f0cb2927f070e11
MD5 0fe2cc5f91d6053f26c2ddd1cf30ba07
BLAKE2b-256 b3e1f5c786c74495438a8c2444f4655b50231e852f77023a66bbc63ade00805b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvolr-0.1.3-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b460f8837b3d498107281a482050d2384bc9c025945179116481f80f3d15cd7c
MD5 2aa1155c7c9c01d2d027f0d05d9b7c77
BLAKE2b-256 2c1f1dabe073b40bf92d23a7d3c701652fcec70ab369043abcfe56b180e79f78

See more details on using hashes here.

Provenance

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