eyeprocesspy
Reproducible Python infrastructure for eye-tracking, pupillometry, AOIs, process data, psychometrics, and multimodal behavioral measurement.
Documentation · PyPI · Release v0.2.2 · Zenodo DOI · 88 workflows
eyeprocesspy is the Python companion and deep-parity port of the R package eyeprocess, with frozen eyeprocess 0.11.1 as the scientific reference. It provides one governed analytical surface for vendor import, canonical data contracts, preprocessing, gaze and AOI analysis, pupillometry, process measurement, psychometrics/IRT, multimodal workflows, validation, provenance, plotting, and reproducible reporting.
Published release — 0.2.2. Version 0.2.2 adds the fully qualified measurement-validity and dynamic-gaze tranche plus the completed Bayesian-network robustness layer: spatial calibration error/correction, pupil-size artefact modelling, dynamic AOIs, smooth-pursuit and microsaccade analysis, event-detector benchmarking, naturalistic coordinates, scanpath metric sensitivity, gaze stress testing, CPT/structural/discretization/noise/sample-size robustness, and predictive calibration. The controlling qualification passed 1,892 tests, 36,556 / 36,556 statements, and 12,630 / 12,630 branches with exact 100% coverage, plus a green Ubuntu/macOS/Windows × Python 3.11–3.14 matrix, Ruff, mypy, wheel/sdist build/install, frozen-R oracle, and strict documentation gates.
Install
pip install eyeprocesspy
For the optional Bayesian-network analysis layer:
pip install "eyeprocesspy[bayesnet]"
The BN layer consumes already processed feature tables and provides theory-constrained static structure learning, parameter fitting, posterior evidence propagation, participant-level bootstrap stability, grouped validation, detector/AOI sensitivity, CPT/structural/discretization/noise/sample-size robustness, predictive calibration, plots, and reporting. It does not silently discretize continuous physiology or reinterpret learned directed edges as causal effects.
Open the Bayesian-network guide →
Pin the current release when exact reproducibility matters:
pip install eyeprocesspy==0.2.2
For source installation from the immutable release tag:
pip install "git+https://github.com/stefanosbalaskas/eyeprocesspy.git@v0.2.2"
Windows users can also use the hardened installer described in the manual-install guide. It has been exercised on a real Windows/Python 3.11.9 installation with the recommended extras and a clean pip check.
Release evidence
| Dimension | Verified state |
|---|---|
| Frozen R public APIs resolved | 1,182 / 1,182 |
| Frozen R reference | 0.11.1 |
| Workflow articles linked | 88 / 88 |
| Release-gate tests | 1,892 passed |
| Statement coverage | 36,556 / 36,556 (100%) |
| Branch coverage | 12,630 / 12,630 (100%) |
Numerical not_started debt |
0 |
Plot not_started debt |
0 |
| CI matrix | Ubuntu / macOS / Windows × Python 3.11–3.14 |
| PyPI | eyeprocesspy 0.2.2 |
| Zenodo | 10.5281/zenodo.22285167 |
See RELEASE_VALIDATION.md, TEST_SUMMARY.md, and the parity & validation guide for the underlying evidence.
What it covers
| Research layer | Representative capabilities |
|---|---|
| Import & canonicalization | Vendor/generic readers, Gazepoint workflows, schema validation, coordinates, events, timebase, file pairing |
| Gaze & AOIs | Fixations, saccades, dwell, scanpaths, transitions, entropy, recurrence, hard/probabilistic/compositional AOIs |
| Censored latency | survival-ready event/censor tables, Kaplan–Meier, repeated-trial Cox, Weibull/log-normal AFT, PH diagnostics, sensitivity |
| Pupil & multimodal | Baselines, pupil features, missingness, functional pupil, synchronized streams, staged multimodal models |
| Psychometrics & IRT | Information, fit, DIF/DTF, process-informed and dynamic IRT, reliability, linking, norms, diagnostics |
| Measurement intelligence | Calibration uncertainty, spatial error fields, pupil-size artefact checks, reliability, process guardrails, fairness, item-bank optimization |
| Dynamic & naturalistic gaze | Dynamic AOIs, pursuit/microsaccade analysis, detector benchmarks, head/world coordinates, scanpath metric sensitivity |
| Bayesian networks | Static BN data contracts, temporal/edge constraints, pgmpy-backed learning/fitting/inference, participant bootstrap/CV, detector/AOI and robustness sensitivity, predictive calibration |
| Validation | Recovery, SBC-style evidence, stress tests, negative controls, grouped/leakage-aware validation, evidence atlases |
| Reproducibility | Benchmarks, manifests, provenance, frozen-R oracle, release audits, software-paper evidence |
| Plots & reporting | Publication-oriented gaze, AOI, pupil, quality, IRT, process and validation graphics |
30-second reproducible check
import eyeprocesspy as ep
study = ep.eyeprocess_benchmark_study()
audit = ep.validate_benchmark_study(study)
data = ep.import_benchmark_study(study)
print(audit["valid"])
print(data)
For a real export:
import eyeprocesspy as ep
eye = ep.read_eye_export("participant_001.csv", vendor="auto")
issues = ep.validate_eye_dataset(eye)
See the package in action
| Gaze trace | Probabilistic AOI |
|---|---|
| Pupil time series | Process reliability |
|---|---|
Open the complete visual gallery →
Choose your path
- New to the package: Getting started → Worked examples → Cookbook
- Standardized Data Quality: Overview · 9-point example · Plot gallery · Sensitivity · Focused API\n- Eye-tracking / AOI work: End-to-end eye-tracking · Measurement validity & dynamic gaze · Gazepoint import & QC
- Gaze latency / TTFF: Censored gaze-latency method · Disclosure example · Evidence-verification example · Troubleshooting · Reproducibility checklist
- Pupillometry / multimodal: Pupillometry guide · Quality & uncertainty
- Psychometrics / IRT: Psychometrics & IRT · IRT example
- Full workflows: Featured workflows · 88-article library
- Lookup: API reference · Plotting reference · FAQ
Scientific boundary
eyeprocesspy provides measurement and analysis infrastructure. A metric is not automatically a validated psychological construct, diagnosis, or causal explanation. Reliability does not establish construct validity; prediction does not establish causation; probabilistic AOI membership represents modeled coordinate uncertainty rather than probability of attention; and gaze, pupil, biometric, and process measures require an appropriate design, measurement model, and ethical interpretation.
Citation
For eyeprocesspy 0.2.2, use the metadata in CITATION.cff and report the exact package version plus the frozen R reference exposed as eyeprocesspy.__r_reference_version__. The GitHub/PyPI release is available immediately; if Zenodo mints a new archive DOI for v0.2.2, that immutable DOI should be preferred in formal citations.
The initial 0.1.0 archive remains available at DOI 10.5281/zenodo.22285167 for studies that specifically used that release.
Relationship to R eyeprocess
The Python package is developed against the frozen eyeprocess 0.11.1 reference. API, articles, data, plots, numerical evidence, backends, and unavoidable language-specific divergences are tracked explicitly. Python-native extensions are kept distinct from reference parity so they do not masquerade as R-equivalent behavior.
License
MIT. See LICENSE.
October 2026 research article and figure
Gaze event reconstruction and reference confidence documents experimental, source-only validation methods and reproducible synthetic examples. It is available in the website navigation, while independently qualified external empirical claims and stable PyPI APIs remain separate (scientific acceptance criteria).
Metadata
Release files for eyeprocesspy 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| eyeprocesspy-0.2.3.tar.gz | 1.4 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| eyeprocesspy-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.4 MB
Release files / eyeprocesspy-0.2.3.tar.gz
| Download URL | eyeprocesspy-0.2.3.tar.gz |
|---|---|
| Size | 1.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5482c582fc319abf12d604e9430562b0a43483fb46f27f18f09308f69313c3e9
|
|
BLAKE2b-256 checksum How to use checksums |
04b59c128cdd7b0b558e2f904322319476beefddebae8acb64345109ac7f2ed1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / eyeprocesspy-0.2.3-py3-none-any.whl
| Download URL | eyeprocesspy-0.2.3-py3-none-any.whl |
|---|---|
| Size | 1.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b97582ceb4243f4f85404a74a870816d5272dab2da7d9e6f188e26b0078f7c62
|
|
BLAKE2b-256 checksum How to use checksums |
e08760197bd385774cb8c37675027bb2fa35e6c999ff8a327f4b1141cd65032c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logSecurity for eyeprocesspy 0.2.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for eyeprocesspy-0.2.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.