psychopy 2024.2.1__py3-none-any.whl → 2024.2.4__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 (276) hide show
  1. psychopy/.DS_Store +0 -0
  2. psychopy/GIT_SHA +1 -1
  3. psychopy/VERSION +1 -1
  4. psychopy/__init__.py +10 -1
  5. psychopy/__init__.py.orig +65 -0
  6. psychopy/app/{locale/ar_001/.DS_Store → .DS_Store} +0 -0
  7. psychopy/app/Resources/.DS_Store +0 -0
  8. psychopy/app/_psychopyApp.py +11 -3
  9. psychopy/app/appData.spec +1 -1
  10. psychopy/app/builder/builder.py +1 -1
  11. psychopy/app/builder/builder.py.orig +3932 -0
  12. psychopy/app/builder/dialogs/__init__.py.orig +1679 -0
  13. psychopy/app/builder/dialogs/paramCtrls.py +1 -1
  14. psychopy/app/builder/dialogs/paramCtrls.py.orig +713 -0
  15. psychopy/app/colorpicker/__init__.py.orig +411 -0
  16. psychopy/app/cortex.log +0 -0
  17. psychopy/app/jobs.py +8 -1
  18. psychopy/app/locale/ar_001/LC_MESSAGE/messages.po +2452 -1731
  19. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN.mo +0 -0
  20. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN.po +6127 -0
  21. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN_allFlagged.mo +0 -0
  22. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN_allFlagged.po +7366 -0
  23. psychopy/app/plugin_manager/dialog.py +9 -7
  24. psychopy/app/ribbon.py +2 -1
  25. psychopy/app/runner/runner.py +7 -5
  26. psychopy/clock.py +8 -4
  27. psychopy/core.py.orig +169 -0
  28. psychopy/demos/builder/Design Templates/randomisedBlocks/html/index.html +23 -0
  29. psychopy/demos/builder/Design Templates/randomisedBlocks/html/randomisedBlocks-legacy-browsers.js +423 -0
  30. psychopy/demos/builder/Design Templates/randomisedBlocks/html/randomisedBlocks.js +427 -0
  31. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/chooseBlock.xlsx +0 -0
  32. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/facesBlock.xlsx +0 -0
  33. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/housesBlock.xlsx +0 -0
  34. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face01.jpg +0 -0
  35. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face02.jpg +0 -0
  36. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face03.jpg +0 -0
  37. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house01.jpg +0 -0
  38. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house02.jpg +0 -0
  39. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house03.jpg +0 -0
  40. psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks.py +330 -0
  41. psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks_lastrun.py +330 -0
  42. psychopy/demos/builder/Feature Demos/eyetracking/eyetracking.xml +298 -0
  43. psychopy/demos/builder/Feature Demos/eyetracking/eyetracking.xsd +120 -0
  44. psychopy/demos/builder/Tools/.DS_Store +0 -0
  45. psychopy/demos/builder/Tools/gammaCalibration/.DS_Store +0 -0
  46. psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.csv +38 -0
  47. psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.log +3418 -0
  48. psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.psydat +0 -0
  49. psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.csv +2 -0
  50. psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.log +15 -0
  51. psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.psydat +0 -0
  52. psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual.psyexp +323 -0
  53. psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual.py +562 -0
  54. psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual_lastrun.py +562 -0
  55. psychopy/demos/builder/Tools/gammaCalibration/questStairs.xlsx +0 -0
  56. psychopy/demos/builder/Tools/gammaCalibration/readme.md +0 -0
  57. psychopy/demos/builder/Tools/gammaCalibration/resources/low_contrast.png +0 -0
  58. psychopy/demos/builder/Tools/gammaCalibration/resources/make_2nd_order_tex.py +59 -0
  59. psychopy/demos/builder/Tools/gammaCalibration/resources/second_order_tex.png +0 -0
  60. psychopy/demos/coder/.DS_Store +0 -0
  61. psychopy/demos/coder/experiment control/info_gamma.pickle +0 -0
  62. psychopy/demos/coder/iohub/.iohpid +1 -0
  63. psychopy/demos/coder/iohub/eyetracking/.iohpid +1 -0
  64. psychopy/demos/coder/iohub/wintab/.DS_Store +0 -0
  65. psychopy/demos/coder/stimuli/.DS_Store +0 -0
  66. psychopy/demos/coder/stimuli/radialGratingContracting.py +29 -0
  67. psychopy/experiment/_experiment.py.orig +1032 -0
  68. psychopy/experiment/components/.DS_Store +0 -0
  69. psychopy/experiment/components/_base.py +13 -4
  70. psychopy/experiment/components/_base.py.orig +823 -0
  71. psychopy/experiment/components/form/.DS_Store +0 -0
  72. psychopy/experiment/components/microphone/__init__.py +10 -1
  73. psychopy/experiment/components/microphone/__init__.py.orig +490 -0
  74. psychopy/experiment/components/polygon/__init__.py +21 -22
  75. psychopy/experiment/components/settings/__init__.py +13 -14
  76. psychopy/experiment/components/settings/__init__.py.orig +1337 -0
  77. psychopy/experiment/components/textbox/__init__.py.orig +310 -0
  78. psychopy/experiment/components/webcam/.DS_Store +0 -0
  79. psychopy/experiment/components/webcam/light/.DS_Store +0 -0
  80. psychopy/experiment/flow.py +10 -8
  81. psychopy/experiment/loops.py.orig +829 -0
  82. psychopy/experiment/params.py +8 -3
  83. psychopy/experiment/params.py.orig +408 -0
  84. psychopy/experiment/routine.py.orig +503 -0
  85. psychopy/experiment/routines/_base.py +15 -6
  86. psychopy/experiment/routines/counterbalance/__init__.py +1 -0
  87. psychopy/gui/qtgui.py +14 -7
  88. psychopy/gui/util.py +10 -14
  89. psychopy/gui/wxgui.py +10 -4
  90. psychopy/hardware/.DS_Store +0 -0
  91. psychopy/hardware/brainproducts.py.orig +680 -0
  92. psychopy/hardware/iolab.py.orig +238 -0
  93. psychopy/hardware/manager.py +1 -1
  94. psychopy/hardware/photodiode.py +59 -27
  95. psychopy/hardware/serialport.py +51 -0
  96. psychopy/hardware/speaker.py +4 -4
  97. psychopy/iohub/datastore/__init__.py.orig +443 -0
  98. psychopy/iohub/datastore/util.py.orig +692 -0
  99. psychopy/iohub/devices/mouse/darwin.py.orig +427 -0
  100. psychopy/iohub/devices/mouse/linux2.py.orig +198 -0
  101. psychopy/preferences/.DS_Store +0 -0
  102. psychopy/projects/pavlovia.py +10 -3
  103. psychopy/projects/pavlovia.py.orig +1295 -0
  104. psychopy/sound/backend_ptb.py +22 -5
  105. psychopy/sound/transcribe.py +24 -4
  106. psychopy/tests/.DS_Store +0 -0
  107. psychopy/tests/data/.DS_Store +0 -0
  108. psychopy/tests/data/TestCircle_fill_local.png +0 -0
  109. psychopy/tests/data/__test.png +0 -0
  110. psychopy/tests/data/aperture1_normHexbackground_local.png +0 -0
  111. psychopy/tests/data/aperture1_norm_local.png +0 -0
  112. psychopy/tests/data/aperture2_normHexbackground_local.png +0 -0
  113. psychopy/tests/data/beatandrcos_height_local.png +0 -0
  114. psychopy/tests/data/beatandrcos_normAddBlend_local.png +0 -0
  115. psychopy/tests/data/beatandrcos_normHexbackground_local.png +0 -0
  116. psychopy/tests/data/beatandrcos_norm_local.png +0 -0
  117. psychopy/tests/data/beatandrcos_stencil_local.png +0 -0
  118. psychopy/tests/data/blend_add_height_local.png +0 -0
  119. psychopy/tests/data/blend_add_normAddBlend_local.png +0 -0
  120. psychopy/tests/data/blend_add_normHexbackground_local.png +0 -0
  121. psychopy/tests/data/blend_add_normNoShade_local.png +0 -0
  122. psychopy/tests/data/blend_add_norm_local.png +0 -0
  123. psychopy/tests/data/blend_add_stencil_local.png +0 -0
  124. psychopy/tests/data/bufferimg_gabor_height_local.png +0 -0
  125. psychopy/tests/data/bufferimg_gabor_normAddBlend_local.png +0 -0
  126. psychopy/tests/data/bufferimg_gabor_normHexbackground_local.png +0 -0
  127. psychopy/tests/data/bufferimg_gabor_normNoShade_local.png +0 -0
  128. psychopy/tests/data/bufferimg_gabor_norm_local.png +0 -0
  129. psychopy/tests/data/bufferimg_gabor_stencil_local.png +0 -0
  130. psychopy/tests/data/circleHex_height_local.png +0 -0
  131. psychopy/tests/data/circleHex_normAddBlend_local.png +0 -0
  132. psychopy/tests/data/circleHex_normHexbackground_local.png +0 -0
  133. psychopy/tests/data/circleHex_normNoShade_local.png +0 -0
  134. psychopy/tests/data/circleHex_norm_local.png +0 -0
  135. psychopy/tests/data/circleHex_stencil_local.png +0 -0
  136. psychopy/tests/data/color_comparison_local.png +0 -0
  137. psychopy/tests/data/corrFullRandom_local.csv +16 -0
  138. psychopy/tests/data/corrFullRandom_local.tsv +6 -0
  139. psychopy/tests/data/correctScript/.DS_Store +0 -0
  140. psychopy/tests/data/dots_height_local.png +0 -0
  141. psychopy/tests/data/dots_normAddBlend_local.png +0 -0
  142. psychopy/tests/data/dots_normHexbackground_local.png +0 -0
  143. psychopy/tests/data/dots_normNoShade_local.png +0 -0
  144. psychopy/tests/data/dots_norm_local.png +0 -0
  145. psychopy/tests/data/dots_stencil_local.png +0 -0
  146. psychopy/tests/data/elarray1_height_local.png +0 -0
  147. psychopy/tests/data/elarray1_normAddBlend_local.png +0 -0
  148. psychopy/tests/data/elarray1_normHexbackground_local.png +0 -0
  149. psychopy/tests/data/elarray1_norm_local.png +0 -0
  150. psychopy/tests/data/elarray1_stencil_local.png +0 -0
  151. psychopy/tests/data/envelopeandrcos_height_local.png +0 -0
  152. psychopy/tests/data/envelopeandrcos_normAddBlend_local.png +0 -0
  153. psychopy/tests/data/envelopeandrcos_normHexbackground_local.png +0 -0
  154. psychopy/tests/data/envelopeandrcos_norm_local.png +0 -0
  155. psychopy/tests/data/envelopeandrcos_stencil_local.png +0 -0
  156. psychopy/tests/data/envelopepowerandrcos_height_local.png +0 -0
  157. psychopy/tests/data/envelopepowerandrcos_normAddBlend_local.png +0 -0
  158. psychopy/tests/data/envelopepowerandrcos_normHexbackground_local.png +0 -0
  159. psychopy/tests/data/envelopepowerandrcos_norm_local.png +0 -0
  160. psychopy/tests/data/envelopepowerandrcos_stencil_local.png +0 -0
  161. psychopy/tests/data/gabor1_height_local.png +0 -0
  162. psychopy/tests/data/gabor1_normAddBlend_local.png +0 -0
  163. psychopy/tests/data/gabor1_normHexbackground_local.png +0 -0
  164. psychopy/tests/data/gabor1_normNoShade_local.png +0 -0
  165. psychopy/tests/data/gabor1_norm_local.png +0 -0
  166. psychopy/tests/data/gabor1_stencil_local.png +0 -0
  167. psychopy/tests/data/greyscale_normHexbackground_local.png +0 -0
  168. psychopy/tests/data/imageAndGauss_height_local.png +0 -0
  169. psychopy/tests/data/imageAndGauss_normAddBlend_local.png +0 -0
  170. psychopy/tests/data/imageAndGauss_normHexbackground_local.png +0 -0
  171. psychopy/tests/data/imageAndGauss_normNoShade_local.png +0 -0
  172. psychopy/tests/data/imageAndGauss_norm_local.png +0 -0
  173. psychopy/tests/data/imageAndGauss_stencil_local.png +0 -0
  174. psychopy/tests/data/movFrame1_stencil_local.png +0 -0
  175. psychopy/tests/data/noiseAndRcos_height_local.png +0 -0
  176. psychopy/tests/data/noiseAndRcos_normAddBlend_local.png +0 -0
  177. psychopy/tests/data/noiseAndRcos_normHexbackground_local.png +0 -0
  178. psychopy/tests/data/noiseAndRcos_normNoShade_local.png +0 -0
  179. psychopy/tests/data/noiseAndRcos_norm_local.png +0 -0
  180. psychopy/tests/data/noiseAndRcos_stencil_local.png +0 -0
  181. psychopy/tests/data/noiseFiltersAndRcos_height_local.png +0 -0
  182. psychopy/tests/data/noiseFiltersAndRcos_normAddBlend_local.png +0 -0
  183. psychopy/tests/data/noiseFiltersAndRcos_normHexbackground_local.png +0 -0
  184. psychopy/tests/data/noiseFiltersAndRcos_normNoShade_local.png +0 -0
  185. psychopy/tests/data/noiseFiltersAndRcos_norm_local.png +0 -0
  186. psychopy/tests/data/noiseFiltersAndRcos_stencil_local.png +0 -0
  187. psychopy/tests/data/numpyImage_height_local.png +0 -0
  188. psychopy/tests/data/numpyImage_normAddBlend_local.png +0 -0
  189. psychopy/tests/data/numpyImage_normHexbackground_local.png +0 -0
  190. psychopy/tests/data/numpyImage_normNoShade_local.png +0 -0
  191. psychopy/tests/data/numpyImage_norm_local.png +0 -0
  192. psychopy/tests/data/numpyImage_stencil_local.png +0 -0
  193. psychopy/tests/data/shape2_1_normAddBlend_local.png +0 -0
  194. psychopy/tests/data/shape2_1_normHexbackground_local.png +0 -0
  195. psychopy/tests/data/shape2_1_normNoShade_local.png +0 -0
  196. psychopy/tests/data/shape2_1_norm_local.png +0 -0
  197. psychopy/tests/data/shape2_1_stencil_local.png +0 -0
  198. psychopy/tests/data/testLoopsBlocks.psyexp_local.py +328 -0
  199. psychopy/tests/data/text1_height_local.png +0 -0
  200. psychopy/tests/data/text1_normAddBlend_local.png +0 -0
  201. psychopy/tests/data/text1_normHexbackground_local.png +0 -0
  202. psychopy/tests/data/text1_norm_local.png +0 -0
  203. psychopy/tests/data/text1_stencil_local.png +0 -0
  204. psychopy/tests/data/text2_height.png +0 -0
  205. psychopy/tests/data/text2_normAddBlend.png +0 -0
  206. psychopy/tests/data/text2_normHexbackground.png +0 -0
  207. psychopy/tests/data/text2_stencil.png +0 -0
  208. psychopy/tests/data/wedge1_height_local.png +0 -0
  209. psychopy/tests/data/wedge1_normAddBlend_local.png +0 -0
  210. psychopy/tests/data/wedge1_normHexbackground_local.png +0 -0
  211. psychopy/tests/data/wedge1_normNoShade_local.png +0 -0
  212. psychopy/tests/data/wedge1_norm_local.png +0 -0
  213. psychopy/tests/data/wedge1_stencil_local.png +0 -0
  214. psychopy/tests/test_app/.DS_Store +0 -0
  215. psychopy/tests/test_app/test_builder/.DS_Store +0 -0
  216. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.csv +9 -0
  217. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.log +177 -0
  218. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.psydat +0 -0
  219. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.xlsx +0 -0
  220. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.csv +9 -0
  221. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.log +168 -0
  222. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.psydat +0 -0
  223. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.xlsx +0 -0
  224. psychopy/tests/test_data/.DS_Store +0 -0
  225. psychopy/tests/test_hardware/test_CRS_BitsSharp.py.orig +68 -0
  226. psychopy/tests/test_tools/test_arraytools.py +112 -0
  227. psychopy/tests/test_visual/test_image.py.orig +219 -0
  228. psychopy/tools/arraytools.py +47 -0
  229. psychopy/tools/versionchooser.py +1 -1
  230. psychopy/visual/backends/pygletbackend.py +26 -8
  231. psychopy/visual/basevisual.py.orig +1723 -0
  232. psychopy/visual/form.py.orig +1181 -0
  233. psychopy/visual/text.py.orig +752 -0
  234. psychopy/visual/textbox2/textbox2.py.orig +1315 -0
  235. psychopy/visual/window.py +13 -5
  236. psychopy/visual/windowwarp.py.orig +463 -0
  237. {psychopy-2024.2.1.dist-info → psychopy-2024.2.4.dist-info}/METADATA +9 -9
  238. {psychopy-2024.2.1.dist-info → psychopy-2024.2.4.dist-info}/RECORD +244 -78
  239. {psychopy-2024.2.1.dist-info → psychopy-2024.2.4.dist-info}/WHEEL +1 -1
  240. {psychopy-2024.2.1.dist-info → psychopy-2024.2.4.dist-info}/entry_points.txt +2 -0
  241. psychopy/app/locale/ar_001/LC_MESSAGE/messages.mo +0 -0
  242. psychopy/app/locale/cs_CZ/LC_MESSAGE/messages.mo +0 -0
  243. psychopy/app/locale/da_DK/LC_MESSAGE/messages.mo +0 -0
  244. psychopy/app/locale/de_DE/LC_MESSAGE/messages.mo +0 -0
  245. psychopy/app/locale/el_GR/LC_MESSAGE/messages.mo +0 -0
  246. psychopy/app/locale/en_NZ/LC_MESSAGE/messages.mo +0 -0
  247. psychopy/app/locale/en_US/LC_MESSAGE/messages.mo +0 -0
  248. psychopy/app/locale/es_CO/LC_MESSAGE/messages.mo +0 -0
  249. psychopy/app/locale/es_ES/LC_MESSAGE/messages.mo +0 -0
  250. psychopy/app/locale/es_US/LC_MESSAGE/messages.mo +0 -0
  251. psychopy/app/locale/et_EE/LC_MESSAGE/messages.mo +0 -0
  252. psychopy/app/locale/fa_IR/LC_MESSAGE/messages.mo +0 -0
  253. psychopy/app/locale/fi_FI/LC_MESSAGE/messages.mo +0 -0
  254. psychopy/app/locale/fr_FR/LC_MESSAGE/messages.mo +0 -0
  255. psychopy/app/locale/he_IL/LC_MESSAGE/messages.mo +0 -0
  256. psychopy/app/locale/hi_IN/LC_MESSAGE/messages.mo +0 -0
  257. psychopy/app/locale/hu_HU/LC_MESSAGE/messages.mo +0 -0
  258. psychopy/app/locale/it_IT/LC_MESSAGE/messages.mo +0 -0
  259. psychopy/app/locale/ja_JP/LC_MESSAGE/messages.mo +0 -0
  260. psychopy/app/locale/ko_KR/LC_MESSAGE/messages.mo +0 -0
  261. psychopy/app/locale/ms_MY/LC_MESSAGE/messages.mo +0 -0
  262. psychopy/app/locale/nl_NL/LC_MESSAGE/messages.mo +0 -0
  263. psychopy/app/locale/nn_NO/LC_MESSAGE/messages.mo +0 -0
  264. psychopy/app/locale/pl_PL/LC_MESSAGE/messages.mo +0 -0
  265. psychopy/app/locale/pt_PT/LC_MESSAGE/messages.mo +0 -0
  266. psychopy/app/locale/ro_RO/LC_MESSAGE/messages.mo +0 -0
  267. psychopy/app/locale/ru_RU/LC_MESSAGE/messages.mo +0 -0
  268. psychopy/app/locale/sv_SE/LC_MESSAGE/messages.mo +0 -0
  269. psychopy/app/locale/tr_TR/LC_MESSAGE/messages.mo +0 -0
  270. psychopy/app/locale/zh_CN/LC_MESSAGE/messages.mo +0 -0
  271. psychopy/app/locale/zh_TW/LC_MESSAGE/messages.mo +0 -0
  272. psychopy-2024.2.1.dist-info/licenses/AUTHORS.md +0 -138
  273. /psychopy/{app/locale/ar_001/LC_MESSAGE → demos/builder}/.DS_Store +0 -0
  274. /psychopy/{app/locale/es_ES/LC_MESSAGE → demos/builder/Experiments}/.DS_Store +0 -0
  275. /psychopy/{visual → demos/builder/Tools/gammaCalibration/data}/.DS_Store +0 -0
  276. {psychopy-2024.2.1.dist-info → psychopy-2024.2.4.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,328 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ This experiment was created using PsychoPy3 Experiment Builder (v2022.1.0rc1),
5
+ on 火 12/21 13:10:40 2021
6
+ If you publish work using this script the most relevant publication is:
7
+
8
+ Peirce J, Gray JR, Simpson S, MacAskill M, Höchenberger R, Sogo H, Kastman E, Lindeløv JK. (2019)
9
+ PsychoPy2: Experiments in behavior made easy Behav Res 51: 195.
10
+ https://doi.org/10.3758/s13428-018-01193-y
11
+
12
+ """
13
+
14
+ from psychopy import locale_setup
15
+ from psychopy import prefs
16
+ from psychopy import sound, gui, visual, core, data, event, logging, clock, colors, iohub, hardware
17
+ from psychopy.constants import (NOT_STARTED, STARTED, PLAYING, PAUSED,
18
+ STOPPED, FINISHED, PRESSED, RELEASED, FOREVER)
19
+
20
+ import numpy as np # whole numpy lib is available, prepend 'np.'
21
+ from numpy import (sin, cos, tan, log, log10, pi, average,
22
+ sqrt, std, deg2rad, rad2deg, linspace, asarray)
23
+ from numpy.random import random, randint, normal, shuffle, choice as randchoice
24
+ import os # handy system and path functions
25
+ import sys # to get file system encoding
26
+
27
+ from psychopy.hardware import keyboard
28
+ from psychopy.hardware import qmix
29
+
30
+
31
+
32
+ # Ensure that relative paths start from the same directory as this script
33
+ _thisDir = os.path.dirname(os.path.abspath(__file__))
34
+ os.chdir(_thisDir)
35
+ # Store info about the experiment session
36
+ psychopyVersion = '2022.1.0rc1'
37
+ expName = 'testLoopsBlocks' # from the Builder filename that created this script
38
+ expInfo = {'session': '001', 'participant': ''}
39
+ expInfo['date'] = data.getDateStr() # add a simple timestamp
40
+ expInfo['expName'] = expName
41
+ expInfo['psychopyVersion'] = psychopyVersion
42
+
43
+ # Data file name stem = absolute path + name; later add .psyexp, .csv, .log, etc
44
+ filename = _thisDir + os.sep + 'data' + os.sep + '%s_%s' % (expInfo['participant'], expInfo['date'])
45
+
46
+ # An ExperimentHandler isn't essential but helps with data saving
47
+ thisExp = data.ExperimentHandler(name=expName, version='',
48
+ extraInfo=expInfo, runtimeInfo=None,
49
+ originPath='/Users/lpzjwp/code/psychopy/git/psychopy/tests/data/testLoopsBlocks.psyexp',
50
+ savePickle=True, saveWideText=True,
51
+ dataFileName=filename)
52
+ # save a log file for detail verbose info
53
+ logFile = logging.LogFile(filename+'.log', level=logging.EXP)
54
+ logging.console.setLevel(logging.WARNING) # this outputs to the screen, not a file
55
+
56
+ endExpNow = False # flag for 'escape' or other condition => quit the exp
57
+ frameTolerance = 0.001 # how close to onset before 'same' frame
58
+
59
+ # Start Code - component code to be run after the window creation
60
+
61
+ # Setup the Window
62
+ win = visual.Window(
63
+ size=[800,600], fullscr=False, screen=0,
64
+ winType='pyglet', allowGUI=True, allowStencil=False,
65
+ monitor='testMonitor', color=[0,0,0], colorSpace='rgb',
66
+ blendMode='avg', useFBO=True)
67
+ # store frame rate of monitor if we can measure it
68
+ expInfo['frameRate'] = win.getActualFrameRate()
69
+ if expInfo['frameRate'] != None:
70
+ frameDur = 1.0 / round(expInfo['frameRate'])
71
+ else:
72
+ frameDur = 1.0 / 60.0 # could not measure, so guess
73
+
74
+ # Setup eyetracking
75
+ ioDevice = ioConfig = ioSession = ioServer = eyetracker = None
76
+
77
+ # create a default keyboard (e.g. to check for escape)
78
+ defaultKeyboard = keyboard.Keyboard()
79
+
80
+ # Initialize components for Routine "blockIntro"
81
+ blockIntroClock = core.Clock()
82
+ blockIntroText = visual.TextStim(win=win, name='blockIntroText',
83
+ text="You're about to start a new block",
84
+ font='Arial',
85
+ pos=[0, 0], height=0.1, wrapWidth=None, ori=0,
86
+ color='white', colorSpace='rgb', opacity=1,
87
+ languageStyle='LTR',
88
+ depth=0.0);
89
+
90
+ # Initialize components for Routine "presentOneStim"
91
+ presentOneStimClock = core.Clock()
92
+ stimInfo = visual.TextStim(win=win, name='stimInfo',
93
+ text='',
94
+ font='Arial',
95
+ pos=[0, 0], height=0.1, wrapWidth=None, ori=0,
96
+ color='white', colorSpace='rgb', opacity=1,
97
+ languageStyle='LTR',
98
+ depth=0.0);
99
+
100
+ # Create some handy timers
101
+ globalClock = core.Clock() # to track the time since experiment started
102
+ routineTimer = core.CountdownTimer() # to track time remaining of each (non-slip) routine
103
+
104
+ # set up handler to look after randomisation of conditions etc
105
+ blocks = data.TrialHandler(nReps=4, method='random',
106
+ extraInfo=expInfo, originPath=-1,
107
+ trialList=[None],
108
+ seed=None, name='blocks')
109
+ thisExp.addLoop(blocks) # add the loop to the experiment
110
+ thisBlock = blocks.trialList[0] # so we can initialise stimuli with some values
111
+ # abbreviate parameter names if possible (e.g. rgb = thisBlock.rgb)
112
+ if thisBlock != None:
113
+ for paramName in thisBlock:
114
+ exec('{} = thisBlock[paramName]'.format(paramName))
115
+
116
+ for thisBlock in blocks:
117
+ currentLoop = blocks
118
+ # abbreviate parameter names if possible (e.g. rgb = thisBlock.rgb)
119
+ if thisBlock != None:
120
+ for paramName in thisBlock:
121
+ exec('{} = thisBlock[paramName]'.format(paramName))
122
+
123
+ # ------Prepare to start Routine "blockIntro"-------
124
+ continueRoutine = True
125
+ routineTimer.add(0.500000)
126
+ # update component parameters for each repeat
127
+ # keep track of which components have finished
128
+ blockIntroComponents = [blockIntroText]
129
+ for thisComponent in blockIntroComponents:
130
+ thisComponent.tStart = None
131
+ thisComponent.tStop = None
132
+ thisComponent.tStartRefresh = None
133
+ thisComponent.tStopRefresh = None
134
+ if hasattr(thisComponent, 'status'):
135
+ thisComponent.status = NOT_STARTED
136
+ # reset timers
137
+ t = 0
138
+ _timeToFirstFrame = win.getFutureFlipTime(clock="now")
139
+ blockIntroClock.reset(-_timeToFirstFrame) # t0 is time of first possible flip
140
+ frameN = -1
141
+
142
+ # -------Run Routine "blockIntro"-------
143
+ while continueRoutine and routineTimer.getTime() > 0:
144
+ # get current time
145
+ t = blockIntroClock.getTime()
146
+ tThisFlip = win.getFutureFlipTime(clock=blockIntroClock)
147
+ tThisFlipGlobal = win.getFutureFlipTime(clock=None)
148
+ frameN = frameN + 1 # number of completed frames (so 0 is the first frame)
149
+ # update/draw components on each frame
150
+
151
+ # *blockIntroText* updates
152
+ if blockIntroText.status == NOT_STARTED and tThisFlip >= 0.0-frameTolerance:
153
+ # keep track of start time/frame for later
154
+ blockIntroText.frameNStart = frameN # exact frame index
155
+ blockIntroText.tStart = t # local t and not account for scr refresh
156
+ blockIntroText.tStartRefresh = tThisFlipGlobal # on global time
157
+ win.timeOnFlip(blockIntroText, 'tStartRefresh') # time at next scr refresh
158
+ blockIntroText.setAutoDraw(True)
159
+ if blockIntroText.status == STARTED:
160
+ # is it time to stop? (based on global clock, using actual start)
161
+ if tThisFlipGlobal > blockIntroText.tStartRefresh + 0.5-frameTolerance:
162
+ # keep track of stop time/frame for later
163
+ blockIntroText.tStop = t # not accounting for scr refresh
164
+ blockIntroText.frameNStop = frameN # exact frame index
165
+ win.timeOnFlip(blockIntroText, 'tStopRefresh') # time at next scr refresh
166
+ blockIntroText.setAutoDraw(False)
167
+
168
+ # check for quit (typically the Esc key)
169
+ if endExpNow or defaultKeyboard.getKeys(keyList=["escape"]):
170
+ core.quit()
171
+
172
+ # check if all components have finished
173
+ if not continueRoutine: # a component has requested a forced-end of Routine
174
+ break
175
+ continueRoutine = False # will revert to True if at least one component still running
176
+ for thisComponent in blockIntroComponents:
177
+ if hasattr(thisComponent, "status") and thisComponent.status != FINISHED:
178
+ continueRoutine = True
179
+ break # at least one component has not yet finished
180
+
181
+ # refresh the screen
182
+ if continueRoutine: # don't flip if this routine is over or we'll get a blank screen
183
+ win.flip()
184
+
185
+ # -------Ending Routine "blockIntro"-------
186
+ for thisComponent in blockIntroComponents:
187
+ if hasattr(thisComponent, "setAutoDraw"):
188
+ thisComponent.setAutoDraw(False)
189
+ blocks.addData('blockIntroText.started', blockIntroText.tStartRefresh)
190
+ blocks.addData('blockIntroText.stopped', blockIntroText.tStopRefresh)
191
+
192
+ # set up handler to look after randomisation of conditions etc
193
+ trials = data.TrialHandler(nReps=2, method='random',
194
+ extraInfo=expInfo, originPath=-1,
195
+ trialList=[None],
196
+ seed=None, name='trials')
197
+ thisExp.addLoop(trials) # add the loop to the experiment
198
+ thisTrial = trials.trialList[0] # so we can initialise stimuli with some values
199
+ # abbreviate parameter names if possible (e.g. rgb = thisTrial.rgb)
200
+ if thisTrial != None:
201
+ for paramName in thisTrial:
202
+ exec('{} = thisTrial[paramName]'.format(paramName))
203
+
204
+ for thisTrial in trials:
205
+ currentLoop = trials
206
+ # abbreviate parameter names if possible (e.g. rgb = thisTrial.rgb)
207
+ if thisTrial != None:
208
+ for paramName in thisTrial:
209
+ exec('{} = thisTrial[paramName]'.format(paramName))
210
+
211
+ # set up handler to look after randomisation of conditions etc
212
+ stimulusLoop = data.TrialHandler(nReps=3, method='random',
213
+ extraInfo=expInfo, originPath=-1,
214
+ trialList=[None],
215
+ seed=None, name='stimulusLoop')
216
+ thisExp.addLoop(stimulusLoop) # add the loop to the experiment
217
+ thisStimulusLoop = stimulusLoop.trialList[0] # so we can initialise stimuli with some values
218
+ # abbreviate parameter names if possible (e.g. rgb = thisStimulusLoop.rgb)
219
+ if thisStimulusLoop != None:
220
+ for paramName in thisStimulusLoop:
221
+ exec('{} = thisStimulusLoop[paramName]'.format(paramName))
222
+
223
+ for thisStimulusLoop in stimulusLoop:
224
+ currentLoop = stimulusLoop
225
+ # abbreviate parameter names if possible (e.g. rgb = thisStimulusLoop.rgb)
226
+ if thisStimulusLoop != None:
227
+ for paramName in thisStimulusLoop:
228
+ exec('{} = thisStimulusLoop[paramName]'.format(paramName))
229
+
230
+ # ------Prepare to start Routine "presentOneStim"-------
231
+ continueRoutine = True
232
+ routineTimer.add(0.200000)
233
+ # update component parameters for each repeat
234
+ stimInfo.setText("stim %i" %currentLoop.thisN)
235
+ # keep track of which components have finished
236
+ presentOneStimComponents = [stimInfo]
237
+ for thisComponent in presentOneStimComponents:
238
+ thisComponent.tStart = None
239
+ thisComponent.tStop = None
240
+ thisComponent.tStartRefresh = None
241
+ thisComponent.tStopRefresh = None
242
+ if hasattr(thisComponent, 'status'):
243
+ thisComponent.status = NOT_STARTED
244
+ # reset timers
245
+ t = 0
246
+ _timeToFirstFrame = win.getFutureFlipTime(clock="now")
247
+ presentOneStimClock.reset(-_timeToFirstFrame) # t0 is time of first possible flip
248
+ frameN = -1
249
+
250
+ # -------Run Routine "presentOneStim"-------
251
+ while continueRoutine and routineTimer.getTime() > 0:
252
+ # get current time
253
+ t = presentOneStimClock.getTime()
254
+ tThisFlip = win.getFutureFlipTime(clock=presentOneStimClock)
255
+ tThisFlipGlobal = win.getFutureFlipTime(clock=None)
256
+ frameN = frameN + 1 # number of completed frames (so 0 is the first frame)
257
+ # update/draw components on each frame
258
+
259
+ # *stimInfo* updates
260
+ if stimInfo.status == NOT_STARTED and tThisFlip >= 0.1-frameTolerance:
261
+ # keep track of start time/frame for later
262
+ stimInfo.frameNStart = frameN # exact frame index
263
+ stimInfo.tStart = t # local t and not account for scr refresh
264
+ stimInfo.tStartRefresh = tThisFlipGlobal # on global time
265
+ win.timeOnFlip(stimInfo, 'tStartRefresh') # time at next scr refresh
266
+ stimInfo.setAutoDraw(True)
267
+ if stimInfo.status == STARTED:
268
+ # is it time to stop? (based on global clock, using actual start)
269
+ if tThisFlipGlobal > stimInfo.tStartRefresh + 0.1-frameTolerance:
270
+ # keep track of stop time/frame for later
271
+ stimInfo.tStop = t # not accounting for scr refresh
272
+ stimInfo.frameNStop = frameN # exact frame index
273
+ win.timeOnFlip(stimInfo, 'tStopRefresh') # time at next scr refresh
274
+ stimInfo.setAutoDraw(False)
275
+
276
+ # check for quit (typically the Esc key)
277
+ if endExpNow or defaultKeyboard.getKeys(keyList=["escape"]):
278
+ core.quit()
279
+
280
+ # check if all components have finished
281
+ if not continueRoutine: # a component has requested a forced-end of Routine
282
+ break
283
+ continueRoutine = False # will revert to True if at least one component still running
284
+ for thisComponent in presentOneStimComponents:
285
+ if hasattr(thisComponent, "status") and thisComponent.status != FINISHED:
286
+ continueRoutine = True
287
+ break # at least one component has not yet finished
288
+
289
+ # refresh the screen
290
+ if continueRoutine: # don't flip if this routine is over or we'll get a blank screen
291
+ win.flip()
292
+
293
+ # -------Ending Routine "presentOneStim"-------
294
+ for thisComponent in presentOneStimComponents:
295
+ if hasattr(thisComponent, "setAutoDraw"):
296
+ thisComponent.setAutoDraw(False)
297
+ stimulusLoop.addData('stimInfo.started', stimInfo.tStartRefresh)
298
+ stimulusLoop.addData('stimInfo.stopped', stimInfo.tStopRefresh)
299
+ # completed 3 repeats of 'stimulusLoop'
300
+
301
+ thisExp.nextEntry()
302
+
303
+ # completed 2 repeats of 'trials'
304
+
305
+ # get names of stimulus parameters
306
+ if trials.trialList in ([], [None], None):
307
+ params = []
308
+ else:
309
+ params = trials.trialList[0].keys()
310
+ # save data for this loop
311
+ trials.saveAsExcel(filename + '.xlsx', sheetName='trials',
312
+ stimOut=params,
313
+ dataOut=['n','all_mean','all_std', 'all_raw'])
314
+ # completed 4 repeats of 'blocks'
315
+
316
+
317
+ # Flip one final time so any remaining win.callOnFlip()
318
+ # and win.timeOnFlip() tasks get executed before quitting
319
+ win.flip()
320
+
321
+ # these shouldn't be strictly necessary (should auto-save)
322
+ thisExp.saveAsWideText(filename+'.csv', delim='auto')
323
+ thisExp.saveAsPickle(filename)
324
+ logging.flush()
325
+ # make sure everything is closed down
326
+ thisExp.abort() # or data files will save again on exit
327
+ win.close()
328
+ core.quit()
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,9 @@
1
+ blocks.thisRepN,blocks.thisTrialN,blocks.thisN,blocks.thisIndex,trials.thisRepN,trials.thisTrialN,trials.thisN,trials.thisIndex,stimulusLoop.thisRepN,stimulusLoop.thisTrialN,stimulusLoop.thisN,stimulusLoop.thisIndex,blockIntroText.started,blockIntroText.stopped,stimInfo.started,stimInfo.stopped,session,participant,date,expName,psychopyVersion,frameRate,
2
+ 0,0,0,0,0,0,0,0,,,,,65.29191892199742,None,66.25894002700079,66.17298291599946,001,,2021_ 5_03_1206,testLoopsBlocks,2021.1.4,59.205658053815995,
3
+ 0,0,0,0,1,0,1,0,,,,,,,66.82375188799779,66.74240606799867,001,,2021_ 5_03_1206,testLoopsBlocks,2021.1.4,59.205658053815995,
4
+ 1,0,1,0,0,0,0,0,,,,,66.94632864699815,None,67.90619809599957,67.82343141999809,001,,2021_ 5_03_1206,testLoopsBlocks,2021.1.4,59.205658053815995,
5
+ 1,0,1,0,1,0,1,0,,,,,,,68.4905092609988,68.40617813900099,001,,2021_ 5_03_1206,testLoopsBlocks,2021.1.4,59.205658053815995,
6
+ 2,0,2,0,0,0,0,0,,,,,68.64550475899887,None,69.62322328599839,69.53983068099842,001,,2021_ 5_03_1206,testLoopsBlocks,2021.1.4,59.205658053815995,
7
+ 2,0,2,0,1,0,1,0,,,,,,,70.19054533899907,70.10580221599957,001,,2021_ 5_03_1206,testLoopsBlocks,2021.1.4,59.205658053815995,
8
+ 3,0,3,0,0,0,0,0,,,,,70.35472819899951,None,71.30609307600025,71.22726159800004,001,,2021_ 5_03_1206,testLoopsBlocks,2021.1.4,59.205658053815995,
9
+ 3,0,3,0,1,0,1,0,,,,,,,71.8568327819994,71.77335973499794,001,,2021_ 5_03_1206,testLoopsBlocks,2021.1.4,59.205658053815995,
@@ -0,0 +1,177 @@
1
+ 63.8761 EXP Created window1 = Window(allowGUI=True, allowStencil=False, autoLog=True, backendConf=UNKNOWN, bitsMode=UNKNOWN, blendMode='avg', bpc=(8, 8, 8), color=array([0, 0, 0]), colorSpace='rgb', depthBits=8, fullscr=<method-wrapper '__getattribute__' of attributeSetter object at 0x7f9452dd3b00>, gamma=None, gammaErrorPolicy='raise', lms=UNKNOWN, monitor=<psychopy.monitors.calibTools.Monitor object at 0x7f9410d9d710>, multiSample=False, name='window1', numSamples=2, pos=[696.0, 410.0], screen=0, size=array([1600, 1200]), stencilBits=0, stereo=False, units='height', useFBO=True, useRetina=True, viewOri=0.0, viewPos=None, viewScale=None, waitBlanking=True, winType='pyglet')
2
+ 63.8763 EXP window1: mouseVisible = True
3
+ 63.8764 EXP window1: recordFrameIntervals = False
4
+ 64.0419 EXP window1: recordFrameIntervals = True
5
+ 64.2134 WARNING t of last frame was 21.47ms (=1/46)
6
+ 64.5259 EXP window1: recordFrameIntervals = False
7
+ 65.2659 EXP Created blockIntroText = TextStim(__class__=<class 'psychopy.visual.text.TextStim'>, alignHoriz=method-wrapper(...), alignText='center', alignVert=method-wrapper(...), anchorHoriz='center', anchorVert='center', antialias=True, autoLog=True, bold=False, color=array([1, 1, 1]), colorSpace='rgb', contrast=1.0, depth=0.0, flipHoriz=False, flipVert=False, font='Arial', fontFiles=[], height=0.1, italic=False, languageStyle='LTR', name='blockIntroText', opacity=1, ori=0, pos=array([0., 0.]), rgb=UNKNOWN, text="You're about to start a new block", units='height', win=Window(...), wrapWidth=1)
8
+ 65.2667 EXP Created stimInfo = TextStim(__class__=<class 'psychopy.visual.text.TextStim'>, alignHoriz=method-wrapper(...), alignText='center', alignVert=method-wrapper(...), anchorHoriz='center', anchorVert='center', antialias=True, autoLog=True, bold=False, color=array([1, 1, 1]), colorSpace='rgb', contrast=1.0, depth=0.0, flipHoriz=False, flipVert=False, font='Arial', fontFiles=[], height=0.1, italic=False, languageStyle='LTR', name='stimInfo', opacity=1, ori=0, pos=array([0., 0.]), rgb=UNKNOWN, text='', units='height', win=Window(...), wrapWidth=1)
9
+ 65.2671 EXP Created sequence: random, trialTypes=1, nReps=4, seed=None
10
+ 65.2673 EXP New trial (rep=0, index=0): None
11
+ 65.2919 EXP blockIntroText: autoDraw = True
12
+ 65.7748 EXP Created sequence: random, trialTypes=1, nReps=2, seed=None
13
+ 65.7750 EXP New trial (rep=0, index=0): None
14
+ 65.7753 EXP Created sequence: random, trialTypes=1, nReps=3, seed=None
15
+ 65.7755 EXP New trial (rep=0, index=0): None
16
+ 65.7892 EXP blockIntroText: autoDraw = False
17
+ 65.7892 EXP stimInfo: text = 'stim 0'
18
+ 65.8731 EXP stimInfo: autoDraw = True
19
+ 65.9606 EXP New trial (rep=1, index=0): None
20
+ 65.9730 EXP stimInfo: autoDraw = False
21
+ 65.9730 EXP stimInfo: autoDraw = False
22
+ 65.9730 EXP stimInfo: text = 'stim 1'
23
+ 66.0589 EXP stimInfo: autoDraw = True
24
+ 66.1598 EXP New trial (rep=2, index=0): None
25
+ 66.1730 EXP stimInfo: autoDraw = False
26
+ 66.1730 EXP stimInfo: autoDraw = False
27
+ 66.1730 EXP stimInfo: text = 'stim 2'
28
+ 66.2589 EXP stimInfo: autoDraw = True
29
+ 66.3599 EXP New trial (rep=1, index=0): None
30
+ 66.3603 EXP Created sequence: random, trialTypes=1, nReps=3, seed=None
31
+ 66.3606 EXP New trial (rep=0, index=0): None
32
+ 66.3730 EXP stimInfo: autoDraw = False
33
+ 66.3730 EXP stimInfo: autoDraw = False
34
+ 66.3730 EXP stimInfo: text = 'stim 0'
35
+ 66.4568 EXP stimInfo: autoDraw = True
36
+ 66.5408 EXP New trial (rep=1, index=0): None
37
+ 66.5591 EXP stimInfo: autoDraw = False
38
+ 66.5591 EXP stimInfo: autoDraw = False
39
+ 66.5591 EXP stimInfo: text = 'stim 1'
40
+ 66.6396 EXP stimInfo: autoDraw = True
41
+ 66.7277 EXP New trial (rep=2, index=0): None
42
+ 66.7424 EXP stimInfo: autoDraw = False
43
+ 66.7424 EXP stimInfo: autoDraw = False
44
+ 66.7424 EXP stimInfo: text = 'stim 2'
45
+ 66.8238 EXP stimInfo: autoDraw = True
46
+ 66.9428 EXP New trial (rep=1, index=0): None
47
+ 66.9463 EXP stimInfo: autoDraw = False
48
+ 66.9463 EXP stimInfo: autoDraw = False
49
+ 66.9463 EXP blockIntroText: autoDraw = True
50
+ 67.4407 EXP Created sequence: random, trialTypes=1, nReps=2, seed=None
51
+ 67.4409 EXP New trial (rep=0, index=0): None
52
+ 67.4412 EXP Created sequence: random, trialTypes=1, nReps=3, seed=None
53
+ 67.4414 EXP New trial (rep=0, index=0): None
54
+ 67.4571 EXP blockIntroText: autoDraw = False
55
+ 67.4571 EXP blockIntroText: autoDraw = False
56
+ 67.4571 EXP stimInfo: text = 'stim 0'
57
+ 67.5398 EXP stimInfo: autoDraw = True
58
+ 67.6266 EXP New trial (rep=1, index=0): None
59
+ 67.6394 EXP stimInfo: autoDraw = False
60
+ 67.6394 EXP stimInfo: autoDraw = False
61
+ 67.6394 EXP stimInfo: text = 'stim 1'
62
+ 67.7240 EXP stimInfo: autoDraw = True
63
+ 67.8097 EXP New trial (rep=2, index=0): None
64
+ 67.8234 EXP stimInfo: autoDraw = False
65
+ 67.8234 EXP stimInfo: autoDraw = False
66
+ 67.8234 EXP stimInfo: text = 'stim 2'
67
+ 67.9062 EXP stimInfo: autoDraw = True
68
+ 67.9929 EXP New trial (rep=1, index=0): None
69
+ 67.9933 EXP Created sequence: random, trialTypes=1, nReps=3, seed=None
70
+ 67.9936 EXP New trial (rep=0, index=0): None
71
+ 68.0062 EXP stimInfo: autoDraw = False
72
+ 68.0062 EXP stimInfo: autoDraw = False
73
+ 68.0062 EXP stimInfo: text = 'stim 0'
74
+ 68.0918 EXP stimInfo: autoDraw = True
75
+ 68.1929 EXP New trial (rep=1, index=0): None
76
+ 68.2166 EXP stimInfo: autoDraw = False
77
+ 68.2166 EXP stimInfo: autoDraw = False
78
+ 68.2166 EXP stimInfo: text = 'stim 1'
79
+ 68.2920 EXP stimInfo: autoDraw = True
80
+ 68.3929 EXP New trial (rep=2, index=0): None
81
+ 68.4062 EXP stimInfo: autoDraw = False
82
+ 68.4062 EXP stimInfo: autoDraw = False
83
+ 68.4062 EXP stimInfo: text = 'stim 2'
84
+ 68.4905 EXP stimInfo: autoDraw = True
85
+ 68.6409 EXP New trial (rep=2, index=0): None
86
+ 68.6455 EXP stimInfo: autoDraw = False
87
+ 68.6455 EXP stimInfo: autoDraw = False
88
+ 68.6455 EXP blockIntroText: autoDraw = True
89
+ 69.1397 EXP Created sequence: random, trialTypes=1, nReps=2, seed=None
90
+ 69.1399 EXP New trial (rep=0, index=0): None
91
+ 69.1401 EXP Created sequence: random, trialTypes=1, nReps=3, seed=None
92
+ 69.1403 EXP New trial (rep=0, index=0): None
93
+ 69.1588 EXP blockIntroText: autoDraw = False
94
+ 69.1588 EXP blockIntroText: autoDraw = False
95
+ 69.1588 EXP stimInfo: text = 'stim 0'
96
+ 69.2424 EXP stimInfo: autoDraw = True
97
+ 69.3265 EXP New trial (rep=1, index=0): None
98
+ 69.3398 EXP stimInfo: autoDraw = False
99
+ 69.3398 EXP stimInfo: autoDraw = False
100
+ 69.3398 EXP stimInfo: text = 'stim 1'
101
+ 69.4235 EXP stimInfo: autoDraw = True
102
+ 69.5263 EXP New trial (rep=2, index=0): None
103
+ 69.5398 EXP stimInfo: autoDraw = False
104
+ 69.5398 EXP stimInfo: autoDraw = False
105
+ 69.5398 EXP stimInfo: text = 'stim 2'
106
+ 69.6232 EXP stimInfo: autoDraw = True
107
+ 69.7172 EXP New trial (rep=1, index=0): None
108
+ 69.7175 EXP Created sequence: random, trialTypes=1, nReps=3, seed=None
109
+ 69.7177 EXP New trial (rep=0, index=0): None
110
+ 69.7277 EXP stimInfo: autoDraw = False
111
+ 69.7277 EXP stimInfo: autoDraw = False
112
+ 69.7277 EXP stimInfo: text = 'stim 0'
113
+ 69.8090 EXP stimInfo: autoDraw = True
114
+ 69.8930 EXP New trial (rep=1, index=0): None
115
+ 69.9057 EXP stimInfo: autoDraw = False
116
+ 69.9057 EXP stimInfo: autoDraw = False
117
+ 69.9057 EXP stimInfo: text = 'stim 1'
118
+ 69.9903 EXP stimInfo: autoDraw = True
119
+ 70.0915 EXP New trial (rep=2, index=0): None
120
+ 70.1058 EXP stimInfo: autoDraw = False
121
+ 70.1058 EXP stimInfo: autoDraw = False
122
+ 70.1058 EXP stimInfo: text = 'stim 2'
123
+ 70.1905 EXP stimInfo: autoDraw = True
124
+ 70.3506 EXP New trial (rep=3, index=0): None
125
+ 70.3547 EXP stimInfo: autoDraw = False
126
+ 70.3547 EXP stimInfo: autoDraw = False
127
+ 70.3547 EXP blockIntroText: autoDraw = True
128
+ 70.8409 EXP Created sequence: random, trialTypes=1, nReps=2, seed=None
129
+ 70.8412 EXP New trial (rep=0, index=0): None
130
+ 70.8415 EXP Created sequence: random, trialTypes=1, nReps=3, seed=None
131
+ 70.8418 EXP New trial (rep=0, index=0): None
132
+ 70.8568 EXP blockIntroText: autoDraw = False
133
+ 70.8568 EXP blockIntroText: autoDraw = False
134
+ 70.8568 EXP stimInfo: text = 'stim 0'
135
+ 70.9393 EXP stimInfo: autoDraw = True
136
+ 71.0260 EXP New trial (rep=1, index=0): None
137
+ 71.0393 EXP stimInfo: autoDraw = False
138
+ 71.0393 EXP stimInfo: autoDraw = False
139
+ 71.0393 EXP stimInfo: text = 'stim 1'
140
+ 71.1231 EXP stimInfo: autoDraw = True
141
+ 71.2139 EXP New trial (rep=2, index=0): None
142
+ 71.2273 EXP stimInfo: autoDraw = False
143
+ 71.2273 EXP stimInfo: autoDraw = False
144
+ 71.2273 EXP stimInfo: text = 'stim 2'
145
+ 71.3061 EXP stimInfo: autoDraw = True
146
+ 71.3929 EXP New trial (rep=1, index=0): None
147
+ 71.3933 EXP Created sequence: random, trialTypes=1, nReps=3, seed=None
148
+ 71.3936 EXP New trial (rep=0, index=0): None
149
+ 71.4060 EXP stimInfo: autoDraw = False
150
+ 71.4060 EXP stimInfo: autoDraw = False
151
+ 71.4060 EXP stimInfo: text = 'stim 0'
152
+ 71.4900 EXP stimInfo: autoDraw = True
153
+ 71.5739 EXP New trial (rep=1, index=0): None
154
+ 71.5927 EXP stimInfo: autoDraw = False
155
+ 71.5927 EXP stimInfo: autoDraw = False
156
+ 71.5927 EXP stimInfo: text = 'stim 1'
157
+ 71.6753 EXP stimInfo: autoDraw = True
158
+ 71.7604 EXP New trial (rep=2, index=0): None
159
+ 71.7734 EXP stimInfo: autoDraw = False
160
+ 71.7734 EXP stimInfo: autoDraw = False
161
+ 71.7734 EXP stimInfo: text = 'stim 2'
162
+ 71.8568 EXP stimInfo: autoDraw = True
163
+ 72.0107 EXP stimInfo: autoDraw = False
164
+ 72.0107 EXP stimInfo: autoDraw = False
165
+ 72.0201 EXP window1: mouseVisible = True
166
+ 180.3206 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Experiments/stroop/trialTypes.csv as conditions, 6 conditions, 4 params
167
+ 180.3582 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Experiments/stroop/trialTypes.csv as conditions, 6 conditions, 4 params
168
+ 180.8159 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Design Templates/randomisedBlocks/chooseBlock.xlsx as conditions, 2 conditions, 2 params
169
+ 180.8418 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Design Templates/randomisedBlocks/facesBlock.xlsx as conditions, 3 conditions, 1 params
170
+ 180.8510 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Design Templates/randomisedBlocks/housesBlock.xlsx as conditions, 3 conditions, 1 params
171
+ 180.9479 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Design Templates/randomisedBlocks/chooseBlock.xlsx as conditions, 2 conditions, 2 params
172
+ 180.9579 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Design Templates/randomisedBlocks/facesBlock.xlsx as conditions, 3 conditions, 1 params
173
+ 180.9679 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Design Templates/randomisedBlocks/housesBlock.xlsx as conditions, 3 conditions, 1 params
174
+ 181.2415 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Experiments/stroop/trialTypes.csv as conditions, 6 conditions, 4 params
175
+ 181.2523 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Experiments/stroop/trialTypes.csv as conditions, 6 conditions, 4 params
176
+ 181.4904 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Experiments/stroop/trialTypes.csv as conditions, 6 conditions, 4 params
177
+ 181.5089 EXP Imported /Users/lpzjwp/code/psychopy/git/psychopy/demos/builder/Experiments/stroop/trialTypes.csv as conditions, 6 conditions, 4 params
@@ -0,0 +1,9 @@
1
+ blocks.thisRepN,blocks.thisTrialN,blocks.thisN,blocks.thisIndex,trials.thisRepN,trials.thisTrialN,trials.thisN,trials.thisIndex,stimulusLoop.thisRepN,stimulusLoop.thisTrialN,stimulusLoop.thisN,stimulusLoop.thisIndex,blockIntroText.started,blockIntroText.stopped,stimInfo.started,stimInfo.stopped,session,participant,date,expName,psychopyVersion,frameRate,
2
+ 0,0,0,0,0,0,0,0,,,,,35.64092961799906,None,36.53197220099901,36.46018599599847,001,,2021_ 5_03_1324,testLoopsBlocks,2021.1.4,60.3228579489649,
3
+ 0,0,0,0,1,0,1,0,,,,,,,37.026421831000334,36.9581391089996,001,,2021_ 5_03_1324,testLoopsBlocks,2021.1.4,60.3228579489649,
4
+ 1,0,1,0,0,0,0,0,,,,,37.144647338998766,None,38.02494392099834,37.956143577997864,001,,2021_ 5_03_1324,testLoopsBlocks,2021.1.4,60.3228579489649,
5
+ 1,0,1,0,1,0,1,0,,,,,,,38.48955451599977,38.42139802800011,001,,2021_ 5_03_1324,testLoopsBlocks,2021.1.4,60.3228579489649,
6
+ 2,0,2,0,0,0,0,0,,,,,38.62150937699698,None,39.490225479999935,39.421062761997746,001,,2021_ 5_03_1324,testLoopsBlocks,2021.1.4,60.3228579489649,
7
+ 2,0,2,0,1,0,1,0,,,,,,,39.956308781998814,39.887982683998416,001,,2021_ 5_03_1324,testLoopsBlocks,2021.1.4,60.3228579489649,
8
+ 3,0,3,0,0,0,0,0,,,,,40.07236192699929,None,40.93996434699875,40.87120142999993,001,,2021_ 5_03_1324,testLoopsBlocks,2021.1.4,60.3228579489649,
9
+ 3,0,3,0,1,0,1,0,,,,,,,41.405941351000365,41.33707405699897,001,,2021_ 5_03_1324,testLoopsBlocks,2021.1.4,60.3228579489649,