Skip to main content
Pre-release

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.0 NAMESPACE is 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 to lme4, glmmTMB, mgcv, or brms.

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 import
  • qc: master tables, sampling, tracking, missingness, screen bounds, exclusions, readiness
  • pupil: artifact flags, blinks, interpolation, baseline correction, smoothing, binocular reconstruction
  • aoi: static/dynamic/polygon AOIs, entries, windows, transitions, entropy, scanpaths, clustering
  • events: fixation/saccade detection, agreement and benchmark workflows
  • stats: model preparation, LMM/GLM/spline adaptations, Bayesian adapters, cluster permutation, bootstrap and sensitivity
  • face: external facial-analysis QC and time synchronisation
  • interop: eyetrackingR/pupillometryR/gazer/eyetools/HDDM/BIDS/gpbiometrics adapters
  • plotting: Matplotlib visualisations
  • reporting: CSV/HTML outputs, reporting checklists and end-to-end workflow
  • simulation: 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

gp3tools-0.1.0a1.tar.gz (821.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gp3tools-0.1.0a1-py3-none-any.whl (400.7 kB view details)

Uploaded Python 3

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

Hashes for gp3tools-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 b4e6c56fa0318958881a48736c82dd6695a6773d8500754bf39736b63921f592
MD5 8f7928b6e43110b0d8e6acb79d24be64
BLAKE2b-256 b8d2673f505edcce7044b3f35625574667122436245a6bc25b957683e31f488e

See more details on using hashes here.

Provenance

The following attestation bundles were made for gp3tools-0.1.0a1.tar.gz:

Publisher: pypi.yml on stefanosbalaskas/gp3tools-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for gp3tools-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 6b5de8c402ba0c585014765c71704cf11b5aa6eac6048f2f31bd9d1d5323222b
MD5 676eb8fc9214122f1cf6ab481503a437
BLAKE2b-256 4f4f376add9235074bc24e79b85a5497b0a4128757bf496c6a778d94db8abbb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for gp3tools-0.1.0a1-py3-none-any.whl:

Publisher: pypi.yml on stefanosbalaskas/gp3tools-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0a1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page