Skip to main content

Fast 3D volume resampling with optimized Cython

Project description

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)

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

PyTorch correspondence:

volresample PyTorch F.grid_sample
mode='nearest' mode='nearest'
mode='linear' mode='bilinear'

The behavior matches PyTorch's grid_sample with align_corners=False.

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

Benchmarks below were produced by the default curated benchmark profile on an Intel i7-8565U using 4 CPU threads:

python tests/benchmark.py --threads 4

The default profile runs for about 30-60 seconds using adaptive repeat counts.

volresample vs PyTorch

Case Shape PyTorch volresample Speedup Max error
nearest 128x128x128 -> 64x64x64 0.98 ms 0.41 ms 2.36× 0
nearest (uint8) 128x128x128 -> 64x64x64 0.83 ms 0.27 ms 3.07× 0
nearest (int16) 128x128x128 -> 64x64x64 4.20 ms 0.40 ms 10.54× 0
linear 128x128x128 -> 64x64x64 3.45 ms 2.33 ms 1.48× 0
linear, align_corners=True 96x96x96 -> 144x144x144 23.75 ms 10.46 ms 2.27× 4.50e-05
area 160x160x160 -> 80x80x80 40.12 ms 7.20 ms 5.57× 0
4D linear 4x96x96x96 -> 64x64x64 12.01 ms 7.50 ms 1.60× 0
5D linear 2x4x80x80x80 -> 48x48x48 9.76 ms 8.49 ms 1.15× 0

volresample vs SciPy

Case Shape SciPy volresample Speedup Max error
cubic, align_corners=False 128x128x128 -> 64x64x64 266.29 ms 63.68 ms 4.18× 8.34e-07
cubic, align_corners=True 96x128x80 -> 64x160x48 403.68 ms 46.23 ms 8.73× 1.43e-06

volresample vs PyTorch (grid_sample)

Case Shape PyTorch volresample Speedup Max error
linear, zeros 1x2x96x96x96 -> 80x80x80 129.57 ms 41.63 ms 3.11× 4.40e-05
nearest, zeros 1x2x96x96x96 -> 80x80x80 14.23 ms 4.47 ms 3.18× 0
linear, reflection 1x2x80x96x64 -> 72x88x56 91.12 ms 19.75 ms 4.61× 5.42e-05

Average speedup across the default benchmark suite: 3.99×.

Notes:

  • Cubic mode is validated against SciPy rather than PyTorch. The align_corners flag selects between SciPy's grid_mode=True and grid_mode=False, and both paths are benchmarked above.
  • int16 nearest shows the largest speedup because PyTorch must round-trip through float32, while volresample operates directly on int16.
  • Area mode remains one of the strongest CPU wins because the implementation parallelizes efficiently over spatial work.
  • 4D and 5D coverage is included in the benchmark suite so multi-channel and batched paths are represented, even when the raw speedups are smaller than the single-volume cases.
  • These are machine-specific measurements. CPU architecture, memory bandwidth, thermal throttling, and installed library versions can shift the absolute numbers substantially.

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, roughly 30-60 seconds
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

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.

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

volresample-0.5.0.tar.gz (231.5 kB view details)

Uploaded Source

Built Distributions

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

volresample-0.5.0-cp313-cp313-win_amd64.whl (91.8 kB view details)

Uploaded CPython 3.13Windows x86-64

