gpbiometricspy
gpbiometricspy is the Python counterpart of gpbiometrics, with the supplied
gpbiometrics 2.0.0 source release frozen as its initial semantic reference.
It provides Gazepoint-native tools for importing, validating, preprocessing,
analysing, plotting, modelling, synchronising, and reporting biometric and
multimodal eye-tracking data.
| Channel | Current state |
|---|---|
| Stable release target | 0.1.2 |
| Release source | main frozen at 0.1.2 |
| Frozen R semantic reference | gpbiometrics 2.0.0 |
| Export parity | 406 / 406 implemented; 0 pending |
| Zenodo | GitHub integration enabled; 0.1.2 is the first DOI-producing Python release |
Parity status
The current development tree has reached the frozen R API contract:
- 406 / 406 R exports implemented and registered
- 0 pending exports
- 200+ Python parity/edge tests
- whole-package statement coverage ≥ 90%
- packaged synthetic kiosk demo: 36 participants, 69,120 rows
- frozen R reference retained: 144 R sources, 403 Rd files, 120 R test files, and 26 vignette/article sources
The project deliberately distinguishes API completion from an absolute
claim that independent R and Python runtimes are numerically identical in every
external-library/version combination. The frozen R tests and implementation
are retained in reference/ so parity can continue to be audited.
Install
Install the public release from PyPI:
python -m pip install gpbiometricspy
For optional integrations:
python -m pip install "gpbiometricspy[interop]"
For a source checkout used in package development:
python -m pip install -e ".[dev]"
Individual extras are available for heartpy, biosppy, pyhrv,
neurokit, mne, lsl, bayes, stats, docs, and dev.
Quick start
import gpbiometricspy as gp
# Load the public synthetic kiosk demo distributed with the package.
data = gp.load_kiosk_demo()
print(data.shape) # (69120, ...)
# Inspect biometric signal validity / availability.
validity = gp.summarise_gazepoint_biometric_validity(data)
# Extract TTL transitions.
events = gp.extract_gazepoint_ttl_events(data)
# Example native pyHRV-style workflow from IBI values.
hrv = gp.run_gazepoint_pyhrv_style(
nni_ms=data.loc[data["IBI"].notna(), "IBI"].head(500).to_numpy() * 1000
)
The demo is fully synthetic and is intended only for examples, testing, and reproducible workflow demonstrations.
Documentation, examples and plots
The documentation site now exposes the package as a complete scientific workflow rather than only an API catalog:
- Examples — EDA/SCR, PPG/HRV, pupil/gaze/AOI, multimodal, QC/reporting and interoperability;
- Plot gallery — figures generated directly by the Python plotting API from bundled synthetic/public data;
- Articles and tutorials — all 26 frozen R vignette/article companions, each backed by executable Python code;
- API reference — all 406 exported functions.
Deep validation layers
Beyond the 406/406 export freeze, development on main includes independent R↔Python golden fixtures, floor/current optional-backend interoperability CI, 26 executable Python article companions, and a privacy-preserving real-data validation CLI. See the documentation site for the distinction between API parity and deeper cross-runtime/backend evidence.
Scientific scope
The 2.0.0 parity surface covers, among other areas:
- Gazepoint biometric file/folder import, schema detection, validation and QC;
- EDA/GSR/SCR preprocessing, artifacts, response detection, windows, habituation/recovery, spectral/nonlinear descriptors and external bridges;
- HR/IBI/HRV/PPG processing, pyHRV-style, HeartPy-style and BioSPPy-style workflows, nonlinear HRV, RQA/geometric metrics and respiratory proxies;
- pupil, gaze, fixation, saccade, AOI and event-locked multimodal workflows;
- TTL alignment, synchronization drift, LSL/XDF, MNE and BIDS-oriented bridges;
- cluster permutation testing plus explicit guardrails for designs that the R package intentionally refuses;
- reproducibility, preregistration, audit trails, readiness checks, reporting, plots, workflow summaries, simulation and synthetic smoke testing.
Interpretation guardrails
gpbiometricspy preserves the conservative interpretation policy of the R
package. Physiological and eye-tracking signals are measurements and derived
features; they do not directly establish emotion, stress, cognition,
preference, health status, or diagnosis. Pupil measurements remain sensitive
to luminance and visual context, and respiration estimates derived from PPG or
other surrogate channels are proxies unless independently validated.
Archival and citation
The repository is connected to the Zenodo GitHub integration. The existing
v0.1.1 release predates that connection. v0.1.2 is the first Python
release configured for automatic Zenodo archival and DOI registration. The
version and concept DOI are added to the repository front after Zenodo finishes
processing the GitHub release; no DOI is pre-invented in the release source.
The frozen R semantic reference is archived independently as gpbiometrics 2.0.0, DOI 10.5281/zenodo.21434608. That DOI documents the R source/provenance and must not be presented as the Python package DOI.
Citation metadata is maintained in CITATION.cff, while
Zenodo-specific archival metadata and the explicit R-reference relationship are
maintained in .zenodo.json. After Zenodo processes v0.1.2, the resulting Python concept/version DOI is
added here and to the documentation.
Reference precedence
When Python and explanatory prose disagree, parity work follows:
- frozen
gpbiometrics 2.0.0implementation; - frozen R tests;
- formal Rd documentation;
- vignettes/examples;
- repository/site explanatory material.
See the documentation site source in docs/, the machine-readable export
inventory in reference/r-export-inventory.csv, and VALIDATION.md for the
current release gates.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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 gpbiometricspy-0.1.2.tar.gz.
File metadata
- Download URL: gpbiometricspy-0.1.2.tar.gz
- Upload date:
- Size: 10.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e96f6e72dd7a22be469700dc84f1cc8f99a99d40b341e7a8b617c52b158eea12
|
|
| MD5 |
d4970fc45f934bf5412574bcc1e84b29
|
|
| BLAKE2b-256 |
55e284be42639ef3e929ecbaf09ddf6cefaf14f617bf47a292fb65937deb397a
|
Provenance
The following attestation bundles were made for gpbiometricspy-0.1.2.tar.gz:
Publisher:
pypi.yml on stefanosbalaskas/gpbiometricspy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gpbiometricspy-0.1.2.tar.gz -
Subject digest:
e96f6e72dd7a22be469700dc84f1cc8f99a99d40b341e7a8b617c52b158eea12 - Sigstore transparency entry: 2629706075
- Sigstore integration time:
-
Permalink:
stefanosbalaskas/gpbiometricspy@9ac6cfcf1dba7087b1a279ebab8ee148a141cbde -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/stefanosbalaskas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@9ac6cfcf1dba7087b1a279ebab8ee148a141cbde -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file gpbiometricspy-0.1.2-py3-none-any.whl.
File metadata
- Download URL: gpbiometricspy-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4556280ed4819b4700d4da866cf2d8b3090818c038a0adb7706e11baf587f878
|
|
| MD5 |
dca62dce1b93d435901996b45e03a689
|
|
| BLAKE2b-256 |
2b250b57b948aef59a3ffbba1a88445d9f07be6de05749b91fe24f6a2fe94fe5
|
Provenance
The following attestation bundles were made for gpbiometricspy-0.1.2-py3-none-any.whl:
Publisher:
pypi.yml on stefanosbalaskas/gpbiometricspy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gpbiometricspy-0.1.2-py3-none-any.whl -
Subject digest:
4556280ed4819b4700d4da866cf2d8b3090818c038a0adb7706e11baf587f878 - Sigstore transparency entry: 2629706229
- Sigstore integration time:
-
Permalink:
stefanosbalaskas/gpbiometricspy@9ac6cfcf1dba7087b1a279ebab8ee148a141cbde -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/stefanosbalaskas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@9ac6cfcf1dba7087b1a279ebab8ee148a141cbde -
Trigger Event:
workflow_dispatch
-
Statement type: