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]"

Python-only mode (no C/Cython build): If you only need the pure Python algorithms engine and don't require the Cython optv bindings:

OPENPTV_PYTHON_ONLY=1 uv pip install -e .

This installs ~100x faster by skipping Cython compilation. Only the algorithms/ module will be available.

Step 3: Verify Build

Always run verification inside your virtual environment to ensure the compiled libraries are correctly found:

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

# Run core tests
uv run python -m pytest algorithms/tests/ bindings/tests/ -v

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 graphical interface using the unified console scripts. Ensure your virtual environment is activated (source .venv/bin/activate) or prefix the commands with uv run:

# Launch the GUI using the standard openptv2-gui or shorter pyptv_gui shortcut
uv run pyptv_gui

# Launch the GUI specifying the C/Cython engine and working directory
uv run pyptv_gui --engine=optv --workdir=./test_data/test_cavity

# Or using the debug engine and short arguments
uv run pyptv_gui -e python -w ./test_data/test_cavity

Batch Processing

Run high-throughput processing sequences using command-line batch utilities (ensure your virtual environment is activated or use uv run):

# Run batch processing specifying the engine, workdir directory, and frame range
uv run pyptv_batch --engine=python --workdir=./test_data/test_cavity --first=10000 --last=10005

# Or using the shorter command line format
uv run pyptv_batch -e optv -w ./test_data/test_cavity -f 10000 -l 10004

# Run with legacy positional arguments (for backward compatibility)
uv run pyptv_batch ./test_data/test_cavity/parameters_Run1.yaml 10000 10004

# Parallel batch processing
uv run python -m openptv2.gui.pyptv_batch_parallel parameters_Run1.yaml 10000 10004 4

Command-line Shortcuts and Running Without uv

You can run these command-line tools without prefixing them with uv run using any of the following approaches:

1. Activate the Virtual Environment (Standard Workflow)

By activating the project's virtual environment, the environment's bin/ directory is added to your shell's PATH. This registers all entry points (like pyptv_gui, pyptv, pyptv_batch) directly in your terminal:

source .venv/bin/activate

# Now run directly without uv
pyptv_gui -e python -w ./test_data/test_cavity

2. Execute via Direct Path

If you do not wish to activate the virtual environment, you can run the built executable directly from the local .venv folder:

./.venv/bin/pyptv_gui -e python -w ./test_data/test_cavity

3. Define Shell Aliases (Global Access)

To run these shortcuts cleanly from any directory without manual paths, add alias entries to your shell profile (e.g., ~/.bashrc or ~/.zshrc):

# Add these lines to ~/.bashrc or ~/.zshrc
alias pyptv_gui='/home/user/Documents/GitHub/openptv2/.venv/bin/pyptv_gui'
alias pyptv_batch='/home/user/Documents/GitHub/openptv2/.venv/bin/pyptv_batch'
# Reload shell profile
source ~/.bashrc

# Now launch cleanly from any folder
pyptv_gui -e python -w ./test_data/test_cavity

Default Engine Auto-Detection

When no tracking engine is explicitly passed via CLI arguments or API functions, the library dynamically detects which engine to use in the following order:

  1. Environment Variable (OPENPTV_ENGINE):
    • If OPENPTV_ENGINE is set to "python" (or "algorithms"), it defaults to the pure Python/Numba engine.
    • If OPENPTV_ENGINE is set to "optv", it defaults to the C/Cython engine.
  2. Availability Check (Fallback):
    • The library attempts to import the compiled Cython bindings (import optv). If successful, it defaults to the high-performance optv engine.
    • If the C library/Cython bindings are not compiled (e.g., in Python-only developer mode), it automatically falls back to python.

Short vs. Long Options

Both styles are fully supported across all command-line scripts. Choose based on your context:

  • Short Options (-e, -w, -f, -l): Best for manual terminal use, quick debugging, and live interactive typing.
  • Long Options (--engine, --workdir, --first, --last): Best for automation scripts, documentation, and config files to maximize readability.

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.7.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.7-cp313-cp313-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ i686

openptv2-0.1.7-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.7-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.7-cp313-cp313-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ i686

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

