Skip to main content

volresample

License: MIT Python 3.9+

Fast 3D volume resampling with Cython and OpenMP parallelization.

Implemented against PyTorch's F.interpolate and F.grid_sample as a reference, producing identical results for nearest, linear, and area modes. The cubic mode matches scipy.ndimage.zoom(order=3, mode='reflect'), using grid_mode=True when align_corners=False and grid_mode=False when align_corners=True. Can be used as a drop-in replacement when PyTorch or SciPy is not available or when better performance is desired on CPU.

Blogpost

Features

  • Cython-optimized with OpenMP parallelization
  • Simple API: resample() and grid_sample()
  • Interpolation modes: nearest, linear, area, and cubic
  • Supports 3D, 4D (multi-channel), and 5D (batched multi-channel) volumes
  • Supports align_corners=True for nearest, linear, and cubic resampling
  • Supports uint8, int16 (nearest) and float32 dtypes (all other modes) for both resample and grid_sample

Installation

pip install volresample

Or build from source:

git clone https://github.com/JoHof/volresample.git
cd volresample
uv sync

Quick Start

Basic Resampling

import numpy as np
import volresample

# Create a 3D volume
volume = np.random.rand(128, 128, 128).astype(np.float32)

# Resample to a different size
resampled = volresample.resample(volume, (64, 64, 64), mode='linear')
print(resampled.shape)  # (64, 64, 64)

Cubic Resampling (scipy-compatible)

# Cubic B-spline resampling.
# align_corners=False -> scipy zoom(..., grid_mode=True)
# align_corners=True  -> scipy zoom(..., grid_mode=False)
resampled = volresample.resample(volume, (64, 64, 64), mode='cubic')

Align Corners

# For nearest, linear, and cubic modes, align_corners=True preserves the corner voxels.
aligned = volresample.resample(volume, (192, 192, 192), mode='linear', align_corners=True)

# Nearest with align_corners=True: corner input voxels map exactly to corner output voxels.
# This is not supported by PyTorch's interpolate, but follows the same geometric convention.
nearest_ac = volresample.resample(volume, (192, 192, 192), mode='nearest', align_corners=True)

Multi-Channel Volumes

# 4D volume with 4 channels
volume_4d = np.random.rand(4, 128, 128, 128).astype(np.float32)

# Resample all channels
resampled_4d = volresample.resample(volume_4d, (64, 64, 64), mode='linear')
print(resampled_4d.shape)  # (4, 64, 64, 64)

Batched Multi-Channel Volumes

# 5D volume with batch dimension (N, C, D, H, W)
volume_5d = np.random.rand(2, 4, 128, 128, 128).astype(np.float32)

# Resample all batches and channels
resampled_5d = volresample.resample(volume_5d, (64, 64, 64), mode='linear')
print(resampled_5d.shape)  # (2, 4, 64, 64, 64)

Grid Sampling

# Input volume: (N, C, D, H, W)
input = np.random.rand(2, 3, 32, 32, 32).astype(np.float32)

# Sampling grid with normalized coordinates in [-1, 1]
grid = np.random.uniform(-1, 1, (2, 24, 24, 24, 3)).astype(np.float32)

# Sample with linear interpolation
output = volresample.grid_sample(input, grid, mode='linear', padding_mode='zeros')
print(output.shape)  # (2, 3, 24, 24, 24)

Parallelization

import volresample

# Check default thread count (min of cpu_count and 4)
print(volresample.get_num_threads())  # e.g., 4

# Set custom thread count
volresample.set_num_threads(8)

# All subsequent operations use 8 threads
resampled = volresample.resample(volume, (64, 64, 64), mode='linear')

API Reference

resample(data, size, mode='linear', align_corners=False)

Resample a 3D, 4D, or 5D volume to a new size.

