Skip to main content

Unified OpenPTV: Particle Tracking Velocimetry with dual-engine support

Project description

openptv2

Unified OpenPTV: Particle Tracking Velocimetry with dual-engine support

Python License

Overview

openptv2 combines the best of three repositories into a single, maintainable package:

  • C core library (lib/) - High-performance particle tracking algorithms
  • Cython bindings (bindings/) - Python interface to C library
  • Python/Numba fallback (algorithms/) - Pure Python implementation for debugging
  • TraitsUI GUI (gui/) - Full-featured graphical interface

Key Features

  • Dual-engine architecture: Use fast C/Cython (optv) or debuggable Python/Numba (python)
  • Identical results: Both engines produce the same output (within floating-point tolerance)
  • Backward compatible: Works with existing optv and pyptv code
  • Easy installation: Pre-built wheels for Linux, Windows, macOS

Installation

Quick Install (Recommended)

Most users will want the GUI included. Install with:

uv pip install openptv2[gui]

Don't have uv? Install it first:

curl -LsSf https://astral.sh/uv/install.sh | sh

Alternative with pip:

pip install openptv2[gui]

Verify Installation

python -c "import openptv2; print(f'openptv2 version: {openptv2.__version__}')"
python -c "from openptv2 import Tracker; print('Tracker imported successfully')"

Base Install (No GUI)

If you only need the library (e.g., for scripting or batch processing):

uv pip install openptv2
# or
pip install openptv2

For Developers (Build from Source)

Prerequisites:

  • Python 3.11, 3.12, or 3.13
  • CMake 3.15+
  • C compiler (gcc on Linux, clang on macOS, MSVC on Windows)
  • Cython 3.0+
  • NumPy 2.0+
  • uv (recommended) or pip

System Dependencies

Linux (Debian/Ubuntu):

sudo apt-get update
sudo apt-get install -y cmake build-essential python3-dev

Linux (Fedora/RHEL):

sudo dnf install -y cmake gcc gcc-c++ python3-devel

macOS:

# Install Xcode Command Line Tools
xcode-select --install

# Install cmake via Homebrew (optional, if not using system cmake)
brew install cmake

Windows:

Step 1: Clone the Repository

git clone https://github.com/openptv/openptv2.git
cd openptv2

Step 2: Install Dependencies and Build

Using uv (recommended):

# Sync all dependencies and build the package
uv sync --extra dev

Using pip:

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install build dependencies
pip install scikit-build-core cython numpy

# Install in development mode
pip install -e ".[dev]"

Step 3: Verify Build

# Test imports
python -c "import openptv2; print(f'openptv2 version: {openptv2.__version__}')"
python -c "from openptv2 import Tracker; print('Tracker imported successfully')"

# Run tests
pytest tests/ -v --tb=short

GUI Dependencies

The [gui] extra includes:

  • traits, traitsui (Enthought framework)
  • enable, chaco (visualization)
  • PySide6 (Qt bindings)
  • scikit-image, pandas, matplotlib (analysis)

Installing from Binary Wheels

Pre-built manylinux wheels are available for Linux:

# Using pip
pip install openptv2

# Using uv
uv pip install openptv2

The wheels are compatible with glibc 2.17+ (CentOS 7, Ubuntu 14.04, Debian 8, etc.)


Building Binary Wheels from Source

See BUILDING_BINARY_WHEELS.md for detailed instructions on building portable binary wheels using cibuildwheel.


Troubleshooting Installation

Common Issues

1. "CMake not found"

# Install CMake
# Linux: sudo apt-get install cmake
# macOS: brew install cmake
# Windows: Download from https://cmake.org/download/

2. "C compiler not found"

# Linux: sudo apt-get install build-essential
# macOS: xcode-select --install
# Windows: Install MSVC Build Tools

3. "Cython not found"

pip install cython>=3.0.0

4. "NumPy version mismatch"

pip install numpy>=2.0.0

5. "optv module not found" (after cloning)

# The optv package is built by CMake - you need to build the package
uv sync --extra dev
# or
pip install -e ".[dev]"

Usage

Basic Tracking

import openptv2
from openptv2 import Tracker, detect_targets