volresample-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl (743.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

volresample-0.5.0-cp313-cp313-manylinux_2_28_aarch64.whl (692.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

volresample-0.5.0-cp313-cp313-macosx_15_0_x86_64.whl (397.7 kB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

volresample-0.5.0-cp313-cp313-macosx_15_0_arm64.whl (348.9 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

volresample-0.5.0-cp312-cp312-win_amd64.whl (92.1 kB view details)

Uploaded CPython 3.12Windows x86-64

volresample-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl (754.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

volresample-0.5.0-cp312-cp312-manylinux_2_28_aarch64.whl (699.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

volresample-0.5.0-cp312-cp312-macosx_15_0_x86_64.whl (393.3 kB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

volresample-0.5.0-cp312-cp312-macosx_15_0_arm64.whl (346.4 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

volresample-0.5.0-cp311-cp311-win_amd64.whl (95.6 kB view details)

Uploaded CPython 3.11Windows x86-64

volresample-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl (757.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

volresample-0.5.0-cp311-cp311-manylinux_2_28_aarch64.whl (702.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

volresample-0.5.0-cp311-cp311-macosx_15_0_x86_64.whl (397.1 kB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

volresample-0.5.0-cp311-cp311-macosx_15_0_arm64.whl (347.8 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

volresample-0.5.0-cp310-cp310-win_amd64.whl (95.7 kB view details)

Uploaded CPython 3.10Windows x86-64

volresample-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl (715.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

volresample-0.5.0-cp310-cp310-manylinux_2_28_aarch64.whl (663.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

volresample-0.5.0-cp310-cp310-macosx_15_0_x86_64.whl (397.9 kB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

volresample-0.5.0-cp310-cp310-macosx_15_0_arm64.whl (348.8 kB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

volresample-0.5.0-cp39-cp39-win_amd64.whl (95.8 kB view details)

Uploaded CPython 3.9Windows x86-64

volresample-0.5.0-cp39-cp39-manylinux_2_28_x86_64.whl (713.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

volresample-0.5.0-cp39-cp39-manylinux_2_28_aarch64.whl (661.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

volresample-0.5.0-cp39-cp39-macosx_15_0_x86_64.whl (398.0 kB view details)

Uploaded CPython 3.9macOS 15.0+ x86-64

File details

Details for the file volresample-0.5.0.tar.gz.

File metadata

  • Download URL: volresample-0.5.0.tar.gz
  • Upload date:
  • Size: 231.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for volresample-0.5.0.tar.gz
Algorithm Hash digest
SHA256 4520e26f6abc4924a7cce6a8d1d19c412e0c0d9961b3f32380004bc56952e13a
MD5 7c5480e722d43ffc119df913c68a6303
BLAKE2b-256 e2c5366188fa120f40b585e9bc4e7790a40c2680059fdb54e8c744687ad8f363

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0.tar.gz:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: volresample-0.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 91.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for volresample-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 536e8b8c3886a9217029492aea75dd6d7eb95c8566ca5de722fd38b8eeeb6d43
MD5 046d630a4193b89a2449ad11210c1a33
BLAKE2b-256 d12967295f27de09cc1f8775cb9932a523af3b6da5bf0df59ae7ebe187f6e55b

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp313-cp313-win_amd64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 048dc89782846dc28a47a6f0c8b92203031b91f458413f29f9e60efcf6a6ad13
MD5 1bf98a93c91240efc94d0c51f6db97ea
BLAKE2b-256 de22f0cd1091936ac867c6688ead93ed69786f50b3743b88904f40adf1b5e28e

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 14a5e48811c668869361ee12c4760e8a5cf4d7ddbb87892922de2160a0342657
MD5 c6861a62b693d8f4221df425f30a1725
BLAKE2b-256 f756f883112dc619cad794cb027f7faeaca921457138d31a63e254bddc9c1681

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 79719d456567f2b8db129ff9c2017ffedc76ae1a36587c30d30e237a322f0246
MD5 09a30392c8ae5a220b7adf87ec737901
BLAKE2b-256 175b94d7843aa5bea047d72f108b96eb0f4da2ef6120dc1df3cb113bf0d2cd7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp313-cp313-macosx_15_0_x86_64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 935191925f566d29bf6e5e06a6884ebbc0f44c1341b62425f119dd31f691d680
MD5 c517f592d10e1c5a9d76d33bbbbd61a4
BLAKE2b-256 aa7fac9f63d38de45ab82f3d9a1c02bc625cf17f5845afa9d92e1bd081c063a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp313-cp313-macosx_15_0_arm64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: volresample-0.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 92.1 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for volresample-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 85bac4c7e7337c496d4636d9efb731c95ab6d7d5cf636fd50fe730197ccda03e
MD5 78fd32ced0ba70ef8fc42484c51a4226
BLAKE2b-256 152bbb33612b5d3d3e7fbf8c4a8b9ad7f3d452587774831be9018457ef613887

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp312-cp312-win_amd64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cdae5ae446268acb913db10814d39aac0692e65d5513c1217f17adef26186ff4
MD5 57c778472d34cc13c7712f6928761b6c
BLAKE2b-256 0a7a3d5fd1c4928b66da1a25f42e4352fed4b4734db47763ac332a39f72aea5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9c4f459904d33b5fb8304c5a680429ae57a73a91bfcee3a4f20dcd6c040beaab
MD5 4c7fa19181e7b499791d37c5ecc36b1c
BLAKE2b-256 e2da6b81b0de25b7e84934215507e580ed42a5c202a5ee08aa4ff0208aec78b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 54e954802b822ca563e34d4c468bd047a6f464c13063fe8c6cda1d6fa24908c0
MD5 d13d4d7046cadf44c0d3f755de199b1a
BLAKE2b-256 fc11cac084570516b61f46ff7b327d840252d77720ce2b0c51ea177e08542536

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp312-cp312-macosx_15_0_x86_64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 acd35fb0888b3b131332a1d80091170a7de7607bfa02fce8522fbd1c5e2e813e
MD5 98b42ee29e549d4d93665a1fef896b49
BLAKE2b-256 f0bdc7be608f28f4c2e5f01fbd582eb691fc1a8fb66f424ea65fc53160f9703e

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: volresample-0.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 95.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for volresample-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 dbe48e6d8daf1ccb52d73c9e2cf2aa53974c75ccc075f4e9606f38a0916796de
MD5 0745bddc71c9509b21061b44784c2f66
BLAKE2b-256 3dc6fd84fdb828c9c294fb6996d2303d00ae60881a89a6a460f99865baa4dd1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp311-cp311-win_amd64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d655df4f4c2bd41187bee80cec74d074c736d973d5436c50a162c82dc759300
MD5 8ce803ba038f912554ec754d22a71003
BLAKE2b-256 c284198928827925b73b8ddc7365096b3f0bb940e8cd91d8f194a24a7efc0788

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b2c8fafce597094937ee58ca9b0aacd5f6baea9218295d991946cd8cd5cf17d7
MD5 4e8a3e9761522ca199417e085b31cc91
BLAKE2b-256 0afe5ddd7d489c5901a3dde6d70f4b5a3e1c7d55884cc56bfc8c1e39fb7e6cb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 2084d02a8f49112dc1577b088342cbd73e43790df7a941d195be64965ded3042
MD5 075474cf9739db6e9cd886c69999abe3
BLAKE2b-256 1201b8b43b56ce5cb697e08b89e6d94bca8b00e54e438e8e6b38aeaba65d63a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp311-cp311-macosx_15_0_x86_64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 fdaabc99273bfedd2ee16447fa22b57e05498ec62ca535bb99de1b2085e9e461
MD5 7cf3ad6fe82f6438ac29f618be5febcb
BLAKE2b-256 a7caaa94d77914cf38ae1225d655efe0f2936392e0597e60e394e1cd73990cfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp311-cp311-macosx_15_0_arm64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: volresample-0.5.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 95.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for volresample-0.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 05a1e3d3a0f0bd5d2c98fd3bd22514072505261a2ebf5740f5fbf7e4fe7be70c
MD5 0402658ea0664b83f6b7a84bf0e57fd8
BLAKE2b-256 bc520fa2f1c268bd565e36a0cd1037c3e1347d6a4001cb9419fb1ed63198b64f

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp310-cp310-win_amd64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ada15753bab46017fdca272fe216b99c48a1cddcf81de83ae9faaf1496aa76cd
MD5 9fe085c41e9a2f3de877fa6da26e7c62
BLAKE2b-256 c881b79a9ee8a1307e0205c614975a2167663d848bc9e41c74fd7055dd32a0c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 50ab712e384d92fd51ccde63d9d241bbf69130cd9d42f40d6f35560b52065fd1
MD5 bec05e3a63c4eeafee234d0e57bb854e
BLAKE2b-256 20c2acf92097386773c4cf43c18f2bd56f6711ae182978db533314baf1c09998

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 52d0461d1becc2fff7edfc0d022b7cb6c433cc6059578b12c1eed5eba4d75331
MD5 5c228e9f3a5eff397e1f5d2a00159f03
BLAKE2b-256 474918a3d89b1ef1c233e35e753ef95a5829f9d1f0cde3c6146435ea42a8845e

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp310-cp310-macosx_15_0_x86_64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f77c51de50a608b9eae5298367dfcd74af84919c0db19c4a390e659e615f1ec1
MD5 96f90ab48366f63fb16247aa891b15f9
BLAKE2b-256 686661d21783c6e937b9db3e9ab81774e91793a198fef2817d18c0f7e0a26109

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp310-cp310-macosx_15_0_arm64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: volresample-0.5.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 95.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for volresample-0.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ff1dd648d47d49bc0175cc7e51b0a82c7d1bf8a686864c6c5f4cc5066260f612
MD5 3b3a1dee45c60c6dbafb223be90834b2
BLAKE2b-256 6a64ab7daf86ca98e47959cef20ff39d6cc20ef34bd693d9f7f5966758a23ed0

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp39-cp39-win_amd64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7a2eecc126078035d918b5fa571e768fef35af7e70b842556fb1b6cf1bee581a
MD5 95ee02d19b6bf0a07aca1fea1609a230
BLAKE2b-256 ffd62a331a727ff812dd96a1784116930ad9eb51d5b0aac8103305f0ba24b7f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f6dc596e085b01b2a4af4d48fb81ef94a1614fb9f9299f11873875b60017be82
MD5 f2c69dcb06265fe6e15961b95c8c555b
BLAKE2b-256 6ad3da0a869e3a40a61d6e8848986039b609c43e7c70382f248a0d078144db74

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp39-cp39-manylinux_2_28_aarch64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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

File details

Details for the file volresample-0.5.0-cp39-cp39-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for volresample-0.5.0-cp39-cp39-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 f7ea5a5697f6f8e502e047e75ce399bcba108303f050ca6903d94b91e6d255cd
MD5 f4d9e79ed38fc41dca988fc7c566234e
BLAKE2b-256 af64119b59e9199b3f7bec86c1621eb419e44efd90e0211eb510f7034562c5e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for volresample-0.5.0-cp39-cp39-macosx_15_0_x86_64.whl:

Publisher: build_wheels.yml on JoHof/volresample

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