pyelink 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyelink-1.0.0/.github/workflows/publish.yml +33 -0
- pyelink-1.0.0/.gitignore +62 -0
- pyelink-1.0.0/.python-version +1 -0
- pyelink-1.0.0/LICENSE +21 -0
- pyelink-1.0.0/PKG-INFO +156 -0
- pyelink-1.0.0/README.md +120 -0
- pyelink-1.0.0/docs/eyelink_commands_checklist.md +293 -0
- pyelink-1.0.0/docs/eyelink_commands_reference.md +1507 -0
- pyelink-1.0.0/examples/__init__.py +1 -0
- pyelink-1.0.0/examples/assets/fixation_target.png +0 -0
- pyelink-1.0.0/examples/calibration_only_example.py +33 -0
- pyelink-1.0.0/examples/psychopy_minimal_example.py +60 -0
- pyelink-1.0.0/examples/pygame_minimal_example.py +61 -0
- pyelink-1.0.0/examples/pyglet_minimal_example.py +71 -0
- pyelink-1.0.0/pyproject.toml +186 -0
- pyelink-1.0.0/resources/Funded_by_EU_Eyes4ICU.png +0 -0
- pyelink-1.0.0/src/pyelink/__init__.py +80 -0
- pyelink-1.0.0/src/pyelink/audio.py +113 -0
- pyelink-1.0.0/src/pyelink/calibration/__init__.py +188 -0
- pyelink-1.0.0/src/pyelink/calibration/base.py +350 -0
- pyelink-1.0.0/src/pyelink/calibration/psychopy_backend.py +436 -0
- pyelink-1.0.0/src/pyelink/calibration/pygame_backend.py +351 -0
- pyelink-1.0.0/src/pyelink/calibration/pyglet_backend.py +443 -0
- pyelink-1.0.0/src/pyelink/calibration/targets.py +151 -0
- pyelink-1.0.0/src/pyelink/core.py +1577 -0
- pyelink-1.0.0/src/pyelink/data.py +506 -0
- pyelink-1.0.0/src/pyelink/display/__init__.py +14 -0
- pyelink-1.0.0/src/pyelink/display/base.py +232 -0
- pyelink-1.0.0/src/pyelink/display/psychopy_display.py +176 -0
- pyelink-1.0.0/src/pyelink/display/pygame_display.py +190 -0
- pyelink-1.0.0/src/pyelink/display/pyglet_display.py +225 -0
- pyelink-1.0.0/src/pyelink/events.py +175 -0
- pyelink-1.0.0/src/pyelink/settings.py +1036 -0
- pyelink-1.0.0/src/pyelink/utils.py +86 -0
- pyelink-1.0.0/src/pyelink/version.py +123 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
deploy:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
with:
|
|
14
|
+
fetch-depth: 0 # Fetch all history for hatch-vcs to determine version from tags
|
|
15
|
+
|
|
16
|
+
- name: Set up Python
|
|
17
|
+
uses: actions/setup-python@v5
|
|
18
|
+
with:
|
|
19
|
+
python-version: '3.11'
|
|
20
|
+
|
|
21
|
+
- name: Install dependencies
|
|
22
|
+
run: |
|
|
23
|
+
python -m pip install --upgrade pip
|
|
24
|
+
pip install build twine
|
|
25
|
+
|
|
26
|
+
- name: Build package
|
|
27
|
+
run: python -m build
|
|
28
|
+
|
|
29
|
+
- name: Publish to PyPI
|
|
30
|
+
env:
|
|
31
|
+
TWINE_USERNAME: __token__
|
|
32
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
33
|
+
run: twine upload dist/*
|
pyelink-1.0.0/.gitignore
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
uv.lock
|
|
2
|
+
_tmp/*
|
|
3
|
+
data/*
|
|
4
|
+
# Example data directory
|
|
5
|
+
examples/data/
|
|
6
|
+
*.edf
|
|
7
|
+
*.asc
|
|
8
|
+
|
|
9
|
+
# Python bytecode
|
|
10
|
+
__pycache__/
|
|
11
|
+
*.py[cod]
|
|
12
|
+
*$py.class
|
|
13
|
+
*.so
|
|
14
|
+
|
|
15
|
+
# Virtual environments
|
|
16
|
+
.venv/
|
|
17
|
+
venv/
|
|
18
|
+
ENV/
|
|
19
|
+
env/
|
|
20
|
+
|
|
21
|
+
# Distribution / packaging
|
|
22
|
+
build/
|
|
23
|
+
dist/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.eggs/
|
|
26
|
+
*.egg
|
|
27
|
+
|
|
28
|
+
# IDEs
|
|
29
|
+
.vscode/
|
|
30
|
+
.idea/
|
|
31
|
+
*.swp
|
|
32
|
+
*.swo
|
|
33
|
+
*~
|
|
34
|
+
|
|
35
|
+
# macOS
|
|
36
|
+
.DS_Store
|
|
37
|
+
.AppleDouble
|
|
38
|
+
.LSOverride
|
|
39
|
+
|
|
40
|
+
# Coverage reports
|
|
41
|
+
htmlcov/
|
|
42
|
+
.coverage
|
|
43
|
+
.coverage.*
|
|
44
|
+
coverage.xml
|
|
45
|
+
*.cover
|
|
46
|
+
|
|
47
|
+
# Testing
|
|
48
|
+
.pytest_cache/
|
|
49
|
+
.tox/
|
|
50
|
+
|
|
51
|
+
# Linting / formatting
|
|
52
|
+
.ruff_cache/
|
|
53
|
+
.mypy_cache/
|
|
54
|
+
.dmypy.json
|
|
55
|
+
dmypy.json
|
|
56
|
+
|
|
57
|
+
# Logs
|
|
58
|
+
*.log
|
|
59
|
+
|
|
60
|
+
# Environment variables
|
|
61
|
+
.env
|
|
62
|
+
.env.local
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.10
|
pyelink-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Mohammadhossein Salari
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
pyelink-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pyelink
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Python wrapper for SR Research EyeLink eye trackers
|
|
5
|
+
Project-URL: Homepage, https://github.com/mh-salari/pyelink
|
|
6
|
+
Project-URL: Documentation, https://github.com/mh-salari/pyelink#readme
|
|
7
|
+
Project-URL: Repository, https://github.com/mh-salari/pyelink
|
|
8
|
+
Project-URL: Issues, https://github.com/mh-salari/pyelink/issues
|
|
9
|
+
Author-email: Mohammadhossein Salari <Mohammadhossein.salari@gmail.com>
|
|
10
|
+
License: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: eyelink,eyetracking,neuroscience,psychopy,pygame,pyglet
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
|
+
Requires-Dist: fixation-target>=1.4.2
|
|
23
|
+
Requires-Dist: numpy<2.3.0,>=1.20.0
|
|
24
|
+
Requires-Dist: pyaudio>=0.2.14
|
|
25
|
+
Requires-Dist: pydantic<3.0,>=2.0
|
|
26
|
+
Provides-Extra: dev
|
|
27
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
28
|
+
Provides-Extra: psychopy
|
|
29
|
+
Requires-Dist: pillow>=8.0.0; extra == 'psychopy'
|
|
30
|
+
Requires-Dist: psychopy>=2023.1.0; (python_version < '3.12') and extra == 'psychopy'
|
|
31
|
+
Provides-Extra: pygame
|
|
32
|
+
Requires-Dist: pygame>=2.6.1; extra == 'pygame'
|
|
33
|
+
Provides-Extra: pyglet
|
|
34
|
+
Requires-Dist: pyglet>=2.1.11; extra == 'pyglet'
|
|
35
|
+
Description-Content-Type: text/markdown
|
|
36
|
+
|
|
37
|
+
# PyeLink
|
|
38
|
+
|
|
39
|
+
Python wrapper for SR Research EyeLink eye trackers.
|
|
40
|
+
|
|
41
|
+
## Installation
|
|
42
|
+
|
|
43
|
+
**You must specify a backend when installing pyelink.** A simple `pip install pyelink` will NOT work because pyelink requires one of three mutually exclusive display backends (pygame, psychopy, or pyglet).
|
|
44
|
+
|
|
45
|
+
Choose ONE backend:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# For Pygame users
|
|
49
|
+
pip install pyelink[pygame]
|
|
50
|
+
|
|
51
|
+
# For PsychoPy users (Python < 3.12 only)
|
|
52
|
+
pip install pyelink[psychopy]
|
|
53
|
+
|
|
54
|
+
# For Pyglet users (pyglet 2.0+)
|
|
55
|
+
pip install pyelink[pyglet]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
You'll also need to install pylink separately from SR Research:
|
|
59
|
+
```bash
|
|
60
|
+
pip install --index-url=https://pypi.sr-support.com sr-research-pylink
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Note:** This codebase has been tested on macOS ARM (Apple Silicon) only.
|
|
64
|
+
|
|
65
|
+
### ⚠️ Backend Compatibility Warning
|
|
66
|
+
|
|
67
|
+
**You CANNOT install both `psychopy` and `pyglet` backends together.**
|
|
68
|
+
|
|
69
|
+
**Why?** PsychoPy pins `pyglet==1.4.11` (from 2017) as a dependency, while the modern pyglet backend requires `pyglet>=2.0.0`. These versions are incompatible.
|
|
70
|
+
|
|
71
|
+
**Solution:** Choose ONE backend:
|
|
72
|
+
- **Pygame** (recommended): Works everywhere, no conflicts
|
|
73
|
+
- **PsychoPy**: Use if you need PsychoPy features, but cannot use pyglet 2.0+
|
|
74
|
+
- **Pyglet**: Use if you want modern pyglet (2.0+) but don't need PsychoPy
|
|
75
|
+
|
|
76
|
+
### Platform-Specific Notes
|
|
77
|
+
|
|
78
|
+
**macOS:**
|
|
79
|
+
- PyAudio requires PortAudio. Install it first:
|
|
80
|
+
```bash
|
|
81
|
+
brew install portaudio
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Quick Start
|
|
85
|
+
|
|
86
|
+
```python
|
|
87
|
+
import pyelink as el
|
|
88
|
+
|
|
89
|
+
# Configure tracker with backend
|
|
90
|
+
settings = el.Settings(
|
|
91
|
+
backend='pygame', # or 'psychopy', 'pyglet'
|
|
92
|
+
fullscreen=True,
|
|
93
|
+
screen_width=1920,
|
|
94
|
+
screen_height=1080,
|
|
95
|
+
filename="mydata",
|
|
96
|
+
filepath="./data/",
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
# Tracker creates and owns the window
|
|
100
|
+
tracker = el.EyeLink(settings)
|
|
101
|
+
|
|
102
|
+
# Calibrate (optionally record samples during calibration)
|
|
103
|
+
tracker.calibrate(record_samples=True)
|
|
104
|
+
|
|
105
|
+
# Option A: Direct window access for custom drawing
|
|
106
|
+
tracker.window.fill((128, 128, 128)) # pygame example
|
|
107
|
+
# ... backend-specific drawing ...
|
|
108
|
+
tracker.flip()
|
|
109
|
+
|
|
110
|
+
# Option B: Helper methods for common patterns
|
|
111
|
+
tracker.show_message("Press SPACE to begin")
|
|
112
|
+
tracker.wait_for_key('space')
|
|
113
|
+
|
|
114
|
+
# Run your experiment
|
|
115
|
+
tracker.start_recording()
|
|
116
|
+
# ... show stimuli, collect data ...
|
|
117
|
+
tracker.stop_recording()
|
|
118
|
+
|
|
119
|
+
# Clean up (closes window and saves EDF automatically)
|
|
120
|
+
tracker.end_experiment()
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Development
|
|
124
|
+
|
|
125
|
+
For development with different backends:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# PsychoPy backend
|
|
129
|
+
uv pip uninstall pyelink && uv pip install -e ".[psychopy]" && uv pip install --index-url=https://pypi.sr-support.com sr-research-pylink
|
|
130
|
+
|
|
131
|
+
# Pygame backend
|
|
132
|
+
uv pip uninstall pyelink && uv pip install -e ".[pygame]" && uv pip install --index-url=https://pypi.sr-support.com sr-research-pylink
|
|
133
|
+
|
|
134
|
+
# Pyglet backend
|
|
135
|
+
uv pip uninstall pyelink && uv pip install -e ".[pyglet]" && uv pip install --index-url=https://pypi.sr-support.com sr-research-pylink
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Attribution
|
|
139
|
+
|
|
140
|
+
This package is based on code originally developed by:
|
|
141
|
+
|
|
142
|
+
- **Marcus Nyström** (Lund University Humanities Lab, Lund, Sweden)
|
|
143
|
+
- Email: marcus.nystrom@humlab.lu.se
|
|
144
|
+
|
|
145
|
+
- **pylinkwrapper** by Nick DiQuattro
|
|
146
|
+
- Repository: https://github.com/ndiquattro/pylinkwrapper
|
|
147
|
+
- Core EyeLink functionality and wrapper architecture
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
## Acknowledgments
|
|
151
|
+
|
|
152
|
+
This project has received funding from the European Union's Horizon Europe research and innovation funding program under grant agreement No 101072410, Eyes4ICU project.
|
|
153
|
+
|
|
154
|
+
<p align="center">
|
|
155
|
+
<img src="https://github.com/mh-salari/zarafe/raw/main/resources/Funded_by_EU_Eyes4ICU.png" alt="Funded by EU Eyes4ICU" width="500">
|
|
156
|
+
</p>
|
pyelink-1.0.0/README.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# PyeLink
|
|
2
|
+
|
|
3
|
+
Python wrapper for SR Research EyeLink eye trackers.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
**You must specify a backend when installing pyelink.** A simple `pip install pyelink` will NOT work because pyelink requires one of three mutually exclusive display backends (pygame, psychopy, or pyglet).
|
|
8
|
+
|
|
9
|
+
Choose ONE backend:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# For Pygame users
|
|
13
|
+
pip install pyelink[pygame]
|
|
14
|
+
|
|
15
|
+
# For PsychoPy users (Python < 3.12 only)
|
|
16
|
+
pip install pyelink[psychopy]
|
|
17
|
+
|
|
18
|
+
# For Pyglet users (pyglet 2.0+)
|
|
19
|
+
pip install pyelink[pyglet]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
You'll also need to install pylink separately from SR Research:
|
|
23
|
+
```bash
|
|
24
|
+
pip install --index-url=https://pypi.sr-support.com sr-research-pylink
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Note:** This codebase has been tested on macOS ARM (Apple Silicon) only.
|
|
28
|
+
|
|
29
|
+
### ⚠️ Backend Compatibility Warning
|
|
30
|
+
|
|
31
|
+
**You CANNOT install both `psychopy` and `pyglet` backends together.**
|
|
32
|
+
|
|
33
|
+
**Why?** PsychoPy pins `pyglet==1.4.11` (from 2017) as a dependency, while the modern pyglet backend requires `pyglet>=2.0.0`. These versions are incompatible.
|
|
34
|
+
|
|
35
|
+
**Solution:** Choose ONE backend:
|
|
36
|
+
- **Pygame** (recommended): Works everywhere, no conflicts
|
|
37
|
+
- **PsychoPy**: Use if you need PsychoPy features, but cannot use pyglet 2.0+
|
|
38
|
+
- **Pyglet**: Use if you want modern pyglet (2.0+) but don't need PsychoPy
|
|
39
|
+
|
|
40
|
+
### Platform-Specific Notes
|
|
41
|
+
|
|
42
|
+
**macOS:**
|
|
43
|
+
- PyAudio requires PortAudio. Install it first:
|
|
44
|
+
```bash
|
|
45
|
+
brew install portaudio
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Quick Start
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
import pyelink as el
|
|
52
|
+
|
|
53
|
+
# Configure tracker with backend
|
|
54
|
+
settings = el.Settings(
|
|
55
|
+
backend='pygame', # or 'psychopy', 'pyglet'
|
|
56
|
+
fullscreen=True,
|
|
57
|
+
screen_width=1920,
|
|
58
|
+
screen_height=1080,
|
|
59
|
+
filename="mydata",
|
|
60
|
+
filepath="./data/",
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
# Tracker creates and owns the window
|
|
64
|
+
tracker = el.EyeLink(settings)
|
|
65
|
+
|
|
66
|
+
# Calibrate (optionally record samples during calibration)
|
|
67
|
+
tracker.calibrate(record_samples=True)
|
|
68
|
+
|
|
69
|
+
# Option A: Direct window access for custom drawing
|
|
70
|
+
tracker.window.fill((128, 128, 128)) # pygame example
|
|
71
|
+
# ... backend-specific drawing ...
|
|
72
|
+
tracker.flip()
|
|
73
|
+
|
|
74
|
+
# Option B: Helper methods for common patterns
|
|
75
|
+
tracker.show_message("Press SPACE to begin")
|
|
76
|
+
tracker.wait_for_key('space')
|
|
77
|
+
|
|
78
|
+
# Run your experiment
|
|
79
|
+
tracker.start_recording()
|
|
80
|
+
# ... show stimuli, collect data ...
|
|
81
|
+
tracker.stop_recording()
|
|
82
|
+
|
|
83
|
+
# Clean up (closes window and saves EDF automatically)
|
|
84
|
+
tracker.end_experiment()
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Development
|
|
88
|
+
|
|
89
|
+
For development with different backends:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# PsychoPy backend
|
|
93
|
+
uv pip uninstall pyelink && uv pip install -e ".[psychopy]" && uv pip install --index-url=https://pypi.sr-support.com sr-research-pylink
|
|
94
|
+
|
|
95
|
+
# Pygame backend
|
|
96
|
+
uv pip uninstall pyelink && uv pip install -e ".[pygame]" && uv pip install --index-url=https://pypi.sr-support.com sr-research-pylink
|
|
97
|
+
|
|
98
|
+
# Pyglet backend
|
|
99
|
+
uv pip uninstall pyelink && uv pip install -e ".[pyglet]" && uv pip install --index-url=https://pypi.sr-support.com sr-research-pylink
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Attribution
|
|
103
|
+
|
|
104
|
+
This package is based on code originally developed by:
|
|
105
|
+
|
|
106
|
+
- **Marcus Nyström** (Lund University Humanities Lab, Lund, Sweden)
|
|
107
|
+
- Email: marcus.nystrom@humlab.lu.se
|
|
108
|
+
|
|
109
|
+
- **pylinkwrapper** by Nick DiQuattro
|
|
110
|
+
- Repository: https://github.com/ndiquattro/pylinkwrapper
|
|
111
|
+
- Core EyeLink functionality and wrapper architecture
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
## Acknowledgments
|
|
115
|
+
|
|
116
|
+
This project has received funding from the European Union's Horizon Europe research and innovation funding program under grant agreement No 101072410, Eyes4ICU project.
|
|
117
|
+
|
|
118
|
+
<p align="center">
|
|
119
|
+
<img src="https://github.com/mh-salari/zarafe/raw/main/resources/Funded_by_EU_Eyes4ICU.png" alt="Funded by EU Eyes4ICU" width="500">
|
|
120
|
+
</p>
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
# EyeLink Commands Implementation Status
|
|
2
|
+
|
|
3
|
+
List of commands from eyelink_commands_reference.md that have been used in pyelink.
|
|
4
|
+
|
|
5
|
+
1. [ ] abort_file_transfer
|
|
6
|
+
2. [ ] abort_playback
|
|
7
|
+
3. [ ] accept_target_fixation
|
|
8
|
+
4. [x] active_eye — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
9
|
+
5. [ ] add_file_preamble_text
|
|
10
|
+
6. [x] allow_pupil_without_cr — **Used in:** pyelink/core.py
|
|
11
|
+
7. [ ] always_default_calibration
|
|
12
|
+
8. [ ] ambient_filter_constant
|
|
13
|
+
9. [ ] analog_binocular_mapping
|
|
14
|
+
10. [ ] analog_dac_range
|
|
15
|
+
11. [ ] analog_force_4channel
|
|
16
|
+
12. [ ] analog_no_pupil_value
|
|
17
|
+
13. [ ] analog_out_data_type
|
|
18
|
+
14. [ ] analog_p_maximum
|
|
19
|
+
15. [ ] analog_strobe_delay
|
|
20
|
+
16. [ ] analog_strobe_line
|
|
21
|
+
17. [ ] analog_strobe_polarity
|
|
22
|
+
18. [ ] analog_strobe_time
|
|
23
|
+
19. [ ] analog_x_range
|
|
24
|
+
20. [ ] analog_y_range
|
|
25
|
+
21. [ ] apply_last_drift_correction
|
|
26
|
+
22. [ ] auto_calibration_messages
|
|
27
|
+
23. [ ] autocal_minimum_fixation
|
|
28
|
+
24. [ ] autocal_minimum_saccade
|
|
29
|
+
25. [ ] autocal_saccade_fraction
|
|
30
|
+
26. [ ] automatic_calibration_pacing
|
|
31
|
+
27. [x] autothreshold_click — **Used in:** pyelink/settings.py, pyelink/calibration/base.py
|
|
32
|
+
28. [x] autothreshold_repeat — **Used in:** pyelink/settings.py, pyelink/calibration/base.py
|
|
33
|
+
29. [ ] aux_mouse_simulation
|
|
34
|
+
30. [ ] begin_macro
|
|
35
|
+
31. [x] binocular_enabled — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
36
|
+
32. [ ] black_filter_constant
|
|
37
|
+
33. [ ] blink_offset_verify_time
|
|
38
|
+
34. [ ] button_debounce_time
|
|
39
|
+
35. [ ] button_function
|
|
40
|
+
36. [ ] button_status_display
|
|
41
|
+
37. [ ] cal_repeat_first_target
|
|
42
|
+
38. [x] calibration_area_proportion — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
43
|
+
39. [ ] calibration_average
|
|
44
|
+
40. [ ] calibration_bicubic_correction
|
|
45
|
+
41. [ ] calibration_bicubic_weights
|
|
46
|
+
42. [ ] calibration_collection_interval
|
|
47
|
+
43. [x] calibration_corner_scaling — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
48
|
+
44. [ ] calibration_fixation_data
|
|
49
|
+
45. [ ] calibration_samples
|
|
50
|
+
46. [ ] calibration_sequence
|
|
51
|
+
47. [ ] calibration_status
|
|
52
|
+
48. [ ] calibration_targets
|
|
53
|
+
49. [x] calibration_type — **Used in:** pyelink/core.py
|
|
54
|
+
50. [ ] call_option_menu_mode
|
|
55
|
+
51. [ ] call_setup_menu_mode
|
|
56
|
+
52. [ ] camera_color_ramp
|
|
57
|
+
53. [ ] cl_edf_identifier
|
|
58
|
+
54. [ ] clear_button_list
|
|
59
|
+
55. [ ] clear_href_points
|
|
60
|
+
56. [x] clear_screen — **Used in:** pyelink/core.py
|
|
61
|
+
57. [x] close_data_file — **Used in:** pyelink/core.py
|
|
62
|
+
58. [ ] collect_target_fixation
|
|
63
|
+
59. [x] corneal_mode — **Used in:** pyelink/core.py
|
|
64
|
+
60. [ ] corneal_select_limits
|
|
65
|
+
61. [ ] corneal_select_size
|
|
66
|
+
62. [ ] create_button
|
|
67
|
+
63. [ ] create_key_button
|
|
68
|
+
64. [ ] current_camera
|
|
69
|
+
65. [ ] data_drive_directory
|
|
70
|
+
66. [ ] data_drive_name
|
|
71
|
+
67. [ ] data_file_name
|
|
72
|
+
68. [ ] data_file_path
|
|
73
|
+
69. [ ] data_message
|
|
74
|
+
70. [ ] default_eye_mapping
|
|
75
|
+
71. [ ] delete_all_key_buttons
|
|
76
|
+
72. [ ] delete_all_key_functions
|
|
77
|
+
73. [ ] delete_macro
|
|
78
|
+
74. [ ] disable_cal_auto_manual_switch
|
|
79
|
+
75. [ ] disable_cal_auto_sequence
|
|
80
|
+
76. [ ] disable_cal_backspace
|
|
81
|
+
77. [ ] disable_cal_trigger
|
|
82
|
+
78. [ ] disable_corneal_reflection
|
|
83
|
+
79. [ ] disable_gaze_cursors
|
|
84
|
+
80. [ ] disable_head_camera
|
|
85
|
+
81. [ ] display_user_menu
|
|
86
|
+
82. [ ] do_macro
|
|
87
|
+
83. [ ] do_mode_start_flush
|
|
88
|
+
84. [ ] draw_box
|
|
89
|
+
85. [x] draw_cross — **Used in:** pyelink/calibration/psychopy_backend.py, pyelink/calibration/base.py
|
|
90
|
+
86. [ ] draw_filled_box
|
|
91
|
+
87. [x] draw_line — **Used in:** pyelink/calibration/pyglet_backend.py, pyelink/calibration/pygame_backend.py, pyelink/calibration/psychopy_backend.py, pyelink/calibration/base.py
|
|
92
|
+
88. [ ] draw_link_crosshairs
|
|
93
|
+
89. [x] draw_text — **Used in:** pyelink/core.py, pyelink/display/pyglet_display.py, pyelink/display/psychopy_display.py, pyelink/display/pygame_display.py, pyelink/display/base.py
|
|
94
|
+
90. [ ] drift_correct_mouse
|
|
95
|
+
91. [ ] drift_correction
|
|
96
|
+
92. [ ] drift_correction_fraction
|
|
97
|
+
93. [ ] drift_correction_rpt_beep
|
|
98
|
+
94. [ ] drift_correction_rpt_error
|
|
99
|
+
95. [ ] drift_correction_samples
|
|
100
|
+
96. [ ] drift_correction_targets
|
|
101
|
+
97. [ ] drift_correction_weights
|
|
102
|
+
98. [ ] driftcorrect_cr_disable
|
|
103
|
+
99. [ ] echo
|
|
104
|
+
100. [x] elcl_hold_if_no_corneal — **Used in:** pyelink/core.py
|
|
105
|
+
101. [ ] elcl_pupil_symmetry_gain
|
|
106
|
+
102. [x] elcl_search_if_no_corneal — **Used in:** pyelink/core.py
|
|
107
|
+
103. [x] elcl_use_pcr_matching — **Used in:** pyelink/core.py
|
|
108
|
+
104. [x] enable_automatic_calibration — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
109
|
+
105. [x] enable_camera_position_detect — **Used in:** pyelink/settings.py, pyelink/calibration/base.py
|
|
110
|
+
106. [ ] enable_file_buffer
|
|
111
|
+
107. [x] enable_search_limits — **Used in:** pyelink/settings.py, pyelink/calibration/base.py
|
|
112
|
+
108. [ ] end_macro
|
|
113
|
+
109. [ ] exit_program
|
|
114
|
+
110. [ ] eye_current_limit
|
|
115
|
+
111. [ ] eyelink_file_xfer_packets
|
|
116
|
+
112. [ ] fast_velocity_filter
|
|
117
|
+
113. [ ] file_buffer_record_display
|
|
118
|
+
114. [ ] file_event_data
|
|
119
|
+
115. [x] file_event_filter — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
120
|
+
116. [ ] file_sample_control
|
|
121
|
+
117. [x] file_sample_data — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
122
|
+
118. [x] file_sample_raw_pcr — **Used in:** pyelink/core.py
|
|
123
|
+
119. [ ] fixation_update_accumulate
|
|
124
|
+
120. [ ] fixation_update_interval
|
|
125
|
+
121. [ ] flush_logfile
|
|
126
|
+
122. [x] force_corneal_reflection — **Used in:** pyelink/core.py
|
|
127
|
+
123. [ ] force_elcl_mode
|
|
128
|
+
124. [ ] force_network_present
|
|
129
|
+
125. [ ] generate_default_targets
|
|
130
|
+
126. [ ] hcam_center
|
|
131
|
+
127. [ ] hcam_scale
|
|
132
|
+
128. [x] heuristic_filter — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
133
|
+
129. [ ] hide_abort_trial
|
|
134
|
+
130. [ ] horizontal_target_y
|
|
135
|
+
131. [ ] image_from_setup_menu
|
|
136
|
+
132. [ ] imager_gain
|
|
137
|
+
133. [ ] initial_thresholds
|
|
138
|
+
134. [ ] input_data_masks
|
|
139
|
+
135. [ ] input_data_ports
|
|
140
|
+
136. [ ] key_function
|
|
141
|
+
137. [ ] last_button_list
|
|
142
|
+
138. [ ] last_button_pressed
|
|
143
|
+
139. [ ] left_eye_head_camera_offset
|
|
144
|
+
140. [ ] link_connect_command
|
|
145
|
+
141. [ ] link_echo_filter
|
|
146
|
+
142. [ ] link_event_data
|
|
147
|
+
143. [x] link_event_filter — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
148
|
+
144. [ ] link_flush_age
|
|
149
|
+
145. [ ] link_motion_flush
|
|
150
|
+
146. [ ] link_pacing_usec
|
|
151
|
+
147. [ ] link_sample_control
|
|
152
|
+
148. [x] link_sample_data — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
153
|
+
149. [x] link_sample_raw_pcr — **Used in:** pyelink/core.py
|
|
154
|
+
150. [ ] link_sample_recency
|
|
155
|
+
151. [ ] link_shutdown_command
|
|
156
|
+
152. [ ] link_update_interval
|
|
157
|
+
153. [ ] lock_active_eye
|
|
158
|
+
154. [ ] lock_eye_after_calibration
|
|
159
|
+
155. [ ] lock_record_exit
|
|
160
|
+
156. [ ] logfile_contents
|
|
161
|
+
157. [ ] macro_line
|
|
162
|
+
158. [ ] manual_collection_fixation_lookback
|
|
163
|
+
159. [ ] manual_collection_minimum_fixation
|
|
164
|
+
160. [ ] mark_playback_start
|
|
165
|
+
161. [ ] mirror_elcl_image
|
|
166
|
+
162. [ ] mirror_eyecam_image
|
|
167
|
+
163. [ ] mirror_headcam_image
|
|
168
|
+
164. [ ] normal_click_dcorr
|
|
169
|
+
165. [ ] online_dcorr_button
|
|
170
|
+
166. [ ] online_dcorr_collection_time
|
|
171
|
+
167. [ ] online_dcorr_max_lookback
|
|
172
|
+
168. [ ] online_dcorr_maxangle
|
|
173
|
+
169. [ ] online_dcorr_refposn
|
|
174
|
+
170. [ ] online_dcorr_trigger
|
|
175
|
+
171. [x] open_data_file — **Used in:** pyelink/core.py
|
|
176
|
+
172. [ ] option_menu_mode
|
|
177
|
+
173. [ ] output_menu_mode
|
|
178
|
+
174. [ ] parser_discard_startup
|
|
179
|
+
175. [ ] print_position
|
|
180
|
+
176. [ ] pupil_crosstalk_fixup
|
|
181
|
+
177. [ ] pupil_min_size
|
|
182
|
+
178. [ ] pupil_select_limits
|
|
183
|
+
179. [ ] pupil_select_size
|
|
184
|
+
180. [x] pupil_size_diameter — **Used in:** pyelink/core.py
|
|
185
|
+
181. [ ] randomize_calibration_order
|
|
186
|
+
182. [ ] randomize_validation_order
|
|
187
|
+
183. [x] raw_pcr_dual_corneal — **Used in:** pyelink/core.py
|
|
188
|
+
184. [ ] raw_pcr_processing
|
|
189
|
+
185. [ ] read_ioport
|
|
190
|
+
186. [ ] rec_plot_colors
|
|
191
|
+
187. [ ] rec_plot_mclick_step
|
|
192
|
+
188. [ ] rec_plot_simple_offset
|
|
193
|
+
189. [ ] record_data_defaults
|
|
194
|
+
190. [x] record_status_message — **Used in:** pyelink/core.py
|
|
195
|
+
191. [ ] recording_parse_type
|
|
196
|
+
192. [ ] refresh_buttons
|
|
197
|
+
193. [ ] remote_cal_complete
|
|
198
|
+
194. [ ] remote_cal_data
|
|
199
|
+
195. [ ] remote_cal_enable
|
|
200
|
+
196. [ ] remote_cal_href_data
|
|
201
|
+
197. [ ] remote_cal_target
|
|
202
|
+
198. [x] remote_camera_position — **Used in:** pyelink/core.py
|
|
203
|
+
199. [ ] required_disk_space
|
|
204
|
+
200. [ ] reset_cal_data_points
|
|
205
|
+
201. [ ] reset_record_lock
|
|
206
|
+
202. [ ] restore_old_calibration
|
|
207
|
+
203. [ ] right_eye_head_camera_offset
|
|
208
|
+
204. [ ] saccade_acceleration_threshold
|
|
209
|
+
205. [ ] saccade_extend_velocity
|
|
210
|
+
206. [ ] saccade_max_extend_after
|
|
211
|
+
207. [ ] saccade_max_extend_start
|
|
212
|
+
208. [ ] saccade_motion_threshold
|
|
213
|
+
209. [ ] saccade_offset_verify_time
|
|
214
|
+
210. [ ] saccade_onset_verify_time
|
|
215
|
+
211. [ ] saccade_pursuit_fixup
|
|
216
|
+
212. [ ] saccade_velocity_threshold
|
|
217
|
+
213. [ ] samples_between_pupil_area
|
|
218
|
+
214. [ ] samples_between_resolution
|
|
219
|
+
215. [ ] samples_between_status
|
|
220
|
+
216. [ ] samples_between_timestamps
|
|
221
|
+
217. [x] screen_distance — **Used in:** pyelink/core.py, pyelink/settings.py, pyelink/calibration/targets.py
|
|
222
|
+
218. [ ] screen_dump
|
|
223
|
+
219. [x] screen_phys_coords — **Used in:** pyelink/core.py
|
|
224
|
+
220. [x] screen_pixel_coords — **Used in:** pyelink/core.py
|
|
225
|
+
221. [ ] screen_write_prescale
|
|
226
|
+
222. [ ] search_limits_rect
|
|
227
|
+
223. [ ] search_limits_shape
|
|
228
|
+
224. [ ] search_limits_size
|
|
229
|
+
225. [ ] select_eye_after_validation
|
|
230
|
+
226. [ ] select_parser_configuration
|
|
231
|
+
227. [ ] set_href_point
|
|
232
|
+
228. [x] set_idle_mode — **Used in:** pyelink/core.py
|
|
233
|
+
229. [ ] set_image_channel
|
|
234
|
+
230. [ ] set_imaging_mode
|
|
235
|
+
231. [ ] set_record_data_defaults
|
|
236
|
+
232. [x] setup_menu_mode — **Used in:** pyelink/core.py
|
|
237
|
+
233. [ ] show_exposure
|
|
238
|
+
234. [ ] start_bitmap_transfer
|
|
239
|
+
235. [ ] start_calibration
|
|
240
|
+
236. [ ] start_drift_correction
|
|
241
|
+
237. [ ] start_file_transfer
|
|
242
|
+
238. [ ] start_in_camera_setup
|
|
243
|
+
239. [ ] start_playback
|
|
244
|
+
240. [x] start_recording — **Used in:** pyelink/__init__.py, pyelink/core.py
|
|
245
|
+
241. [ ] start_validation
|
|
246
|
+
242. [x] sticky_mode_data_enable — **Used in:** pyelink/core.py
|
|
247
|
+
243. [ ] sticky_mode_parse_type
|
|
248
|
+
244. [ ] stop_bitmap_transfer
|
|
249
|
+
245. [x] track_search_limits — **Used in:** pyelink/settings.py, pyelink/calibration/base.py
|
|
250
|
+
246. [ ] use_camimg_palette_colors
|
|
251
|
+
247. [ ] use_high_speed
|
|
252
|
+
248. [ ] user_record_key_item
|
|
253
|
+
249. [ ] val_repeat_first_target
|
|
254
|
+
250. [x] validation_area_proportion — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
255
|
+
251. [x] validation_corner_scaling — **Used in:** pyelink/core.py, pyelink/settings.py
|
|
256
|
+
252. [ ] validation_correct_drift
|
|
257
|
+
253. [ ] validation_maximum_deviation
|
|
258
|
+
254. [ ] validation_online_fixup
|
|
259
|
+
255. [ ] validation_resample_worst
|
|
260
|
+
256. [ ] validation_samples
|
|
261
|
+
257. [ ] validation_sequence
|
|
262
|
+
258. [ ] validation_targets
|
|
263
|
+
259. [ ] validation_weights
|
|
264
|
+
260. [ ] validation_worst_error
|
|
265
|
+
261. [ ] velocity_write_prescale
|
|
266
|
+
262. [ ] video_avi_timecode_enabled
|
|
267
|
+
263. [ ] video_avi_timecode_offset
|
|
268
|
+
264. [ ] video_background_color
|
|
269
|
+
265. [ ] video_binoc_cursor_colors
|
|
270
|
+
266. [ ] video_border_color
|
|
271
|
+
267. [ ] video_cal_backgr_color
|
|
272
|
+
268. [ ] video_cal_hide_cursors
|
|
273
|
+
269. [ ] video_cal_target_color
|
|
274
|
+
270. [ ] video_cal_target_size
|
|
275
|
+
271. [ ] video_click_dcorr
|
|
276
|
+
272. [ ] video_cursor_limit
|
|
277
|
+
273. [ ] video_cursor_type
|
|
278
|
+
274. [ ] video_custom_cursor_color
|
|
279
|
+
275. [ ] video_dim_mouse_bgcolor
|
|
280
|
+
276. [ ] video_dim_mouse_fgcolor
|
|
281
|
+
277. [ ] video_monoc_cursor_color
|
|
282
|
+
278. [ ] video_no_record_graphics
|
|
283
|
+
279. [ ] video_overlay_available
|
|
284
|
+
280. [ ] video_overlay_on
|
|
285
|
+
281. [ ] video_timecode_bgcolor
|
|
286
|
+
282. [ ] video_timecode_fgcolor
|
|
287
|
+
283. [ ] video_timecode_mode
|
|
288
|
+
284. [ ] video_timecode_position
|
|
289
|
+
285. [ ] video_window
|
|
290
|
+
286. [ ] video_window_default
|
|
291
|
+
287. [ ] write_ioport
|
|
292
|
+
288. [ ] x_gaze_constraint
|
|
293
|
+
289. [ ] y_gaze_constraint
|