Parameters:

  • data (ndarray): Input volume of shape (D, H, W), (C, D, H, W), or (N, C, D, H, W)
  • size (tuple): Target size (D_out, H_out, W_out)
  • mode (str): Interpolation mode:
    • 'nearest': Nearest neighbor (works with all dtypes)
    • 'linear': Trilinear interpolation (float32 only)
    • 'area': Area-based averaging (float32 only, suited for downsampling)
    • 'cubic': Tricubic B-spline interpolation with IIR prefilter (float32 only). Matches scipy.ndimage.zoom(order=3, mode='reflect')
  • align_corners (bool): Supported for mode='nearest', mode='linear', and mode='cubic'
    • False (default): matches PyTorch align_corners=False for linear, and SciPy grid_mode=True for cubic
    • True: matches PyTorch align_corners=True for linear, SciPy grid_mode=False for cubic, and aligns corner voxels for nearest (not supported by PyTorch)
    • Passing align_corners=True with area raises ValueError

PyTorch correspondence:

volresample PyTorch F.interpolate
mode='nearest' mode='nearest-exact'
mode='nearest', align_corners=True (no PyTorch equivalent)
mode='linear', align_corners=False mode='trilinear', align_corners=False
mode='linear', align_corners=True mode='trilinear', align_corners=True
mode='area' mode='area'

SciPy correspondence:

volresample SciPy
mode='cubic', align_corners=False scipy.ndimage.zoom(order=3, mode='reflect', grid_mode=True)
mode='cubic', align_corners=True scipy.ndimage.zoom(order=3, mode='reflect', grid_mode=False)

Returns:

  • Resampled array with same number of dimensions as input

Supported Dtypes:

  • uint8, int16: Only with mode='nearest'
  • float32: All modes (nearest, linear, area, cubic)

grid_sample(input, grid, mode='linear', padding_mode='zeros', fill_value=0, rounding_rule='bankers')

Sample input at arbitrary locations specified by a grid.

Parameters:

  • input (ndarray): Input volume of shape (N, C, D, H, W)
  • grid (ndarray): Sampling grid of shape (N, D_out, H_out, W_out, 3)
    • Values in range [-1, 1] where -1 maps to the first voxel, 1 to the last
  • mode (str): 'nearest' or 'linear'
  • padding_mode (str): 'zeros', 'border', 'reflection', or 'constant'
  • fill_value (float): Fill value for out-of-bounds samples when padding_mode='constant'. For integer dtypes in nearest mode, the value is clamped to the valid range. Default: 0
  • rounding_rule (str): Tie-breaking rule used by mode='nearest':
    • 'bankers' (default): round half-integer coordinates to the nearest even voxel index, matching PyTorch
    • 'round_half_up': round half-integer coordinates toward the larger voxel index, matching volresample.resample(..., mode='nearest')

PyTorch correspondence:

volresample PyTorch F.grid_sample
mode='nearest', rounding_rule='bankers' mode='nearest'
mode='nearest', rounding_rule='round_half_up' (no PyTorch equivalent)
mode='linear' mode='bilinear'

With the default rounding_rule='bankers', the behavior matches PyTorch's grid_sample with align_corners=False. rounding_rule is a volresample-only parameter; PyTorch does not provide a configurable nearest-neighbor tie rule.

Returns:

  • Sampled array of shape (N, C, D_out, H_out, W_out)

Supported Dtypes:

  • uint8, int16: Only with mode='nearest'
  • float32: All modes (nearest, linear)

set_num_threads(num_threads)

Set the number of threads used for parallel operations.

Parameters:

  • num_threads (int): Number of threads to use (must be >= 1)

get_num_threads()

Get the current number of threads used for parallel operations.

Returns:

  • Current thread count (default: min(cpu_count, 4))

Performance

Measured on 2026-09-11 with the current Cython implementation on an Intel Core i5-14600K, using four physical performance cores (CPU IDs 0,2,4,6). PyTorch and volresample were configured for 4 CPU threads; SciPy's thread count was not configured by the benchmark.

Versions: Python 3.13.7, NumPy 2.4.2, PyTorch 2.14.0+rocm7.14 (CPU execution), and SciPy 1.17.1. The extension was built with GCC 14.3.0, Cython 3.2.4, and the project's existing AVX2/FMA/OpenMP compiler flags.

python setup.py build_ext --inplace
OMP_PROC_BIND=true OMP_PLACES=cores OMP_DYNAMIC=false taskset -c 0,2,4,6 \
  python tests/benchmark.py --threads 4 --profile default