# Load images
from skimage import io
images = [io.imread(f"cam1_{i:04d}.tif") for i in range(100)]

# Detect particles
targets = [detect_targets(img) for img in images]

# Track particles
tracker = Tracker()
tracks = tracker.track([t.coordinates for t in targets])

print(f"Found {len(tracks)} tracks")

Engine Selection

import openptv2

# Use default (fastest) engine
openptv2.set_engine("optv")

# Use Python engine for debugging
openptv2.set_engine("python")

# Per-call engine selection
from openptv2 import track_particles
result = track_particles(images, engine="python")

GUI

# Launch the GUI
openptv2-gui

# Or with specific engine
openptv2-gui --engine python

Batch Processing

# Serial batch
openptv2-batch parameters.yaml 1 100

# Parallel batch
python -m openptv2.gui.pyptv_batch_parallel parameters.yaml 1 100 4

Documentation


Repository Structure

openptv2/
├── algorithms/        # Python/Numba fallback engine
│   ├── calibration.py
│   ├── correspondences.py
│   ├── image_processing.py
│   ├── orientation.py
│   ├── parameters.py
│   ├── segmentation.py
│   ├── track.py
│   └── ...
├── bindings/          # Cython bindings source
│   ├── optv/          # Cython .pyx, .pxd files
│   ├── tests/         # Binding tests
│   └── pyproject.toml # scikit-build-core config
├── gui/               # TraitsUI GUI application
│   ├── pyptv/         # Main GUI package
│   ├── plugins/       # GUI plugins
│   └── tests/         # GUI tests
├── lib/               # C core library
│   ├── include/       # C headers
│   ├── src/           # C source files
│   ├── tests/         # C library tests
│   └── CMakeLists.txt
├── openptv2/          # Main Python package
│   ├── __init__.py
│   ├── calibration.py
│   ├── correspondence.py
│   ├── engine.py      # Engine selector
│   ├── tracker.py
│   └── ...
├── tests/             # Integration tests
│   ├── engine_comparison/
│   ├── fixtures/
│   └── integration/
├── docs/              # Documentation
│   ├── algorithms/
│   ├── developer_guide/
│   ├── sphinx/
│   └── tutorials/
├── scripts/           # Build helpers
├── CMakeLists.txt     # Root CMake build config
├── pyproject.toml     # Python project config
└── README.md

Engine Comparison

Feature optv (C/Cython) python (Numba)
Speed Fastest Fast (JIT compiled)
Debugging Harder Easy
Visualization Limited Full
Use case Production Development

Testing

# All tests
pytest

# C library tests
cd lib && mkdir build && cd build && cmake .. && ctest

# Engine comparison
pytest tests/engine_comparison/ --validate-engine

# GUI tests (headless)
pytest gui/tests/ --headless

# Integration tests
pytest tests/integration/ -v

Migration from optv/pyptv

openptv2 maintains backward compatibility:

# Old optv code (still works after installation)
from optv.tracking_framebuf import Target
from optv.tracker import Tracker

# New openptv2 code
from openptv2 import Target, Tracker

# Both work identically

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests: pytest
  5. Submit a pull request

Development Workflow

# Set up development environment
uv sync --extra dev

# Make changes to source code

# Run tests
pytest tests/ -v

# Build documentation (optional)
cd docs && make html

License

LGPL-3.0 or later. See LICENSE for details.


Acknowledgments

openptv2 combines work from:


Contact


Helper Scripts

The project includes scripts for building and testing:

Script Purpose
scripts/build_wheel.sh Build binary wheel from source
scripts/install_wheel.sh Install wheel in clean test environment
scripts/run_tests.sh Run test suite in test environment
scripts/Dockerfile.slim Slim Docker image for testing

See BUILDING_BINARY_WHEELS.md for detailed usage.

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

openptv2-0.1.5.tar.gz (2.0 MB view details)

Uploaded Source

Built Distributions

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

openptv2-0.1.5-cp313-cp313-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.13Windows x86-64

openptv2-0.1.5-cp313-cp313-musllinux_1_2_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

