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.6.tar.gz (1.9 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.6-cp313-cp313-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.13Windows x86-64

openptv2-0.1.6-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.6-cp313-cp313-musllinux_1_2_i686.whl (6.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

openptv2-0.1.6-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.6-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (6.2 MB view details)

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

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

openptv2-0.1.6-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.6-cp312-cp312-musllinux_1_2_i686.whl (6.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

openptv2-0.1.6-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.6-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.6-cp312-cp312-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

openptv2-0.1.6-cp311-cp311-musllinux_1_2_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ i686

openptv2-0.1.6-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.6-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.6-cp311-cp311-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

openptv2-0.1.6-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.6.tar.gz.

File metadata

  • Download URL: openptv2-0.1.6.tar.gz
  • Upload date:
  • Size: 1.9 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.6.tar.gz
Algorithm Hash digest
SHA256 88d02182dfe3d2456c3d4dc601eab442921bab035e5892bee096c4695815e25c
MD5 2fbbfceb4b1c898057b2d602adcc46ab
BLAKE2b-256 eeb855f90da5b7c6c1384bc50f6bdc00eba98af631573c6d09d0d262a5fa6d56

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6.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.6-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: openptv2-0.1.6-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.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 67a81c2f46cd6d70cf65cb5ba8e7ca588bfacb0965a019405dfc09f474638f39
MD5 f732ec5ca3612f90c44122f0353dd402
BLAKE2b-256 ab7259348c755f07f4890b1e604a708f070ccd881c7e9fabf3b20686a7ddc6f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8f4f1a16346835e0a43574736fe173af5507360b14ccbe2245ff97795081b30d
MD5 11e40a972fde8b38b23d311b89eb29e0
BLAKE2b-256 ac333c88b162033cca28cc0e45b28c47189c59c5e47f32cc3f9309373793214b

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 35d8e752c491e982d9ec00ab08e112b0a396f68d17e1143c143a66092d4a0706
MD5 7b72d1be6cec4241ab37cd3d2ebd2b74
BLAKE2b-256 372d193d198663a8793b4936f508e9f305a9570dc7db989a13847d9c7564b0ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9e6ad23f0bc1c9dbeb77fbd305cb547fdebefa89d038d3f2e9ef5a0c8f2e5791
MD5 1be9ca1802c4fd6bc5d0c0c07516c579
BLAKE2b-256 11bb554003bf2eb6d897a8c5704bee61e8d84183aa63faa0092e5d97a57988b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4970eba8c4133e5efcf79009dadcdcd31348916ffc3246ecfdbdd20596f7483c
MD5 3a52c7782ad8461bc455928373d74468
BLAKE2b-256 1c14035d3c09a6066e30398f2ac28d2c742e292ab30d0b1801bb316463b290b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e288f3aff48da70e5241c8ce8005026a1c0643fcf30ee810ac85e2d90dc502f
MD5 b15d7f739933d27066bf7abb3925ceda
BLAKE2b-256 6096f7f760eb6a8b4c8a58ed884ae71aeba3f1a282ec5cb35a1ee9fcb5be5da6

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6f7d6b2e6fd6c12820c881dcd0983b607281dcbdd5701f60746c4d1dae6e6f81
MD5 1e3e90a2e59f7e29e90312af35455d4d
BLAKE2b-256 827f3b0aa6e62adb0783d1bc81e2ef87db1d9f38b775e30d38817df41c8fb8a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: openptv2-0.1.6-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.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fe287eae616d3eab3cbd57a4d0d4ece7a814fb2240a608bb5148b70219ee2e0d
MD5 6100b995642c5e0bd0b6d38ef8719c81
BLAKE2b-256 5c4d839f27811fe510498bec01964b4bec7a159c287560d7933e83ad7a2c5a04

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1af6a1da939a4a5fab976791a73f0dad4d0ab5295511802ad55ce28be5b27482
MD5 2be8858496f3f5a69ca81aab610e47cb
BLAKE2b-256 b349678013025e6b39412356b442385211ce5d0b26b8690fe1d0c7e384b3d498

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 3cc8b7a5cd2d20fa9385018999b7c51cf767698343a91ad8d30db6e41e4efc44
MD5 2b8653dc23239592e96bdb0b00dcdaf2
BLAKE2b-256 94576d76bd2522b787aac4082d2d26972d330f4c439dcd5feff8b027111ae1a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5cddfc247128d7c224f5fe87b0c7a10ce1e59ff183add050313137e048e9ab52
MD5 6c99c033410a3e0858880ddb06d81c86
BLAKE2b-256 1daefd05cd9397c77820a92b17a6104fba1748eceee7ce0caf0711af1216e473

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 dc321b912364d429addff582d27391e9454e5d26ba9a648be015c77be0dce3d4
MD5 7e0719025b81d55654994386641bd0fd
BLAKE2b-256 3c66f139c670dbe3d70c970f77a159d85dff8f5a99970b5a8a271645080cbfe0

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1603a2fb90cd6fe25c7b639c79a1415b00971161bd7f0e67fdf7dd5e58ac22ea
MD5 54ecdc0f61ce23a15c79aca8876fb810
BLAKE2b-256 c1ef10b61718bcc8ef9bcb5fa1360e08a904dc65a29496548133cf2c4292c526

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 2495b4c211e3eeba057ab18a02de8de5f72002a4805f0fa95a29160fee5c172c
MD5 08bc78c9cf4a7fa0ccc1d7dc8065cea6
BLAKE2b-256 6c1455e5f4d849ad20c57b08e6de5904e70b0b124c97ab55e96dc47713b639db

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: openptv2-0.1.6-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.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e7d820409f577d1778ecd893ec8582081d8e50adc37f100154750491c419c01c
MD5 352c1fcbbf5e61ca4e32fa712b8e4221
BLAKE2b-256 080af56446c328ec56058fd3b80d60b07740ffc878f21dba95f969878f7d7613

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 557c4e925f22c2c935f9837cab614247904cf279db3b690d7cfb474f5abe1e9f
MD5 e9373a8627c348c8c0f48fe323991e4e
BLAKE2b-256 1a1f9590fe81c1c0a9bfd7b6c360cb1b98abe01cfda221021712508131134bbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 40a4f8226de5bd1bed28f5f25967ba6b32a287fba3c395b2e30bca694f2f6f4d
MD5 5792390f703f2265ac3c75bd728ef625
BLAKE2b-256 86ada8e2af74937cd26dd7618fa08e5746cd133d31b6269eb18cd746ef158e33

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 46428dbfcffcf33e46678e88a7970923fe3f9069a1b4b83d4ada6f71fd4f0f6f
MD5 c6f7dc9ea65ed135dd5bead155582f09
BLAKE2b-256 a8e6013fb5dbbfd21b94bba0fbf6ed0e9a52cbbb35938479b32e305de512b12f

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a2bd6ec3a0c678dae07c2cf3f22691c7dfe690947248e52ef65fb0071e2e9af4
MD5 4cb21b14f4a52bd5aba3b20478c7f57f
BLAKE2b-256 1ceacca37a634e06008166f0c10a8e3a3b21ce4507758fedd28243ccad9dac04

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c297388723cae5295f7e79d9cbff8db716c2b9f49f0d588cd47fa075373f9c35
MD5 5d4cb684e5ef60adebdad2cdedbf2532
BLAKE2b-256 4145dd1ab0f81b2155ef1bf78a08f4c4f098d9be30e8d5945cca384622385823

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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.6-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for openptv2-0.1.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0bb0fe6433a0d3337a99ba87139c7947878692305de6809d867c2568119707c7
MD5 bdea4b66c68cbc41577e0ec76f86f6de
BLAKE2b-256 a3f9d564c01ac3b01679681a17bd291c800664f77e89d76ceed53759ef108d17

See more details on using hashes here.

Provenance

The following attestation bundles were made for openptv2-0.1.6-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