Python ecosystem integrations¶
Interoperate instead of duplicating upstream data processing. eyetrajectoriespy 1.2.0 already has optional scikit-fda, FDApy and elastic-function integrations. This section adds an example-level pandas/Polars table bridge and documents research-safe handoffs from acquisition and data-quality ecosystems.
Find the right Python integration Choose an acquisition or functional route
EyeLink SyeLink integration EyeLink Python parser comparison Pinned pymovements preview Read-only BIDS inspector Runnable table bridge External packages and BIDS Qualification roadmap
Choose a source before choosing an estimator¶
The interactive integration navigator now lists 14 external and optional ecosystems in one place, with explicit statuses, device/source focus and documentation links. Its companion source-to-method checklist records provenance, actual observation support and research boundaries. It is a browser-based documentation aid; no files are processed or uploaded.
New EyeLink source-level interoperability¶
The SyeLink 2.0 session-object handoff now demonstrates explicit eye choice, recording-segment/trial mapping, retention of millisecond acquisition timestamps and separate calibration/validation provenance. Its Python EyeLink ecosystem comparison explains where PyeLink hardware control, EyeLinkIO EDF reading and alternative ASC parsers fit. These are example-level additions, not supported package importers.
Verified roles and present integration status¶
| External ecosystem | Verified capability | Status in this repository |
|---|---|---|
| SyeLink | EyeLink ASC parsing and calibration / validation session records | Version-pinned 2.0.0 synthetic-object integration preview; real ASC recordings unqualified |
| PyeLink | EyeLink hardware control | Documentation only; requires tracker SDK, no analysis dependency |
| EyeLinkIO | Binary EyeLink EDF reading | Proposed alternative source adapter, not tested here |
| pymovements | Public datasets, sample processing, event detection; its Gaze.samples is a Polars DataFrame | Version-pinned repository preview with genuine Gaze-object tests, not a released device adapter |
| Polars + PyArrow | Parquet I/O and dataframe conversion | Repository example implemented, optional, outside stable API |
| Pandera | Dataframe schema validation and explicit nullable columns | Proposed opt-in validation layer |
| PyNeon | Neon recording, gaze/IMU/video/event processing, BIDS-oriented export | Proposed source handoff; no direct adapter |
| Eye-Tracking-BIDS / eye2bids | Standardized acquisition data and metadata organization | Read-only metadata inspection example; not an official BIDS validator |
| eyekit | Reading fixations and text interest areas | Potential companion analyses; not an importer |
| PupEyes | Pupil-size preprocessing and interactive eye-tracking views | Potential companion; not an importer |
| scikit-fda / FDApy | Functional representations, sparse smoothing and FPCA | Existing optional package integration/comparator, not new |
Two new, narrow integration previews¶
The pymovements Gaze-object handoff uses a tested 0.28.0 interface, explicit nested pixel/position channels and standardized millisecond timestamps. The BIDS sidecar inspector parses a constrained metadata profile and optionally checks bounded headerless TSV.GZ shape. Neither is a new released library API, vendor importer or statistical qualification.
What the new example actually does¶
The table handoff accepts pandas or an optional Polars dataframe after researchers identify source fields and recorded units. It checks duplicate or out-of-order timestamps, coordinate ranges under a declared normalized scale, and participant/trial hierarchy. It refuses complete-grid conversion if x/y observations are missing or per-curve time grids differ.
It does not interpolate, harmonize clock origins, detect fixations, ingest vendor formats, claim missing-gaze identification, or validate inferential bands. This is a recipe under examples/ with independent smoke/rejection tests, not a new import under the released eyetrajectoriespy package.
Prioritize provenance over convenient coercion¶
- Preserve acquisition-native timestamps, source coordinate units, masks, hardware/clock metadata, participant/trial IDs and original recordings.
- Treat event sequences, fixation summaries, AOI labels and pupillometry as separate derived outcomes, not replacements for planar sample trajectories.
- For incomplete, paired-sparse or coordinate-asynchronous observations, use the corresponding native sparse guide rather than manufacturing dense arrays.
- Data compatibility is not statistical qualification; issues #289 and #296 remain open.
See the data-to-method guide and package API stability policy.