Timings are median / IQR in milliseconds, measured over at least six rotating blocks after three warmup calls. The default profile gives each callable at least 1,800 ms of measured time. Calls reuse the input and include NumPy input/output conversion and allocation; input generation and output checks are outside timing. Speedups use unrounded medians: reference time divided by volresample time. Values above 1× favor volresample.

volresample vs PyTorch

Case Shape PyTorch (ms) volresample (ms) Speedup Max error
nearest 128x128x128 -> 64x64x64 0.055 / 0.001 0.031 / 0.000 1.77× 0
nearest (uint8) 128x128x128 -> 64x64x64 0.106 / 0.002 0.023 / 0.000 4.64× 0
nearest (int16) 128x128x128 -> 64x64x64 0.136 / 0.002 0.027 / 0.000 4.95× 0
nearest, large volume 512x512x512 -> 256x256x256 10.804 / 0.100 7.767 / 0.033 1.39× 0
linear 128x128x128 -> 64x64x64 0.276 / 0.003 0.137 / 0.001 2.01× 0
linear, align_corners=True 96x96x96 -> 144x144x144 2.683 / 0.034 1.420 / 0.031 1.89× 4.50e-05
linear, large volume 512x512x512 -> 256x256x256 25.731 / 0.325 17.649 / 0.158 1.46× 0
area 160x160x160 -> 80x80x80 4.179 / 0.114 0.733 / 0.038 5.70× 1.19e-07
area, large volume 512x512x512 -> 64x64x64 52.356 / 0.506 12.433 / 0.221 4.21× 2.24e-07
4D linear 4x96x96x96 -> 64x64x64 1.004 / 0.009 0.517 / 0.007 1.94× 0
5D linear 2x4x80x80x80 -> 48x48x48 0.878 / 0.012 0.444 / 0.007 1.98× 0

volresample vs SciPy

Case Shape SciPy (ms) volresample (ms) Speedup Max error
cubic, align_corners=False 128x128x128 -> 64x64x64 77.631 / 1.138 10.995 / 1.059 7.06× 0
cubic, align_corners=True 96x128x80 -> 64x160x48 80.826 / 0.555 4.465 / 1.062 18.10× 0

volresample vs PyTorch (grid_sample)

Case Shape PyTorch (ms) volresample (ms) Speedup Max error
linear, zeros 1x2x96x96x96 -> 80x80x80 11.930 / 0.287 4.376 / 0.215 2.73× 4.40e-05
nearest, zeros 1x2x96x96x96 -> 80x80x80 3.697 / 0.100 0.777 / 0.025 4.76× 0
linear, reflection 1x2x80x96x64 -> 72x88x56 16.535 / 0.377 3.462 / 0.061 4.78× 5.42e-05

Arithmetic mean speedup across these 16 cases: 4.34×. This summary depends on the selected workloads.

Notes:

  • Cubic timings include spline prefiltering for both implementations. The two rows cover both align_corners settings.
  • For int16 nearest, the PyTorch reference converts to float32 and back; volresample operates directly on int16.
  • Supplemental prepared-tensor PyTorch timings printed by the benchmark exclude input wrapping/casts and output conversion. They are not used in these tables or the speedup summary.
  • Max error is the maximum absolute difference from the reference output. Floating-point interpolation can differ slightly because of rounding and operation order.
  • These are CPU measurements on this machine. Core selection, memory bandwidth, thermal conditions, library versions, and workload shape affect performance.

Development

Running Tests

# Run all tests
pytest tests/

# Run with PyTorch comparison tests
pip install torch
pytest tests/ -v

# Skip PyTorch tests
pytest tests/ --skip-torch

Running Benchmarks

# Curated default run: all modes plus grid_sample
python tests/benchmark.py

# Faster smoke benchmark
python tests/benchmark.py --profile quick

# Or pin the thread count
python tests/benchmark.py --threads 4

# Output is printed live while the benchmark runs
python -u tests/benchmark.py

The main tables measure end-to-end CPU calls from NumPy input to NumPy output. Times are median / IQR of per-call averages from at least six measurement blocks, with three warmup calls and rotating backend order. Each callable receives the profile's measured time budget (or --target-ms); total runtime also includes warmup and output validation.

