This release is a pre-release and may not be stable for production use.
gp3tools for Python
A Python implementation of the public workflow of gp3tools, the R package for importing, inspecting, analysing, visualising, modelling, and reporting Gazepoint GP3 / Gazepoint Analysis exports.
Status: 0.1.0a1 comprehensive migration build. The complete 278-function public name surface frozen from the R
v2.3.0NAMESPACEis present. Core data, QC, pupil, AOI, sequence, event, plotting, reporting, face, simulation, and export workflows are native Python. Statistical functions tied to R-specific backends are Python-native adaptations, not claims of coefficient-for-coefficient equivalence tolme4,glmmTMB,mgcv, orbrms.
Install a local wheel
uv pip install .\gp3tools-0.1.0a1-py3-none-any.whl
or
pip install .\gp3tools-0.1.0a1-py3-none-any.whl
Quick start
import gp3tools as gp3
master = gp3.load_example_master()
sampling = gp3.check_sampling_rate(
master,
time_col="TIME",
group_cols=["subject", "trial_global"],
)
pupil = gp3.preprocess_gazepoint_signals(
master,
pupil_col="pupil",
time_col="TIME",
)
transitions = gp3.compute_gazepoint_aoi_transition_matrix(
master,
aoi_col="aoi_current",
)
fig = gp3.plot_gazepoint_heatmap(master)
Public API contract
import gp3tools as gp3
len(gp3.R_EXPORTS)
# 278
gp3.api_status()["status"].value_counts()
The build distinguishes:
native: direct Python implementation;native-adapted: implemented in Python but the R package used a backend or algorithm whose exact numerical identity is not asserted;native-adapter: interoperability adapter expressed natively in Python.
See docs/API_PARITY.md and the bundled api_manifest.csv for every exported function.
Main modules
io: Gazepoint CSV, folder, summary, and face-export importqc: master tables, sampling, tracking, missingness, screen bounds, exclusions, readinesspupil: artifact flags, blinks, interpolation, baseline correction, smoothing, binocular reconstructionaoi: static/dynamic/polygon AOIs, entries, windows, transitions, entropy, scanpaths, clusteringevents: fixation/saccade detection, agreement and benchmark workflowsstats: model preparation, LMM/GLM/spline adaptations, Bayesian adapters, cluster permutation, bootstrap and sensitivityface: external facial-analysis QC and time synchronisationinterop: eyetrackingR/pupillometryR/gazer/eyetools/HDDM/BIDS/gpbiometrics adaptersplotting: Matplotlib visualisationsreporting: CSV/HTML outputs, reporting checklists and end-to-end workflowsimulation: synthetic Gazepoint data for examples and tests
Scientific compatibility note
A Python port should preserve scientific intent without pretending different statistical engines are identical. Accordingly, the modelling layer documents backend adaptation explicitly. The package is suitable for software migration, workflow prototyping, reproducible preprocessing, data/QC/plotting tasks, and validation development; advanced inferential parity should be checked against the R reference implementation before confirmatory use.
R reference
The public API was frozen against gp3tools R v2.3.0. R_NAMESPACE_REFERENCE.txt is included in the source distribution for auditability.
Citation
Balaskas, S. (2026). gp3tools: An R Package for Reproducible Analysis and Reporting of Gazepoint GP3 Eye-Tracking Exports. Journal of Eye Movement Research, 19(4), 76. DOI: 10.3390/jemr19040076.
License
MIT.
R 2.3.0 parity and validation
The Python package freezes the 278-export R 2.3.0 public API while exposing 285 Python public names in the validated parity branch. Behavioral equality is evidence graded: exact and numerical-tolerance claims are made only where frozen R oracles exist; backend-adapted statistical families are labelled accordingly.
The release gate includes R1–R3 frozen behavioral regressions, R4 canonical structure/compatibility tests plus frozen-oracle integrity checks, whole-surface smoke, plot catalog smoke, runnable examples, Ruff, compilation, strict documentation build, ≥90% test coverage, wheel/sdist construction and isolated-wheel validation. See docs/PARITY_STATUS.md.
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 gp3tools-0.1.0a1.tar.gz.
File metadata
- Download URL: gp3tools-0.1.0a1.tar.gz
- Upload date:
- Size: 821.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4e6c56fa0318958881a48736c82dd6695a6773d8500754bf39736b63921f592
|
|
| MD5 |
8f7928b6e43110b0d8e6acb79d24be64
|
|
| BLAKE2b-256 |
b8d2673f505edcce7044b3f35625574667122436245a6bc25b957683e31f488e
|
Provenance
The following attestation bundles were made for gp3tools-0.1.0a1.tar.gz:
Publisher:
pypi.yml on stefanosbalaskas/gp3tools-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gp3tools-0.1.0a1.tar.gz -
Subject digest:
b4e6c56fa0318958881a48736c82dd6695a6773d8500754bf39736b63921f592 - Sigstore transparency entry: 2630279728
- Sigstore integration time:
-
Permalink:
stefanosbalaskas/gp3tools-python@e3ed8648dcc2017e2ca8ecaff23689a5ed270dc4 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/stefanosbalaskas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@e3ed8648dcc2017e2ca8ecaff23689a5ed270dc4 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file gp3tools-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: gp3tools-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 400.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b5de8c402ba0c585014765c71704cf11b5aa6eac6048f2f31bd9d1d5323222b
|
|
| MD5 |
676eb8fc9214122f1cf6ab481503a437
|
|
| BLAKE2b-256 |
4f4f376add9235074bc24e79b85a5497b0a4128757bf496c6a778d94db8abbb6
|
Provenance
The following attestation bundles were made for gp3tools-0.1.0a1-py3-none-any.whl:
Publisher:
pypi.yml on stefanosbalaskas/gp3tools-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gp3tools-0.1.0a1-py3-none-any.whl -
Subject digest:
6b5de8c402ba0c585014765c71704cf11b5aa6eac6048f2f31bd9d1d5323222b - Sigstore transparency entry: 2630279800
- Sigstore integration time:
-
Permalink:
stefanosbalaskas/gp3tools-python@e3ed8648dcc2017e2ca8ecaff23689a5ed270dc4 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/stefanosbalaskas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@e3ed8648dcc2017e2ca8ecaff23689a5ed270dc4 -
Trigger Event:
workflow_dispatch
-
Statement type: