Skip to main content

Python bindings for Pinnacle Technology PVFS (virtual filesystem for physiological recordings)

Project description

pypvfs

pypvfs is the PyPI distribution name for Pinnacle Technology PVFS — a virtual filesystem used for physiological recordings. This is not related to the historical HPC “Parallel Virtual File System” or other unrelated “PVFS” acronyms.

After installation you import the pvfs_tools Python package (same module layout as in the former Morelia monolith):

pip install pypvfs
from pvfs_tools.Core.pvfs_data_file import PvfsDataFile

Optional extras

Extra Purpose
video WebM/VP8 export (WebMWriter uses PyAV). pip install "pypvfs[video]"
test pytest + av for running the test suite locally
examples pyedflib + av for the Tk GUI EDF and WebM examples

Native library

The package ships platform-specific native libraries under pvfs_tools.Core (.dll on Windows, .so on Linux). On PyPI you receive a prebuilt wheel for your platform, so pip install pypvfs does not require a C++ toolchain.

If you install from source (sdist or a checkout), pip will invoke scikit-build-core which compiles src/pvfs_tools/Core/pvfs.cpp and pvfs_wrapper.cpp via CMake. You will need:

  • CMake ≥ 3.15 (pip installs cmake from PyPI into the isolated build env if your system lacks it)
  • A C++17 compiler (g++/clang++ on Linux/macOS, MSVC 2019+ on Windows)
pip install -e ".[test]"   # builds the native libs and installs in editable mode
pytest

Examples (repository examples/)

Requires a working pypvfs install; GUI examples need a display.

Script Extra deps Description
examples/pvfs_create_cli.py CLI to create a synthetic PVFS file
examples/pvfs_to_edf_converter.py pyedflib Tk GUI: PVFS → EDF+
examples/pvfs_to_video_converter.py pypvfs[video] Tk GUI: PVFS video → WebM
pip install pyedflib
python examples/pvfs_to_edf_converter.py

Documentation

Tests

pip install -e ".[test]"
pytest

Repository

Source and issues: see Repository URL in pyproject.toml.

Publishing releases

Step-by-step (tags, GitKraken, PyPI checks): docs/RELEASE.md.

Do not rely on twine upload from a developer machine for routine releases (credentials drift and audit pain). Use the GitHub Action instead.

  1. Configure trusted publishing on PyPI for this GitHub repository and workflow publish.yml (OIDC — no PYPI_API_TOKEN in repo secrets unless you choose that path).
  2. Bump version in pyproject.toml, commit, then create and push a version tag matching your policy, e.g. v1.0.2:
    git tag v1.0.2
    git push origin v1.0.2
    
    Pushing tag v* runs .github/workflows/publish.yml: cibuildwheel builds a manylinux_2_28_x86_64 wheel inside the PyPA manylinux Docker image and a win_amd64 wheel on a Windows runner, then uploads both (plus the sdist) with pypa/gh-action-pypi-publish. The manylinux image guarantees a low glibc baseline so the published Linux wheel works on RHEL/CentOS/Rocky/Alma 8+, Ubuntu 20.04+, Debian 11+, and Amazon Linux 2023 — not just the build host.
  3. Manual run: Actions → Publish to PyPIRun workflow (same build/upload path).

Note: ptech-morelia already uses a similar pattern (tag push + matrix build + OIDC) in its packaging workflow — keep both projects on the same release habit so versions stay aligned when you cut coordinated releases.

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

pypvfs-1.0.3.tar.gz (19.9 MB view details)

Uploaded Source

Built Distributions

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

pypvfs-1.0.3-py3-none-win_amd64.whl (91.4 kB view details)

Uploaded Python 3Windows x86-64

pypvfs-1.0.3-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (556.2 kB view details)

Uploaded Python 3manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file pypvfs-1.0.3.tar.gz.

File metadata

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

File hashes

Hashes for pypvfs-1.0.3.tar.gz
Algorithm Hash digest
SHA256 e2d35f3482d7500f80df9e16fa6459b361847ff3203ebace6c4d937b28122619
MD5 7b274472d6d6d7e65e23be0fbbde37eb
BLAKE2b-256 500d19811899074add811b7c64d0c901bda10698b7410fc8a5b19c17732a3cc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypvfs-1.0.3.tar.gz:

Publisher: publish.yml on Pinnacle-Technology-Inc/pypvfs

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

File details

Details for the file pypvfs-1.0.3-py3-none-win_amd64.whl.

File metadata

  • Download URL: pypvfs-1.0.3-py3-none-win_amd64.whl
  • Upload date:
  • Size: 91.4 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pypvfs-1.0.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0e2d2ab104b5541b8be35862bd06b26ca771f61abc01e3b707a32642fb1e4c19
MD5 767d83c5adb070a483332242dc96112c
BLAKE2b-256 41272a29a9d0f7305818b69c366b607de9926f75202458d9e3afca1cc942c553

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypvfs-1.0.3-py3-none-win_amd64.whl:

Publisher: publish.yml on Pinnacle-Technology-Inc/pypvfs

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

File details

Details for the file pypvfs-1.0.3-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypvfs-1.0.3-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9e9f7980d19f08adaafb40b112fd43dfcc1bed11548df382eb1c69df091b766c
MD5 d84d11ec612ae9c8c7870ef21634e5e8
BLAKE2b-256 6fe7fe4a0f994296ad571a16d36bbd07327b7e098199c729b419bb86f0dabc8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypvfs-1.0.3-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on Pinnacle-Technology-Inc/pypvfs

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