Python bindings for Pinnacle Technology PVFS (virtual filesystem for physiological recordings)
Project description
pypvfs
pypvfs is the PyPI package name for Pinnacle Technology PVFS — a virtual filesystem format used for physiological recordings. It is not the historical HPC “Parallel Virtual File System” or other unrelated uses of the “PVFS” acronym.
Install from PyPI, then import the pvfs_tools package:
pip install pypvfs
from pvfs_tools.Core.pvfs_data_file import PvfsDataFile
pvfs_tools provides:
pvfs_tools.Core— low-level PVFS access viactypesand bundled native libraries (pvfs.dll/pvfs_wrapper.dllon Windows,libpvfs.so/libpvfs_wrapper.soon Linux).pvfs_tools.Database— higher-level helpers for experiment databases (SQLAlchemy-backed).
Runtime dependencies are listed in pyproject.toml (numpy, pydantic, SQLAlchemy, Pillow).
Supported platforms (PyPI wheels)
Published wheels target 64-bit x86 only:
| Platform | Wheel tag (typical) |
|---|---|
| Linux | manylinux_2_28_x86_64 |
| Windows | win_amd64 |
Wheels are tagged py3-none-…: one wheel per OS covers Python 3.10+ on that OS (the native code does not link against libpython).
There is no published wheel today for macOS, Linux ARM, musl (Alpine), or 32-bit Windows. On those environments, install from the sdist or a git checkout so the native libraries are built locally (see below).
Optional extras
| Extra | Installs | Use case |
|---|---|---|
video |
av (PyAV) |
WebM / VP8 export (WebMWriter and the video example GUI). |
examples |
pyedflib, av |
Tk GUIs that need both EDF export and video/WebM paths. |
test |
pytest, av |
Run the project test suite locally. |
Examples:
pip install "pypvfs[video]"
pip install "pypvfs[examples]"
pip install -e ".[test]" # from a clone: editable install + tests
Native library and building from source
From a wheel: native libraries are already built and installed under pvfs_tools.Core. No compiler is required.
From source (sdist or git clone): the build uses scikit-build-core and CMake to compile pvfs.cpp and pvfs_wrapper.cpp. You need:
- CMake ≥ 3.15 (often pulled into the build environment automatically)
- A C++17 toolchain (
g++/clang++on Linux, MSVC on Windows)
pip install ".[test]"
pytest
Note on
pip install -e .— scikit-build-core's editable mode loads Python files fromsrc/pvfs_tools/, but CMake-built.dll/.sofiles live in thebuild/directory.pvfs_binding.pylooks for the native library next to itself, so an editable install will fail with “native library could not be loaded”. Use a regular install (or rebuild between edits) when you need the native code.
Examples (bundled in the wheel)
Runnable scripts are installed under pvfs_tools.examples. After pip install pypvfs you can use the pypvfs-examples command on your PATH, or run modules with python -m:
| Module | Suggested install | Description |
|---|---|---|
pvfs_tools.examples.pvfs_create_cli |
base package | CLI: synthetic PVFS file |
pvfs_tools.examples.pvfs_to_edf_converter |
pypvfs[examples] (needs pyedflib) |
Tk: PVFS → EDF+ |
pvfs_tools.examples.pvfs_to_video_converter |
pypvfs[video] or pypvfs[examples] (needs av) |
Tk: PVFS video → WebM |
pypvfs-examples --list
python -m pvfs_tools.examples.pvfs_create_cli --help
The same .py files also live under examples/ in the repository for browsing in GitHub.
Documentation and source
- PyPI shows this README; the BSD 3-Clause license text is included in package metadata (see the
LICENSEfile in the installed.dist-info/ sdist). - Library usage (detailed): docs/USAGE.md — workflows, APIs, and patterns; not in the wheel; browse on GitHub or in a clone. Written to match
tests/test_pvfs.py. - Source and issues: github.com/Pinnacle-Technology-Inc/pypvfs (also set as
Repository/Documentationinpyproject.tomlforpip show/ PyPI links). - Releases (maintainers): see docs/RELEASE.md in the repo — not installed into
site-packages.
Publishing (maintainers)
Routine releases use GitHub Actions and PyPI trusted publishing (OIDC), not ad-hoc twine from a laptop.
- Bump
versioninpyproject.tomland commit. - Create and push a tag whose name starts with
v(e.g.git tag v1.0.6 && git push origin v1.0.6). - Confirm the Publish to PyPI workflow ran for that tag (or run it manually from the Actions tab).
That workflow uses cibuildwheel on Linux and Windows to build the platform wheels and uploads wheels plus the sdist. Details: docs/RELEASE.md.
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.5.tar.gz.
File metadata
- Download URL: pypvfs-1.0.5.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 |
107399854fe8f5e993e936dd614e74f7c44b2625411f9af422e9ad765e708d51
|
|
| MD5 |
1468409aa8f64574f78d3b061631672d
|
|
| BLAKE2b-256 |
4e78b94d429e632fa27877d7f03b6e1c342373dcaaad4e97e29445c0281e3365
|
Provenance
The following attestation bundles were made for pypvfs-1.0.5.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.5.tar.gz -
Subject digest:
107399854fe8f5e993e936dd614e74f7c44b2625411f9af422e9ad765e708d51 - Sigstore transparency entry: 1525250968
- Sigstore integration time:
-
Permalink:
Pinnacle-Technology-Inc/pypvfs@e622af49196a7c0ce442bb56779104a15007b255 -
Branch / Tag:
refs/tags/v1.0.5 - Owner: https://github.com/Pinnacle-Technology-Inc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e622af49196a7c0ce442bb56779104a15007b255 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pypvfs-1.0.5-py3-none-win_amd64.whl.
File metadata
- Download URL: pypvfs-1.0.5-py3-none-win_amd64.whl
- Upload date:
- Size: 108.7 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 |
296329083278dbe1d65244efd120ca3cb134c8116e7bf9a3c47aa5de9248ba27
|
|
| MD5 |
525bc641905e1be2d007016feaaddd92
|
|
| BLAKE2b-256 |
da15d6b601eaa80c807bac249058eee0d28794fcabe6ad41871e06d8529943a3
|
Provenance
The following attestation bundles were made for pypvfs-1.0.5-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.5-py3-none-win_amd64.whl -
Subject digest:
296329083278dbe1d65244efd120ca3cb134c8116e7bf9a3c47aa5de9248ba27 - Sigstore transparency entry: 1525251041
- Sigstore integration time:
-
Permalink:
Pinnacle-Technology-Inc/pypvfs@e622af49196a7c0ce442bb56779104a15007b255 -
Branch / Tag:
refs/tags/v1.0.5 - Owner: https://github.com/Pinnacle-Technology-Inc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e622af49196a7c0ce442bb56779104a15007b255 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pypvfs-1.0.5-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pypvfs-1.0.5-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 573.6 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 |
1ce0d499e15011b91442cbf2c88190bdd964f2e29da19affb9399fdff988b0b8
|
|
| MD5 |
9770b6d4a4a2300ea9f1fba175a01309
|
|
| BLAKE2b-256 |
fb5061f5aea2b94a9a8e273842d54716af877bff300c9cad58de90c706ce0e2b
|
Provenance
The following attestation bundles were made for pypvfs-1.0.5-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.5-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
1ce0d499e15011b91442cbf2c88190bdd964f2e29da19affb9399fdff988b0b8 - Sigstore transparency entry: 1525251088
- Sigstore integration time:
-
Permalink:
Pinnacle-Technology-Inc/pypvfs@e622af49196a7c0ce442bb56779104a15007b255 -
Branch / Tag:
refs/tags/v1.0.5 - Owner: https://github.com/Pinnacle-Technology-Inc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e622af49196a7c0ce442bb56779104a15007b255 -
Trigger Event:
push
-
Statement type: