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
cmakefrom 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
The runnable example scripts ship inside the installed package, so they are available immediately after pip install pypvfs — no repo clone required.
| Module | Extra deps | Description |
|---|---|---|
pvfs_tools.examples.pvfs_create_cli |
— | CLI to create a synthetic PVFS file |
pvfs_tools.examples.pvfs_to_edf_converter |
pypvfs[examples] (pyedflib) |
Tk GUI: PVFS → EDF+ |
pvfs_tools.examples.pvfs_to_video_converter |
pypvfs[video] (av) |
Tk GUI: PVFS video → WebM |
# Locate or list the installed examples
pypvfs-examples
pypvfs-examples --list
# Copy them out to a directory you can edit freely
pypvfs-examples --copy-to ./my-pvfs-examples
# Or run any of them directly
python -m pvfs_tools.examples.pvfs_create_cli --help
python -m pvfs_tools.examples.pvfs_to_edf_converter
python -m pvfs_tools.examples.pvfs_to_video_converter
The same scripts also live at the top of the GitHub repo under examples/ for easy browsing; both copies are identical, the package build just relocates them into pvfs_tools/examples/ so they are usable without cloning.
Documentation
- Quick reference: docs/pvfsQuickStart.txt
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.
- Configure trusted publishing on PyPI for this GitHub repository and workflow
publish.yml(OIDC — noPYPI_API_TOKENin repo secrets unless you choose that path). - Bump
versioninpyproject.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 tagv*runs.github/workflows/publish.yml:cibuildwheelbuilds amanylinux_2_28_x86_64wheel inside the PyPA manylinux Docker image and awin_amd64wheel on a Windows runner, then uploads both (plus the sdist) withpypa/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. - Manual run: Actions → Publish to PyPI → Run 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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypvfs-1.0.4.tar.gz.
File metadata
- Download URL: pypvfs-1.0.4.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b91697b9363aeaf2353b2086cb68be658d31434f4e3ffc99fa00d5e47d611071
|
|
| MD5 |
5aade75fb246dc34285ecb99ef0298b8
|
|
| BLAKE2b-256 |
76fa07b557e1c29dc3efaab0b5725d711c3f1a84803bb81cdf2b8acb790801b6
|
Provenance
The following attestation bundles were made for pypvfs-1.0.4.tar.gz:
Publisher:
publish.yml on Pinnacle-Technology-Inc/pypvfs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypvfs-1.0.4.tar.gz -
Subject digest:
b91697b9363aeaf2353b2086cb68be658d31434f4e3ffc99fa00d5e47d611071 - Sigstore transparency entry: 1524889888
- Sigstore integration time:
-
Permalink:
Pinnacle-Technology-Inc/pypvfs@bc71910ceba78a8d8b2b7151967b86a1eb793ea4 -
Branch / Tag:
refs/tags/v1.0.4 - Owner: https://github.com/Pinnacle-Technology-Inc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bc71910ceba78a8d8b2b7151967b86a1eb793ea4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pypvfs-1.0.4-py3-none-win_amd64.whl.
File metadata
- Download URL: pypvfs-1.0.4-py3-none-win_amd64.whl
- Upload date:
- Size: 108.3 kB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca27a245208958d2734606438af48cd5d1ee428a030df86d31307823ec29ff70
|
|
| MD5 |
484f31217ba52861c0139dd1d75d5cf8
|
|
| BLAKE2b-256 |
8baffa0127eb07d3ff80553881170f332c263613a4b5b6e16c1a103ea505feee
|
Provenance
The following attestation bundles were made for pypvfs-1.0.4-py3-none-win_amd64.whl:
Publisher:
publish.yml on Pinnacle-Technology-Inc/pypvfs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypvfs-1.0.4-py3-none-win_amd64.whl -
Subject digest:
ca27a245208958d2734606438af48cd5d1ee428a030df86d31307823ec29ff70 - Sigstore transparency entry: 1524889897
- Sigstore integration time:
-
Permalink:
Pinnacle-Technology-Inc/pypvfs@bc71910ceba78a8d8b2b7151967b86a1eb793ea4 -
Branch / Tag:
refs/tags/v1.0.4 - Owner: https://github.com/Pinnacle-Technology-Inc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bc71910ceba78a8d8b2b7151967b86a1eb793ea4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pypvfs-1.0.4-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pypvfs-1.0.4-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 573.1 kB
- Tags: Python 3, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7fca12cfa5a1b3b3ecdf5b932110b3743e53d341e31984a29f97deef0a286371
|
|
| MD5 |
791a453dadfc83d1925c95473ee5d1f6
|
|
| BLAKE2b-256 |
ccd0f336a72776f4d409e4a89c4e6b364c37a87c86754c8c8c592056366e90b9
|
Provenance
The following attestation bundles were made for pypvfs-1.0.4-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on Pinnacle-Technology-Inc/pypvfs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypvfs-1.0.4-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
7fca12cfa5a1b3b3ecdf5b932110b3743e53d341e31984a29f97deef0a286371 - Sigstore transparency entry: 1524889905
- Sigstore integration time:
-
Permalink:
Pinnacle-Technology-Inc/pypvfs@bc71910ceba78a8d8b2b7151967b86a1eb793ea4 -
Branch / Tag:
refs/tags/v1.0.4 - Owner: https://github.com/Pinnacle-Technology-Inc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bc71910ceba78a8d8b2b7151967b86a1eb793ea4 -
Trigger Event:
push
-
Statement type: