psychopy 2024.1.4__py3-none-any.whl → 2024.2.0__py3-none-any.whl

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.

Potentially problematic release.


This version of psychopy might be problematic. Click here for more details.

Files changed (325) hide show
  1. psychopy/.DS_Store +0 -0
  2. psychopy/CHANGELOG.txt +206 -0
  3. psychopy/GIT_SHA +1 -0
  4. psychopy/VERSION +1 -0
  5. psychopy/__init__.py +77 -15
  6. psychopy/app/Resources/classic/plugin16.png +0 -0
  7. psychopy/app/Resources/classic/plugin16@2x.png +0 -0
  8. psychopy/app/Resources/dark/plugin16.png +0 -0
  9. psychopy/app/Resources/dark/plugin16@2x.png +0 -0
  10. psychopy/app/Resources/light/plugin16.png +0 -0
  11. psychopy/app/Resources/light/plugin16@2x.png +0 -0
  12. psychopy/app/__init__.py +76 -2
  13. psychopy/app/_psychopyApp.py +126 -101
  14. psychopy/app/builder/builder.py +14 -10
  15. psychopy/app/builder/dialogs/__init__.py +8 -8
  16. psychopy/app/builder/dialogs/dlgsConditions.py +12 -13
  17. psychopy/app/builder/dialogs/paramCtrls.py +24 -57
  18. psychopy/app/builder/validators.py +2 -2
  19. psychopy/app/coder/codeEditorBase.py +8 -8
  20. psychopy/app/coder/coder.py +4 -4
  21. psychopy/app/connections/sendusage.py +2 -2
  22. psychopy/app/connections/updates.py +9 -9
  23. psychopy/app/dialogs.py +34 -2
  24. psychopy/app/idle.py +31 -0
  25. psychopy/app/jobs.py +21 -3
  26. psychopy/app/linuxconfig/__init__.py +9 -0
  27. psychopy/app/locale/ar_001/LC_MESSAGE/messages.mo +0 -0
  28. psychopy/app/locale/ar_001/LC_MESSAGE/messages.po +4602 -2540
  29. psychopy/app/locale/es_CO/LC_MESSAGE/messages.mo +0 -0
  30. psychopy/app/locale/es_CO/LC_MESSAGE/messages.po +56 -54
  31. psychopy/app/locale/es_ES/LC_MESSAGE/messages.po +53 -43
  32. psychopy/app/locale/es_US/LC_MESSAGE/messages.mo +0 -0
  33. psychopy/app/locale/es_US/LC_MESSAGE/messages.po +56 -54
  34. psychopy/app/locale/ja_JP/LC_MESSAGE/messages.mo +0 -0
  35. psychopy/app/locale/ja_JP/LC_MESSAGE/messages.po +1011 -942
  36. psychopy/app/locale/pt_PT/LC_MESSAGE/messages.po +9415 -5
  37. psychopy/app/pavlovia_ui/_base.py +33 -3
  38. psychopy/app/pavlovia_ui/search.py +0 -1
  39. psychopy/app/plugin_manager/dialog.py +104 -51
  40. psychopy/app/plugin_manager/packages.py +5 -0
  41. psychopy/app/plugin_manager/plugins.py +145 -67
  42. psychopy/app/preferencesDlg.py +8 -8
  43. psychopy/app/psychopyApp.py +11 -5
  44. psychopy/app/ribbon.py +124 -14
  45. psychopy/app/runner/runner.py +6 -1
  46. psychopy/app/stdout/stdOutRich.py +27 -11
  47. psychopy/app/themes/icons.py +52 -2
  48. psychopy/assets/__init__.py +0 -0
  49. psychopy/assets/click.png +0 -0
  50. psychopy/assets/clicknext.png +0 -0
  51. psychopy/assets/next.png +0 -0
  52. psychopy/assets/psychopy.ico +0 -0
  53. psychopy/assets/psychopy.png +0 -0
  54. psychopy/assets/templates/__init__.py +0 -0
  55. psychopy/assets/touch.png +0 -0
  56. psychopy/assets/touchnext.png +0 -0
  57. psychopy/assets/window.ico +0 -0
  58. psychopy/changes/2023.1.0.md +9 -0
  59. psychopy/changes/2024.1.0.md +16 -0
  60. psychopy/changes/__init__.py +0 -0
  61. psychopy/clock.py +2 -2
  62. psychopy/colors.py +2 -1
  63. psychopy/compatibility.py +53 -1
  64. psychopy/contrib/.DS_Store +0 -0
  65. psychopy/contrib/configobj/__init__.py +10 -8
  66. psychopy/data/__init__.py +3 -2
  67. psychopy/data/base.py +5 -5
  68. psychopy/data/experiment.py +130 -4
  69. psychopy/data/routine.py +56 -0
  70. psychopy/data/staircase.py +2 -2
  71. psychopy/data/trial.py +559 -97
  72. psychopy/data/utils.py +56 -21
  73. psychopy/demos/.DS_Store +0 -0
  74. psychopy/demos/builder/.DS_Store +0 -0
  75. psychopy/demos/builder/Design Templates/.DS_Store +0 -0
  76. psychopy/demos/builder/Experiments/.DS_Store +0 -0
  77. psychopy/demos/builder/Feature Demos/.DS_Store +0 -0
  78. psychopy/demos/builder/Feature Demos/buttonBox/buttonBoxDemo.psyexp +375 -0
  79. psychopy/demos/builder/Feature Demos/buttonBox/readme.md +5 -0
  80. psychopy/demos/builder/Feature Demos/pilotMode/pilotMode.psyexp +433 -0
  81. psychopy/demos/builder/Feature Demos/pilotMode/readme.md +7 -0
  82. psychopy/demos/builder/Hardware/.DS_Store +0 -0
  83. psychopy/demos/builder/Helper Tools/.DS_Store +0 -0
  84. psychopy/demos/coder/.DS_Store +0 -0
  85. psychopy/demos/coder/hardware/testSoundLatency.py +2 -2
  86. psychopy/demos/coder/iohub/.DS_Store +0 -0
  87. psychopy/demos/coder/misc/hdf5_2_csv +33 -0
  88. psychopy/event.py +30 -29
  89. psychopy/experiment/.DS_Store +0 -0
  90. psychopy/experiment/_experiment.py +6 -6
  91. psychopy/experiment/components/.DS_Store +0 -0
  92. psychopy/experiment/components/__init__.py +6 -3
  93. psychopy/experiment/components/_base.py +286 -131
  94. psychopy/experiment/components/aperture/.DS_Store +0 -0
  95. psychopy/experiment/components/brush/.DS_Store +0 -0
  96. psychopy/experiment/components/button/.DS_Store +0 -0
  97. psychopy/experiment/components/button/__init__.py +5 -1
  98. psychopy/experiment/components/buttonBox/.DS_Store +0 -0
  99. psychopy/experiment/components/camera/.DS_Store +0 -0
  100. psychopy/experiment/components/code/.DS_Store +0 -0
  101. psychopy/experiment/components/dots/.DS_Store +0 -0
  102. psychopy/experiment/components/eyetracker_record/.DS_Store +0 -0
  103. psychopy/experiment/components/eyetracker_record/__init__.py +92 -30
  104. psychopy/experiment/components/form/.DS_Store +0 -0
  105. psychopy/experiment/components/form/__init__.py +6 -2
  106. psychopy/experiment/components/grating/.DS_Store +0 -0
  107. psychopy/experiment/components/grating/__init__.py +14 -3
  108. psychopy/experiment/components/image/.DS_Store +0 -0
  109. psychopy/experiment/components/image/__init__.py +14 -3
  110. psychopy/experiment/components/joyButtons/.DS_Store +0 -0
  111. psychopy/experiment/components/joystick/.DS_Store +0 -0
  112. psychopy/experiment/components/keyboard/.DS_Store +0 -0
  113. psychopy/experiment/components/keyboard/__init__.py +22 -10
  114. psychopy/experiment/components/microphone/.DS_Store +0 -0
  115. psychopy/experiment/components/microphone/__init__.py +59 -39
  116. psychopy/experiment/components/mouse/.DS_Store +0 -0
  117. psychopy/experiment/components/mouse/__init__.py +44 -29
  118. psychopy/experiment/components/movie/.DS_Store +0 -0
  119. psychopy/experiment/components/movie/__init__.py +1 -1
  120. psychopy/experiment/components/panorama/.DS_Store +0 -0
  121. psychopy/experiment/components/parallelOut/.DS_Store +0 -0
  122. psychopy/experiment/components/patch/.DS_Store +0 -0
  123. psychopy/experiment/components/polygon/.DS_Store +0 -0
  124. psychopy/experiment/components/polygon/__init__.py +26 -6
  125. psychopy/experiment/components/progress/.DS_Store +0 -0
  126. psychopy/experiment/components/ratingScale/.DS_Store +0 -0
  127. psychopy/experiment/components/resourceManager/.DS_Store +0 -0
  128. psychopy/experiment/components/roi/.DS_Store +0 -0
  129. psychopy/experiment/components/roi/__init__.py +5 -0
  130. psychopy/experiment/components/routineSettings/.DS_Store +0 -0
  131. psychopy/experiment/components/routineSettings/__init__.py +57 -10
  132. psychopy/experiment/components/serialOut/.DS_Store +0 -0
  133. psychopy/experiment/components/settings/.DS_Store +0 -0
  134. psychopy/experiment/components/settings/__init__.py +117 -42
  135. psychopy/experiment/components/slider/.DS_Store +0 -0
  136. psychopy/experiment/components/sound/.DS_Store +0 -0
  137. psychopy/experiment/components/sound/__init__.py +54 -19
  138. psychopy/experiment/components/static/.DS_Store +0 -0
  139. psychopy/experiment/components/static/__init__.py +1 -1
  140. psychopy/experiment/components/text/.DS_Store +0 -0
  141. psychopy/experiment/components/text/__init__.py +28 -3
  142. psychopy/experiment/components/textbox/.DS_Store +0 -0
  143. psychopy/experiment/components/textbox/__init__.py +12 -2
  144. psychopy/experiment/components/unknown/.DS_Store +0 -0
  145. psychopy/experiment/components/unknown/__init__.py +1 -2
  146. psychopy/experiment/components/unknownPlugin/.DS_Store +0 -0
  147. psychopy/experiment/components/unknownPlugin/__init__.py +2 -2
  148. psychopy/experiment/components/variable/.DS_Store +0 -0
  149. psychopy/experiment/flow.py +11 -4
  150. psychopy/experiment/loops.py +85 -37
  151. psychopy/experiment/params.py +74 -32
  152. psychopy/experiment/py2js_transpiler.py +8 -1
  153. psychopy/experiment/routines/.DS_Store +0 -0
  154. psychopy/experiment/routines/_base.py +102 -22
  155. psychopy/experiment/routines/counterbalance/.DS_Store +0 -0
  156. psychopy/experiment/routines/counterbalance/__init__.py +5 -1
  157. psychopy/experiment/routines/eyetracker_calibrate/.DS_Store +0 -0
  158. psychopy/experiment/routines/eyetracker_validate/.DS_Store +0 -0
  159. psychopy/experiment/routines/pavlovia_survey/.DS_Store +0 -0
  160. psychopy/experiment/routines/photodiodeValidator/.DS_Store +0 -0
  161. psychopy/experiment/routines/photodiodeValidator/__init__.py +6 -5
  162. psychopy/experiment/routines/unknown/.DS_Store +0 -0
  163. psychopy/gui/wxgui.py +4 -4
  164. psychopy/hardware/.DS_Store +0 -0
  165. psychopy/hardware/__init__.py +1 -1
  166. psychopy/hardware/base.py +12 -0
  167. psychopy/hardware/camera/__init__.py +1 -15
  168. psychopy/hardware/cedrus.py +10 -11
  169. psychopy/hardware/crs/colorcal.py +13 -22
  170. psychopy/hardware/crs/optical.py +10 -20
  171. psychopy/hardware/emulator.py +17 -14
  172. psychopy/hardware/eyetracker.py +42 -118
  173. psychopy/hardware/gammasci.py +4 -15
  174. psychopy/hardware/keyboard.py +102 -10
  175. psychopy/hardware/listener.py +3 -0
  176. psychopy/hardware/microphone.py +148 -18
  177. psychopy/hardware/minolta.py +8 -15
  178. psychopy/hardware/photodiode.py +191 -16
  179. psychopy/hardware/photometer/__init__.py +11 -19
  180. psychopy/hardware/pr.py +8 -15
  181. psychopy/hardware/speaker.py +39 -4
  182. psychopy/info.py +0 -71
  183. psychopy/iohub/.DS_Store +0 -0
  184. psychopy/iohub/__init__.py +1 -1
  185. psychopy/iohub/client/__init__.py +30 -20
  186. psychopy/iohub/client/keyboard.py +24 -24
  187. psychopy/iohub/datastore/__init__.py +2 -2
  188. psychopy/iohub/datastore/util.py +2 -2
  189. psychopy/iohub/default_config.yaml +1 -1
  190. psychopy/iohub/devices/.DS_Store +0 -0
  191. psychopy/iohub/devices/__init__.py +112 -25
  192. psychopy/iohub/devices/deviceConfigValidation.py +2 -1
  193. psychopy/iohub/devices/experiment/default_experiment.yaml +12 -1
  194. psychopy/iohub/devices/experiment/supported_config_settings.yaml +5 -1
  195. psychopy/iohub/devices/eyetracker/.DS_Store +0 -0
  196. psychopy/iohub/devices/eyetracker/__init__.py +46 -0
  197. psychopy/iohub/devices/eyetracker/calibration/procedure.py +2 -2
  198. psychopy/iohub/devices/eyetracker/hw/gazepoint/__init__.py +14 -2
  199. psychopy/iohub/devices/eyetracker/hw/mouse/eyetracker.py +3 -4
  200. psychopy/iohub/server.py +2 -2
  201. psychopy/iohub/start_iohub_process.py +3 -0
  202. psychopy/iohub/util/__init__.py +62 -70
  203. psychopy/layout.py +5 -5
  204. psychopy/logging.py +8 -1
  205. psychopy/microphone.py +10 -37
  206. psychopy/platform_specific/__init__.py +0 -2
  207. psychopy/platform_specific/darwin.py +1 -3
  208. psychopy/platform_specific/linux.py +31 -33
  209. psychopy/platform_specific/win32.py +38 -13
  210. psychopy/plugins/__init__.py +148 -116
  211. psychopy/plugins/util.py +39 -0
  212. psychopy/preferences/Darwin.spec +4 -2
  213. psychopy/preferences/FreeBSD.spec +4 -2
  214. psychopy/preferences/Linux.spec +4 -2
  215. psychopy/preferences/Windows.spec +4 -2
  216. psychopy/preferences/baseNoArch.spec +4 -2
  217. psychopy/preferences/preferences.py +47 -24
  218. psychopy/projects/pavlovia.py +47 -4
  219. psychopy/scripts/psyexpCompile.py +0 -4
  220. psychopy/session.py +153 -21
  221. psychopy/sound/__init__.py +31 -21
  222. psychopy/sound/_base.py +20 -3
  223. psychopy/sound/audioclip.py +320 -33
  224. psychopy/sound/backend_ptb.py +47 -58
  225. psychopy/sound/backend_pygame.py +1 -1
  226. psychopy/sound/backend_pysound.py +6 -15
  227. psychopy/sound/transcribe.py +53 -0
  228. psychopy/tests/.DS_Store +0 -0
  229. psychopy/tests/data/.DS_Store +0 -0
  230. psychopy/tests/data/TestUnknownPluginComponent_load_resave.psyexp +135 -0
  231. psychopy/tests/data/Test_textbox/test_ori_0_bottom right.png +0 -0
  232. psychopy/tests/data/Test_textbox/test_ori_0_center.png +0 -0
  233. psychopy/tests/data/Test_textbox/test_ori_0_top left.png +0 -0
  234. psychopy/tests/data/Test_textbox/test_ori_120_bottom right.png +0 -0
  235. psychopy/tests/data/Test_textbox/test_ori_120_center.png +0 -0
  236. psychopy/tests/data/Test_textbox/test_ori_120_top left.png +0 -0
  237. psychopy/tests/data/Test_textbox/test_ori_180_bottom right.png +0 -0
  238. psychopy/tests/data/Test_textbox/test_ori_180_center.png +0 -0
  239. psychopy/tests/data/Test_textbox/test_ori_180_top left.png +0 -0
  240. psychopy/tests/data/Test_textbox/test_ori_240_bottom right.png +0 -0
  241. psychopy/tests/data/Test_textbox/test_ori_240_center.png +0 -0
  242. psychopy/tests/data/Test_textbox/test_ori_240_top left.png +0 -0
  243. psychopy/tests/data/correctScript/.DS_Store +0 -0
  244. psychopy/tests/data/test_components/testClearKeyboard/testClearKeyboard.psyexp +200 -0
  245. psychopy/tests/data/test_session/.DS_Store +0 -0
  246. psychopy/tests/data/test_session/root/testFutureTrials/testFutureTrials.psyexp +155 -0
  247. psychopy/tests/data/test_session/root/testTrialNav/trialNav.psyexp +158 -0
  248. psychopy/tests/test_app/.DS_Store +0 -0
  249. psychopy/tests/test_app/conftest.py +2 -2
  250. psychopy/tests/test_app/test_speed.py +4 -1
  251. psychopy/tests/test_data/test_TrialHandler2.py +146 -1
  252. psychopy/tests/test_experiment/.DS_Store +0 -0
  253. psychopy/tests/test_experiment/needs_wx/genComponsTemplate.py +3 -3
  254. psychopy/tests/test_experiment/needs_wx/test_components.py +2 -2
  255. psychopy/tests/test_experiment/test_components/test_KeyboardComponent.py +28 -0
  256. psychopy/tests/test_experiment/test_components/test_UnknownPluginComponent.py +27 -0
  257. psychopy/tests/test_experiment/test_components/test_base_components.py +58 -0
  258. psychopy/tests/test_experiment/test_py2js.py +1 -1
  259. psychopy/tests/test_hardware/test_keyboard.py +31 -0
  260. psychopy/tests/test_hardware/test_ports.py +1 -11
  261. psychopy/tests/test_liaison/test_Liaison.py +47 -0
  262. psychopy/tests/test_misc/test_core.py +5 -0
  263. psychopy/tests/test_session/test_Session.py +5 -1
  264. psychopy/tests/test_tools/test_versionchooser.py +39 -8
  265. psychopy/tests/test_visual/test_all_stimuli.py +0 -97
  266. psychopy/tests/test_visual/test_image.py +6 -5
  267. psychopy/tests/test_visual/test_textbox.py +36 -0
  268. psychopy/tests/utils.py +4 -0
  269. psychopy/tools/filetools.py +1 -1
  270. psychopy/tools/pkgtools.py +160 -137
  271. psychopy/tools/versionchooser.py +10 -10
  272. psychopy/tools/wizard.py +3 -3
  273. psychopy/visual/.DS_Store +0 -0
  274. psychopy/visual/backends/pygletbackend.py +24 -13
  275. psychopy/visual/basevisual.py +5 -11
  276. psychopy/visual/button.py +2 -14
  277. psychopy/visual/helpers.py +5 -5
  278. psychopy/visual/line.py +1 -2
  279. psychopy/visual/movie2.py +7 -816
  280. psychopy/visual/movie3.py +7 -589
  281. psychopy/visual/movies/__init__.py +8 -11
  282. psychopy/visual/movies/frame.py +5 -2
  283. psychopy/visual/movies/players/ffpyplayer_player.py +5 -2
  284. psychopy/visual/noise.py +8 -7
  285. psychopy/visual/patch.py +7 -16
  286. psychopy/visual/radial.py +9 -7
  287. psychopy/visual/ratingscale.py +8 -1415
  288. psychopy/visual/secondorder.py +10 -9
  289. psychopy/visual/shape.py +7 -2
  290. psychopy/visual/text.py +1 -1
  291. psychopy/visual/textbox2/textbox2.py +28 -5
  292. {psychopy-2024.1.4.dist-info → psychopy-2024.2.0.dist-info}/METADATA +8 -13
  293. {psychopy-2024.1.4.dist-info → psychopy-2024.2.0.dist-info}/RECORD +307 -213
  294. {psychopy-2024.1.4.dist-info → psychopy-2024.2.0.dist-info}/WHEEL +1 -1
  295. psychopy/app/Resources/click.png +0 -0
  296. psychopy/app/Resources/next.png +0 -0
  297. psychopy/experiment/components/patch/__init__.py +0 -121
  298. psychopy/experiment/components/patch/classic/patch.png +0 -0
  299. psychopy/experiment/components/patch/dark/patch.png +0 -0
  300. psychopy/experiment/components/patch/dark/patch@2x.png +0 -0
  301. psychopy/experiment/components/patch/light/patch.png +0 -0
  302. psychopy/experiment/components/patch/light/patch@2x.png +0 -0
  303. psychopy/experiment/components/ratingScale/__init__.py +0 -337
  304. psychopy/experiment/components/ratingScale/classic/ratingscale.png +0 -0
  305. psychopy/experiment/components/ratingScale/classic/ratingscale@2x.png +0 -0
  306. psychopy/experiment/components/ratingScale/dark/ratingScale@2x.png +0 -0
  307. psychopy/experiment/components/ratingScale/dark/ratingscale.png +0 -0
  308. psychopy/experiment/components/ratingScale/light/ratingScale@2x.png +0 -0
  309. psychopy/experiment/components/ratingScale/light/ratingscale.png +0 -0
  310. psychopy/platform_specific/posix.py +0 -16
  311. psychopy/tests/test_sound/test_microphone.py +0 -217
  312. psychopy/tests/test_visual/test_ratingScale.py +0 -299
  313. /psychopy/{app/Resources → assets}/Psychopy Window Favicon@16w.png +0 -0
  314. /psychopy/{app/Resources → assets}/Psychopy Window Favicon@32w.png +0 -0
  315. /psychopy/{app/Resources → assets}/USB-C.png +0 -0
  316. /psychopy/{app/Resources → assets}/USB.png +0 -0
  317. /psychopy/{app/Resources → assets}/creditCard.png +0 -0
  318. /psychopy/{app/Resources → assets}/default.mp3 +0 -0
  319. /psychopy/{app/Resources → assets}/default.mp4 +0 -0
  320. /psychopy/{app/Resources → assets}/default.png +0 -0
  321. /psychopy/{app/Resources → assets/templates}/instruct1.png +0 -0
  322. /psychopy/{app/Resources → assets/templates}/instruct2.png +0 -0
  323. {psychopy-2024.1.4.dist-info → psychopy-2024.2.0.dist-info}/entry_points.txt +0 -0
  324. {psychopy-2024.1.4.dist-info → psychopy-2024.2.0.dist-info}/licenses/AUTHORS.md +0 -0
  325. {psychopy-2024.1.4.dist-info → psychopy-2024.2.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,433 @@
1
+ <?xml version="1.0" ?>
2
+ <PsychoPy2experiment encoding="utf-8" version="2024.2.0">
3
+ <Settings>
4
+ <Param val="3" valType="str" updates="None" name="Audio latency priority"/>
5
+ <Param val="ptb" valType="str" updates="None" name="Audio lib"/>
6
+ <Param val="" valType="str" updates="None" name="Completed URL"/>
7
+ <Param val="auto" valType="str" updates="None" name="Data file delimiter"/>
8
+ <Param val="u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])" valType="code" updates="None" name="Data filename"/>
9
+ <Param val="True" valType="bool" updates="None" name="Enable Escape"/>
10
+ <Param val="Thank you for your patience." valType="str" updates="None" name="End Message"/>
11
+ <Param val="{'participant': 'f&quot;{randint(0, 999999):06.0f}&quot;', 'session': '001'}" valType="code" updates="None" name="Experiment info"/>
12
+ <Param val="True" valType="bool" updates="None" name="Force stereo"/>
13
+ <Param val="True" valType="bool" updates="None" name="Full-screen window"/>
14
+ <Param val="" valType="str" updates="None" name="HTML path"/>
15
+ <Param val="" valType="str" updates="None" name="Incomplete URL"/>
16
+ <Param val="testMonitor" valType="str" updates="None" name="Monitor"/>
17
+ <Param val="[]" valType="list" updates="None" name="Resources"/>
18
+ <Param val="False" valType="bool" updates="None" name="Save csv file"/>
19
+ <Param val="False" valType="bool" updates="None" name="Save excel file"/>
20
+ <Param val="False" valType="bool" updates="None" name="Save hdf5 file"/>
21
+ <Param val="True" valType="bool" updates="None" name="Save log file"/>
22
+ <Param val="True" valType="bool" updates="None" name="Save psydat file"/>
23
+ <Param val="True" valType="bool" updates="None" name="Save wide csv file"/>
24
+ <Param val="1" valType="num" updates="None" name="Screen"/>
25
+ <Param val="True" valType="bool" updates="None" name="Show info dlg"/>
26
+ <Param val="True" valType="bool" updates="None" name="Show mouse"/>
27
+ <Param val="height" valType="str" updates="None" name="Units"/>
28
+ <Param val="" valType="str" updates="None" name="Use version"/>
29
+ <Param val="[1920, 1080]" valType="list" updates="None" name="Window size (pixels)"/>
30
+ <Param val="none" valType="str" updates="None" name="backgroundFit"/>
31
+ <Param val="" valType="str" updates="None" name="backgroundImg"/>
32
+ <Param val="avg" valType="str" updates="None" name="blendMode"/>
33
+ <Param val="float" valType="str" updates="None" name="clockFormat"/>
34
+ <Param val="{'thisRow.t': 'priority.CRITICAL', 'expName': 'priority.LOW'}" valType="dict" updates="None" name="colPriority"/>
35
+ <Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
36
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
37
+ <Param val="warning" valType="code" updates="None" name="consoleLoggingLevel"/>
38
+ <Param val="default" valType="str" updates="None" name="ecSampleRate"/>
39
+ <Param val="100.1.1.1" valType="str" updates="None" name="elAddress"/>
40
+ <Param val="FILTER_LEVEL_2" valType="str" updates="None" name="elDataFiltering"/>
41
+ <Param val="FILTER_LEVEL_OFF" valType="str" updates="None" name="elLiveFiltering"/>
42
+ <Param val="EYELINK 1000 DESKTOP" valType="str" updates="None" name="elModel"/>
43
+ <Param val="ELLIPSE_FIT" valType="str" updates="None" name="elPupilAlgorithm"/>
44
+ <Param val="PUPIL_AREA" valType="str" updates="None" name="elPupilMeasure"/>
45
+ <Param val="1000" valType="num" updates="None" name="elSampleRate"/>
46
+ <Param val="False" valType="bool" updates="None" name="elSimMode"/>
47
+ <Param val="RIGHT_EYE" valType="str" updates="None" name="elTrackEyes"/>
48
+ <Param val="PUPIL_CR_TRACKING" valType="str" updates="None" name="elTrackingMode"/>
49
+ <Param val="pilotMode" valType="str" updates="None" name="expName"/>
50
+ <Param val="on Sync" valType="str" updates="None" name="exportHTML"/>
51
+ <Param val="None" valType="str" updates="None" name="eyetracker"/>
52
+ <Param val="" valType="code" updates="None" name="frameRate"/>
53
+ <Param val="Attempting to measure frame rate of screen, please wait..." valType="str" updates="None" name="frameRateMsg"/>
54
+ <Param val="127.0.0.1" valType="str" updates="None" name="gpAddress"/>
55
+ <Param val="4242" valType="num" updates="None" name="gpPort"/>
56
+ <Param val="ioHub" valType="str" updates="None" name="keyboardBackend"/>
57
+ <Param val="info" valType="code" updates="None" name="logging level"/>
58
+ <Param val="True" valType="bool" updates="None" name="measureFrameRate"/>
59
+ <Param val="('MIDDLE_BUTTON',)" valType="list" updates="None" name="mgBlink"/>
60
+ <Param val="CONTINUOUS" valType="str" updates="None" name="mgMove"/>
61
+ <Param val="0.5" valType="num" updates="None" name="mgSaccade"/>
62
+ <Param val="neon.local" valType="str" updates="None" name="plCompanionAddress"/>
63
+ <Param val="8080" valType="num" updates="None" name="plCompanionPort"/>
64
+ <Param val="True" valType="bool" updates="None" name="plCompanionRecordingEnabled"/>
65
+ <Param val="0.6" valType="num" updates="None" name="plConfidenceThreshold"/>
66
+ <Param val="True" valType="bool" updates="None" name="plPupilCaptureRecordingEnabled"/>
67
+ <Param val="" valType="str" updates="None" name="plPupilCaptureRecordingLocation"/>
68
+ <Param val="127.0.0.1" valType="str" updates="None" name="plPupilRemoteAddress"/>
69
+ <Param val="50020" valType="num" updates="None" name="plPupilRemotePort"/>
70
+ <Param val="1000" valType="num" updates="None" name="plPupilRemoteTimeoutMs"/>
71
+ <Param val="False" valType="bool" updates="None" name="plPupillometryOnly"/>
72
+ <Param val="psychopy_iohub_surface" valType="str" updates="None" name="plSurfaceName"/>
73
+ <Param val="0" valType="code" updates="None" name="runMode"/>
74
+ <Param val="False" valType="bool" updates="None" name="rush"/>
75
+ <Param val="time" valType="str" updates="None" name="sortColumns"/>
76
+ <Param val="" valType="str" updates="None" name="tbLicenseFile"/>
77
+ <Param val="" valType="str" updates="None" name="tbModel"/>
78
+ <Param val="60" valType="num" updates="None" name="tbSampleRate"/>
79
+ <Param val="" valType="str" updates="None" name="tbSerialNo"/>
80
+ <Param val="pyglet" valType="str" updates="None" name="winBackend"/>
81
+ </Settings>
82
+ <Routines>
83
+ <Routine name="autoKb">
84
+ <RoutineSettingsComponent name="autoKb" plugin="None">
85
+ <Param val="none" valType="str" updates="None" name="backgroundFit"/>
86
+ <Param val="" valType="str" updates="None" name="backgroundImg"/>
87
+ <Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
88
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
89
+ <Param val="" valType="str" updates="constant" name="desc"/>
90
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
91
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
92
+ <Param val="False" valType="code" updates="None" name="forceNonSlip"/>
93
+ <Param val="autoKb" valType="code" updates="None" name="name"/>
94
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
95
+ <Param val="" valType="code" updates="constant" name="skipIf"/>
96
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
97
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
98
+ <Param val="False" valType="bool" updates="None" name="useWindowParams"/>
99
+ </RoutineSettingsComponent>
100
+ <KeyboardComponent name="keyResp" plugin="None">
101
+ <Param val="'space'" valType="list" updates="constant" name="allowedKeys"/>
102
+ <Param val="" valType="str" updates="constant" name="correctAns"/>
103
+ <Param val="" valType="str" updates="None" name="deviceLabel"/>
104
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
105
+ <Param val="True" valType="bool" updates="constant" name="discard previous"/>
106
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
107
+ <Param val="True" valType="bool" updates="constant" name="forceEndRoutine"/>
108
+ <Param val="keyResp" valType="code" updates="None" name="name"/>
109
+ <Param val="press" valType="str" updates="constant" name="registerOn"/>
110
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
111
+ <Param val="" valType="code" updates="None" name="startEstim"/>
112
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
113
+ <Param val="0.0" valType="code" updates="None" name="startVal"/>
114
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
115
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
116
+ <Param val="last key" valType="str" updates="constant" name="store"/>
117
+ <Param val="False" valType="bool" updates="constant" name="storeCorrect"/>
118
+ <Param val="True" valType="bool" updates="constant" name="syncScreenRefresh"/>
119
+ </KeyboardComponent>
120
+ <TextboxComponent name="autoKbTxt" plugin="None">
121
+ <Param val="center" valType="str" updates="constant" name="alignment"/>
122
+ <Param val="center" valType="str" updates="constant" name="anchor"/>
123
+ <Param val="True" valType="bool" updates="constant" name="autoLog"/>
124
+ <Param val="False" valType="bool" updates="constant" name="bold"/>
125
+ <Param val="None" valType="color" updates="constant" name="borderColor"/>
126
+ <Param val="2" valType="num" updates="constant" name="borderWidth"/>
127
+ <Param val="white" valType="color" updates="constant" name="color"/>
128
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
129
+ <Param val="1" valType="num" updates="constant" name="contrast"/>
130
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
131
+ <Param val="False" valType="code" updates="constant" name="draggable"/>
132
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
133
+ <Param val="False" valType="bool" updates="constant" name="editable"/>
134
+ <Param val="None" valType="color" updates="constant" name="fillColor"/>
135
+ <Param val="False" valType="bool" updates="constant" name="flipHoriz"/>
136
+ <Param val="False" valType="bool" updates="constant" name="flipVert"/>
137
+ <Param val="Arial" valType="str" updates="constant" name="font"/>
138
+ <Param val="False" valType="bool" updates="constant" name="italic"/>
139
+ <Param val="LTR" valType="str" updates="None" name="languageStyle"/>
140
+ <Param val="0.05" valType="num" updates="constant" name="letterHeight"/>
141
+ <Param val="1.0" valType="num" updates="constant" name="lineSpacing"/>
142
+ <Param val="autoKbTxt" valType="code" updates="None" name="name"/>
143
+ <Param val="" valType="num" updates="constant" name="opacity"/>
144
+ <Param val="0" valType="num" updates="constant" name="ori"/>
145
+ <Param val="visible" valType="str" updates="constant" name="overflow"/>
146
+ <Param val="0" valType="num" updates="constant" name="padding"/>
147
+ <Param val="Type here..." valType="str" updates="constant" name="placeholder"/>
148
+ <Param val="(0, 0)" valType="list" updates="constant" name="pos"/>
149
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
150
+ <Param val="(0.5, 0.5)" valType="list" updates="constant" name="size"/>
151
+ <Param val="" valType="list" updates="constant" name="speechPoint"/>
152
+ <Param val="" valType="code" updates="None" name="startEstim"/>
153
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
154
+ <Param val="0.0" valType="code" updates="None" name="startVal"/>
155
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
156
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
157
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
158
+ <Param val="Press SPACE to continue (or if you're in pilot mode, just wait 0.5s!)" valType="str" updates="constant" name="text"/>
159
+ <Param val="from exp settings" valType="str" updates="None" name="units"/>
160
+ <Param val="" valType="code" updates="None" name="validator"/>
161
+ </TextboxComponent>
162
+ <CodeComponent name="makePress" plugin="None">
163
+ <Param val="" valType="extendedCode" updates="constant" name="Before Experiment"/>
164
+ <Param val="" valType="extendedCode" updates="constant" name="Before JS Experiment"/>
165
+ <Param val="" valType="extendedCode" updates="constant" name="Begin Experiment"/>
166
+ <Param val="" valType="extendedCode" updates="constant" name="Begin JS Experiment"/>
167
+ <Param val="" valType="extendedCode" updates="constant" name="Begin JS Routine"/>
168
+ <Param val="" valType="extendedCode" updates="constant" name="Begin Routine"/>
169
+ <Param val="Auto-&gt;JS" valType="str" updates="None" name="Code Type"/>
170
+ <Param val="# if piloting, send a dummy keypress after 0.5s&amp;#10;if PILOTING and t &gt; 0.5:&amp;#10; keyResp.device.makeResponse(code=&quot;space&quot;, tDown=t)&amp;#10;&amp;#10;# no more tedious key mashing!&amp;#10;" valType="extendedCode" updates="constant" name="Each Frame"/>
171
+ <Param val="if ((PILOTING &amp;&amp; (t &gt; 0.5))) {&amp;#10; keyResp.device.makeResponse({&quot;code&quot;: &quot;space&quot;, &quot;tDown&quot;: t});&amp;#10;}&amp;#10;" valType="extendedCode" updates="constant" name="Each JS Frame"/>
172
+ <Param val="" valType="extendedCode" updates="constant" name="End Experiment"/>
173
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Experiment"/>
174
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Routine"/>
175
+ <Param val="" valType="extendedCode" updates="constant" name="End Routine"/>
176
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
177
+ <Param val="makePress" valType="code" updates="None" name="name"/>
178
+ </CodeComponent>
179
+ </Routine>
180
+ <Routine name="skipped">
181
+ <RoutineSettingsComponent name="skipped" plugin="None">
182
+ <Param val="none" valType="str" updates="None" name="backgroundFit"/>
183
+ <Param val="" valType="str" updates="None" name="backgroundImg"/>
184
+ <Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
185
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
186
+ <Param val="" valType="str" updates="constant" name="desc"/>
187
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
188
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
189
+ <Param val="False" valType="code" updates="None" name="forceNonSlip"/>
190
+ <Param val="skipped" valType="code" updates="None" name="name"/>
191
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
192
+ <Param val="PILOTING" valType="code" updates="constant" name="skipIf"/>
193
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
194
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
195
+ <Param val="False" valType="bool" updates="None" name="useWindowParams"/>
196
+ </RoutineSettingsComponent>
197
+ <TextboxComponent name="skipTxt" plugin="None">
198
+ <Param val="center" valType="str" updates="constant" name="alignment"/>
199
+ <Param val="center" valType="str" updates="constant" name="anchor"/>
200
+ <Param val="True" valType="bool" updates="constant" name="autoLog"/>
201
+ <Param val="False" valType="bool" updates="constant" name="bold"/>
202
+ <Param val="None" valType="color" updates="constant" name="borderColor"/>
203
+ <Param val="2" valType="num" updates="constant" name="borderWidth"/>
204
+ <Param val="white" valType="color" updates="constant" name="color"/>
205
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
206
+ <Param val="1" valType="num" updates="constant" name="contrast"/>
207
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
208
+ <Param val="False" valType="code" updates="constant" name="draggable"/>
209
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
210
+ <Param val="False" valType="bool" updates="constant" name="editable"/>
211
+ <Param val="None" valType="color" updates="constant" name="fillColor"/>
212
+ <Param val="False" valType="bool" updates="constant" name="flipHoriz"/>
213
+ <Param val="False" valType="bool" updates="constant" name="flipVert"/>
214
+ <Param val="Arial" valType="str" updates="constant" name="font"/>
215
+ <Param val="False" valType="bool" updates="constant" name="italic"/>
216
+ <Param val="LTR" valType="str" updates="None" name="languageStyle"/>
217
+ <Param val="0.05" valType="num" updates="constant" name="letterHeight"/>
218
+ <Param val="1.0" valType="num" updates="constant" name="lineSpacing"/>
219
+ <Param val="skipTxt" valType="code" updates="None" name="name"/>
220
+ <Param val="" valType="num" updates="constant" name="opacity"/>
221
+ <Param val="0" valType="num" updates="constant" name="ori"/>
222
+ <Param val="visible" valType="str" updates="constant" name="overflow"/>
223
+ <Param val="0" valType="num" updates="constant" name="padding"/>
224
+ <Param val="Type here..." valType="str" updates="constant" name="placeholder"/>
225
+ <Param val="(0, 0)" valType="list" updates="constant" name="pos"/>
226
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
227
+ <Param val="(0.5, 0.5)" valType="list" updates="constant" name="size"/>
228
+ <Param val="" valType="list" updates="constant" name="speechPoint"/>
229
+ <Param val="" valType="code" updates="None" name="startEstim"/>
230
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
231
+ <Param val="0.0" valType="code" updates="None" name="startVal"/>
232
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
233
+ <Param val="5" valType="code" updates="constant" name="stopVal"/>
234
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
235
+ <Param val="This trial will be skipped in piloting mode. Check the Routine Settings to see how!" valType="str" updates="constant" name="text"/>
236
+ <Param val="from exp settings" valType="str" updates="None" name="units"/>
237
+ <Param val="" valType="code" updates="None" name="validator"/>
238
+ </TextboxComponent>
239
+ </Routine>
240
+ <Routine name="autoSlider">
241
+ <RoutineSettingsComponent name="autoSlider" plugin="None">
242
+ <Param val="none" valType="str" updates="None" name="backgroundFit"/>
243
+ <Param val="" valType="str" updates="None" name="backgroundImg"/>
244
+ <Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
245
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
246
+ <Param val="" valType="str" updates="constant" name="desc"/>
247
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
248
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
249
+ <Param val="False" valType="code" updates="None" name="forceNonSlip"/>
250
+ <Param val="autoSlider" valType="code" updates="None" name="name"/>
251
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
252
+ <Param val="" valType="code" updates="constant" name="skipIf"/>
253
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
254
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
255
+ <Param val="False" valType="bool" updates="None" name="useWindowParams"/>
256
+ </RoutineSettingsComponent>
257
+ <SliderComponent name="slider" plugin="None">
258
+ <Param val="White" valType="color" updates="constant" name="borderColor"/>
259
+ <Param val="LightGray" valType="color" updates="constant" name="color"/>
260
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
261
+ <Param val="1" valType="num" updates="constant" name="contrast"/>
262
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
263
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
264
+ <Param val="Red" valType="color" updates="constant" name="fillColor"/>
265
+ <Param val="False" valType="bool" updates="constant" name="flip"/>
266
+ <Param val="Open Sans" valType="str" updates="constant" name="font"/>
267
+ <Param val="True" valType="bool" updates="constant" name="forceEndRoutine"/>
268
+ <Param val="0" valType="num" updates="constant" name="granularity"/>
269
+ <Param val="" valType="code" updates="None" name="initVal"/>
270
+ <Param val="&quot;Yes&quot;, &quot;No&quot;, &quot;I am a robot&quot;" valType="list" updates="constant" name="labels"/>
271
+ <Param val="0.05" valType="num" updates="constant" name="letterHeight"/>
272
+ <Param val="slider" valType="code" updates="None" name="name"/>
273
+ <Param val="" valType="num" updates="constant" name="opacity"/>
274
+ <Param val="0" valType="num" updates="constant" name="ori"/>
275
+ <Param val="(0, -0.4)" valType="list" updates="constant" name="pos"/>
276
+ <Param val="False" valType="bool" updates="constant" name="readOnly"/>
277
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
278
+ <Param val="(1.0, 0.1)" valType="list" updates="constant" name="size"/>
279
+ <Param val="" valType="code" updates="None" name="startEstim"/>
280
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
281
+ <Param val="0.0" valType="code" updates="None" name="startVal"/>
282
+ <Param val="condition" valType="str" updates="None" name="stopType"/>
283
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
284
+ <Param val="False" valType="bool" updates="constant" name="storeHistory"/>
285
+ <Param val="True" valType="bool" updates="constant" name="storeRating"/>
286
+ <Param val="True" valType="bool" updates="constant" name="storeRatingTime"/>
287
+ <Param val="()" valType="list" updates="constant" name="styleTweaks"/>
288
+ <Param val="rating" valType="str" updates="constant" name="styles"/>
289
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
290
+ <Param val="(0, 1, 2)" valType="list" updates="constant" name="ticks"/>
291
+ <Param val="from exp settings" valType="str" updates="None" name="units"/>
292
+ <Param val="" valType="code" updates="None" name="validator"/>
293
+ </SliderComponent>
294
+ <CodeComponent name="makeRating" plugin="None">
295
+ <Param val="" valType="extendedCode" updates="constant" name="Before Experiment"/>
296
+ <Param val="" valType="extendedCode" updates="constant" name="Before JS Experiment"/>
297
+ <Param val="" valType="extendedCode" updates="constant" name="Begin Experiment"/>
298
+ <Param val="" valType="extendedCode" updates="constant" name="Begin JS Experiment"/>
299
+ <Param val="" valType="extendedCode" updates="constant" name="Begin JS Routine"/>
300
+ <Param val="" valType="extendedCode" updates="constant" name="Begin Routine"/>
301
+ <Param val="Auto-&gt;JS" valType="str" updates="None" name="Code Type"/>
302
+ <Param val="# if piloting, make a dummy response after 0.5s&amp;#10;if PILOTING and t &gt; 0.5:&amp;#10; slider.rating = 2&amp;#10;&amp;#10;# no more tedious clicking!&amp;#10;" valType="extendedCode" updates="constant" name="Each Frame"/>
303
+ <Param val="if ((PILOTING &amp;&amp; (t &gt; 0.5))) {&amp;#10; slider.rating = 2;&amp;#10;}&amp;#10;" valType="extendedCode" updates="constant" name="Each JS Frame"/>
304
+ <Param val="" valType="extendedCode" updates="constant" name="End Experiment"/>
305
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Experiment"/>
306
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Routine"/>
307
+ <Param val="" valType="extendedCode" updates="constant" name="End Routine"/>
308
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
309
+ <Param val="makeRating" valType="code" updates="None" name="name"/>
310
+ </CodeComponent>
311
+ <TextboxComponent name="autoSliderTxt" plugin="None">
312
+ <Param val="center" valType="str" updates="constant" name="alignment"/>
313
+ <Param val="center" valType="str" updates="constant" name="anchor"/>
314
+ <Param val="True" valType="bool" updates="constant" name="autoLog"/>
315
+ <Param val="False" valType="bool" updates="constant" name="bold"/>
316
+ <Param val="None" valType="color" updates="constant" name="borderColor"/>
317
+ <Param val="2" valType="num" updates="constant" name="borderWidth"/>
318
+ <Param val="white" valType="color" updates="constant" name="color"/>
319
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
320
+ <Param val="1" valType="num" updates="constant" name="contrast"/>
321
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
322
+ <Param val="False" valType="code" updates="constant" name="draggable"/>
323
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
324
+ <Param val="False" valType="bool" updates="constant" name="editable"/>
325
+ <Param val="None" valType="color" updates="constant" name="fillColor"/>
326
+ <Param val="False" valType="bool" updates="constant" name="flipHoriz"/>
327
+ <Param val="False" valType="bool" updates="constant" name="flipVert"/>
328
+ <Param val="Arial" valType="str" updates="constant" name="font"/>
329
+ <Param val="False" valType="bool" updates="constant" name="italic"/>
330
+ <Param val="LTR" valType="str" updates="None" name="languageStyle"/>
331
+ <Param val="0.05" valType="num" updates="constant" name="letterHeight"/>
332
+ <Param val="1.0" valType="num" updates="constant" name="lineSpacing"/>
333
+ <Param val="autoSliderTxt" valType="code" updates="None" name="name"/>
334
+ <Param val="" valType="num" updates="constant" name="opacity"/>
335
+ <Param val="0" valType="num" updates="constant" name="ori"/>
336
+ <Param val="visible" valType="str" updates="constant" name="overflow"/>
337
+ <Param val="0" valType="num" updates="constant" name="padding"/>
338
+ <Param val="Type here..." valType="str" updates="constant" name="placeholder"/>
339
+ <Param val="(0, 0)" valType="list" updates="constant" name="pos"/>
340
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
341
+ <Param val="(0.5, 0.5)" valType="list" updates="constant" name="size"/>
342
+ <Param val="" valType="list" updates="constant" name="speechPoint"/>
343
+ <Param val="" valType="code" updates="None" name="startEstim"/>
344
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
345
+ <Param val="0.0" valType="code" updates="None" name="startVal"/>
346
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
347
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
348
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
349
+ <Param val="Choose to continue (or if you're in pilot mode, just wait 0.5s!)" valType="str" updates="constant" name="text"/>
350
+ <Param val="from exp settings" valType="str" updates="None" name="units"/>
351
+ <Param val="" valType="code" updates="None" name="validator"/>
352
+ </TextboxComponent>
353
+ </Routine>
354
+ <Routine name="skippedSection">
355
+ <RoutineSettingsComponent name="skippedSection" plugin="None">
356
+ <Param val="none" valType="str" updates="None" name="backgroundFit"/>
357
+ <Param val="" valType="str" updates="None" name="backgroundImg"/>
358
+ <Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
359
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
360
+ <Param val="" valType="str" updates="constant" name="desc"/>
361
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
362
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
363
+ <Param val="False" valType="code" updates="None" name="forceNonSlip"/>
364
+ <Param val="skippedSection" valType="code" updates="None" name="name"/>
365
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
366
+ <Param val="" valType="code" updates="constant" name="skipIf"/>
367
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
368
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
369
+ <Param val="False" valType="bool" updates="None" name="useWindowParams"/>
370
+ </RoutineSettingsComponent>
371
+ <TextboxComponent name="skippedSectionTxt" plugin="None">
372
+ <Param val="center" valType="str" updates="constant" name="alignment"/>
373
+ <Param val="center" valType="str" updates="constant" name="anchor"/>
374
+ <Param val="True" valType="bool" updates="constant" name="autoLog"/>
375
+ <Param val="False" valType="bool" updates="constant" name="bold"/>
376
+ <Param val="None" valType="color" updates="constant" name="borderColor"/>
377
+ <Param val="2" valType="num" updates="constant" name="borderWidth"/>
378
+ <Param val="white" valType="color" updates="constant" name="color"/>
379
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
380
+ <Param val="1" valType="num" updates="constant" name="contrast"/>
381
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
382
+ <Param val="False" valType="code" updates="constant" name="draggable"/>
383
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
384
+ <Param val="False" valType="bool" updates="constant" name="editable"/>
385
+ <Param val="None" valType="color" updates="constant" name="fillColor"/>
386
+ <Param val="False" valType="bool" updates="constant" name="flipHoriz"/>
387
+ <Param val="False" valType="bool" updates="constant" name="flipVert"/>
388
+ <Param val="Arial" valType="str" updates="constant" name="font"/>
389
+ <Param val="False" valType="bool" updates="constant" name="italic"/>
390
+ <Param val="LTR" valType="str" updates="None" name="languageStyle"/>
391
+ <Param val="0.05" valType="num" updates="constant" name="letterHeight"/>
392
+ <Param val="1.0" valType="num" updates="constant" name="lineSpacing"/>
393
+ <Param val="skippedSectionTxt" valType="code" updates="None" name="name"/>
394
+ <Param val="" valType="num" updates="constant" name="opacity"/>
395
+ <Param val="0" valType="num" updates="constant" name="ori"/>
396
+ <Param val="visible" valType="str" updates="constant" name="overflow"/>
397
+ <Param val="0" valType="num" updates="constant" name="padding"/>
398
+ <Param val="Type here..." valType="str" updates="constant" name="placeholder"/>
399
+ <Param val="(0, 0)" valType="list" updates="constant" name="pos"/>
400
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
401
+ <Param val="(0.5, 0.5)" valType="list" updates="constant" name="size"/>
402
+ <Param val="" valType="list" updates="constant" name="speechPoint"/>
403
+ <Param val="" valType="code" updates="None" name="startEstim"/>
404
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
405
+ <Param val="1" valType="code" updates="None" name="startVal"/>
406
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
407
+ <Param val="1" valType="code" updates="constant" name="stopVal"/>
408
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
409
+ <Param val="This entire loop is skipped in piloting mode!" valType="str" updates="constant" name="text"/>
410
+ <Param val="from exp settings" valType="str" updates="None" name="units"/>
411
+ <Param val="" valType="code" updates="None" name="validator"/>
412
+ </TextboxComponent>
413
+ </Routine>
414
+ </Routines>
415
+ <Flow>
416
+ <Routine name="autoKb"/>
417
+ <Routine name="autoSlider"/>
418
+ <Routine name="skipped"/>
419
+ <LoopInitiator loopType="TrialHandler" name="trials">
420
+ <Param name="Selected rows" updates="None" val="" valType="str"/>
421
+ <Param name="conditions" updates="None" val="None" valType="str"/>
422
+ <Param name="conditionsFile" updates="None" val="" valType="file"/>
423
+ <Param name="endPoints" updates="None" val="[0, 1]" valType="num"/>
424
+ <Param name="isTrials" updates="None" val="True" valType="bool"/>
425
+ <Param name="loopType" updates="None" val="random" valType="str"/>
426
+ <Param name="nReps" updates="None" val="5 * (not PILOTING)" valType="num"/>
427
+ <Param name="name" updates="None" val="trials" valType="code"/>
428
+ <Param name="random seed" updates="None" val="" valType="code"/>
429
+ </LoopInitiator>
430
+ <Routine name="skippedSection"/>
431
+ <LoopTerminator name="trials"/>
432
+ </Flow>
433
+ </PsychoPy2experiment>
@@ -0,0 +1,7 @@
1
+ # Pilot mode
2
+
3
+ We've all been there. You have a task which is long and laborious because, basically, it needs to be. That's all well and good for the participant, but what about the poor experimentor! You shouldn't have to sit through repeat after repeat after repeat!
4
+
5
+ Well, fret no more! This demo shows how to use the variable `PILOTING` (which exists in all PsychoPy experiments as either True or False depending on whether you're in pilot or running mode) to skip over Routines and create dummy keyboard/slider responses to speed through an otherwise quite dull experiment.
6
+
7
+ Try running with the pilot/run toggle (check the toolbar at the top of Builder view) in both modes to see the difference.
Binary file
@@ -94,8 +94,8 @@ elif sys.platform == 'win32':
94
94
  sysName = 'win'
95
95
  sysVer = platform.win32_ver()[0]
96
96
  elif sys.platform.startswith('linux'):
97
- from distro import linux_distribution
98
- sysName = 'linux_' + linux_distribution()
97
+ import distro
98
+ sysName = 'linux_' + '_'.join([distro.name(), distro.version(), distro.codename()])
99
99
  sysVer = platform.release()
100
100
  else:
101
101
  sysName = sysVer = 'n/a'
Binary file
@@ -0,0 +1,33 @@
1
+ """
2
+ Demo for writing HDF5 data to CSV files
3
+ """
4
+
5
+ import h5py
6
+ import pandas as pd
7
+
8
+ filename = " " # Add file path here
9
+
10
+ id = filename.split("/")[1].split("_")[0]
11
+ with h5py.File(filename, "r") as f:
12
+
13
+ # get the list of eyetracker measures available in the hdf5
14
+ eyetracker_measures = list(f['data_collection']['events']['eyetracker'])
15
+
16
+ for measure in eyetracker_measures:
17
+ print('Extracting events of type: ', measure)
18
+ data_collection = list(f['data_collection']['events']['eyetracker'][measure])
19
+ if len(data_collection)>0:
20
+ column_headers = data_collection[0].dtype.descr
21
+ cols = []
22
+ data_dict = {}
23
+ for ch in column_headers:
24
+ cols.append(ch[0])
25
+ data_dict[ch[0]] = []
26
+
27
+ for row in data_collection:
28
+ for i, col in enumerate(cols):
29
+ data_dict[col].append(row[i])
30
+ pd_data = pd.DataFrame.from_dict(data_dict)
31
+ pd_data.to_csv(id+'_'+measure+'.csv', index = False)
32
+ else:
33
+ print('No data for type', measure, ' moving on')