eyeprocesspy
Reproducible Python infrastructure for eye-tracking, pupillometry, AOIs, process data, psychometrics, and multimodal behavioral measurement.
Documentation · PyPI · Release v0.2.1 · 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.1. Version 0.2.1 packages the fully certified provenance-aware static Bayesian-network tranche together with the 0.2.0 scientific foundation. The controlling qualification passed 1,872 tests, 35,013 / 35,013 statements, and 12,098 / 12,098 branches with exact 100% coverage, plus a green Ubuntu/macOS/Windows × Python 3.11–3.14 matrix, Ruff, mypy, build/install, frozen-R oracle, and strict documentation gates. The release workflow publishes the wheel and source distribution to PyPI using Trusted Publishing, attaches SHA-256 evidence and build-provenance attestation, and creates the matching GitHub Release.
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, 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.1
For source installation from the immutable release tag:
pip install "git+https://github.com/stefanosbalaskas/eyeprocesspy.git@v0.2.1"
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,872 passed |
| Statement coverage | 35,013 / 35,013 (100%) |
| Branch coverage | 12,098 / 12,098 (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.1 |
| 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, reliability, process guardrails, fairness, item-bank optimization |
| Bayesian networks | Static BN data contracts, temporal/edge constraints, pgmpy-backed learning/fitting/inference, participant bootstrap/CV, detector/AOI sensitivity |
| 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 · 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.1, 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.1, 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.
Metadata
Release files for eyeprocesspy 0.2.1
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.1.tar.gz | 1.3 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| eyeprocesspy-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.3 MB
Release files / eyeprocesspy-0.2.1.tar.gz
| Download URL | eyeprocesspy-0.2.1.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b9ee0b74876063c0c94bd2f6f51f5d8dfc12990b447c3201c17e7ae2a5212e59
|
|
BLAKE2b-256 checksum How to use checksums |
c0a24818261ea51aa81394ca39364357f6fd622a458e4ae988ff2b93ac3cf447
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 27, 2026.
Transparency logRelease files / eyeprocesspy-0.2.1-py3-none-any.whl
| Download URL | eyeprocesspy-0.2.1-py3-none-any.whl |
|---|---|
| Size | 988.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
68ee92638a0492188589a3ce41275fa7054aa4b7c193e3907d89cdf3d9303095
|
|
BLAKE2b-256 checksum How to use checksums |
82ab85c2fe182d02436934f506335b4159750d1df3d4a50972d91332c5bee43d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 27, 2026.
Transparency logSecurity for eyeprocesspy 0.2.1
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.1.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 Sep 27, 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.