openptv2-0.1.7-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.7-cp311-cp311-musllinux_1_2_i686.whl (6.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

File metadata

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

File hashes

Hashes for openptv2-0.1.7.tar.gz
Algorithm Hash digest
SHA256 3cc7e199221a0bf6997e904fb43fed2b634c230340c6eeb247390e3559ba6be3
MD5 83e6b09cbabe105682d868022746743e
BLAKE2b-256 7ca9bc8f7cde8ad4fe4a2793e9c86c052abef682688f407ef2c93eb15fdef1c4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: openptv2-0.1.7-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • 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 openptv2-0.1.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 30c4c660fc91867154123e5043e6fbc332b2212e413640cc1c43877f6b32fbb5
MD5 09ec1e2c7c70c7db7c3c222d6955fc42
BLAKE2b-256 e4475ba584096ff0c63e1a5573dec8a5c19b62ea1f1da4c108cfeb7799f36732

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 855383991905f011cbf44583fd67586c62d3391ba77fd9b35988f7f7a173427f
MD5 81ad6e1e535696b81b5ed3d78d123d11
BLAKE2b-256 4356fef4297a79f9f64c99da2806177481f2ca6588bbe2cc574fe586f9f0c60f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 62537f3a2f8e7c001dd7c8dd16e9aff509d137b13048e22e9c4ca2cfde39b35a
MD5 1eadf2edbaa4e960041a7febdc83af83
BLAKE2b-256 ed76b7a9421bbfcd06f74bbb4bc947b87bdd38759568f2df1478f510e163adbb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 27f620c0e59077a8fff77afb9cc15f8d3727a83b951f9a1f83d56c035eedcb0d
MD5 d568675933eadebf77a3c3689513befc
BLAKE2b-256 200240822fa6f5b94be74672d8a593f7ceed39c64729cdf7720821b7d99b21d0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 99fe1675a30bd1eba8739919b754df253567b9bbc22015a1a3587dc988ea8b35
MD5 3c754830ad30c08e68c72d729c567c88
BLAKE2b-256 d329cd5b0da8c3099ed97907af112e122255fc18f2cbf3104c4b2609165f7f2b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2bd24b9dd64a845fdb1acf80c5fbd0bebd15e6deed7404f4cc4e60ad6fd60463
MD5 7cb9c2074ebe8017cd927cec5932c8da
BLAKE2b-256 366f03cc7871646a58e20d4730b560802c5c760cb615e6c48c9318548b703e02

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 04f8386b7d5f8ba7968c7a56610dfd597d20304b60b96fda44d471a0a334d758
MD5 24eafd380539a832da45f271c9559838
BLAKE2b-256 d437033767e5ce81931e6f94bb11bdc9130ec1221c7c8fcb1e7a562057ec5611

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: openptv2-0.1.7-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.12

File hashes

Hashes for openptv2-0.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 84a3e5d2f9a64d497b856d284f6f28b40e84d28b8e71429a5595bc899f99c575
MD5 52609274adeb1cd05168ebb89acc89a2
BLAKE2b-256 b8877b5c08c24b51187c45134eb53c314bf0ab4fd9e985a867574a14c7c4cc03

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bb990b267a51622d6f939d7f5b57634c38a7c9b162dfe56d6bb5ee038dc03921
MD5 aaf1de62347dc71a7f4bba7927944b3c
BLAKE2b-256 5a07cfaaaa087168ed2250ed0c109cbc8240d04a8f05ce820824cf4ceb611f6e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 a1c058aab0c219597f04b8df0e8f26065437a74e3d8c739ffa776d1979d73c3a
MD5 21656aab896409574821891ce2ea2155
BLAKE2b-256 9c379a8ce3d565f5ef257c56cfa0f7a9f7dd3bf3399cc7e5ce6ff55c97b16f41

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2ff7a806139e083ad17ecb6b7ef867aab32d7a88f0f7b26d2383a20f1cc82919
MD5 06bf9793dde3a60499d11ffeb598655c
BLAKE2b-256 714684d5733fafc72d7bba5435059c9a9cd6241cdfedb495899d3247df41e75b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9119aebb7d2d8b468928773156ac999e9a1a49bad659ea3dfd711e370b6dc692
MD5 b183178bae17526b561e76d2f6b38ffb
BLAKE2b-256 c8f6de188bca7004d196bd06c6507f9a1a9d4a9fcc75e2f3a7881526bc776f81

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 edf2e85e5c30229918adf2efd00e4c90a60ad607d7c63bdc93acc1877aab4005
MD5 e230d00de01b3f8713fa9c339b4902d3
BLAKE2b-256 3b808d03f9409b9ddb695886c48bcf0a86ce2e45bf38b9d60987370bb48383de

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 caaf0b5a30608f55be05376c3c4dbeaccc2997e6d4bb20fbf13fa358595b09bb
MD5 748af3ca97437750be7d982757bf3896
BLAKE2b-256 54fcd28a938c3097065f0f1b3af877859083fdc0267a1e2e34340ea6f0649456

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: openptv2-0.1.7-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.12

File hashes

Hashes for openptv2-0.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 932506b1652f040256d0830783fee67d0e873a9a1fec3b50acaf93168dec2b4d
MD5 9074f2fd690053ab47a6cf181e7a0897
BLAKE2b-256 51e5943f80c08176d9fd213b124516d00a6b7573416e4f7055239406a1312268

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 380a8384873d43d7c29c894e82390865cd8a1c51f0302d36405673c1b5a98fa7
MD5 663c1e4a99aaad55ddcc5bf23cda4bb3
BLAKE2b-256 c384739f41868ea15a3b8d75f15d1f6ea5248cd089cd8f6af9da7c0f2a7be737

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 46b7b9baaf6a25850eee3f0845817d57808800e388e80aab88edd2cc2852af54
MD5 26e28127620c0abf7e5d9d384f9555b5
BLAKE2b-256 2247968c3d91c1180070a986fecb05986787aae4a869951c2ba98afd110aef0a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85e476ad514d24be84d4a379aba07844813acb5f14d9f9702ef82a210eb956c8
MD5 f4785c7e6474c8a07a1b31bd15c01066
BLAKE2b-256 4caa0c5bb31222fb665b1c7439d60c5ea529214cba7efb3a8f9942badbf15d10

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d4ec683cce5b610bf2518e87d7814b26547d89988623edd4c7d3bdb5238d7eef
MD5 c379df2b3921f5351cb11aa3010a718f
BLAKE2b-256 cc5bfda5d182448b1e722b1d068d31caccd176b004c49a7d7295428990cdf09d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b802bb4834683d47c694624424eaf62161228629ae61c5f56f6f67d2d828472
MD5 2890dd856739697c898ae29bbd1a151e
BLAKE2b-256 7c646a94a8c92741470faad0c865da5b50eaa1426eae63d7a904f980447b3491

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4affcf93857231372be1edb8919524a8144c6727f908e00824d82ac398026336
MD5 3ac5bb9aedfc07b2aa604d4ede00a93c
BLAKE2b-256 0260f7ce35b66c01124f392d1b076206fc86fd69e88525648b18a8c6f3fa8dd1

See more details on using hashes here.

Provenance

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