openptv2-0.1.5-cp313-cp313-musllinux_1_2_i686.whl (6.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

openptv2-0.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

openptv2-0.1.5-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (6.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

openptv2-0.1.5-cp313-cp313-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

openptv2-0.1.5-cp313-cp313-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

openptv2-0.1.5-cp312-cp312-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.12Windows x86-64

openptv2-0.1.5-cp312-cp312-musllinux_1_2_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

openptv2-0.1.5-cp312-cp312-musllinux_1_2_i686.whl (6.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

openptv2-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

openptv2-0.1.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (6.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

openptv2-0.1.5-cp312-cp312-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

openptv2-0.1.5-cp312-cp312-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

openptv2-0.1.5-cp311-cp311-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.11Windows x86-64

openptv2-0.1.5-cp311-cp311-musllinux_1_2_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

openptv2-0.1.5-cp311-cp311-musllinux_1_2_i686.whl (6.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

openptv2-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

openptv2-0.1.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (6.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

openptv2-0.1.5-cp311-cp311-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

openptv2-0.1.5-cp311-cp311-macosx_10_9_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

File details

Details for the file openptv2-0.1.5.tar.gz.

File metadata

  • Download URL: openptv2-0.1.5.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openptv2-0.1.5.tar.gz
Algorithm Hash digest
SHA256 e4aeb2273aa56ce098ad7da73fdf08ca475dc11f5957a726213e857da1fa3abb
MD5 255666d932188932b55d5843be746e72
BLAKE2b-256 630705cedd25e19fb09283a03f32a77ad5f9894a8e2e27447704633512f8067a

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5.tar.gz:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: openptv2-0.1.5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openptv2-0.1.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 37ecada0c0b1ed6456140070e5910b5406ca336159a3f1442366d7a4343c4ca6
MD5 cb409098caa9298d3d1ae1b716a62563
BLAKE2b-256 029f87b2fc054744124ca4de5a7e5b6b5833fca04de700b1c43586b8853ee902

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp313-cp313-win_amd64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e1c4065edbe092b4134adfb56623849aba3f5b314d8d8ae30ed7b9b3eadc4960
MD5 587392b811eda04610feb89dd148fe35
BLAKE2b-256 400d0b648d03ce24ef79bcccb7e884103050a85c9a47eaa81d458dca82333c59

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8cea7ea05dc2f245fb27ff0c49a7a2a272be0fa12a3f8dd5cbdae2723737a284
MD5 23dfb41532faf308df58172828f22c98
BLAKE2b-256 6ed801c991d35d22be8c7fd26907b2486c465a1dbe649a6eb69e977b27013f7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp313-cp313-musllinux_1_2_i686.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e346f057665b5c7e7bd535a413090ca322040768ec51ef83a2c5993470faf9a3
MD5 15d32df0ddc4f5cffce8f39d14451017
BLAKE2b-256 3a223a88512e383da130db111bd4de344d3b8b0c2ffc65f8459eae9ee36ea544

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9965279a7f7270ecf51e4a06743812a3c9d3db0b82880471a2a7f3340f50a5f3
MD5 52acdc67d8366cce3f66ddf00a2f73d9
BLAKE2b-256 0f46f8d299108bf390068f9252e512eacf78804ec9e405a54fed442267a602f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 032cf8963c05bf1d2d70a23ae664e093bc7626666f070048527669d26cad2ec7
MD5 cfb31d727e73a636480fd9db494d16d6
BLAKE2b-256 fc0cb555848c94d5cdb5dd4eae385b490cab87cdcfd98f070e729faa0a1c3fb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 55fab0c52a89913bbc21ecbb4e1cb49de4ad6f27e248c4c3762db45cbdb24a5b
MD5 b3853141c08a8db5439361a8168df81a
BLAKE2b-256 4ce3e8390dd648012cd7b6d5b5e4adfbb83af7e35f9ae172b529daa6e4899433

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: openptv2-0.1.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openptv2-0.1.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f025563231a09341bca6d13c0460064d0cd1d66ae259cefdfd7b0ebea4c44c77
MD5 b4211f53fae7688cafcb6e14a3eb3066
BLAKE2b-256 7abdcac344d53335c21abb814bbe522a841b0312336eeaa2a104516254144022

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp312-cp312-win_amd64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fa34e6f5d646fe9f0607a75ecf63b12a5ed8da421b0cbaa3c46b24a10c2dc99a
MD5 e2b63f49d829e8bc11e5b7f83ea481f4
BLAKE2b-256 bffbdeabbbafc99cc7134131b5499e60e4e72b9088d50a18ac6f87f688ca3672

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 9a9e4fcf304ded9182d56767004ba6c4d1a5d1d2d20c39a1cb8457aabac5360f
MD5 d1de8164cf113be64daee177b8a3fddb
BLAKE2b-256 b71316a3e956f781f095331ca4021aa3e8223c9017b591c2fc15fb81781d2ba4

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp312-cp312-musllinux_1_2_i686.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aba2e93de986bd75e3078b78ff0f8a0b116e2c6a532eeff72e85797d3cb1ea48
MD5 17fd2381d986653e81bcf31deca3c6d0
BLAKE2b-256 98ccf70a4a3ca81a261fdb854f14be81585c5caa1429f9e19e5219f1493787d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6f4bf6cab1588cfd5f289fb47e6e9d4571c0f4eef77d1261a4125ce729590842
MD5 ed8d4904c50e8ffc12fbffc1d61375c3
BLAKE2b-256 25e26912a5c0d910c815d76677d5ce45a841473b86f91e0ccc05011c423a82b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f5388a77e150068c30ee77ec054de9a7b158d281ff439db825d373b0ed78c47
MD5 d982e23374e37b1eafb6dd0fb54dd300
BLAKE2b-256 5b181afc2b2c73f58b13f31c64759b21ae70565d93370000d545e09580322486

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 52405805d2a44a98f3a5eed17451ecb1c604450e6d9261df915fb83512792460
MD5 02020c3452ce822b24c8aa6dfaecbc89
BLAKE2b-256 854811b448bcd22c90467489f4a10bb4347e60a83d9973610d0801ca75e4c505

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: openptv2-0.1.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openptv2-0.1.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6503597224ab2dae0fa738e4379fb5cc8a631242d1f65c7619e740ab8e20fb8f
MD5 a6f7eac61c446dbc7319ea72e5809238
BLAKE2b-256 d1a81b4f0cfbfa32f6057e773b1872cc4b8d3dd57c2c0e99e162130ab5399248

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp311-cp311-win_amd64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6905f7b79ad856d8c20ed0808468018367b87ee0675461e6a9010a6dc0d587db
MD5 8a1c283290911e21608e0cccad58bbca
BLAKE2b-256 b77d98590c976387e25523329a50057be0e3549af7265e3f20c72d88e83a85a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 258e5f7925bba090787a09c51bd698f8d6e183327e32b988c3d5194f367c89bd
MD5 dfc01e177b6021ae2bbca510497f2cd2
BLAKE2b-256 58cff72ee424e9502b778206e51df32956347c7886e484093c7deeeaf368c647

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp311-cp311-musllinux_1_2_i686.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba98cddd95ce4cfa72d27a7eccd11e5d7ecbd81ac148e54959140e2d879110d2
MD5 ebd2c4e05a4b55d4aa14b3085eaa61b1
BLAKE2b-256 38aaa3864348d35ab35bd4f7559e647aa9c3f801eef281fcf28fcd16e8ce9e19

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e6f963666fd9d15a3e1db9cf96a252f6df5fe56d269e2dc2a8de335573f58cdc
MD5 3d5086f0ea125a524502a323a42e1c9b
BLAKE2b-256 0869543025eaf140886e39b517e920d549fdab5a35686d77fb80605f4d02dc24

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 511612644f8e8dd6c184a82c56f0d14602320d54235cc4f6f235ffd8c4ac9edf
MD5 89bcadf825b0ce90641d2743c46e19ba
BLAKE2b-256 e820e9ca0a9ca6c53837172ebee6c2264c6293a4ed37c909a1135271292a57d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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

File details

Details for the file openptv2-0.1.5-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e5f6875c5dac315eaa7fbbf0dcd749e49e73103bf73e29b9a1ce114089e42336
MD5 42390d59bf327021445827b86f52dec1
BLAKE2b-256 17ea65f29eec79b594e9cf94db7041be26936c9727df24481b5ab706cbd8386f

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.5-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: cibuildwheel.yml on alexlib/openptv2

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