Supplemental PyTorch tables time F.interpolate / F.grid_sample with prepared CPU tensors. They include dispatch and output allocation, but exclude input wrapping, dtype conversion, and output conversion, and do not enter speedup summaries. For int16 nearest, the end-to-end PyTorch path includes conversion to float32 and back; its prepared timing uses float32 tensors. Cubic SciPy timings include spline prefiltering and return float32 directly. --threads configures PyTorch and volresample; it does not configure SciPy.

Building from Source

pip install -e ".[dev]"
python setup.py build_ext --inplace

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome. Please submit a Pull Request.

Metadata

Release files for volresample 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for volresample 0.6.0
File Size Uploaded
volresample-0.6.0.tar.gz 250.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for volresample 0.6.0
File
volresample-0.6.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
volresample-0.6.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
volresample-0.6.0-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
volresample-0.6.0-cp313-cp313-macosx_15_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 15.0+ x86-64 Details
volresample-0.6.0-cp313-cp313-macosx_15_0_arm64.whl CPython 3.13 CPython 3.13 macOS 15.0+ ARM64 Details
volresample-0.6.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
volresample-0.6.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
volresample-0.6.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
volresample-0.6.0-cp312-cp312-macosx_15_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 15.0+ x86-64 Details
volresample-0.6.0-cp312-cp312-macosx_15_0_arm64.whl CPython 3.12 CPython 3.12 macOS 15.0+ ARM64 Details
volresample-0.6.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
volresample-0.6.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
volresample-0.6.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
volresample-0.6.0-cp311-cp311-macosx_15_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 15.0+ x86-64 Details
volresample-0.6.0-cp311-cp311-macosx_15_0_arm64.whl CPython 3.11 CPython 3.11 macOS 15.0+ ARM64 Details
volresample-0.6.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
volresample-0.6.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
volresample-0.6.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
volresample-0.6.0-cp310-cp310-macosx_15_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 15.0+ x86-64 Details
volresample-0.6.0-cp310-cp310-macosx_15_0_arm64.whl CPython 3.10 CPython 3.10 macOS 15.0+ ARM64 Details
volresample-0.6.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
volresample-0.6.0-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
volresample-0.6.0-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
volresample-0.6.0-cp39-cp39-macosx_15_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 15.0+ x86-64 Details

Total release size: 11.1 MB

Release files / volresample-0.6.0.tar.gz

Download URL volresample-0.6.0.tar.gz
Size 250.5 kB
Tags Source
SHA-256 checksum
How to use checksums
434346fde0e56884ed90d302cdf2467ae41e0819c48a54afeff0f1cab3ccdfda
BLAKE2b-256 checksum
How to use checksums
2c2843954b3028ea05c55b4294c000caacf485476aced9cbdf0b108351989b06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp313-cp313-win_amd64.whl

Download URL volresample-0.6.0-cp313-cp313-win_amd64.whl
Size 93.7 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
f2ac057e912cd98a91a7d3ce8e8a2adc2da8b8d1437f2984bfb5643926ecb35d
BLAKE2b-256 checksum
How to use checksums
a716642bfdf1abd18e91a8eb49098910fa36c53964ce279f1051acadcb59fadf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL volresample-0.6.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 723.4 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
21fc8df70a5e226809bf4394a5800fcf3502118bc6ad9310997540c25b80cec4
BLAKE2b-256 checksum
How to use checksums
e4056150f016f678db2a7b199926ad242550f29a92415c1c8e151fb50d19b62f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL volresample-0.6.0-cp313-cp313-manylinux_2_28_aarch64.whl
Size 673.7 kB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5a76306a149835f503cf3d5ebfc18312a4cd8e652ec31e972a0af9f1f8ae5242
BLAKE2b-256 checksum
How to use checksums
205ffdb604be3d93ba2c017f6b01c16bb786eca1577139ad9844e17a11eb955b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp313-cp313-macosx_15_0_x86_64.whl

Download URL volresample-0.6.0-cp313-cp313-macosx_15_0_x86_64.whl
Size 406.0 kB
Tags CPython 3.13 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
5082ece29098b034ef31a71895742031af0ccd0fceb506f0fc5557ea8ff91a06
BLAKE2b-256 checksum
How to use checksums
c5619b480a8af2d2d51f85808632ca06a74eb1dc24219be06207111815ca3236
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp313-cp313-macosx_15_0_arm64.whl

