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

For End Users (Pre-built Wheels)

Prerequisites:

  • Python 3.11, 3.12, or 3.13
  • pip or uv package manager

Option 1: Using pip

pip install openptv2

Option 2: Using uv (recommended)

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install openptv2
uv add openptv2

Verify Installation

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

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

Installation with GUI Dependencies

The GUI requires additional dependencies:

# Using uv
uv sync --all-extras

# Using pip
pip install -e ".[gui,dev]"

GUI dependencies include:

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ i686

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ i686

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ i686

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

File metadata

  • Download URL: openptv2-1.0.0.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-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7ed8fec772cfadd60b52b0f6c1465c6d06441e1d6e828bb3675ba027b2fc3ad6
MD5 03800107fab5a3218bb04e32906d89e6
BLAKE2b-256 420e7b72ca07d9f352eb9bf8e82d36e5550b5d3059a669e702308b1c40999c7f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: openptv2-1.0.0-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-1.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 96c91f600de0731a98eb7da79835f812cdc5284b7e5da16de67d74935b3deaec
MD5 874b15bb00e2808f830aae1973388945
BLAKE2b-256 ab8a646ffacff829239d01930440809c63d2d75f3ed4244ff6c93fb832eb3591

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a67f0f3a2b138021cdaaf5f38401d7b88c18a7a5091d100ecbb5ebf109bbde5e
MD5 5245bdda52823226d55dd154bb7862bd
BLAKE2b-256 2be5c422363a73f146514a0e22756b59f1e0e951b7bdaa9995a185ec0078ef02

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 85e6ad0fbdbdc9ec558c64deabd13665f449d1fd56e93df1dde0b60f0937e2a1
MD5 82004cd4fc43973626b302cae0c73fb0
BLAKE2b-256 f9d2eb6286b9f102cb60153f59652f72bc5dd098f659ea0ab84a1c53574b04b2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e3e1c9fccdd751a6535f35a99ccbcc3bb08379d54b735cf117c3dd5dd5f1a281
MD5 b3fb51b37870699af7a3bec093fc94c3
BLAKE2b-256 c55f9bed5d32e8e652e8814c7af29d2e1e165798f026558929698bbb7297d1fb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 49d0360d6fd3a2e4964a916dcfbe3ec820f59bd7316639d25faf5ea9250ecc2a
MD5 e9c43cb74492ab0580b9f27805ea2327
BLAKE2b-256 35c5e9ac32cb253c7224df0bbcde7c136dfed48d66208cd1df51a6b5b3536a24

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 92641d4295cf7385bf9af1fa739be7a8038c960fd955253a6b61b0e0a59e1e0f
MD5 2725f34bb756bc9300c80ec890a256a4
BLAKE2b-256 9ad25492e19d16e00ab4cabbb7711fdba4527564f5eae3c0341e797838b11e2c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c45d3176aa0a642af2cfcd942cb3faa71a7538e94f5e03773a1ea3f75c24866e
MD5 2928222add05c703eebf8479fbfda470
BLAKE2b-256 cb53279749827a0d8217d99f3ea47acc39db29d6ff30e2d93a007f3e59e3ddf9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: openptv2-1.0.0-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-1.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4d727d68c195e1552a1ddfe8f920a5bf5ab4f5826255a928fa8bdd560d0e8762
MD5 d54d4b39e1b2b3af582784c43b246136
BLAKE2b-256 22e81951193af008e4e77745f603be8da45c83720bd6e2a4ef6657bc598660b8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f8bfce7854560c35ac65b1db26ac25497457e09d2e463f456e2352b91b7c7c94
MD5 7a9b163dbe35653fc22acb8f307f4031
BLAKE2b-256 b1662d521a17e395a803f770b13b5a31043c249d9c1054a79e6dc92046cacb1d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 136921d23458666c240d5b89c707635615fadc4b2cb1d0fbf6d14b09fcc98694
MD5 23918d267a0680fd821aafd580c45bad
BLAKE2b-256 dda4a4f47d22e81971ec22d4935023bbfe6b583efb4dd28694007dea6ca2b235

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b80c1f479f5ccdbedee0ea0c841bfc309f10ab8c6246545d0ce1554b54b3a14e
MD5 597ef7e7b98aa658ed3cad4a97007232
BLAKE2b-256 f8918a34da26d32e4e0d83e6a69b6da01849c00f9aaa27ecabb79643cc4ba9ff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 de144df122012e87b45058e8972419e1da3afb563883b94edd4d6a779b790b59
MD5 312db72e5df961bd12f97620864b8f2d
BLAKE2b-256 9360e664ec88c2fb3cb2187082727f5db6024e77bd245bedf105f86ec499a3fa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 090a12501c309117c9d1f4a0f9e29eb255bb53789e3f760826bd08044ae342ba
MD5 20c7e8d1cc4710d55b03ac75f1342703
BLAKE2b-256 ef9add601aaa82627a5cc1a9945692033826148e431468aaf9020e0b2fff9822

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0ab22892b99f02a5953c624e4c34f363f99c1907a402825b8c87f180fc4a3562
MD5 4e0613f3909eeccc8764f1316cfec6cf
BLAKE2b-256 199a7c2480fb6621da8479592f0791527c82d8911031c74dcc511927f5fc774a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: openptv2-1.0.0-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-1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 711d067c93e45c0fe436339e7ef498bf5473b3c043bbd4c1ef86c7f67c0725a5
MD5 c3e713b95f835e878cf74a4c3efbb39c
BLAKE2b-256 394ed6ce93ed8b381cbd42c18f31ef1ed78bf9da6f41f857a83fa6cde838ae77

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d3aa16077c3a55b8befce2e5ffd54b80dde1f90814d71a9a302f2c56db928f01
MD5 a44f9f628e33c1a633b6a36cdecb4379
BLAKE2b-256 b0945ac2114dac7650edbf9861c54655c0560646241496504a79b30ed2dcffd3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 cb73c428da5b94aa47eac629efad40735da1e6313620427dbf8cd6639d14d1a2
MD5 cab65157307b2cd7072f1e354b445a57
BLAKE2b-256 6ba36a86908b07b7ca51ecf72f9e413fd8733366ff85663af50d4a423fc48e0d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 09c3588c45762d1ec36badb8a3467c2b4eced895050fdd06c2f529e73945e0a3
MD5 031e7ea86d1f214d27a289f0dd6b96b1
BLAKE2b-256 a8877b8d48265e9fb65ba291fad020e364800b50ee7cb6627a7c901c8dff4e19

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 22a3934293f67f2414886c0083caefad671d847baeac79fa9d453e392c483bcc
MD5 2ab458e13f192f090f6170b0088197bb
BLAKE2b-256 bf554d863246bd46725faab6074ab5a3d56b729315f0234498c9e88b9cdd82dc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4bfe29944314f70c7f5578dd2563f85fcea9a8bf61fe02a950c2856da6dbf483
MD5 1d66e82ff0c524c5a3b6a4347451b977
BLAKE2b-256 8de2e1baee736369beb5fd63ce015a1ef2f3f006473194eadb123d89aaabb2a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for openptv2-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 eb892ae0f47b8bc665ac70b4247182adfc6f6245eda2d3faa75881948e59b63d
MD5 f7087b5d2e33894d34c1848dc1c7bfe1
BLAKE2b-256 fe634bf953343fb1c20c51798116e793e1a82199e3532393fc04a60769c7f359

See more details on using hashes here.

Provenance

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