Skip to main content

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 via ctypes and bundled native libraries (pvfs.dll / pvfs_wrapper.dll on Windows, libpvfs.so / libpvfs_wrapper.so on 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 from src/pvfs_tools/, but CMake-built .dll / .so files live in the build/ directory. pvfs_binding.py looks 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 LICENSE file 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 / Documentation in pyproject.toml for pip 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.

  1. Bump version in pyproject.toml and commit.
  2. Create and push a tag whose name starts with v (e.g. git tag v1.0.6 && git push origin v1.0.6).
  3. 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

pypvfs-1.0.5.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.5-py3-none-win_amd64.whl (108.7 kB view details)

Uploaded Python 3Windows x86-64

pypvfs-1.0.5-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (573.6 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.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

Hashes for pypvfs-1.0.5.tar.gz
Algorithm Hash digest
SHA256 107399854fe8f5e993e936dd614e74f7c44b2625411f9af422e9ad765e708d51
MD5 1468409aa8f64574f78d3b061631672d
BLAKE2b-256 4e78b94d429e632fa27877d7f03b6e1c342373dcaaad4e97e29445c0281e3365

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypvfs-1.0.5.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.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

Hashes for pypvfs-1.0.5-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 296329083278dbe1d65244efd120ca3cb134c8116e7bf9a3c47aa5de9248ba27
MD5 525bc641905e1be2d007016feaaddd92
BLAKE2b-256 da15d6b601eaa80c807bac249058eee0d28794fcabe6ad41871e06d8529943a3

See more details on using hashes here.

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

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.5-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypvfs-1.0.5-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1ce0d499e15011b91442cbf2c88190bdd964f2e29da19affb9399fdff988b0b8
MD5 9770b6d4a4a2300ea9f1fba175a01309
BLAKE2b-256 fb5061f5aea2b94a9a8e273842d54716af877bff300c9cad58de90c706ce0e2b

See more details on using hashes here.

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

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