Download URL volresample-0.6.0-cp313-cp313-macosx_15_0_arm64.whl
Size 358.3 kB
Tags CPython 3.13 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
fbdc9210bb0e9bf4f5fd5ec10afc3170906212efb9adc5018a0822fa99cbaf35
BLAKE2b-256 checksum
How to use checksums
e356d4ae0ad3716e26ab34a9ef3a0dfc2cbc38083eb16ddb160a4da5bdaf73c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp312-cp312-win_amd64.whl

Download URL volresample-0.6.0-cp312-cp312-win_amd64.whl
Size 94.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
5bf94c8258ef984fe8d02cfe7a565c0ab463b880ce6265fa25021c0e02966604
BLAKE2b-256 checksum
How to use checksums
d39fac04151bea5c44511bb5ca72bfde6d97ed7d1becba63873949fee158024b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL volresample-0.6.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 732.0 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
aef9286a756d07bc26bad263adc2a6add1929bc1cd6af0172c0982d4cf200b36
BLAKE2b-256 checksum
How to use checksums
6ed9dd4cfbeaf447811f2f31aeae0deb96af4c761d1c857ae57fd4b483b9a39e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL volresample-0.6.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 681.8 kB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
efd0a89ae8cd4894fbf4fa932740650db15f20a65c76766ab29cc29f51e38540
BLAKE2b-256 checksum
How to use checksums
032a967c2819895bdefc700d1e87ad204c0209a1e8f25cea0bd84e5dd9b756ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp312-cp312-macosx_15_0_x86_64.whl

Download URL volresample-0.6.0-cp312-cp312-macosx_15_0_x86_64.whl
Size 402.6 kB
Tags CPython 3.12 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
ccdca37c6a881cd77c10a9b70770c6babcb88795446da8f00203d481b98e981f
BLAKE2b-256 checksum
How to use checksums
35cadbac06a803249e67b075ada1ed712441fcf9d76b21e873ad99a6d4968620
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp312-cp312-macosx_15_0_arm64.whl

Download URL volresample-0.6.0-cp312-cp312-macosx_15_0_arm64.whl
Size 355.6 kB
Tags CPython 3.12 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
2989b2b5f2f2db4ed8cf960ffa2a26d4f0759b5bdeb147636b49394d92bafbbb
BLAKE2b-256 checksum
How to use checksums
f4329a7ba48b9920147c759b5feea3bf988e2391dc16747a8046733356f94cee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp311-cp311-win_amd64.whl

Download URL volresample-0.6.0-cp311-cp311-win_amd64.whl
Size 97.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
92de6b85f8bb837bdc1fc6a68f75969a6341b1dc92f8f66b1213ee95ca450c8d
BLAKE2b-256 checksum
How to use checksums
fc6957d400006fba0cd39c3678a6b3f4530f0d8b1de81c9e93d432470f64bd26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL volresample-0.6.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 728.1 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
64a82802371c79f6972a8010683c3714f758fe0521ff504f48a216e200d1322b
BLAKE2b-256 checksum
How to use checksums
6f5821a1fe307796cf03803ae32f109500cf62abb8323b49a7062f03a524bce0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL volresample-0.6.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 678.4 kB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3c5061afc4192ee655b8dc48c14351067e0edcf943bc301a00348cef0e40fcca
BLAKE2b-256 checksum
How to use checksums
130961fd348a7ac1e97694928a5065fa73ed4e83fef8ecaa7fa3d2b79373dd14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp311-cp311-macosx_15_0_x86_64.whl

Download URL volresample-0.6.0-cp311-cp311-macosx_15_0_x86_64.whl
Size 404.2 kB
Tags CPython 3.11 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
1d0859535dae5648b4d63ce40259098b7ccb4a8d73a04721e43ca6dcb510a9e9
BLAKE2b-256 checksum
How to use checksums
89efd29c56c83563609264a10ddb89db57d76c870572412797d63c01903cc147
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp311-cp311-macosx_15_0_arm64.whl

Download URL volresample-0.6.0-cp311-cp311-macosx_15_0_arm64.whl
Size 356.0 kB
Tags CPython 3.11 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
028c55facfaedb64df5be1f9b0511f931ec63aaaab0b840ea5eeb9c3b3b5708c
BLAKE2b-256 checksum
How to use checksums
2ed1dedc86e199483cc04b9d700a325c70c6a14faa71e8225ed355e7fa7383e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp310-cp310-win_amd64.whl

Download URL volresample-0.6.0-cp310-cp310-win_amd64.whl
Size 97.7 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
4a3465c8b410528d39a3ef35603d268173ac51f6ff7ec1a606edd87a41c56038
BLAKE2b-256 checksum
How to use checksums
40f3ba49c62f2ffe61e4d733afb6f80fb507fcb30b5445780301a32683aaee95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL volresample-0.6.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 712.8 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5a72165e28ebb2474799dac10736ea1d3193ef1e4debb3a3d88469e1b5f9fdc7
BLAKE2b-256 checksum
How to use checksums
4feeb63156ac2253e140442207ca3ca5597d0c36e8ee174727adb6547b59616f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL volresample-0.6.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 663.3 kB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9dcfe65eef5b3998800698db6781bc621cf267d7e123429fc9bbf9a53820a207
BLAKE2b-256 checksum
How to use checksums
8272e9ea005110735091e5d67483bdc421cde87d5133a8ab5d5aee8fb0e7a22a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp310-cp310-macosx_15_0_x86_64.whl

Download URL volresample-0.6.0-cp310-cp310-macosx_15_0_x86_64.whl
Size 405.9 kB
Tags CPython 3.10 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
38a465e4be315f74baf732f1545a76e221eaf96c1312ed92f169b4a6dbbcc968
BLAKE2b-256 checksum
How to use checksums
0b359fdd0189d82b5f5042b4ce2fb0a68550714cd45a6b23a2c1c75df4ee9c23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp310-cp310-macosx_15_0_arm64.whl

Download URL volresample-0.6.0-cp310-cp310-macosx_15_0_arm64.whl
Size 357.4 kB
Tags CPython 3.10 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
a80742e46bac3ac87d30852a347d0fbb83227648c05a481ce69f4e6aaf6fce5a
BLAKE2b-256 checksum
How to use checksums
4d15a7c793eea3e53c8b8a5bc0891212f06cf133a208e0e1156dc03575f0c7d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp39-cp39-win_amd64.whl

Download URL volresample-0.6.0-cp39-cp39-win_amd64.whl
Size 97.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
c770eca0bf822583844fbf9cca23463afc33f3da605b2da80b9f5ea8d3284e04
BLAKE2b-256 checksum
How to use checksums
589379205f57ef307a1e3ee5cd8cfc058e50615c2381f0b1e193d27e804e59ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL volresample-0.6.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 710.6 kB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e6861e61fa8e4d7425cd5b60b06ff4c077d5c810100f1001e9ce9ae17e8e367f
BLAKE2b-256 checksum
How to use checksums
b92157c029d9ef60593b60bcc1fbe1e93b21257dd45bb72cb9a819bc8ad3f0f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp39-cp39-manylinux_2_28_aarch64.whl

Download URL volresample-0.6.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 661.4 kB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2030a36aa451ce54df43348780f12b9c3aca50775579d850935d8b9d38105e14
BLAKE2b-256 checksum
How to use checksums
688dcecf43b533c38016a0e07c2c30506efb69a3f4e7060fc156b6cca5ae64ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / volresample-0.6.0-cp39-cp39-macosx_15_0_x86_64.whl

Download URL volresample-0.6.0-cp39-cp39-macosx_15_0_x86_64.whl
Size 406.0 kB
Tags CPython 3.9 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
df365365eea7f61626dd53512b8c5971b2638aaa6def9cc6e391012296143731
BLAKE2b-256 checksum
How to use checksums
52496df648229662d1ced923b0c9d0459db71e00d42735f210fea9335e43ba6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

25 release files

0.5.1

25 release files

0.5.0

25 release files

0.4.1

25 release files

0.4.0

25 release files

0.3.0

25 release files

0.1.0

25 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page