psychopy 2024.1.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 (2950) hide show
  1. psychopy/CHANGELOG.txt +3571 -0
  2. psychopy/LICENSE.txt +11 -0
  3. psychopy/LICENSES.txt +55 -0
  4. psychopy/__init__.py +74 -0
  5. psychopy/alerts/__init__.py +65 -0
  6. psychopy/alerts/_alerts.py +184 -0
  7. psychopy/alerts/_errorHandler.py +51 -0
  8. psychopy/alerts/alertsCatalogue/1000.yaml +0 -0
  9. psychopy/alerts/alertsCatalogue/1100.yaml +0 -0
  10. psychopy/alerts/alertsCatalogue/1500.yaml +0 -0
  11. psychopy/alerts/alertsCatalogue/2000.yaml +0 -0
  12. psychopy/alerts/alertsCatalogue/2100.yaml +0 -0
  13. psychopy/alerts/alertsCatalogue/2110.yaml +0 -0
  14. psychopy/alerts/alertsCatalogue/2115.yaml +21 -0
  15. psychopy/alerts/alertsCatalogue/2120.yaml +22 -0
  16. psychopy/alerts/alertsCatalogue/2150.yaml +0 -0
  17. psychopy/alerts/alertsCatalogue/2155.yaml +21 -0
  18. psychopy/alerts/alertsCatalogue/2300.yaml +0 -0
  19. psychopy/alerts/alertsCatalogue/2500.yaml +0 -0
  20. psychopy/alerts/alertsCatalogue/3000.yaml +0 -0
  21. psychopy/alerts/alertsCatalogue/3100.yaml +0 -0
  22. psychopy/alerts/alertsCatalogue/3110.yaml +25 -0
  23. psychopy/alerts/alertsCatalogue/3115.yaml +24 -0
  24. psychopy/alerts/alertsCatalogue/3200.yaml +0 -0
  25. psychopy/alerts/alertsCatalogue/3400.yaml +0 -0
  26. psychopy/alerts/alertsCatalogue/4000.yaml +0 -0
  27. psychopy/alerts/alertsCatalogue/4051.yaml +19 -0
  28. psychopy/alerts/alertsCatalogue/4052.yaml +19 -0
  29. psychopy/alerts/alertsCatalogue/4100.yaml +0 -0
  30. psychopy/alerts/alertsCatalogue/4105.yaml +18 -0
  31. psychopy/alerts/alertsCatalogue/4115.yaml +21 -0
  32. psychopy/alerts/alertsCatalogue/4120.yaml +19 -0
  33. psychopy/alerts/alertsCatalogue/4125.yaml +23 -0
  34. psychopy/alerts/alertsCatalogue/4200.yaml +0 -0
  35. psychopy/alerts/alertsCatalogue/4205.yaml +19 -0
  36. psychopy/alerts/alertsCatalogue/4210.yaml +19 -0
  37. psychopy/alerts/alertsCatalogue/4305.yaml +21 -0
  38. psychopy/alerts/alertsCatalogue/4310.yaml +21 -0
  39. psychopy/alerts/alertsCatalogue/4315.yaml +21 -0
  40. psychopy/alerts/alertsCatalogue/4320.yaml +19 -0
  41. psychopy/alerts/alertsCatalogue/4325.yaml +23 -0
  42. psychopy/alerts/alertsCatalogue/4330.yaml +19 -0
  43. psychopy/alerts/alertsCatalogue/4335.yaml +19 -0
  44. psychopy/alerts/alertsCatalogue/4340.yaml +19 -0
  45. psychopy/alerts/alertsCatalogue/4405.yaml +24 -0
  46. psychopy/alerts/alertsCatalogue/4505.yaml +22 -0
  47. psychopy/alerts/alertsCatalogue/4510.yaml +25 -0
  48. psychopy/alerts/alertsCatalogue/4520.yaml +26 -0
  49. psychopy/alerts/alertsCatalogue/4530.yaml +23 -0
  50. psychopy/alerts/alertsCatalogue/4540.yaml +19 -0
  51. psychopy/alerts/alertsCatalogue/4545.yaml +22 -0
  52. psychopy/alerts/alertsCatalogue/4550.yaml +19 -0
  53. psychopy/alerts/alertsCatalogue/4605.yaml +22 -0
  54. psychopy/alerts/alertsCatalogue/4610.yaml +22 -0
  55. psychopy/alerts/alertsCatalogue/4615.yaml +19 -0
  56. psychopy/alerts/alertsCatalogue/4705.yaml +19 -0
  57. psychopy/alerts/alertsCatalogue/4710.yaml +19 -0
  58. psychopy/alerts/alertsCatalogue/5000.yaml +0 -0
  59. psychopy/alerts/alertsCatalogue/5055.yaml +25 -0
  60. psychopy/alerts/alertsCatalogue/6000.yaml +0 -0
  61. psychopy/alerts/alertsCatalogue/6105.yaml +18 -0
  62. psychopy/alerts/alertsCatalogue/7105.yaml +19 -0
  63. psychopy/alerts/alertsCatalogue/8105.yaml +21 -0
  64. psychopy/alerts/alertsCatalogue/8110.yaml +21 -0
  65. psychopy/alerts/alertsCatalogue/9998.yaml +19 -0
  66. psychopy/alerts/alertsCatalogue/9999.yaml +19 -0
  67. psychopy/alerts/alertsCatalogue/alertCategories.yaml +109 -0
  68. psychopy/alerts/alertsCatalogue/alertTemplate.yaml +19 -0
  69. psychopy/alerts/alertsCatalogue/alertmsg.py +144 -0
  70. psychopy/alerts/alertsCatalogue/generateAlertmsg.py +34 -0
  71. psychopy/alerts/alerttools.py +338 -0
  72. psychopy/app/Resources/Psychopy Window Favicon@16w.png +0 -0
  73. psychopy/app/Resources/Psychopy Window Favicon@32w.png +0 -0
  74. psychopy/app/Resources/README.md +12 -0
  75. psychopy/app/Resources/USB-C.png +0 -0
  76. psychopy/app/Resources/USB.png +0 -0
  77. psychopy/app/Resources/__init__.py +0 -0
  78. psychopy/app/Resources/builder.ico +0 -0
  79. psychopy/app/Resources/classic/FlowBottom_CompLeft.png +0 -0
  80. psychopy/app/Resources/classic/FlowBottom_CompRight.png +0 -0
  81. psychopy/app/Resources/classic/FlowTop_CompLeft.png +0 -0
  82. psychopy/app/Resources/classic/FlowTop_CompRight.png +0 -0
  83. psychopy/app/Resources/classic/README.txt +9 -0
  84. psychopy/app/Resources/classic/__init__.py +0 -0
  85. psychopy/app/Resources/classic/_layouts.ai +1138 -1
  86. psychopy/app/Resources/classic/add.png +0 -0
  87. psychopy/app/Resources/classic/add@2x.png +0 -0
  88. psychopy/app/Resources/classic/addExp32.png +0 -0
  89. psychopy/app/Resources/classic/alerts.png +0 -0
  90. psychopy/app/Resources/classic/beta.png +0 -0
  91. psychopy/app/Resources/classic/browser.png +0 -0
  92. psychopy/app/Resources/classic/browser@2x.png +0 -0
  93. psychopy/app/Resources/classic/bug16.png +0 -0
  94. psychopy/app/Resources/classic/circle_mask.png +0 -0
  95. psychopy/app/Resources/classic/circle_mask@2x.png +0 -0
  96. psychopy/app/Resources/classic/clear.png +0 -0
  97. psychopy/app/Resources/classic/clear@2x.png +0 -0
  98. psychopy/app/Resources/classic/coderclass16.png +0 -0
  99. psychopy/app/Resources/classic/coderfunc16.png +0 -0
  100. psychopy/app/Resources/classic/coderimport16.png +0 -0
  101. psychopy/app/Resources/classic/coderjs16.png +0 -0
  102. psychopy/app/Resources/classic/coderpython16.png +0 -0
  103. psychopy/app/Resources/classic/codervar16.png +0 -0
  104. psychopy/app/Resources/classic/cogwindow32.png +0 -0
  105. psychopy/app/Resources/classic/color32.png +0 -0
  106. psychopy/app/Resources/classic/compile32.png +0 -0
  107. psychopy/app/Resources/classic/compile_js.png +0 -0
  108. psychopy/app/Resources/classic/compile_js@2x.png +0 -0
  109. psychopy/app/Resources/classic/compile_py.png +0 -0
  110. psychopy/app/Resources/classic/compile_py@2x.png +0 -0
  111. psychopy/app/Resources/classic/copy16.png +0 -0
  112. psychopy/app/Resources/classic/currentFile.png +0 -0
  113. psychopy/app/Resources/classic/currentFile@2x.png +0 -0
  114. psychopy/app/Resources/classic/delete16.png +0 -0
  115. psychopy/app/Resources/classic/desktop.png +0 -0
  116. psychopy/app/Resources/classic/desktop@2x.png +0 -0
  117. psychopy/app/Resources/classic/dirup16.png +0 -0
  118. psychopy/app/Resources/classic/docclose16.png +0 -0
  119. psychopy/app/Resources/classic/download.png +0 -0
  120. psychopy/app/Resources/classic/edit.png +0 -0
  121. psychopy/app/Resources/classic/edit@2x.png +0 -0
  122. psychopy/app/Resources/classic/editbtn.png +0 -0
  123. psychopy/app/Resources/classic/editbtn16.png +0 -0
  124. psychopy/app/Resources/classic/editbtn16@2x.png +0 -0
  125. psychopy/app/Resources/classic/editbtn@2x.png +0 -0
  126. psychopy/app/Resources/classic/email.png +0 -0
  127. psychopy/app/Resources/classic/email@2x.png +0 -0
  128. psychopy/app/Resources/classic/experiment.png +0 -0
  129. psychopy/app/Resources/classic/experiment@2x.png +0 -0
  130. psychopy/app/Resources/classic/expsettings.png +0 -0
  131. psychopy/app/Resources/classic/expsettings@2x.png +0 -0
  132. psychopy/app/Resources/classic/file.png +0 -0
  133. psychopy/app/Resources/classic/file@2x.png +0 -0
  134. psychopy/app/Resources/classic/filecsv16.png +0 -0
  135. psychopy/app/Resources/classic/fileimage16.png +0 -0
  136. psychopy/app/Resources/classic/filenew.png +0 -0
  137. psychopy/app/Resources/classic/filenew32.png +0 -0
  138. psychopy/app/Resources/classic/filenew@2x.png +0 -0
  139. psychopy/app/Resources/classic/fileopen.png +0 -0
  140. psychopy/app/Resources/classic/fileopen32.png +0 -0
  141. psychopy/app/Resources/classic/fileopen@2x.png +0 -0
  142. psychopy/app/Resources/classic/filesave.png +0 -0
  143. psychopy/app/Resources/classic/filesave32.png +0 -0
  144. psychopy/app/Resources/classic/filesave@2x.png +0 -0
  145. psychopy/app/Resources/classic/filesaveas.png +0 -0
  146. psychopy/app/Resources/classic/filesaveas32.png +0 -0
  147. psychopy/app/Resources/classic/filesaveas@2x.png +0 -0
  148. psychopy/app/Resources/classic/fileunknown16.png +0 -0
  149. psychopy/app/Resources/classic/filter.png +0 -0
  150. psychopy/app/Resources/classic/filter@2x.png +0 -0
  151. psychopy/app/Resources/classic/folder-open16.png +0 -0
  152. psychopy/app/Resources/classic/folder16.png +0 -0
  153. psychopy/app/Resources/classic/foldernew16.png +0 -0
  154. psychopy/app/Resources/classic/fork.png +0 -0
  155. psychopy/app/Resources/classic/fork@2x.png +0 -0
  156. psychopy/app/Resources/classic/github.png +0 -0
  157. psychopy/app/Resources/classic/github@2x.png +0 -0
  158. psychopy/app/Resources/classic/globe.png +0 -0
  159. psychopy/app/Resources/classic/globe@2x.png +0 -0
  160. psychopy/app/Resources/classic/globe_bug.png +0 -0
  161. psychopy/app/Resources/classic/globe_bug@2x.png +0 -0
  162. psychopy/app/Resources/classic/globe_greensync.png +0 -0
  163. psychopy/app/Resources/classic/globe_greensync@2x.png +0 -0
  164. psychopy/app/Resources/classic/globe_info.png +0 -0
  165. psychopy/app/Resources/classic/globe_info@2x.png +0 -0
  166. psychopy/app/Resources/classic/globe_magnifier.png +0 -0
  167. psychopy/app/Resources/classic/globe_magnifier@2x.png +0 -0
  168. psychopy/app/Resources/classic/globe_run.png +0 -0
  169. psychopy/app/Resources/classic/globe_run@2x.png +0 -0
  170. psychopy/app/Resources/classic/globe_user.png +0 -0
  171. psychopy/app/Resources/classic/globe_user@2x.png +0 -0
  172. psychopy/app/Resources/classic/goto16.png +0 -0
  173. psychopy/app/Resources/classic/greendot.png +0 -0
  174. psychopy/app/Resources/classic/greendot@2x.png +0 -0
  175. psychopy/app/Resources/classic/greenglobe.png +0 -0
  176. psychopy/app/Resources/classic/greenglobe@2x.png +0 -0
  177. psychopy/app/Resources/classic/greenglobe_bug.png +0 -0
  178. psychopy/app/Resources/classic/greenglobe_bug@2x.png +0 -0
  179. psychopy/app/Resources/classic/greenglobe_greensync.png +0 -0
  180. psychopy/app/Resources/classic/greenglobe_greensync@2x.png +0 -0
  181. psychopy/app/Resources/classic/greenglobe_info.png +0 -0
  182. psychopy/app/Resources/classic/greenglobe_info@2x.png +0 -0
  183. psychopy/app/Resources/classic/greenglobe_magnifier.png +0 -0
  184. psychopy/app/Resources/classic/greenglobe_magnifier@2x.png +0 -0
  185. psychopy/app/Resources/classic/greenglobe_run.png +0 -0
  186. psychopy/app/Resources/classic/greenglobe_run@2x.png +0 -0
  187. psychopy/app/Resources/classic/greenglobe_user.png +0 -0
  188. psychopy/app/Resources/classic/greenglobe_user@2x.png +0 -0
  189. psychopy/app/Resources/classic/greydot.png +0 -0
  190. psychopy/app/Resources/classic/greydot@2x.png +0 -0
  191. psychopy/app/Resources/classic/greytick.png +0 -0
  192. psychopy/app/Resources/classic/greytick@2x.png +0 -0
  193. psychopy/app/Resources/classic/invalid_img.png +0 -0
  194. psychopy/app/Resources/classic/jsPilot.png +0 -0
  195. psychopy/app/Resources/classic/jsPilot@2x.png +0 -0
  196. psychopy/app/Resources/classic/jsRun.png +0 -0
  197. psychopy/app/Resources/classic/jsRun@2x.png +0 -0
  198. psychopy/app/Resources/classic/libroot.png +0 -0
  199. psychopy/app/Resources/classic/libroot@2x.png +0 -0
  200. psychopy/app/Resources/classic/monitor16.png +0 -0
  201. psychopy/app/Resources/classic/monitors.png +0 -0
  202. psychopy/app/Resources/classic/monitors16.png +0 -0
  203. psychopy/app/Resources/classic/monitors32.png +0 -0
  204. psychopy/app/Resources/classic/monitors@2x.png +0 -0
  205. psychopy/app/Resources/classic/orangedot.png +0 -0
  206. psychopy/app/Resources/classic/orangedot@2x.png +0 -0
  207. psychopy/app/Resources/classic/pavlovia.png +0 -0
  208. psychopy/app/Resources/classic/pavlovia16.png +0 -0
  209. psychopy/app/Resources/classic/pavlovia16@2x.png +0 -0
  210. psychopy/app/Resources/classic/pavlovia@2x.png +0 -0
  211. psychopy/app/Resources/classic/pavsync.png +0 -0
  212. psychopy/app/Resources/classic/pavsync@2x.png +0 -0
  213. psychopy/app/Resources/classic/person_off.png +0 -0
  214. psychopy/app/Resources/classic/person_off@2x.png +0 -0
  215. psychopy/app/Resources/classic/person_on.png +0 -0
  216. psychopy/app/Resources/classic/person_on@2x.png +0 -0
  217. psychopy/app/Resources/classic/plugins32.png +0 -0
  218. psychopy/app/Resources/classic/plus.png +0 -0
  219. psychopy/app/Resources/classic/plus@2x.png +0 -0
  220. psychopy/app/Resources/classic/preferences-app.png +0 -0
  221. psychopy/app/Resources/classic/preferences-app48.png +0 -0
  222. psychopy/app/Resources/classic/preferences-app@2x.png +0 -0
  223. psychopy/app/Resources/classic/preferences-conn.png +0 -0
  224. psychopy/app/Resources/classic/preferences-conn48.png +0 -0
  225. psychopy/app/Resources/classic/preferences-conn@2x.png +0 -0
  226. psychopy/app/Resources/classic/preferences-debug.png +0 -0
  227. psychopy/app/Resources/classic/preferences-debug@2x.png +0 -0
  228. psychopy/app/Resources/classic/preferences-general.png +0 -0
  229. psychopy/app/Resources/classic/preferences-general48.png +0 -0
  230. psychopy/app/Resources/classic/preferences-general@2x.png +0 -0
  231. psychopy/app/Resources/classic/preferences-hardware.png +0 -0
  232. psychopy/app/Resources/classic/preferences-hardware48.png +0 -0
  233. psychopy/app/Resources/classic/preferences-hardware@2x.png +0 -0
  234. psychopy/app/Resources/classic/preferences-keyboard.png +0 -0
  235. psychopy/app/Resources/classic/preferences-keyboard48.png +0 -0
  236. psychopy/app/Resources/classic/preferences-keyboard@2x.png +0 -0
  237. psychopy/app/Resources/classic/preferences-pilot.png +0 -0
  238. psychopy/app/Resources/classic/preferences-pilot@2x.png +0 -0
  239. psychopy/app/Resources/classic/preferences32.png +0 -0
  240. psychopy/app/Resources/classic/pyPilot.png +0 -0
  241. psychopy/app/Resources/classic/pyPilot@2x.png +0 -0
  242. psychopy/app/Resources/classic/pyRun.png +0 -0
  243. psychopy/app/Resources/classic/pyRun@2x.png +0 -0
  244. psychopy/app/Resources/classic/reddot.png +0 -0
  245. psychopy/app/Resources/classic/reddot@2x.png +0 -0
  246. psychopy/app/Resources/classic/redglobe.png +0 -0
  247. psychopy/app/Resources/classic/redglobe@2x.png +0 -0
  248. psychopy/app/Resources/classic/redglobe_bug.png +0 -0
  249. psychopy/app/Resources/classic/redglobe_bug@2x.png +0 -0
  250. psychopy/app/Resources/classic/redglobe_greensync.png +0 -0
  251. psychopy/app/Resources/classic/redglobe_greensync@2x.png +0 -0
  252. psychopy/app/Resources/classic/redglobe_info.png +0 -0
  253. psychopy/app/Resources/classic/redglobe_info@2x.png +0 -0
  254. psychopy/app/Resources/classic/redglobe_magnifier.png +0 -0
  255. psychopy/app/Resources/classic/redglobe_magnifier@2x.png +0 -0
  256. psychopy/app/Resources/classic/redglobe_run.png +0 -0
  257. psychopy/app/Resources/classic/redglobe_run@2x.png +0 -0
  258. psychopy/app/Resources/classic/redglobe_user.png +0 -0
  259. psychopy/app/Resources/classic/redglobe_user@2x.png +0 -0
  260. psychopy/app/Resources/classic/redo.png +0 -0
  261. psychopy/app/Resources/classic/redo32.png +0 -0
  262. psychopy/app/Resources/classic/redo@2x.png +0 -0
  263. psychopy/app/Resources/classic/removeExp32.png +0 -0
  264. psychopy/app/Resources/classic/rename16.png +0 -0
  265. psychopy/app/Resources/classic/restart.png +0 -0
  266. psychopy/app/Resources/classic/restart@2x.png +0 -0
  267. psychopy/app/Resources/classic/run.png +0 -0
  268. psychopy/app/Resources/classic/run@2x.png +0 -0
  269. psychopy/app/Resources/classic/runner.png +0 -0
  270. psychopy/app/Resources/classic/runner@2x.png +0 -0
  271. psychopy/app/Resources/classic/runnerPilot.png +0 -0
  272. psychopy/app/Resources/classic/runnerPilot@2x.png +0 -0
  273. psychopy/app/Resources/classic/savebtn.png +0 -0
  274. psychopy/app/Resources/classic/savebtn16.png +0 -0
  275. psychopy/app/Resources/classic/savebtn16@2x.png +0 -0
  276. psychopy/app/Resources/classic/savebtn@2x.png +0 -0
  277. psychopy/app/Resources/classic/search.png +0 -0
  278. psychopy/app/Resources/classic/search@2x.png +0 -0
  279. psychopy/app/Resources/classic/showBuilder.png +0 -0
  280. psychopy/app/Resources/classic/showBuilder@2x.png +0 -0
  281. psychopy/app/Resources/classic/showCoder.png +0 -0
  282. psychopy/app/Resources/classic/showCoder@2x.png +0 -0
  283. psychopy/app/Resources/classic/showRunner.png +0 -0
  284. psychopy/app/Resources/classic/showRunner@2x.png +0 -0
  285. psychopy/app/Resources/classic/starred.png +0 -0
  286. psychopy/app/Resources/classic/starred@2x.png +0 -0
  287. psychopy/app/Resources/classic/start.png +0 -0
  288. psychopy/app/Resources/classic/start@2x.png +0 -0
  289. psychopy/app/Resources/classic/stdout.png +0 -0
  290. psychopy/app/Resources/classic/stop.png +0 -0
  291. psychopy/app/Resources/classic/stop32.png +0 -0
  292. psychopy/app/Resources/classic/stop@2x.png +0 -0
  293. psychopy/app/Resources/classic/switchCtrlBot.png +0 -0
  294. psychopy/app/Resources/classic/switchCtrlBot@2x.png +0 -0
  295. psychopy/app/Resources/classic/switchCtrlLeft.png +0 -0
  296. psychopy/app/Resources/classic/switchCtrlLeft@2x.png +0 -0
  297. psychopy/app/Resources/classic/switchCtrlRight.png +0 -0
  298. psychopy/app/Resources/classic/switchCtrlRight@2x.png +0 -0
  299. psychopy/app/Resources/classic/switchCtrlTop.png +0 -0
  300. psychopy/app/Resources/classic/switchCtrlTop@2x.png +0 -0
  301. psychopy/app/Resources/classic/tick.png +0 -0
  302. psychopy/app/Resources/classic/tick@2x.png +0 -0
  303. psychopy/app/Resources/classic/undo.png +0 -0
  304. psychopy/app/Resources/classic/undo32.png +0 -0
  305. psychopy/app/Resources/classic/undo@2x.png +0 -0
  306. psychopy/app/Resources/classic/unstarred.png +0 -0
  307. psychopy/app/Resources/classic/unstarred@2x.png +0 -0
  308. psychopy/app/Resources/classic/user_none.png +0 -0
  309. psychopy/app/Resources/classic/view-refresh16.png +0 -0
  310. psychopy/app/Resources/classic/viewbtn.png +0 -0
  311. psychopy/app/Resources/classic/viewbtn16.png +0 -0
  312. psychopy/app/Resources/classic/viewbtn16@2x.png +0 -0
  313. psychopy/app/Resources/classic/viewbtn@2x.png +0 -0
  314. psychopy/app/Resources/classic/windows16.png +0 -0
  315. psychopy/app/Resources/classic/windows16@2x.png +0 -0
  316. psychopy/app/Resources/click.png +0 -0
  317. psychopy/app/Resources/coder.ico +0 -0
  318. psychopy/app/Resources/creditCard.png +0 -0
  319. psychopy/app/Resources/dark/FlowBottom_CompLeft.png +0 -0
  320. psychopy/app/Resources/dark/FlowBottom_CompRight.png +0 -0
  321. psychopy/app/Resources/dark/FlowTop_CompLeft.png +0 -0
  322. psychopy/app/Resources/dark/FlowTop_CompRight.png +0 -0
  323. psychopy/app/Resources/dark/README.txt +3 -0
  324. psychopy/app/Resources/dark/__init__.py +0 -0
  325. psychopy/app/Resources/dark/add.png +0 -0
  326. psychopy/app/Resources/dark/add@2x.png +0 -0
  327. psychopy/app/Resources/dark/addExp32.png +0 -0
  328. psychopy/app/Resources/dark/addExp32@2x.png +0 -0
  329. psychopy/app/Resources/dark/alerts.png +0 -0
  330. psychopy/app/Resources/dark/alerts@2x.png +0 -0
  331. psychopy/app/Resources/dark/beta.png +0 -0
  332. psychopy/app/Resources/dark/beta@2x.png +0 -0
  333. psychopy/app/Resources/dark/browser.png +0 -0
  334. psychopy/app/Resources/dark/browser@2x.png +0 -0
  335. psychopy/app/Resources/dark/bug16.png +0 -0
  336. psychopy/app/Resources/dark/bug16@2x.png +0 -0
  337. psychopy/app/Resources/dark/circle_mask.png +0 -0
  338. psychopy/app/Resources/dark/circle_mask@2x.png +0 -0
  339. psychopy/app/Resources/dark/clear.png +0 -0
  340. psychopy/app/Resources/dark/clear@2x.png +0 -0
  341. psychopy/app/Resources/dark/coderclass16.png +0 -0
  342. psychopy/app/Resources/dark/coderclass16@2x.png +0 -0
  343. psychopy/app/Resources/dark/coderfunc16.png +0 -0
  344. psychopy/app/Resources/dark/coderfunc16@2x.png +0 -0
  345. psychopy/app/Resources/dark/coderimport16.png +0 -0
  346. psychopy/app/Resources/dark/coderimport16@2x.png +0 -0
  347. psychopy/app/Resources/dark/coderjs.png +0 -0
  348. psychopy/app/Resources/dark/coderjs@2x.png +0 -0
  349. psychopy/app/Resources/dark/coderpython.png +0 -0
  350. psychopy/app/Resources/dark/coderpython@2x.png +0 -0
  351. psychopy/app/Resources/dark/codervar16.png +0 -0
  352. psychopy/app/Resources/dark/codervar16@2x.png +0 -0
  353. psychopy/app/Resources/dark/cogwindow32.png +0 -0
  354. psychopy/app/Resources/dark/cogwindow32@2x.png +0 -0
  355. psychopy/app/Resources/dark/color32.png +0 -0
  356. psychopy/app/Resources/dark/color32@2x.png +0 -0
  357. psychopy/app/Resources/dark/compile_js.png +0 -0
  358. psychopy/app/Resources/dark/compile_js@2x.png +0 -0
  359. psychopy/app/Resources/dark/compile_py.png +0 -0
  360. psychopy/app/Resources/dark/compile_py@2x.png +0 -0
  361. psychopy/app/Resources/dark/copy16.png +0 -0
  362. psychopy/app/Resources/dark/copy16@2x.png +0 -0
  363. psychopy/app/Resources/dark/currentFile16.png +0 -0
  364. psychopy/app/Resources/dark/currentFile16@2x.png +0 -0
  365. psychopy/app/Resources/dark/delete16.png +0 -0
  366. psychopy/app/Resources/dark/delete16@2x.png +0 -0
  367. psychopy/app/Resources/dark/desktop.png +0 -0
  368. psychopy/app/Resources/dark/desktop@2x.png +0 -0
  369. psychopy/app/Resources/dark/dirup16.png +0 -0
  370. psychopy/app/Resources/dark/dirup16@2x.png +0 -0
  371. psychopy/app/Resources/dark/docclose16.png +0 -0
  372. psychopy/app/Resources/dark/docclose16@2x.png +0 -0
  373. psychopy/app/Resources/dark/download.png +0 -0
  374. psychopy/app/Resources/dark/download@2x.png +0 -0
  375. psychopy/app/Resources/dark/edit.png +0 -0
  376. psychopy/app/Resources/dark/edit@2x.png +0 -0
  377. psychopy/app/Resources/dark/editbtn16.png +0 -0
  378. psychopy/app/Resources/dark/editbtn16@2x.png +0 -0
  379. psychopy/app/Resources/dark/email.png +0 -0
  380. psychopy/app/Resources/dark/email@2x.png +0 -0
  381. psychopy/app/Resources/dark/experiment.png +0 -0
  382. psychopy/app/Resources/dark/experiment@2x.png +0 -0
  383. psychopy/app/Resources/dark/expsettings.png +0 -0
  384. psychopy/app/Resources/dark/expsettings@2x.png +0 -0
  385. psychopy/app/Resources/dark/file.png +0 -0
  386. psychopy/app/Resources/dark/file@16w.png +0 -0
  387. psychopy/app/Resources/dark/file@16w@2x.png +0 -0
  388. psychopy/app/Resources/dark/file@2x.png +0 -0
  389. psychopy/app/Resources/dark/filecsv16.png +0 -0
  390. psychopy/app/Resources/dark/filecsv16@2x.png +0 -0
  391. psychopy/app/Resources/dark/fileimage16.png +0 -0
  392. psychopy/app/Resources/dark/fileimage16@2x.png +0 -0
  393. psychopy/app/Resources/dark/filenew.png +0 -0
  394. psychopy/app/Resources/dark/filenew32.png +0 -0
  395. psychopy/app/Resources/dark/filenew32@2x.png +0 -0
  396. psychopy/app/Resources/dark/filenew@2x.png +0 -0
  397. psychopy/app/Resources/dark/fileopen.png +0 -0
  398. psychopy/app/Resources/dark/fileopen32.png +0 -0
  399. psychopy/app/Resources/dark/fileopen32@2x.png +0 -0
  400. psychopy/app/Resources/dark/fileopen@2x.png +0 -0
  401. psychopy/app/Resources/dark/filesave.png +0 -0
  402. psychopy/app/Resources/dark/filesave32.png +0 -0
  403. psychopy/app/Resources/dark/filesave32@2x.png +0 -0
  404. psychopy/app/Resources/dark/filesave@2x.png +0 -0
  405. psychopy/app/Resources/dark/filesaveas.png +0 -0
  406. psychopy/app/Resources/dark/filesaveas32.png +0 -0
  407. psychopy/app/Resources/dark/filesaveas32@2x.png +0 -0
  408. psychopy/app/Resources/dark/filesaveas@2x.png +0 -0
  409. psychopy/app/Resources/dark/fileunknown16.png +0 -0
  410. psychopy/app/Resources/dark/fileunknown16@2x.png +0 -0
  411. psychopy/app/Resources/dark/filter.png +0 -0
  412. psychopy/app/Resources/dark/filter@2x.png +0 -0
  413. psychopy/app/Resources/dark/folder-open16.png +0 -0
  414. psychopy/app/Resources/dark/folder-open16@2x.png +0 -0
  415. psychopy/app/Resources/dark/folder16.png +0 -0
  416. psychopy/app/Resources/dark/folder16@2x.png +0 -0
  417. psychopy/app/Resources/dark/foldernew16.png +0 -0
  418. psychopy/app/Resources/dark/foldernew16@2x.png +0 -0
  419. psychopy/app/Resources/dark/fork.png +0 -0
  420. psychopy/app/Resources/dark/fork@2x.png +0 -0
  421. psychopy/app/Resources/dark/github.png +0 -0
  422. psychopy/app/Resources/dark/github@2x.png +0 -0
  423. psychopy/app/Resources/dark/globe.png +0 -0
  424. psychopy/app/Resources/dark/globe@2x.png +0 -0
  425. psychopy/app/Resources/dark/globe_bug.png +0 -0
  426. psychopy/app/Resources/dark/globe_bug@2x.png +0 -0
  427. psychopy/app/Resources/dark/globe_greensync.png +0 -0
  428. psychopy/app/Resources/dark/globe_greensync@2x.png +0 -0
  429. psychopy/app/Resources/dark/globe_info.png +0 -0
  430. psychopy/app/Resources/dark/globe_info@2x.png +0 -0
  431. psychopy/app/Resources/dark/globe_magnifier.png +0 -0
  432. psychopy/app/Resources/dark/globe_magnifier@2x.png +0 -0
  433. psychopy/app/Resources/dark/globe_run.png +0 -0
  434. psychopy/app/Resources/dark/globe_run@2x.png +0 -0
  435. psychopy/app/Resources/dark/globe_user.png +0 -0
  436. psychopy/app/Resources/dark/globe_user@2x.png +0 -0
  437. psychopy/app/Resources/dark/goto.png +0 -0
  438. psychopy/app/Resources/dark/goto@2x.png +0 -0
  439. psychopy/app/Resources/dark/greendot.png +0 -0
  440. psychopy/app/Resources/dark/greendot@2x.png +0 -0
  441. psychopy/app/Resources/dark/greenglobe.png +0 -0
  442. psychopy/app/Resources/dark/greenglobe@2x.png +0 -0
  443. psychopy/app/Resources/dark/greenglobe_bug.png +0 -0
  444. psychopy/app/Resources/dark/greenglobe_bug@2x.png +0 -0
  445. psychopy/app/Resources/dark/greenglobe_greensync.png +0 -0
  446. psychopy/app/Resources/dark/greenglobe_greensync@2x.png +0 -0
  447. psychopy/app/Resources/dark/greenglobe_info.png +0 -0
  448. psychopy/app/Resources/dark/greenglobe_info@2x.png +0 -0
  449. psychopy/app/Resources/dark/greenglobe_magnifier.png +0 -0
  450. psychopy/app/Resources/dark/greenglobe_magnifier@2x.png +0 -0
  451. psychopy/app/Resources/dark/greenglobe_run.png +0 -0
  452. psychopy/app/Resources/dark/greenglobe_run@2x.png +0 -0
  453. psychopy/app/Resources/dark/greenglobe_user.png +0 -0
  454. psychopy/app/Resources/dark/greenglobe_user@2x.png +0 -0
  455. psychopy/app/Resources/dark/greydot.png +0 -0
  456. psychopy/app/Resources/dark/greydot@2x.png +0 -0
  457. psychopy/app/Resources/dark/greytick.png +0 -0
  458. psychopy/app/Resources/dark/greytick@2x.png +0 -0
  459. psychopy/app/Resources/dark/invalid_img.png +0 -0
  460. psychopy/app/Resources/dark/jsPilot.png +0 -0
  461. psychopy/app/Resources/dark/jsPilot@2x.png +0 -0
  462. psychopy/app/Resources/dark/jsRun.png +0 -0
  463. psychopy/app/Resources/dark/jsRun@2x.png +0 -0
  464. psychopy/app/Resources/dark/libroot16.png +0 -0
  465. psychopy/app/Resources/dark/libroot16@2x.png +0 -0
  466. psychopy/app/Resources/dark/monitor16.png +0 -0
  467. psychopy/app/Resources/dark/monitor16@2x.png +0 -0
  468. psychopy/app/Resources/dark/monitors.png +0 -0
  469. psychopy/app/Resources/dark/monitors32.png +0 -0
  470. psychopy/app/Resources/dark/monitors32@2x.png +0 -0
  471. psychopy/app/Resources/dark/monitors@2x.png +0 -0
  472. psychopy/app/Resources/dark/orangedot.png +0 -0
  473. psychopy/app/Resources/dark/orangedot@2x.png +0 -0
  474. psychopy/app/Resources/dark/pavlovia.png +0 -0
  475. psychopy/app/Resources/dark/pavlovia16.png +0 -0
  476. psychopy/app/Resources/dark/pavlovia16@2x.png +0 -0
  477. psychopy/app/Resources/dark/pavlovia@2x.png +0 -0
  478. psychopy/app/Resources/dark/pavsync.png +0 -0
  479. psychopy/app/Resources/dark/pavsync@2x.png +0 -0
  480. psychopy/app/Resources/dark/person_off.png +0 -0
  481. psychopy/app/Resources/dark/person_off@2x.png +0 -0
  482. psychopy/app/Resources/dark/person_on.png +0 -0
  483. psychopy/app/Resources/dark/person_on@2x.png +0 -0
  484. psychopy/app/Resources/dark/plugins32.png +0 -0
  485. psychopy/app/Resources/dark/plugins32@2x.png +0 -0
  486. psychopy/app/Resources/dark/plus.png +0 -0
  487. psychopy/app/Resources/dark/plus@2x.png +0 -0
  488. psychopy/app/Resources/dark/preferences-app.png +0 -0
  489. psychopy/app/Resources/dark/preferences-app48.png +0 -0
  490. psychopy/app/Resources/dark/preferences-app48@2x.png +0 -0
  491. psychopy/app/Resources/dark/preferences-app@2x.png +0 -0
  492. psychopy/app/Resources/dark/preferences-conn.png +0 -0
  493. psychopy/app/Resources/dark/preferences-conn48.png +0 -0
  494. psychopy/app/Resources/dark/preferences-conn48@2x.png +0 -0
  495. psychopy/app/Resources/dark/preferences-conn@2x.png +0 -0
  496. psychopy/app/Resources/dark/preferences-debug.png +0 -0
  497. psychopy/app/Resources/dark/preferences-debug@2x.png +0 -0
  498. psychopy/app/Resources/dark/preferences-general.png +0 -0
  499. psychopy/app/Resources/dark/preferences-general48.png +0 -0
  500. psychopy/app/Resources/dark/preferences-general48@2x.png +0 -0
  501. psychopy/app/Resources/dark/preferences-general@2x.png +0 -0
  502. psychopy/app/Resources/dark/preferences-hardware.png +0 -0
  503. psychopy/app/Resources/dark/preferences-hardware48.png +0 -0
  504. psychopy/app/Resources/dark/preferences-hardware48@2x.png +0 -0
  505. psychopy/app/Resources/dark/preferences-hardware@2x.png +0 -0
  506. psychopy/app/Resources/dark/preferences-keyboard.png +0 -0
  507. psychopy/app/Resources/dark/preferences-keyboard48.png +0 -0
  508. psychopy/app/Resources/dark/preferences-keyboard48@2x.png +0 -0
  509. psychopy/app/Resources/dark/preferences-keyboard@2x.png +0 -0
  510. psychopy/app/Resources/dark/preferences-pilot.png +0 -0
  511. psychopy/app/Resources/dark/preferences-pilot@2x.png +0 -0
  512. psychopy/app/Resources/dark/preferences32.png +0 -0
  513. psychopy/app/Resources/dark/preferences32@2x.png +0 -0
  514. psychopy/app/Resources/dark/pyPilot.png +0 -0
  515. psychopy/app/Resources/dark/pyPilot@2x.png +0 -0
  516. psychopy/app/Resources/dark/pyRun.png +0 -0
  517. psychopy/app/Resources/dark/pyRun@2x.png +0 -0
  518. psychopy/app/Resources/dark/reddot.png +0 -0
  519. psychopy/app/Resources/dark/reddot@2x.png +0 -0
  520. psychopy/app/Resources/dark/redglobe.png +0 -0
  521. psychopy/app/Resources/dark/redglobe@2x.png +0 -0
  522. psychopy/app/Resources/dark/redglobe_bug.png +0 -0
  523. psychopy/app/Resources/dark/redglobe_bug@2x.png +0 -0
  524. psychopy/app/Resources/dark/redglobe_greensync.png +0 -0
  525. psychopy/app/Resources/dark/redglobe_greensync@2x.png +0 -0
  526. psychopy/app/Resources/dark/redglobe_info.png +0 -0
  527. psychopy/app/Resources/dark/redglobe_info@2x.png +0 -0
  528. psychopy/app/Resources/dark/redglobe_magnifier.png +0 -0
  529. psychopy/app/Resources/dark/redglobe_magnifier@2x.png +0 -0
  530. psychopy/app/Resources/dark/redglobe_run.png +0 -0
  531. psychopy/app/Resources/dark/redglobe_run@2x.png +0 -0
  532. psychopy/app/Resources/dark/redglobe_user.png +0 -0
  533. psychopy/app/Resources/dark/redglobe_user@2x.png +0 -0
  534. psychopy/app/Resources/dark/redo.png +0 -0
  535. psychopy/app/Resources/dark/redo32.png +0 -0
  536. psychopy/app/Resources/dark/redo32@2x.png +0 -0
  537. psychopy/app/Resources/dark/redo@2x.png +0 -0
  538. psychopy/app/Resources/dark/removeExp32.png +0 -0
  539. psychopy/app/Resources/dark/removeExp32@2x.png +0 -0
  540. psychopy/app/Resources/dark/rename16.png +0 -0
  541. psychopy/app/Resources/dark/rename16@2x.png +0 -0
  542. psychopy/app/Resources/dark/restart.png +0 -0
  543. psychopy/app/Resources/dark/restart@2x.png +0 -0
  544. psychopy/app/Resources/dark/runner.png +0 -0
  545. psychopy/app/Resources/dark/runner@2x.png +0 -0
  546. psychopy/app/Resources/dark/runnerPilot.png +0 -0
  547. psychopy/app/Resources/dark/runnerPilot@2x.png +0 -0
  548. psychopy/app/Resources/dark/savebtn16.png +0 -0
  549. psychopy/app/Resources/dark/savebtn16@2x.png +0 -0
  550. psychopy/app/Resources/dark/search.png +0 -0
  551. psychopy/app/Resources/dark/search@2x.png +0 -0
  552. psychopy/app/Resources/dark/showBuilder.png +0 -0
  553. psychopy/app/Resources/dark/showBuilder@2x.png +0 -0
  554. psychopy/app/Resources/dark/showCoder.png +0 -0
  555. psychopy/app/Resources/dark/showCoder@2x.png +0 -0
  556. psychopy/app/Resources/dark/showRunner.png +0 -0
  557. psychopy/app/Resources/dark/showRunner@2x.png +0 -0
  558. psychopy/app/Resources/dark/starred.png +0 -0
  559. psychopy/app/Resources/dark/starred@2x.png +0 -0
  560. psychopy/app/Resources/dark/start.png +0 -0
  561. psychopy/app/Resources/dark/start@2x.png +0 -0
  562. psychopy/app/Resources/dark/stdout.png +0 -0
  563. psychopy/app/Resources/dark/stdout@2x.png +0 -0
  564. psychopy/app/Resources/dark/stop.png +0 -0
  565. psychopy/app/Resources/dark/stop32.png +0 -0
  566. psychopy/app/Resources/dark/stop32@2x.png +0 -0
  567. psychopy/app/Resources/dark/stop@2x.png +0 -0
  568. psychopy/app/Resources/dark/switchCtrlBot.png +0 -0
  569. psychopy/app/Resources/dark/switchCtrlBot@2x.png +0 -0
  570. psychopy/app/Resources/dark/switchCtrlLeft.png +0 -0
  571. psychopy/app/Resources/dark/switchCtrlLeft@2x.png +0 -0
  572. psychopy/app/Resources/dark/switchCtrlRight.png +0 -0
  573. psychopy/app/Resources/dark/switchCtrlRight@2x.png +0 -0
  574. psychopy/app/Resources/dark/switchCtrlTop.png +0 -0
  575. psychopy/app/Resources/dark/switchCtrlTop@2x.png +0 -0
  576. psychopy/app/Resources/dark/tick.png +0 -0
  577. psychopy/app/Resources/dark/tick@2x.png +0 -0
  578. psychopy/app/Resources/dark/undo.png +0 -0
  579. psychopy/app/Resources/dark/undo32.png +0 -0
  580. psychopy/app/Resources/dark/undo32@2x.png +0 -0
  581. psychopy/app/Resources/dark/undo@2x.png +0 -0
  582. psychopy/app/Resources/dark/unstarred.png +0 -0
  583. psychopy/app/Resources/dark/unstarred@2x.png +0 -0
  584. psychopy/app/Resources/dark/user_none.png +0 -0
  585. psychopy/app/Resources/dark/view-refresh16.png +0 -0
  586. psychopy/app/Resources/dark/view-refresh16@2x.png +0 -0
  587. psychopy/app/Resources/dark/viewbtn16.png +0 -0
  588. psychopy/app/Resources/dark/viewbtn16@2x.png +0 -0
  589. psychopy/app/Resources/dark/windows16.png +0 -0
  590. psychopy/app/Resources/dark/windows16@2x.png +0 -0
  591. psychopy/app/Resources/default.mp3 +0 -0
  592. psychopy/app/Resources/default.mp4 +0 -0
  593. psychopy/app/Resources/default.png +0 -0
  594. psychopy/app/Resources/fonts/Arvo-Bold.ttf +0 -0
  595. psychopy/app/Resources/fonts/Arvo-BoldItalic.ttf +0 -0
  596. psychopy/app/Resources/fonts/Arvo-Italic.ttf +0 -0
  597. psychopy/app/Resources/fonts/Arvo-Regular.ttf +0 -0
  598. psychopy/app/Resources/fonts/DejaVuSerif.ttf +0 -0
  599. psychopy/app/Resources/fonts/IndieFlower-Regular.ttf +0 -0
  600. psychopy/app/Resources/fonts/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
  601. psychopy/app/Resources/fonts/JetBrainsMono-VariableFont_wght.ttf +0 -0
  602. psychopy/app/Resources/fonts/OpenSans-Bold.ttf +0 -0
  603. psychopy/app/Resources/fonts/OpenSans-BoldItalic.ttf +0 -0
  604. psychopy/app/Resources/fonts/OpenSans-ExtraBold.ttf +0 -0
  605. psychopy/app/Resources/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  606. psychopy/app/Resources/fonts/OpenSans-Italic.ttf +0 -0
  607. psychopy/app/Resources/fonts/OpenSans-Light.ttf +0 -0
  608. psychopy/app/Resources/fonts/OpenSans-LightItalic.ttf +0 -0
  609. psychopy/app/Resources/fonts/OpenSans-Regular.ttf +0 -0
  610. psychopy/app/Resources/fonts/OpenSans-SemiBold.ttf +0 -0
  611. psychopy/app/Resources/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  612. psychopy/app/Resources/instruct1.png +0 -0
  613. psychopy/app/Resources/instruct2.png +0 -0
  614. psychopy/app/Resources/light/FlowBottom_CompLeft.png +0 -0
  615. psychopy/app/Resources/light/FlowBottom_CompRight.png +0 -0
  616. psychopy/app/Resources/light/FlowTop_CompLeft.png +0 -0
  617. psychopy/app/Resources/light/FlowTop_CompRight.png +0 -0
  618. psychopy/app/Resources/light/README.txt +3 -0
  619. psychopy/app/Resources/light/__init__.py +0 -0
  620. psychopy/app/Resources/light/add.png +0 -0
  621. psychopy/app/Resources/light/add@2x.png +0 -0
  622. psychopy/app/Resources/light/addExp32.png +0 -0
  623. psychopy/app/Resources/light/addExp32@2x.png +0 -0
  624. psychopy/app/Resources/light/alerts.png +0 -0
  625. psychopy/app/Resources/light/alerts@2x.png +0 -0
  626. psychopy/app/Resources/light/beta.png +0 -0
  627. psychopy/app/Resources/light/beta@2x.png +0 -0
  628. psychopy/app/Resources/light/browser.png +0 -0
  629. psychopy/app/Resources/light/browser@2x.png +0 -0
  630. psychopy/app/Resources/light/bug16.png +0 -0
  631. psychopy/app/Resources/light/bug16@2x.png +0 -0
  632. psychopy/app/Resources/light/circle_mask.png +0 -0
  633. psychopy/app/Resources/light/circle_mask@2x.png +0 -0
  634. psychopy/app/Resources/light/clear.png +0 -0
  635. psychopy/app/Resources/light/clear@2x.png +0 -0
  636. psychopy/app/Resources/light/coderclass16.png +0 -0
  637. psychopy/app/Resources/light/coderclass16@2x.png +0 -0
  638. psychopy/app/Resources/light/coderfunc16.png +0 -0
  639. psychopy/app/Resources/light/coderfunc16@2x.png +0 -0
  640. psychopy/app/Resources/light/coderimport16.png +0 -0
  641. psychopy/app/Resources/light/coderimport16@2x.png +0 -0
  642. psychopy/app/Resources/light/coderjs.png +0 -0
  643. psychopy/app/Resources/light/coderjs@2x.png +0 -0
  644. psychopy/app/Resources/light/coderpython.png +0 -0
  645. psychopy/app/Resources/light/coderpython@2x.png +0 -0
  646. psychopy/app/Resources/light/codervar16.png +0 -0
  647. psychopy/app/Resources/light/codervar16@2x.png +0 -0
  648. psychopy/app/Resources/light/cogwindow32.png +0 -0
  649. psychopy/app/Resources/light/cogwindow32@2x.png +0 -0
  650. psychopy/app/Resources/light/color16.png +0 -0
  651. psychopy/app/Resources/light/color16@2x.png +0 -0
  652. psychopy/app/Resources/light/color32.png +0 -0
  653. psychopy/app/Resources/light/color32@2x.png +0 -0
  654. psychopy/app/Resources/light/compile_js.png +0 -0
  655. psychopy/app/Resources/light/compile_js@2x.png +0 -0
  656. psychopy/app/Resources/light/compile_py.png +0 -0
  657. psychopy/app/Resources/light/compile_py@2x.png +0 -0
  658. psychopy/app/Resources/light/copy16.png +0 -0
  659. psychopy/app/Resources/light/copy16@2x.png +0 -0
  660. psychopy/app/Resources/light/currentFile16.png +0 -0
  661. psychopy/app/Resources/light/currentFile16@2x.png +0 -0
  662. psychopy/app/Resources/light/delete16.png +0 -0
  663. psychopy/app/Resources/light/delete16@2x.png +0 -0
  664. psychopy/app/Resources/light/delete8.png +0 -0
  665. psychopy/app/Resources/light/desktop.png +0 -0
  666. psychopy/app/Resources/light/desktop@2x.png +0 -0
  667. psychopy/app/Resources/light/dirup16.png +0 -0
  668. psychopy/app/Resources/light/dirup16@2x.png +0 -0
  669. psychopy/app/Resources/light/docclose16.png +0 -0
  670. psychopy/app/Resources/light/docclose16@2x.png +0 -0
  671. psychopy/app/Resources/light/download.png +0 -0
  672. psychopy/app/Resources/light/download@2x.png +0 -0
  673. psychopy/app/Resources/light/edit.png +0 -0
  674. psychopy/app/Resources/light/edit@2x.png +0 -0
  675. psychopy/app/Resources/light/editbtn16.png +0 -0
  676. psychopy/app/Resources/light/editbtn16@2x.png +0 -0
  677. psychopy/app/Resources/light/email.png +0 -0
  678. psychopy/app/Resources/light/email@2x.png +0 -0
  679. psychopy/app/Resources/light/experiment.png +0 -0
  680. psychopy/app/Resources/light/experiment@2x.png +0 -0
  681. psychopy/app/Resources/light/expsettings.png +0 -0
  682. psychopy/app/Resources/light/expsettings@2x.png +0 -0
  683. psychopy/app/Resources/light/file.png +0 -0
  684. psychopy/app/Resources/light/file@2x.png +0 -0
  685. psychopy/app/Resources/light/filecsv16.png +0 -0
  686. psychopy/app/Resources/light/filecsv16@2x.png +0 -0
  687. psychopy/app/Resources/light/fileimage16.png +0 -0
  688. psychopy/app/Resources/light/fileimage16@2x.png +0 -0
  689. psychopy/app/Resources/light/filenew.png +0 -0
  690. psychopy/app/Resources/light/filenew32.png +0 -0
  691. psychopy/app/Resources/light/filenew32@2x.png +0 -0
  692. psychopy/app/Resources/light/filenew@2x.png +0 -0
  693. psychopy/app/Resources/light/fileopen.png +0 -0
  694. psychopy/app/Resources/light/fileopen32.png +0 -0
  695. psychopy/app/Resources/light/fileopen32@2x.png +0 -0
  696. psychopy/app/Resources/light/fileopen@2x.png +0 -0
  697. psychopy/app/Resources/light/filesave.png +0 -0
  698. psychopy/app/Resources/light/filesave32.png +0 -0
  699. psychopy/app/Resources/light/filesave32@2x.png +0 -0
  700. psychopy/app/Resources/light/filesave@2x.png +0 -0
  701. psychopy/app/Resources/light/filesaveas.png +0 -0
  702. psychopy/app/Resources/light/filesaveas32.png +0 -0
  703. psychopy/app/Resources/light/filesaveas32@2x.png +0 -0
  704. psychopy/app/Resources/light/filesaveas@2x.png +0 -0
  705. psychopy/app/Resources/light/fileunknown16.png +0 -0
  706. psychopy/app/Resources/light/fileunknown16@2x.png +0 -0
  707. psychopy/app/Resources/light/filter.png +0 -0
  708. psychopy/app/Resources/light/filter@2x.png +0 -0
  709. psychopy/app/Resources/light/folder-open16.png +0 -0
  710. psychopy/app/Resources/light/folder-open16@2x.png +0 -0
  711. psychopy/app/Resources/light/folder16.png +0 -0
  712. psychopy/app/Resources/light/folder16@2x.png +0 -0
  713. psychopy/app/Resources/light/foldernew16.png +0 -0
  714. psychopy/app/Resources/light/foldernew16@2x.png +0 -0
  715. psychopy/app/Resources/light/fork.png +0 -0
  716. psychopy/app/Resources/light/fork@2x.png +0 -0
  717. psychopy/app/Resources/light/github.png +0 -0
  718. psychopy/app/Resources/light/github@2x.png +0 -0
  719. psychopy/app/Resources/light/globe.png +0 -0
  720. psychopy/app/Resources/light/globe@2x.png +0 -0
  721. psychopy/app/Resources/light/globe_bug.png +0 -0
  722. psychopy/app/Resources/light/globe_bug@2x.png +0 -0
  723. psychopy/app/Resources/light/globe_greensync.png +0 -0
  724. psychopy/app/Resources/light/globe_greensync@2x.png +0 -0
  725. psychopy/app/Resources/light/globe_info.png +0 -0
  726. psychopy/app/Resources/light/globe_info@2x.png +0 -0
  727. psychopy/app/Resources/light/globe_magnifier.png +0 -0
  728. psychopy/app/Resources/light/globe_magnifier@2x.png +0 -0
  729. psychopy/app/Resources/light/globe_run.png +0 -0
  730. psychopy/app/Resources/light/globe_run@2x.png +0 -0
  731. psychopy/app/Resources/light/globe_user.png +0 -0
  732. psychopy/app/Resources/light/globe_user@2x.png +0 -0
  733. psychopy/app/Resources/light/goto16.png +0 -0
  734. psychopy/app/Resources/light/goto16@2x.png +0 -0
  735. psychopy/app/Resources/light/greendot.png +0 -0
  736. psychopy/app/Resources/light/greendot@2x.png +0 -0
  737. psychopy/app/Resources/light/greenglobe.png +0 -0
  738. psychopy/app/Resources/light/greenglobe@2x.png +0 -0
  739. psychopy/app/Resources/light/greenglobe_bug.png +0 -0
  740. psychopy/app/Resources/light/greenglobe_bug@2x.png +0 -0
  741. psychopy/app/Resources/light/greenglobe_greensync.png +0 -0
  742. psychopy/app/Resources/light/greenglobe_greensync@2x.png +0 -0
  743. psychopy/app/Resources/light/greenglobe_info.png +0 -0
  744. psychopy/app/Resources/light/greenglobe_info@2x.png +0 -0
  745. psychopy/app/Resources/light/greenglobe_magnifier.png +0 -0
  746. psychopy/app/Resources/light/greenglobe_magnifier@2x.png +0 -0
  747. psychopy/app/Resources/light/greenglobe_run.png +0 -0
  748. psychopy/app/Resources/light/greenglobe_run@2x.png +0 -0
  749. psychopy/app/Resources/light/greenglobe_user.png +0 -0
  750. psychopy/app/Resources/light/greenglobe_user@2x.png +0 -0
  751. psychopy/app/Resources/light/greydot.png +0 -0
  752. psychopy/app/Resources/light/greydot@2x.png +0 -0
  753. psychopy/app/Resources/light/greytick.png +0 -0
  754. psychopy/app/Resources/light/greytick@2x.png +0 -0
  755. psychopy/app/Resources/light/invalid_img.png +0 -0
  756. psychopy/app/Resources/light/jsPilot.png +0 -0
  757. psychopy/app/Resources/light/jsPilot@2x.png +0 -0
  758. psychopy/app/Resources/light/jsRun.png +0 -0
  759. psychopy/app/Resources/light/jsRun@2x.png +0 -0
  760. psychopy/app/Resources/light/libroot16.png +0 -0
  761. psychopy/app/Resources/light/libroot16@2x.png +0 -0
  762. psychopy/app/Resources/light/monitor16.png +0 -0
  763. psychopy/app/Resources/light/monitor16@2x.png +0 -0
  764. psychopy/app/Resources/light/monitors.png +0 -0
  765. psychopy/app/Resources/light/monitors32.png +0 -0
  766. psychopy/app/Resources/light/monitors32@2x.png +0 -0
  767. psychopy/app/Resources/light/monitors@2x.png +0 -0
  768. psychopy/app/Resources/light/orangedot.png +0 -0
  769. psychopy/app/Resources/light/orangedot@2x.png +0 -0
  770. psychopy/app/Resources/light/pavlovia.png +0 -0
  771. psychopy/app/Resources/light/pavlovia16.png +0 -0
  772. psychopy/app/Resources/light/pavlovia16@2x.png +0 -0
  773. psychopy/app/Resources/light/pavlovia@2x.png +0 -0
  774. psychopy/app/Resources/light/pavsync.png +0 -0
  775. psychopy/app/Resources/light/pavsync@2x.png +0 -0
  776. psychopy/app/Resources/light/person_off.png +0 -0
  777. psychopy/app/Resources/light/person_off@2x.png +0 -0
  778. psychopy/app/Resources/light/person_on.png +0 -0
  779. psychopy/app/Resources/light/person_on@2x.png +0 -0
  780. psychopy/app/Resources/light/plugins32.png +0 -0
  781. psychopy/app/Resources/light/plugins32@2x.png +0 -0
  782. psychopy/app/Resources/light/plus.png +0 -0
  783. psychopy/app/Resources/light/plus@2x.png +0 -0
  784. psychopy/app/Resources/light/preferences-app.png +0 -0
  785. psychopy/app/Resources/light/preferences-app48.png +0 -0
  786. psychopy/app/Resources/light/preferences-app48@2x.png +0 -0
  787. psychopy/app/Resources/light/preferences-app@2x.png +0 -0
  788. psychopy/app/Resources/light/preferences-conn.png +0 -0
  789. psychopy/app/Resources/light/preferences-conn48.png +0 -0
  790. psychopy/app/Resources/light/preferences-conn48@2x.png +0 -0
  791. psychopy/app/Resources/light/preferences-conn@2x.png +0 -0
  792. psychopy/app/Resources/light/preferences-general.png +0 -0
  793. psychopy/app/Resources/light/preferences-general48.png +0 -0
  794. psychopy/app/Resources/light/preferences-general48@2x.png +0 -0
  795. psychopy/app/Resources/light/preferences-general@2x.png +0 -0
  796. psychopy/app/Resources/light/preferences-hardware.png +0 -0
  797. psychopy/app/Resources/light/preferences-hardware48.png +0 -0
  798. psychopy/app/Resources/light/preferences-hardware48@2x.png +0 -0
  799. psychopy/app/Resources/light/preferences-hardware@2x.png +0 -0
  800. psychopy/app/Resources/light/preferences-keyboard.png +0 -0
  801. psychopy/app/Resources/light/preferences-keyboard48.png +0 -0
  802. psychopy/app/Resources/light/preferences-keyboard48@2x.png +0 -0
  803. psychopy/app/Resources/light/preferences-keyboard@2x.png +0 -0
  804. psychopy/app/Resources/light/preferences-pilot.png +0 -0
  805. psychopy/app/Resources/light/preferences-pilot@2x.png +0 -0
  806. psychopy/app/Resources/light/preferences32.png +0 -0
  807. psychopy/app/Resources/light/preferences32@2x.png +0 -0
  808. psychopy/app/Resources/light/pyPilot.png +0 -0
  809. psychopy/app/Resources/light/pyPilot@2x.png +0 -0
  810. psychopy/app/Resources/light/pyRun.png +0 -0
  811. psychopy/app/Resources/light/pyRun@2x.png +0 -0
  812. psychopy/app/Resources/light/reddot.png +0 -0
  813. psychopy/app/Resources/light/reddot@2x.png +0 -0
  814. psychopy/app/Resources/light/redglobe.png +0 -0
  815. psychopy/app/Resources/light/redglobe@2x.png +0 -0
  816. psychopy/app/Resources/light/redglobe_bug.png +0 -0
  817. psychopy/app/Resources/light/redglobe_bug@2x.png +0 -0
  818. psychopy/app/Resources/light/redglobe_greensync.png +0 -0
  819. psychopy/app/Resources/light/redglobe_greensync@2x.png +0 -0
  820. psychopy/app/Resources/light/redglobe_info.png +0 -0
  821. psychopy/app/Resources/light/redglobe_info@2x.png +0 -0
  822. psychopy/app/Resources/light/redglobe_magnifier.png +0 -0
  823. psychopy/app/Resources/light/redglobe_magnifier@2x.png +0 -0
  824. psychopy/app/Resources/light/redglobe_run.png +0 -0
  825. psychopy/app/Resources/light/redglobe_run@2x.png +0 -0
  826. psychopy/app/Resources/light/redglobe_user.png +0 -0
  827. psychopy/app/Resources/light/redglobe_user@2x.png +0 -0
  828. psychopy/app/Resources/light/redo.png +0 -0
  829. psychopy/app/Resources/light/redo32.png +0 -0
  830. psychopy/app/Resources/light/redo32@2x.png +0 -0
  831. psychopy/app/Resources/light/redo@2x.png +0 -0
  832. psychopy/app/Resources/light/removeExp32.png +0 -0
  833. psychopy/app/Resources/light/removeExp32@2x.png +0 -0
  834. psychopy/app/Resources/light/rename16.png +0 -0
  835. psychopy/app/Resources/light/rename16@2x.png +0 -0
  836. psychopy/app/Resources/light/restart.png +0 -0
  837. psychopy/app/Resources/light/restart@2x.png +0 -0
  838. psychopy/app/Resources/light/runner.png +0 -0
  839. psychopy/app/Resources/light/runner@2x.png +0 -0
  840. psychopy/app/Resources/light/runnerPilot.png +0 -0
  841. psychopy/app/Resources/light/runnerPilot@2x.png +0 -0
  842. psychopy/app/Resources/light/savebtn16.png +0 -0
  843. psychopy/app/Resources/light/savebtn16@2x.png +0 -0
  844. psychopy/app/Resources/light/search.png +0 -0
  845. psychopy/app/Resources/light/search@2x.png +0 -0
  846. psychopy/app/Resources/light/showBuilder.png +0 -0
  847. psychopy/app/Resources/light/showBuilder@2x.png +0 -0
  848. psychopy/app/Resources/light/showCoder.png +0 -0
  849. psychopy/app/Resources/light/showCoder@2x.png +0 -0
  850. psychopy/app/Resources/light/showRunner.png +0 -0
  851. psychopy/app/Resources/light/showRunner@2x.png +0 -0
  852. psychopy/app/Resources/light/starred.png +0 -0
  853. psychopy/app/Resources/light/starred@2x.png +0 -0
  854. psychopy/app/Resources/light/start.png +0 -0
  855. psychopy/app/Resources/light/start@2x.png +0 -0
  856. psychopy/app/Resources/light/stdout.png +0 -0
  857. psychopy/app/Resources/light/stdout@2x.png +0 -0
  858. psychopy/app/Resources/light/stop.png +0 -0
  859. psychopy/app/Resources/light/stop32.png +0 -0
  860. psychopy/app/Resources/light/stop32@2x.png +0 -0
  861. psychopy/app/Resources/light/stop@2x.png +0 -0
  862. psychopy/app/Resources/light/switchCtrlBot.png +0 -0
  863. psychopy/app/Resources/light/switchCtrlBot@2x.png +0 -0
  864. psychopy/app/Resources/light/switchCtrlLeft.png +0 -0
  865. psychopy/app/Resources/light/switchCtrlLeft@2x.png +0 -0
  866. psychopy/app/Resources/light/switchCtrlRight.png +0 -0
  867. psychopy/app/Resources/light/switchCtrlRight@2x.png +0 -0
  868. psychopy/app/Resources/light/switchCtrlTop.png +0 -0
  869. psychopy/app/Resources/light/switchCtrlTop@2x.png +0 -0
  870. psychopy/app/Resources/light/tick.png +0 -0
  871. psychopy/app/Resources/light/tick@2x.png +0 -0
  872. psychopy/app/Resources/light/undo.png +0 -0
  873. psychopy/app/Resources/light/undo32.png +0 -0
  874. psychopy/app/Resources/light/undo32@2x.png +0 -0
  875. psychopy/app/Resources/light/undo@2x.png +0 -0
  876. psychopy/app/Resources/light/unstarred.png +0 -0
  877. psychopy/app/Resources/light/unstarred@2x.png +0 -0
  878. psychopy/app/Resources/light/user_none.png +0 -0
  879. psychopy/app/Resources/light/view-refresh16.png +0 -0
  880. psychopy/app/Resources/light/view-refresh16@2x.png +0 -0
  881. psychopy/app/Resources/light/viewbtn16.png +0 -0
  882. psychopy/app/Resources/light/viewbtn16@2x.png +0 -0
  883. psychopy/app/Resources/light/windows16.png +0 -0
  884. psychopy/app/Resources/light/windows16@2x.png +0 -0
  885. psychopy/app/Resources/moveComponentIcons.py +50 -0
  886. psychopy/app/Resources/next.png +0 -0
  887. psychopy/app/Resources/psychopy.desktop +13 -0
  888. psychopy/app/Resources/psychopy.icns +0 -0
  889. psychopy/app/Resources/psychopy.ico +0 -0
  890. psychopy/app/Resources/psychopy.png +0 -0
  891. psychopy/app/Resources/psychopy.xml +9 -0
  892. psychopy/app/Resources/psychopy@2x.png +0 -0
  893. psychopy/app/Resources/psychopySplash.png +0 -0
  894. psychopy/app/Resources/psychopySplash@2x.png +0 -0
  895. psychopy/app/Resources/routine_templates/Basic.psyexp +345 -0
  896. psychopy/app/Resources/routine_templates/Misc.psyexp +229 -0
  897. psychopy/app/Resources/routine_templates/Online.psyexp +202 -0
  898. psychopy/app/Resources/routine_templates/Trials.psyexp +736 -0
  899. psychopy/app/Resources/routine_templates/readme.md +14 -0
  900. psychopy/app/Resources/runner.ico +0 -0
  901. psychopy/app/Resources/tips.txt +45 -0
  902. psychopy/app/Resources/tips_ar_001.txt +45 -0
  903. psychopy/app/Resources/tips_fr_FR.txt +45 -0
  904. psychopy/app/Resources/tips_ja_JP.txt +42 -0
  905. psychopy/app/Resources/tips_zh_CN.txt +45 -0
  906. psychopy/app/Resources/window.ico +0 -0
  907. psychopy/app/__init__.py +224 -0
  908. psychopy/app/_psychopyApp.py +1224 -0
  909. psychopy/app/appData.spec +58 -0
  910. psychopy/app/builder/__init__.py +5 -0
  911. psychopy/app/builder/builder.py +4658 -0
  912. psychopy/app/builder/dialogs/__init__.py +2014 -0
  913. psychopy/app/builder/dialogs/dlgsCode.py +610 -0
  914. psychopy/app/builder/dialogs/dlgsConditions.py +670 -0
  915. psychopy/app/builder/dialogs/findDlg.py +189 -0
  916. psychopy/app/builder/dialogs/paramCtrls.py +1213 -0
  917. psychopy/app/builder/localizedStrings.py +225 -0
  918. psychopy/app/builder/validators.py +581 -0
  919. psychopy/app/coder/__init__.py +8 -0
  920. psychopy/app/coder/codeEditorBase.py +460 -0
  921. psychopy/app/coder/coder.py +3086 -0
  922. psychopy/app/coder/fileBrowser.py +668 -0
  923. psychopy/app/coder/folding.py +128 -0
  924. psychopy/app/coder/psychoParser.py +139 -0
  925. psychopy/app/coder/repl.py +493 -0
  926. psychopy/app/coder/sourceTree.py +302 -0
  927. psychopy/app/colorpicker/__init__.py +594 -0
  928. psychopy/app/colorpicker/ui.py +336 -0
  929. psychopy/app/connections/__init__.py +10 -0
  930. psychopy/app/connections/news.py +104 -0
  931. psychopy/app/connections/sendusage.py +61 -0
  932. psychopy/app/connections/updates.py +642 -0
  933. psychopy/app/console.py +164 -0
  934. psychopy/app/dialogs.py +632 -0
  935. psychopy/app/errorDlg.py +238 -0
  936. psychopy/app/frametracker.py +8 -0
  937. psychopy/app/idle.py +143 -0
  938. psychopy/app/jobs.py +648 -0
  939. psychopy/app/linuxconfig/__init__.py +144 -0
  940. psychopy/app/linuxconfig/ui.py +88 -0
  941. psychopy/app/locale/ar_001/LC_MESSAGE/messages.mo +0 -0
  942. psychopy/app/locale/ar_001/LC_MESSAGE/messages.po +9554 -0
  943. psychopy/app/locale/cs_CZ/LC_MESSAGE/messages.mo +0 -0
  944. psychopy/app/locale/cs_CZ/LC_MESSAGE/messages.po +24 -0
  945. psychopy/app/locale/da_DK/LC_MESSAGE/messages.mo +0 -0
  946. psychopy/app/locale/da_DK/LC_MESSAGE/messages.po +24 -0
  947. psychopy/app/locale/de_DE/LC_MESSAGE/messages.mo +0 -0
  948. psychopy/app/locale/de_DE/LC_MESSAGE/messages.po +9712 -0
  949. psychopy/app/locale/el_GR/LC_MESSAGE/messages.mo +0 -0
  950. psychopy/app/locale/el_GR/LC_MESSAGE/messages.po +25 -0
  951. psychopy/app/locale/en_NZ/LC_MESSAGE/messages.mo +0 -0
  952. psychopy/app/locale/en_NZ/LC_MESSAGE/messages.po +25 -0
  953. psychopy/app/locale/en_US/LC_MESSAGE/messages.mo +0 -0
  954. psychopy/app/locale/en_US/LC_MESSAGE/messages.po +18 -0
  955. psychopy/app/locale/es_CO/LC_MESSAGE/messages.mo +0 -0
  956. psychopy/app/locale/es_CO/LC_MESSAGE/messages.po +9100 -0
  957. psychopy/app/locale/es_ES/LC_MESSAGE/messages.mo +0 -0
  958. psychopy/app/locale/es_ES/LC_MESSAGE/messages.po +9094 -0
  959. psychopy/app/locale/es_US/LC_MESSAGE/messages.mo +0 -0
  960. psychopy/app/locale/es_US/LC_MESSAGE/messages.po +9100 -0
  961. psychopy/app/locale/et_EE/LC_MESSAGE/messages.mo +0 -0
  962. psychopy/app/locale/et_EE/LC_MESSAGE/messages.po +9569 -0
  963. psychopy/app/locale/fa_IR/LC_MESSAGE/messages.mo +0 -0
  964. psychopy/app/locale/fa_IR/LC_MESSAGE/messages.po +5806 -0
  965. psychopy/app/locale/fi_FI/LC_MESSAGE/messages.mo +0 -0
  966. psychopy/app/locale/fi_FI/LC_MESSAGE/messages.po +24 -0
  967. psychopy/app/locale/fr_FR/LC_MESSAGE/messages.mo +0 -0
  968. psychopy/app/locale/fr_FR/LC_MESSAGE/messages.po +9577 -0
  969. psychopy/app/locale/he_IL/LC_MESSAGE/messages.mo +0 -0
  970. psychopy/app/locale/he_IL/LC_MESSAGE/messages.po +9549 -0
  971. psychopy/app/locale/hi_IN/LC_MESSAGE/messages.mo +0 -0
  972. psychopy/app/locale/hi_IN/LC_MESSAGE/messages.po +9559 -0
  973. psychopy/app/locale/hu_HU/LC_MESSAGE/messages.mo +0 -0
  974. psychopy/app/locale/hu_HU/LC_MESSAGE/messages.po +25 -0
  975. psychopy/app/locale/it_IT/LC_MESSAGE/messages.mo +0 -0
  976. psychopy/app/locale/it_IT/LC_MESSAGE/messages.po +9560 -0
  977. psychopy/app/locale/ja_JP/LC_MESSAGE/messages.mo +0 -0
  978. psychopy/app/locale/ja_JP/LC_MESSAGE/messages.po +11687 -0
  979. psychopy/app/locale/ko_KR/LC_MESSAGE/messages.mo +0 -0
  980. psychopy/app/locale/ko_KR/LC_MESSAGE/messages.po +24 -0
  981. psychopy/app/locale/ms_MY/LC_MESSAGE/messages.mo +0 -0
  982. psychopy/app/locale/ms_MY/LC_MESSAGE/messages.po +8757 -0
  983. psychopy/app/locale/nl_NL/LC_MESSAGE/messages.mo +0 -0
  984. psychopy/app/locale/nl_NL/LC_MESSAGE/messages.po +25 -0
  985. psychopy/app/locale/nn_NO/LC_MESSAGE/messages.mo +0 -0
  986. psychopy/app/locale/nn_NO/LC_MESSAGE/messages.po +25 -0
  987. psychopy/app/locale/pl_PL/LC_MESSAGE/messages.mo +0 -0
  988. psychopy/app/locale/pl_PL/LC_MESSAGE/messages.po +25 -0
  989. psychopy/app/locale/pt_PT/LC_MESSAGE/messages.mo +0 -0
  990. psychopy/app/locale/pt_PT/LC_MESSAGE/messages.po +24 -0
  991. psychopy/app/locale/ro_RO/LC_MESSAGE/messages.mo +0 -0
  992. psychopy/app/locale/ro_RO/LC_MESSAGE/messages.po +25 -0
  993. psychopy/app/locale/ru_RU/LC_MESSAGE/messages.mo +0 -0
  994. psychopy/app/locale/ru_RU/LC_MESSAGE/messages.po +24 -0
  995. psychopy/app/locale/sv_SE/LC_MESSAGE/messages.mo +0 -0
  996. psychopy/app/locale/sv_SE/LC_MESSAGE/messages.po +8747 -0
  997. psychopy/app/locale/tr_TR/LC_MESSAGE/messages.mo +0 -0
  998. psychopy/app/locale/tr_TR/LC_MESSAGE/messages.po +9545 -0
  999. psychopy/app/locale/zh_CN/LC_MESSAGE/messages.mo +0 -0
  1000. psychopy/app/locale/zh_CN/LC_MESSAGE/messages.po +8268 -0
  1001. psychopy/app/locale/zh_TW/LC_MESSAGE/messages.mo +0 -0
  1002. psychopy/app/locale/zh_TW/LC_MESSAGE/messages.po +8022 -0
  1003. psychopy/app/pavlovia_ui/__init__.py +22 -0
  1004. psychopy/app/pavlovia_ui/_base.py +237 -0
  1005. psychopy/app/pavlovia_ui/functions.py +176 -0
  1006. psychopy/app/pavlovia_ui/menu.py +140 -0
  1007. psychopy/app/pavlovia_ui/project.py +943 -0
  1008. psychopy/app/pavlovia_ui/search.py +445 -0
  1009. psychopy/app/pavlovia_ui/sync.py +137 -0
  1010. psychopy/app/pavlovia_ui/user.py +264 -0
  1011. psychopy/app/plugin_manager/__init__.py +5 -0
  1012. psychopy/app/plugin_manager/dialog.py +400 -0
  1013. psychopy/app/plugin_manager/output.py +132 -0
  1014. psychopy/app/plugin_manager/packages.py +502 -0
  1015. psychopy/app/plugin_manager/plugins.py +1315 -0
  1016. psychopy/app/plugin_manager/utils.py +115 -0
  1017. psychopy/app/preferencesDlg.py +790 -0
  1018. psychopy/app/psychopyApp.py +103 -0
  1019. psychopy/app/ribbon.py +907 -0
  1020. psychopy/app/runner/__init__.py +1 -0
  1021. psychopy/app/runner/runner.py +1262 -0
  1022. psychopy/app/runner/scriptProcess.py +353 -0
  1023. psychopy/app/stdout/__init__.py +1 -0
  1024. psychopy/app/stdout/stdOutRich.py +380 -0
  1025. psychopy/app/sysInfoDlg.py +242 -0
  1026. psychopy/app/themes/__init__.py +78 -0
  1027. psychopy/app/themes/colors.py +201 -0
  1028. psychopy/app/themes/css/contrast_black.css +112 -0
  1029. psychopy/app/themes/css/contrast_white.css +115 -0
  1030. psychopy/app/themes/css/dark.css +112 -0
  1031. psychopy/app/themes/css/light.css +115 -0
  1032. psychopy/app/themes/fonts.py +629 -0
  1033. psychopy/app/themes/handlers.py +321 -0
  1034. psychopy/app/themes/icons.py +250 -0
  1035. psychopy/app/themes/spec/Classic.json +154 -0
  1036. psychopy/app/themes/spec/ClassicDark.json +154 -0
  1037. psychopy/app/themes/spec/GitHub.json +154 -0
  1038. psychopy/app/themes/spec/HiVisDark.json +153 -0
  1039. psychopy/app/themes/spec/HiVisLight.json +154 -0
  1040. psychopy/app/themes/spec/MinimalDark.json +154 -0
  1041. psychopy/app/themes/spec/MinimalLight.json +153 -0
  1042. psychopy/app/themes/spec/PsychopyDark.json +231 -0
  1043. psychopy/app/themes/spec/PsychopyLight.json +236 -0
  1044. psychopy/app/themes/ui.py +74 -0
  1045. psychopy/app/ui/__init__.py +184 -0
  1046. psychopy/app/urls.py +31 -0
  1047. psychopy/app/utils.py +1680 -0
  1048. psychopy/app/viewer/__init__.py +0 -0
  1049. psychopy/clock.py +612 -0
  1050. psychopy/colors.py +1050 -0
  1051. psychopy/compatibility.py +95 -0
  1052. psychopy/constants.py +87 -0
  1053. psychopy/contrib/__init__.py +0 -0
  1054. psychopy/contrib/configobj/LICENSE +39 -0
  1055. psychopy/contrib/configobj/__init__.py +2453 -0
  1056. psychopy/contrib/configobj/_version.py +2 -0
  1057. psychopy/contrib/configobj/validate.py +1458 -0
  1058. psychopy/contrib/lazy_import.py +402 -0
  1059. psychopy/contrib/mseq.py +273 -0
  1060. psychopy/contrib/mseqSearch.py +183 -0
  1061. psychopy/contrib/psi.py +100 -0
  1062. psychopy/contrib/quest.py +484 -0
  1063. psychopy/contrib/tesselate.py +188 -0
  1064. psychopy/core.py +167 -0
  1065. psychopy/data/__init__.py +44 -0
  1066. psychopy/data/base.py +566 -0
  1067. psychopy/data/counterbalance.py +210 -0
  1068. psychopy/data/experiment.py +708 -0
  1069. psychopy/data/fit.py +248 -0
  1070. psychopy/data/shelf.py +237 -0
  1071. psychopy/data/staircase.py +2247 -0
  1072. psychopy/data/trial.py +1978 -0
  1073. psychopy/data/utils.py +783 -0
  1074. psychopy/demos/__init__.py +0 -0
  1075. psychopy/demos/builder/Design Templates/branchedExperiment/README.md +5 -0
  1076. psychopy/demos/builder/Design Templates/branchedExperiment/branchedExperiment.psyexp +239 -0
  1077. psychopy/demos/builder/Design Templates/branchedExperiment/trialTypes.xlsx +0 -0
  1078. psychopy/demos/builder/Design Templates/psychophysicsStaircase/README.md +20 -0
  1079. psychopy/demos/builder/Design Templates/psychophysicsStaircase/psychophysicsStaircase.psyexp +264 -0
  1080. psychopy/demos/builder/Design Templates/psychophysicsStairsInterleaved/README.md +14 -0
  1081. psychopy/demos/builder/Design Templates/psychophysicsStairsInterleaved/psychophysicsStaircaseInterleaved.psyexp +201 -0
  1082. psychopy/demos/builder/Design Templates/psychophysicsStairsInterleaved/stairDefinitions.xlsx +0 -0
  1083. psychopy/demos/builder/Design Templates/randomisedBlocks/README.md +18 -0
  1084. psychopy/demos/builder/Design Templates/randomisedBlocks/chooseBlock.xlsx +0 -0
  1085. psychopy/demos/builder/Design Templates/randomisedBlocks/facesBlock.xlsx +0 -0
  1086. psychopy/demos/builder/Design Templates/randomisedBlocks/housesBlock.xlsx +0 -0
  1087. psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks.psyexp +131 -0
  1088. psychopy/demos/builder/Design Templates/randomisedBlocks/stims/face01.jpg +0 -0
  1089. psychopy/demos/builder/Design Templates/randomisedBlocks/stims/face02.jpg +0 -0
  1090. psychopy/demos/builder/Design Templates/randomisedBlocks/stims/face03.jpg +0 -0
  1091. psychopy/demos/builder/Design Templates/randomisedBlocks/stims/house01.jpg +0 -0
  1092. psychopy/demos/builder/Design Templates/randomisedBlocks/stims/house02.jpg +0 -0
  1093. psychopy/demos/builder/Design Templates/randomisedBlocks/stims/house03.jpg +0 -0
  1094. psychopy/demos/builder/Experiments/BART/README.md +30 -0
  1095. psychopy/demos/builder/Experiments/BART/assets/background.png +0 -0
  1096. psychopy/demos/builder/Experiments/BART/assets/bang.mp3 +0 -0
  1097. psychopy/demos/builder/Experiments/BART/assets/bang.wav +0 -0
  1098. psychopy/demos/builder/Experiments/BART/assets/blueBalloon.png +0 -0
  1099. psychopy/demos/builder/Experiments/BART/assets/greenBalloon.png +0 -0
  1100. psychopy/demos/builder/Experiments/BART/assets/redBalloon.png +0 -0
  1101. psychopy/demos/builder/Experiments/BART/bart.psyexp +931 -0
  1102. psychopy/demos/builder/Experiments/BART/spreadsheets/conditions.xlsx +0 -0
  1103. psychopy/demos/builder/Experiments/BigFiveInventory/BFI.psyexp +193 -0
  1104. psychopy/demos/builder/Experiments/BigFiveInventory/README.md +23 -0
  1105. psychopy/demos/builder/Experiments/BigFiveInventory/TIPI.xlsx +0 -0
  1106. psychopy/demos/builder/Experiments/BigFiveInventory/bigFiveItems.xlsx +0 -0
  1107. psychopy/demos/builder/Experiments/BigFiveInventory/demographics.xlsx +0 -0
  1108. psychopy/demos/builder/Experiments/BigFiveInventory/mini_IPIP.xlsx +0 -0
  1109. psychopy/demos/builder/Experiments/dragAndDrop/README.md +40 -0
  1110. psychopy/demos/builder/Experiments/dragAndDrop/archived_conditions.xlsx +0 -0
  1111. psychopy/demos/builder/Experiments/dragAndDrop/drag_and_drop.psyexp +1221 -0
  1112. psychopy/demos/builder/Experiments/dragAndDrop/draw grid stim.py +61 -0
  1113. psychopy/demos/builder/Experiments/dragAndDrop/shapeMaker.psyexp +91 -0
  1114. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_1.png +0 -0
  1115. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_10.png +0 -0
  1116. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_2.png +0 -0
  1117. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_3.png +0 -0
  1118. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_4.png +0 -0
  1119. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_5.png +0 -0
  1120. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_6.png +0 -0
  1121. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_7.png +0 -0
  1122. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_8.png +0 -0
  1123. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_9.png +0 -0
  1124. psychopy/demos/builder/Experiments/dragAndDrop/updated_conditions.xlsx +0 -0
  1125. psychopy/demos/builder/Experiments/goNoGo/conditions.xlsx +0 -0
  1126. psychopy/demos/builder/Experiments/goNoGo/gng.psyexp +449 -0
  1127. psychopy/demos/builder/Experiments/goNoGo/go.png +0 -0
  1128. psychopy/demos/builder/Experiments/goNoGo/nogo.png +0 -0
  1129. psychopy/demos/builder/Experiments/goNoGo/readme.md +14 -0
  1130. psychopy/demos/builder/Experiments/mentalRotation/F.png +0 -0
  1131. psychopy/demos/builder/Experiments/mentalRotation/FR.png +0 -0
  1132. psychopy/demos/builder/Experiments/mentalRotation/MentalRot.csv +33 -0
  1133. psychopy/demos/builder/Experiments/mentalRotation/MentalRotation.psyexp +605 -0
  1134. psychopy/demos/builder/Experiments/mentalRotation/README.md +23 -0
  1135. psychopy/demos/builder/Experiments/navon/NavonTask.psyexp +478 -0
  1136. psychopy/demos/builder/Experiments/navon/README.md +26 -0
  1137. psychopy/demos/builder/Experiments/navon/bigHsmallH.png +0 -0
  1138. psychopy/demos/builder/Experiments/navon/bigHsmallS.png +0 -0
  1139. psychopy/demos/builder/Experiments/navon/bigSsmallH.png +0 -0
  1140. psychopy/demos/builder/Experiments/navon/bigSsmallS.png +0 -0
  1141. psychopy/demos/builder/Experiments/navon/mask.png +0 -0
  1142. psychopy/demos/builder/Experiments/navon/stimuli.pptx +0 -0
  1143. psychopy/demos/builder/Experiments/navon/trialTypes.xlsx +0 -0
  1144. psychopy/demos/builder/Experiments/sternberg/README.md +14 -0
  1145. psychopy/demos/builder/Experiments/sternberg/mainTrials.xlsx +0 -0
  1146. psychopy/demos/builder/Experiments/sternberg/pracTrials.xlsx +0 -0
  1147. psychopy/demos/builder/Experiments/sternberg/sternberg.psyexp +611 -0
  1148. psychopy/demos/builder/Experiments/stroop/README.md +15 -0
  1149. psychopy/demos/builder/Experiments/stroop/stroop.psyexp +225 -0
  1150. psychopy/demos/builder/Experiments/stroop/trialTypes.csv +7 -0
  1151. psychopy/demos/builder/Experiments/stroopExtended/README.md +14 -0
  1152. psychopy/demos/builder/Experiments/stroopExtended/stroop.psyexp +243 -0
  1153. psychopy/demos/builder/Experiments/stroopExtended/stroopReverse.psyexp +243 -0
  1154. psychopy/demos/builder/Experiments/stroopExtended/trialTypes.xlsx +0 -0
  1155. psychopy/demos/builder/Experiments/stroopExtended/trialTypesReverse.xlsx +0 -0
  1156. psychopy/demos/builder/Experiments/stroopVoice/README.md +27 -0
  1157. psychopy/demos/builder/Experiments/stroopVoice/conditions.xlsx +0 -0
  1158. psychopy/demos/builder/Experiments/stroopVoice/stroopVoice.psyexp +366 -0
  1159. psychopy/demos/builder/Feature Demos/counterbalance/counterbalance.psyexp +298 -0
  1160. psychopy/demos/builder/Feature Demos/gratings/gratings.psyexp +341 -0
  1161. psychopy/demos/builder/Feature Demos/gratings/readme.md +8 -0
  1162. psychopy/demos/builder/Feature Demos/noise/face.jpg +0 -0
  1163. psychopy/demos/builder/Feature Demos/noise/noise.psyexp +424 -0
  1164. psychopy/demos/builder/Feature Demos/noise/readme.md +3 -0
  1165. psychopy/demos/builder/Feature Demos/panorama/panImg.jpg +0 -0
  1166. psychopy/demos/builder/Feature Demos/panorama/panorama.psyexp +142 -0
  1167. psychopy/demos/builder/Feature Demos/progress/progressBar.psyexp +423 -0
  1168. psychopy/demos/builder/Feature Demos/progress/readme.md +1 -0
  1169. psychopy/demos/builder/Feature Demos/sliders/README.md +8 -0
  1170. psychopy/demos/builder/Feature Demos/sliders/fruitConditions.xlsx +0 -0
  1171. psychopy/demos/builder/Feature Demos/sliders/sliders.psyexp +938 -0
  1172. psychopy/demos/builder/Hardware/EEG_parallel_component/EEG_triggers_parallel_comp.psyexp +621 -0
  1173. psychopy/demos/builder/Hardware/EEG_serial_code/EEG_triggers_serial_code.psyexp +404 -0
  1174. psychopy/demos/builder/Hardware/EEG_serial_component/EEG_triggers_serial_comp.psyexp +641 -0
  1175. psychopy/demos/builder/Hardware/EGI_netstation/README.md +17 -0
  1176. psychopy/demos/builder/Hardware/EGI_netstation/stroop.psyexp +254 -0
  1177. psychopy/demos/builder/Hardware/EGI_netstation/trialTypesEEG.csv +7 -0
  1178. psychopy/demos/builder/Hardware/Eyetracking_visual_search/readme.md +19 -0
  1179. psychopy/demos/builder/Hardware/Eyetracking_visual_search/trials_params.xlsx +0 -0
  1180. psychopy/demos/builder/Hardware/Eyetracking_visual_search/visualSearch.psyexp +691 -0
  1181. psychopy/demos/builder/Hardware/camera/camera.psyexp +263 -0
  1182. psychopy/demos/builder/Hardware/camera/readme.md +6 -0
  1183. psychopy/demos/builder/Hardware/eyetracking/eyetracking.psyexp +354 -0
  1184. psychopy/demos/builder/Hardware/eyetracking/readme.md +7 -0
  1185. psychopy/demos/builder/Hardware/eyetracking_custom_cal/Bullseye_grey.mov +0 -0
  1186. psychopy/demos/builder/Hardware/eyetracking_custom_cal/eyetracking_custom_cal.psyexp +349 -0
  1187. psychopy/demos/builder/Hardware/eyetracking_custom_cal/readme.md +7 -0
  1188. psychopy/demos/builder/Hardware/fMRI/fMRI_demo.psyexp +202 -0
  1189. psychopy/demos/builder/Hardware/fMRI/readme.md +7 -0
  1190. psychopy/demos/builder/Hardware/lab_streaming_layer/lsl_triggers_demo.psyexp +349 -0
  1191. psychopy/demos/builder/Hardware/lab_streaming_layer_legacy/lsl_triggers_demo_legacy.psyexp +304 -0
  1192. psychopy/demos/builder/Hardware/microphone/microphone.psyexp +451 -0
  1193. psychopy/demos/builder/Hardware/microphone/phrases.xlsx +0 -0
  1194. psychopy/demos/builder/Hardware/microphone/readme.md +9 -0
  1195. psychopy/demos/builder/Hardware/pump/README.md +19 -0
  1196. psychopy/demos/builder/Hardware/pump/pump.psyexp +382 -0
  1197. psychopy/demos/builder/Helper Tools/achorVSalignment/anchorAlignment.psyexp +288 -0
  1198. psychopy/demos/builder/Helper Tools/achorVSalignment/readme.md +5 -0
  1199. psychopy/demos/builder/Helper Tools/clockFace/README.md +3 -0
  1200. psychopy/demos/builder/Helper Tools/clockFace/clockFace.psyexp +160 -0
  1201. psychopy/demos/builder/Helper Tools/colors/README.md +5 -0
  1202. psychopy/demos/builder/Helper Tools/colors/colors.psyexp +300 -0
  1203. psychopy/demos/builder/Helper Tools/drawPolygon/README.md +5 -0
  1204. psychopy/demos/builder/Helper Tools/drawPolygon/drawPolygon.psyexp +591 -0
  1205. psychopy/demos/builder/Helper Tools/keyNameFinder/README.md +14 -0
  1206. psychopy/demos/builder/Helper Tools/keyNameFinder/keyNameFinder.psyexp +169 -0
  1207. psychopy/demos/builder/Helper Tools/spatialUnits/README.md +6 -0
  1208. psychopy/demos/builder/Helper Tools/spatialUnits/unitDemo.psyexp +157 -0
  1209. psychopy/demos/builder/README.txt +43 -0
  1210. psychopy/demos/builder/__init__.py +0 -0
  1211. psychopy/demos/coder/__init__.py +0 -0
  1212. psychopy/demos/coder/basic/hello_world.py +37 -0
  1213. psychopy/demos/coder/csvFromPsydat.py +29 -0
  1214. psychopy/demos/coder/experiment control/JND_staircase_analysis.py +85 -0
  1215. psychopy/demos/coder/experiment control/JND_staircase_exp.py +110 -0
  1216. psychopy/demos/coder/experiment control/TrialHandler.py +64 -0
  1217. psychopy/demos/coder/experiment control/TrialHandler2.py +42 -0
  1218. psychopy/demos/coder/experiment control/__init__.py +0 -0
  1219. psychopy/demos/coder/experiment control/autoDraw_autoLog.py +50 -0
  1220. psychopy/demos/coder/experiment control/experimentHandler.py +57 -0
  1221. psychopy/demos/coder/experiment control/fMRI_launchScan.py +74 -0
  1222. psychopy/demos/coder/experiment control/gammaMotionAnalysis.py +68 -0
  1223. psychopy/demos/coder/experiment control/gammaMotionNull.py +169 -0
  1224. psychopy/demos/coder/experiment control/logFiles.py +55 -0
  1225. psychopy/demos/coder/experiment control/piloting.py +65 -0
  1226. psychopy/demos/coder/experiment control/runtimeInfo.py +79 -0
  1227. psychopy/demos/coder/hardware/CRS_BitsBox.py +75 -0
  1228. psychopy/demos/coder/hardware/CRS_BitsPlusPlus.py +73 -0
  1229. psychopy/demos/coder/hardware/RiftHeadTrackingExample.py +95 -0
  1230. psychopy/demos/coder/hardware/RiftMinimal.py +44 -0
  1231. psychopy/demos/coder/hardware/VSHD_Distortion.py +49 -0
  1232. psychopy/demos/coder/hardware/__init__.py +0 -0
  1233. psychopy/demos/coder/hardware/camera.py +90 -0
  1234. psychopy/demos/coder/hardware/cedrusRB730.py +38 -0
  1235. psychopy/demos/coder/hardware/crsBitsAdvancedDemo.py +780 -0
  1236. psychopy/demos/coder/hardware/egi_netstation.py +45 -0
  1237. psychopy/demos/coder/hardware/ioLab_bbox.py +62 -0
  1238. psychopy/demos/coder/hardware/labjack_u3.py +61 -0
  1239. psychopy/demos/coder/hardware/monitorDemo.py +28 -0
  1240. psychopy/demos/coder/hardware/parallelPortOutput.py +49 -0
  1241. psychopy/demos/coder/hardware/qmixPump.py +79 -0
  1242. psychopy/demos/coder/hardware/testSoundLatency.py +127 -0
  1243. psychopy/demos/coder/input/GUI.py +52 -0
  1244. psychopy/demos/coder/input/__init__.py +0 -0
  1245. psychopy/demos/coder/input/customMouse.py +51 -0
  1246. psychopy/demos/coder/input/joystick_universal.py +84 -0
  1247. psychopy/demos/coder/input/keyNameFinder.py +39 -0
  1248. psychopy/demos/coder/input/mic.png +0 -0
  1249. psychopy/demos/coder/input/mouse.py +66 -0
  1250. psychopy/demos/coder/iohub/delaytest.py +231 -0
  1251. psychopy/demos/coder/iohub/eyetracking/gcCursor/images/canal.jpg +0 -0
  1252. psychopy/demos/coder/iohub/eyetracking/gcCursor/images/fall.jpg +0 -0
  1253. psychopy/demos/coder/iohub/eyetracking/gcCursor/images/lake.jpg +0 -0
  1254. psychopy/demos/coder/iohub/eyetracking/gcCursor/images/party.jpg +0 -0
  1255. psychopy/demos/coder/iohub/eyetracking/gcCursor/images/swimming.jpg +0 -0
  1256. psychopy/demos/coder/iohub/eyetracking/gcCursor/readTrialEventsByConditionVariables.py +67 -0
  1257. psychopy/demos/coder/iohub/eyetracking/gcCursor/readTrialEventsByMessages.py +34 -0
  1258. psychopy/demos/coder/iohub/eyetracking/gcCursor/run.py +323 -0
  1259. psychopy/demos/coder/iohub/eyetracking/gcCursor/trial_conditions.xlsx +0 -0
  1260. psychopy/demos/coder/iohub/eyetracking/simple.py +147 -0
  1261. psychopy/demos/coder/iohub/eyetracking/validation.py +251 -0
  1262. psychopy/demos/coder/iohub/iodatastore/saveEventReport.py +56 -0
  1263. psychopy/demos/coder/iohub/keyboard.py +189 -0
  1264. psychopy/demos/coder/iohub/keyboardreactiontime.py +88 -0
  1265. psychopy/demos/coder/iohub/launchHub.py +160 -0
  1266. psychopy/demos/coder/iohub/mouse.py +112 -0
  1267. psychopy/demos/coder/iohub/mouse_multi_window.py +124 -0
  1268. psychopy/demos/coder/iohub/serial/_parseserial.py +53 -0
  1269. psychopy/demos/coder/iohub/serial/customparser.py +84 -0
  1270. psychopy/demos/coder/iohub/serial/pstbox.py +166 -0
  1271. psychopy/demos/coder/iohub/wintab/_wintabgraphics.py +281 -0
  1272. psychopy/demos/coder/iohub/wintab/pen_demo.py +260 -0
  1273. psychopy/demos/coder/misc/encrypt_data.py +48 -0
  1274. psychopy/demos/coder/misc/makeMovie.py +28 -0
  1275. psychopy/demos/coder/misc/rigidBodyTransform.py +76 -0
  1276. psychopy/demos/coder/stimuli/Campaign.ttf +0 -0
  1277. psychopy/demos/coder/stimuli/MovieStim.py +65 -0
  1278. psychopy/demos/coder/stimuli/__init__.py +0 -0
  1279. psychopy/demos/coder/stimuli/aperture.py +37 -0
  1280. psychopy/demos/coder/stimuli/beach.jpg +0 -0
  1281. psychopy/demos/coder/stimuli/bufferImageStim.py +78 -0
  1282. psychopy/demos/coder/stimuli/clockface.py +43 -0
  1283. psychopy/demos/coder/stimuli/colorPalette.py +134 -0
  1284. psychopy/demos/coder/stimuli/compare_text_timing.py +193 -0
  1285. psychopy/demos/coder/stimuli/counterphase.py +43 -0
  1286. psychopy/demos/coder/stimuli/customTextures.py +57 -0
  1287. psychopy/demos/coder/stimuli/dot_gabors.py +35 -0
  1288. psychopy/demos/coder/stimuli/dots.py +35 -0
  1289. psychopy/demos/coder/stimuli/elementArrays.py +92 -0
  1290. psychopy/demos/coder/stimuli/embeddedOpenGL.py +35 -0
  1291. psychopy/demos/coder/stimuli/face.jpg +0 -0
  1292. psychopy/demos/coder/stimuli/face_jpg.py +48 -0
  1293. psychopy/demos/coder/stimuli/gabor.py +30 -0
  1294. psychopy/demos/coder/stimuli/imagesAndPatches.py +51 -0
  1295. psychopy/demos/coder/stimuli/jwpIntro.mp4 +0 -0
  1296. psychopy/demos/coder/stimuli/kanizsa.py +41 -0
  1297. psychopy/demos/coder/stimuli/maskReveal.py +63 -0
  1298. psychopy/demos/coder/stimuli/plaid.py +43 -0
  1299. psychopy/demos/coder/stimuli/ratingScale.py +183 -0
  1300. psychopy/demos/coder/stimuli/rotatingFlashingWedge.py +37 -0
  1301. psychopy/demos/coder/stimuli/screensAndWindows.py +58 -0
  1302. psychopy/demos/coder/stimuli/secondOrderGratings.py +66 -0
  1303. psychopy/demos/coder/stimuli/shapeContains.py +50 -0
  1304. psychopy/demos/coder/stimuli/shapes.py +63 -0
  1305. psychopy/demos/coder/stimuli/soundStimuli.py +49 -0
  1306. psychopy/demos/coder/stimuli/starField.py +48 -0
  1307. psychopy/demos/coder/stimuli/stim3d.py +107 -0
  1308. psychopy/demos/coder/stimuli/textBoxStim/textbox_glyph_placement.py +93 -0
  1309. psychopy/demos/coder/stimuli/textBoxStim/textbox_simple.py +71 -0
  1310. psychopy/demos/coder/stimuli/textStimuli.py +106 -0
  1311. psychopy/demos/coder/stimuli/textbox_editable.py +64 -0
  1312. psychopy/demos/coder/stimuli/variousVisualStims.py +47 -0
  1313. psychopy/demos/coder/stimuli/visual_noise.py +31 -0
  1314. psychopy/demos/coder/sysInfo.py +56 -0
  1315. psychopy/demos/coder/timing/__init__.py +0 -0
  1316. psychopy/demos/coder/timing/callOnFlip.py +39 -0
  1317. psychopy/demos/coder/timing/clocksAndTimers.py +46 -0
  1318. psychopy/demos/coder/timing/millikeyKeyboardTimingTest.py +323 -0
  1319. psychopy/demos/coder/timing/timeByFrames.py +74 -0
  1320. psychopy/demos/coder/timing/timeByFramesEx.py +107 -0
  1321. psychopy/demos/coder/understanding psychopy/colors.py +70 -0
  1322. psychopy/demos/coder/understanding psychopy/fontLayout.py +69 -0
  1323. psychopy/demos/demo_migration.py +214 -0
  1324. psychopy/demos/modernizeDemos.py +16 -0
  1325. psychopy/demos/test_demo_migration.py +155 -0
  1326. psychopy/devices/__init__.py +8 -0
  1327. psychopy/event.py +1333 -0
  1328. psychopy/exceptions.py +59 -0
  1329. psychopy/experiment/__init__.py +51 -0
  1330. psychopy/experiment/_experiment.py +1392 -0
  1331. psychopy/experiment/blankTemplate.xltx +0 -0
  1332. psychopy/experiment/components/__init__.py +411 -0
  1333. psychopy/experiment/components/_base.py +1351 -0
  1334. psychopy/experiment/components/aperture/__init__.py +149 -0
  1335. psychopy/experiment/components/aperture/classic/aperture.png +0 -0
  1336. psychopy/experiment/components/aperture/classic/aperture@2x.png +0 -0
  1337. psychopy/experiment/components/aperture/dark/aperture.png +0 -0
  1338. psychopy/experiment/components/aperture/dark/aperture@2x.png +0 -0
  1339. psychopy/experiment/components/aperture/light/aperture.png +0 -0
  1340. psychopy/experiment/components/aperture/light/aperture@2x.png +0 -0
  1341. psychopy/experiment/components/brush/__init__.py +163 -0
  1342. psychopy/experiment/components/brush/classic/brush.png +0 -0
  1343. psychopy/experiment/components/brush/classic/brush@2x.png +0 -0
  1344. psychopy/experiment/components/brush/dark/brush.png +0 -0
  1345. psychopy/experiment/components/brush/dark/brush@2x.png +0 -0
  1346. psychopy/experiment/components/brush/light/brush.png +0 -0
  1347. psychopy/experiment/components/brush/light/brush@2x.png +0 -0
  1348. psychopy/experiment/components/button/__init__.py +489 -0
  1349. psychopy/experiment/components/button/classic/button.png +0 -0
  1350. psychopy/experiment/components/button/classic/button@2x.png +0 -0
  1351. psychopy/experiment/components/button/dark/button.png +0 -0
  1352. psychopy/experiment/components/button/dark/button@2x.png +0 -0
  1353. psychopy/experiment/components/button/light/button.png +0 -0
  1354. psychopy/experiment/components/button/light/button@2x.png +0 -0
  1355. psychopy/experiment/components/buttonBox/__init__.py +316 -0
  1356. psychopy/experiment/components/buttonBox/classic/buttonBox.png +0 -0
  1357. psychopy/experiment/components/buttonBox/classic/buttonBox@2x.png +0 -0
  1358. psychopy/experiment/components/buttonBox/dark/buttonBox.png +0 -0
  1359. psychopy/experiment/components/buttonBox/dark/buttonBox@2x.png +0 -0
  1360. psychopy/experiment/components/buttonBox/light/buttonBox.png +0 -0
  1361. psychopy/experiment/components/buttonBox/light/buttonBox@2x.png +0 -0
  1362. psychopy/experiment/components/camera/__init__.py +591 -0
  1363. psychopy/experiment/components/camera/classic/webcam.png +0 -0
  1364. psychopy/experiment/components/camera/classic/webcam@2x.png +0 -0
  1365. psychopy/experiment/components/camera/dark/webcam.png +0 -0
  1366. psychopy/experiment/components/camera/dark/webcam@2x.png +0 -0
  1367. psychopy/experiment/components/camera/light/webcam.png +0 -0
  1368. psychopy/experiment/components/camera/light/webcam@2x.png +0 -0
  1369. psychopy/experiment/components/code/__init__.py +266 -0
  1370. psychopy/experiment/components/code/classic/code.png +0 -0
  1371. psychopy/experiment/components/code/classic/code@2x.png +0 -0
  1372. psychopy/experiment/components/code/dark/code.png +0 -0
  1373. psychopy/experiment/components/code/dark/code@2x.png +0 -0
  1374. psychopy/experiment/components/code/light/code.png +0 -0
  1375. psychopy/experiment/components/code/light/code@2x.png +0 -0
  1376. psychopy/experiment/components/dots/__init__.py +199 -0
  1377. psychopy/experiment/components/dots/classic/dots.png +0 -0
  1378. psychopy/experiment/components/dots/classic/dots@2x.png +0 -0
  1379. psychopy/experiment/components/dots/dark/dots.png +0 -0
  1380. psychopy/experiment/components/dots/dark/dots@2x.png +0 -0
  1381. psychopy/experiment/components/dots/dots.xcf +0 -0
  1382. psychopy/experiment/components/dots/light/dots.png +0 -0
  1383. psychopy/experiment/components/dots/light/dots@2x.png +0 -0
  1384. psychopy/experiment/components/eyetracker_record/__init__.py +128 -0
  1385. psychopy/experiment/components/eyetracker_record/classic/eyetracker_record.png +0 -0
  1386. psychopy/experiment/components/eyetracker_record/classic/eyetracker_record@2x.png +0 -0
  1387. psychopy/experiment/components/eyetracker_record/dark/eyetracker_record.png +0 -0
  1388. psychopy/experiment/components/eyetracker_record/dark/eyetracker_record@2x.png +0 -0
  1389. psychopy/experiment/components/eyetracker_record/light/eyetracker_record.png +0 -0
  1390. psychopy/experiment/components/eyetracker_record/light/eyetracker_record@2x.png +0 -0
  1391. psychopy/experiment/components/form/__init__.py +223 -0
  1392. psychopy/experiment/components/form/classic/form.png +0 -0
  1393. psychopy/experiment/components/form/classic/form@2x.png +0 -0
  1394. psychopy/experiment/components/form/dark/form.png +0 -0
  1395. psychopy/experiment/components/form/dark/form@2x.png +0 -0
  1396. psychopy/experiment/components/form/formItems.xltx +0 -0
  1397. psychopy/experiment/components/form/light/form.png +0 -0
  1398. psychopy/experiment/components/form/light/form@2x.png +0 -0
  1399. psychopy/experiment/components/grating/__init__.py +192 -0
  1400. psychopy/experiment/components/grating/classic/grating.png +0 -0
  1401. psychopy/experiment/components/grating/classic/grating@2x.png +0 -0
  1402. psychopy/experiment/components/grating/dark/grating.png +0 -0
  1403. psychopy/experiment/components/grating/dark/grating@2x.png +0 -0
  1404. psychopy/experiment/components/grating/light/grating.png +0 -0
  1405. psychopy/experiment/components/grating/light/grating@2x.png +0 -0
  1406. psychopy/experiment/components/image/__init__.py +184 -0
  1407. psychopy/experiment/components/image/classic/image.png +0 -0
  1408. psychopy/experiment/components/image/classic/image@2x.png +0 -0
  1409. psychopy/experiment/components/image/dark/image.png +0 -0
  1410. psychopy/experiment/components/image/dark/image@2x.png +0 -0
  1411. psychopy/experiment/components/image/light/image.png +0 -0
  1412. psychopy/experiment/components/image/light/image@2x.png +0 -0
  1413. psychopy/experiment/components/joyButtons/__init__.py +453 -0
  1414. psychopy/experiment/components/joyButtons/classic/joyButtons.png +0 -0
  1415. psychopy/experiment/components/joyButtons/classic/joybuttons@2x.png +0 -0
  1416. psychopy/experiment/components/joyButtons/dark/joyButtons.png +0 -0
  1417. psychopy/experiment/components/joyButtons/dark/joyButtons@2x.png +0 -0
  1418. psychopy/experiment/components/joyButtons/light/joyButtons.png +0 -0
  1419. psychopy/experiment/components/joyButtons/light/joyButtons@2x.png +0 -0
  1420. psychopy/experiment/components/joyButtons/virtualJoyButtons.py +34 -0
  1421. psychopy/experiment/components/joystick/__init__.py +572 -0
  1422. psychopy/experiment/components/joystick/classic/joystick.png +0 -0
  1423. psychopy/experiment/components/joystick/classic/joystick@2x.png +0 -0
  1424. psychopy/experiment/components/joystick/dark/joystick.png +0 -0
  1425. psychopy/experiment/components/joystick/dark/joystick@2x.png +0 -0
  1426. psychopy/experiment/components/joystick/light/joystick.png +0 -0
  1427. psychopy/experiment/components/joystick/light/joystick@2x.png +0 -0
  1428. psychopy/experiment/components/joystick/virtualJoystick.py +40 -0
  1429. psychopy/experiment/components/keyboard/__init__.py +587 -0
  1430. psychopy/experiment/components/keyboard/classic/keyboard.png +0 -0
  1431. psychopy/experiment/components/keyboard/classic/keyboard@2x.png +0 -0
  1432. psychopy/experiment/components/keyboard/dark/keyboard.png +0 -0
  1433. psychopy/experiment/components/keyboard/dark/keyboard@2x.png +0 -0
  1434. psychopy/experiment/components/keyboard/light/keyboard.png +0 -0
  1435. psychopy/experiment/components/keyboard/light/keyboard@2x.png +0 -0
  1436. psychopy/experiment/components/keyboard.xcf +0 -0
  1437. psychopy/experiment/components/microphone/__init__.py +664 -0
  1438. psychopy/experiment/components/microphone/classic/microphone.png +0 -0
  1439. psychopy/experiment/components/microphone/classic/microphone@2x.png +0 -0
  1440. psychopy/experiment/components/microphone/dark/microphone.png +0 -0
  1441. psychopy/experiment/components/microphone/dark/microphone@2x.png +0 -0
  1442. psychopy/experiment/components/microphone/light/microphone.png +0 -0
  1443. psychopy/experiment/components/microphone/light/microphone@2x.png +0 -0
  1444. psychopy/experiment/components/mouse/__init__.py +747 -0
  1445. psychopy/experiment/components/mouse/classic/mouse.png +0 -0
  1446. psychopy/experiment/components/mouse/classic/mouse@2x.png +0 -0
  1447. psychopy/experiment/components/mouse/dark/mouse.png +0 -0
  1448. psychopy/experiment/components/mouse/dark/mouse@2x.png +0 -0
  1449. psychopy/experiment/components/mouse/light/mouse.png +0 -0
  1450. psychopy/experiment/components/mouse/light/mouse@2x.png +0 -0
  1451. psychopy/experiment/components/movie/__init__.py +367 -0
  1452. psychopy/experiment/components/movie/classic/movie.png +0 -0
  1453. psychopy/experiment/components/movie/classic/movie@2x.png +0 -0
  1454. psychopy/experiment/components/movie/dark/movie.png +0 -0
  1455. psychopy/experiment/components/movie/dark/movie@2x.png +0 -0
  1456. psychopy/experiment/components/movie/light/movie.png +0 -0
  1457. psychopy/experiment/components/movie/light/movie@2x.png +0 -0
  1458. psychopy/experiment/components/panorama/__init__.py +456 -0
  1459. psychopy/experiment/components/panorama/classic/panorama.png +0 -0
  1460. psychopy/experiment/components/panorama/classic/panorama@2x.png +0 -0
  1461. psychopy/experiment/components/panorama/dark/panorama.png +0 -0
  1462. psychopy/experiment/components/panorama/dark/panorama@2x.png +0 -0
  1463. psychopy/experiment/components/panorama/light/panorama.png +0 -0
  1464. psychopy/experiment/components/panorama/light/panorama@2x.png +0 -0
  1465. psychopy/experiment/components/parallelOut/__init__.py +178 -0
  1466. psychopy/experiment/components/parallelOut/classic/parallel.png +0 -0
  1467. psychopy/experiment/components/parallelOut/classic/parallel@2x.png +0 -0
  1468. psychopy/experiment/components/parallelOut/dark/parallel.png +0 -0
  1469. psychopy/experiment/components/parallelOut/dark/parallel@2x.png +0 -0
  1470. psychopy/experiment/components/parallelOut/light/parallel.png +0 -0
  1471. psychopy/experiment/components/parallelOut/light/parallel@2x.png +0 -0
  1472. psychopy/experiment/components/patch/__init__.py +121 -0
  1473. psychopy/experiment/components/patch/classic/patch.png +0 -0
  1474. psychopy/experiment/components/patch/dark/patch.png +0 -0
  1475. psychopy/experiment/components/patch/dark/patch@2x.png +0 -0
  1476. psychopy/experiment/components/patch/light/patch.png +0 -0
  1477. psychopy/experiment/components/patch/light/patch@2x.png +0 -0
  1478. psychopy/experiment/components/polygon/__init__.py +303 -0
  1479. psychopy/experiment/components/polygon/classic/polygon.png +0 -0
  1480. psychopy/experiment/components/polygon/classic/polygon@2x.png +0 -0
  1481. psychopy/experiment/components/polygon/dark/polygon.png +0 -0
  1482. psychopy/experiment/components/polygon/dark/polygon@2x.png +0 -0
  1483. psychopy/experiment/components/polygon/light/polygon.png +0 -0
  1484. psychopy/experiment/components/polygon/light/polygon@2x.png +0 -0
  1485. psychopy/experiment/components/progress/__init__.py +130 -0
  1486. psychopy/experiment/components/progress/classic/progress.png +0 -0
  1487. psychopy/experiment/components/progress/classic/progress@2x.png +0 -0
  1488. psychopy/experiment/components/progress/dark/progress.png +0 -0
  1489. psychopy/experiment/components/progress/dark/progress@2x.png +0 -0
  1490. psychopy/experiment/components/progress/light/progress.png +0 -0
  1491. psychopy/experiment/components/progress/light/progress@2x.png +0 -0
  1492. psychopy/experiment/components/ratingScale/__init__.py +337 -0
  1493. psychopy/experiment/components/ratingScale/classic/ratingscale.png +0 -0
  1494. psychopy/experiment/components/ratingScale/classic/ratingscale@2x.png +0 -0
  1495. psychopy/experiment/components/ratingScale/dark/ratingScale@2x.png +0 -0
  1496. psychopy/experiment/components/ratingScale/dark/ratingscale.png +0 -0
  1497. psychopy/experiment/components/ratingScale/light/ratingScale@2x.png +0 -0
  1498. psychopy/experiment/components/ratingScale/light/ratingscale.png +0 -0
  1499. psychopy/experiment/components/resourceManager/__init__.py +176 -0
  1500. psychopy/experiment/components/resourceManager/classic/resource_manager.png +0 -0
  1501. psychopy/experiment/components/resourceManager/classic/resource_manager@2x.png +0 -0
  1502. psychopy/experiment/components/resourceManager/dark/resource_manager.png +0 -0
  1503. psychopy/experiment/components/resourceManager/dark/resource_manager@2x.png +0 -0
  1504. psychopy/experiment/components/resourceManager/light/resource_manager.png +0 -0
  1505. psychopy/experiment/components/resourceManager/light/resource_manager@2x.png +0 -0
  1506. psychopy/experiment/components/roi/__init__.py +311 -0
  1507. psychopy/experiment/components/roi/classic/eyetracker_roi.png +0 -0
  1508. psychopy/experiment/components/roi/classic/eyetracker_roi@2x.png +0 -0
  1509. psychopy/experiment/components/roi/dark/eyetracker_roi.png +0 -0
  1510. psychopy/experiment/components/roi/dark/eyetracker_roi@2X.png +0 -0
  1511. psychopy/experiment/components/roi/light/eyetracker_roi.png +0 -0
  1512. psychopy/experiment/components/roi/light/eyetracker_roi@2X.png +0 -0
  1513. psychopy/experiment/components/routineSettings/__init__.py +338 -0
  1514. psychopy/experiment/components/routineSettings/classic/routineSettings.png +0 -0
  1515. psychopy/experiment/components/routineSettings/classic/routineSettings@2x.png +0 -0
  1516. psychopy/experiment/components/routineSettings/dark/routineSettings.png +0 -0
  1517. psychopy/experiment/components/routineSettings/dark/routineSettings@2x.png +0 -0
  1518. psychopy/experiment/components/routineSettings/light/routineSettings.png +0 -0
  1519. psychopy/experiment/components/routineSettings/light/routineSettings@2x.png +0 -0
  1520. psychopy/experiment/components/serialOut/__init__.py +205 -0
  1521. psychopy/experiment/components/serialOut/classic/serial.png +0 -0
  1522. psychopy/experiment/components/serialOut/classic/serial@2x.png +0 -0
  1523. psychopy/experiment/components/serialOut/dark/serial.png +0 -0
  1524. psychopy/experiment/components/serialOut/dark/serial@2x.png +0 -0
  1525. psychopy/experiment/components/serialOut/light/serial.png +0 -0
  1526. psychopy/experiment/components/serialOut/light/serial@2x.png +0 -0
  1527. psychopy/experiment/components/settings/JS_htmlHeader.tmpl +23 -0
  1528. psychopy/experiment/components/settings/JS_setupExp.tmpl +28 -0
  1529. psychopy/experiment/components/settings/__init__.py +2155 -0
  1530. psychopy/experiment/components/settings/classic/settings.png +0 -0
  1531. psychopy/experiment/components/settings/classic/settings@2x.png +0 -0
  1532. psychopy/experiment/components/settings/dark/settings.png +0 -0
  1533. psychopy/experiment/components/settings/dark/settings@2x.png +0 -0
  1534. psychopy/experiment/components/settings/light/settings.png +0 -0
  1535. psychopy/experiment/components/settings/light/settings@2x.png +0 -0
  1536. psychopy/experiment/components/slider/__init__.py +410 -0
  1537. psychopy/experiment/components/slider/classic/slider.png +0 -0
  1538. psychopy/experiment/components/slider/classic/slider@2x.png +0 -0
  1539. psychopy/experiment/components/slider/dark/slider.png +0 -0
  1540. psychopy/experiment/components/slider/dark/slider@2x.png +0 -0
  1541. psychopy/experiment/components/slider/light/slider.png +0 -0
  1542. psychopy/experiment/components/slider/light/slider@2x.png +0 -0
  1543. psychopy/experiment/components/sound/__init__.py +307 -0
  1544. psychopy/experiment/components/sound/classic/sound.png +0 -0
  1545. psychopy/experiment/components/sound/classic/sound@2x.png +0 -0
  1546. psychopy/experiment/components/sound/dark/sound.png +0 -0
  1547. psychopy/experiment/components/sound/dark/sound@2x.png +0 -0
  1548. psychopy/experiment/components/sound/light/sound.png +0 -0
  1549. psychopy/experiment/components/sound/light/sound@2x.png +0 -0
  1550. psychopy/experiment/components/static/__init__.py +267 -0
  1551. psychopy/experiment/components/static/classic/static.png +0 -0
  1552. psychopy/experiment/components/static/classic/static@2x.png +0 -0
  1553. psychopy/experiment/components/static/dark/static.png +0 -0
  1554. psychopy/experiment/components/static/dark/static@2x.png +0 -0
  1555. psychopy/experiment/components/static/light/static.png +0 -0
  1556. psychopy/experiment/components/static/light/static@2x.png +0 -0
  1557. psychopy/experiment/components/text/__init__.py +169 -0
  1558. psychopy/experiment/components/text/classic/text.png +0 -0
  1559. psychopy/experiment/components/text/classic/text@2x.png +0 -0
  1560. psychopy/experiment/components/text/dark/text.png +0 -0
  1561. psychopy/experiment/components/text/dark/text@2x.png +0 -0
  1562. psychopy/experiment/components/text/light/text.png +0 -0
  1563. psychopy/experiment/components/text/light/text@2x.png +0 -0
  1564. psychopy/experiment/components/textbox/__init__.py +330 -0
  1565. psychopy/experiment/components/textbox/classic/textbox.png +0 -0
  1566. psychopy/experiment/components/textbox/classic/textbox@2x.png +0 -0
  1567. psychopy/experiment/components/textbox/dark/textbox.png +0 -0
  1568. psychopy/experiment/components/textbox/dark/textbox@2x.png +0 -0
  1569. psychopy/experiment/components/textbox/light/textbox.png +0 -0
  1570. psychopy/experiment/components/textbox/light/textbox@2x.png +0 -0
  1571. psychopy/experiment/components/unknown/__init__.py +86 -0
  1572. psychopy/experiment/components/unknown/classic/unknown.png +0 -0
  1573. psychopy/experiment/components/unknown/classic/unknown@2x.png +0 -0
  1574. psychopy/experiment/components/unknown/dark/unknown.png +0 -0
  1575. psychopy/experiment/components/unknown/dark/unknown@2x.png +0 -0
  1576. psychopy/experiment/components/unknown/light/unknown.png +0 -0
  1577. psychopy/experiment/components/unknown/light/unknown@2x.png +0 -0
  1578. psychopy/experiment/components/unknownPlugin/__init__.py +84 -0
  1579. psychopy/experiment/components/unknownPlugin/classic/unknownPlugin.png +0 -0
  1580. psychopy/experiment/components/unknownPlugin/classic/unknownPlugin@2x.png +0 -0
  1581. psychopy/experiment/components/unknownPlugin/dark/unknownPlugin.png +0 -0
  1582. psychopy/experiment/components/unknownPlugin/dark/unknownPlugin@2x.png +0 -0
  1583. psychopy/experiment/components/unknownPlugin/light/unknownPlugin.png +0 -0
  1584. psychopy/experiment/components/unknownPlugin/light/unknownPlugin@2x.png +0 -0
  1585. psychopy/experiment/components/utils.py +0 -0
  1586. psychopy/experiment/components/variable/__init__.py +184 -0
  1587. psychopy/experiment/components/variable/classic/variable.png +0 -0
  1588. psychopy/experiment/components/variable/classic/variable@2x.png +0 -0
  1589. psychopy/experiment/components/variable/dark/variable.png +0 -0
  1590. psychopy/experiment/components/variable/dark/variable@2x.png +0 -0
  1591. psychopy/experiment/components/variable/light/variable.png +0 -0
  1592. psychopy/experiment/components/variable/light/variable@2x.png +0 -0
  1593. psychopy/experiment/experiment.xsd +223 -0
  1594. psychopy/experiment/exports.py +388 -0
  1595. psychopy/experiment/flow.py +531 -0
  1596. psychopy/experiment/localization.py +11 -0
  1597. psychopy/experiment/loopTemplate.xltx +0 -0
  1598. psychopy/experiment/loops.py +952 -0
  1599. psychopy/experiment/params.py +437 -0
  1600. psychopy/experiment/plugins.py +115 -0
  1601. psychopy/experiment/py2js.py +183 -0
  1602. psychopy/experiment/py2js_transpiler.py +606 -0
  1603. psychopy/experiment/questPlusTemplate.xltx +0 -0
  1604. psychopy/experiment/questTemplate.xltx +0 -0
  1605. psychopy/experiment/routines/__init__.py +108 -0
  1606. psychopy/experiment/routines/_base.py +907 -0
  1607. psychopy/experiment/routines/counterbalance/__init__.py +315 -0
  1608. psychopy/experiment/routines/counterbalance/classic/counterbalance.png +0 -0
  1609. psychopy/experiment/routines/counterbalance/classic/counterbalance@2x.png +0 -0
  1610. psychopy/experiment/routines/counterbalance/counterbalanceItems.xltx +0 -0
  1611. psychopy/experiment/routines/counterbalance/dark/counterbalance.png +0 -0
  1612. psychopy/experiment/routines/counterbalance/dark/counterbalance@2x.png +0 -0
  1613. psychopy/experiment/routines/counterbalance/light/counterbalance.png +0 -0
  1614. psychopy/experiment/routines/counterbalance/light/counterbalance@2x.png +0 -0
  1615. psychopy/experiment/routines/eyetracker_calibrate/__init__.py +275 -0
  1616. psychopy/experiment/routines/eyetracker_calibrate/classic/eyetracker_calib.png +0 -0
  1617. psychopy/experiment/routines/eyetracker_calibrate/dark/eyetracker_calib.png +0 -0
  1618. psychopy/experiment/routines/eyetracker_calibrate/dark/eyetracker_calib@2x.png +0 -0
  1619. psychopy/experiment/routines/eyetracker_calibrate/light/eyetracker_calib.png +0 -0
  1620. psychopy/experiment/routines/eyetracker_calibrate/light/eyetracker_calib@2x.png +0 -0
  1621. psychopy/experiment/routines/eyetracker_validate/__init__.py +354 -0
  1622. psychopy/experiment/routines/eyetracker_validate/classic/eyetracker_valid.png +0 -0
  1623. psychopy/experiment/routines/eyetracker_validate/dark/eyetracker_valid.png +0 -0
  1624. psychopy/experiment/routines/eyetracker_validate/dark/eyetracker_valid@2x.png +0 -0
  1625. psychopy/experiment/routines/eyetracker_validate/light/eyetracker_valid.png +0 -0
  1626. psychopy/experiment/routines/eyetracker_validate/light/eyetracker_valid@2x.png +0 -0
  1627. psychopy/experiment/routines/pavlovia_survey/__init__.py +236 -0
  1628. psychopy/experiment/routines/pavlovia_survey/classic/survey.png +0 -0
  1629. psychopy/experiment/routines/pavlovia_survey/classic/survey@2x.png +0 -0
  1630. psychopy/experiment/routines/pavlovia_survey/dark/survey.png +0 -0
  1631. psychopy/experiment/routines/pavlovia_survey/dark/survey@2x.png +0 -0
  1632. psychopy/experiment/routines/pavlovia_survey/light/survey.png +0 -0
  1633. psychopy/experiment/routines/pavlovia_survey/light/survey@2x.png +0 -0
  1634. psychopy/experiment/routines/photodiodeValidator/__init__.py +429 -0
  1635. psychopy/experiment/routines/photodiodeValidator/classic/photodiode_validator.png +0 -0
  1636. psychopy/experiment/routines/photodiodeValidator/classic/photodiode_validator@2x.png +0 -0
  1637. psychopy/experiment/routines/photodiodeValidator/dark/photodiode_validator.png +0 -0
  1638. psychopy/experiment/routines/photodiodeValidator/dark/photodiode_validator@2x.png +0 -0
  1639. psychopy/experiment/routines/photodiodeValidator/light/photodiode_validator.png +0 -0
  1640. psychopy/experiment/routines/photodiodeValidator/light/photodiode_validator@2x.png +0 -0
  1641. psychopy/experiment/routines/unknown/__init__.py +28 -0
  1642. psychopy/experiment/routines/unknown/classic/eyetracker_record.png +0 -0
  1643. psychopy/experiment/routines/unknown/classic/unknown.png +0 -0
  1644. psychopy/experiment/routines/unknown/dark/eyetracker_record.png +0 -0
  1645. psychopy/experiment/routines/unknown/dark/eyetracker_record@2x.png +0 -0
  1646. psychopy/experiment/routines/unknown/dark/unknown.png +0 -0
  1647. psychopy/experiment/routines/unknown/dark/unknown@2x.png +0 -0
  1648. psychopy/experiment/routines/unknown/light/eyetracker_record.png +0 -0
  1649. psychopy/experiment/routines/unknown/light/eyetracker_record@2x.png +0 -0
  1650. psychopy/experiment/routines/unknown/light/unknown.png +0 -0
  1651. psychopy/experiment/routines/unknown/light/unknown@2x.png +0 -0
  1652. psychopy/experiment/routines/utils.py +0 -0
  1653. psychopy/experiment/staircaseTemplate.xltx +0 -0
  1654. psychopy/experiment/utils.py +44 -0
  1655. psychopy/filters.py +11 -0
  1656. psychopy/gamma.py +9 -0
  1657. psychopy/gui/__init__.py +47 -0
  1658. psychopy/gui/qtgui.py +866 -0
  1659. psychopy/gui/util.py +78 -0
  1660. psychopy/gui/wxgui.py +414 -0
  1661. psychopy/hardware/__init__.py +216 -0
  1662. psychopy/hardware/base.py +323 -0
  1663. psychopy/hardware/bbtk/__init__.py +30 -0
  1664. psychopy/hardware/brainproducts.py +31 -0
  1665. psychopy/hardware/button.py +205 -0
  1666. psychopy/hardware/buttonbox/__init__.py +122 -0
  1667. psychopy/hardware/camera/__init__.py +2809 -0
  1668. psychopy/hardware/cedrus.py +36 -0
  1669. psychopy/hardware/crs/__init__.py +46 -0
  1670. psychopy/hardware/crs/bits.py +34 -0
  1671. psychopy/hardware/crs/colorcal.py +30 -0
  1672. psychopy/hardware/crs/optical.py +46 -0
  1673. psychopy/hardware/crs/shaders.py +21 -0
  1674. psychopy/hardware/emotiv.py +33 -0
  1675. psychopy/hardware/emulator.py +37 -0
  1676. psychopy/hardware/eyetracker.py +208 -0
  1677. psychopy/hardware/forp.py +42 -0
  1678. psychopy/hardware/gammasci.py +32 -0
  1679. psychopy/hardware/iolab.py +35 -0
  1680. psychopy/hardware/joystick/__init__.py +597 -0
  1681. psychopy/hardware/keyboard.py +880 -0
  1682. psychopy/hardware/knownDevices.json +52 -0
  1683. psychopy/hardware/labhackers.py +27 -0
  1684. psychopy/hardware/labjacks.py +30 -0
  1685. psychopy/hardware/listener.py +323 -0
  1686. psychopy/hardware/manager.py +963 -0
  1687. psychopy/hardware/microphone.py +1074 -0
  1688. psychopy/hardware/minolta.py +30 -0
  1689. psychopy/hardware/mouse/__init__.py +885 -0
  1690. psychopy/hardware/photodiode.py +639 -0
  1691. psychopy/hardware/photometer/__init__.py +176 -0
  1692. psychopy/hardware/pr.py +30 -0
  1693. psychopy/hardware/qmix.py +41 -0
  1694. psychopy/hardware/serialdevice.py +342 -0
  1695. psychopy/hardware/speaker.py +54 -0
  1696. psychopy/hardware/triggerbox/__init__.py +56 -0
  1697. psychopy/hardware/triggerbox/base.py +170 -0
  1698. psychopy/hardware/triggerbox/parallel.py +362 -0
  1699. psychopy/info.py +790 -0
  1700. psychopy/iohub/__init__.py +45 -0
  1701. psychopy/iohub/client/__init__.py +1454 -0
  1702. psychopy/iohub/client/connect.py +260 -0
  1703. psychopy/iohub/client/eyetracker/__init__.py +4 -0
  1704. psychopy/iohub/client/eyetracker/validation/__init__.py +8 -0
  1705. psychopy/iohub/client/eyetracker/validation/posgrid.py +274 -0
  1706. psychopy/iohub/client/eyetracker/validation/procedure.py +1292 -0
  1707. psychopy/iohub/client/eyetracker/validation/trigger.py +240 -0
  1708. psychopy/iohub/client/keyboard.py +508 -0
  1709. psychopy/iohub/client/wintab.py +378 -0
  1710. psychopy/iohub/constants.py +1176 -0
  1711. psychopy/iohub/datastore/__init__.py +439 -0
  1712. psychopy/iohub/datastore/default_datastore.yaml +8 -0
  1713. psychopy/iohub/datastore/util.py +868 -0
  1714. psychopy/iohub/default_config.yaml +17 -0
  1715. psychopy/iohub/devices/__init__.py +960 -0
  1716. psychopy/iohub/devices/computer.py +607 -0
  1717. psychopy/iohub/devices/default_device.yaml +15 -0
  1718. psychopy/iohub/devices/deviceConfigValidation.py +517 -0
  1719. psychopy/iohub/devices/display/__init__.py +755 -0
  1720. psychopy/iohub/devices/display/default_display.yaml +118 -0
  1721. psychopy/iohub/devices/display/supported_config_settings.yaml +69 -0
  1722. psychopy/iohub/devices/eventfilters.py +3572 -0
  1723. psychopy/iohub/devices/experiment/__init__.py +316 -0
  1724. psychopy/iohub/devices/experiment/default_experiment.yaml +63 -0
  1725. psychopy/iohub/devices/experiment/supported_config_settings.yaml +22 -0
  1726. psychopy/iohub/devices/eyetracker/__init__.py +436 -0
  1727. psychopy/iohub/devices/eyetracker/calibration/__init__.py +1 -0
  1728. psychopy/iohub/devices/eyetracker/calibration/procedure.py +409 -0
  1729. psychopy/iohub/devices/eyetracker/default_eyetracker.yaml +18 -0
  1730. psychopy/iohub/devices/eyetracker/eye_events.py +1751 -0
  1731. psychopy/iohub/devices/eyetracker/filters/__init__.py +4 -0
  1732. psychopy/iohub/devices/eyetracker/filters/parser.py +913 -0
  1733. psychopy/iohub/devices/eyetracker/hw/__init__.py +4 -0
  1734. psychopy/iohub/devices/eyetracker/hw/gazepoint/__init__.py +17 -0
  1735. psychopy/iohub/devices/eyetracker/hw/gazepoint/gp3/__init__.py +28 -0
  1736. psychopy/iohub/devices/eyetracker/hw/gazepoint/gp3/calibration.py +18 -0
  1737. psychopy/iohub/devices/eyetracker/hw/gazepoint/gp3/eyetracker.py +21 -0
  1738. psychopy/iohub/devices/eyetracker/hw/mouse/__init__.py +8 -0
  1739. psychopy/iohub/devices/eyetracker/hw/mouse/calibration.py +10 -0
  1740. psychopy/iohub/devices/eyetracker/hw/mouse/default_eyetracker.yaml +102 -0
  1741. psychopy/iohub/devices/eyetracker/hw/mouse/eyetracker.py +444 -0
  1742. psychopy/iohub/devices/eyetracker/hw/mouse/supported_config_settings.yaml +110 -0
  1743. psychopy/iohub/devices/eyetracker/hw/pupil_labs/__init__.py +4 -0
  1744. psychopy/iohub/devices/eyetracker/hw/pupil_labs/neon/__init__.py +26 -0
  1745. psychopy/iohub/devices/eyetracker/hw/pupil_labs/neon/eyetracker.py +18 -0
  1746. psychopy/iohub/devices/eyetracker/hw/pupil_labs/pupil_core/__init__.py +29 -0
  1747. psychopy/iohub/devices/eyetracker/hw/pupil_labs/pupil_core/bisector.py +20 -0
  1748. psychopy/iohub/devices/eyetracker/hw/pupil_labs/pupil_core/constants.py +19 -0
  1749. psychopy/iohub/devices/eyetracker/hw/pupil_labs/pupil_core/data_parse.py +22 -0
  1750. psychopy/iohub/devices/eyetracker/hw/pupil_labs/pupil_core/eyetracker.py +18 -0
  1751. psychopy/iohub/devices/eyetracker/hw/pupil_labs/pupil_core/pupil_remote.py +18 -0
  1752. psychopy/iohub/devices/eyetracker/hw/sr_research/__init__.py +4 -0
  1753. psychopy/iohub/devices/eyetracker/hw/sr_research/eyelink/__init__.py +28 -0
  1754. psychopy/iohub/devices/eyetracker/hw/sr_research/eyelink/calibration.py +22 -0
  1755. psychopy/iohub/devices/eyetracker/hw/sr_research/eyelink/eyetracker.py +38 -0
  1756. psychopy/iohub/devices/eyetracker/hw/tobii/__init__.py +29 -0
  1757. psychopy/iohub/devices/eyetracker/hw/tobii/calibration.py +19 -0
  1758. psychopy/iohub/devices/eyetracker/hw/tobii/eyetracker.py +17 -0
  1759. psychopy/iohub/devices/eyetracker/hw/tobii/tobiiwrapper.py +19 -0
  1760. psychopy/iohub/devices/eyetracker/supported_config_settings.yaml +44 -0
  1761. psychopy/iohub/devices/keyboard/__init__.py +309 -0
  1762. psychopy/iohub/devices/keyboard/darwin.py +428 -0
  1763. psychopy/iohub/devices/keyboard/darwinkey.py +94 -0
  1764. psychopy/iohub/devices/keyboard/default_keyboard.yaml +94 -0
  1765. psychopy/iohub/devices/keyboard/linux2.py +102 -0
  1766. psychopy/iohub/devices/keyboard/supported_config_settings.yaml +39 -0
  1767. psychopy/iohub/devices/keyboard/win32.py +356 -0
  1768. psychopy/iohub/devices/mouse/__init__.py +709 -0
  1769. psychopy/iohub/devices/mouse/darwin.py +414 -0
  1770. psychopy/iohub/devices/mouse/default_mouse.yaml +92 -0
  1771. psychopy/iohub/devices/mouse/linux2.py +167 -0
  1772. psychopy/iohub/devices/mouse/supported_config_settings.yaml +39 -0
  1773. psychopy/iohub/devices/mouse/win32.py +279 -0
  1774. psychopy/iohub/devices/pyXHook.py +619 -0
  1775. psychopy/iohub/devices/serial/__init__.py +779 -0
  1776. psychopy/iohub/devices/serial/default_pstbox.yaml +108 -0
  1777. psychopy/iohub/devices/serial/default_serial.yaml +108 -0
  1778. psychopy/iohub/devices/serial/supported_config_settings.yaml +85 -0
  1779. psychopy/iohub/devices/serial/supported_config_settings_pstbox.yaml +85 -0
  1780. psychopy/iohub/devices/supported_config_settings.yaml +36 -0
  1781. psychopy/iohub/devices/wintab/__init__.py +580 -0
  1782. psychopy/iohub/devices/wintab/default_wintab.yaml +89 -0
  1783. psychopy/iohub/devices/wintab/supported_config_settings.yaml +42 -0
  1784. psychopy/iohub/devices/wintab/win32.py +722 -0
  1785. psychopy/iohub/devices/xlib.py +6795 -0
  1786. psychopy/iohub/errors.py +61 -0
  1787. psychopy/iohub/lazy_import.py +582 -0
  1788. psychopy/iohub/net.py +349 -0
  1789. psychopy/iohub/server.py +1075 -0
  1790. psychopy/iohub/start_iohub_process.py +118 -0
  1791. psychopy/iohub/util/__init__.py +841 -0
  1792. psychopy/iohub/util/visualangle.py +126 -0
  1793. psychopy/layout.py +916 -0
  1794. psychopy/liaison.py +419 -0
  1795. psychopy/locale_setup.py +31 -0
  1796. psychopy/localization/__init__.py +22 -0
  1797. psychopy/localization/_localization.py +155 -0
  1798. psychopy/localization/generateTranslationTemplate.py +139 -0
  1799. psychopy/localization/mappings.txt +170 -0
  1800. psychopy/localization/messages.pot +7516 -0
  1801. psychopy/localization/readme.txt +68 -0
  1802. psychopy/logging.py +406 -0
  1803. psychopy/microphone.py +54 -0
  1804. psychopy/misc.py +40 -0
  1805. psychopy/monitors/MonitorCenter.py +1254 -0
  1806. psychopy/monitors/__init__.py +30 -0
  1807. psychopy/monitors/calibData.py +78 -0
  1808. psychopy/monitors/calibTools.py +1300 -0
  1809. psychopy/monitors/getLumSeries.py +50 -0
  1810. psychopy/monitors/psychopy-icon.svg +395 -0
  1811. psychopy/monitors/psychopy.ico +0 -0
  1812. psychopy/parallel/__init__.py +206 -0
  1813. psychopy/parallel/_dlportio.py +150 -0
  1814. psychopy/parallel/_inpout.py +120 -0
  1815. psychopy/parallel/_linux.py +105 -0
  1816. psychopy/piloting.py +61 -0
  1817. psychopy/platform_specific/__init__.py +48 -0
  1818. psychopy/platform_specific/darwin.py +328 -0
  1819. psychopy/platform_specific/linux.py +79 -0
  1820. psychopy/platform_specific/posix.py +16 -0
  1821. psychopy/platform_specific/win32.py +99 -0
  1822. psychopy/plugins/__init__.py +1354 -0
  1823. psychopy/preferences/Darwin.spec +282 -0
  1824. psychopy/preferences/FreeBSD.spec +282 -0
  1825. psychopy/preferences/Linux.spec +282 -0
  1826. psychopy/preferences/Windows.spec +282 -0
  1827. psychopy/preferences/__init__.py +20 -0
  1828. psychopy/preferences/baseNoArch.spec +278 -0
  1829. psychopy/preferences/generateHints.py +91 -0
  1830. psychopy/preferences/generateSpec.py +80 -0
  1831. psychopy/preferences/hints.py +329 -0
  1832. psychopy/preferences/preferences.py +332 -0
  1833. psychopy/projects/__init__.py +11 -0
  1834. psychopy/projects/gitignore.py +45 -0
  1835. psychopy/projects/pavlovia.py +1566 -0
  1836. psychopy/projects/sshkeys.py +107 -0
  1837. psychopy/psychojs.zip +0 -0
  1838. psychopy/pylintrc +69 -0
  1839. psychopy/scripts/__init__.py +0 -0
  1840. psychopy/scripts/psyexpCompile.py +233 -0
  1841. psychopy/session.py +1450 -0
  1842. psychopy/sound/__init__.py +279 -0
  1843. psychopy/sound/_base.py +282 -0
  1844. psychopy/sound/audioclip.py +851 -0
  1845. psychopy/sound/audiodevice.py +857 -0
  1846. psychopy/sound/backend_ptb.py +660 -0
  1847. psychopy/sound/backend_pygame.py +309 -0
  1848. psychopy/sound/backend_pyo.py +33 -0
  1849. psychopy/sound/backend_pysound.py +341 -0
  1850. psychopy/sound/backend_sounddevice.py +32 -0
  1851. psychopy/sound/exceptions.py +115 -0
  1852. psychopy/sound/microphone.py +274 -0
  1853. psychopy/sound/transcribe.py +1248 -0
  1854. psychopy/tests/.DS_Store +0 -0
  1855. psychopy/tests/README.md +344 -0
  1856. psychopy/tests/__init__.py +47 -0
  1857. psychopy/tests/data/Electronic_Chime-KevanGC-495939803.wav +0 -0
  1858. psychopy/tests/data/TestCircle_w128h128_bottom_left.png +0 -0
  1859. psychopy/tests/data/TestCircle_w128h128_bottom_right.png +0 -0
  1860. psychopy/tests/data/TestCircle_w128h128_center_center.png +0 -0
  1861. psychopy/tests/data/TestCircle_w128h128_top_left.png +0 -0
  1862. psychopy/tests/data/TestCircle_w128h128_top_right.png +0 -0
  1863. psychopy/tests/data/TestCircle_w128h64_bottom_left.png +0 -0
  1864. psychopy/tests/data/TestCircle_w128h64_bottom_right.png +0 -0
  1865. psychopy/tests/data/TestCircle_w128h64_center_center.png +0 -0
  1866. psychopy/tests/data/TestCircle_w128h64_top_left.png +0 -0
  1867. psychopy/tests/data/TestCircle_w128h64_top_right.png +0 -0
  1868. psychopy/tests/data/TestCircle_w64h128_bottom_left.png +0 -0
  1869. psychopy/tests/data/TestCircle_w64h128_bottom_right.png +0 -0
  1870. psychopy/tests/data/TestCircle_w64h128_center_center.png +0 -0
  1871. psychopy/tests/data/TestCircle_w64h128_top_left.png +0 -0
  1872. psychopy/tests/data/TestCircle_w64h128_top_right.png +0 -0
  1873. psychopy/tests/data/TestCircle_w64h64_bottom_left.png +0 -0
  1874. psychopy/tests/data/TestCircle_w64h64_bottom_right.png +0 -0
  1875. psychopy/tests/data/TestCircle_w64h64_center_center.png +0 -0
  1876. psychopy/tests/data/TestCircle_w64h64_top_left.png +0 -0
  1877. psychopy/tests/data/TestCircle_w64h64_top_right.png +0 -0
  1878. psychopy/tests/data/TestForm_scrolling_nq10_s0.5.png +0 -0
  1879. psychopy/tests/data/TestForm_scrolling_nq10_s0.png +0 -0
  1880. psychopy/tests/data/TestForm_scrolling_nq10_s1.png +0 -0
  1881. psychopy/tests/data/TestForm_scrolling_nq1_s0.5.png +0 -0
  1882. psychopy/tests/data/TestForm_scrolling_nq1_s0.png +0 -0
  1883. psychopy/tests/data/TestForm_scrolling_nq1_s1.png +0 -0
  1884. psychopy/tests/data/TestForm_scrolling_nq3_s0.5.png +0 -0
  1885. psychopy/tests/data/TestForm_scrolling_nq3_s0.png +0 -0
  1886. psychopy/tests/data/TestForm_scrolling_nq3_s1.png +0 -0
  1887. psychopy/tests/data/TestImage_w128h128_bottom_left.png +0 -0
  1888. psychopy/tests/data/TestImage_w128h128_bottom_right.png +0 -0
  1889. psychopy/tests/data/TestImage_w128h128_center_center.png +0 -0
  1890. psychopy/tests/data/TestImage_w128h128_top_left.png +0 -0
  1891. psychopy/tests/data/TestImage_w128h128_top_right.png +0 -0
  1892. psychopy/tests/data/TestImage_w128h64_bottom_left.png +0 -0
  1893. psychopy/tests/data/TestImage_w128h64_bottom_right.png +0 -0
  1894. psychopy/tests/data/TestImage_w128h64_center_center.png +0 -0
  1895. psychopy/tests/data/TestImage_w128h64_top_left.png +0 -0
  1896. psychopy/tests/data/TestImage_w128h64_top_right.png +0 -0
  1897. psychopy/tests/data/TestImage_w64h128_bottom_left.png +0 -0
  1898. psychopy/tests/data/TestImage_w64h128_bottom_right.png +0 -0
  1899. psychopy/tests/data/TestImage_w64h128_center_center.png +0 -0
  1900. psychopy/tests/data/TestImage_w64h128_top_left.png +0 -0
  1901. psychopy/tests/data/TestImage_w64h128_top_right.png +0 -0
  1902. psychopy/tests/data/TestImage_w64h64_bottom_left.png +0 -0
  1903. psychopy/tests/data/TestImage_w64h64_bottom_right.png +0 -0
  1904. psychopy/tests/data/TestImage_w64h64_center_center.png +0 -0
  1905. psychopy/tests/data/TestImage_w64h64_top_left.png +0 -0
  1906. psychopy/tests/data/TestImage_w64h64_top_right.png +0 -0
  1907. psychopy/tests/data/TestProgress_testValue_horizontal_center center_0.3.png +0 -0
  1908. psychopy/tests/data/TestProgress_testValue_horizontal_center center_0.6.png +0 -0
  1909. psychopy/tests/data/TestProgress_testValue_horizontal_left center_0.3.png +0 -0
  1910. psychopy/tests/data/TestProgress_testValue_horizontal_left center_0.6.png +0 -0
  1911. psychopy/tests/data/TestProgress_testValue_horizontal_right center_0.3.png +0 -0
  1912. psychopy/tests/data/TestProgress_testValue_horizontal_right center_0.6.png +0 -0
  1913. psychopy/tests/data/TestProgress_testValue_minmax_0.png +0 -0
  1914. psychopy/tests/data/TestProgress_testValue_minmax_1.png +0 -0
  1915. psychopy/tests/data/TestProgress_testValue_vertical_bottom center_0.3.png +0 -0
  1916. psychopy/tests/data/TestProgress_testValue_vertical_bottom center_0.6.png +0 -0
  1917. psychopy/tests/data/TestProgress_testValue_vertical_center center_0.3.png +0 -0
  1918. psychopy/tests/data/TestProgress_testValue_vertical_center center_0.6.png +0 -0
  1919. psychopy/tests/data/TestProgress_testValue_vertical_top center_0.3.png +0 -0
  1920. psychopy/tests/data/TestProgress_testValue_vertical_top center_0.6.png +0 -0
  1921. psychopy/tests/data/TestProgress_w128h128_bottom_left.png +0 -0
  1922. psychopy/tests/data/TestProgress_w128h128_bottom_right.png +0 -0
  1923. psychopy/tests/data/TestProgress_w128h128_center_center.png +0 -0
  1924. psychopy/tests/data/TestProgress_w128h128_top_left.png +0 -0
  1925. psychopy/tests/data/TestProgress_w128h128_top_right.png +0 -0
  1926. psychopy/tests/data/TestProgress_w128h64_bottom_left.png +0 -0
  1927. psychopy/tests/data/TestProgress_w128h64_bottom_right.png +0 -0
  1928. psychopy/tests/data/TestProgress_w128h64_center_center.png +0 -0
  1929. psychopy/tests/data/TestProgress_w128h64_top_left.png +0 -0
  1930. psychopy/tests/data/TestProgress_w128h64_top_right.png +0 -0
  1931. psychopy/tests/data/TestProgress_w64h128_bottom_left.png +0 -0
  1932. psychopy/tests/data/TestProgress_w64h128_bottom_right.png +0 -0
  1933. psychopy/tests/data/TestProgress_w64h128_center_center.png +0 -0
  1934. psychopy/tests/data/TestProgress_w64h128_top_left.png +0 -0
  1935. psychopy/tests/data/TestProgress_w64h128_top_right.png +0 -0
  1936. psychopy/tests/data/TestProgress_w64h64_bottom_left.png +0 -0
  1937. psychopy/tests/data/TestProgress_w64h64_bottom_right.png +0 -0
  1938. psychopy/tests/data/TestProgress_w64h64_center_center.png +0 -0
  1939. psychopy/tests/data/TestProgress_w64h64_top_left.png +0 -0
  1940. psychopy/tests/data/TestProgress_w64h64_top_right.png +0 -0
  1941. psychopy/tests/data/TestROI_w128h128_bottom_left.png +0 -0
  1942. psychopy/tests/data/TestROI_w128h128_bottom_right.png +0 -0
  1943. psychopy/tests/data/TestROI_w128h128_center_center.png +0 -0
  1944. psychopy/tests/data/TestROI_w128h128_top_left.png +0 -0
  1945. psychopy/tests/data/TestROI_w128h128_top_right.png +0 -0
  1946. psychopy/tests/data/TestROI_w128h64_bottom_left.png +0 -0
  1947. psychopy/tests/data/TestROI_w128h64_bottom_right.png +0 -0
  1948. psychopy/tests/data/TestROI_w128h64_center_center.png +0 -0
  1949. psychopy/tests/data/TestROI_w128h64_top_left.png +0 -0
  1950. psychopy/tests/data/TestROI_w128h64_top_right.png +0 -0
  1951. psychopy/tests/data/TestROI_w64h128_bottom_left.png +0 -0
  1952. psychopy/tests/data/TestROI_w64h128_bottom_right.png +0 -0
  1953. psychopy/tests/data/TestROI_w64h128_center_center.png +0 -0
  1954. psychopy/tests/data/TestROI_w64h128_top_left.png +0 -0
  1955. psychopy/tests/data/TestROI_w64h128_top_right.png +0 -0
  1956. psychopy/tests/data/TestROI_w64h64_bottom_left.png +0 -0
  1957. psychopy/tests/data/TestROI_w64h64_bottom_right.png +0 -0
  1958. psychopy/tests/data/TestROI_w64h64_center_center.png +0 -0
  1959. psychopy/tests/data/TestROI_w64h64_top_left.png +0 -0
  1960. psychopy/tests/data/TestROI_w64h64_top_right.png +0 -0
  1961. psychopy/tests/data/TestSession_exp1.png +0 -0
  1962. psychopy/tests/data/TestSession_exp2.png +0 -0
  1963. psychopy/tests/data/TestShape_w128h128_bottom_left.png +0 -0
  1964. psychopy/tests/data/TestShape_w128h128_bottom_right.png +0 -0
  1965. psychopy/tests/data/TestShape_w128h128_center_center.png +0 -0
  1966. psychopy/tests/data/TestShape_w128h128_top_left.png +0 -0
  1967. psychopy/tests/data/TestShape_w128h128_top_right.png +0 -0
  1968. psychopy/tests/data/TestShape_w128h64_bottom_left.png +0 -0
  1969. psychopy/tests/data/TestShape_w128h64_bottom_right.png +0 -0
  1970. psychopy/tests/data/TestShape_w128h64_center_center.png +0 -0
  1971. psychopy/tests/data/TestShape_w128h64_top_left.png +0 -0
  1972. psychopy/tests/data/TestShape_w128h64_top_right.png +0 -0
  1973. psychopy/tests/data/TestShape_w64h128_bottom_left.png +0 -0
  1974. psychopy/tests/data/TestShape_w64h128_bottom_right.png +0 -0
  1975. psychopy/tests/data/TestShape_w64h128_center_center.png +0 -0
  1976. psychopy/tests/data/TestShape_w64h128_top_left.png +0 -0
  1977. psychopy/tests/data/TestShape_w64h128_top_right.png +0 -0
  1978. psychopy/tests/data/TestShape_w64h64_bottom_left.png +0 -0
  1979. psychopy/tests/data/TestShape_w64h64_bottom_right.png +0 -0
  1980. psychopy/tests/data/TestShape_w64h64_center_center.png +0 -0
  1981. psychopy/tests/data/TestShape_w64h64_top_left.png +0 -0
  1982. psychopy/tests/data/TestShape_w64h64_top_right.png +0 -0
  1983. psychopy/tests/data/TestTarget_w128h128_bottom_left.png +0 -0
  1984. psychopy/tests/data/TestTarget_w128h128_bottom_right.png +0 -0
  1985. psychopy/tests/data/TestTarget_w128h128_center_center.png +0 -0
  1986. psychopy/tests/data/TestTarget_w128h128_top_left.png +0 -0
  1987. psychopy/tests/data/TestTarget_w128h128_top_right.png +0 -0
  1988. psychopy/tests/data/TestTarget_w128h64_bottom_left.png +0 -0
  1989. psychopy/tests/data/TestTarget_w128h64_bottom_right.png +0 -0
  1990. psychopy/tests/data/TestTarget_w128h64_center_center.png +0 -0
  1991. psychopy/tests/data/TestTarget_w128h64_top_left.png +0 -0
  1992. psychopy/tests/data/TestTarget_w128h64_top_right.png +0 -0
  1993. psychopy/tests/data/TestTarget_w64h128_bottom_left.png +0 -0
  1994. psychopy/tests/data/TestTarget_w64h128_bottom_right.png +0 -0
  1995. psychopy/tests/data/TestTarget_w64h128_center_center.png +0 -0
  1996. psychopy/tests/data/TestTarget_w64h128_top_left.png +0 -0
  1997. psychopy/tests/data/TestTarget_w64h128_top_right.png +0 -0
  1998. psychopy/tests/data/TestTarget_w64h64_bottom_left.png +0 -0
  1999. psychopy/tests/data/TestTarget_w64h64_bottom_right.png +0 -0
  2000. psychopy/tests/data/TestTarget_w64h64_center_center.png +0 -0
  2001. psychopy/tests/data/TestTarget_w64h64_top_left.png +0 -0
  2002. psychopy/tests/data/TestTarget_w64h64_top_right.png +0 -0
  2003. psychopy/tests/data/TestTextbox_testLetterSpacing_0p6.png +0 -0
  2004. psychopy/tests/data/TestTextbox_testLetterSpacing_0p8.png +0 -0
  2005. psychopy/tests/data/TestTextbox_testLetterSpacing_1.png +0 -0
  2006. psychopy/tests/data/TestTextbox_testLetterSpacing_1p2.png +0 -0
  2007. psychopy/tests/data/TestTextbox_testLetterSpacing_1p4.png +0 -0
  2008. psychopy/tests/data/TestTextbox_testLetterSpacing_1p6.png +0 -0
  2009. psychopy/tests/data/TestTextbox_testLetterSpacing_1p8.png +0 -0
  2010. psychopy/tests/data/TestTextbox_testLetterSpacing_2p0.png +0 -0
  2011. psychopy/tests/data/TestTextbox_testLetterSpacing_None.png +0 -0
  2012. psychopy/tests/data/Test_textbox_testSpeechpoint_-3ovr8_0ovr8.png +0 -0
  2013. psychopy/tests/data/Test_textbox_testSpeechpoint_0ovr8_-3ovr8.png +0 -0
  2014. psychopy/tests/data/Test_textbox_testSpeechpoint_0ovr8_3ovr8.png +0 -0
  2015. psychopy/tests/data/Test_textbox_testSpeechpoint_3ovr8_0ovr8.png +0 -0
  2016. psychopy/tests/data/Test_textbox_w128h128_bottom_left.png +0 -0
  2017. psychopy/tests/data/Test_textbox_w128h128_bottom_right.png +0 -0
  2018. psychopy/tests/data/Test_textbox_w128h128_center_center.png +0 -0
  2019. psychopy/tests/data/Test_textbox_w128h128_top_left.png +0 -0
  2020. psychopy/tests/data/Test_textbox_w128h128_top_right.png +0 -0
  2021. psychopy/tests/data/Test_textbox_w128h64_bottom_left.png +0 -0
  2022. psychopy/tests/data/Test_textbox_w128h64_bottom_right.png +0 -0
  2023. psychopy/tests/data/Test_textbox_w128h64_center_center.png +0 -0
  2024. psychopy/tests/data/Test_textbox_w128h64_top_left.png +0 -0
  2025. psychopy/tests/data/Test_textbox_w128h64_top_right.png +0 -0
  2026. psychopy/tests/data/Test_textbox_w64h128_bottom_left.png +0 -0
  2027. psychopy/tests/data/Test_textbox_w64h128_bottom_right.png +0 -0
  2028. psychopy/tests/data/Test_textbox_w64h128_center_center.png +0 -0
  2029. psychopy/tests/data/Test_textbox_w64h128_top_left.png +0 -0
  2030. psychopy/tests/data/Test_textbox_w64h128_top_right.png +0 -0
  2031. psychopy/tests/data/Test_textbox_w64h64_bottom_left.png +0 -0
  2032. psychopy/tests/data/Test_textbox_w64h64_bottom_right.png +0 -0
  2033. psychopy/tests/data/Test_textbox_w64h64_center_center.png +0 -0
  2034. psychopy/tests/data/Test_textbox_w64h64_top_left.png +0 -0
  2035. psychopy/tests/data/Test_textbox_w64h64_top_right.png +0 -0
  2036. psychopy/tests/data/Test_uax14_textbox_w128h128_bottom_left.png +0 -0
  2037. psychopy/tests/data/Test_uax14_textbox_w128h128_bottom_right.png +0 -0
  2038. psychopy/tests/data/Test_uax14_textbox_w128h128_center_center.png +0 -0
  2039. psychopy/tests/data/Test_uax14_textbox_w128h128_top_left.png +0 -0
  2040. psychopy/tests/data/Test_uax14_textbox_w128h128_top_right.png +0 -0
  2041. psychopy/tests/data/Test_uax14_textbox_w128h64_bottom_left.png +0 -0
  2042. psychopy/tests/data/Test_uax14_textbox_w128h64_bottom_right.png +0 -0
  2043. psychopy/tests/data/Test_uax14_textbox_w128h64_center_center.png +0 -0
  2044. psychopy/tests/data/Test_uax14_textbox_w128h64_top_left.png +0 -0
  2045. psychopy/tests/data/Test_uax14_textbox_w128h64_top_right.png +0 -0
  2046. psychopy/tests/data/Test_uax14_textbox_w64h128_bottom_left.png +0 -0
  2047. psychopy/tests/data/Test_uax14_textbox_w64h128_bottom_right.png +0 -0
  2048. psychopy/tests/data/Test_uax14_textbox_w64h128_center_center.png +0 -0
  2049. psychopy/tests/data/Test_uax14_textbox_w64h128_top_left.png +0 -0
  2050. psychopy/tests/data/Test_uax14_textbox_w64h128_top_right.png +0 -0
  2051. psychopy/tests/data/Test_uax14_textbox_w64h64_bottom_left.png +0 -0
  2052. psychopy/tests/data/Test_uax14_textbox_w64h64_bottom_right.png +0 -0
  2053. psychopy/tests/data/Test_uax14_textbox_w64h64_center_center.png +0 -0
  2054. psychopy/tests/data/Test_uax14_textbox_w64h64_top_left.png +0 -0
  2055. psychopy/tests/data/Test_uax14_textbox_w64h64_top_right.png +0 -0
  2056. psychopy/tests/data/TextComponent_disabled.psyexp +63 -0
  2057. psychopy/tests/data/TextComponent_not_disabled.psyexp +63 -0
  2058. psychopy/tests/data/aperture1_deg.png +0 -0
  2059. psychopy/tests/data/aperture1_degFlat.png +0 -0
  2060. psychopy/tests/data/aperture1_degFlatPos.png +0 -0
  2061. psychopy/tests/data/aperture1_norm.png +0 -0
  2062. psychopy/tests/data/aperture1_normHexbackground.png +0 -0
  2063. psychopy/tests/data/aperture1_normNoShade.png +0 -0
  2064. psychopy/tests/data/aperture1_pix.png +0 -0
  2065. psychopy/tests/data/aperture1_stencil.png +0 -0
  2066. psychopy/tests/data/aperture2_deg.png +0 -0
  2067. psychopy/tests/data/aperture2_degFlat.png +0 -0
  2068. psychopy/tests/data/aperture2_degFlatPos.png +0 -0
  2069. psychopy/tests/data/aperture2_norm.png +0 -0
  2070. psychopy/tests/data/aperture2_normHexbackground.png +0 -0
  2071. psychopy/tests/data/aperture2_normNoShade.png +0 -0
  2072. psychopy/tests/data/aperture2_pix.png +0 -0
  2073. psychopy/tests/data/aperture2_stencil.png +0 -0
  2074. psychopy/tests/data/beatandrcos_cm.png +0 -0
  2075. psychopy/tests/data/beatandrcos_deg.png +0 -0
  2076. psychopy/tests/data/beatandrcos_degFlat.png +0 -0
  2077. psychopy/tests/data/beatandrcos_degFlatPos.png +0 -0
  2078. psychopy/tests/data/beatandrcos_height.png +0 -0
  2079. psychopy/tests/data/beatandrcos_norm.png +0 -0
  2080. psychopy/tests/data/beatandrcos_normAddBlend.png +0 -0
  2081. psychopy/tests/data/beatandrcos_normAddBlend_local.png +0 -0
  2082. psychopy/tests/data/beatandrcos_normHexbackground.png +0 -0
  2083. psychopy/tests/data/beatandrcos_normHexbackground_local.png +0 -0
  2084. psychopy/tests/data/beatandrcos_norm_local.png +0 -0
  2085. psychopy/tests/data/beatandrcos_pix.png +0 -0
  2086. psychopy/tests/data/beatandrcos_stencil.png +0 -0
  2087. psychopy/tests/data/blend_add_cm.png +0 -0
  2088. psychopy/tests/data/blend_add_deg.png +0 -0
  2089. psychopy/tests/data/blend_add_degFlat.png +0 -0
  2090. psychopy/tests/data/blend_add_degFlatPos.png +0 -0
  2091. psychopy/tests/data/blend_add_height.png +0 -0
  2092. psychopy/tests/data/blend_add_norm.png +0 -0
  2093. psychopy/tests/data/blend_add_normAddBlend.png +0 -0
  2094. psychopy/tests/data/blend_add_normAddBlend_local.png +0 -0
  2095. psychopy/tests/data/blend_add_normHexbackground.png +0 -0
  2096. psychopy/tests/data/blend_add_normHexbackground_local.png +0 -0
  2097. psychopy/tests/data/blend_add_normNoShade.png +0 -0
  2098. psychopy/tests/data/blend_add_norm_local.png +0 -0
  2099. psychopy/tests/data/blend_add_pix.png +0 -0
  2100. psychopy/tests/data/blend_add_stencil.png +0 -0
  2101. psychopy/tests/data/broken2020_2_5_resources/broken_resources.psyexp +84 -0
  2102. psychopy/tests/data/broken2020_2_5_resources/psychopy72.png +0 -0
  2103. psychopy/tests/data/bufferimg_gabor_cm.png +0 -0
  2104. psychopy/tests/data/bufferimg_gabor_deg.png +0 -0
  2105. psychopy/tests/data/bufferimg_gabor_degFlat.png +0 -0
  2106. psychopy/tests/data/bufferimg_gabor_degFlatPos.png +0 -0
  2107. psychopy/tests/data/bufferimg_gabor_height.png +0 -0
  2108. psychopy/tests/data/bufferimg_gabor_norm.png +0 -0
  2109. psychopy/tests/data/bufferimg_gabor_normAddBlend.png +0 -0
  2110. psychopy/tests/data/bufferimg_gabor_normAddBlend_local.png +0 -0
  2111. psychopy/tests/data/bufferimg_gabor_normHexbackground.png +0 -0
  2112. psychopy/tests/data/bufferimg_gabor_normHexbackground_local.png +0 -0
  2113. psychopy/tests/data/bufferimg_gabor_normNoShade.png +0 -0
  2114. psychopy/tests/data/bufferimg_gabor_norm_local.png +0 -0
  2115. psychopy/tests/data/bufferimg_gabor_pix.png +0 -0
  2116. psychopy/tests/data/bufferimg_gabor_stencil.png +0 -0
  2117. psychopy/tests/data/circleHex_cm.png +0 -0
  2118. psychopy/tests/data/circleHex_deg.png +0 -0
  2119. psychopy/tests/data/circleHex_degFlat.png +0 -0
  2120. psychopy/tests/data/circleHex_degFlatPos.png +0 -0
  2121. psychopy/tests/data/circleHex_height.png +0 -0
  2122. psychopy/tests/data/circleHex_norm.png +0 -0
  2123. psychopy/tests/data/circleHex_normAddBlend.png +0 -0
  2124. psychopy/tests/data/circleHex_normAddBlend_local.png +0 -0
  2125. psychopy/tests/data/circleHex_normHexbackground.png +0 -0
  2126. psychopy/tests/data/circleHex_normHexbackground_local.png +0 -0
  2127. psychopy/tests/data/circleHex_normNoShade.png +0 -0
  2128. psychopy/tests/data/circleHex_norm_local.png +0 -0
  2129. psychopy/tests/data/circleHex_pix.png +0 -0
  2130. psychopy/tests/data/circleHex_stencil.png +0 -0
  2131. psychopy/tests/data/corrFullRandom.csv +16 -0
  2132. psychopy/tests/data/corrFullRandom.tsv +6 -0
  2133. psychopy/tests/data/corrFullRandomTH2.csv +16 -0
  2134. psychopy/tests/data/corrMultiKeyExpWide.csv +3 -0
  2135. psychopy/tests/data/corrMultiKeyTrials.csv +8 -0
  2136. psychopy/tests/data/corrMultiKeyTrials.xlsx +0 -0
  2137. psychopy/tests/data/corrRandom.csv +16 -0
  2138. psychopy/tests/data/corrRandom.tsv +6 -0
  2139. psychopy/tests/data/corrRandomTH2.csv +16 -0
  2140. psychopy/tests/data/corrXlsx.xlsx +0 -0
  2141. psychopy/tests/data/correctScript/js/correctCodeComponent.js +181 -0
  2142. psychopy/tests/data/correctScript/js/correctImageComponent.js +204 -0
  2143. psychopy/tests/data/correctScript/js/correctKeyboardComponent.js +225 -0
  2144. psychopy/tests/data/correctScript/js/correctMouseComponent.js +221 -0
  2145. psychopy/tests/data/correctScript/js/correctMovieComponent.js +210 -0
  2146. psychopy/tests/data/correctScript/js/correctPolygonComponent.js +205 -0
  2147. psychopy/tests/data/correctScript/js/correctSliderComponent.js +209 -0
  2148. psychopy/tests/data/correctScript/js/correctSoundComponent.js +205 -0
  2149. psychopy/tests/data/correctScript/js/correctTextComponent.js +207 -0
  2150. psychopy/tests/data/correctScript/python/correctApertureComponent.py +157 -0
  2151. psychopy/tests/data/correctScript/python/correctCodeComponent.py +135 -0
  2152. psychopy/tests/data/correctScript/python/correctDotsComponent.py +161 -0
  2153. psychopy/tests/data/correctScript/python/correctEnvGratingComponent.py +167 -0
  2154. psychopy/tests/data/correctScript/python/correctFormComponent.py +150 -0
  2155. psychopy/tests/data/correctScript/python/correctGratingComponent.py +158 -0
  2156. psychopy/tests/data/correctScript/python/correctImageComponent.py +160 -0
  2157. psychopy/tests/data/correctScript/python/correctJoyButtonsComponent.py +204 -0
  2158. psychopy/tests/data/correctScript/python/correctJoystickComponent.py +214 -0
  2159. psychopy/tests/data/correctScript/python/correctKeyboardComponent.py +169 -0
  2160. psychopy/tests/data/correctScript/python/correctMicrophoneComponent.py +163 -0
  2161. psychopy/tests/data/correctScript/python/correctMouseComponent.py +174 -0
  2162. psychopy/tests/data/correctScript/python/correctMovieComponent.py +160 -0
  2163. psychopy/tests/data/correctScript/python/correctNoiseStimComponent.py +169 -0
  2164. psychopy/tests/data/correctScript/python/correctParallelOutComponent.py +156 -0
  2165. psychopy/tests/data/correctScript/python/correctPatchComponent.py +159 -0
  2166. psychopy/tests/data/correctScript/python/correctPolygonComponent.py +159 -0
  2167. psychopy/tests/data/correctScript/python/correctQmixPumpComponent.py +174 -0
  2168. psychopy/tests/data/correctScript/python/correctRatingScaleComponent.py +152 -0
  2169. psychopy/tests/data/correctScript/python/correctSliderComponent.py +159 -0
  2170. psychopy/tests/data/correctScript/python/correctSoundComponent.py +157 -0
  2171. psychopy/tests/data/correctScript/python/correctStaticComponent.py +176 -0
  2172. psychopy/tests/data/correctScript/python/correctTextComponent.py +159 -0
  2173. psychopy/tests/data/correctScript/python/correctVariableComponent.py +139 -0
  2174. psychopy/tests/data/correctScript/python/correctcedrusButtonBoxComponent.py +199 -0
  2175. psychopy/tests/data/correctScript/python/correctioLabsButtonBoxComponent.py +187 -0
  2176. psychopy/tests/data/dataTest.xlsx +0 -0
  2177. psychopy/tests/data/dots_cm.png +0 -0
  2178. psychopy/tests/data/dots_deg.png +0 -0
  2179. psychopy/tests/data/dots_degFlat.png +0 -0
  2180. psychopy/tests/data/dots_degFlatPos.png +0 -0
  2181. psychopy/tests/data/dots_height.png +0 -0
  2182. psychopy/tests/data/dots_norm.png +0 -0
  2183. psychopy/tests/data/dots_normAddBlend.png +0 -0
  2184. psychopy/tests/data/dots_normAddBlend_local.png +0 -0
  2185. psychopy/tests/data/dots_normHexbackground.png +0 -0
  2186. psychopy/tests/data/dots_normHexbackground_local.png +0 -0
  2187. psychopy/tests/data/dots_normNoShade.png +0 -0
  2188. psychopy/tests/data/dots_norm_local.png +0 -0
  2189. psychopy/tests/data/dots_pix.png +0 -0
  2190. psychopy/tests/data/dots_stencil.png +0 -0
  2191. psychopy/tests/data/elarray1_cm.png +0 -0
  2192. psychopy/tests/data/elarray1_deg.png +0 -0
  2193. psychopy/tests/data/elarray1_degFlat.png +0 -0
  2194. psychopy/tests/data/elarray1_degFlatPos.png +0 -0
  2195. psychopy/tests/data/elarray1_height.png +0 -0
  2196. psychopy/tests/data/elarray1_norm.png +0 -0
  2197. psychopy/tests/data/elarray1_normAddBlend.png +0 -0
  2198. psychopy/tests/data/elarray1_normAddBlend_local.png +0 -0
  2199. psychopy/tests/data/elarray1_normHexbackground.png +0 -0
  2200. psychopy/tests/data/elarray1_normHexbackground_local.png +0 -0
  2201. psychopy/tests/data/elarray1_norm_local.png +0 -0
  2202. psychopy/tests/data/elarray1_pix.png +0 -0
  2203. psychopy/tests/data/elarray1_stencil.png +0 -0
  2204. psychopy/tests/data/envelopeandrcos_cm.png +0 -0
  2205. psychopy/tests/data/envelopeandrcos_deg.png +0 -0
  2206. psychopy/tests/data/envelopeandrcos_degFlat.png +0 -0
  2207. psychopy/tests/data/envelopeandrcos_degFlatPos.png +0 -0
  2208. psychopy/tests/data/envelopeandrcos_height.png +0 -0
  2209. psychopy/tests/data/envelopeandrcos_norm.png +0 -0
  2210. psychopy/tests/data/envelopeandrcos_normAddBlend.png +0 -0
  2211. psychopy/tests/data/envelopeandrcos_normAddBlend_local.png +0 -0
  2212. psychopy/tests/data/envelopeandrcos_normHexbackground.png +0 -0
  2213. psychopy/tests/data/envelopeandrcos_normHexbackground_local.png +0 -0
  2214. psychopy/tests/data/envelopeandrcos_norm_local.png +0 -0
  2215. psychopy/tests/data/envelopeandrcos_pix.png +0 -0
  2216. psychopy/tests/data/envelopeandrcos_stencil.png +0 -0
  2217. psychopy/tests/data/envelopepowerandrcos_cm.png +0 -0
  2218. psychopy/tests/data/envelopepowerandrcos_deg.png +0 -0
  2219. psychopy/tests/data/envelopepowerandrcos_degFlat.png +0 -0
  2220. psychopy/tests/data/envelopepowerandrcos_degFlatPos.png +0 -0
  2221. psychopy/tests/data/envelopepowerandrcos_height.png +0 -0
  2222. psychopy/tests/data/envelopepowerandrcos_norm.png +0 -0
  2223. psychopy/tests/data/envelopepowerandrcos_normAddBlend.png +0 -0
  2224. psychopy/tests/data/envelopepowerandrcos_normAddBlend_local.png +0 -0
  2225. psychopy/tests/data/envelopepowerandrcos_normHexbackground.png +0 -0
  2226. psychopy/tests/data/envelopepowerandrcos_normHexbackground_local.png +0 -0
  2227. psychopy/tests/data/envelopepowerandrcos_norm_local.png +0 -0
  2228. psychopy/tests/data/envelopepowerandrcos_pix.png +0 -0
  2229. psychopy/tests/data/envelopepowerandrcos_stencil.png +0 -0
  2230. psychopy/tests/data/filltext.png +0 -0
  2231. psychopy/tests/data/form_font_demographics.png +0 -0
  2232. psychopy/tests/data/form_font_demographics.xlsx +0 -0
  2233. psychopy/tests/data/form_font_languages.png +0 -0
  2234. psychopy/tests/data/form_font_languages.xlsx +0 -0
  2235. psychopy/tests/data/form_font_nonstandard.png +0 -0
  2236. psychopy/tests/data/futureParams.psyexp +150 -0
  2237. psychopy/tests/data/gabor1_cm.png +0 -0
  2238. psychopy/tests/data/gabor1_deg.png +0 -0
  2239. psychopy/tests/data/gabor1_degFlat.png +0 -0
  2240. psychopy/tests/data/gabor1_degFlatPos.png +0 -0
  2241. psychopy/tests/data/gabor1_height.png +0 -0
  2242. psychopy/tests/data/gabor1_norm.png +0 -0
  2243. psychopy/tests/data/gabor1_normAddBlend.png +0 -0
  2244. psychopy/tests/data/gabor1_normAddBlend_local.png +0 -0
  2245. psychopy/tests/data/gabor1_normHexbackground.png +0 -0
  2246. psychopy/tests/data/gabor1_normHexbackground_local.png +0 -0
  2247. psychopy/tests/data/gabor1_normNoShade.png +0 -0
  2248. psychopy/tests/data/gabor1_norm_local.png +0 -0
  2249. psychopy/tests/data/gabor1_pix.png +0 -0
  2250. psychopy/tests/data/gabor1_stencil.png +0 -0
  2251. psychopy/tests/data/gabor2_cm.png +0 -0
  2252. psychopy/tests/data/gabor2_deg.png +0 -0
  2253. psychopy/tests/data/gabor2_degFlat.png +0 -0
  2254. psychopy/tests/data/gabor2_degFlatPos.png +0 -0
  2255. psychopy/tests/data/gabor2_height.png +0 -0
  2256. psychopy/tests/data/gabor2_norm.png +0 -0
  2257. psychopy/tests/data/gabor2_normAddBlend.png +0 -0
  2258. psychopy/tests/data/gabor2_normHexbackground.png +0 -0
  2259. psychopy/tests/data/gabor2_normNoShade.png +0 -0
  2260. psychopy/tests/data/gabor2_pix.png +0 -0
  2261. psychopy/tests/data/gabor2_stencil.png +0 -0
  2262. psychopy/tests/data/ghost_stroop.psyexp +131 -0
  2263. psychopy/tests/data/ghost_trialTypes.xlsx +0 -0
  2264. psychopy/tests/data/green_48000.flac.dist +0 -0
  2265. psychopy/tests/data/greyscale.jpg +0 -0
  2266. psychopy/tests/data/greyscale2.png +0 -0
  2267. psychopy/tests/data/greyscale2_cm.png +0 -0
  2268. psychopy/tests/data/greyscale2_deg.png +0 -0
  2269. psychopy/tests/data/greyscale2_degFlat.png +0 -0
  2270. psychopy/tests/data/greyscale2_degFlatPos.png +0 -0
  2271. psychopy/tests/data/greyscale2_height.png +0 -0
  2272. psychopy/tests/data/greyscale2_norm.png +0 -0
  2273. psychopy/tests/data/greyscale2_normAddBlend.png +0 -0
  2274. psychopy/tests/data/greyscale2_normHexbackground.png +0 -0
  2275. psychopy/tests/data/greyscale2_normNoShade.png +0 -0
  2276. psychopy/tests/data/greyscale2_pix.png +0 -0
  2277. psychopy/tests/data/greyscale2_stencil.png +0 -0
  2278. psychopy/tests/data/greyscaleLowContr_cm.png +0 -0
  2279. psychopy/tests/data/greyscaleLowContr_deg.png +0 -0
  2280. psychopy/tests/data/greyscaleLowContr_degFlat.png +0 -0
  2281. psychopy/tests/data/greyscaleLowContr_degFlatPos.png +0 -0
  2282. psychopy/tests/data/greyscaleLowContr_height.png +0 -0
  2283. psychopy/tests/data/greyscaleLowContr_norm.png +0 -0
  2284. psychopy/tests/data/greyscaleLowContr_normAddBlend.png +0 -0
  2285. psychopy/tests/data/greyscaleLowContr_normHexbackground.png +0 -0
  2286. psychopy/tests/data/greyscaleLowContr_normNoShade.png +0 -0
  2287. psychopy/tests/data/greyscaleLowContr_pix.png +0 -0
  2288. psychopy/tests/data/greyscaleLowContr_stencil.png +0 -0
  2289. psychopy/tests/data/greyscale_cm.png +0 -0
  2290. psychopy/tests/data/greyscale_deg.png +0 -0
  2291. psychopy/tests/data/greyscale_degFlat.png +0 -0
  2292. psychopy/tests/data/greyscale_degFlatPos.png +0 -0
  2293. psychopy/tests/data/greyscale_height.png +0 -0
  2294. psychopy/tests/data/greyscale_norm.png +0 -0
  2295. psychopy/tests/data/greyscale_normAddBlend.png +0 -0
  2296. psychopy/tests/data/greyscale_normHexbackground.png +0 -0
  2297. psychopy/tests/data/greyscale_normNoShade.png +0 -0
  2298. psychopy/tests/data/greyscale_pix.png +0 -0
  2299. psychopy/tests/data/greyscale_stencil.png +0 -0
  2300. psychopy/tests/data/imageAndGauss_cm.png +0 -0
  2301. psychopy/tests/data/imageAndGauss_deg.png +0 -0
  2302. psychopy/tests/data/imageAndGauss_degFlat.png +0 -0
  2303. psychopy/tests/data/imageAndGauss_degFlatPos.png +0 -0
  2304. psychopy/tests/data/imageAndGauss_height.png +0 -0
  2305. psychopy/tests/data/imageAndGauss_norm.png +0 -0
  2306. psychopy/tests/data/imageAndGauss_normAddBlend.png +0 -0
  2307. psychopy/tests/data/imageAndGauss_normAddBlend_local.png +0 -0
  2308. psychopy/tests/data/imageAndGauss_normHexbackground.png +0 -0
  2309. psychopy/tests/data/imageAndGauss_normHexbackground_local.png +0 -0
  2310. psychopy/tests/data/imageAndGauss_normNoShade.png +0 -0
  2311. psychopy/tests/data/imageAndGauss_norm_local.png +0 -0
  2312. psychopy/tests/data/imageAndGauss_pix.png +0 -0
  2313. psychopy/tests/data/imageAndGauss_stencil.png +0 -0
  2314. psychopy/tests/data/movFrame1_cm.png +0 -0
  2315. psychopy/tests/data/movFrame1_deg.png +0 -0
  2316. psychopy/tests/data/movFrame1_degFlat.png +0 -0
  2317. psychopy/tests/data/movFrame1_degFlatPos.png +0 -0
  2318. psychopy/tests/data/movFrame1_height.png +0 -0
  2319. psychopy/tests/data/movFrame1_norm.png +0 -0
  2320. psychopy/tests/data/movFrame1_normAddBlend.png +0 -0
  2321. psychopy/tests/data/movFrame1_normHexbackground.png +0 -0
  2322. psychopy/tests/data/movFrame1_normNoShade.png +0 -0
  2323. psychopy/tests/data/movFrame1_pix.png +0 -0
  2324. psychopy/tests/data/movFrame1_stencil.png +0 -0
  2325. psychopy/tests/data/multiKeypressExperiment.psydat +357 -0
  2326. psychopy/tests/data/multiKeypressTrialhandler.psydat +252 -0
  2327. psychopy/tests/data/multiStairConds.xlsx +0 -0
  2328. psychopy/tests/data/multiStairQuestPlus.xlsx +0 -0
  2329. psychopy/tests/data/newstyle.psydat +6155 -0
  2330. psychopy/tests/data/noiseAndRcos_cm.png +0 -0
  2331. psychopy/tests/data/noiseAndRcos_deg.png +0 -0
  2332. psychopy/tests/data/noiseAndRcos_degFlat.png +0 -0
  2333. psychopy/tests/data/noiseAndRcos_degFlatPos.png +0 -0
  2334. psychopy/tests/data/noiseAndRcos_height.png +0 -0
  2335. psychopy/tests/data/noiseAndRcos_norm.png +0 -0
  2336. psychopy/tests/data/noiseAndRcos_normAddBlend.png +0 -0
  2337. psychopy/tests/data/noiseAndRcos_normAddBlend_local.png +0 -0
  2338. psychopy/tests/data/noiseAndRcos_normHexbackground.png +0 -0
  2339. psychopy/tests/data/noiseAndRcos_normHexbackground_local.png +0 -0
  2340. psychopy/tests/data/noiseAndRcos_normNoShade.png +0 -0
  2341. psychopy/tests/data/noiseAndRcos_norm_local.png +0 -0
  2342. psychopy/tests/data/noiseAndRcos_pix.png +0 -0
  2343. psychopy/tests/data/noiseAndRcos_stencil.png +0 -0
  2344. psychopy/tests/data/noiseFiltersAndRcos_cm.png +0 -0
  2345. psychopy/tests/data/noiseFiltersAndRcos_deg.png +0 -0
  2346. psychopy/tests/data/noiseFiltersAndRcos_degFlat.png +0 -0
  2347. psychopy/tests/data/noiseFiltersAndRcos_degFlatPos.png +0 -0
  2348. psychopy/tests/data/noiseFiltersAndRcos_height.png +0 -0
  2349. psychopy/tests/data/noiseFiltersAndRcos_norm.png +0 -0
  2350. psychopy/tests/data/noiseFiltersAndRcos_normAddBlend.png +0 -0
  2351. psychopy/tests/data/noiseFiltersAndRcos_normAddBlend_local.png +0 -0
  2352. psychopy/tests/data/noiseFiltersAndRcos_normHexbackground.png +0 -0
  2353. psychopy/tests/data/noiseFiltersAndRcos_normHexbackground_local.png +0 -0
  2354. psychopy/tests/data/noiseFiltersAndRcos_normNoShade.png +0 -0
  2355. psychopy/tests/data/noiseFiltersAndRcos_norm_local.png +0 -0
  2356. psychopy/tests/data/noiseFiltersAndRcos_pix.png +0 -0
  2357. psychopy/tests/data/noiseFiltersAndRcos_stencil.png +0 -0
  2358. psychopy/tests/data/numpyImage_cm.png +0 -0
  2359. psychopy/tests/data/numpyImage_deg.png +0 -0
  2360. psychopy/tests/data/numpyImage_degFlat.png +0 -0
  2361. psychopy/tests/data/numpyImage_degFlatPos.png +0 -0
  2362. psychopy/tests/data/numpyImage_height.png +0 -0
  2363. psychopy/tests/data/numpyImage_norm.png +0 -0
  2364. psychopy/tests/data/numpyImage_normAddBlend.png +0 -0
  2365. psychopy/tests/data/numpyImage_normAddBlend_local.png +0 -0
  2366. psychopy/tests/data/numpyImage_normHexbackground.png +0 -0
  2367. psychopy/tests/data/numpyImage_normHexbackground_local.png +0 -0
  2368. psychopy/tests/data/numpyImage_normNoShade.png +0 -0
  2369. psychopy/tests/data/numpyImage_norm_local.png +0 -0
  2370. psychopy/tests/data/numpyImage_pix.png +0 -0
  2371. psychopy/tests/data/numpyImage_stencil.png +0 -0
  2372. psychopy/tests/data/numpyLowContr_cm.png +0 -0
  2373. psychopy/tests/data/numpyLowContr_deg.png +0 -0
  2374. psychopy/tests/data/numpyLowContr_degFlat.png +0 -0
  2375. psychopy/tests/data/numpyLowContr_degFlatPos.png +0 -0
  2376. psychopy/tests/data/numpyLowContr_height.png +0 -0
  2377. psychopy/tests/data/numpyLowContr_norm.png +0 -0
  2378. psychopy/tests/data/numpyLowContr_normAddBlend.png +0 -0
  2379. psychopy/tests/data/numpyLowContr_normHexbackground.png +0 -0
  2380. psychopy/tests/data/numpyLowContr_normNoShade.png +0 -0
  2381. psychopy/tests/data/numpyLowContr_pix.png +0 -0
  2382. psychopy/tests/data/numpyLowContr_stencil.png +0 -0
  2383. psychopy/tests/data/oldstyle.psydat +1534 -0
  2384. psychopy/tests/data/oldstyle_stair.psydat +263 -0
  2385. psychopy/tests/data/ratingscale1_cm.png +0 -0
  2386. psychopy/tests/data/ratingscale1_deg.png +0 -0
  2387. psychopy/tests/data/ratingscale1_degFlat.png +0 -0
  2388. psychopy/tests/data/ratingscale1_degFlatPos.png +0 -0
  2389. psychopy/tests/data/ratingscale1_height.png +0 -0
  2390. psychopy/tests/data/ratingscale1_norm.png +0 -0
  2391. psychopy/tests/data/ratingscale1_normAddBlend.png +0 -0
  2392. psychopy/tests/data/ratingscale1_normHexbackground.png +0 -0
  2393. psychopy/tests/data/ratingscale1_normNoShade.png +0 -0
  2394. psychopy/tests/data/ratingscale1_pix.png +0 -0
  2395. psychopy/tests/data/ratingscale1_stencil.png +0 -0
  2396. psychopy/tests/data/red_16000.flac.dist +0 -0
  2397. psychopy/tests/data/retroListParam.psyexp +82 -0
  2398. psychopy/tests/data/right_to_left_unidcode.xlsx +0 -0
  2399. psychopy/tests/data/sample.meshwarp.data +11522 -0
  2400. psychopy/tests/data/shape2_1_cm.png +0 -0
  2401. psychopy/tests/data/shape2_1_deg.png +0 -0
  2402. psychopy/tests/data/shape2_1_degFlat.png +0 -0
  2403. psychopy/tests/data/shape2_1_degFlatPos.png +0 -0
  2404. psychopy/tests/data/shape2_1_height.png +0 -0
  2405. psychopy/tests/data/shape2_1_norm.png +0 -0
  2406. psychopy/tests/data/shape2_1_normAddBlend.png +0 -0
  2407. psychopy/tests/data/shape2_1_normAddBlend_local.png +0 -0
  2408. psychopy/tests/data/shape2_1_normHexbackground.png +0 -0
  2409. psychopy/tests/data/shape2_1_normNoShade.png +0 -0
  2410. psychopy/tests/data/shape2_1_norm_local.png +0 -0
  2411. psychopy/tests/data/shape2_1_pix.png +0 -0
  2412. psychopy/tests/data/shape2_1_stencil.png +0 -0
  2413. psychopy/tests/data/shape2_2_cm.png +0 -0
  2414. psychopy/tests/data/shape2_2_deg.png +0 -0
  2415. psychopy/tests/data/shape2_2_degFlat.png +0 -0
  2416. psychopy/tests/data/shape2_2_degFlatPos.png +0 -0
  2417. psychopy/tests/data/shape2_2_height.png +0 -0
  2418. psychopy/tests/data/shape2_2_norm.png +0 -0
  2419. psychopy/tests/data/shape2_2_normAddBlend.png +0 -0
  2420. psychopy/tests/data/shape2_2_normHexbackground.png +0 -0
  2421. psychopy/tests/data/shape2_2_normNoShade.png +0 -0
  2422. psychopy/tests/data/shape2_2_pix.png +0 -0
  2423. psychopy/tests/data/shape2_2_stencil.png +0 -0
  2424. psychopy/tests/data/simpleimage1_cm.png +0 -0
  2425. psychopy/tests/data/simpleimage1_deg.png +0 -0
  2426. psychopy/tests/data/simpleimage1_degFlat.png +0 -0
  2427. psychopy/tests/data/simpleimage1_degFlatPos.png +0 -0
  2428. psychopy/tests/data/simpleimage1_height.png +0 -0
  2429. psychopy/tests/data/simpleimage1_norm.png +0 -0
  2430. psychopy/tests/data/simpleimage1_normAddBlend.png +0 -0
  2431. psychopy/tests/data/simpleimage1_normHexbackground.png +0 -0
  2432. psychopy/tests/data/simpleimage1_normNoShade.png +0 -0
  2433. psychopy/tests/data/simpleimage1_pix.png +0 -0
  2434. psychopy/tests/data/simpleimage1_stencil.png +0 -0
  2435. psychopy/tests/data/test001EntryImporting.psyexp +66 -0
  2436. psychopy/tests/data/testMovie.mp4 +0 -0
  2437. psychopy/tests/data/test_circle_radius_.1height.png +0 -0
  2438. psychopy/tests/data/test_circle_radius_.2height.png +0 -0
  2439. psychopy/tests/data/test_circle_radius_10pix.png +0 -0
  2440. psychopy/tests/data/test_circle_radius_20pix.png +0 -0
  2441. psychopy/tests/data/test_form_combinations_choice_bigItem.png +0 -0
  2442. psychopy/tests/data/test_form_combinations_choice_bigItemOverflow.png +0 -0
  2443. psychopy/tests/data/test_form_combinations_choice_bigResp.png +0 -0
  2444. psychopy/tests/data/test_form_combinations_choice_bigRespOverflow.png +0 -0
  2445. psychopy/tests/data/test_form_combinations_description_bigItem.png +0 -0
  2446. psychopy/tests/data/test_form_combinations_description_bigItemOverflow.png +0 -0
  2447. psychopy/tests/data/test_form_combinations_description_bigResp.png +0 -0
  2448. psychopy/tests/data/test_form_combinations_description_bigRespOverflow.png +0 -0
  2449. psychopy/tests/data/test_form_combinations_free text_bigItem.png +0 -0
  2450. psychopy/tests/data/test_form_combinations_free text_bigItemOverflow.png +0 -0
  2451. psychopy/tests/data/test_form_combinations_free text_bigResp.png +0 -0
  2452. psychopy/tests/data/test_form_combinations_free text_bigRespOverflow.png +0 -0
  2453. psychopy/tests/data/test_form_combinations_heading_bigItem.png +0 -0
  2454. psychopy/tests/data/test_form_combinations_heading_bigItemOverflow.png +0 -0
  2455. psychopy/tests/data/test_form_combinations_heading_bigResp.png +0 -0
  2456. psychopy/tests/data/test_form_combinations_heading_bigRespOverflow.png +0 -0
  2457. psychopy/tests/data/test_form_combinations_radio_bigItem.png +0 -0
  2458. psychopy/tests/data/test_form_combinations_radio_bigItemOverflow.png +0 -0
  2459. psychopy/tests/data/test_form_combinations_radio_bigResp.png +0 -0
  2460. psychopy/tests/data/test_form_combinations_radio_bigRespOverflow.png +0 -0
  2461. psychopy/tests/data/test_form_combinations_rating_bigItem.png +0 -0
  2462. psychopy/tests/data/test_form_combinations_rating_bigItemOverflow.png +0 -0
  2463. psychopy/tests/data/test_form_combinations_rating_bigResp.png +0 -0
  2464. psychopy/tests/data/test_form_combinations_rating_bigRespOverflow.png +0 -0
  2465. psychopy/tests/data/test_form_combinations_slider_bigItem.png +0 -0
  2466. psychopy/tests/data/test_form_combinations_slider_bigItemOverflow.png +0 -0
  2467. psychopy/tests/data/test_form_combinations_slider_bigResp.png +0 -0
  2468. psychopy/tests/data/test_form_combinations_slider_bigRespOverflow.png +0 -0
  2469. psychopy/tests/data/test_get_resources/blue.png +0 -0
  2470. psychopy/tests/data/test_get_resources/groupA.csv +3 -0
  2471. psychopy/tests/data/test_get_resources/groupB.csv +3 -0
  2472. psychopy/tests/data/test_get_resources/groups.csv +3 -0
  2473. psychopy/tests/data/test_get_resources/handledbyrm_constrloop.psyexp +143 -0
  2474. psychopy/tests/data/test_get_resources/handledbyrm_noloop.psyexp +114 -0
  2475. psychopy/tests/data/test_get_resources/handledbyrm_recurloop.psyexp +138 -0
  2476. psychopy/tests/data/test_get_resources/handledbyrm_strloop.psyexp +126 -0
  2477. psychopy/tests/data/test_get_resources/handledbystatic_constrloop.psyexp +141 -0
  2478. psychopy/tests/data/test_get_resources/handledbystatic_noloop.psyexp +112 -0
  2479. psychopy/tests/data/test_get_resources/handledbystatic_recurloop.psyexp +136 -0
  2480. psychopy/tests/data/test_get_resources/handledbystatic_strloop.psyexp +124 -0
  2481. psychopy/tests/data/test_get_resources/unhandled_constrloop.psyexp +128 -0
  2482. psychopy/tests/data/test_get_resources/unhandled_noloop.psyexp +99 -0
  2483. psychopy/tests/data/test_get_resources/unhandled_recurloop.psyexp +123 -0
  2484. psychopy/tests/data/test_get_resources/unhandled_strloop.psyexp +111 -0
  2485. psychopy/tests/data/test_get_resources/white.png +0 -0
  2486. psychopy/tests/data/test_get_resources/yellow.png +0 -0
  2487. psychopy/tests/data/test_image_aspect_default_None.png +0 -0
  2488. psychopy/tests/data/test_image_aspect_default_xFull_yNone.png +0 -0
  2489. psychopy/tests/data/test_image_aspect_default_xNone_yFull.png +0 -0
  2490. psychopy/tests/data/test_image_aspect_default_xNone_yNone.png +0 -0
  2491. psychopy/tests/data/test_image_flip_anchor_horiz.png +0 -0
  2492. psychopy/tests/data/test_image_flip_anchor_vert.png +0 -0
  2493. psychopy/tests/data/test_loops/testLoopsBlocks.psyexp +161 -0
  2494. psychopy/tests/data/test_loops/testStaircase.psyexp +105 -0
  2495. psychopy/tests/data/test_loops/test_current_loop_attr.psyexp +185 -0
  2496. psychopy/tests/data/test_panorama/panoramaTestImage.png +0 -0
  2497. psychopy/tests/data/test_panorama/panoramaTestImage.svg +1 -0
  2498. psychopy/tests/data/test_panorama/testPanorama_mvmt_-0.3_-0.3.png +0 -0
  2499. psychopy/tests/data/test_panorama/testPanorama_mvmt_-0.3_0.3.png +0 -0
  2500. psychopy/tests/data/test_panorama/testPanorama_mvmt_-1.0_-0.3.png +0 -0
  2501. psychopy/tests/data/test_panorama/testPanorama_mvmt_-1.0_0.3.png +0 -0
  2502. psychopy/tests/data/test_panorama/testPanorama_mvmt_0.0_-1.0.png +0 -0
  2503. psychopy/tests/data/test_panorama/testPanorama_mvmt_0.0_1.0.png +0 -0
  2504. psychopy/tests/data/test_panorama/testPanorama_mvmt_0.3_-0.3.png +0 -0
  2505. psychopy/tests/data/test_panorama/testPanorama_mvmt_0.3_0.3.png +0 -0
  2506. psychopy/tests/data/test_resources.psyexp +491 -0
  2507. psychopy/tests/data/test_session/outside_root/externalExp.psyexp +116 -0
  2508. psychopy/tests/data/test_session/root/annotation/annotation.psyexp +161 -0
  2509. psychopy/tests/data/test_session/root/error/error.psyexp +93 -0
  2510. psychopy/tests/data/test_session/root/exp1/exp1.psyexp +133 -0
  2511. psychopy/tests/data/test_session/root/exp2/exp2.psyexp +133 -0
  2512. psychopy/tests/data/test_session/root/frameRate/frameRate.psyexp +114 -0
  2513. psychopy/tests/data/test_session/root/invUseVersion/invUseVersion.psyexp +133 -0
  2514. psychopy/tests/data/test_session/root/testClockFormat/testClockFormat.psyexp +122 -0
  2515. psychopy/tests/data/test_session/root/testCtrls/testCtrls.psyexp +115 -0
  2516. psychopy/tests/data/test_session/root/testEditExpInfo/testEditExpInfo.psyexp +135 -0
  2517. psychopy/tests/data/test_session/root/testNamedButtonBox/testNamedButtonBox.psyexp +145 -0
  2518. psychopy/tests/data/test_slider_horiz_accute_horiz.png +0 -0
  2519. psychopy/tests/data/test_slider_horiz_accute_vert.png +0 -0
  2520. psychopy/tests/data/test_slider_horiz_horiz.png +0 -0
  2521. psychopy/tests/data/test_slider_horiz_obtuse_horiz.png +0 -0
  2522. psychopy/tests/data/test_slider_horiz_obtuse_vert.png +0 -0
  2523. psychopy/tests/data/test_slider_horiz_vert.png +0 -0
  2524. psychopy/tests/data/test_slider_ticklabelloc_blanks.png +0 -0
  2525. psychopy/tests/data/test_slider_ticklabelloc_clustered.png +0 -0
  2526. psychopy/tests/data/test_slider_ticklabelloc_morelabels.png +0 -0
  2527. psychopy/tests/data/test_slider_ticklabelloc_morelabelsclustered.png +0 -0
  2528. psychopy/tests/data/test_slider_ticklabelloc_moreticks.png +0 -0
  2529. psychopy/tests/data/test_slider_ticklabelloc_moreticksclustered.png +0 -0
  2530. psychopy/tests/data/test_slider_ticklabelloc_nolabels.png +0 -0
  2531. psychopy/tests/data/test_slider_ticklabelloc_noticks.png +0 -0
  2532. psychopy/tests/data/test_slider_ticklabelloc_simple.png +0 -0
  2533. psychopy/tests/data/test_slider_triangle_horiz_False_flip_False.png +0 -0
  2534. psychopy/tests/data/test_slider_triangle_horiz_False_flip_True.png +0 -0
  2535. psychopy/tests/data/test_slider_triangle_horiz_True_flip_False.png +0 -0
  2536. psychopy/tests/data/test_slider_triangle_horiz_True_flip_True.png +0 -0
  2537. psychopy/tests/data/test_static_component_script.psyexp +76 -0
  2538. psychopy/tests/data/test_win_bg_large_256_default.png +0 -0
  2539. psychopy/tests/data/test_win_bg_large_500_default.png +0 -0
  2540. psychopy/tests/data/test_win_bg_small_200_default.png +0 -0
  2541. psychopy/tests/data/test_win_bg_small_256_default.png +0 -0
  2542. psychopy/tests/data/test_win_bg_tall_200_default.png +0 -0
  2543. psychopy/tests/data/test_win_bg_tall_256_default.png +0 -0
  2544. psychopy/tests/data/test_win_bg_tall_500_default.png +0 -0
  2545. psychopy/tests/data/test_win_bg_tall_fill_default.png +0 -0
  2546. psychopy/tests/data/test_win_bg_wide_200_default.png +0 -0
  2547. psychopy/tests/data/test_win_bg_wide_256_default.png +0 -0
  2548. psychopy/tests/data/test_win_bg_wide_500_default.png +0 -0
  2549. psychopy/tests/data/test_win_bg_wide_fill_default.png +0 -0
  2550. psychopy/tests/data/test_win_bgcolor_blue.png +0 -0
  2551. psychopy/tests/data/test_win_bgcolor_green.png +0 -0
  2552. psychopy/tests/data/test_win_bgcolor_red.png +0 -0
  2553. psychopy/tests/data/testimage.jpg +0 -0
  2554. psychopy/tests/data/testimagegray.jpg +0 -0
  2555. psychopy/tests/data/testpixels.png +0 -0
  2556. psychopy/tests/data/testwedges.png +0 -0
  2557. psychopy/tests/data/text1_cm.png +0 -0
  2558. psychopy/tests/data/text1_deg.png +0 -0
  2559. psychopy/tests/data/text1_degFlat.png +0 -0
  2560. psychopy/tests/data/text1_degFlatPos.png +0 -0
  2561. psychopy/tests/data/text1_height.png +0 -0
  2562. psychopy/tests/data/text1_norm.png +0 -0
  2563. psychopy/tests/data/text1_normAddBlend.png +0 -0
  2564. psychopy/tests/data/text1_normAddBlend_local.png +0 -0
  2565. psychopy/tests/data/text1_normHexbackground.png +0 -0
  2566. psychopy/tests/data/text1_normHexbackground_local.png +0 -0
  2567. psychopy/tests/data/text1_normNoShade.png +0 -0
  2568. psychopy/tests/data/text1_norm_local.png +0 -0
  2569. psychopy/tests/data/text1_pix.png +0 -0
  2570. psychopy/tests/data/text1_stencil.png +0 -0
  2571. psychopy/tests/data/text2_cm.png +0 -0
  2572. psychopy/tests/data/text2_deg.png +0 -0
  2573. psychopy/tests/data/text2_degFlat.png +0 -0
  2574. psychopy/tests/data/text2_degFlatPos.png +0 -0
  2575. psychopy/tests/data/text2_height.png +0 -0
  2576. psychopy/tests/data/text2_norm.png +0 -0
  2577. psychopy/tests/data/text2_normNoShade.png +0 -0
  2578. psychopy/tests/data/text2_pix.png +0 -0
  2579. psychopy/tests/data/text2_stencil.png +0 -0
  2580. psychopy/tests/data/textbox_charcolors_default_roygbiv.png +0 -0
  2581. psychopy/tests/data/textbox_charcolors_default_white_hello_black_there.png +0 -0
  2582. psychopy/tests/data/textbox_default_align_bottom_center.png +0 -0
  2583. psychopy/tests/data/textbox_default_align_bottom_left.png +0 -0
  2584. psychopy/tests/data/textbox_default_align_bottom_right.png +0 -0
  2585. psychopy/tests/data/textbox_default_align_center.png +0 -0
  2586. psychopy/tests/data/textbox_default_align_center_center.png +0 -0
  2587. psychopy/tests/data/textbox_default_align_center_left.png +0 -0
  2588. psychopy/tests/data/textbox_default_align_center_right.png +0 -0
  2589. psychopy/tests/data/textbox_default_align_centre.png +0 -0
  2590. psychopy/tests/data/textbox_default_align_centre_centre.png +0 -0
  2591. psychopy/tests/data/textbox_default_align_more_than_two_words.png +0 -0
  2592. psychopy/tests/data/textbox_default_align_someword.png +0 -0
  2593. psychopy/tests/data/textbox_default_align_top_center.png +0 -0
  2594. psychopy/tests/data/textbox_default_align_top_left.png +0 -0
  2595. psychopy/tests/data/textbox_default_align_top_right.png +0 -0
  2596. psychopy/tests/data/textbox_default_colors_WOB.png +0 -0
  2597. psychopy/tests/data/textbox_default_colors_exemplar1.png +0 -0
  2598. psychopy/tests/data/textbox_default_colors_exemplar2.png +0 -0
  2599. psychopy/tests/data/textbox_default_colors_exemplar3.png +0 -0
  2600. psychopy/tests/data/textbox_default_colors_tyke1.png +0 -0
  2601. psychopy/tests/data/textbox_default_colors_tyke2.png +0 -0
  2602. psychopy/tests/data/textbox_default_colors_tyke3.png +0 -0
  2603. psychopy/tests/data/textbox_default_cutoff_top.png +0 -0
  2604. psychopy/tests/data/textbox_default_exemplar_1.png +0 -0
  2605. psychopy/tests/data/textbox_default_exemplar_2.png +0 -0
  2606. psychopy/tests/data/textbox_default_exemplar_3.png +0 -0
  2607. psychopy/tests/data/textbox_default_exemplar_4.png +0 -0
  2608. psychopy/tests/data/textbox_default_tyke_1.png +0 -0
  2609. psychopy/tests/data/textbox_default_tyke_2.png +0 -0
  2610. psychopy/tests/data/textbox_typing_blank.png +0 -0
  2611. psychopy/tests/data/textbox_typing_longKoeran.png +0 -0
  2612. psychopy/tests/data/textbox_typing_longWord.png +0 -0
  2613. psychopy/tests/data/textbox_typing_navDel.png +0 -0
  2614. psychopy/tests/data/textbox_typing_navLR.png +0 -0
  2615. psychopy/tests/data/textbox_typing_newline.png +0 -0
  2616. psychopy/tests/data/textbox_typing_pangram.png +0 -0
  2617. psychopy/tests/data/textbox_uax14_align_bottom_center.png +0 -0
  2618. psychopy/tests/data/textbox_uax14_align_bottom_left.png +0 -0
  2619. psychopy/tests/data/textbox_uax14_align_bottom_right.png +0 -0
  2620. psychopy/tests/data/textbox_uax14_align_center.png +0 -0
  2621. psychopy/tests/data/textbox_uax14_align_center_center.png +0 -0
  2622. psychopy/tests/data/textbox_uax14_align_center_left.png +0 -0
  2623. psychopy/tests/data/textbox_uax14_align_center_right.png +0 -0
  2624. psychopy/tests/data/textbox_uax14_align_centre.png +0 -0
  2625. psychopy/tests/data/textbox_uax14_align_centre_centre.png +0 -0
  2626. psychopy/tests/data/textbox_uax14_align_more_than_two_words.png +0 -0
  2627. psychopy/tests/data/textbox_uax14_align_someword.png +0 -0
  2628. psychopy/tests/data/textbox_uax14_align_top_center.png +0 -0
  2629. psychopy/tests/data/textbox_uax14_align_top_left.png +0 -0
  2630. psychopy/tests/data/textbox_uax14_align_top_right.png +0 -0
  2631. psychopy/tests/data/textbox_uax14_colors_WOB.png +0 -0
  2632. psychopy/tests/data/textbox_uax14_colors_exemplar1.png +0 -0
  2633. psychopy/tests/data/textbox_uax14_colors_exemplar2.png +0 -0
  2634. psychopy/tests/data/textbox_uax14_colors_exemplar3.png +0 -0
  2635. psychopy/tests/data/textbox_uax14_colors_tyke1.png +0 -0
  2636. psychopy/tests/data/textbox_uax14_colors_tyke2.png +0 -0
  2637. psychopy/tests/data/textbox_uax14_colors_tyke3.png +0 -0
  2638. psychopy/tests/data/textbox_uax14_cutoff_top.png +0 -0
  2639. psychopy/tests/data/textbox_uax14_exemplar_1.png +0 -0
  2640. psychopy/tests/data/textbox_uax14_exemplar_2.png +0 -0
  2641. psychopy/tests/data/textbox_uax14_exemplar_3.png +0 -0
  2642. psychopy/tests/data/textbox_uax14_exemplar_4.png +0 -0
  2643. psychopy/tests/data/textbox_uax14_tyke_1.png +0 -0
  2644. psychopy/tests/data/textbox_uax14_tyke_2.png +0 -0
  2645. psychopy/tests/data/trialTypes.csv +1 -0
  2646. psychopy/tests/data/trialTypes.docx +0 -0
  2647. psychopy/tests/data/trialTypes.pkl +0 -0
  2648. psychopy/tests/data/trialTypes.tsv +7 -0
  2649. psychopy/tests/data/trialTypes.xls +0 -0
  2650. psychopy/tests/data/trialTypes.xlsx +0 -0
  2651. psychopy/tests/data/trialTypes_eu.csv +7 -0
  2652. psychopy/tests/data/trialsBlankCols.xlsx +0 -0
  2653. psychopy/tests/data/wedge1_cm.png +0 -0
  2654. psychopy/tests/data/wedge1_deg.png +0 -0
  2655. psychopy/tests/data/wedge1_degFlat.png +0 -0
  2656. psychopy/tests/data/wedge1_degFlatPos.png +0 -0
  2657. psychopy/tests/data/wedge1_height.png +0 -0
  2658. psychopy/tests/data/wedge1_norm.png +0 -0
  2659. psychopy/tests/data/wedge1_normAddBlend.png +0 -0
  2660. psychopy/tests/data/wedge1_normAddBlend_local.png +0 -0
  2661. psychopy/tests/data/wedge1_normHexbackground.png +0 -0
  2662. psychopy/tests/data/wedge1_normHexbackground_local.png +0 -0
  2663. psychopy/tests/data/wedge1_normNoShade.png +0 -0
  2664. psychopy/tests/data/wedge1_norm_local.png +0 -0
  2665. psychopy/tests/data/wedge1_pix.png +0 -0
  2666. psychopy/tests/data/wedge1_stencil.png +0 -0
  2667. psychopy/tests/data/wedge2_cm.png +0 -0
  2668. psychopy/tests/data/wedge2_deg.png +0 -0
  2669. psychopy/tests/data/wedge2_degFlat.png +0 -0
  2670. psychopy/tests/data/wedge2_degFlatPos.png +0 -0
  2671. psychopy/tests/data/wedge2_height.png +0 -0
  2672. psychopy/tests/data/wedge2_norm.png +0 -0
  2673. psychopy/tests/data/wedge2_normAddBlend.png +0 -0
  2674. psychopy/tests/data/wedge2_normHexbackground.png +0 -0
  2675. psychopy/tests/data/wedge2_normNoShade.png +0 -0
  2676. psychopy/tests/data/wedge2_pix.png +0 -0
  2677. psychopy/tests/data/wedge2_stencil.png +0 -0
  2678. psychopy/tests/data/winScalePos_ori0_scale-1_-1_pos-0.4_0.png +0 -0
  2679. psychopy/tests/data/winScalePos_ori0_scale-1_-1_pos0_0.png +0 -0
  2680. psychopy/tests/data/winScalePos_ori0_scale-1_1_pos-0.4_0.png +0 -0
  2681. psychopy/tests/data/winScalePos_ori0_scale-1_1_pos0_0.png +0 -0
  2682. psychopy/tests/data/winScalePos_ori0_scale-2_-2_pos-0.4_0.png +0 -0
  2683. psychopy/tests/data/winScalePos_ori0_scale-2_-2_pos0_0.png +0 -0
  2684. psychopy/tests/data/winScalePos_ori0_scale-2_2_pos-0.4_0.png +0 -0
  2685. psychopy/tests/data/winScalePos_ori0_scale-2_2_pos0_0.png +0 -0
  2686. psychopy/tests/data/winScalePos_ori0_scale1_-1_pos-0.4_0.png +0 -0
  2687. psychopy/tests/data/winScalePos_ori0_scale1_-1_pos0_0.png +0 -0
  2688. psychopy/tests/data/winScalePos_ori0_scale1_1_pos-0.4_0.png +0 -0
  2689. psychopy/tests/data/winScalePos_ori0_scale1_1_pos0_0.png +0 -0
  2690. psychopy/tests/data/winScalePos_ori0_scale2_-2_pos-0.4_0.png +0 -0
  2691. psychopy/tests/data/winScalePos_ori0_scale2_-2_pos0_0.png +0 -0
  2692. psychopy/tests/data/winScalePos_ori0_scale2_2_pos-0.4_0.png +0 -0
  2693. psychopy/tests/data/winScalePos_ori0_scale2_2_pos0_0.png +0 -0
  2694. psychopy/tests/data/winScalePos_ori45_scale-1_-1_pos0_0.png +0 -0
  2695. psychopy/tests/data/winScalePos_ori45_scale-1_1_pos0_0.png +0 -0
  2696. psychopy/tests/data/winScalePos_ori45_scale-2_-2_pos0_0.png +0 -0
  2697. psychopy/tests/data/winScalePos_ori45_scale-2_2_pos0_0.png +0 -0
  2698. psychopy/tests/data/winScalePos_ori45_scale1_-1_pos0_0.png +0 -0
  2699. psychopy/tests/data/winScalePos_ori45_scale1_1_pos0_0.png +0 -0
  2700. psychopy/tests/data/winScalePos_ori45_scale2_-2_pos0_0.png +0 -0
  2701. psychopy/tests/data/winScalePos_ori45_scale2_2_pos0_0.png +0 -0
  2702. psychopy/tests/doc/run_btn.png +0 -0
  2703. psychopy/tests/doc/test-suite-bugs.jpg +0 -0
  2704. psychopy/tests/doc/user-bugs.jpg +0 -0
  2705. psychopy/tests/dummy_xorg.conf +21 -0
  2706. psychopy/tests/run.py +50 -0
  2707. psychopy/tests/test_Installation.py +38 -0
  2708. psychopy/tests/test_alerts/test_alerts.py +37 -0
  2709. psychopy/tests/test_alerts/test_alerttools.py +131 -0
  2710. psychopy/tests/test_app/__init__.py +0 -0
  2711. psychopy/tests/test_app/conftest.py +41 -0
  2712. psychopy/tests/test_app/test_builder/__init__.py +0 -0
  2713. psychopy/tests/test_app/test_builder/test_BuilderFrame.py +151 -0
  2714. psychopy/tests/test_app/test_builder/test_CompileFromBuilder.py +135 -0
  2715. psychopy/tests/test_app/test_builder/test_ComponentDialogs.py +98 -0
  2716. psychopy/tests/test_app/test_runner/__init__.py +0 -0
  2717. psychopy/tests/test_app/test_runner/test_RunnerFrame.py +166 -0
  2718. psychopy/tests/test_app/test_speed.py +144 -0
  2719. psychopy/tests/test_app/test_themes/test_icons.py +79 -0
  2720. psychopy/tests/test_codecov.py +29 -0
  2721. psychopy/tests/test_colors/test_Color.py +41 -0
  2722. psychopy/tests/test_data/dataPrev.xlsx +0 -0
  2723. psychopy/tests/test_data/test_ExperimentHandler.py +171 -0
  2724. psychopy/tests/test_data/test_MultiStairHandler.py +174 -0
  2725. psychopy/tests/test_data/test_StairHandlers.py +1241 -0
  2726. psychopy/tests/test_data/test_TrialHandler.py +335 -0
  2727. psychopy/tests/test_data/test_TrialHandler2.py +408 -0
  2728. psychopy/tests/test_data/test_TrialHandlerExt.py +359 -0
  2729. psychopy/tests/test_data/test_fitFunctions.py +101 -0
  2730. psychopy/tests/test_data/test_utils.py +169 -0
  2731. psychopy/tests/test_data/test_xlsx.py +92 -0
  2732. psychopy/tests/test_demos/test_builder_demos.py +52 -0
  2733. psychopy/tests/test_experiment/__init__.py +0 -0
  2734. psychopy/tests/test_experiment/known_py_diffs.txt +47 -0
  2735. psychopy/tests/test_experiment/needs_wx/__init__.py +0 -0
  2736. psychopy/tests/test_experiment/needs_wx/componsTemplate.txt +13730 -0
  2737. psychopy/tests/test_experiment/needs_wx/genComponsTemplate.py +130 -0
  2738. psychopy/tests/test_experiment/needs_wx/test_Experiment.py +406 -0
  2739. psychopy/tests/test_experiment/needs_wx/test_components.py +170 -0
  2740. psychopy/tests/test_experiment/test_component_compile_js.py +59 -0
  2741. psychopy/tests/test_experiment/test_component_compile_python.py +165 -0
  2742. psychopy/tests/test_experiment/test_components/__init__.py +1 -0
  2743. psychopy/tests/test_experiment/test_components/test_ButtonBox.py +216 -0
  2744. psychopy/tests/test_experiment/test_components/test_Code.py +82 -0
  2745. psychopy/tests/test_experiment/test_components/test_Image.py +24 -0
  2746. psychopy/tests/test_experiment/test_components/test_Mouse.py +149 -0
  2747. psychopy/tests/test_experiment/test_components/test_Polygon.py +81 -0
  2748. psychopy/tests/test_experiment/test_components/test_ResourceManager.py +60 -0
  2749. psychopy/tests/test_experiment/test_components/test_Settings.py +82 -0
  2750. psychopy/tests/test_experiment/test_components/test_Static.py +60 -0
  2751. psychopy/tests/test_experiment/test_components/test_all_components.py +162 -0
  2752. psychopy/tests/test_experiment/test_components/test_base_components.py +323 -0
  2753. psychopy/tests/test_experiment/test_experiment.py +103 -0
  2754. psychopy/tests/test_experiment/test_loops.py +95 -0
  2755. psychopy/tests/test_experiment/test_params.py +350 -0
  2756. psychopy/tests/test_experiment/test_py2js.py +230 -0
  2757. psychopy/tests/test_experiment/test_routines/__init__.py +1 -0
  2758. psychopy/tests/test_experiment/test_routines/test_EyetrackerCalibrationRoutine.py +9 -0
  2759. psychopy/tests/test_experiment/test_routines/test_PhotodiodeValidationRoutine.py +9 -0
  2760. psychopy/tests/test_experiment/test_routines/test_all_routines.py +23 -0
  2761. psychopy/tests/test_experiment/test_routines/test_base_routine.py +154 -0
  2762. psychopy/tests/test_experiment/test_routines/test_standalone_routines.py +36 -0
  2763. psychopy/tests/test_gui/test_DlgFromDictQt.py +82 -0
  2764. psychopy/tests/test_gui/test_DlgFromDictWx.py +82 -0
  2765. psychopy/tests/test_hardware/__init__.py +0 -0
  2766. psychopy/tests/test_hardware/test_CRS_BitsSharp.py +67 -0
  2767. psychopy/tests/test_hardware/test_CRS_bitsShaders.py +110 -0
  2768. psychopy/tests/test_hardware/test_device_manager.py +36 -0
  2769. psychopy/tests/test_hardware/test_emulator.py +106 -0
  2770. psychopy/tests/test_hardware/test_gammasci.py +35 -0
  2771. psychopy/tests/test_hardware/test_keyboard.py +73 -0
  2772. psychopy/tests/test_hardware/test_keyboard_events.py +362 -0
  2773. psychopy/tests/test_hardware/test_ports.py +151 -0
  2774. psychopy/tests/test_iohub/__init__.py +1 -0
  2775. psychopy/tests/test_iohub/test_computer.py +124 -0
  2776. psychopy/tests/test_iohub/test_event_get_and_clear.py +94 -0
  2777. psychopy/tests/test_iohub/test_keyboard.py +91 -0
  2778. psychopy/tests/test_iohub/test_launch.py +19 -0
  2779. psychopy/tests/test_iohub/testutil.py +54 -0
  2780. psychopy/tests/test_liaison/test_Liaison.py +228 -0
  2781. psychopy/tests/test_misc/__init__.py +0 -0
  2782. psychopy/tests/test_misc/memory_usage.py +164 -0
  2783. psychopy/tests/test_misc/test_GammaFun.py +15 -0
  2784. psychopy/tests/test_misc/test_clock.py +61 -0
  2785. psychopy/tests/test_misc/test_color.py +203 -0
  2786. psychopy/tests/test_misc/test_core.py +446 -0
  2787. psychopy/tests/test_misc/test_event.py +307 -0
  2788. psychopy/tests/test_misc/test_info.py +18 -0
  2789. psychopy/tests/test_misc/test_layout.py +49 -0
  2790. psychopy/tests/test_misc/test_locale.py +38 -0
  2791. psychopy/tests/test_misc/test_web.py +22 -0
  2792. psychopy/tests/test_monitors/test_monitors.py +91 -0
  2793. psychopy/tests/test_preferences/__init__.py +0 -0
  2794. psychopy/tests/test_preferences/test_prefs.py +28 -0
  2795. psychopy/tests/test_session/test_Session.py +253 -0
  2796. psychopy/tests/test_sound/__init__.py +0 -0
  2797. psychopy/tests/test_sound/test_audioclip.py +331 -0
  2798. psychopy/tests/test_sound/test_hamming.py +45 -0
  2799. psychopy/tests/test_sound/test_microphone.py +217 -0
  2800. psychopy/tests/test_sound/test_sound.py +67 -0
  2801. psychopy/tests/test_sound/test_sound_pygame.py +67 -0
  2802. psychopy/tests/test_tools/test_animationtools.py +51 -0
  2803. psychopy/tests/test_tools/test_arraytools.py +130 -0
  2804. psychopy/tests/test_tools/test_attributetools.py +257 -0
  2805. psychopy/tests/test_tools/test_colorspacetools.py +149 -0
  2806. psychopy/tests/test_tools/test_environmenttools.py +52 -0
  2807. psychopy/tests/test_tools/test_fileerrortools.py +97 -0
  2808. psychopy/tests/test_tools/test_filetools.py +104 -0
  2809. psychopy/tests/test_tools/test_imagetools.py +57 -0
  2810. psychopy/tests/test_tools/test_mathtools.py +688 -0
  2811. psychopy/tests/test_tools/test_stringtools.py +143 -0
  2812. psychopy/tests/test_tools/test_versionchooser.py +178 -0
  2813. psychopy/tests/test_tools/test_viewtools.py +67 -0
  2814. psychopy/tests/test_visual/__init__.py +0 -0
  2815. psychopy/tests/test_visual/measure_parity.py +243 -0
  2816. psychopy/tests/test_visual/test_all_stimuli.py +752 -0
  2817. psychopy/tests/test_visual/test_basevisual.py +534 -0
  2818. psychopy/tests/test_visual/test_brush.py +68 -0
  2819. psychopy/tests/test_visual/test_button.py +15 -0
  2820. psychopy/tests/test_visual/test_circle.py +66 -0
  2821. psychopy/tests/test_visual/test_contains_overlaps.py +242 -0
  2822. psychopy/tests/test_visual/test_custommouse.py +47 -0
  2823. psychopy/tests/test_visual/test_dots.py +155 -0
  2824. psychopy/tests/test_visual/test_form.py +414 -0
  2825. psychopy/tests/test_visual/test_framepacking.py +41 -0
  2826. psychopy/tests/test_visual/test_gamma.py +152 -0
  2827. psychopy/tests/test_visual/test_glfw_backend.py +14 -0
  2828. psychopy/tests/test_visual/test_image.py +218 -0
  2829. psychopy/tests/test_visual/test_panorama.py +41 -0
  2830. psychopy/tests/test_visual/test_progress.py +96 -0
  2831. psychopy/tests/test_visual/test_projections.py +215 -0
  2832. psychopy/tests/test_visual/test_projections_interactive.py +163 -0
  2833. psychopy/tests/test_visual/test_ratingScale.py +299 -0
  2834. psychopy/tests/test_visual/test_roi.py +99 -0
  2835. psychopy/tests/test_visual/test_shape.py +23 -0
  2836. psychopy/tests/test_visual/test_slider.py +328 -0
  2837. psychopy/tests/test_visual/test_target.py +35 -0
  2838. psychopy/tests/test_visual/test_textbox.py +474 -0
  2839. psychopy/tests/test_visual/test_winFlipTiming.py +95 -0
  2840. psychopy/tests/test_visual/test_winScalePos.py +77 -0
  2841. psychopy/tests/test_visual/test_window.py +107 -0
  2842. psychopy/tests/utils.py +318 -0
  2843. psychopy/tools/LineBreak.txt +3597 -0
  2844. psychopy/tools/__init__.py +9 -0
  2845. psychopy/tools/animationtools.py +49 -0
  2846. psychopy/tools/apptools.py +32 -0
  2847. psychopy/tools/arraytools.py +514 -0
  2848. psychopy/tools/attributetools.py +205 -0
  2849. psychopy/tools/audiotools.py +358 -0
  2850. psychopy/tools/colorspacetools.py +715 -0
  2851. psychopy/tools/coordinatetools.py +104 -0
  2852. psychopy/tools/environmenttools.py +62 -0
  2853. psychopy/tools/fileerrortools.py +54 -0
  2854. psychopy/tools/filetools.py +406 -0
  2855. psychopy/tools/fontmanager.py +1041 -0
  2856. psychopy/tools/gltools.py +4959 -0
  2857. psychopy/tools/imagetools.py +65 -0
  2858. psychopy/tools/linebreak.py +322 -0
  2859. psychopy/tools/mathtools.py +4040 -0
  2860. psychopy/tools/monitorunittools.py +270 -0
  2861. psychopy/tools/movietools.py +1071 -0
  2862. psychopy/tools/pkgtools.py +601 -0
  2863. psychopy/tools/plottools.py +25 -0
  2864. psychopy/tools/rifttools.py +76 -0
  2865. psychopy/tools/stereotools.py +9 -0
  2866. psychopy/tools/stimulustools.py +28 -0
  2867. psychopy/tools/stringtools.py +421 -0
  2868. psychopy/tools/systemtools.py +1331 -0
  2869. psychopy/tools/typetools.py +52 -0
  2870. psychopy/tools/unittools.py +16 -0
  2871. psychopy/tools/versionchooser.py +602 -0
  2872. psychopy/tools/viewtools.py +1084 -0
  2873. psychopy/tools/wizard.py +804 -0
  2874. psychopy/visual/__init__.py +124 -0
  2875. psychopy/visual/aperture.py +330 -0
  2876. psychopy/visual/backends/__init__.py +77 -0
  2877. psychopy/visual/backends/_base.py +481 -0
  2878. psychopy/visual/backends/gamma.py +349 -0
  2879. psychopy/visual/backends/glfwbackend.py +28 -0
  2880. psychopy/visual/backends/pygamebackend.py +343 -0
  2881. psychopy/visual/backends/pygletbackend.py +920 -0
  2882. psychopy/visual/basevisual.py +1952 -0
  2883. psychopy/visual/brush.py +204 -0
  2884. psychopy/visual/bufferimage.py +231 -0
  2885. psychopy/visual/button.py +206 -0
  2886. psychopy/visual/circle.py +173 -0
  2887. psychopy/visual/custommouse.py +263 -0
  2888. psychopy/visual/dot.py +668 -0
  2889. psychopy/visual/dropdown.py +165 -0
  2890. psychopy/visual/elementarray.py +728 -0
  2891. psychopy/visual/filters.py +419 -0
  2892. psychopy/visual/form.py +1180 -0
  2893. psychopy/visual/globalVars.py +24 -0
  2894. psychopy/visual/grating.py +501 -0
  2895. psychopy/visual/helpers.py +334 -0
  2896. psychopy/visual/image.py +440 -0
  2897. psychopy/visual/line.py +238 -0
  2898. psychopy/visual/movie.py +12 -0
  2899. psychopy/visual/movie2.py +829 -0
  2900. psychopy/visual/movie3.py +599 -0
  2901. psychopy/visual/movies/__init__.py +850 -0
  2902. psychopy/visual/movies/frame.py +255 -0
  2903. psychopy/visual/movies/metadata.py +242 -0
  2904. psychopy/visual/movies/players/__init__.py +62 -0
  2905. psychopy/visual/movies/players/_base.py +364 -0
  2906. psychopy/visual/movies/players/ffpyplayer_player.py +1399 -0
  2907. psychopy/visual/nnlvs.py +827 -0
  2908. psychopy/visual/noise.py +34 -0
  2909. psychopy/visual/panorama.py +313 -0
  2910. psychopy/visual/patch.py +29 -0
  2911. psychopy/visual/pie.py +248 -0
  2912. psychopy/visual/polygon.py +229 -0
  2913. psychopy/visual/progress.py +313 -0
  2914. psychopy/visual/radial.py +33 -0
  2915. psychopy/visual/ratingscale.py +1424 -0
  2916. psychopy/visual/rect.py +204 -0
  2917. psychopy/visual/rift.py +2654 -0
  2918. psychopy/visual/roi.py +141 -0
  2919. psychopy/visual/secondorder.py +29 -0
  2920. psychopy/visual/shaders.py +453 -0
  2921. psychopy/visual/shape.py +701 -0
  2922. psychopy/visual/simpleimage.py +303 -0
  2923. psychopy/visual/slider.py +1169 -0
  2924. psychopy/visual/stim3d.py +2712 -0
  2925. psychopy/visual/target.py +278 -0
  2926. psychopy/visual/text.py +759 -0
  2927. psychopy/visual/textbox/__init__.py +1280 -0
  2928. psychopy/visual/textbox/fontmanager.py +574 -0
  2929. psychopy/visual/textbox/parsedtext.py +317 -0
  2930. psychopy/visual/textbox/textgrid.py +278 -0
  2931. psychopy/visual/textbox/textureatlas.py +248 -0
  2932. psychopy/visual/textbox2/__init__.py +4 -0
  2933. psychopy/visual/textbox2/textbox2.py +1817 -0
  2934. psychopy/visual/vlcmoviestim.py +1294 -0
  2935. psychopy/visual/window.py +3706 -0
  2936. psychopy/visual/windowframepack.py +86 -0
  2937. psychopy/visual/windowwarp.py +457 -0
  2938. psychopy/voicekey/__init__.py +684 -0
  2939. psychopy/voicekey/demo_vks.py +12 -0
  2940. psychopy/voicekey/labjack_vks.py +50 -0
  2941. psychopy/voicekey/parallel_vks.py +44 -0
  2942. psychopy/voicekey/signal.py +42 -0
  2943. psychopy/voicekey/vk_tools.py +280 -0
  2944. psychopy/web.py +286 -0
  2945. psychopy-2024.1.0.dist-info/METADATA +154 -0
  2946. psychopy-2024.1.0.dist-info/RECORD +2950 -0
  2947. psychopy-2024.1.0.dist-info/WHEEL +4 -0
  2948. psychopy-2024.1.0.dist-info/entry_points.txt +3 -0
  2949. psychopy-2024.1.0.dist-info/licenses/AUTHORS.md +138 -0
  2950. psychopy-2024.1.0.dist-info/licenses/LICENSE +674 -0
psychopy/CHANGELOG.txt ADDED
@@ -0,0 +1,3571 @@
1
+ Changelog
2
+ =========
3
+
4
+ PsychoPy uses **major.minor.patch** version numbers:
5
+
6
+ - All changes to **major.minor** numbers indicate that changes are expected to change the behavior of PsychoPy experiments
7
+ - Changes to the **patch** version number are relativel minor bug fixes and we hope they do not change behavior
8
+
9
+ Updating without breaking existing studies
10
+ ------------------------------------------
11
+
12
+ We **strongly recommend** that, once your experiment is finished and is being run "for real",
13
+ that you apply the :ref:`useVersion <useVersion>` setting so that your study will always try
14
+ to run on the same PsychoPy version even where a different version is installed on the computer.
15
+ That setting often even allows PsychoPy to run experiments from versions that have not yet
16
+ been installed! If the dependencies haven't changed it will run.
17
+
18
+
19
+ PsychoPy 2023.2
20
+ ---------------
21
+
22
+ **Highlights:**
23
+
24
+ * Routine settings: Routines now have parameters of their own, giving control over their max duration, skipping the Routine altogether, or changing the way the window looks just for that Routine.
25
+ * Sort by priority: Columns in the data file can now be given a "priority" value, with the option to sort by priority instead of chronologically.
26
+ * Whisper transcription PLUGIN for Microphone: Using the OpenAI backend, Microphone transcriptions can be done quicker and more accurately, and include timing info for each word.
27
+ * Progress bar component: A visual component to show progress along an axis.
28
+ * Builder search dialog: Search for values across your whole experiment, then jump to the specific Routine/Component where it's present. Makes debugging much easier.
29
+ * Most stimuli now support a `draggable` attribute. If set to `draggable=True` then that stimulus should check/update position on each frame using `stim.doDragging()`
30
+
31
+ **Behaviour changes:**
32
+
33
+ * Eyetrackers (Tobii, SRR Eyelink, Gazepoint, PupilLabs) are now plugins rather than built-in, in keeping with the drive to cut down the dependencies of core PsychoPy
34
+
35
+ **Enhancements:**
36
+
37
+ * PsychoJS: Mobile-friendly viewport settings. by @lightest in #5380
38
+ * Allow experiment to run with different clocks (e.g. wall clock time instead of starting at t=0) by @TEParsons in #5621
39
+ * PsychoJS ShapeStim from Builder now supports custom vertices by @TEParsons in #5522
40
+ * Numerous improvements to plugins system and dialog
41
+ * Added `abortCurrentTrial` (Python only for now) method to `TrialHandler2` and `MultiStairHandler` by @mdcutone in #5423
42
+ * Better performance and fixes to FFPyPlayer movie engine
43
+ * Added `letterSpacing` attribute to Textbox by @TEParsons in #5487
44
+ * New `Session` class to run multiple experiments - create your stimulus window once and run multiple experiments in it, with the ability to pause/resume/stop the experiment. (Python only for now) Session can be controlled over `websockets` using the Liaison server
45
+ * Full support for Python 3.10, wxPython 4.2, and PyQt6
46
+ * Preserve tab order for Routines when saving/loading an experiment by @TEParsons in #5517
47
+ * Added audio settings to Camera component by @mdcutone in #5681
48
+ * Improved streaming of camera to disk by @mdcutone in #5551
49
+ * Window now explains it is performing timing test by @mdcutone in #5511
50
+ * Keyboard Components from Builder will store duration if available (if release has already occurred) by @TEParsons in #5569
51
+ * Show status text for objects in Flow panel by @TEParsons in #5443
52
+ * Make psychopy.Window title (and icon in pyglet) settable by @TEParsons in #5540
53
+ * UI enhancements to Coder and Runner by @TEParsons in #5539
54
+ * Multihead support for X11/Linux by @mdcutone in #5520
55
+ * Plugins Dialog now checks for version compatibility with PsychoPy by @TEParsons in #5649
56
+ * Install plugins to subdirectories by @mdcutone in #5398
57
+ * Make Save & Edit/View buttons on README window more explicit by @TEParsons in #5523
58
+ * New option to abbreviate long component names in Preferences, fixes #5574 by @TEParsons in #5586
59
+ * Highlight selected Routine in Flow panel by @TEParsons in #5588
60
+ * Better Builder visualisation very large experiments by @TEParsons in #5618
61
+ * Lock Flow panel buttons to the left when scrolling by @TEParsons in #5620
62
+ * ExperimentHandler.addData() now has optional `row` argument to specify previous entry by @TEParsons in #5652
63
+ * Fixed useVersion warning untracked working tree files would be overwritten by @peircej in #5670
64
+ * Add param to control whether movies/sounds end when the Routine does, by @TEParsons in #5415
65
+ * Add "transparent" as named color by @TEParsons in #5689
66
+ * Radio button styling was not work in Slider component in 2023.1, fixes #5661 (dev) by @TEParsons in #5691
67
+ * Allow expInfo fields to be marked as required (*) by @ainazay in #5543
68
+ * Fix VlcMovieStim by @marcpabst in #5702
69
+ * Added data file separator to expInfo by @EitanHemed in #5607
70
+ * Minor Textbox bugfixes by @ollie-d in #5723
71
+ * Extended autotranslate functions supported by py2js by @roelofsaj in #5713
72
+ * Submitting GitHub issues now supports templates by @shun2wang in #5732
73
+ * Numerous Documentation improvements by @fboers @kimDundas @patrickabolger @EitanHemed @larsoner @pmolfese
74
+
75
+ PsychoPy 2023.2.0
76
+ ~~~~~~~~~~~~~~~~~
77
+
78
+ **Key fixes (from 2023.1.x series):**
79
+
80
+ * Fixed missing comma in Brush component code by @TEParsons in #5564
81
+ * Mouse position incorrect when desktop scaling not 100% on Windows by @mdcutone in #5758
82
+ * Fixed `AttributeError: 'SoundPTB' object has no attribute 'isFinished'` by @mdcutone in #5541
83
+ * Better handling of missing audio libraries - allow the app to load always and fallback to PsychToolBox if possible
84
+ * Better handling of Mouse.getPos() when no windows open by @peircej in #5763
85
+ * Param updates code for Sound in JS was using Python syntax by @TEParsons in #5762
86
+ * More informative error when useVersion fails to write script by @TEParsons in #5761
87
+ * saveAsWideText was using deprecated DataFrame.append function by @TEParsons in #5507
88
+ * Polygon/ROI vertices caused error if trying to set each frame by @TEParsons in #5686
89
+ * Don't crash if user attempts to initialise ioHub more than once by @TEParsons in #5533
90
+ * Added log file entry for Keyboard.clearEvents() by @peircej in #5558
91
+ * Fixed missing movie file in MoviePause.py demo by @EitanHemed in #5583
92
+ * Coder source tree thought any variable name beginning with `def` was a function def by @TEParsons in #5581
93
+ * README filename wasn't being updated for new frames by @TEParsons in #5593
94
+ * Fix Markdown parsing on README files by @TEParsons in #5572
95
+ * Ignore Escape in Keyboard component if needed to end experiment by @TEParsons in #5598
96
+ * Joystick component - SyntaxError in generated code by @EitanHemed in #5601
97
+ * Error `got an unexpected keyword argument "reset"` when trying to pause using PTB sounds by @peircej in #5619
98
+ * PsychoPJS: Fix issue with first frame of image being shown as default.png in JS by @TEParsons in #5716
99
+ * Add `self` to list of disallowed Component names by @TEParsons in #5742
100
+ * Split compound Survey answers into individual columns by @TEParsons in #5734
101
+ * Fixed audio file not resetting during (Python) experiment by @mdcutone in #5712
102
+ * If trying to load previously open file that is corrupted, do at least open the app (with an empty window) by @TEParsons in #5696
103
+ * Better catching of name errors in conditions file by @TEParsons in #5654
104
+
105
+ **New contributors:**
106
+
107
+ * @ranibaron made their first contribution in #5394
108
+ * @patrickabolger made their first contribution in #5414
109
+ * @fboers made their first contribution in #5482
110
+ * @gtosh4 made their first contribution in #5609
111
+ * @ainazay made their first contribution in #5543
112
+ * @marcpabst made their first contribution in #5702
113
+
114
+ PsychoPy 2023.2.1
115
+ ~~~~~~~~~~~~~~~~~
116
+
117
+ **Key fixes:**
118
+
119
+ * Eyetracker plugins were not being detected by Builder by @peircej in #5808
120
+ * Fix device selection for Microphone component by @mdcutone in #5811
121
+ * ioHub reporting negative response times by @TEParsons in #5807
122
+ * Add attributeSetter / set functions for borderWidth by @TEParsons in #5779
123
+ * Option for hiding splash screen available in Preferences by @TEParsons in #5776
124
+ * `endExpNow` was only defined if Escape was enabled by @TEParsons in #5780
125
+ * Polygon JS from Builder failing to initialise code by @TEParsons in #5783
126
+ * Copied Routines were getting two Routine Settings components by @TEParsons in #5792
127
+ * Fix unresponsive scrolling in Routine canvas by @TEParsons in #5795
128
+ * update Japanese translation by @hsogo in #5789
129
+ * If rewinding Sound (seek to before end) then mark as not finished by @TEParsons in #5781
130
+ * Fixed <expname>_legacy-legacy-browser.js is not a file by @TEParsons in #5799
131
+ * Coder was making an error when opening a new file by @TEParsons in #5801
132
+ * Conditions file was being cleared when loop type is "interleaved staircase" by @TEParsons in #5803
133
+ * Add JS code to set window background image on init by @TEParsons in #5806
134
+ * MacOS iohub "TypeError: startswith first arg must be bytes..." by @peircej in #5812
135
+ * New projects sometimes wouldn't have a local root by @TEParsons in #5814
136
+ * Handle when Static Component tries to set param of deleted/disabled Component by @TEParsons in #5815
137
+ * Python 3.10 version bump had broken GIF avatars by @TEParsons in #5791
138
+
139
+ **Full Changelog**: https://github.com/psychopy/psychopy/compare/2023.2.0...2023.2.1
140
+
141
+ PsychoPy 2023.2.2
142
+ ~~~~~~~~~~~~~~~~~
143
+
144
+ **Key fixes:**
145
+
146
+ * Fixed ioHub keyboard timing (was using incorrect timestamp offset) by @TEParsons in #5807
147
+ * Fixed locating config files for ioHub extensions which prevented them from loading by @mdcutone in #5821
148
+ * Fixed bug whereby iohub couldn't find plugin backends on Mac by @TEParsons in #5824
149
+ * Better handing of experiments with Components that are now only in plugins by @TEParsons in #5834 #5831 #5833
150
+ * Fixed "logFile does not exist" error when "Save log file" is False by @TEParsons in #5836
151
+ * Fixed matrix question breaking apart code in Survey Routine by @TEParsons in #5840
152
+ * Allow expInfo to use values from Code components without overriding them by @TEParsons in #5837
153
+ * Fixed error in Form when using a radio ctrl by @TEParsons in #5843
154
+ * Polygon broken in JavaScript code from Builder by @TEParsons in #5844
155
+ * Ignore spaces when getting variables from name by @TEParsons in #5841
156
+ * "tThisFlip not defined" error when using Routine stop time online by @TEParsons in #5849
157
+ * "eyetracker is not defined" error on experiment quit by @TEParsons in #5850
158
+ * Fixed incorrect formatting in `AudioDeviceInfo` `__repr__` by @mdcutone in #5851
159
+ * Fixed message order in Plugins dialog output by @TEParsons in #5865
160
+ * Update path of README dialog on "save as" by @TEParsons in #5863
161
+ * Fixed sounds restarting at the end of a Routine where they had perviously stopped by @peircej in #5874
162
+
163
+ **Various documentation updates:**
164
+
165
+ * Progress bar API and documentation by @suelynnmah in #5822
166
+ * Bart Builder demo fix by @suelynnmah in #5823
167
+ * psychophysicsStaircase demo fix by @suelynnmah in #5829
168
+ * Fix colors demo by @TEParsons in #5838
169
+ * Sternberg Builder demo - checked save log file to remove logFile error by @suelynnmah in #5845
170
+
171
+ PsychoPy 2023.2.3
172
+ ~~~~~~~~~~~~~~~~~
173
+
174
+ ## Key fixes (from 2023.2.2)
175
+
176
+ * Silenced warning about numpy version number in Windows Standalone
177
+ * Fixed issue with "cannot import Never from typing_extensions" in Windows standalone
178
+ * Fixed error detecting eyetracker config files by @TEParsons in #5883 #5886
179
+ * Fixed eyetracker calibration routine freezing by @mdcutone in #5901
180
+ * Fixed support for updated Pupil Labs plugin w/ support for Neon by @domstoppable in #5887
181
+ * Fixed useVersion for JS - needed to create a _legacy.js file by @TEParsons in #5918
182
+ * Fixed SerialOut parity should be N not None by @TEParsons in #5907
183
+ * Fixed bug whereby Textbox's scrolling Aperture was applied to all stim by @TEParsons in #5934
184
+
185
+ ## Translation works
186
+
187
+ * Continued translation into Simplified Chinese (and now Traditional Chinese) and beginnings of translations into Spanish, Hebrew: #5891 #5892 #5893 #5894 #5895 #5897 #5904 #5912 #5915 #5917 #5923 #5903 #5932 #5925
188
+
189
+ ## New Contributors
190
+
191
+ * @meltemkaraca made their first contribution in #5891
192
+ * @SarvCh made their first contribution in #5893
193
+ * @ymhuang1005 made their first contribution in #5894
194
+ * @ice-yu made their first contribution in #5895
195
+ * @domstoppable made their first contribution in #5887
196
+ * @jingrun213 made their first contribution in #5897
197
+ * @psych575 made their first contribution in #5912
198
+
199
+ **Full Changelog**: https://github.com/psychopy/psychopy/compare/2023.2.2...2023.2.3
200
+
201
+ PsychoPy 2023.1
202
+ ---------------
203
+
204
+ **Release series 2023.1. Highlights**
205
+
206
+ - **Pavlovia Surveys:** can now be integrated into PsychoPy online studies. You still create your
207
+ survey in the Pavlovia Survey Creator (on you Pavlovia Dashboard) but you can then incorporate
208
+ them as either a link or an embedded json file into your PsychoJS study. This only works for
209
+ online studies at present
210
+ - **Panorama Stimuli:** now supported in PsychoPy (lab-based) studies. You can add a photo-sphere
211
+ as a stimulus (e.g. create them in Street View app on Android phones) and then insert them into
212
+ Builder and explore
213
+ - **Plugins and Packages:** You can now add packages to your PsychoPy installation with a GUI that
214
+ installs new packages to your user folder (without needing admin rights). Some of PsychoPy's
215
+ existing functionality has also moved out to "Plugins"
216
+
217
+ - For users, plugins mean more control over what functionality you want PsychoPy to support
218
+ - For developers, plugins mean keeping more independence over your code and ownership
219
+
220
+ - **Speech Point:** on TextBox allows a tail to be added giving the impression of a cartoon speech
221
+ bubble (lab-based only, currently)
222
+ - **MovieStim:** further improvements to performance and fixes
223
+
224
+ On top of the [new features added in 2023.1 series](https://github.com/psychopy/psychopy/releases/tag/2023.1.0)
225
+
226
+ **Fixes:**
227
+
228
+ * Fix crash following gamma semi-auto correction (when laying out dialog box) dialog box by @TEParsons in #5452
229
+ * Crashing due to outdated `core.getFromNames` in Mouse by @TEParsons in #5474
230
+ * Setting Image as a numpy array caused a TypeError by @TEParsons in #5453
231
+ * Handle invalid paths when stringifying params by @TEParsons in #5465
232
+ * Swap all references to Panorama.altitude with Panorama.elevation by @TEParsons in #5471
233
+ * Fix typo in Survey routine - `stauts` rather than `status` by @TEParsons in #5468
234
+ * If user requests showing README and there isn't one then show a blank file @TEParsons in #5470
235
+ * Fix typos in high contrast theme by @TEParsons in #5504
236
+ * Sound files online were playing forever if duration set to <0.5s by @TEParsons in #5466
237
+ * Let Builder treat Sound.isPlaying and Sound.status==STARTED as synonymous by @TEParsons in #5428
238
+ * Correctly ignore blank columns by @wader in #5406
239
+ * Viewport was left as None when checkTiming was unticked by @TEParsons in #5451
240
+ * Better handling when a Pavlovia project / plugin avatars in the app @TEParsons in #5458 #5460 #5469
241
+
242
+ **Documentation fixes by**
243
+
244
+ * @roelofsaj in #5477 #5483 #5484
245
+ * @ChenBri in #5478 #5480
246
+ * @ChristopheBossens in #5481
247
+ * @suelynnmah in #5444
248
+
249
+ **New Contributors**
250
+
251
+ * @roelofsaj made their first contribution in #5477
252
+ * @ChenBri made their first contribution in #5478
253
+ * @ChristopheBossens made their first contribution in #5481
254
+ * @wader made their first contribution in #5406
255
+
256
+ **Full Changelog**: https://github.com/psychopy/psychopy/compare/2023.1.1...2023.1.2
257
+
258
+ PsychoPy 2023.1.1
259
+ ~~~~~~~~~~~~~~~~~
260
+
261
+ **Fixed:**
262
+
263
+ - Better plugin handling:
264
+
265
+ - Better handling of plugin dependencies (moved to sub-folders) #5398
266
+ - More responsive plugins dialog (not waiting for all plugin info to populate) #5410
267
+ - Live info updates as the plugin installs #5399
268
+ - Sort package versions newest first #a4987c95f
269
+
270
+ - Panorama stimulus no longer needs FBO=False on Window
271
+ - MovieStim locally opacity was not being honored #094731084
272
+ - MovieStim online crashed if using setEveryRepeat #ed484ba17
273
+ - Close eyetracker connection if experiment ends early #f9b6f98e4
274
+ - README dialog was created twice #5383
275
+ - Online Experiments with image sitmuli crashing with unknown resource "default.png"
276
+ - Nested loops were crashing
277
+ - Fixed various failures to translate #804bfcde2 #b1b611ec1
278
+ - Console gave encoding errors when opening MacOS csv files on Windows machines #5396
279
+ - Failure to log in to Pavlovia #5382 #5450
280
+
281
+ PsychoPy 2022.3
282
+ ---------------
283
+
284
+ **Highlights:**
285
+ - Online: Interface in Pavlovia for building and running online questionnaires! As this is built on top of the
286
+ open-source [SurveyJS](https://surveyjs.io/) package it offers a rich feature list right off the bat. The new
287
+ Pavlovia Survey component you can insert a survey into your experiment just like you would a Form component.
288
+ - Python: New Panorama component lets you view a Photo Sphere image as a 3d scene within Python experiments.
289
+ - Python: New style for slider:
290
+ - **choice**: Hides the Slider line and replaces the marker with a focus box which sits behind the labels.
291
+ - Python: New control types added to Form component:
292
+ - **dropdown**: A drop-down menu, essentially a Button stimulus showing the current value which, on click, reveals
293
+ a Slider with style set to **choice**.
294
+ - **checkbox / bool**: A tick box for simple yes/no questions
295
+ - Python: Textboxes now have the option to hide overflowing text and/or to show a vertical scrollbar.
296
+ - Python: PsychoPy windows can now have a background image, settable in the Experiment Settings.
297
+ - Online: PsychoJS end message now customisable via Experiment Settings.
298
+ - App: Accessibility enhancements, making it easier to navigate menus and dialog boxes using just the keyboard.
299
+
300
+ PsychoPy 2022.2
301
+ ---------------
302
+
303
+ *Highlights:*
304
+
305
+ - BETA: Cameras can now be accessed during your experiments (in web-based and in local experiments) and allow
306
+
307
+ - saving recordings to disk
308
+ - showing the current input from the webcam (make the Camera the input to a regular ImageStim)
309
+ - replaying a recording later in the experiment (use the Camera as input to a subsequent MovieStim)
310
+ - **all the above features are currently BETA**
311
+
312
+ - Python: New movie *playing* engine for higher performance playback in locally experiments (using FFPyPlayer)
313
+ - Online: Introducing the "Shelf" for persistent storage on Pavlovia of variables accessible to a range
314
+ of scopes (only the current participant, only the current project, any project in the lab etc.).
315
+ This may sound like not a big deal but it opens options for the following:
316
+
317
+ - **multi-session** studies: retrieve the participant threshold/progress form last session
318
+ - **interactive multi-player** studies: store 'messages' for another user to receive
319
+ - **counterbalancing online**: by tracking the number of participants that have been in each group
320
+
321
+ - Online: Gratings and Gabors now supported online, straight from your Builder experiments
322
+ - Online: gamma correction supported in the browser(!!) by setting Window.gamma property (currently
323
+ requires a code snippet)
324
+ - Local: Builder now has a Serial Port Component to make it easier to connect to hardware without needing
325
+ Code Components
326
+
327
+ **Compatibility changes:**
328
+
329
+ - App: Studies with Code Components that access `routineTimer` will need adapting because the non-slip Builder
330
+ logic has changed this is now a regular (count-up) Clock instead of a CountdownTimer
331
+
332
+ **Key Fixes:**
333
+
334
+ - Online: Button Component is now fully working, so you don't need to create your own text boxes for this
335
+ - Online: Routines used outside a loop now always advance the next row in the data file so that they
336
+ can't overwrite each others' data
337
+ - Python: The `.stopped` times should now be showing up correctly for all Components in the csv file
338
+ (they were always correct in the log file)
339
+ - Python: Better timing in non-slip Routines. Previously the non-slip timer corrected for overshoots but
340
+ not undershoots. This is now fixed.
341
+ - Python: 3D rendering should be working again.
342
+
343
+ **Also:**
344
+
345
+ - `Is trials` property of loops (to control whether the data file advances) is now supported
346
+ in online studies
347
+
348
+
349
+ PsychoPy 2022.2.1
350
+ ~~~~~~~~~~~~~~~~~
351
+
352
+ Fixed:
353
+
354
+ - App: bug on MacOS opening Builder that led to ‘PosixPath’ object has no attribute ‘is_relative_to’ when loading experiments
355
+ - App: improved performance when the Shell has a large amount of text #f1e8d6bf7
356
+ - App: fixed the use of tab traversal within Component dialogs on MacOS #a618c4cd7
357
+ - Python: fixed setting the first position of markers on Sliders
358
+ - Python: experiments using ioHub Keyboard backend were registering keypresses twice (once for down and again for up) #4990
359
+
360
+ PsychoPy 2022.2.2
361
+ ~~~~~~~~~~~~~~~~~
362
+
363
+ Fixed:
364
+
365
+ - App: non-slip Routines not being terminated properly by force-end-routine #5004
366
+ - Packaging: removed PocketSphinx from requirements (hard to install on several systems)
367
+ - App: translations of some choice fields into Japanese not working correctly #5009
368
+
369
+ PsychoPy 2022.2.3
370
+ ~~~~~~~~~~~~~~~~~
371
+
372
+ Fixed:
373
+
374
+ - App: Dark mode was missing "goto" button
375
+ - App: Coder save button was not updating correctly after a change #5031
376
+ - Python: Arabic Harakat diacritics were misaligned in Python TextBox2 #5033
377
+ - Python: rendering performance improvement when contrast=1 #5027
378
+
379
+ PsychoPy 2022.2.4
380
+ ~~~~~~~~~~~~~~~~~
381
+
382
+ Fixed:
383
+
384
+ - Python: fix to occasional crashing of new FFPyPlayer moviestim caused by excessive logging in the underlying lib #47289f6ca
385
+ - App: better handling of case where Experiment Settings may have syntax error #60cf0cea6
386
+ - App: rare case where the $ could get ignored during dialog box validation #eb1897087
387
+ - App: better handling of an (apparent) syntax error in user-supplied JS #992aaa423
388
+ - App: transcription setting on Mic Component now False by default (because most people don't have a Google API key set up) #2c8a27ed
389
+ - Pkg: added missing Labjack lib to Windows Standalone distribution
390
+
391
+ PsychoPy 2022.2.5
392
+ ~~~~~~~~~~~~~~~~~
393
+
394
+ Fixed:
395
+
396
+ - Several fixes to syncing of Pavlovia projects
397
+ (e.g. when project has been deleted/recreated online or when files have been
398
+ copied over from another machine) #5117 #5221
399
+ - Shape Component in Builder can now update vertices on each frame/repeat #e493ee2ca
400
+ - Participant name missing from filename if given in URL query #5171
401
+ - Eyetracker ROI stop code should only be written if a value is given to stop on #5156
402
+ - Don't crash if Microphone.stop() called repeatedly #5121
403
+ - TypeError in Window.resetViewport() #5135
404
+ - PupilLabs lib was not being found due to missing `__init__` #5180
405
+ - QUESTplus had ben removed from list of loop types #2da0cfa0a
406
+ - Sound.pause() was resetting to start of track #a161e135a
407
+
408
+
409
+ PsychoPy 2022.1
410
+ ---------------
411
+
412
+ *Highlights:*
413
+
414
+ - Improved interface for searching, syncing and viewing Pavlovia projects from
415
+ within the PsychoPy app
416
+ - In online experiments you can now dynamically choose the resources your
417
+ participant needs as the experiment progresses rather than downloading them all in
418
+ the first dialog box
419
+ - Can now insert new Routines from pre-packaged templates (such as Fixation, 2-alternative
420
+ forced choice, feedback, etc)
421
+ - QUEST handlers now available in PsychoJS including interleaved staircases
422
+ - Most visual stimuli now have an "anchor" parameter to control how it's laid out
423
+ relative to its position, and you can now set the alignment of text within a Textbox
424
+ (with a handy demo to illustrate the difference between anchor and alignment!)
425
+ - Added support for :ref:`Pupil labs eye trackers <pupil_labs_core>` (thanks to Pupil Labs themselves) directly from
426
+ the Builder
427
+
428
+ *Compatibility Changes:*
429
+
430
+ - Python 2.x is no longer supported
431
+ - Filename timestamps now have a different default format (based on ISO 8601):
432
+ 2022-01-14_14h39.36.092 for 2:39pm and 36s, 92ms
433
+ See :func:`psychopy.utils.getDateStr` for details on the new functionality
434
+
435
+ *New and Improved:*
436
+
437
+ - Ability to customise the filename in online studies, using the same Experiment Settings
438
+ option as local studies
439
+ - Standalone distribution now using Python 3.8
440
+ - Builder: Keyboard class now providing the option to select the underlying engine
441
+ (iohub, psychtoolbox or pyglet) with `iohub` now being the recommended default
442
+ - Filter components view by what works online vs locally
443
+ - Eye Tracker Record Component can now be use to record across multiple routines.
444
+ - Added Text Color setting to Eye Tracker Calibration and Validation procedures / Routines
445
+ - Allow selection of which U3 register to write to when using a LabJack U3 with the
446
+ Parallel Out Component.
447
+ - Added non fullscreen window and multiple window support to iohub Mouse device.
448
+ - Python shell within Coder view has been rewritten and is much more functional
449
+ - Mouse now has the option to store only valid clicks
450
+ - Added the option to refer to pre-canned image files, such as default.png and use
451
+ as an image stimulus
452
+
453
+ PsychoPy 2022.1.4
454
+ ~~~~~~~~~~~~~~~~~
455
+
456
+ Fixes:
457
+
458
+ - experiments using iohub were not running on MacOS standalone due to broken version of the gevent library
459
+ - fixes to connection from Builder to Pavlovia in certain circumstances (e.g. certain usernames or when
460
+ project has moved) #22963a9
461
+ - fixes searches of Pavlovia for private projects by the logged in user
462
+ - fix to use of correct answers for Joystick Buttons Component #2e66dc1 #f9ef1be
463
+ - Builder crashing when a Routine had been copied over #4592876
464
+ - some parameters in Builder dialogs were missing their label names #c8cd380
465
+ - ShapeStim was not obeying requests for zero opacity #8030b2f
466
+ - fixed "currentLoop is not defined" error for online studies #a261d04
467
+ - in certain circumstances, mic recordings were not saving for each trial, only for the last trial,
468
+ when online #5e23a0a
469
+
470
+ PsychoPy 2022.1.3
471
+ ~~~~~~~~~~~~~~~~~
472
+
473
+ Fixes:
474
+
475
+ - TextStim (and Button, which is derived from TextStim) was not easily clickable online due to incorrect bounding box psychopy/psychojs#492
476
+ - Slider styleTweaks were not being applied #4773
477
+ - Check that file is saved before trying to Run #4759
478
+ - Mouse coordinate mapping was incorrect for MacOS Retina displays which meant that Slider and Brush wasn't working, for instance #4755
479
+ - Allow the Sound Component to be used if transcription libs were not available #4747
480
+ - Form Component excel template was corrupted (by google sheets export) #4742
481
+ - Copying a Routine from one experiment to another was causing a compile error #4740
482
+ - Better logging of errors during application load for debugging purposes #4750
483
+ - Setting the Slider to reset() was looking like a response when it shouldn't #4738
484
+ - Fixed core.getTime() for M1 native installations (does not affect Standalone or Intel-based installations on M1) b839a32da52b
485
+ - Allow 3-dimensional arrays for ShapeStim vertices 31ca663bf2
486
+ - Fix dependency definition for Poetry installations 77cb7c92eac4
487
+ - Fix use of `event` module for keyboard as fallback for iohub/ptb 5c3672804f1
488
+ - If HomeBrew has a broken fonts folder ignore it #4719
489
+ - If user specifies a line width of `"2"`make it `2` 389bfd4692
490
+
491
+ PsychoPy 2022.1.2
492
+ ~~~~~~~~~~~~~~~~~
493
+
494
+ Fixes:
495
+
496
+ - URL redirection was failing at the end of the study for online experiments
497
+ where the JS code was generated using 2022.1.0-2022.1.1 due to an erroneous
498
+ replacement of `//` with `/` in `https://` #e8218b31f71
499
+ - Hyphens can now be included in Pavlovia project names (the validator in the
500
+ PsychoPy GUI was being too strict) #bbe6bf5ed01
501
+ - Static Components that are used for fetching online resources (e.g. using a
502
+ Movie Component that sets its stimulus during a Static) will now freeze and
503
+ wait until the resource is fully received if it takes longer than the set
504
+ duration. Using ResourceManager components the experiment will not freeze but
505
+ status can be checked `status==FINISHED` when download is complete
506
+ - Fixed a bug where, after logging out of the Pavlovia Session in the PsychoPy
507
+ interface, PsychoPy would still provide the option to use the names/groups of
508
+ that user, but would not then allow access to their contents.
509
+ #bbe6bf5ed01d26
510
+ - PsychoPy would crash if using the Classic Theme on a mac with a retina display
511
+ (missing icons) #495fddd814ce1e0
512
+ - DotStim in local (Python) experiments was failing to update dots position #4694
513
+ - Error raised when creating a new Pavlovia project from the menu item rather
514
+ than the toolbar button #4683
515
+ - Crashing on MacOS when running experiment due to Keyboard a) 'iohub' not
516
+ loading due to gevent incompatibility and b) not then correctly falling back
517
+ to 'event' backend
518
+
519
+ PsychoPy 2022.1.1
520
+ ~~~~~~~~~~~~~~~~~
521
+
522
+ Fixes:
523
+
524
+ - MacOS app failed to run experiments with dialog boxes (broken dependency being packaged)
525
+ - the application would hang while trying to push any changes to Pavlovia
526
+ - added Japanese translations of the new menu items etc
527
+
528
+ PsychoPy 2022.1.0
529
+ ~~~~~~~~~~~~~~~~~
530
+
531
+ Many bug fixes from 2021.x release, more than we have room for here, including:
532
+
533
+ - Code / Builder: iohub keyboard mappings now match those used by event.getKeys().
534
+ - Code: labjacks.U3.setData was not working
535
+ - Builder: Region of Interest (ROI) Component does not depend on ETRecord component.
536
+ - Builder: ROI Component 'look away' now ends routine after eyes have been outside
537
+ ROI for 'Min look time' seconds.
538
+ - Code: 0.5 second blocking eyelink start/stop/record caused iohub to drop
539
+ keyboard events.
540
+ - Code: eyelink now uses calibration 'randomize' param.
541
+ - Code: Layout of Form, Slider and Textbox now much more stable and consistent
542
+
543
+ PsychoPy 2021.2
544
+ ---------------
545
+
546
+ *Highlights:*
547
+
548
+ - Unified Eyetracker support via ioHub is now integrated into Builder for easy-to-use eyetracking studies, with many fixes, improvements and a "MouseGaze" option to simulate eye movements while testing
549
+ - Mic recordings for voice responses (Python and JS)
550
+ - Transcription (speech-to-text) via Google Speech or using CMU Pocket Sphinx (free but currently on the Python lib only)
551
+ - Improved JavaScript outputs from the Builder, providing more seamless migration to web-based studies
552
+
553
+ *Compatibility Changes:*
554
+
555
+ - CHANGED: In Python the random number generators for TrialHandlers etc use an improved algorithm (PCG64) and are now indendent of each other but seeded random sequences will differ from previous versions
556
+
557
+ PsychoPy 2021.2.0
558
+ ~~~~~~~~~~~~~~~~~
559
+
560
+ *New and improved:*
561
+
562
+ - JS+Py: Record and transcribe (speech-to-text) audio responses in both Python and JavaScript engines using various local (CMU Pocket Sphinx) and web (Google and Bing) services.
563
+ - Py: Eyetracking Components added to Builder for code-free eye-gaze monitoring
564
+ - Eyetracker Record: Starts an ioHub server to receive input from an eye tracker
565
+ - Eyetracker Calibration: Runs calibration procedure on connected eyetracker
566
+ - Eyetracker Validation: Runs validation procedure on connected eyetracker
567
+ - Region Of Interest: A PsychoPy polygon with methods to check whether it's being looked at, how long for, how many times, etc.
568
+ - also improved calibration and validation procedures
569
+ - Py: Improved Movie playback performance for both the OpenCV (MovieStim3) and VLC backends. The VLC backend has added playback controls (fast-forward, rewind, etc)
570
+ - Py: hardware.Keyboard class now supports ioHub as a backend and will use that in preference to Psychtoolbox keyboard (PsychHID) if ioHub has been started before the Keyboard is created. ioHub keyboard is similarly in performance but with fewer constraints (can handle a wider range of keyboards)
571
+ - App: demos within the app got so busy they've been moved into categories
572
+ - App: includes some basic fonts, so as not to rely on what is installed (except on macOS where these aren't permitted)
573
+ - App: output is available again in the bottom of the Coder view
574
+ - App: many improvements to the autotranslate of Py->JS in Code Components (fixing issues from the "Crib sheet")
575
+ - JS: audio playback can fade in/out to avoid clicks
576
+ - JS: Builder loops (TrialHandlers) support and update properties such as thisN as in Python Experiments
577
+ - JS: Form supports `formComplete()` call to check if all required items have a response
578
+ - JS: Form supports items types: SLIDER, RADIO (synonyms for RATING and CHOICE)
579
+ - JS: Button Component now supported for text-based buttons (as in the Python Component already present)
580
+ - JS: supports more options for color styles
581
+
582
+ *Fixes:*
583
+
584
+ - Py: TextBox better handling word boundaries for newlines
585
+ - Py: Button was incorrectly treating a held-down button as a click (now supports new-clicks only option)
586
+ - Py: ioHub better integration with PsychoPy units and color spaces
587
+ - JS: bug in Form scrolling
588
+ - JS: various fixes to TextBox and Form styling
589
+ - JS: Data files output now include information about their character encoding (BOM) supporting more locales of Excel
590
+
591
+ PsychoPy 2021.2.1
592
+ ~~~~~~~~~~~~~~~~~
593
+
594
+ Fixes:
595
+
596
+ - macOS was crashing on launch (caused by missing files from psychtoolbox stripped by macOS GateKeeper)
597
+ - added cryptography lib explicitly to requirements for pip install #267483d00
598
+ - Runner local debug of PsychoJS experiments was failing with MIME-type errors (Runner didn't know about new psychojs packaging) #4153
599
+ - extended timeout when querying Pavlovia from the app (e.g. searching for projects) #4148
600
+ - corrected reset of clock for new Button Component
601
+ - DlgFromDict was crashing if `labels` were used (in code) #4137
602
+ - short (<0.5s) sounds were not labelled as finished in PsychoJS boilerplate #4117
603
+ - contrast parameter was not being applied to ShapeStim #4111
604
+
605
+ PsychoPy 2021.2.2
606
+ ~~~~~~~~~~~~~~~~~
607
+
608
+ Fixes:
609
+
610
+ - Builder outputs weren't fully honouring the `userVersion()` request, resulting in broken PsychoJS code #5f10b0a12 #017c18f2f31e
611
+ - Better documentation of (high-performance) VLC movie backend
612
+ - iohub.Mouse.setPosition was not handling units correctly when given a float
613
+ - Builder boilerplate for Microphone was looking for a transcription even if none was requested #4163
614
+
615
+ PsychoPy 2021.2.3
616
+ ~~~~~~~~~~~~~~~~~
617
+
618
+ Fixes:
619
+
620
+ - on macOS the long-standing issue of the **app freezing in the dock** has now been fixed #4214
621
+ - smoother handling of trying to run an experiment on a computer with different mic hardware than where the experiment was created #4210
622
+ - Minolta LS100/110 was not working due to broken bytes/unicode conversion #4186
623
+ - ElementArray was not honouring the contrasts (contrs) parameter #4196
624
+ - Code Components were giving unnecessary warning about namespace issues. Should only warn if a variable name is being _shadowed_ not if it's being _used_ #4193
625
+
626
+ PsychoPy 2021.1
627
+ ---------------
628
+
629
+ The first major release of 2021 brings a lot of fixes (the dev team is focussing heavily on making the user experience more smooth at the moment).
630
+
631
+ On top of those fixes are a number of useful additions though, like the new :ref:`buttonComponent`.
632
+
633
+ NEW:
634
+
635
+ - Builder has a :ref:`buttonComponent` to make it easier to have clickable image/text objects
636
+ - Builder: Improved layout of Component dialogs:
637
+
638
+ - Consistent tabs for common parameters (like pos, size, color...)
639
+ - Component parameters that use filenames (sounds, images, etc.) now have a Browse... button
640
+ - Component parameters that use Excel files now have an “open in Excel” button, if you click this when the field is blank it will open a pre-made template for you
641
+ - Component parameters that are colors now have a button to open the color picker
642
+
643
+ - Builder now features separate compile buttons for JS and Py and will open the JS file in the Coder view when compiled
644
+ - Builder readme files now support markdown formatting (and .md extensions) psychopy/psychopy#3377
645
+ - PsychoPy lib: refactored color handling via the :class:`~psychopy.colors.Color` class
646
+
647
+ CHANGES (compatibility issues):
648
+
649
+ - CHANGED: the new more-flexible parameters of PsychoPy Experiment Components makes experiments from 2021.1 **will not run** on older versions of PsychoPy. If you share your study with people using older versions make sure you set the :ref:`useVersion` setting to be 2021.1.0 or upwards so that it will run elsewhere
650
+ - CHANGED: PsychoJS: orientation for PsychoJS now follows clock convention rather than engineering convention (polar coordinates, positive rotation is anti-clockwise) whereas PsychoPy used the clock convention. From this release onwards both use the clock convention or orientation/rotation.
651
+ - CHANGED: Slider has additional params for colors and fonts of lines/labels/marker that will not exist on older installations
652
+ - CHANGED: BufferImageStim was using an incorrect rect specification for selecting the region of the screen - it was using a bottom-left instead of PsychoPy standard center #3597
653
+
654
+ PsychoPy 2021.1.0
655
+ ~~~~~~~~~~~~~~~~~~
656
+
657
+ FIXES:
658
+
659
+ - All: Curly quotation marks (“”), which are sometimes automatically put into text boxes by MacOS and certain keyboard settings, will now be automatically replaced with regular quotation marks (“) when in code. To use curly quotation marks still, you can “escape” them by putting a \ before them.
660
+ - Lib: Fixed syntax warnings on Python 3.8 #3344
661
+ - Lib: The Pygame audio backend can be used again. #3382
662
+ - Lib: Several fixes to iohub ( #3348, #3399, #3412, commit psychopy/psychopy/3912167)
663
+ - Builder/Coder: Fixed the error raised when the “Plot gamma” button in the monitor center is clicked but no calibration data is loaded. #3384
664
+ - Coder/Builder: Correct detection of retina/high-dpi displays within wxPython on MacOS, Linux, and Windows.
665
+ - Python Lib: TextBox stim text layout not working on linux and macOS.
666
+ - Python Lib: various minor fixes to TextBox2
667
+ - Coder: Miscellaneous bug fixes to demos/coder/stimuli example scripts.
668
+ - Coder: Fixed a possible error when parsing code to build the source tree.
669
+ - Coder: Handle error caused when closing editor tabs.
670
+ - Builder: The “Routine” pane can no longer be- moved which broke the builder interface.
671
+ - Coder: Make Coder's default size reasonable on fresh install. #3472
672
+ - Coder: Bug where opening an unsupported file type raises an error. #3519
673
+ - Coder: Fixed bug where the source tree raises and error if it comes across things it cannot correctly parse.
674
+ - Online: Prevent Safari from beeping in full screen. psychopy/psychojs#266
675
+ - Online: Slider sizing, tick placement, and event handling improvements. #249 #263 #264
676
+ - Online: Fixed ShapeStim instances ignoring the closeShape property. psychopy/psychojs#245
677
+ - Online: Support `TrialHandler.Method.FULLRANDOM`. psychopy/psychojs#247
678
+ - Online: Improved mouse event accuracy overall. psychopy/psychojs#248
679
+ - Online: Fixed ShapeStim variants ignoring the contrast property. psychopy/psychojs#250
680
+ - Online: Fixed an issue translating ‘\n’ encoded line breaks when importing conditions files. psychopy/psychojs#251
681
+ - Online: Fixed TextBox click handling. psychopy/psychojs#258
682
+ - Online: Improved MovieStim autoplay. psychopy/psychojs#260
683
+ - Online: Allow for parsing of array-like strings when setting VisualStim position or size. psychopy/psychojs#262
684
+ - Online: Prevent Safari from beeping in full screen. psychopy/psychojs#266
685
+
686
+ PsychoPy 2021.1.1
687
+ ~~~~~~~~~~~~~~~~~~
688
+
689
+ FIXES:
690
+
691
+ - Error when trying to sync a new project with Pavlovia #33b3d80ea
692
+ - TextBox in Builder was resetting to "default text" on each repeat rather than blank #8510d9f1a
693
+ - Editable elements of Form were being erroneously drawn when they fell beyond the Form boundary #7d02c8251
694
+ - Several improvements to styling of Form (on Python)
695
+ - Added a preference for Builder to show only the online-compatible Components (or other similar options). This is a BETA testing feature
696
+
697
+ PsychoPy 2021.1.2
698
+ ~~~~~~~~~~~~~~~~~~
699
+
700
+ FIXES:
701
+
702
+ - Code Components were raising an error when trying to generate JS code #3643
703
+ - Slider styles weren't generating correct JS code
704
+ - New Button component (Python only) was not cleaning previous clicks so they tended to act as if clicking all trials! #3641
705
+
706
+ PsychoPy 2021.1.3
707
+ ~~~~~~~~~~~~~~~~~~
708
+
709
+ FIXES:
710
+
711
+ - Builder: Fix `'list' object has no attribute 'contains'` with clickable mouse objects #3651
712
+ - Builder: context (right-click) menu was not aligned with mouse in Flow for large Flows #3657
713
+ - Builder: Slider styles were not being used correctly from previous versions (<2021.0) #3665
714
+ - Builder: crash if the filter preference was used to filter out pure Python or pure JS Components from Builder #3649
715
+ - Builder: Color Picker defaults to RGB to reduce chance of users pasting in RGBA to visual Components #3667
716
+ - Runner: local debug of online studies working again (was trying to fetch the wrong PsychoJS version) #af6622c712
717
+ - PsychoPy lib: better handling of unknown fonts (fall back to Open Sans and Alert) #fba09ef8d0a
718
+ - PsychoPy lib: better timing on iohub for macOS key/mouse polling #fba09ef8d0a
719
+
720
+ PsychoPy 2021.1.4
721
+ ~~~~~~~~~~~~~~~~~~
722
+
723
+ FIXES:
724
+
725
+ - Py Lib: Sounds from files were being truncated #3689
726
+ - Py Lib: TrialHandlerExt now compatible with current numpy (had an index error before) #3705
727
+ - Py Lib: MoviStim raising an error if opacity was None #50334df2f
728
+ - Py Lib: RIFT backend not working #428f62f80
729
+ - Builder: When letter height was set to a variable it raised an error at run time `TypeError: len() of unsized object` #b1a77ca3a
730
+ - Builder: Raising an error when floats looking like file names #3719
731
+ - Builder: better handling of failure to updateVersion #afec41226
732
+ - JS: TextBox when editable was not being reset on each trial #3706
733
+ - JS: Keyboard should stop consuming keypresses at end of trial, even if not storing data #3706
734
+ - JS: Add Sound.setSound() method to allow for dynamically deciding audio source psychopy/psychojs#154
735
+ - JS: Allow for PIXI updates when dynamically adjusting opacity, including on polygons psychopy/psychojs#203
736
+ - JS: Give Form radio type support psychopy/psychojs#281
737
+ - JS: Improve ImageStim.setImage() attribute checking psychopy/psychojs#292
738
+ - JS: Give TrackPlayer fades on play / stop psychopy/psychojs#296
739
+ - JS: Fix TextBox eating up key presses psychopy/psychojs#302
740
+
741
+ PsychoPy 2020.2
742
+ -----------------
743
+
744
+ NEW FEATURES:
745
+
746
+ - New look, including dark mode, customizable themes and new flat buttons (you can choose a Classic theme to get the old buttons back for comfort)
747
+ - Now have an class for /editable/ text called **TextBox2**:
748
+
749
+ - very fast rendering (faster than the original TextStim)once the font characters are uploaded
750
+ - supports an editable flag which allows it to pick up text input to the window including full unicode support for your keyboard
751
+ - you can apply (fake) bold and italics within the text using <i></i> and <b></b>
752
+ - if multiple editable TextBoxes are onscreen together you can tab between them
753
+
754
+ - **Form** components now work online and support (in both lab-based and online versions):
755
+
756
+ - free text
757
+ - ratings and sliders
758
+ - choice boxes (radio buttons)
759
+ - descriptions (no response)
760
+ - headings
761
+
762
+ - Improved Coder:
763
+
764
+ - call-tips for code and better auto-completion
765
+ - view the folders and the structure of the current file
766
+
767
+ - Improved Runner:
768
+
769
+ - Builder/Coder provide options to run directly (Ctrl-R) and Runner only then used to show stdout
770
+ - more visible how to save/open Runner filelists
771
+ - Runner filelists saved as `.psyrun` files and can be loaded into PsychoPy with a double-click
772
+
773
+ - Online studies don't need to use html folder. Keep everything where it is! If resources aren't found automatically (and you would have put them in to the Resources folder) you can now add them to the ExperimentSettings>Online>AdditionalResources
774
+ - Added support for Emotive and BrainProducts EEG hardware
775
+ - CSV data outputs now have an option to set the delimitter (e.g. `;` or `\t` rather than `,`)
776
+ - Brush component now has an option to allow drawing without having to hold down the mouse button #2980
777
+
778
+ CHANGES:
779
+
780
+ - _PsychoJS_ code now uses the same syntax for loop termination as _PsychoPy_ allowing either `nameOfLoop.finished=true` or `currentLoop.finished=true`
781
+ - Python 2.7 is no longer supported. We recommend Python versions 3.6 or 3.7 (3.8 is not tested likely to work)
782
+
783
+ FIXES:
784
+
785
+ - Various compatibility fixes for JS code from PsychoPy
786
+
787
+ - loop termination now working the same as Python and correctly auto-translated
788
+ - movies *should* now restart correctly, at least on browsers that support the seek behavior
789
+ - randint is now included and imported in all scripts
790
+ - sin, cos, pi etc are also imported in all scripts
791
+
792
+ - support for wxPython 4.1
793
+ - so many more small fixes!
794
+
795
+ PsychoPy 2020.2.10
796
+ ~~~~~~~~~~~~~~~~~~
797
+
798
+ Further fixes on top of the `new features in 2020.2 <https://www.psychopy.org/changelog.html#psychopy-2020-2>`_:
799
+
800
+ - Fixed rendering of TextBox2 following Big Sur update of 2020.2.7 #0fcb89c54 #39777a3e0 #1aec9abb9
801
+ - Fixed handling of `continueRoutine=False` in BeginExperiment of online studies #ae20cb12f41
802
+ - Erroneous warnings about code being used as parameters #40bbfe1a3
803
+
804
+ PsychoPy 2020.2.9
805
+ ~~~~~~~~~~~~~~~~~
806
+
807
+ Further fixes on top of the `new features in 2020.2 <https://www.psychopy.org/changelog.html#psychopy-2020-2>`_:
808
+
809
+ - TextBox2 broke in 2020.2.8 due to switch from PyOpenGL to pyglet.gl in text rendering #39777a3e0 #1aec9abb9
810
+ - Fixed error Unknown colorSpace: 'Named' #da234cc46
811
+ - Superfluous debug messages from ioHub when no key pressed #9589e4865
812
+
813
+ PsychoPy 2020.2.8
814
+ ~~~~~~~~~~~~~~~~~
815
+
816
+ Further fixes on top of the `new features in 2020.2 <https://www.psychopy.org/changelog.html#psychopy-2020-2>`_:
817
+
818
+ - support for macOS 11.1 Big Sur (updated mac pyglet to 1.5.11 and mac Python to 3.6.8)
819
+ - fixed default blank text in textBox for online studies actually showing a pair of quotes #786e1d3f7
820
+ - flag to alphabetically sort Exp Info fields was being set always true #3279
821
+ - Position and Size params for Form Component were being requested twice #d45ca99c9
822
+ - fixed annoying (but harmless) error 'ModuleNotFoundError: import of pyglet halted; None in sys.modules'
823
+ - further fixes to Runner not showing print() statements #e0ec67e6f
824
+ - Routine panels now support mouse scroll wheel to navigate #6da3707d3
825
+
826
+ PsychoPy 2020.2.7
827
+ -----------------
828
+
829
+ (Binaries never released)
830
+
831
+ PsychoPy 2020.2.6
832
+ ~~~~~~~~~~~~~~~~~
833
+
834
+ FIXES:
835
+
836
+ - missing resource error in some online experiments, caused by incorrect relative relative paths in Settings>Online>Resources #3285
837
+ - JavaScript Code Components for Before Experiment is now moved earlier in the script - it needed to be positioned before first function opens #3289
838
+ - TextBox was missing setBorderColor and setFillColor so these needed code to change dynamically #eb915732d
839
+ - TextBox was carrying the text from one trial into the next #330f5fa1d
840
+ - Coder FoldAll menu item was having no effect #6d4f66b0d
841
+ - TextStim opacity can now be set dynamically #1045
842
+ - Loop OK button was sometimes left disabled if invalid inputs #3a1104f71
843
+ - fixed non-uniform probabilities of conditions file row selection suggested in docs #3256
844
+ - workaround for scipy.optimize import error on windows machines that are using BitLocker #3287
845
+ - if a TextBox is the only editable thing on the screen then give it focus #3269
846
+
847
+ PsychoPy 2020.2.5
848
+ ~~~~~~~~~~~~~~~~~
849
+
850
+ FIXES:
851
+
852
+ - Now code-signing the installer on Windows as well as macOS
853
+ - Failing to send print statements to output, depending on how PsychoPy was launched #4773ec32dcf Only occurred if you launch by double-clicking file or if you close Runner
854
+ - Coder crashing on macOS when using editor with autocomplete=True #687e81dfb
855
+ - ioHub fix for unicode strings #5451ea49a
856
+ - Marker color on RatingScale was not resetting (but use Slider anyway!) #3140
857
+ - Runner sometimes ran wrong script (and never knew which to stop). Now better tracking of running process #3142
858
+ - Slider not honoring the order from the Routine (should render in order from top down) #9e0299544
859
+ - JavaScript Code Components for Before Experiment were having no effect #3151
860
+ - error with trying to poll() on a script process that was NoneType #cc56713cc
861
+ - Editable textboxes were still able to be drawn if you clicked on them (even when they were not told to draw()) #8253f0696
862
+ - warn against using global JS names in experiment #3177
863
+ - Brush not being reset in JavaScript #88812c3bd
864
+ - Movie reset issue #3183
865
+ - countinueRoutine=False had no effect for online studies if in Begin Routine block
866
+ - errors that should have appeared in the console were sometimes appearing in the (app) error dialog #d44f24d63
867
+ - more tolerant of whitespace in Emotiv Client ID file
868
+ - Runner AddTask dialog had wrong format for file filter #3213
869
+ - Sound volume attribute was having no effect on the PTB backend #3215
870
+ - Fixed fill/line colors of TextBox #3222
871
+ - Error in JavaScript code when Movie Component had blank stop time #0b4ddcffc
872
+ - Better handling of stdout encodings when console not set to utf-8 encoding #d77535906
873
+ - Improved Resources box for the online (using relative references #c9558bfd8 and resize with dialog #d607271db)
874
+ - JavaScript code-conversion now uses our own built-in `round()` function mimicking the same function in Python #da426d9e37e
875
+
876
+ PsychoPy 2020.2.4
877
+ ~~~~~~~~~~~~~~~~~~~~~~
878
+
879
+ FIXES:
880
+
881
+ - improved search for resources files when compiling JS (was crashing if using root folder and using code to specify the conditions file) #09816985d5
882
+ - the `Before Experiment` section of Code Components wasn't being written for JavaScript components #bbfd310
883
+ - error with wx complaining about Alignment (in wx 4.1) #a32e2ca #ae508d6
884
+ - TextBox Component default size is None (=autoexpand)
885
+ - TextBox `editable=True` had no effect on the Builder outputs to JavaScript
886
+ - themes menu correctly updates what the current them is in all open windows #c5cdc49
887
+ - custom fonts that didn't provide a "family name" were causing the font search to crash #ef078ab
888
+ - bug trying to us an invalid "useRunner" preference 3532e4c
889
+ - JavaScript studies failed if there were 2 Mouse Components in a single Routine #0e0b26d4dcc #32a6be2
890
+ - improved Big Five Inventory demo
891
+ - blank TextBox Component should use blank string rather than None #39bf1bb
892
+ - further fix to macOS stapling (might not have worked for users with no internet connection?)
893
+ - Form Component now honors being set to show only at certain times (in keeping with other visual Components) #35ad5bc
894
+ - Coder now correctly providing syntax styling for JS and C
895
+
896
+ PsychoPy 2020.2.3
897
+ ~~~~~~~~~~~~~~~~~~~~~~
898
+
899
+ FIXES:
900
+
901
+ - **Mac version now fully signed and notarized for GateKeeper!** For some time it's been an annoyance that Apple would block PsychoPy because of it not being from a "known developer" but in recent updates GateKeeper has become so aggressive the app has been crashing on startup for some macOS versions. Hopefully Apple will now let us launch in peace!
902
+ - **better handling of non-loading fonts in the application** On mac some fonts weren't being found (although this *might* be due to the now-solved gatekeeper issue)
903
+ - **auto-translate py->js for parameters with $** We were translating code components but not parameter boxes where the user was switching to code using $ #3064
904
+ - better handling when a piece of code fails to convert (warning not error) #3063
905
+ - show progress (in Runner) while syncing project with Pavlovia #3061
906
+ - various fixes and additions to Japanese translations
907
+
908
+
909
+ PsychoPy 2020.1
910
+ ----------------
911
+
912
+ For the new decade we have a new version system. The application is still called PsychoPy3 for now,
913
+ but we're using `year.version.bugfix` from now on to mark versions.
914
+
915
+ NEW FEATURES:
916
+
917
+ - Many exciting tools for 3D rendering. See Coder demos menu for some examples
918
+ - Online studies have better cross-browser compatibility including fixed support for edge
919
+ - Auto-translate Code Components Py-?JS (syntax only)
920
+ - Online studies have substantially improve timing. In fact, PsychoPy now has the
921
+ `best timing of any online system, consistently under 4ms precision for RTs! <https://psyarxiv.com/d6nu5/>`_
922
+ - New Runner dialog:
923
+ - provides some 'Alerts' about things that might go wrong in their study #2646
924
+ - allows you to run/save/open a set of studies without opening a window for each one
925
+ - allows online studies to run locally in "debug" mode to test the study before uploading
926
+
927
+ - Online studies now support shapes Cross, Star and regular polygons (nVertices) #2673
928
+ - Support for pyglet 1.4, including support for **text alignment in multi-line text** #2693
929
+ - CHANGED: rendering of text stimuli may not look quite the same. We now have new parameters
930
+ `anchorHoriz` and `TextAlign` rather than `alignHoriz` but this may not act the same in all
931
+ cases #2693
932
+ - Online studies no longer require a separate `html` folder. #2687 In some cases (e.g. when adding extra resource files)
933
+ it may be preferable to keep the html folder and that's currently still the default
934
+ for new studies but ExperimentSettings>online>folder can now be set to blank and the html/js
935
+ files will be saved alongside the psyexp/py files. This reduces file duplication.
936
+ - Support for QUESTplus staircases
937
+ - Pyglet backend now supports 10-bit framebuffer #2672
938
+ - Updated support for Oculus Rift #2655
939
+ - Added a :class:`~psychopy.visual.Pie` (pacman) stimulus #2652
940
+ - Substantially faster rendering of DotStim #2647
941
+
942
+ PsychoPy 2020.1.3
943
+ ~~~~~~~~~~~~~~~~~~~~~~
944
+
945
+ - Runner was not launching Coder scripts from their own directory #2819
946
+ - csv files should allow separator to be `;` and decimal place to be `,` #2825 #2828
947
+ - PsychoPy application was now launching in Windows versions <8.1 (which don't know about high-dpi displays) #2820
948
+
949
+ PsychoPy 2020.1.2
950
+ ~~~~~~~~~~~~~~~~~~~~~~
951
+
952
+ - Keypad key responses were not showing up as numbered responses under the new Keyboard class #2812
953
+ - Cedrus button box had an error int he Builder-output code added in 2020.1.1 #186ec587634
954
+ - Code Component was accidentally *forcing* people to use code auto-conversion #5c57d0c9d
955
+
956
+ PsychoPy 2020.1.1
957
+ ~~~~~~~~~~~~~~~~~~~~~~
958
+
959
+ FIXED:
960
+
961
+ - Several tweaks to the new Runner dialog:
962
+ - Double-click takes you back to the file in the appropriate Builder/Coder view
963
+ - Ctrl-R within the Runner run the file (so you can do Ctrl-R twice from builder and you're running)
964
+ - Alerts separated from stdout so they're more visible
965
+ - Alerts for Builder are checked on experiemnt selection rather than on script compile time
966
+ - Alert was testing stim size/pos incorrectly if using units "from experiment settings"
967
+
968
+ - Mac keyboard access should now bring up a dialog taking you to the correct System Preferences panel
969
+ - Fixes to Eyelink 1000 communications from iohub #1a8c6923b0
970
+ - Better support for high-res displays on Windows #2795
971
+ - Further tweak to readline issues on linux #6975040fae #4a80060b94
972
+
973
+ PsychoPy 2020.1.0
974
+ ~~~~~~~~~~~~~~~~~~~~~~
975
+
976
+ FIXED:
977
+
978
+ - Rect stimulus now aliases size with width and height so that users can refer to either #2650
979
+ - Faster updating of DotStim dot locations (so fewer dropped frames) #2647
980
+ - `continueRoutine` can be set in the BeginRoutine block rather than the EachFrame block #2680
981
+ - Tab key was incorrectly reporting itself as 'escape' in new Keyboard object #2620
982
+ - many more!
983
+ - Cedrus response box can be inserted into multiple routines without having to use a Code Component (no "Could not find a Cedrus device" error)
984
+
985
+
986
+ PsychoPy 3.2
987
+ ----------------
988
+
989
+ PsychoPy 3.2.4
990
+ ~~~~~~~~~~~~~~~~~~~~~~
991
+
992
+ FIXED:
993
+
994
+ - Mitigated the gamma get/set fails caused by Microsoft Windows release 1903. PsychoPy
995
+ - now avoids using these calls unless gamma-setting is really needed
996
+ - gives more info about the cause. See more info in [troubleshooting gamma ramp](https://www.psychopy.org/troubleshooting.html#errors-with-getting-setting-the-gamma-ramp)
997
+ - provides an option to skip gamma-setting entirely
998
+ - Slider wasn't allowing the units to be "from experiment settings" #23d80b49f
999
+ - Setting the conditions rows from another conditions file was causing "Error path is on mount... start on mount..." #2e8cd2183
1000
+ - Mac 'tab' key was reporting itself as 'escape' with new Keyboard #95326cadd
1001
+ - PSTBox Python3 incompatibility (although there may be more) #da83429d6
1002
+ - better scaling of rating scale (Slider) in Form #d115e63cb
1003
+ - Stencil for Form was being activated immediately rather than when needed #9daeba94d
1004
+
1005
+ PsychoPy 3.2.3
1006
+ ~~~~~~~~~~~~~~~~~~~~~~
1007
+
1008
+ FIXED:
1009
+
1010
+ - on the `pip install` version (incorrectly packaged) there was an error "NameError: name ‘pythonExec’ is not defined"
1011
+ - JS version system now drops the final (bugfix) release number (3.2.3 -> 3.2 in JS lib)
1012
+ - Cedrus response box now supports keys as a variable value in Builder #2608
1013
+ - QuestPlusHandler now supports "unknown" kwargs #2610
1014
+
1015
+ PsychoPy 3.2.2
1016
+ ~~~~~~~~~~~~~~~~~~~~~~
1017
+
1018
+ FIXED:
1019
+
1020
+ - timing of first frame was being given an extra (unnecessary) delay if images were loaded #8ddab41
1021
+ - potential app crashes if no internet available #63aa7e0 #b3e15f9
1022
+ - Builder under OS X was not launching experiments if filename contained a space #1b205df
1023
+
1024
+ PsychoPy 3.2.1
1025
+ ~~~~~~~~~~~~~~~~~~~~~~
1026
+
1027
+ - Python2 installations crashed when trying to launch studies from Builder due to the use of a modern argument to subprocess not supported by Python2 #2596
1028
+ - If Builder script had an error, then printing of that error was sometimes being split across the output frame (of Builder) and the output panel of Coder #2594
1029
+
1030
+ PsychoPy 3.2.0
1031
+ ~~~~~~~~~~~~~~~~~~~~~~
1032
+
1033
+ It's all about the new timing improvements!
1034
+
1035
+ PsychoPy 3.2.0
1036
+ ~~~~~~~~~~~~~~~~~~~~~~
1037
+
1038
+ TIMING improvements:
1039
+
1040
+ - **new Sound backend 'PTB' which is much faster** than any of the alternatives on all operating systems (using the C code from Psychtoolbox thanks to Mario Kleiner) :
1041
+ - when combined with pre-scheduling (e.g. start playback on upcoming win.flip()) this can generate sub-ms precision and sub-ms lag!
1042
+ - works with standard audio hardware
1043
+ - **better timing of visual stimuli** when timing by 'secs' (rather than frames):
1044
+ - new feature to request info from the Window about next expected flip
1045
+ - t in a Builder scripts is now time from first frame (so synched to visual stims)
1046
+ - **better timing on the keyboard responses** of the JavaScript experiments due to timestamping asynchronously with your script
1047
+
1048
+ Also ADDED:
1049
+
1050
+ - Standalone installations now provide an updated Cedrus library, pyxid2
1051
+ - Support for new LabHackers TTL2USB8 device (parallel port alternative)
1052
+ - Envelope grating now has exponent (power) option
1053
+
1054
+ FIXED:
1055
+
1056
+ - Long-standing issue with lots of print-statements (e.g. on every frame) crashing Builder scripts
1057
+ - Support for Pyglet 1.4 (although text scaling appears to have changed a little)
1058
+ - Some serial devices (photometers) were not compatible with Python3 string/bytes
1059
+ conversion
1060
+ - Too many more to mention...!
1061
+
1062
+ PsychoPy 3.1
1063
+ ----------------
1064
+
1065
+ We've improved keyboard timing a great deal.
1066
+
1067
+ As of PsychoPy 3.1 we are now using the underlying code of the `kbQueue` calls in
1068
+ `Psychophysics Toolbox`. The C code from those calls was ported to a new Python
1069
+ package in late 2018 and this is now the basis of the new :class:`Keyboard` class.
1070
+ This only works on 64-bit Python3 installations, but the Keyboard class will
1071
+ fall back to the old `event.GetKeys` calls where the `psychtoolbox` package is
1072
+ not available.
1073
+
1074
+ PsychoPy 3.1.5
1075
+ ~~~~~~~~~~~~~~~~~~~~~~
1076
+
1077
+ FIXED:
1078
+
1079
+ - new rendering glitch in ImageStim when mask=None and interpolate=True, caused by previous fix to the wrapping issue #2526
1080
+
1081
+ PsychoPy 3.1.4
1082
+ ~~~~~~~~~~~~~~~~~~~~~~
1083
+
1084
+ FIXED:
1085
+
1086
+ - further fix to Mic for experiments created under the previous version (our last fix only solved the problem for new
1087
+ Mic Components being inserted) #2512
1088
+ - fixed demo timeByFrames which was set to use Qt4 for plotting instead of Qt5 (which has been the default version
1089
+ provided since the switch to Python3)
1090
+ - fixed crash in the new Keyboard class caused by `psychtoolbox` lib incorrectly converting unicode characters in the
1091
+ device name (this was actually a fix in #kleinerm/Psychtoolbox-3@a5c37855a4a097) that needed repackaging
1092
+ - error with Variable Component trying to save start/stop times (that might not exist for that variable) #e1bca1bdc
1093
+ - some data could get orphaned (and not saved) by being collected in the outer section of a nested loop #8b7fda826
1094
+ - when using Mouse.getPos() with retina display and win.units=='pix' the mouse pos was double the expected value #a78d74420
1095
+
1096
+ PsychoPy 3.1.3
1097
+ ~~~~~~~~~~~~~~~~~~~~~~
1098
+
1099
+ FIXED:
1100
+
1101
+ - StairHandler code from Builder was failing in 3.1 due to new tStartRefresh
1102
+ data being sent to wrong method (addData not addOtherData) #2497
1103
+ - Routines in online studies that weren't included in (or before) a loop were
1104
+ not having their data saved #2496
1105
+ - Fix to audio capture error "bad argument at position 0" from Builder experiments #dadb9be25
1106
+ - PsychoPy app didn't recognise projects that were pointing to gitlab ssh targets (e.g. created in terminal) #08d7937
1107
+
1108
+ PsychoPy 3.1.2
1109
+ ~~~~~~~~~~~~~~~~~~~~~~
1110
+
1111
+ FIXED:
1112
+
1113
+ - teething problems with new :class:`~psychopy.hardware.Keyboard`:
1114
+
1115
+ - in Builder there was stuttering of sounds and lags in frame timing caused
1116
+ by accidentally creating lots of Kyeboards while checking for 'escape'
1117
+ - durations were being reported with correct magnitude but as negative values #e43e474602b7f
1118
+ - problem on Windows if keyboard device name contained unicode (that problem
1119
+ was actually in psychtoolbox package, now updated in Standalone)
1120
+ - on Windows, the 'return' key was being called 'num_enter'
1121
+
1122
+ - videos were not running online #9779579b60 #51b0824f755
1123
+ - fixed rounding error in filtering of NoiseStim #5d0e360d87b
1124
+ - iohub `waitKeys` should act like `getKeys` if maxWait<=0 #e33f733f317de
1125
+ - error if unicode items in the new Form class #8287674f49a4c8
1126
+
1127
+ ADDED:
1128
+
1129
+ - videos in Builder now have a `Loop playback` parameter
1130
+ - Standalone distributions now include tobii-research package
1131
+
1132
+ PsychoPy 3.1.1
1133
+ ~~~~~~~~~~~~~~~~~~~~~~
1134
+
1135
+ ADDED:
1136
+
1137
+ - Added the loop playback parameter to Movie Components
1138
+
1139
+ FIXED:
1140
+
1141
+ - Microphone on windows failed if user didn't manually set pyo to be preferred lib. That isn't now needed #700b72cd6
1142
+ - pyo lib is now provided in the 64 bit Python3 Standalone (win)
1143
+ - The new Keyboard class wasn't clearing all events when requested (e.g. at the beginning of stimulus onset) #2442
1144
+ - Parallel port lib in the Windows 32-bit version wasn't working (installed a new dll)
1145
+ - OpenCV in Mac Standalone wasn't working (updated to be a package not a single file)
1146
+ - Sounds with variable duration didn't stop properly #2446
1147
+ - Fix to JS output when useVersion was set to something
1148
+ - Cedrus XID lib is now working on Python3 (although their official one is yet to come)
1149
+
1150
+ PsychoPy 3.1.0
1151
+ ~~~~~~~~~~~~~~~~~~~~~~
1152
+
1153
+ NEW:
1154
+
1155
+ - hardware.keyboard.Keyboard class, based on C code from the Psychtoolbox project (ported to Python by Mario Kleiner)
1156
+
1157
+ - faster than `event.getKeys()` (polling is asynchronous with drawing loop and the calls go direct
1158
+ to the USB rather than going via the operating system key calls)
1159
+ - supports keyDuration fields as well as `rt` for key down time
1160
+
1161
+ - Form class for combining text items and responses (currently ratings and radio items) in a scrollable list
1162
+ - each Builder Component is now outputting its start/stop times in the data file by default (can be turned
1163
+ off for )
1164
+
1165
+
1166
+ PsychoPy 3.0
1167
+ ----------------
1168
+
1169
+ PsychoPy3 is the new phase of development including support for online studies
1170
+ at the Pavlovia.org experiment server. Many of the features here are relatively
1171
+ new and, although we have spent hundreds of hours developing and testing them
1172
+ you should be more cautious than ever checking your experiment and data outputs.
1173
+
1174
+ PsychoPy 3.0.7
1175
+ ~~~~~~~~~~~~~~~~~~~~~~
1176
+
1177
+ FIXED:
1178
+
1179
+ - local project repeatedly asking to Create New Pavlovia project when one already exists #c3f0d203f
1180
+ - Fixed "No module named 'PyQt4'" on MacOS<10.10 caused by PyQt dropping support for Mac10.9 in PyQt5.9 #2375
1181
+ - don't allow movie->online to use units 'from experiment settings' #8cbaf8a713
1182
+ - Py3 string/byte fixes for CRS ColorCal #3bf1b7e5d4 #d49f154a0
1183
+ - various fixes to Japanese translations
1184
+
1185
+ PsychoPy 3.0.6
1186
+ ~~~~~~~~~~~~~~~~~~~~~~
1187
+
1188
+ FIXED:
1189
+
1190
+ - `TrialHandler.next()` was accidentally removed by Python3 conversion and now added back in #c44621ab072ad
1191
+ - various fixes to iohub Python3 compatibility (especially for datastore)
1192
+ - permit reading "xlsm" files as conditions files (Excel files with macros although these will be ignored by Python) #9e11bfd61
1193
+ - added space key to the GlobalEventKeys #2310
1194
+ - fix to pating into Code Component with windows EOLs
1195
+ - fixes to Japanese translation (and bug around saving Static Components in Japanese locale)
1196
+ - packaging: PyQt package inside one of the Standalone distros was broken
1197
+
1198
+ PsychoPy 3.0.5
1199
+ ~~~~~~~~~~~~~~~~~~~~~~
1200
+
1201
+ FIXED:
1202
+
1203
+ - sounddevice backend not importing on systems that don't have readline #a9bbe98b3
1204
+ - better automated Pavlovia logging-in for users, based on project #460889e5d
1205
+ - faster auto-logging for changes involving numpy arrays (e.g. elexment arrays XYs) #e5dfc9e7d
1206
+ - fix paste when using legacy macOS end-of-lines (convert them to '\n' always) #94c5ee6a2
1207
+ - updated Japanese translations #2292
1208
+
1209
+ PsychoPy 3.0.4
1210
+ ~~~~~~~~~~~~~~~~~~~~~~
1211
+
1212
+ FIXED:
1213
+
1214
+ - fixes to prevent stalled "Synchronizing..." message by preventing behaviours that would cause it #8cadce02d
1215
+ - workaround to stop `sounddevice` backend from silencing `input()` #1422fd7c9
1216
+ - prevent JS experiments being compiled with units of "use prefs" #a686dbf52
1217
+ - cleaner ioHub shutdown #7a7751ca5 and datastore #209c4047f
1218
+ - Slider in JS allows forceEndRoutine #0694027b2
1219
+ - better error reporting when compiling scripts #a01cb2982
1220
+ - don't crash the app if no internet #84b7602c3
1221
+ - don't crash if scipy.optimize doesn't load #0f8038629
1222
+ - set Slider label height to match tick height by default #f8bdf2341
1223
+ - online sounds were never ending if duration was blank (now ends at end of file) #6d91b3186
1224
+ - problem converting EOLs between different formats when pasting code
1225
+
1226
+ ADDED:
1227
+
1228
+ - New Builder Pavlovia button to examine properties of current project
1229
+ - Added star to ShapeStim (currently only in Python) #8e6c40993
1230
+ - Added tooltips for Pavlovia buttons
1231
+
1232
+ PsychoPy 3.0.3
1233
+ ~~~~~~~~~~~~~~~~~~~~~~
1234
+
1235
+ CHANGED: Slight change to creation of *new* experiments, which will now default to
1236
+ the units of 'height' rather than 'use preferences' (which led to potential confusion
1237
+ when the experiment moved to a different computer)
1238
+
1239
+ FIXED:
1240
+
1241
+ - Force End Routine wasn't working with Slider when online #a0ca2e312
1242
+ - Fix to the online error about units: if an experiment is given units of "use preferences"
1243
+ this will switch to height during HTML export #a686dbf52
1244
+ - First push of a new project to Pavlovia didn't note that remote now exists, so
1245
+ tried to "first push" again #f4134a670
1246
+ - fixed detection of correct non-response in JavaScript outputs (so no-go works online) #0c3cea2b2
1247
+ - added workaround for strange clash of `sounddevice` with `input()` #f99bef4a9
1248
+ - various small fixes to iohub for Py3 #e6a2169d6 #4ca503399 #cf432bc3c
1249
+
1250
+ ADDED:
1251
+
1252
+ - star available as a Shape in Builder (but not online yet)
1253
+ - experiment info dialog now supports drop-downs to constrain options (e.g. ['male','female','other'] )
1254
+ - BBTK now supports mode Digital Stimulus Response Echo #5da328fcf
1255
+
1256
+ PsychoPy 3.0.2
1257
+ ~~~~~~~~~~~~~~~~~~~~~~
1258
+
1259
+ FIXED:
1260
+
1261
+ - Builder's PsychoJS outputs were not updating their versions (pointing to the version the script was first created in, not the version currently used) #789d24ee45aa
1262
+ - sounddevice under Python2 had a bug with being unable to copy() #c1317b6b6355e
1263
+ - now prevent the user from accessing `useVersion` if that version can't be supported by the current install (e.g. incompatible Python version or wx version)
1264
+ - Windows Standalone version now includes dependency for [pyqmix](https://github.com/psyfood/pyqmix) pumps
1265
+
1266
+ PsychoPy 3.0.1
1267
+ ~~~~~~~~~~~~~~~~~~~~~~
1268
+
1269
+ FIXED:
1270
+
1271
+ - JS outputs were connecting to outdated PsychoJS version (3.0.0b11 instead of 3.0.0)
1272
+ - updated numpy (to 1.15.4) and scipy (to 1.2.0) for windows installs using https://www.lfd.uci.edu/~gohlke/pythonlibs/ in the hope of fixing numpy problems for some windows boxes
1273
+ - JS string values in Py27 were being convert to b'theString' in JS outputs which obviously broke JS
1274
+
1275
+ ADDED:
1276
+
1277
+ - Slider support from JS outputs
1278
+
1279
+ PsychoPy 3.0.0
1280
+ ~~~~~~~~~~~~~~~~~~~~~~
1281
+
1282
+ Although there were several beta versions preceding this, the changes described
1283
+ below are the *broader* changes since 1.90.3 (the previous "stable" version).
1284
+
1285
+ NEW:
1286
+
1287
+ - supports heavily revamped PsychoJS library:
1288
+ - new PsychoJS supports text, images, keyboards, mouse, sounds, movies, sliders
1289
+ - you can also now include Builder Code Components that include both
1290
+ Python and JavaScript optional code so your components will work
1291
+ online too
1292
+
1293
+ - PsychoPy can search, sync and create experiments on Pavlovia.org:
1294
+ - search for existing studies
1295
+ - create your own
1296
+ - run (and collect data into csv files or mongoDB)
1297
+ - sync, including (push changes to the server and fetch back data)
1298
+
1299
+ - Additional new features:
1300
+ - Slider class, recommended replacement for RatingScale (more efficient, more
1301
+ flexible and simpler to use)
1302
+ - support for Oculus Rift (only on Windows 64bit Python 3) all due to Matthew
1303
+ Cutone
1304
+
1305
+ Many bugs have also been fixed, notably in terms of audio library problems and
1306
+ memory problems with MovieStim3.
1307
+
1308
+
1309
+ PsychoPy 3.0.0b7
1310
+ ~~~~~~~~~~~~~~~~~~~~~~
1311
+
1312
+ FIXED:
1313
+
1314
+ - New rating scale (Slider) handles color properly #1944 and better handling of button drag #1945
1315
+ - 'newRating' Builder demo has been fixed (forceEndRoutine shouldn't have been happening)
1316
+ - timeByFrames now renders the graph into the PsychoPy window (was sometimes hanging on mac otherwise)
1317
+
1318
+ PsychoPy 3.0.0b6
1319
+ ~~~~~~~~~~~~~~~~~~~~~~
1320
+
1321
+ FIXED:
1322
+
1323
+ - several sync problems with pavlovia.org: #1f0d8bcab50c1528291adb3a689e95f6e3bf7fc5
1324
+ - sync when an empty project already exists is now fine
1325
+ - after creating the project, changing a file and repeating sync, it didn't detect the changed file
1326
+ - sync to a project that has been deleted remotely now asks if you want to recreate the project
1327
+ - better reporting of error if sync fails
1328
+
1329
+ - further fix to memory leak in MovieStim3 #9d0c127d8e6dfd6efba5f285bed93685980cd443
1330
+ - fix to PsychoJS output code: loops were not being compiled correctly #6a8e700a350b660b6f588c5b902b04a736b023d2
1331
+ - when compiling to JS we now detect tuples and convert to lists for params (JS only has one sequence, with `[ ]` )
1332
+
1333
+ PsychoPy 3.0.0b4
1334
+ ~~~~~~~~~~~~~~~~~~~~~~
1335
+
1336
+ FIXED:
1337
+
1338
+ - some packaging issues on both Windows and Mac (e.g. updates to Pillow=5.2.0, soundfile=0.10.2) also fixes libsndfile error on Mac_Py2 standalone
1339
+ - when the localRoot has been set for a project (before sync) we should get back the sync window
1340
+ - clicking "runOnline" before creating/syncing your project with Pavlovia now does the right thing
1341
+ - fix to MovieStim3 unloading of movies #1917
1342
+
1343
+ PsychoPy 3.0.0b3
1344
+ ~~~~~~~~~~~~~~~~~~~~~~
1345
+
1346
+ FIXED:
1347
+
1348
+ - a further issue with the app not starting on some machines (due to the
1349
+ first-run wizard)
1350
+ - searching pavlovia projects now support stars and forks in sorting
1351
+ - Slider forceEndRoutine was having no effect
1352
+ - sounddevice problem when playing a mono sound to stereo stream or vice-versa
1353
+
1354
+ ADDED:
1355
+
1356
+ - support for Oculus Rift (only on Windows 64bit Python 3) all due to Matthew Cutone
1357
+ - Japanese translations to many of the new features/controls
1358
+
1359
+ PsychoPy 3.0.0b2
1360
+ ~~~~~~~~~~~~~~~~~~~~~~
1361
+
1362
+ FIXED: an issue with the app not starting (if git not installed)
1363
+
1364
+ PsychoPy 3.0.0b1
1365
+ ~~~~~~~~~~~~~~~~~~~~~~
1366
+
1367
+ PsychoPy3 is the new phase of development including support for online studies
1368
+ at the Pavlovia.org experiment server. Right now this is BETA SOFTWARE. It WILL
1369
+ contain bugs but we're fixing them as fast as we/you can find them!
1370
+
1371
+ NEW:
1372
+
1373
+ - supports heavily revamped PsychoJS library
1374
+ - new PsychoJS supports text, images, keboards, mouse and sounds
1375
+ - you can also now include Builder Code Components that include both
1376
+ Python and JavaScript optional code so your components will work
1377
+ online too
1378
+
1379
+ - PsychoPy can search, sync and create experiments on Pavlovia.org
1380
+ - search for existing studies
1381
+ - create your own
1382
+ - run (and collect data into csv files)
1383
+ - sync, including (push changes to the server and fetch back data)
1384
+
1385
+
1386
+ PsychoPy 1.90
1387
+ ------------------------------
1388
+
1389
+ This is a very major refactor of many parts of the PsychoPy code. Treat very
1390
+ carefully for the first few bug-fix releases as there are likely to be errors
1391
+ some of which could be catastrophic to your data!!
1392
+
1393
+ This is the first attempt at support for Python 3, with maintained support for
1394
+ Python 2.7. Note that both are available as Standalone packages for Win and Mac.
1395
+ The Python3.6 version is labelled as Py3 in the download file.
1396
+
1397
+ Stick to Python 2.7 if you want your script to break less. If you upgrade to
1398
+ Python 3 then you'll need to change any print statements to include brackets
1399
+ and you may also get some new errors springing up about unicode/bytes objects.
1400
+
1401
+ PsychoPy 1.90.3
1402
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1403
+
1404
+ Released July 2018
1405
+
1406
+ FIXED:
1407
+
1408
+ * Fixes event code creation for Black Box ToolKit #1830
1409
+ * Removed redundant 'apply' button in preferences #1832
1410
+ * Fixes problem with setting gamma with pyglet v1.3+ #1834
1411
+ * Removes 'unknown color space' warning if user is using named colors #1836
1412
+ * Fixes refcount error, raised when monitor centre was closed #1838
1413
+ * For Py3, JSON calibration files are now loaded into monitor list #1839
1414
+ * Fixes layout problem with RTL locale causing broken dialogs in the app #1840
1415
+ * Anti-buzzing fix applied to sounddevice backend #1847
1416
+ * Implements checks for variable name clashes between builder and conditions file #1852
1417
+ * Reduced code redundancy for _getRegionOfFrame, and can get single pixels from front buffer #1854
1418
+ * Hex color space can now be specified as a window setting in Experiment Settings #1857
1419
+ * Sound duration can now be specified in conditions files #1858
1420
+
1421
+ PsychoPy 1.90.2
1422
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1423
+
1424
+ Released May 2018
1425
+
1426
+ FIXED:
1427
+
1428
+ * TextStim now working GLFW backend #a909c95f
1429
+ * better checks for existing ffmpeg before trying to download #a909c95f
1430
+ * CRS Bits boxes bugs with Python3 #ff5a4ab7
1431
+ * Fixes to window position for Retina displays #e7b111cc #0d4538de
1432
+ * Fixes to sound component with duration=None #9b46ff0c
1433
+ * Fix to Hex-specified colors #6ffa413a
1434
+ * print(RunTimeInfo()) not working due to unicode/str error #29de9501
1435
+ * sounddevice stereo auto-detection wasn't working for wav files #b07f8fb1
1436
+
1437
+ PsychoPy 1.90.1
1438
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1439
+
1440
+ Released April 2018
1441
+
1442
+ ADDED:
1443
+
1444
+ * Option to move Y position of `RatingScale` in code #1776
1445
+ * Added option of providing extra arguments to `scipy.optimize` functions when fitting from `psychopy.data` #1772
1446
+
1447
+ FIXED:
1448
+
1449
+ * Problem with icon path in GLFW backend on linux #bbf51521664
1450
+ * PUINT didn't exist in older `win32` package but was expected by `pyglet`
1451
+ * Better handling of conditions file with empty columns (from Excel adding them or from missing headers)
1452
+ * Several fixes to ioHub in Python3 #1770 #1771 and #1775
1453
+ * Mouse reporting incorrect position when using Mac Retina display #54ced9c2644e
1454
+ * `sounddevice` was failing to find `portaudio.dylib` on Mac
1455
+
1456
+
1457
+ PsychoPy 1.90.0
1458
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1459
+
1460
+ Released March 2018
1461
+
1462
+ ADDED:
1463
+
1464
+ * Standalone distributions for Python 3.6 as well as Python 2.7
1465
+ * Using `pip install psychopy` now installs all the necessary dependencies, making it much easier to install to your own Python installation
1466
+ * Noise stimuli for presenting filtered noise in vision studies (thanks Andrew Schofield)
1467
+ * Second order stimuli for contrast modulated gratings (thanks Andrew Schofield)
1468
+ * Builder: Mouse now allows stimuli to be "clickable" turning them in to buttons
1469
+ * Builder: ShapeStim now handles additional shapes, like Cross (also takes names for shapes rather than just n vertices)
1470
+ * Monitors calibration files can now be saved/loaded in JSON format
1471
+
1472
+ CHANGED:
1473
+
1474
+ * Image stimuli given an image of None (or blank in Builder) will now not display anything, whereas they previously showed a blank white (or colored) patch. To get that behaviour you can set the image to be `color` (in Builder) or "color" (in code).
1475
+
1476
+
1477
+ PsychoPy 1.85
1478
+ ------------------------------
1479
+
1480
+ PsychoPy 1.85.6
1481
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1482
+
1483
+ A bug-fix release to solve a few machine-specific issues.
1484
+
1485
+ FIXED:
1486
+ * on some computers the data weren't being saved if user pressed 'Esc' during experiment. #193ce541
1487
+ * fix for the "Unable to share contexts" error on machines that don't support OpenGL shadow_window #a1c29d3a
1488
+ * pyo not always closing properly #1614
1489
+ * problem with non-ascii characters in conditions file name #32204a200
1490
+ * loading of preferences was failing if the audio backend wasn't a valid option #c2d11477b5
1491
+ * Builder demo images_blocks had wrong units for images #1601
1492
+ * no longer tell people to upgrade if their version is *newer* than the "latest" #1567
1493
+ * added support for newer PST box in ioHub (with 7 buttons not 5) #b9534a28896
1494
+ * Monitor.linearizeLums() was raising an error due to a change in import name
1495
+ * stimuli not switching correctly to desired window in multi-window setups #1514
1496
+ * opencv movie backend had an error that `'float' object cannot be interpreted as an index` #1510
1497
+ * cedrus box had error `AttributeError: 'ResponseDevice' object has no attribute 'status'` #1493
1498
+ * retina displays had some bad scaling. Now strongly recommend using `retina=True` #08163f78a9c8ab9b
1499
+
1500
+
1501
+ PsychoPy 1.85.4
1502
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1503
+
1504
+ Released: Sept 2017
1505
+
1506
+ There was an error building the 1.85.3 release. Rather than building a bug-fix-inly release, version 1.85.3 has accidentally included some substantial code refactoring intended for the 1.86.0 release.
1507
+
1508
+ This version, which we will call 1.85.4 is to replace that 1.85.3 release and provides the same fixes (but not the code refactoring) that was intended in 1.85.3
1509
+
1510
+ PsychoPy 1.85.3
1511
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1512
+
1513
+ Released: Aug 2017
1514
+
1515
+ This release fixes several bugs but it does also add 2 new dependencies:
1516
+
1517
+ * `json_tricks` and `future` are bother required for this version
1518
+ * these are paving the way for updating Python3 (which will be enabled in 1.86.x series of releases)
1519
+
1520
+ FIXED:
1521
+
1522
+ * Problem with text stimuli on Windows not rendering if large (was a bug in pyglet, fixed in 1.3.0b1)
1523
+ * Whitespace/indentation guides were not toggling on/off correctly in Coder #4ebbdb9c5468beebb50d817697c0665450e9a5ad
1524
+ * Added status property to labjack U3 in Builder scripts #b4d16d3d6319d0edeb7a95e774ff60c0ea51a1cf
1525
+ * Fix to iohub.launchHubServer() under Linux #a9392f62e5e819788e77553583b6776d5992b849
1526
+ * Fix to config file for iViewX on ioHub #590fb20de193fd85f66655c0983107a561f3f2d1
1527
+
1528
+ PsychoPy 1.85.2
1529
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1530
+
1531
+ Released: June 2017
1532
+
1533
+ FIXED:
1534
+
1535
+ * several errors with **PsychoJS** outputs from Builder (mostly thanks to Jon Roberts at Colorado):
1536
+
1537
+ * nReps and randomisation now being handled correctly by PsychoJS #ad9a931
1538
+ * "correct" responses were being overwritten by non-responses #f903210
1539
+ * Text components that were static caused a crash (were erroneously given two single-quotes) #b399a50
1540
+
1541
+ * Staircase would finish prematurely if nReversals was None #7148cad
1542
+ * PsychoPy would crash if sound device contained a unicode character #c1ff68f
1543
+ * FrameBufferObject not working correctly for dual-window setups #5e1c045
1544
+ * removed some annoying junk messages about sounddevice #e5ae2fc
1545
+
1546
+ PsychoPy 1.85.1
1547
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1548
+
1549
+ Released: April 2017
1550
+
1551
+ FIXED:
1552
+
1553
+ * several errors with **PsychoJS** outputs from Builder:
1554
+ * early termination of experiments #f1bd15047
1555
+ * incorrect blank email field in info.php #d68c36bf9
1556
+ * incorrect component name sin endRoutine #e47d90a36
1557
+ * incorrect default units for image stims #8c32d1c9a
1558
+ * several problems with **sound**:
1559
+ * pyo not loading #1365
1560
+ * searching for 'auto' instead of 'default' device #d54d14fe
1561
+ * fixed duration calculation (bug in soundfile) for sounddevice #e0e01ad
1562
+ * textbox v textstim demo wasn't working #b2913c12476
1563
+ * error with colors when using TextStim with blendmode='add'
1564
+ * errors in installer package:
1565
+ * windows installer could overwrite system path setting
1566
+ rather than append (NSIS short-string problem came back!)
1567
+ * freetype 32 bit dll is being provided again (was in matplotlib
1568
+ before but disappeared?)
1569
+
1570
+ PsychoPy 1.85.0
1571
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1572
+
1573
+ Released: Feb 2017
1574
+
1575
+ ADDED:
1576
+ * `Online experiments now supported <https://www.psychopy.org/online/online.html>`_ using new `PsychoJS library <https://github.com/psychopy/psychopy/tree/master/psychojs>`_. See what is supported so far at `PsychoPy online status <https://www.psychopy.org/online/status.html>`_
1577
+ * New sound engine using `sounddevice <https://github.com/spatialaudio/python-sounddevice/>`_
1578
+ * Checking of image paths for stimuli (did you forget to add ".jpg"?)
1579
+ * Copy/paste of a Component is now possible in Builder (right-click the component to copy, use the Experiment menu to paste). This essentially duplicates the component.
1580
+
1581
+ FIXED:
1582
+ * crash when increasing size of Flow in Builder #1272
1583
+ * bug in pysoundcard backend preventing file-based sounds playing #1299
1584
+ * excel outputs were failing to save on new versions of openpyxl #1276
1585
+ * `useVersion()` was not fetching new (uninstalled) versions correctly #1301
1586
+ * DotStim now has the option to reset the dots at the beginning of a trial #db6f53d50
1587
+ * better handling of blank cells in Excel conditions files (and xls files now supported)
1588
+ * Excel conditions files now import the "value" of a cell rather than the formula #7f753f5
1589
+
1590
+ DEPENDENCIES/PACKAGING:
1591
+ * pyserial and pyxid were incompatible versions
1592
+ * now packaging 1.2-maintenance branch of pyglet including Text memory fixes
1593
+
1594
+ PsychoPy 1.84
1595
+ ------------------------------
1596
+
1597
+ PsychoPy 1.84.2
1598
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1599
+
1600
+ Released: Sept 2016
1601
+
1602
+ FIXED:
1603
+ * Problem with renaming of Routines preventing experiment from re-loading #1248
1604
+ * Several bugs with Builder code generation since PEP8 refactoring:
1605
+ * Static Components gave error compiling script
1606
+ * some Keyboard Components (with variable "allowed keys" settings) gave error compiling script #1245
1607
+ * Mouse Component with "Save state at end of trial" gave indentation error #1253
1608
+ * Loops gave error compiling script if conditions file was a formatted string #1253
1609
+
1610
+ * Standalone distributions were not including the correct `pylink 1.1.0.4` and `pyxid` packages
1611
+
1612
+ ADDED:
1613
+ * Keyfinder demo to Builder view #1252
1614
+ * Support for key modifiers using `event.getKeys()` #1242
1615
+
1616
+ PsychoPy 1.84.1
1617
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1618
+
1619
+ Released: Sept 2016
1620
+
1621
+ FIXED:
1622
+ * Builder Keyboard component was treating non-response as correct answer. #1230 Thanks Jarrod
1623
+ * MovieStim2 (opencv) now compatible with newer versions of opencv (v3.x) #1223
1624
+ * SSL certificates for OS X causing failure to connect to osf.io for projects
1625
+ * dependencies added/updated in Standalone packages:
1626
+
1627
+ * pyHook, pygame, pylink 0.3.2, (win32)
1628
+ * pysoundcard (OS X)
1629
+
1630
+ * hello_world demo crashing the app on load
1631
+
1632
+ ADDED:
1633
+ * Movie **outputs** in gif, mp4, mov formats automatically, using moviepy #1228
1634
+
1635
+ PsychoPy 1.84.0
1636
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1637
+
1638
+ Released: Aug 2016
1639
+
1640
+ ADDED:
1641
+ * Projects (new menu) which can sync files with Open Science Framework
1642
+ * Movies in Builder can now avoid loading audio (i.e. mute). As well as meaning your movie is genuinely silent this saves processing for the computer, so do it unless you need the sound!
1643
+ * menu item to create a .csv (data) file from a .psydat file; see Coder > Tools menu (also: Coder > Demo menu)
1644
+ * Builder experiments force a save before the end of the study so pressing the red stop button is less likely to lose data for you
1645
+ * You can now **rename a Routine** #1136
1646
+ * a Builder experiment setting to specify the version of PsychoPy to be used when running the experiment #1137
1647
+
1648
+ CHANGED:
1649
+
1650
+ * MAJOR REFACTOR: A lot of code has been refactored to be more in line with a thing called PEP8. If that doesn't mean anything to you don't worry, it shouldn't affect you. If you like that sort of thing, sorry we didn't got further and get rid of camelCase. ;-)
1651
+ * setting ShapeStim vertices dynamically now requires an explicit assignment of the new vertex list to shape.vertices; this can be slow for filled shapes with many vertices. See shapes.py, selfx example.
1652
+ * Some file names and locations have changed. To update, replace OLD form in your scripts with NEW form:
1653
+
1654
+ * OLD form --> NEW form
1655
+ * Deprecated since 2012, must now update:
1656
+ * `from psychopy import calib` --> `from psychopy import monitors as calib` (or just use `monitors`)
1657
+ * `from psychopy import bits` --> `from psychopy.hardware.crs import bits`
1658
+ * `from psychopy import log` --> `from psychopy import logging`
1659
+ * Newly deprecated (the old way still works but logs a warning):
1660
+ * `from psychopy import _shadersPyglet` --> `from psychopy.visual import shaders`
1661
+ * `from psychopy import gamma` --> `from psychopy.visual import gamma`
1662
+ * `from psychopy import filters` --> `from psychopy.visual import filters`
1663
+ * API change (only affects people who write their own Builder components):
1664
+ * `from psychopy.app.builder.components._visual import VisualComponent` --> `from psychopy.app.builder.components._base import BaseVisualComponent`
1665
+
1666
+ * PyQt is now default over wx for dialog boxes (if either PyQt4 or PyQt5 are installed). Also fixed bug to support PyQt5
1667
+ * No Static Components are created by default (e.g. ISI). Have to add them manually
1668
+
1669
+ IMPROVED:
1670
+ * ShapeStim can properly fill arbitrary shapes (using tessellation); see new shapes.py Coder demo for examples.
1671
+ * Coder view now has better support for Retina display on OSX. visual.Window also has a new option to use retina for rendering in the experiment (off by default)
1672
+ * better warnings about VLC being wrong architecture for this python install
1673
+ * Code Components now indicate which ones actually contain code. #1204
1674
+
1675
+ FIXED:
1676
+ * bug with Monitor center not creating/saving monitor due to lack of SizePix #1208
1677
+ * window viewScale and viewPos combine correctly; viewScale handles negative values, mirror-image flips the window correctly (except for Text)
1678
+ * Builder experiments will always add their extension (to stop people overwriting them with the python script of the same experiment)
1679
+ * faster writing of multiple lines (bits) to the LabJack
1680
+ * sampling rate when using binocular mode in eyelink 1000 #1146
1681
+ * Aperture now supports infinite durations in Builder #1122
1682
+ * ColorCal II now supports newer pyserial version #1138
1683
+ * Erroneous extra data column added if experiment was aborted #1115
1684
+ * Ubuntu buglet with importing iohub devices caused by outdated psutils #1172
1685
+
1686
+ PsychoPy 1.83
1687
+ ------------------------------
1688
+
1689
+ PsychoPy 1.83.04
1690
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1691
+
1692
+ Released: Feb 2016
1693
+
1694
+ * FIXED:
1695
+ * Mac Standalone was (still) not launching on some versions of OSX
1696
+ * MovieStim3 not working on all graphics cards (glPopAttrib). Thanks Bryan Cort and Frank Papenmeier for their help
1697
+ * MovieStim3 bug with movies that had no audio stream
1698
+ * Data saving is forced at the end of Builder Experiments even if script fails to exit properly (red stop button less likely to lose data)
1699
+ * Setting gamma on OSX 10.11 wasn't working (Apple moved the lib to a new location). #1089
1700
+ * Option to turn off audio in Movies from Builder when not needed (better performance and fewer shutdown-probs)
1701
+
1702
+ PsychoPy 1.83.03
1703
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1704
+
1705
+ Released: Dec 2015 (NB 1.83.02 was never publicly released)
1706
+
1707
+ * FIXED:
1708
+ * problems with the Mac Standalone failing to launch on some OSX versions
1709
+ * reduced impact of pyglet text memory leaks (make fewer updates). (NB There is still a leak in Pyglet's code that we can't fix)
1710
+ * several fixes to RatingScale
1711
+ * window viewScale and viewPos combine correctly; viewScale handles negative values, mirror-image flips the window correctly (except for Text) #1011
1712
+ * fixed memory leak in sounds on 64bit Mac installation (error in pyo)
1713
+ * MovieStim3 was interacting badly with ShapeStim #981
1714
+ * MovieStim3 was failing if no audio stream was present in the file #984
1715
+ * PsychoPy app now gives a warning message if it can't start due to permissions error #1055
1716
+ * Faster rendering of MovieStim2 and Moviestim3 due to removal of mipmapping code
1717
+
1718
+ PsychoPy 1.83.01
1719
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1720
+
1721
+ Released: Oct 2015
1722
+
1723
+ * FIXED:
1724
+ * new bug with pygame sounds giving fileName not defined
1725
+ * several RatingScale bugs; reduce the memory leak (due to pyglet as used in TextStim)
1726
+ *
1727
+ * ADDED: voice-key capability, e.g., for word-naming studies; includes a demo, auxiliary functions (smoothing, zero-crossing, etc), and file-format options (all those supported by pyo)
1728
+ * CHANGED: remove support for google's speech to text (the new google API is for chrome / chromium developers only)
1729
+ * CHANGED: deprecate psychopy.web.upload(); use the requests package instead: requests.post()
1730
+
1731
+ PsychoPy 1.83.00
1732
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1733
+
1734
+ Released: Oct 2015
1735
+
1736
+ * ADDED: MovieStim3 using an alternative backend that doesn’t require avbin, vlc or streamer. It just uses a couple of python libs and FFMPEG, which are relatively easy to package. Seems to have good performance too but this needs more testing
1737
+ * IMPROVED: speed to load psychopy.visual (“lazy loading” only the stimuli you use are loaded)
1738
+ * ADDED: RatingScale precision=60 allows display of time-based values (min:sec or hours:min). Values from .getRating() are decimal proportions (1 min: 59 seconds -> 1.9833 minutes).
1739
+ * ADDED: Coder view can now be set to read-only mode to prevent subjects accidentally altering study #945
1740
+ * ADDED: TextStim now has property `boundingBox` telling you the maximum area of the letters (defined by the font, not by the actual rendered letters) #35c168f1
1741
+ * ADDED: Aperture can now be created using images (anything that worked with ImageStim) #923 and can also be inverted so that opaque becomes transparent and vice versa #922 Thanks Thomas Emerling for both
1742
+ * ADDED: New visual stimulus EnvelopeGrating for contrast-modulated gratings. Thanks Andrew Schofield
1743
+ * ADDED: option to set mouse_exclusive mode (mouse locked to the window boundary and invisible) Thanks Suddha Sourav #898
1744
+ * FIXED: DotStim can now change field size on the fly
1745
+ * FIXED: several (but probably not all) annoying error messages that were unimportant
1746
+ * FIXED: Condition file in Builder no longer abbreviated. Thanks Mike #913
1747
+
1748
+ PsychoPy 1.82
1749
+ ------------------------------
1750
+
1751
+ PsychoPy 1.82.02
1752
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1753
+
1754
+ Released: Aug 2015
1755
+
1756
+ - FIXED: TrialHandler wasn't saving extraInfo (was overwritten during trials) #815
1757
+ - FIXED: don't have pickle file re-saving itself when it comes back from pickling #833
1758
+ - FIXED: Mouse Component could crash data saving if no response was made #839
1759
+ - FIXED: memory leaks in MovieStim2 (opencv backend) #838 and #919
1760
+ - FIXED: checked that window positions are integers #854
1761
+ - FIXED: OSX "10.10" incorrectly looked older than "10.9" #866
1762
+ - FIXED: RatingScale would show "False" for scale description in some cases #870
1763
+ - FIXED: problem with microphone saving files that end with w, a or v #875
1764
+ - FIXED: MonitorCenter failing to create new monitor #887
1765
+ - FIXED: universal line endings in csv outputs files #889
1766
+ - FIXED: unicode in conditions files #892
1767
+ - FIXED: `iohub` not detecting Linux mouse events #894
1768
+ - FIXED: if output file is set to be `stdout` this should then be closed #902
1769
+ - FIXED: don't abbreviate the path name of conditions files #913
1770
+ - FIXED: minor error in logging for `rush()` under win32 #914
1771
+ - FIXED: unicode issues in user preferences panel #930 #932
1772
+ - FIXED: MonitorCenter won't lock you out if given an invalid screen number #937
1773
+ - FIXED: mono++ mode in CRS Bits++/#/Display++ is now using full dynamic range (previously 8bit blue gun overlay was overriding the 16bit screen buffer)
1774
+
1775
+ PsychoPy 1.82.01
1776
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1777
+
1778
+ Released: Feb 2015
1779
+
1780
+
1781
+ PsychoPy 1.82.01
1782
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1783
+
1784
+ Released: Feb 2015
1785
+
1786
+ * FIXED: problem with MovieStim2 showing black box instead of movie on certain systems
1787
+ * FIXED: problem with Tobii eye tracker not closing calibration window (Sol)
1788
+ * FIXED: better timing for non-slip routines that follow dynamic routines (Jeremy) #822
1789
+ * FIXED: problem with stimuli (e.g. shapes) not appearing if a texture had just been created and not yet drawn
1790
+ * FIXED: pygame sound engine complained about "global variable loops not defined"
1791
+ * ENHANCED: Filename collision handling for ExperimentHandler (Richard Höchenberger)
1792
+ * CHANGED: for text data outputs that give delim='\t' the file extension '.tsv' is added instead of '.dlm' (Richard Höchenberger)
1793
+
1794
+
1795
+ PsychoPy 1.82.00
1796
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1797
+
1798
+ Released: Jan 2015
1799
+
1800
+ * ENHANCED: slightly faster rendering of movies for high-rate HD stimuli
1801
+ * CHANGED: `pandas` is now a strict requirement for the `psychopy.data` module
1802
+ * FIXED: Builder sounds from file no longer loop indefinitely
1803
+ * FIXED: Builder: microphone recordings are explicitly stopped at the end of every trial
1804
+ * FIXED: Static Components could become hidden by having unknown durations and then couldn't be changed. Now they are always shown even when times are unknown (Jeremy)
1805
+ * ADDED: improved support for Cambridge Research Systems Display++ and Bits# devices:
1806
+
1807
+ * Color++ and Mono++ modes now supported using shaders
1808
+ * fixed some bugs with search for identityLUT in Display++
1809
+
1810
+ * ADDED: Psi adaptive staircase method (thanks Joseph Glavan for writing this)
1811
+ * ADDED: `bidi` and `xlwt` packages to the Standalone distribution
1812
+ * ADDED: support for Mouse.setPos() under pyglet back end (Jeremy)
1813
+ * ADDED: support for PST response box (Richard Höchenberger)
1814
+ * FIXED: extraInfo was not being saved in wide-text format
1815
+ * FIXED: Builder was not respecting order for drawing polygon - it was always drawn first
1816
+ * ADDED: Builder now supports 'degFlat and 'degFlatPos' units and documentation has been added for these
1817
+
1818
+ PsychoPy 1.81
1819
+ ------------------------------
1820
+
1821
+ PsychoPy 1.81.03
1822
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1823
+
1824
+ Released: Dec 2014
1825
+
1826
+ * ADDED: Sounds in Builder can now have a duration set by a variable (changing each repeat). The work on this may cause some systems to have a periodic 'tick' in the sound if they last longer than 10s (probably dependent on sound card and driver)
1827
+ * IMPROVED: RatingScale will always display a custom description ('scale') if provided by the user
1828
+ * ADDED: Monitor Center can now calibrate non-primary monitors
1829
+ * FIXED: components in Builder can now be 'stopped' at the same time as they are started and never show up (previously at least one frame was always required)
1830
+ * FIXED: several issues with Bits++ causing a rendering glitch and not being able to calibrate from Monitor Centre
1831
+ * FIXED: choice selection boxes stopped working in monitor centre (caused by hardware.crs.bits importing pyglet.gl)
1832
+ * FIXED: Bits# can be set to do gamma correction in the PsychoPy LUT ('software') rather than using the on-board gamma table file ('hardware')
1833
+ * FIXED: bug with monitor calib files not returning their linearization method correctly
1834
+ * ADDED: psychopy.qtgui as alternative to gui which doesn't duffer from problem with choice boxes and pyglet clashing (thanks Sol)
1835
+ * FIXED: data files now correctly include the originPath (the path to the script that created them). Thanks Alex Holcombe for the fix
1836
+
1837
+ PsychoPy 1.81.02
1838
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1839
+
1840
+ Released: Oct 2014
1841
+
1842
+ * FIXED: bug with gamma not being set from the Monitor file
1843
+ * FIXED: MovieStim2 warnings about dropped frames were crippling the output window
1844
+ * FIXED: new issue (in 1.81.01) with several drop-down menus in Builder not allowing to select that option
1845
+
1846
+ PsychoPy 1.81.01
1847
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1848
+
1849
+ Released: Oct 2014
1850
+
1851
+ * FIXED: bug with rendering of Movies from Builder (autoDraw() not working)
1852
+ * ADDED: option to use new movie backend from Builder (there is now an option to select `opencv` or `avbin` for movie rendering)
1853
+ * FIXED: if MovieStim2 couldn't load frames fast enough it ran slow (should drop frames but stay synchronised). (Sol)
1854
+ * FIXED: fix spurious warnings about GratingStim.__del__
1855
+ * FIXED: pyo audio crashed on windows if no mic/input was found (Sogo Hiroyuki)
1856
+ * ADDED: serial port device in iohub (Sol)
1857
+
1858
+ PsychoPy 1.81.00
1859
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1860
+
1861
+ Released: Sept 2014
1862
+
1863
+ * IMPROVED: cross-version compatibility:
1864
+
1865
+ * In Builder experiments from 'future' versions can be opened and unknown objects will be ignored (but kept)
1866
+ * In Code you can now do `import psychopy; psychopy.useVersion('X.XX.XX')` to switch to any version greater than 1.76.00 (including versions not installed and future versions). This only affects the lib, not the application. (Thanks Erik Kastman for most of the work on this)
1867
+
1868
+ * IMPROVED: better unit tests for visual stimuli to prevent future bugs
1869
+ * CHANGED: MovieStim was right-left flipping movies and this has been corrected. If you had been working around that by setting flipVertical=True then you'll need to undo that correction
1870
+ * IMPROVED: Can now select a subset of conditions in Builder loops and in `data.importConditions()` function (thanks Mike MacAskill for help)
1871
+ * IMPROVED: In Builder, loops that don't reflect trials (e.g. stimuli within a trial or blocks of trials) can be flagged as such, resulting in neater data files
1872
+ * ADDED: support for additional hardware:
1873
+
1874
+ * basic support for interacting with BlackBoxToolkit v2 psychopy.hardware.bbtk
1875
+ * CHANGED: added basic support for CRS Bits# in psychopy.hardware.crs. New way to interface with Bits++ as well, using a class rather than a Window argument. See demo in demos>hardware
1876
+ * labjack digital outputs can be used as a Parallel Port Component in Builder
1877
+ * the screen rendering can now include a warping step to simulate spherical, cylindrical or custom warping (Jay Borseth)
1878
+ * the screen now supports 'frame packing' whereby sequential frames can be packed into one, as the red, green and blue channels for monochrome high-rate projectors (Jay Borseth)
1879
+ * ioHub eye tracker interface for GazePoint GP3 (Martin Guest)
1880
+ * ioHub Serial device:
1881
+
1882
+ * Support for simple fixed width or marker delimited serial rx stream -> device event parsing.
1883
+ * Demo created showing usage with PST Response box added (Richard Höchenberger)
1884
+ * ioHub ioSync device:
1885
+
1886
+ * Use Teensy 3.0 / 3.1 MCU. Connect via USB 2.0.
1887
+ * 8 / 8 digital inputs / outputs
1888
+ * 8 analog inputs (~12 - 13 bit effective resolution)
1889
+ * 1000 Hz sampling rate for analog and digital inputs.
1890
+ * Keyboard Host support (useful for testing keyboard delay variability from software alone)
1891
+
1892
+ * IMPROVED packaging:
1893
+
1894
+ * can now install on OSX using miniconda/anaconda distribution (Erik Kastman)
1895
+ * pyopencv (cv2) added to Standalone as an alternative to avbin
1896
+ * PySoundCard and PySoundFile added to Standalone
1897
+ * psutil added to Standalone
1898
+ * application is now compatible with wxPython 2.8, 2.9 and 3.0
1899
+
1900
+ * ADDED: MovieStim2 stimulus type. Compared to MovieStim, improved performance and wider range of media encoding support has been reported from testing feedback on all OS's.
1901
+ * IMPROVED: stimulus attributes:
1902
+
1903
+ * Nearly all stimulus attributes now support new syntax, e.g. `stim.pos = [0,0]` as well as the previous `stim.setPos([0,0])`. All docs are update to reflect this change.
1904
+ * All numeric stimulus attributes now support operations. Use e.g. `stim.pos += [0,0.5]`. Read more in :ref:`Operations <attrib-operations>`.
1905
+ * Many more stimulus attributes can now be set after initialization. They have the same name as the init parameters. E.g. `stim.win = mySecondWindow` changes which Window the stimulus is drawn to
1906
+
1907
+ * IMPROVED: logging
1908
+
1909
+ * CHANGED: `log=None` and `autoLog=None` inherits from parents, with `visual.Window` at the top of the hierarchy. None is now default for all stimuli and setter methods.
1910
+ * FIXED: removed unnecessary (e.g. duplicate) logging.
1911
+ * IMPROVED: unnamed stimuli are now given a default name in the logs for easier identification, e.g. "unnamed ShapeStim".
1912
+
1913
+ * IMPROVED: you can now specify the standard deviation (default=3) for gaussian mask in various stimuli by setting e.g. `maskParams={'sd':5}` during init or after init.
1914
+ * ADDED: language localization (Builder and Coder)
1915
+
1916
+ * Can now display the app menus, tooltips, and so on in a language other than US English (selectable via prefs -> app -> locale)
1917
+ * Almost all displayed text can be translated (Jeremy Gray, Hiroyuki Sogo)
1918
+ * A Japanese translation is available (Hiroyuki Sogo)
1919
+ * Other translations will be easy to add; see online developer notes on using Poedit
1920
+
1921
+ * IMPROVED: psychopy.ioHub
1922
+
1923
+ * CHANGED: Keyboard device and events are more user-friendly.
1924
+ Note: This release is not backwards compatible with earlier versions of the ioHub Keyboard device or event data file.
1925
+ Please see documentation for details.
1926
+ * Backend integration between iohub and psychopy continues to improve.
1927
+ * ioHub can now be used in OS X 10.9 with PsychoPy Coder. NOTE: Must add Coder app to accessibility list.
1928
+ * Several bug fixes.
1929
+
1930
+ * FIXED: several other minor bugs (that would have given exceptions if encountered). Thanks particularly to Philip Wiesemann for finding several of these
1931
+ * FIXED: machines that didn't support shaders or framebuffer objects were raising an error on win.flip() if the useFBO argument was not manually set to False. Machines that don't support the new rendering methods are now handled more gracefully
1932
+
1933
+ PsychoPy 1.80
1934
+ ------------------------------
1935
+
1936
+ PsychoPy 1.80.08
1937
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1938
+
1939
+ Released: Aug 2014
1940
+
1941
+ FIXED: bug with using numpy arrays as masks; they were being interpreted as floats but should have been bytes
1942
+
1943
+
1944
+ PsychoPy 1.80.07
1945
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1946
+
1947
+ Released: Aug 2014
1948
+
1949
+ FIXED: bug with timing of keys when using the `timestamped` argument
1950
+
1951
+ PsychoPy 1.80.06
1952
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1953
+
1954
+ Released: June 2014
1955
+
1956
+ * FIXED: problem with using the framebuffer object (nothing was rendered at all)
1957
+ * ENH: added support for using a stencil when the framebuffer object is turned on
1958
+
1959
+ PsychoPy 1.80.05
1960
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1961
+
1962
+ Released: June 2014
1963
+
1964
+ * IMPROVED: better unit tests for visual stimuli to prevent further regressions of the issues below
1965
+ * FIXED: machines that didn't support shaders or framebuffer objects were raising an error on win.flip() if the useFBO argument was not manually set to False. Machines that don't support the new rendering methods are now handled more gracefully.
1966
+ * FIXED: further fixes to greyscale coloring (some images were not correctly detected as greyscale by PIL so tests weren't working)
1967
+ * FIXED: machines that didn't support shaders or framebuffer objects were raising an error on win.flip() if the useFBO argument was not manually set to False. Machines that don't support the new rendering methods are now handled more gracefully
1968
+ * FIXED: named colors were not interpreted correctly by the visual.Window (but worked fine for stimuli)
1969
+ * FIXED: the error message about TextBox/FontManager not working doesn't show up any more
1970
+ * FIXED: reinstated the requirement that wx is version 2.8.x only until we get time to check 3.0 compatibility more deeply
1971
+
1972
+ PsychoPy 1.80.04
1973
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1974
+
1975
+ Released: April 2014
1976
+
1977
+ * FIXED: buglets in logging. Logging wasn't encoding unicode correctly for console targets (but file targets were OK) and some duplicate messages were occurring for stimulus autologs
1978
+ * FIXED: buglet with GratingStim/PatchStim when texture was not a square power of two (was crashing due to incorrect global variable)
1979
+ * FIXED: ElementArrayStim was not updating its position using .setFieldPos()
1980
+
1981
+ PsychoPy 1.80.03
1982
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1983
+
1984
+ Released: April 2014
1985
+
1986
+ * FIXED: Shader code was ignoring opacity setting for ImageStim
1987
+ * FIXED: Mouse clock was not the same as PsychoPy's general events clock (so out of sync) (Sol & Jeremy)
1988
+
1989
+ PsychoPy 1.80.02
1990
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1991
+
1992
+ Released: April 2014
1993
+
1994
+ * FIXED: ImageStim did not use its mask on some machines (nVidia and ATI?) or did not render at all on others (intel graphics?)
1995
+ * CHANGED: Sound object now checks if the sound is a note name before checking for file names (only affects cases where the file name was something like A.wav)
1996
+ * ADDED: Aperture now supports contains() and overlaps() methods
1997
+ * ADDED: Image/Grating masks can now also be 'cross' (Suddha Sourav)
1998
+ * FIXED: Unicode problem for microphone on non-English installs of win32
1999
+ * FIXED: StairHandler first reversal now changes step size correctly and added option not to use the initial 1-up,1-down regime (Jon maintains that you should though!) (thanks Nathanael Larigaldie)
2000
+ * FIXED: emulator LaunchScan uses new RatingScale syntax
2001
+
2002
+ PsychoPy 1.80.01
2003
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2004
+
2005
+ Released: Mar 2014
2006
+
2007
+ * FIXED: buglet with movie glPopAttrib() on Intel gfx cards (thanks Bryan Cort)
2008
+ * FIXED: problem trying to use FrameBufferObject (FBO) on Intel GMA graphics cards
2009
+ * FIXED: problem with ImageStim not respecting setColor() and setContrast()
2010
+ * FIXED: some stimuli were failing to switch to a second window when requested
2011
+ * FIXED: some rendering glitches with ShapeStim caused by interpolation settings (thanks to Soyogu Matsushita for finding this fix)
2012
+ * FIXED: automated import of gamma for known monitors, which was failing on some monitor calibration files
2013
+ * FIXED: a single-line conditions file is now imported correctly by Builder (Jeremy Gray)
2014
+ * IMPROVED: a Routine not included in a loop now saves its data to a default 'loop' (Jeremy Gray)
2015
+ * IMPROVED: Coder checks for consistency of end-of-line options (thanks Wilbert van Ham)
2016
+
2017
+ PsychoPy 1.80.00
2018
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019
+
2020
+ Released: Mar 2014
2021
+
2022
+ * Improvements to user interface:
2023
+
2024
+ * the glitch that prevented scrolling the Routine view is gone (win32)
2025
+ * dialog boxes in the Builder now have tabs for categories of controls
2026
+ * Code Components have much more space for each piece of code (again due to tabs)
2027
+
2028
+ * ADDED: In Builder you can now customise the data filename/path in the Experiment Settings. Any variables in the `expInfo`
2029
+ dialog box can be used to create this path. See `dataFileName` for further info
2030
+ * ADDED: support for advanced rendering modes. Can now 'add' rather than average when using transparency. This is better
2031
+ for visual compound stimuli like plaids, and essential for colored anaglyph stimuli where the resulting image needs to
2032
+ be the sum of the left and right eye images.
2033
+ * ADDED: new visual unit options: 'degFlatPos' and 'degFlat' provide more accurate conversions from degrees to pixels for
2034
+ drawing stimuli (although they're more accurate, accounting for the flat screen, they may look strange because 1 degree
2035
+ gets larger with greater eccentricity on a flat screen). The previous unit 'deg' still exists and remains default as, for
2036
+ many studies, these are expected
2037
+ * ADDED: wider support for the functions `contains` and `overlaps`. Most stimuli now have these methods. Also they can
2038
+ now be used irrespective of whether the stimulus and other object have the same units (they used only to work for
2039
+ units of pix)
2040
+ * ADDED: support for other shapes in the Aperture stimulus (and its Builder Component). You can either specify the
2041
+ number of vertices `nVert` and a `size` to get a regular polygon aperture, or you can provide a set of arbitrary
2042
+ vertices as your `shape` argument
2043
+ * CHANGED: Size of 'square' or 'triangle' apertures used to represent the radius of the circle on which their vertices
2044
+ lay. It is now a height/width as you would more likely expect. This means aperture code in scripts may need rewriting
2045
+ to be smaller.
2046
+ * IMPROVED: stimulus duration is now more precise when using `duration (s)` or `time (s)` although using `nFrames`
2047
+ option is still advised for brief stimuli
2048
+ * IMPROVED: there are now fewer irrelevant lines in the log file as stimuli are initially created
2049
+ * IMPROVED: Staircase loops in Builder now initialise just before the staircase is run, rather than at the start of the
2050
+ experiment. This means they can be controlled by an outer loop and, effectively, restarted
2051
+ * FIXED: ElementArrayStim can take Nx3 or 1x3 values for colors again
2052
+ * FIXED: variable names in Builder are now case-sensitive again (they were being forced to lower case when importing csv
2053
+ files)
2054
+ * FIXED: incorrect equation for the Cumulative Normal fitting function
2055
+ * FIXED: If your variable had a new line character in it this was causing a new line to be started in the csv data file.
2056
+ These are now handled correctly
2057
+
2058
+ * ADDED: RatingScale markerStart position can be arbitrary, e.g., can start between items or beyond the end of scale
2059
+ * ADDED: RatingScale tickHeight can be used to control the height of tickMarks, including no tick marks (tickHeight=0)
2060
+ * ADDED: RatingScale marker='hover' is similar to HTML-style hovering over clickable elements
2061
+
2062
+ *psychopy.visual.RatingScale Changes* :
2063
+
2064
+ * CHANGED: Builder: remove option: choiceLabelsAboveLine; change lowAnchorText, highAnchorText -> labels
2065
+ * CHANGED: skipping a rating now adds None as the final element in the history
2066
+ * CHANGED: the default minTime is shorter, now 0.4s
2067
+ * CHANGED: more info in the log when creating a rating scale object
2068
+ * CHANGED: removed showAnchors: now use labels=None (instead of showAnchors=False)
2069
+ * CHANGED: removed lowAnchorText & highAnchorText: now use labels=['leftAnchor', 'rightAnchor'] or with optional 3rd midpoint label
2070
+ * CHANGED: renamed several parameters: stretchHoriz -> stretch, textSizeFactor -> textSize, ticksAboveLine -> tickHeight, displaySizeFactor -> size, markerStyle -> marker, customMarker -> marker
2071
+ * CHANGED: removed showScale: now use scale=None (instead of showScale=False)
2072
+ * CHANGED: removed allowSkip: now use skipKeys=None (instead of allowSkip=False)
2073
+ * CHANGED: removed escapeKeys; no longer supported but it's easy to implement (as now done in the coder demo)
2074
+
2075
+ PsychoPy 1.79
2076
+ ------------------------------
2077
+
2078
+ PsychoPy 1.79.01
2079
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2080
+
2081
+ Released: Dec 2013
2082
+
2083
+ * FIXED: startup crash in 1.79.00
2084
+ * FIXED: long-standing memory leak in MovieStim
2085
+ * FIXED: fixed problem with MovieStim not displaying the image but playing the audio
2086
+ * ADDED: volume attribute to MovieStim (Frank Papenmeier)
2087
+ * FIXED: experiments were crashing if first line of a conditions file contained a float but the rest were integers
2088
+ * FIXED: QuestHandler.addResponse() should not try to replace existing intensity on first trial (Richard Höchenberger)
2089
+ * FIXED: Window's viewPos and viewScale attributes could not be changed
2090
+ * FIXED: Builder code generation for Cedrus Box when user provided a limited set of available buttons
2091
+ * FIXED: multiple issues causing fatal errors when setting stimulus parameters (Pieter Moors and Damien Mannion)
2092
+ * FIXED: Builder experiments would crash under certain conditions when there was no 'participant' in the info dialog box (Philipp Wiesemann)
2093
+ * FIXED: bug toggling readme file window in Builder (Philipp Wiesemann)
2094
+ * FIXED: further fix to the Coder raising excessive 'this file has changed' warnings
2095
+ * FIXED: Component names now update on the Routine panel after being changed in a dialog (Philipp Wiesemann)
2096
+ * FIXED: bug importing conditions if the first row of numbers was the only float. (importFromConditions now uses numpy instead of matplotlib)
2097
+ * FIXED: further fix to the extra "file close" queries during shut-down
2098
+
2099
+ PsychoPy 1.79.00
2100
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2101
+
2102
+ Released: Dec 2013
2103
+
2104
+ * ADDED: attributes for some stimuli can now be updated using e.g. `stim.pos = newPos` rather than using `stim.setPos(newPos)` to make things more like standard Python (thanks Jonas Lindeløv). This version also involved some major restructuring behind the scenes that should not be visible to users (thanks Todd Jennings)
2105
+ * ADDED: Builder Components for
2106
+ * ioLab Systems button-box; refactor PsychoPy's ioLabs code (Jeremy)
2107
+ * Cedrus button-box (tested on RB730)
2108
+ * parallel port output component
2109
+ * ADDED: option for sounds to `loop`
2110
+ * ADDED: volume argument for MovieStim so that sound can be muted (Frank Papenmeier)
2111
+ * ADDED: window now prevents system from sleep/screensaver on windows and OS X
2112
+ * ADDED: builder demo for mental rotation task
2113
+ * ADDED: Alternative Text stimulus, psychopy.visual.TextBox (Sol Simpson)
2114
+ * Two demos in psychopy.coder.visual.textbox
2115
+ * Requires: freetype lib (included in Standalone)
2116
+ * Advantages: Very fast update following text change; very precise character placement.
2117
+ * Disadvantages: Supports monospace fonts only.
2118
+ * IMPORTANT: TextBox is still being finalized and completed; expect to find (and please report) issues. API changes guaranteed.
2119
+ * FIXED: misaligned responses in csv output for QuestHandler (Zhili Zheng)
2120
+ * FIXED: bug when using ElementArrayStim with numpy 1.7.1. Most elements were receiving SF=0
2121
+ * FIXED: 'semi-automatic' calibration (thanks Flip Phillips)
2122
+ * FIXED: shut-down issues. Builder now remembers its last experiment and you don't get multiple messages about the scripts that have changed
2123
+ * FIXED: bugs with MultiStairHandler that were making it unusable (in code and Builder)
2124
+ * FIXED: lists of key presses can now be considered `correct` (Ian Hussey)
2125
+ * FIXED: certain further cases of bitmap images appearing desaturated
2126
+ * FIXED: mono sounds now duplicate to both channels correctly
2127
+ * changes to Standalone packages (require fetching the installer):
2128
+ * pyFileSec for uploading files to server using encryption (this is Jeremy's module)
2129
+ * pandas on win32 is now v1.3 (was already this version on OS X)
2130
+ * pyxid now includes Jared's upstream bug-fix
2131
+ * FIXED: many user interface tweaks, documentation and help string corrections (Philip Wiesemann)
2132
+ * FIXED: PsychoPy Coder view now closes the iohub process when the experiment script is terminated using 'Stop'. (Sol Simpson)
2133
+ * FIXED: Builder use of single staircase loops now respects the min/max values
2134
+ * CHANGED: data curve fitting functions are now using scipy.optimise.curve_fit and should hopefully be more robust to local minima(?)
2135
+
2136
+ *psychopy.iohub Changes* :
2137
+
2138
+ * ADDED: Initial release of the new Touch device:
2139
+ * currently supporting Elo brand Touch Screens.
2140
+ * any Elo model supporting the SmartSet protocol should work (Elo 2700 model used for testing to date)
2141
+ * Touch Events (TouchPress, TouchRelease, TouchMovement) are provided in a separate event stream
2142
+ * Touch and Mouse device events are independent of each other, so both devices can be used in parallel without interference
2143
+ * Touch screen calibration routine provided; calibration state can be saved to device hardware for persistence
2144
+ * See the demos.coder.iohub_extended Touch script for example of calibration graphics front end.
2145
+ * ADDED: Keyboard and Mouse events can be restricted to those events targeted at a PsychoPy Window. Currently supported on Windows and Linux only.
2146
+ * NEW: PsychoPy TrialHandler can now be used to feed experiment condition variables to the ioDataStore.
2147
+ * NEW: Device configuration file can now be specified to the launchHubServer() function when starting the ioHub Process.
2148
+ * NEW: Simple examples of how to use iohub within a Builder project using a Custom Code Component.
2149
+ * FIXED: Analog Input Event delay calculation error that was causing incorrect time correction to be applied to this event type.
2150
+ * NEW: LabJack AnalogInput interface now handles dropped samples and sampling rates that cause multichannel samples to be split between USB packets.
2151
+ * FIXED: Gaze position calculation fix for the SMI eye tracker interface during binocular tracking.
2152
+ * NEW: Enhanced Tobii eye tracker setup and calibration graphics:
2153
+ * Head position within the 3D eye tracking head box can be visualized before and after calibration
2154
+ * Animated fixation target support added during calibration routine
2155
+ * ADDED: Following EXPERIMENTAL stage implementation (Use at Own Risk):
2156
+ * ioDataStore -> Pandas Data Frame based post processing API:
2157
+ * Creates a set of Pandas Data Frames for device events, experiment messages, and experiment condition variables.
2158
+ * Filter, Group, Join data using the Pandas API.
2159
+ * Access event information with associated condition variable states.
2160
+ * Define Interest Periods (IP):
2161
+ * filter event temporally based on start and end time criteria.
2162
+ * define an IP's start and end time criteria using experiment message events, or experiment condition variable columns.
2163
+ * re-occurring IP's supported.
2164
+ * overlapping IP's supported.
2165
+ * Define Regions of Interest (ROI),
2166
+ * filter Mouse, Eye Tracker, and Touch device events based on screen location.
2167
+ * circle, ellipse, rectangle, and general polygon ROI shapes supported. (ROI functionality is dependent on the shapely python package)
2168
+ * IMPORTANT: The ioDataStore->DataFrame API is still being designed and developed. Expect to find issues. API changes guaranteed.
2169
+
2170
+ PsychoPy 1.78
2171
+ ------------------------------
2172
+
2173
+ PsychoPy 1.78.01
2174
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2175
+
2176
+ Released: Aug 2013
2177
+
2178
+ * FIXED: Image Components were showing up a pastel versions when no actual image was provided
2179
+ * FIXED: MultiStairHandler wasn't working on Builder, and had insufficient data outputs when using wide-text csv files
2180
+ * FIXED: loops couldn't be deleted from the Flow if their conditions file couldn't be found (e.g. had been moved)
2181
+ * FIXED: setting of color values was not honouring the autolog setting (was always logging)
2182
+ * FIXED: gui choice boxes now handle unicode in their options as well as ASCII strings (thanks Anne Peschel)
2183
+ * FIXED: Scaling bug for SMI eye-tracker in binocular mode (thanks Sol)
2184
+ * FIXED: Builder Code Components that were showing up in unreadable, single-line boxes
2185
+ * IMPROVED: All Builder Dialogs now appear close to the top of the screen (so they don't shoot off the bottom in most screens)
2186
+
2187
+ PsychoPy 1.78.00
2188
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2189
+
2190
+ Released: Aug 2013
2191
+
2192
+ * ADDED: option to preload during Builder scripts using :ref:`static`, which uses :class:`~psychopy.core.StaticPeriod` class
2193
+ * ADDED: Polygon Component to Builder for drawing regular polygons (including simple lines)
2194
+ * ADDED: TrialHander can now fetch previous trials as well as future ones (thanks Mike MacAskill)
2195
+ * ADDED: BufferImageStim accepts mask and pos params (thanks Jeremy)
2196
+ * ADDED: generated Sounds (not sound files) now use a Hamming window to get rid of sharp onset/offset noises (thanks Jeremy)
2197
+ * ADDED: microphone component able to play & identify a marker tone (for vocal RT), compute loudness, compression (Jeremy)
2198
+ * ADDED: sound files: lossless compress / uncompress (requires flac executable installed separately) (Jeremy)
2199
+ * ADDED: microphone compress() audio recordings; requires flac download (not packaged with PsychoPy)
2200
+ * ADDED: new preference `flac` = system path for flac, e.g. c:/Program Files (x86)/FLAC/flac.exe (not always needed)
2201
+ * FIXED: greyscale images were being distorted during display since 1.77.00
2202
+ * FIXED: reduced number of queries when closing down and provides filenames of changed files in msg (thanks Piot Iwaniuk)
2203
+ * FIXED: movieStim.contains() and .overlaps() can work, requires that the visual.Window has units of pix
2204
+
2205
+ PsychoPy 1.77
2206
+ ------------------------------
2207
+
2208
+ PsychoPy 1.77.02
2209
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2210
+
2211
+ Released: July 2013
2212
+
2213
+ * FIXED: problem with Builder Images appearing grey unless they were 'constant'. This is a bug that was introduced in 1.77.00 with the faster loading of images.
2214
+ * FIXED: having a monitors folder with a unicode character in the path doesn't break the app (thanks Sebastiaan Mathot)
2215
+
2216
+ PsychoPy 1.77.01
2217
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2218
+
2219
+ Released: June 2013
2220
+
2221
+ * Standalone package changes:
2222
+ - pytables downgraded to 2.3.5 on Win32 (to be compatible with WinXP)
2223
+ - pyo upgraded to 0.6.6 on OSX and Win32
2224
+ * FIXED: The recent files list in Builder now contains recent files! (Thanks Piotr Iwaniuk)
2225
+ * FIXED: Timing issue with LC Tech eye-tracker in iohub
2226
+
2227
+ PsychoPy 1.77.00
2228
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2229
+
2230
+ Released: June 2013
2231
+
2232
+ * ADDED: preview of Sol Simpson's **ioHub** for faster (asynchronous) polling of hardware including mouse, keyboard, eyetrackers and other devices. See iohub demos for example usage. This provides many advantages over previous event polling:
2233
+ - asynchronous process allows constant polling (not tied to refresh rates) in a way that won't impact the rendering of your stimuli. It even runs on a separate CPU core if possible.
2234
+ - provides up/down/duration for key presses
2235
+ - provides unicode character (rather than simply key name for keyboard)
2236
+ - provides a unified API for eyetracker classes
2237
+ - provides async access to the parallel port
2238
+ - provides an alternative data output format (using hdf5) particularly useful for high-output streaming data (e.g. eye-trackers)
2239
+
2240
+ * DEPRECATED: opensslwrap will soon be replaced by pyFileSec, a much-improved version of the same package (= file-oriented encryption)
2241
+ * IMPROVED: substantially (~40%) faster loading of RGB images from disk (by using byte format rather than float). May also allow storing of more images on graphics card than previously
2242
+ * ADDED: `AdvancedMicrophone` class to add and retrieve a high-frequency tone to indicate the start of recording (e.g., to allow accurate vocal RT estimation), with demo (Jeremy Gray)
2243
+ * REFACTORED: parallel port support. Support for Windows via inpout32/inpout64 and Linux via pyparallel added. Existing API maintained for single port usage, but new PParallel classes added to provide more flexibility when dealing with multiple ports. see `parallel` (Thanks Mark Hymers)
2244
+ * ADDED: `MovieStim` now updates its `status` attribute to FINISHED, in line with other stimuli
2245
+ * CHANGED: microphone default file names include milliseconds (to avoid two files with the same name)
2246
+ * ADDED: color-word speech-recognition demo (coder > input > speech_recognition.py)
2247
+ * ADDED: in Builder components dialog boxes, text that will be interpreted as code is displayed in monospace font
2248
+ * ADDED: remove and warn about trailing whitespace in Builder component values (but not Text fields)
2249
+ * ADDED: support for pyglet version 1.2 alpha (but 1.1.4 is still recommended - it appears to render faster)
2250
+ * ADDED: more sound.SoundPyo methods (get & set duration, volume, looping)
2251
+ * FIXED: event.Mouse() can obtain a default visual.Window(), if one has already been created
2252
+ * ADDED: Builder components generate a compile-time warning if a field's value looks dynamic but its updating is constant (Jeremy Gray)
2253
+ * ADDED: better simulated scanner-noise in launchScan (just for fun)
2254
+ * ADDED: RatingScale.getHistory() returns intermediate time-stamped ratings; allows "continuous" ratings
2255
+ * CHANGED: RatingScale.getRating() no longer returns False prior to an accepted rating (now returns the currently selected value)
2256
+
2257
+ PsychoPy 1.76
2258
+ ------------------------------
2259
+
2260
+ PsychoPy 1.76.00
2261
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2262
+
2263
+ The compatibility changes in this release below are likely to affect very few users.
2264
+
2265
+ * ADDED: Window.callOnFlip() function to allow arbitrary functions to be called, timed precisely to the point where the frame flip has occurred (see Coder Demos>Timing>callOnFlip)
2266
+ * FIXED: a scaling bug in RatingScale descriptions (Giuseppe Pagnoni)
2267
+ * ADDED: support for mirror-image text, and mirror-image BufferImageStim (Jeremy Gray)
2268
+ * ADDED: support for lower latency sound with the pyo library. For now pygame remains the default but this can be changed by setting the order in preferences>general>audio
2269
+ * CHANGED: PsychoPy Standalone is now being built using python 2.7.3 (rather than 2.6). Under OSX psignifit has been removed from this distribution, as have the libraries to create .mov files using Window.saveMovieFrames(). If you need those features then install the 1.75 Standalone and then update to 1.76 using the auto-update system.
2270
+ * ADDED: sound objects (either pygame or pyo) now support autologging
2271
+ * FIXED: a bug in the generation of the LMS color space conversion matrix. It seems nobody was actually using this for real, but if you were contact Jon for details!
2272
+ * CHANGED: various changes to RatingScale (thanks Henrik Singman):
2273
+ * CHANGED: choices are now displayed at the tick marks by default (instead of above the line). To restore the old behavior set labels=False. This does not affect experiments created in older versions of the builder.
2274
+ * ADDED: check box "choiceLabelsAboveLines" to the RatingScale component of the builder (advanced tab) to still have the choice labels above the line.
2275
+ * ADDED: arguments tickMarks and labels to RatingScale class to control where tick marks (for quantitative rating scales) should be placed at the line and how these should be labeled.
2276
+ * ADDED: argument ticksAboveLine to RatingScale class. Controls where the tick marks should be plotted (above or below the line).
2277
+ * FIXED: problem with unset exp.name (was causing wx.Dialog error "TypeError: String or Unicode type required" on new experiments)
2278
+ * CHANGED: exp.name is no longer available from Builder scripts (can use exp.getExpName() instead)
2279
+ * FIXED: problem with tiling of depth values for ElementArrayStim (thanks Yuri Spitsyn)
2280
+ * FIXED: Fix to setContrast for certain visual stimuli (Jonas Lindeløv)
2281
+ * FIXED: inability to launch scripts/experiments if the Mac Standalone was in a folder with a space in it
2282
+ * FIXED: Aperture Component now honours the 'units' (Hiroyuki Sogo)
2283
+ * FIXED: stimulus contains/overlaps functions now use stimulus 'units' and take stimulus orientation into account (Hiroyuki Sogo) NB if you had code in place to perform these corrections yourself you should now remove it!
2284
+ * FIXED: some data outputs were not honouring the 'matrixOnly' option (Mike MacAskill)
2285
+ * FIXED: when loading a psydat file of an ExperimentHandler the file automatically saved new copies of its csv/excel outputs. This no longer occurs (if loaded using misc.fromFile)
2286
+ * ADDED: timestamp option to event.waitKeys() (Jonas Lindeløv)
2287
+ * ADDED: a first-run wizard to check the system, report as html (somewhat experimental) (Jeremy Gray)
2288
+ * ADDED: a benchmark wizard (Tools menu) to test hardware & software, option to share on psychopy.org (Jeremy Gray)
2289
+ * ADDED: info.getRAM() (Jeremy Gray)
2290
+
2291
+ PsychoPy 1.75.01
2292
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2293
+
2294
+ * FIXED: Bug with not being able to play sounds of blank (infinite) duration from Builder
2295
+
2296
+ PsychoPy 1.75.00
2297
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2298
+
2299
+ * CHANGED: New Builder experiments will, by default, save a single csv file, a single psydat file and a single log file. Was previously also saving an Excel file (with one sheet per loop) and many psydat files (one per loop). Psydat files can still be used to re-output any format of data file.
2300
+ * IMPROVED: Experiment info dialog box easier to control now from experiment settings (user doesn't need to write a dictionary by hand any more)
2301
+ * IMPROVED: Components in the Builder are now arranged in categories, including a special 'Favorites' category
2302
+ * IMPROVED: Code Components now support full syntax highlighting and code folding (but still aren't quite big enough!)
2303
+ * ADDED: Builder undo/redo now gives info about what is going to be un/redone
2304
+ * ADDED: Window now supports a `stereo` flag to provide support for quad-buffers (advanced graphics cards only)
2305
+ * FIXED: bug with copying/pasting Routines that was breaking Flow in certain situations and corrupting the experiment file
2306
+ * FIXED: fatal typo in QuestHandler code (Gary Lupyan)
2307
+ * FIXED: data outputs for multiple key/mouse presses
2308
+ * ADDED: Microphone now supports `stop` to abort recording early (Jeremy Gray)
2309
+ * ADDED: beginning of error reporting when generating Builder experiments (thanks Piotr Iwaniuk)
2310
+ * FIXED: csv files now generated from Builder as expected not dlm files (tab-delimited)
2311
+
2312
+ PsychoPy 1.74
2313
+ ------------------------------
2314
+
2315
+ PsychoPy 1.74.04
2316
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2317
+
2318
+ * IMPROVED: larger Code Component boxes (and fixed bug with being only one line on linux)
2319
+ * FIXED: Builder code syntax error when using Mouse set state 'every frame'
2320
+ * FIXED: Builder was erroneously using 'estimated duration' for constraining non-slip timing
2321
+ * FIXED: Builder couldn't open Experiment Settings if the expected screen number didn't exist on this system
2322
+
2323
+ PsychoPy 1.74.03
2324
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2325
+
2326
+ (Released: Aug 2012)
2327
+
2328
+ * FIXED: the multiline text entry box in the Builder Text Component was broken (thanks Piotr Iwaniuk)
2329
+ * IMPROVED: serial (RS232) interface to fORP button box to avoid recording repeated presses (thanks Nate Vack). Does not affect use of fORP box from USB interface.
2330
+
2331
+ PsychoPy 1.74.02
2332
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2333
+
2334
+ (Released: Aug 2012)
2335
+
2336
+ * FIXED: bug leading to message: `IndexError: string index out of range.` This was caused by problem saving excel files
2337
+ * FIXED: bug leading to message: `AttributeError: ImageStim instance has no attribute 'rgbPedestal'.` Was only occurring on non-shaders machines using the new ImageStim.
2338
+ * FIXED: problem loading old ExperimentHandlers that contained MultiStairHandlers
2339
+ * FIXED: Builder Text Components gave an error if letter height was a variable
2340
+ * ADDED: Window.flip() now returns the timestamp for the flip if possible (thanks Sol Simpson)
2341
+ * ADDED: misc.sph2cart (Becky Sharman)
2342
+ * ADDED: warning when user presents SimpleImageStim that seems to extend beyond screen (James McMurray)
2343
+
2344
+ PsychoPy 1.74.01
2345
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2346
+
2347
+ (Released: July 2012)
2348
+
2349
+ * FIXED: the pyo package is now included in the windows Standalone distribution (making audio input available as intended)
2350
+ * FIXED: error saving excel data from numpy.int formats (Erik Kastman)
2351
+ * FIXED: error at end of automated gamma calibration (which was causing a crash of the calibration script)
2352
+ * FIXED: misc.getDateStr() returns numeric date if there's an error with unicode encoding (Jeremy)
2353
+ * FIXED: added partial support for non-ASCII keyboards (Sebastiaan Mathot)
2354
+
2355
+ PsychoPy 1.74.00
2356
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2357
+
2358
+ (https://github.com/psychopy/psychopy)
2359
+
2360
+ Major changes (and compatibility changes):
2361
+
2362
+ * ADDED: Long-wide data file outputs, which are now the default for all new Builder experiments.
2363
+ * ADDED: basic audio capture (and speech recognition via google!). Builder now has a Microphone Component to record inputs, but does not yet use the speech recognition facility. See psychopy.microphone library, coder demo "input/say_rgb.py" and Builder demo "voiceCapture". (Jeremy)
2364
+ * ADDED: HSV color space for all stimuli
2365
+ * CHANGED: in Builder the default dotstim has signal dots='same' (once a signal dot, always a signal dot). Only affects new experiments.
2366
+
2367
+ Tweaks and fixes:
2368
+
2369
+ * FIXED: missing parameter name in conditions file is detected, triggers more informative error message
2370
+ * ADDED: fORP: option asKeys to handle button presses as pyglet keyboard events (when using a serial port); faster getUniqueEvents()
2371
+ * ADDED: basic file encryption (beta) using RSA + AES-256; see API encryption for usage and caveats
2372
+ * ADDED: upload a file to a remote server over http (libs: web.upload) with coder demo, php scripts for server `contrib/http/*`
2373
+ * ADDED: Builder demo (dualRatingScales): show a stim, get two different ratings side by side [unpack the demos again]
2374
+ * ADDED: rating scale options: 'maxTime' to time-out, 'disappear' to hide after a rating; see new Builder demo
2375
+ * FIXED: rating scale bug: skipKeys was not handling 'tab' properly (no skip for tab-key, do skip for 't', 'a', or 'b')
2376
+ * ADDED: new locale pref for explicitly setting locale, used in date format and passed to builder scripts (Jeremy, Hiroku Sogo)
2377
+ * ADDED: 'enable escape' option in experiment settings, default is 'enabled'
2378
+ * ADDED: support for ElementArrayStim to use the same set of color spaces as other stimuli
2379
+ * CHANGED: removed python 2.4 version of sha1 digest from :class:`~psychopy.info.RunTimeInfo`
2380
+ * CHANGED: removed any need for PyOpenGL (pyglet.gl now used throughout even for pygame windows)
2381
+ * FIXED: Builder was ignoring changes to DotStim FieldPos (thanks Mike MacAskill)
2382
+ * FIXED: Builder Flow is smarter about Loops and now stops you creating 'broken' ones (e.g. Loops around nothing)
2383
+ * FIXED: MovieStim used from Builder was not working very well. Sounds continued when it was told to stop and the seek(0.0001) line was causing some file formats not to work from Builder only (those that don't support seeking)
2384
+ * FIXED: Mouse component was not saving clicks in Builder experiments if forceEndOnClick was set to be False
2385
+ * FIXED: DotStim.setFieldCoherence was having no effect if noise dots were updating by 'position'
2386
+
2387
+ PsychoPy 1.73
2388
+ ------------------------------
2389
+
2390
+ PsychoPy 1.73.06
2391
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2392
+
2393
+ (Released: April 2012)
2394
+
2395
+ * FIXED: xlsx outputs were collapsing raw data from trials with non-response
2396
+ * FIXED: monitor gamma grids are now returned as arrays rather than lists (Ariel Rokem)
2397
+ * FIXED: bug with Window.setColor being incorrectly scaled for some spaces
2398
+ * FIXED: buglet preventing unicode from being used in TrialHandler parameter names (William Hogman) and saving to data files (Becky Sharman)
2399
+ * FIXED: StairHandler in Builder now saves the expInfo dictionary (Jeremy)
2400
+ * FIXED: can unpickle from either old-style or new-style data files (using psychopy.compatibility.fromFile()) (Erik Kastman)
2401
+
2402
+ PsychoPy 1.73.05
2403
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2404
+
2405
+ (Released: March 2012)
2406
+
2407
+ * FIXED: Joystick error when calling .getHat() or .getHats() (fixed by Gary Lupyan)
2408
+ * FIXED: BufferImageStim crashing on some linux boxes (due to bug with checking version of OpenGL) (fixed by Jonas Lindelov)
2409
+ * FIXED: fMRI emulator class was providing old-format key events (fixed by Erik Kastman and Jeremy)
2410
+ * FIXED: Win.setRecordFrameIntervals(True) was including the time since it was turned off as a frame interval (fixed by Alex Holcombe)
2411
+ * FIXED: using forceEndtrial from a mouse component in Builder wasn't working (thanks Esteban for the heads-up)
2412
+ * FIXED: visual.Circle now respects the edges parameter (fixed by Jonas Lindelov)
2413
+ * FIXED: having IPython v0.12 should no longer crash psychopy on startup (Jeremy)
2414
+ * FIXED: non-ascii month-name (eg Japanese) from %B is now filtered out to avoid crash when compile a psyexp script (Jeremy)
2415
+ * ADDED: support for usb->serial devices under linux (William Hogman)
2416
+ * ADDED: option to vertically flip a BufferImageStim upon capture (esp for fMRI-related presentation of text) (Jeremy)
2417
+ * ADDED: option to play a sound (simple tone) during fMRI launchScan simulation (Jeremy)
2418
+
2419
+ PsychoPy 1.73.04
2420
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2421
+
2422
+ (Released: Feb 2012)
2423
+
2424
+ * CHANGED: Builder scripts now silently convert division from integers to float where necessary. That means 1/3=0.333 whereas previously 1/3=0. This is done simply by adding the line `from __future__ import division` at the top of the script, which people using Coder might want to think about too.
2425
+ * FIXED: problem with loading .psydat files using misc.fromFile (thanks Becky)
2426
+ * FIXED: issue on OSX with updating from 1.70 binaries to 1.73 patch release
2427
+
2428
+ PsychoPy 1.73.03
2429
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2430
+
2431
+ (Released: Jan 2012)
2432
+
2433
+ * FIXED: problem with loops crashing during save of xlsx/csv files if conditions were empty
2434
+ * FIXED: bugs in Builder setting Dots coherence and direction parameters
2435
+ * FIXED: problem with strange text and image rendering on some combinations of ATI graphics on Windows machines
2436
+
2437
+ PsychoPy 1.73.02
2438
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2439
+
2440
+ (Released: Jan 2012)
2441
+
2442
+ * ADDED: loop property to MovieStim for coder only so far (thanks Ariel Rokem)
2443
+ * FIXED: buglet requesting import of pyaudio (thanks Britt for noticing and Dan Shub for fixing)
2444
+ * FIXED: problem with avbin (win32)
2445
+ * FIXED: problem with unicode characters in filenames preventing startup
2446
+ * FIXED: bug with 'fullRandom' method of TrialHandler missing some trials during data save
2447
+ * FIXED: Mouse.clickReset() now resets the click timers
2448
+ * FIXED(?): problem with avbin.dll not being found under 64-bit windows
2449
+
2450
+ PsychoPy 1.73.00
2451
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2452
+
2453
+ (Released: Jan 2012)
2454
+
2455
+ * CHANGED: psychopy.log has moved to psychopy.logging (Alex Holcombe's suggestion). You'll now get a deprecation warning for using psychopy.log but it will still work (for the foreseeable future)
2456
+ * ADDED: new hardware.joystick module supporting pyglet and pyjame backbends for windows and OSX. Demo in Not working on Linux yet. See demos>input
2457
+ * ADDED: support for CRS ColorCAL mkII for gamma calibrations in Monitor Center.
2458
+ * ADDED: data.ExpHandler to combine data for multiple separate loops in one study, including output of a single wide csv file. See demos>experimental control>experimentHandler. Support from Builder should now be easy to add
2459
+ * ADDED: ability to fix (seed) the pseudorandom order of trials in Builder random/full-random loops
2460
+ * ADDED: auto-update (and usage stats) can now detect proxies in proxy.pac files. Also this now runs in a low-priority background thread to prevent any slowing at startup time.
2461
+ * FIXED: bug when passing variables to Staircase loops in Builder
2462
+ * FIXED: mouse in Builder now ignores button presses that began before the 'start' of the mouse
2463
+ * FIXED: can now use pygame or pyaudio instead of pygame for sounds, although it still isn't recommended (thanks Ariel Rokem for patch)
2464
+
2465
+ PsychoPy 1.72.00
2466
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2467
+
2468
+ (rc1 Released: Nov 2011)
2469
+
2470
+ * CHANGED: gui.Dlg and gui.dlgFromDict can now take a set of choices and will convert to a choice control if this is used (thanks Manuel Ebert)
2471
+ - for gui.Dlg the `.addField()` method now has `choices` attribute
2472
+ - for gui.dlgFromDict if one of the values in the dict is a list it will be interpreted as a set of choices (NB this potentially breaks old code)
2473
+ - for info see API docs for psychopy.gui
2474
+
2475
+ * ADDED: improvements to drawing of shapes (thanks Manuel Ebert for all)
2476
+ - ShapeStim now has a size parameter that scales the locations of vertices
2477
+ - new classes; Rect, Line, Circle, Polygon
2478
+
2479
+ * FIXED: error with DotStim when fieldSize was a tuple and fieldShape was 'sqr'
2480
+ * FIXED: calibration plots in Monitor Center now resize and quit as expected
2481
+ * FIXED: conditions files can now have lists of numbers [0,0]
2482
+ * FIXED: buglet with flushing mouse events (thanks Sebastiaan Mathot)
2483
+ * FIXED: Builder components now draw in order, from top to bottom, so lower items obscure higher ones
2484
+ * FIXED: problem with Patch Component when size was set to be dynamic
2485
+ * FIXED: problem with Builder loops not being able to change type (e.g. change 'random' into 'staircase')
2486
+ * FIXED: data from TrialHandler can be output with unicode contents (thanks Henrik Singmann)
2487
+
2488
+ PsychoPy 1.71
2489
+ ------------------------------
2490
+
2491
+ PsychoPy 1.71.01
2492
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2493
+
2494
+ (Released: Oct 2011)
2495
+
2496
+ * CHANGED: the number of stimulus-resized and frames-dropped warnings is now limited to 5 (could become a preference setting?)
2497
+ * FIXED: Builder now allows images to have size of None (or 'none' or just blank) and reverts to using the native size of the image in the file
2498
+ * FIXED: occasional glitch with rendering caused by recent removal of depth testing (it was getting turned back on by TextStim.draw())
2499
+ * FIXED: opening a builder file from coder window (and vice versa) switches view and opens there
2500
+ * FIXED: problem showing the About... item on OS X Builder view
2501
+ * FIXED problem with loops not showing up if the conditions file wasn't found
2502
+ * FIXED: runTimeInfo: better handling of cwd and git-related info
2503
+ * FIXED: rating scale: single click with multiple rating scales, auto-scale with precision = 1
2504
+ * IMPROVED: rendering speed on slightly older nVidia cards (e.g. GeForce 6000/7000 series) under win32/linux. ElementArrays now render at full speed. Other cards/systems should be unchanged.
2505
+ * IMPROVED: rating scale: better handling of default description, scale=None more intuitive
2506
+ * ADDED: new function getFutureTrial(n=1) to TrialHandler, allowing users to find out what a trial will be without actually going to that trial
2507
+ * ADDED: misc.createXYs() to help creating a regular grid of xy values for ElementArrayStim
2508
+
2509
+ PsychoPy 1.71.00
2510
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2511
+
2512
+ (Released: Sept 2011)
2513
+
2514
+ * CHANGED: Depth testing is now disabled. It was already being recommended that depth was controlled purely by drawing order (not depth settings) but this is now the *only* way to do that
2515
+ * CHANGED: The Builder representation of the Components onset/offset is now based on 'estimatedStart/Stop' where a value has been given. NB this does not affect the actual onset/offset of Components merely its representation on the timeline.
2516
+ * ADDED: Builder loop conditions mini-editor: (right-click in the filename box in a loop dialog)
2517
+ - create, edit, and save conditions from within PsychoPy; save & load using pickle format
2518
+ - preview .csv or .xlsx conditions files (read-only)
2519
+ * ADDED: RatingScale method to allow user to setMarkerPosition()
2520
+ * ADDED: Builder dialogs display a '$' to indicate fields that expect code/numeric input
2521
+ * ADDED: Text Component now has a wrapWidth parameter to control the bounding box of the text
2522
+ * ADDED: Opacity parameter to visual stimulus components in the Builder, so you can now draw plaids etc from the builder
2523
+ * FIXED: can edit or delete filename from loop dialog
2524
+ * FIXED: bug in RunTimeInfo (no longer assumes that the user has git installed)
2525
+ * FIXED: bug in BufferImageStim
2526
+ * FIXED: bug in Builder Ratingscale (was always ending routine on response)
2527
+ * FIXED: problem with nested loops in Builder. Inner loop was not being repeated. Loops are now only created as they are needed in the code, not at the beginning of the script
2528
+ * FIXED: rendering of many stimuli was not working beyond 1000 elements (fixed by removal of depth testing)
2529
+ * FIXED: mouse component now using start/duration correctly (broken since 1.70.00)
2530
+ * FIXED: when changing the texture (image) of a PatchStim, the stimulus now 'remembers' if it had been created with no size/sf set and updates these for the new image (previously the size/sf got set according to the first texture provided)
2531
+ * FIXED: putting a number into Builder Sound Component does now produce a sound of that frequency
2532
+ * FIXED: added 'sound','misc','log' to the component names that PsychoPy will refuse. Also a slightly more informative warning when the name is already taken
2533
+ * FIXED: Opacity parameter was having no effect on TextStim when using shaders
2534
+ * FIXED bug with MovieStim not starting at beginning of movie unless a new movie was added each routine
2535
+
2536
+
2537
+ PsychoPy 1.70
2538
+ ------------------------------
2539
+
2540
+ PsychoPy 1.70.01
2541
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2542
+
2543
+ (Released: Aug 2011)
2544
+
2545
+ * FIXED: buglet with Builder (1.70.00) importing older files not quite right and corrupting the 'allowedKeys' of keyboard component
2546
+ * FIXED: buglet with SimpleImageStim. On machines with no shaders some images were being presented strangely
2547
+ * FIXED: buglet with PatchStim. After a call to setSize, SF was scaling with the stimulus (for unit types where that shouldn't happen)
2548
+
2549
+ PsychoPy 1.70.00
2550
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2551
+
2552
+ (Released: Aug 2011)
2553
+
2554
+ *NB This version introduces a number of changes to Builder experiment files that will prevent files from this version being opened by earlier versions of PsychoPy*
2555
+
2556
+ * CHANGED use of allowedKeys in Keyboard Component. You used to be able to type `ynq` to get those keys, but this was confusing when you then needed `'space'` or `'left'` etc. Now you must type 'y','n','q', which makes it more obvious how to include 'space','left','right'...
2557
+ * CHANGED dot algorithm in DotStim. Previously the signalDots=same/different was using the opposite to Scase et al's terminology, now they match. Also the default method for noiseDots was 'position' and this has been changed to 'direction'. The documentation explaining the algorithms has been clarified. (see :ref:`dots`)
2558
+ * CHANGED `MovieStim.playing` property to be called `MovieStim.status` (in keeping with other stimuli)
2559
+ * CHANGED names:
2560
+
2561
+ - `data.importTrialTypes` is now `data.importConditions`
2562
+ - `forceEndTrial` in Keyboard Component is now `forceEndRoutine`
2563
+ - `forceEndTrialOnPress` in Mouse Component is now `forceEndRoutineOnPress`
2564
+ - `trialList` and `trialListFile` in Builder are now `conditions` and `conditionsFile`, respectively
2565
+ - 'window units' to set Component units is now 'from exp settings' for less confusion
2566
+
2567
+ * CHANGED numpy imports in Builder scripts:
2568
+
2569
+ - only a subset of numpy features are now imported by default: numpy: sin, cos, tan, log, log10, pi, average, sqrt, std, deg2rad, rad2deg, linspace, asarray, random, randint, normal, shuffle
2570
+ - all items in the numpy namespace are available as np.*
2571
+ - if a pre-v1.70 script breaks due to this change, try prepending 'np.' or 'np.random.'
2572
+
2573
+ * CHANGED Builder use of $. $ can now appear anywhere in the field (previously only the start). To display a `$` character now requires `\$` in a text field (to prevent interpretation of normal text as being code).
2574
+
2575
+ * ADDED flexibility for start/stop in Builder Components. Can now specify stimuli according to;
2576
+
2577
+ - variable values (using $ symbol). You can also specify an 'expected' time/duration so that something is still drawn on the timeline
2578
+ - number of frames, rather than time (s), for greater precision
2579
+ - an arbitrary condition (e.g. otherStim.status==STOPPED )
2580
+
2581
+ * ADDED the option to use a raised cosine as a PatchStim mask (thanks Ariel Rokem)
2582
+ * ADDED a preference setting for adding custom path locations to Standalone PsychoPy
2583
+ * ADDED Dots Component to Builder interface for random dot kinematograms
2584
+ * ADDED wide-format data files (saveAsWideText()) (thanks Michael MacAskill)
2585
+ * ADDED option for full randomization of repeated lists (loop type 'fullRandom') (Jeremy)
2586
+ * ADDED builder icons can now be small or large (in prefs)
2587
+ * ADDED checking of conditions files for parameter name conflicts (thanks Jeremy)
2588
+ * ADDED emulate sync pulses and user key presses for fMRI or other scanners (for testing); see hardware/launchScan in the API reference, and Coder `demos > experimental control > fMRI_launchScan.py` (Jeremy)
2589
+ * ADDED right-clicking the expInfo in Experiment Settings tests & previews the dialog box (Jeremy)
2590
+ * ADDED syntax checking in code component dialog, right-click (Jeremy)
2591
+ * IMPROVED documentation (thanks Becky Sharman)
2592
+ * IMPROVED syntax for using $ in code snippets (e.g., "[$xPos, $yPos]" works) (Jeremy)
2593
+ * IMPROVED Flow and Routine displays in the Builder, with zooming; see the View menu for key-board shortcuts (Jeremy)
2594
+ * IMPROVED Neater (and slightly faster) changing of Builder Routines on file open/close
2595
+ * FIXED demos now unpack to an empty folder (Jeremy)
2596
+ * FIXED deleting an empty loop from the flow now works (Jeremy)
2597
+ * FIXED further issue in QUEST (the addition in 1.65.01 was being used too widely)
2598
+ * FIXED bug with updating of gamma grid values in Monitor Center
2599
+
2600
+ PsychoPy 1.65
2601
+ ------------------------------
2602
+
2603
+ PsychoPy 1.65.02
2604
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2605
+
2606
+ (Released: July 2011)
2607
+
2608
+ * FIXED Builder keyboard component was storing 'all keys' on request but not all RTs
2609
+ * FIXED Aperture Component in Builder, which was on for an entire Routine. Now supports start/stop times like other components
2610
+ * IMPROVED Sound stimuli in Builder:
2611
+
2612
+ * FIXED: sounds could be distorted and would repeat if duration was longer than file
2613
+ * ADDED volume parameter to sound stimuli
2614
+ * FIXED: duration parameter now stops a file half-way through if needed
2615
+
2616
+ * FIXED buglet preventing some warning messages being printed to screen in Builder experiments
2617
+ * FIXED bug in the copying/pasting of Builder Routines, which was previously introducing errors of the script with invalid _continueName values
2618
+
2619
+ PsychoPy 1.65.01
2620
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2621
+
2622
+ (Released: July 2011)
2623
+
2624
+ * FIXED buglets in QUEST handler (thanks Gerrit Maus)
2625
+ * FIXED absence of pygame in 1.65.00 Standalone release
2626
+ * ADDED shelve module to Standalone (needed by scipy.io)
2627
+ * ADDED warnings about going outside the monitor gamut for certain colors (thanks Alex Holcombe)
2628
+
2629
+ PsychoPy 1.65.00
2630
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2631
+
2632
+ (Released: July 2011)
2633
+
2634
+ * ADDED improved gamma correction using L=a+(b+kI)**G formula (in addition to industry-standard form). Existing gamma calibrations will continue to use old equation but new calibrations will take the new extended formula by default.
2635
+ * ADDED MultiStairHandler to run multiple interleaved staircases (also from the Builder)
2636
+ * ADDED createFactorialTrialList, a convenience function for full factorial conditions (thanks Marco Bertamini)
2637
+ * CHANGED Builder keyboard components now have the option to discard previous keys (on by default)
2638
+ * CHANGED RatingScale:
2639
+
2640
+ - ADDED: argument to set lineColor independently (thanks Jeff Bye)
2641
+ - CHANGED default marker is triangle (affects windows only)
2642
+ - ADDED single-click option, custom-marker support
2643
+ - FIXED: bug with precision=1 plus auto-rescaling going in steps of 10 (not 1)
2644
+
2645
+ * FIXED errors with importing from 'ext' and 'contrib'
2646
+ * FIXED error in joystick demos
2647
+ * FIXED bug in ElementArrayStim depth
2648
+ * FIXED bug in misc.maskMatrix. Was not using correct scale (0:1) for the mask stage
2649
+ * FIXED buglet in StairHandler, which was only terminating during a reversal
2650
+ * FIXED bug when loading movies - they should implicitly pause until first draw() (thanks Giovanni Ottoboni)
2651
+ * IMPROVED handling of non-responses in Builder experiments, and this can now be the correct answer too (corrAns=None). ie. can now do go/no-go experiments. (Non-responses are now empty cells in excel file, not "--" as before.)
2652
+
2653
+ PsychoPy 1.64
2654
+ ------------------------------
2655
+
2656
+ PsychoPy 1.64.00
2657
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2658
+ Released: April 2011
2659
+
2660
+ * ADDED option to return field names when importing a trial list (thanks Gary Lupyan)
2661
+ * ADDED Color-picker on toolbar for Coder and context menu for Builder (Jeremy Gray)
2662
+ * ADDED CustomMouse to visual (Jeremy Gray)
2663
+ * ADDED Aperture object to visual (thanks Yuri Spitsyn) and as a component to Builder (Jeremy Gray)
2664
+ * CHANGED RatingScale (Jeremy Gray):
2665
+ - FIXED bug in RatingScale that prevented scale starting at zero
2666
+ - ADDED RatingScale "choices" (non-numeric); text size, color, font, & anchor labels; pos=(x,y) (Jeremy Gray)
2667
+ - CHANGED RatingScale internals; renamed escapeKeys as skipKeys; subject now uses 'tab' to skip (Jeremy Gray)
2668
+ * ADDED user-configurable code/output font (see coder prefs to change)
2669
+ * ADDED gui.Dlg now automatically uses checkboxes for bools in inputs (Yuri Spitsyn)
2670
+ * ADDED RatingScale component for Builder (Jeremy Gray)
2671
+ * ADDED packages to Standalone distros:
2672
+ - pyxid (Cedrus button boxes)
2673
+ - labjack (good, fast, cheap USB I/O device)
2674
+ - egi (pynetstation)
2675
+ - pylink (SR Research eye trackers)
2676
+ - psignifit (bootstrapping, but only added on mac for now)
2677
+ * ADDED option for Builder components to take code (e.g. variables) as start/duration times
2678
+ * ADDED support for RGBA files in SimpleImageStim
2679
+ * IMPROVED namespace management for variables in Builder experiments (Jeremy Gray)
2680
+ * IMPROVED prefs dialog
2681
+ * IMPROVED test sequence for PsychoPy release (so hopefully fewer bugs in future!)
2682
+ * FIXED bug with ElementArrayStim affecting the subsequent color of ShapeStim
2683
+ * FIXED problem with the error dialog from Builder experiments not being a sensible size (since v1.63.03 it was just showing a tiny box instead of an error message)
2684
+ * FIXED Coder now reloads files changed outside the app when needed (thanks William Hogman)
2685
+ * FIXED Builder Text Component now respects the font property
2686
+ * FIXED problem with updating to a downloaded zip file (win32 only)
2687
+ * FIXED bug with ShapeStim.setOpacity when no shaders are available
2688
+ * FIXED *long-standing pygame scaling bug*
2689
+ * FIXED you can now scroll Builder Flow and still insert a Routine way to the right
2690
+
2691
+ PsychoPy 1.63
2692
+ ------------------------------
2693
+
2694
+ PsychoPy 1.63.04
2695
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2696
+ Released: Feb 2011
2697
+
2698
+ * FIXED bug in windows prefs that prevents v1.63.03 from starting up
2699
+ * FIXED bug that prevents minolte LS100 from being found
2700
+
2701
+ PsychoPy 1.63.03
2702
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2703
+ Released: Feb 2011
2704
+
2705
+ * ADDED Interactive shell to the bottom panel of the Coder view. Choose (in prefs) one of;
2706
+ * pyShell (the default, with great tooltips and help)
2707
+ * IPython (for people that like it, but beware it crashes if you create a psychopy.visual.Window() due to some threading issue(?))
2708
+ * ADDED scrollbar to output panel
2709
+ * FIXED small bug in QUEST which gave an incorrectly-scaled value for the next() trial
2710
+ * FIXED ElementArrayStim was not drawing correctly to second window in multi-display setups
2711
+ * FIXED negative sound durations coming from Builder, where sound was starting later than t=0
2712
+ * FIXED a problem where Builder experiments failed to run if 'participant' wasn't in the experiment info dialog
2713
+
2714
+ PsychoPy 1.63.02
2715
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2716
+ Released: Feb 2011
2717
+
2718
+ * ADDED clearFrames option to Window.saveMovieFrames
2719
+ * ADDED support for Spectrascan PR655/PR670
2720
+ * ADDED 'height' as a type of unit for visual stimuli
2721
+ NB. this is likely to become the default unit for new users (set in prefs)
2722
+ but for existing users the unit set in their prefs will remain. That means
2723
+ that your system may behave differently to your (new user) colleague's
2724
+ * IMPROVED handling of damaged experiments in Builder (they don't crash the app any more!)
2725
+ * IMPROVED performance of autoLogging (including demos showing how to turn of autoLog for dynamic stimuli)
2726
+
2727
+ PsychoPy 1.63.01
2728
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2729
+ Released: Jan 2011
2730
+
2731
+ * FIXED bug with ElementArrayStim.setFieldPos() not updating
2732
+ * FIXED mouse release problem with pyglet (since in 1.63.00)
2733
+ * ADDED ability to retrieve a timestamp for a mouse event, similar to those in keyboard events.
2734
+ This is possible even though you may not retrieve the mouse event until later (e.g. waiting
2735
+ for a frame flip). Thanks Dave Britton
2736
+ * FIXED bug with filters.makeGrating: gratType='sqr' was not using ori and phase
2737
+ * FIXED bug with fetching version info for autoupdate (was sometimes causing a crash on startup
2738
+ if users selected 'skip this version')
2739
+ * CHANGED optimisation routine from fmin_powell to fmin_bfgs. It seems more robust to starting params.
2740
+
2741
+ PsychoPy 1.63.00
2742
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2743
+ Released: Dec 2010
2744
+
2745
+ * **ADDED autoLog mechanism:**
2746
+ * many more messages sent, but only written when log.flush() is called
2747
+ * rewritten backend to logging functions to remove file-writing performance hit
2748
+ * added `autoLog` and `name` attributes to visual stimuli
2749
+ * added setAutoDraw() method to visual stimuli (draws on every win.flip() until set to False)
2750
+ * added logNextFlip() method to visual.Window to send a log message time-stamped to flip
2751
+ * **FIXED bug in color calibration for LMS color space (anyone using this space should recalibrate immediately)** Thanks Christian Garber for picking up on this one.
2752
+ * FIXED bug with excel output from StairHandler
2753
+ * FIXED bug in ElemetArray.setSizes()
2754
+ * FIXED bug in running QuestHandler (Zarrar Shehzad)
2755
+ * FIXED bug trying to remove a Routine from Flow when enclosed in a Loop
2756
+ * FIXED bug with inseting Routines into Flow under Linux
2757
+ * FIXED bug with playing a MovieStim when another is already playing
2758
+ * CHANGED default values for Builder experiment settings (minor)
2759
+ * CHANGED ShapeStim default fillColor to None (from (0,0,0))
2760
+ * FIXED DotStim now supports a 2-element fieldSize (x,y) again
2761
+ * CHANGED phase of RadialStim to be 'sin' instead of 'cosine' at phase=0
2762
+ * FIXED rounding issue in RadialStim phase
2763
+ * FIXED ElementArrayStim can now take a 2x1 input for setSizes(), setSFs(), setPhases()
2764
+ * ADDED packages to standalone distributions: pyserial, pyparallel (win32 only), parallel python (pp), IPython
2765
+ * CHANGED Builder demos are now back in the distributed package. Use >Demos>Unpack... to put them in a folder you have access to and you can then run them from the demos menu
2766
+ * FIXED bug with ShapeStim initialisation (since 1.62.02)
2767
+ * UPDATED: Standalone distribution now uses Python2.6 and adds/upgrades;
2768
+ * parallel python (pp)
2769
+ * pyserial
2770
+ * ioLabs
2771
+ * ipython (for future ipython shell view in coder)
2772
+ * numpy=1.5.1, scipy=0.8.0, matplotlib=1.0
2773
+ * UPDATED: Builder demos
2774
+
2775
+ PsychoPy 1.62
2776
+ ------------------------------
2777
+
2778
+ PsychoPy 1.62.02
2779
+ ~~~~~~~~~~~~~~~~~~~~~~~~
2780
+ Released: Oct 2010
2781
+
2782
+ * FIXED: problem with RadialStim causing subsequent TextStims not to be visible
2783
+ * FIXED: bug with saving StairHandler data as .xlsx
2784
+ * ADDED: option for gui.fileOpenDlg and fileSaveDlg to receive a custom file filter
2785
+ * FIXED: builder implementation of staircases (initialisation was buggy)
2786
+ * FIXED: added Sound.setSound() so that sounds in builder can take new values each trial
2787
+ * FIXED: when a Routine was copied and pasted it didn't update its name properly (e.g. when inserted into the Flow it kept the origin name)
2788
+ * FIXED: color rendering for stimuli on non-shader machines using dkl,lms, and named color spaces
2789
+ * ADDED: data.QuestHandler (Thanks to Zarrar Shehzad). This is much like StairHandler but uses the QUEST routine of Watson and Pelli
2790
+ * CHANGED: TextStim orientation now goes the other way, for consistency with other stimuli (thanks Manuel Spitschan for noticing)**
2791
+ * FIXED: Problem with DotStim using 'sqr' fieldShape
2792
+ * ADDED: MovieStim now has a setMovie() method (a copy of loadMovie())
2793
+ * FIXED: problem with MovieStim.loadMovie() when a movie had already been loaded
2794
+
2795
+ PsychoPy 1.62.01
2796
+ ~~~~~~~~~~~~~~~~~~~~~~~~
2797
+ Released: Sept 2010
2798
+
2799
+ * ADDED: clicking on a Routine in the Flow window brings that Routine to current focus above
2800
+ * ADDED: by setting a loop in the Flow to have 0 repeats, that part of your experiment can be skipped
2801
+ * CHANGED: builder hides mouse now during fullscreen experiments (should make this a pref or setting though?)
2802
+ * FIXED: rendering problem with the Flow and Routine panels not updating on some platforms
2803
+ * ADDED: added .pause() .play() and .seek() to MovieStim (calling .draw() while paused will draw current static frame)
2804
+ * FIXED: bug in MovieStim.setOpacity() (Ariel Rokem)
2805
+ * FIXED: bug in win32 - shortcuts were created in user-specific start menu not all-users start menu
2806
+ * CHANGED: data output now uses std with N-1 normalisation rather than (scipy default) N
2807
+ * FIXED: bug when .psyexp files were dropped on Builder frame
2808
+ * FIXED: bug with Builder only storing last letter or multi-key button (e.g. 'left'->'t') under certain conditions
2809
+ * FIXED: when nReps=0 in Builder the loop should be skipped (was raising error)
2810
+ * CHANGED: mouse icon is now hidden for full-screen Builder experiments
2811
+ * FIXED: Builder was forgetting the TrialList file if you edited something else in the loop dialog
2812
+ * ADDED: visual.RatingScale and a demo to show how to use it (Jeremy Gray)
2813
+ * ADDED: The Standalone distributions now includes the following external libs:
2814
+ - pynetstation (import psychopy.hardware.egi)
2815
+ - ioLab library (import psychopy.hardware.ioLab)
2816
+ * ADDED: trial loops in builder can now be aborted by setting someLoopName.finished=True
2817
+ * ADDED: improved timing. *Support for blocking on VBL for all platforms* (may still not work on intel integrated chips)
2818
+ * FIXED: minor bug with closing Coder windows generating spurious error messages
2819
+ * ADDED: 'allowed' parameter to gui.fileOpeNDlg and fileCloseDlg to provide custom file filters
2820
+
2821
+ PsychoPy 1.62.00
2822
+ ~~~~~~~~~~~~~~~~~~~~~~~~
2823
+ Released: August 2010
2824
+
2825
+ * ADDED: support for Excel 2007 files (.xlsx) for data output and trial types input:
2826
+ - psychopy.data now has importTrialList(fileName) to generate a trial list (suitable for TrialHandler) from .xlsx or .csv files
2827
+ - Builder loops now accept either an xlsx or csv file for the TrialList
2828
+ - TrialHandler and StairHandler now have saveToExcel(filename, sheetName='rawData', appendFile=True). This can be used to generate almost identical files to the previous delimited files, but also allows multiple (named) worksheets in a single file. So you could have one file for a participant and then one sheet for each session or run.
2829
+ * CHANGED: for builder experiments the trial list for a loop is now imported from the file on every run, rather than just when the file is initially chosen
2830
+ * CHANGED: data for TrialHandler are now stored as masked arrays where possible. This means that trials with no response can be more easily ignored by analysis
2831
+ * FIXED: bug opening loop properties (bug introduced by new advanced params option)
2832
+ * FIXED: bug in Builder code generation for keyboard (only when using forceEnd=True but store='nothing')
2833
+ * CHANGED: RunTimeInfo is now in psychopy.info not psychopy.data
2834
+ * CHANGED: PatchStim for image files now defaults to showing the image at native size in pixels (making SimpleImageStim is less useful?)
2835
+ * CHANGED: access to the parameters of TrialList in the Builder now (by default) uses a more cluttered namespace for variables. e.g. if your TrialList file has heading rgb, then your components can access that with '$rgb' rather than '$thisTrial.rgb'. This behaviour can be turned off with the new Builder preference 'allowClutteredNamespace'.
2836
+ * FIXED: if Builder needs to output info but user had closed the output window, it is now reopened
2837
+ * FIXED: Builder remembers its window location
2838
+ * CHANGED: Builder demos now need to be fetched by the user - menu item opens a browser (this is slightly more effort, but means the demos aren't stored within the app which is good)
2839
+ * CHANGED: loops/routines now get inserted to Flow by clicking the mouse where you want them :-)
2840
+ * ADDED: you can now have multiple Builder windows open with different experiments
2841
+ * ADDED: you can now copy and paste Routines form one Builder window to another (or itself) - useful for reusing 'template' routines
2842
+ * FIXED: color of window was incorrectly scaled for 'named' and 'rgb256' color spaces
2843
+ * ADDED: quicktime movie output for OSX 10.6 (10.5 support was already working)
2844
+ * ADDED: Mac app can now receive dropped files on the coder and builder panels (but won't check if these are sensible!!)
2845
+ * ADDED: debugMode preference for the app (for development purposes)
2846
+ * ADDED: working version of RatingStim
2847
+
2848
+ PsychoPy 1.61
2849
+ ------------------------------
2850
+
2851
+ PsychoPy 1.61.03
2852
+ ~~~~~~~~~~~~~~~~~~~~~~~~
2853
+ Patch Released: July 2010
2854
+
2855
+ * FIXED: harmless error messages caused by trying to get the file date/time when no file is open
2856
+ * CHANGED: movie file used in movie demo (the chimp had unknown copyright)
2857
+ * FIXED: problem with nVidia cards under win32 being slow to render RadialStim
2858
+ * FIXED bug in filters.makeGrating where gratType='sqr'
2859
+ * FIXED bug in new color spaces for computers that don't support shaders
2860
+ * ADDED option to Builder components to have 'advanced' parameters not shown by default (and put this to use for Patch Component)
2861
+
2862
+ PsychoPy 1.61.02
2863
+ ~~~~~~~~~~~~~~~~~~~~~~
2864
+ Patch Released: June 2010
2865
+
2866
+ * ADDED: Code Component to Builder (to insert arbitrary python code into experiments)
2867
+ * ADDED: visual.RatingScale 'stimulus' (thanks to JG). See ratingScale demo in Coder view
2868
+ * FIXED: TrialHandler can now have dataTypes that contain underscores (thanks fuchs for the fix)
2869
+ * FIXED: loading of scripts by coder on windows assumed ASCII so broke with unicode characters. Now assumes unicode (as was case with other platforms)
2870
+ * FIXED: minor bugs connecting to PR650
2871
+
2872
+ PsychoPy 1.61.01
2873
+ ~~~~~~~~~~~~~~~~~~~~~~
2874
+ Patch Released: May 2010
2875
+
2876
+ * FIXED: Bug in coder spitting out lots of errors about no method BeginTextColor
2877
+ * FIXED: Buglet in rendering of pygame text with our shaders
2878
+ * FIXED: broken link for >Help>Api (reference) menuitem
2879
+
2880
+ PsychoPy 1.61.00
2881
+ ~~~~~~~~~~~~~~~~~~~~~~
2882
+ Released: May 2010
2883
+
2884
+ * CHANGED: color handling substantially. Now supply color and colorSpace arguments and use setColor rather than setRGB etc. Previous methods still work but give deprecation warning.
2885
+ * ADDED: Colors can now also be specified by name (one of the X11 or web colors, e.g. 'DarkSalmon') or hex color spec (e.g. '#E9967A')
2886
+ * REMOVED: TextStimGLUT (assuming nobody uses GLUT backend anymore)
2887
+ * ADDED: 'saw' and 'tri' options to specify grating textures, to give sawtooth and triangle waves
2888
+ * FIXED: visual.DotStim does now update coherence based on setFieldCoherence calls
2889
+ * FIXED: bug in autoupdater for installs with setuptools-style directory structure
2890
+ * FIXED: bug in SimpleImageStim - when graphics card doesn't support shaders colors were incorrectly scaled
2891
+ * CHANGED: console (stdout) default logging level to WARNING. More messages will appear here than before
2892
+ * ADDED: additional log level called DATA for saving data info from experiments to logfiles
2893
+ * ADDED: mouse component to Builder
2894
+ * ADDED: checking of coder script for changes made by an external application (thanks to Jeremy Gray)
2895
+ * ADDED: data.RuntimeInfo() for providing various info about the system at launch of script (thanks to Jeremy Gray)
2896
+ * FIXED: problem with rush() causing trouble between XP/vista (thanks to Jeremy Gray)
2897
+ * AMERICANIZATION: now consistently using 'color' not 'colour' throughout the project! ;-)
2898
+ * FIXED: problem with non-numeric characters being inserted into data structures
2899
+ * CHANGED: stimuli using textures now automatically clean these up, so no need for users to call .clearTextures()
2900
+
2901
+ PsychoPy 1.60
2902
+ ------------------------------
2903
+
2904
+ PsychoPy 1.60.04
2905
+ ~~~~~~~~~~~~~~~~~~~~~~
2906
+ Released: March 2010
2907
+
2908
+ * FIXED build error (OS X 10.6 only)
2909
+
2910
+ PsychoPy 1.60.03
2911
+ ~~~~~~~~~~~~~~~~~~~~~~
2912
+ Released: Feb 2010
2913
+
2914
+ * FIXED buglet in gui.py converting 'false' to True in dialogs (thanks Michael MacAskill)
2915
+ * FIXED bug in winXP version introduced by fixes to the winVista version! Now both should be fine!!
2916
+
2917
+ PsychoPy 1.60.02
2918
+ ~~~~~~~~~~~~~~~~~~~~~~
2919
+ Released: Feb 2010
2920
+
2921
+ * CHANGED ext.rush() is no longer run by default on creation of a window. It seems to be causing more probs and providing little enhancement.
2922
+ * FIXED error messages from vista/7 trying to import pywintypes.dll
2923
+
2924
+ PsychoPy 1.60.01
2925
+ ~~~~~~~~~~~~~~~~~~~~~~
2926
+ Released: Feb 2010
2927
+
2928
+ * FIXED minor bug with the new psychophysicsStaircase demo (Builder)
2929
+ * FIXED problem with importing wx.lib.agw.hyperlink (for users with wx<2.8.10)
2930
+ * FIXED bug in the new win.clearBuffer() method
2931
+ * CHANGED builder component variables so that the user inputs are interpreted as literal text unless preceded by $, in which case they are treated as variables/python code
2932
+ * CHANGED builder handling of keyboard 'allowedKeys' parameter. Instead of `['1','2','q']` you can now simply use `12q` to indicate those three keys. If you want a key like `'right'` and `'left'` you now have to use `$['right','left']`
2933
+ * TWITTER follow on https://twitter.com/psychopy
2934
+ * FIXED? win32 version now compatible with Vista/7? Still compatible with XP?
2935
+
2936
+ PsychoPy 1.60.00
2937
+ ~~~~~~~~~~~~~~~~~~~~~~
2938
+ Released: Feb 2010
2939
+
2940
+ * simplified prefs:
2941
+ - no more site prefs (user prefs only)
2942
+ - changed key bindings for compileScript(F5), runScript(Ctrl+R), stopScript(Ctrl+.)
2943
+ * ADDED: full implementation of staircase to Builder loops and included a demo for it to Builder
2944
+ * CHANGED: builder components now have a 'startTime' and 'duration' rather than 'times'
2945
+ * ADDED: QuickTime output option for movies (OSX only)
2946
+ * ADDED: script is saved by coder before running (can be turned off in prefs)
2947
+ * ADDED: coder checks (and prompts) for filesave before running script
2948
+ * ADDED: setHeight to TextStim objects, so that character height can be set after initialisation
2949
+ * ADDED: setLineRGB, setFillRGB to ShapeStim
2950
+ * ADDED: ability to auto-update form PsychoPy source installer (zip files)
2951
+ * ADDED: Monitor Center can be closed with Ctrl-W
2952
+ * ADDED: visual.Window now has a setRGB() method
2953
+ * ADDED: visual.Window now has a clearBuffer() method
2954
+ * ADDED: context-specific help buttons to Builder dialogs
2955
+ * ADDED: implemented of code to flip SimpleImageStim (added new methods flipHoriz() and flipVert())
2956
+ * ADDED: Butterworth filters to psychopy.filters (thanks Yaroslav Halchenko)
2957
+ * ADDED: options to view whitespace, EOLs and indent guides in Coder
2958
+ * ADDED: auto-scaling of time axis in Routines panel
2959
+ * IMPROVED: Splash screen comes up faster to show the app is loading
2960
+ * FIXED: bug in RadialStim .set functions (default operation should be "" not None)
2961
+ * FIXED: on mac trying to save an unchanged document no longer inserts an 's'
2962
+ * FIXED: bug with SimpleImageStim not drawing to windows except #1
2963
+ * FIXED: one bug preventing PsychoPy from running on vista/win7 (are there more?)
2964
+ * CHANGED: psychopy.filters.makeMask() now returns a mask with values -1:1, not 0:1 (as expected by stimulus masks)
2965
+ * RESTRUCTURED: the serial package is no longer a part of core psychopy and is no longer required (except when hardware is actually being connected). This should now be installed as a dependency by users, but is still included with the Standalone packages.
2966
+ * RESTRUCTURED: preparing for further devices to be added, hardware is now a folder with files for each manufacturer. Now use e.g.::
2967
+
2968
+ from psychopy.hardware.PR import PR650
2969
+ from psychopy.hardware.cedrus import RB730
2970
+
2971
+ PsychoPy 1.51.00
2972
+ ------------------------------
2973
+ (Released: Nov 2009)
2974
+
2975
+ * CHANGED: gamma handling to handle buggy graphics drivers on certain cards - see note below
2976
+ * CHANGED: coord systems for mouse events - both winTypes now provide mouse coords in the same units as the Window
2977
+ * FIXED: mouse in pyglet window does now get hidden with Window allowGUI=False
2978
+ * FIXED: (Builder) failed to open from Coder view menu (or cmd/ctrl L)
2979
+ * FIXED: failure to load user prefs file
2980
+ * ADDED: keybindings can be handled from prefs dialog (thanks to Jeremy Gray)
2981
+ * ADDED: NxNx3 (ie RGB) numpy arrays can now be used as textures
2982
+ * FIXED: MovieStim bug on win32 (was giving spurious avbin error if visual was imported before event)
2983
+
2984
+ NB. The changes to gamma handling should need no changes to your code, but could alter the gamma correction on
2985
+ some machines. For setups/studies that require good gamma correction it is recommended that you recalibrate when
2986
+ you install this version of PsychoPy.
2987
+
2988
+ PsychoPy 1.50
2989
+ ------------------------------
2990
+
2991
+ PsychoPy 1.50.04
2992
+ ~~~~~~~~~~~~~~~~~~~~~~
2993
+ (Released: Sep 09)
2994
+
2995
+ * FIXED (Builder) bug with loading files (monitor fullScr incorrectly reloaded)
2996
+ * FIXED (Coder) bug with Paste in coder
2997
+ * FIXED (Builder) bug with drop-down boxes
2998
+ * FIXED (Builder) bug with removed routines remaining in Flow and InsertRoutineDlg
2999
+ * MOVED demos to demos/scripts and added demos/exps (for forthcoming Builder demos)
3000
+ * CHANGED (Builder) creating a new file in Builder (by any means) automatically adds a 'trial' Routine
3001
+ * FIXED (Builder) various bugs with the Patch component initialisation (params being ignored)
3002
+ * FIXED (Builder) better default parameters for text component
3003
+
3004
+ PsychoPy 1.50.02
3005
+ ~~~~~~~~~~~~~~~~~~~~~~
3006
+ (Released: Sep 09)
3007
+
3008
+ * FIXED bug loading .psydat (files component variables were being saved but not reloaded)
3009
+ * removed debugging messages that were appearing in Coder output panel
3010
+ * FIXED long-standing problem (OS X only) with "save unchanged" dialogs that won't go away
3011
+ * FIXED bug with 'cancel' not always cancelling on "save unchanged" dialogs
3012
+ * ADDED warning dialog if user adds component without having any routines
3013
+ * ADDED builder now remembers its location, size and panel sizes (which can be moved around)
3014
+
3015
+ PsychoPy 1.50.01
3016
+ ~~~~~~~~~~~~~~~~~~~~~~
3017
+ (Released: Sep 09)
3018
+
3019
+ * FIXED problem creating prefs file on first use
3020
+ * FIXED problem with removing (identical) routines in Flow panel
3021
+ * FIXED problem with avbin import (OS X standalone version)
3022
+
3023
+ PsychoPy 1.50.00
3024
+ ~~~~~~~~~~~~~~~~~~~~~~
3025
+ (Released: Sep 09)
3026
+
3027
+ * ADDED A preview of the new application structure and GUI
3028
+ * ADDED performance enhancements (OS X now blocks on vblank, all platforms rush() if user has permissions)
3029
+ * ADDED config files. These are already used by the app, but not the library.
3030
+ * ADDED data.getDateStr() for convenience
3031
+ * FIXED bug on certain intel gfx cards (shaders now require float extension as well as opengl2.0)
3032
+ * FIXED bug scaling pygame text (which caused pygame TextStims not to appear)
3033
+ * BACKWARDS NONCOMPAT: monitors is moved to be a subpackage of psychopy
3034
+ * BACKWARDS NONCOMPAT: added 'all_mean' (and similar) data types to TrialHandler.saveAsText and these are now default
3035
+ * ADDED TrialType object to data (extends traditional dicts so that trial.SF can be used as well as trial['SF'])
3036
+ * converted docs/website to sphinx rather than wiki (contained in svn)
3037
+ * FIXED bug with MovieStim not displaying correctly after SimpleImageStim
3038
+ * FIXED incorrect wx sizing of app(IDE) under OS X on opening
3039
+ * CHANGED license to GPL (more restrictive, preventing proprietary use)
3040
+ * CHANGED gui dialogs are centered on screen rather than wx default position
3041
+ * new dependency on lxml (for saving/loading builder files)
3042
+
3043
+ PsychoPy 1.00
3044
+ ------------------------------
3045
+
3046
+ PsychoPy 1.00.04
3047
+ ~~~~~~~~~~~~~~~~~~~~~~
3048
+ (Released: Jul 09)
3049
+
3050
+ * DotStim can have fieldShape of 'sqr', 'square' or 'circle' (the first two are equiv)
3051
+ * CHANGED interpreters in all .py scripts to be the same (#!/usr/bin/env python). Use PATH env variable to choose non-default python version for your Python scripts
3052
+ * CHANGED pyglet textures to use numpy->ctypes rather than numpy->string
3053
+ * FIXED systemInfo assigned on Linux systems
3054
+
3055
+ PsychoPy 1.00.03
3056
+ ~~~~~~~~~~~~~~~~~~~~~~
3057
+ (Released: Jul 09)
3058
+
3059
+ * FIXED initialisation bug with SimpleImageStimulus
3060
+ * FIXED "useShaders" buglet for TextStim
3061
+ * CHANGED IDE on win32 to run scripts as processes rather than imports (gives better error messages)
3062
+ * ADDED mipmap support for textures (better antialiasing for down-scaling)
3063
+ * CHANGED win32 standalone to include the whole raw python rather than using py2exe
3064
+
3065
+ PsychoPy 1.00.02
3066
+ ~~~~~~~~~~~~~~~~~~~~~~
3067
+ (Released: Jun 09)
3068
+
3069
+ * ADDED SimpleImageStimulus for simple blitting of raw, unscaled images
3070
+ * ADDED collection of anonymous usage stats (e.g.: OSX_10.5.6_i386 1.00.02 2009-04-27_17:26 )
3071
+ * RENAMED DotStim.setDirection to setDir for consistency (the attribute is dir not direction)
3072
+ * FIXED bug with DotStim updating for 'walk' and 'position' noise dots (thanks Alex Holcombe)
3073
+ * FIXED bug with DotStim when fieldSize was initialised with a list rather than an array
3074
+ * FIXED buglet using event.getKeys in pygame (nothing fetched if pyglet installed)
3075
+ * CHANGED image loading code to check whether the image is a file, rather than using try..except
3076
+ * FIXED buglet raising trivial error messages on closing final window in IDE
3077
+ * FIXED problem pasting into find dlg in IDE
3078
+
3079
+ PsychoPy 1.00.01
3080
+ ~~~~~~~~~~~~~~~~~~~~~~
3081
+ (Released: Feb 09)
3082
+
3083
+ * FIXED buglet in windows standalone installer
3084
+
3085
+ PsychoPy 1.00.00
3086
+ ~~~~~~~~~~~~~~~~~~~~~~
3087
+ * ADDED ShapeStim, for drawing geometric stimuli (see demos/shapes.py and new clockface.py)
3088
+ * ADDED support for the tristate ctrl bit on parallel ports (thanks Gary Strangman for the patch)
3089
+ * ADDED standalone installer support for windows (XP, vista?)
3090
+ * FIXED minor bug in Window.flip() with frame recording on (average -> numpy.average)
3091
+ * FIXED minor bug in sound, now forcing pygame.mixer to use numpy (thanks Konstantin for the patch)
3092
+ * FIXED visual stimulus positions forced to be floats on init (thanks C Luhmann)
3093
+
3094
+ ~~~~~~~~~~~~~~~~~~~~~~
3095
+
3096
+ PsychoPy 0.97:
3097
+ ------------------------------
3098
+
3099
+ PsychoPy 0.97.01:
3100
+ ~~~~~~~~~~~~~~~~~~~~~~
3101
+ * FIXED bug with IDE not closing properly (when current file was not right-most)
3102
+ * ADDED parallel.readPin(pinN) so that parallel port can be used for input as well as output
3103
+ * FIXED bug in parallel.setPortAddress(addr)
3104
+ * ADDED check for floats as arguments to ElementArrayStim set___ methods
3105
+ * CHANGED: frame time recording to be *off* by default (for plotting, for Window.fps() and for warnings). To turn it on use Window.setRecordFrameIntervals(True), preferably after first few frames have elapsed
3106
+ * IMPROVED detection of the (truly) dropped frames using log.console.setLevel(log.WARNING)
3107
+ * FIXED bug that was preventing bits++ from detecting LUT on the Mac (ensure screen gamma is 1.0 first)
3108
+ * FIXED buglet with .setRGB on stimuli - that method should require an operation argument (def=None)
3109
+ * ADDED fieldDepth and depths (for elements, relative to fieldDepth) as separate arguments to the ElementArrayStim
3110
+
3111
+ PsychoP 0.97.00:
3112
+ ~~~~~~~~~~~~~~~~~~~~~~
3113
+ * ADDED options to DotStim motions. Two args have been added:
3114
+ * signalDots can be 'different' from or 'same' as the noise dots (from frame to frame)
3115
+ * noiseDots determines the update rule for the distractor dots (random 'position', 'walk', 'direction')
3116
+ * dotLife now works (was previously just a placeholder). Default is -1 (so should be same as before)
3117
+ see Scase, Braddick & Raymond (1996) for further info on the importance of these
3118
+ * ADDED options to event.getKeys
3119
+ * keyList to limit which keys are checked for (thanks Gary Strangman)
3120
+ * timeStamped=False/True/Clock (thanks Dave Britton)
3121
+ * CHANGED pyglet key checking now returns '1' as the key irrespective of numpad or otherwise (used to return '1' or 'NUM_1')
3122
+ * FIXED bug in event.py for machines where pyglet is failing to import
3123
+ * REMOVED AlphaStim (after a long period of 'deprecated')
3124
+
3125
+ ----------
3126
+
3127
+ PsychoPy 0.96:
3128
+ ------------------------------
3129
+
3130
+ PsychoPy 0.96.02:
3131
+ ~~~~~~~~~~~~~~~~~~~~~~
3132
+ * FIXED bug introduced with clipping of text in 0.96.01 using textstimuli with shaders under pygame
3133
+ * FIXED bug with rendering png alpha layer using pyglet shaders
3134
+
3135
+ PsychoPy 0.96.01:
3136
+ ~~~~~~~~~~~~~~~~~~~~~~
3137
+ * FIXED problem with write errors running demos from Mac IDE
3138
+ * ADDED frameWidth to textStim for multiline
3139
+ * ADDED setRecordFrameIntervals, saveFrameTimes() to Window and misc.plotFrameIntervals()
3140
+ * FIXED had accidentally made pygame a full dependency in visual.py
3141
+ * FIXED MovieStim was being affected by texture color of other stimuli
3142
+ * FIXED window now explicitly checks for GL_ARB_texture_float before using shaders
3143
+
3144
+ PsychoPy 0.96.00:
3145
+ ~~~~~~~~~~~~~~~~~~~~~~
3146
+ * FIXED pygame back-end so that can be used as a valid alternative to pyglet (requires pygame1.8+ and PyOpenGL3.0+, both included in mac app)
3147
+ * CHANGED default sound handler to be pygame again. Although pyglet looked promising for this
3148
+ it has turned out to be buggy. Timing of sounds can be very irregular and sometimes they don't even play
3149
+ Although pygame has longer overall latencies (20-30ms) it's behaviour is at least robust. This will be
3150
+ revisited one day when i have time to write driver-specific code for sounds
3151
+ * FIXED image importing - scaling from square image wasn't working and CMYK images weren't imported
3152
+ properly. Both are now fine.
3153
+
3154
+ ----------
3155
+
3156
+
3157
+ PsychoPy 0.95:
3158
+ ------------------------------
3159
+
3160
+ PsychoPy 0.95.11:
3161
+ ~~~~~~~~~~~~~~~~~~~~~~
3162
+ * ADDED sound.Sound.getDuration() method
3163
+ * FIXED spurious (unimportant but ugly) error messages raised by certain threads on core.quit()
3164
+
3165
+ PsychoPy 0.95.9:
3166
+ ~~~~~~~~~~~~~~~~~~~~~~
3167
+ * FIXED further bug in sound.Sound on win32 (caused by thread being polled too frequently)
3168
+ * FIXED new bug in notebook view (introduced in 0.95.8)
3169
+
3170
+ PsychoPy 0.95.8:
3171
+ ~~~~~~~~~~~~~~~~~~~~~~
3172
+ * FIXED bug in sound.Sound not repeating when play() is called repeatedly
3173
+ * IDE uses improved notebook view for code pages
3174
+ * IDE line number column is larger
3175
+ * IDE SaveAs no longer raises (inconsequential) error
3176
+ * IDE Cmd-S or Ctrl-S now clears autocomplete
3177
+
3178
+ PsychoPy 0.95.7:
3179
+ ~~~~~~~~~~~~~~~~~~~~~~
3180
+ * ADDED misc.cart2pol()
3181
+ * ADDED highly optimised ElementArrayStim, suitable for drawing large numbers of elements. Requires fast OpenGL 2.0 gfx card - at least an nVidia 8000 series or ATI HD 2600 are recommended.
3182
+ * FIXED bug in calibTools with MonitorFolder (should have been monitorFolder)
3183
+ * FIXED bug in Sound.stop() for pyglet contexts
3184
+ * FIXED bug in running scripts with spaces in the filename/path (Mac OS X)
3185
+
3186
+ PsychoPy 0.95.6:
3187
+ ~~~~~~~~~~~~~~~~~~~~~~
3188
+ * DISABLED the setting of gamma if this is [1,1,1] (allows the user to set it from a control panel and not have this adjusted)
3189
+ * FIXED gamma setting on linux (thanks to Luca Citi for testing)
3190
+ * FIXED bug in TextStim.setRGB (wasn't setting properly after text had been created)
3191
+ * FIXED bug searching for shaders on ATI graphics cards
3192
+ * FIXED - now no need to download avbin for the mac IDE installation
3193
+
3194
+ PsychoPy 0.95.5:
3195
+ ~~~~~~~~~~~~~~~~~~~~~~
3196
+ * FIXED bug in event.clearEvents() implementation in pyglet (wasn't clearing)
3197
+ * FIXED - psychopy no longer disables ipython shortcut keys
3198
+ * FIXED bug in sound.Sound initialisation without pygame installeds
3199
+ * ADDED core.rush() for increasing thread priority on win32
3200
+ * ADDED Window._haveShaders, XXXStim._useShaders and XXXStim.setUseShaders
3201
+ * FIXED crashes on win32, running a pyglet context after a DlgFromDict
3202
+ * ADDED gamma correction for pyglet contexts (not tested yet on linux)
3203
+
3204
+ PsychoPy 0.95.4:
3205
+ ~~~~~~~~~~~~~~~~~~~~~~
3206
+ * CHANGED PsychoPy options (IDE and monitors) now stored the following, rather than with the app. (monitor calib files will be moved here if possible)
3207
+ * ~/.PsychoPy/IDE (OS X, linux)
3208
+ * <Docs and Settings>/<user>/Application Data/PsychoPy
3209
+ * FIXED bug in text rendering (ATI/win32/pyglet combo only)
3210
+ * FIXED minor bug in handling of images with alpha channel
3211
+
3212
+ PsychoPy 0.95.3:
3213
+ ~~~~~~~~~~~~~~~~~~~~~~
3214
+ * ADDED a .clearTextures() method to PatchStim and RadialStim, which should be called before de-referencing a stimulus
3215
+ * CHANGED input range for numpy array textures to -1:1
3216
+ * ADDED sysInfo.py to demos
3217
+
3218
+ PsychoPy 0.95.2:
3219
+ ~~~~~~~~~~~~~~~~~~~~~~
3220
+ * FIXED quitting PsychoPyIDE now correctly cancels when saving files
3221
+
3222
+ PsychoPy 0.95.1:
3223
+ ~~~~~~~~~~~~~~~~~~~~~~
3224
+ * FIXED problem with saving files from the IDE on Mac
3225
+ * FIXED Cmd-C now copies from the output window of IDE
3226
+ * even nicer IDE icons (thanks to the Crystal project at everaldo.com)
3227
+ * FIXED bug in the shaders code under pyglet (was working fine in pygame already)
3228
+ * (refactored code to use a template visual stimulus)
3229
+
3230
+ PsychoPy 0.95.0:
3231
+ ~~~~~~~~~~~~~~~~~~~~~~
3232
+ * FIXED linux bug preventing repeated dialogs (thanks Luca Citi)
3233
+ * REWRITTEN stimuli to use _BaseClass, defining ._set() method
3234
+ * MAJOR IMPROVEMENTS to IDE:
3235
+ * Intel mac version available as app bundle, including python
3236
+ * FIXED double help menu
3237
+ * cleaned code for fetching icons
3238
+ * fixed code for updating SourceAssistant (now runs from .OnIdle())
3239
+
3240
+ Older
3241
+ ----------------------
3242
+
3243
+ PsychoPy 0.94.0:
3244
+ ~~~~~~~~~~~~~~~~~~~~~~
3245
+ * pyglet:
3246
+ * can use multiple windows and multiple screens (see screensAndWindows demo)
3247
+ * sounds are buffered faster and more precisely (16ms with <0.1ms variability on my system)
3248
+ * creating sounds in pyglet starts a separate thread. If you use sounds in your script you must call core.quit() when you're done to exit the system (or this background thread will continue).
3249
+ * pyglet window.setGamma and setGammaRamp working on win and mac (NOT LINUX)
3250
+ * pyglet event.Mouse complete (and supports wheel as well as buttons)
3251
+ * pyglet is now the default context. pygame will be used if explicitly called or if pyglet (v1.1+) isn't found
3252
+ * pyglet can now get/save movie frames (like pygame)
3253
+ * TextStims are much cleaner (and a bit bigger?) Can use multiple lines too. New method for specifying font
3254
+ * added simpler parallel.py (wraps _parallel which will remain for now)
3255
+ * removed the C code extensions in favour of ctypes (so compiler no longer necessary)
3256
+ * converted "is" for "==" where appropriate (thanks Luca)
3257
+ * Window.getMovieFrame now takes a buffer argument ('front' or 'back')
3258
+ * monitor calibration files now stored in HOME/.psychopy/monitors rather than site-packages
3259
+ * Window.flip() added and supports the option not to clear previous buffer (for incremental drawing). Window.update() is still available for now but can be replaced with flip() commands
3260
+ * updated demos
3261
+
3262
+ PsychoPy 0.93.6:
3263
+ ~~~~~~~~~~~~~~~~~~~~~~
3264
+ * bug fixes for OS X 10.5 and ctypes OpenGL
3265
+ * new improved OS X installer for dependencies
3266
+ * moved to egg for OS X distribution
3267
+
3268
+ PsychoPy 0.93.5:
3269
+ ~~~~~~~~~~~~~~~~~~~~~~
3270
+
3271
+ * added rich text ctrl to IDE output, including links to lines of errors
3272
+ * IDE now only opens one copy of a given text file
3273
+ * improved (chances of) sync-to-vertical blank on windows without adjusting driver settings (on windows it's still better to set driver to force sync to be safe!)
3274
+ * added center and radius arguments to filters.makeMask and filters.makeRadialMatrix
3275
+ * implemented pyglet backend for;
3276
+ * better screen handling (can specify which screen a window should appear in)
3277
+ * fewer dependencies (takes care of pygame and opengl)
3278
+ * faster sound production
3279
+ * TextStims can be multi-line
3280
+ * NO GAMMA-SETTING as yet. Don't use this backend if you need a gamma-corrected window and aren't using Bits++.
3281
+ * changed the behaviour of Window winTypes
3282
+ If you leave winType as None PsychoPy tries to use Pygame, Pyglet, GLUT in that order
3283
+ (when Pyglet can handle gamma funcs it will become default). Can be overridden by specifying winType.
3284
+ * turned off depth testing for drawing of text (will simply be overlaid in the order called)
3285
+ * changes to TextStim: pyglet fonts are loaded by name only, not filename. PsychoPy TextStim now has an additional argument called 'fontFiles=[]' to allow the adding of custom ttf fonts, but the font name should be used as the font=" " argument.
3286
+ * updated some of the Reference docs
3287
+
3288
+ PsychoPy 0.93.3:
3289
+ ~~~~~~~~~~~~~~~~~~~~~~
3290
+ * fixed problem with 'dynamic loading of multitextureARB' (only found on certain graphics cards)
3291
+
3292
+ PsychoPy 0.93.2:
3293
+ ~~~~~~~~~~~~~~~~~~~~~~
3294
+ * improved detection of non-OpenGL2.0 drivers
3295
+
3296
+ PsychoPy 0.93.1:
3297
+ ~~~~~~~~~~~~~~~~~~~~~~
3298
+ * now automatically uses shaders only if available (older machines can use this version but will not benefit from the speed up)
3299
+ * slight speed improvement for TextStim rendering (on all machines)
3300
+
3301
+ PsychoPy 0.93.0:
3302
+ ~~~~~~~~~~~~~~~~~~~~~~
3303
+ * new requirement of PyOpenGL3.0+ (and a graphics card with OpenGL2.0 drivers?)
3304
+ * much faster implementation of setRGB, setContrast and setOpacity (using fragment shaders)
3305
+ * images (and other textures) need not be square. They will be automatically resampled if they are not. Square power-of-two image textures are still recommended
3306
+ * Fixed problem in calibTools.DACrange caused by change in numpy rounding behaviour. (symptom was strange choice of lum values for calibrations)
3307
+ * numpy arrays as textures currently need to be NxM intensity arrays
3308
+ * multitexturing now handled by OpenGL2.0 rather than ARB
3309
+ * added support for Cedrus response pad
3310
+ * if any component of rgb*contrast>1 then the stimulus will be drawn as low contrast and b/y (rgb=[0.2,0.2,-0.2]) in an attempt to alert the user that this is out of range
3311
+
3312
+ PsychoPy 0.92.5:
3313
+ ~~~~~~~~~~~~~~~~~~~~~~
3314
+ * Fixed issue with stairhandler (it was terminating based only on the nTrials). It does now terminate when both the nTrials and the nReversals [or length(stepSizes) if this is greater] are exceeded.
3315
+ * Minor enhancements to IDE (added explicit handlers to menus for Ctrl-Z, Ctrl-Y, Ctrl-D)
3316
+
3317
+ PsychoPy 0.92.4:
3318
+ ~~~~~~~~~~~~~~~~~~~~~~
3319
+ * fixed some source packaging problems for linux (removed trademark symbols from serialposix.py and fixed directory capitalisation of IDE/Resources in setup.py). Thanks to Jason Locklin and Samuele Carcagno for picking them up.
3320
+ * numerous minor improvements to the IDE
3321
+ * reduced the buffer size of sound stream to reduce latency of sound play
3322
+ * fixed error installing start menu links (win32)
3323
+
3324
+ PsychoPy 0.92.3:
3325
+ ~~~~~~~~~~~~~~~~~~~~~~
3326
+ * new source .zip package (switched away from the use of setuptools - it didn't include files properly in a source dist)
3327
+ * Fixed problem on very fast computers that meant error messages weren't always displayed in the IDE
3328
+
3329
+ PsychoPy 0.92.2:
3330
+ ~~~~~~~~~~~~~~~~~~~~~~
3331
+ * have been trying (and failing) to make scripts run faster from the IDE under Mac OS X. Have tried using threads and debug modules (which would mean you didn't need to import all the libs every time). All these work fine under win32 but not under OS X every time :-( If anyone has a new idea for how to run a pygame window in the same process as the IDE thread I'd love hear it
3332
+ * removed the messages from the new TextStim stimuli
3333
+ * fixed bug in IDE that caused it to crash before starting if pythonw.exe was run rather than python.exe on first run(!)
3334
+ * improvements to the source assistant window (better help and now fetches function arguments)
3335
+
3336
+ Known Problems:
3337
+ * The IDE isn't collecting all errors that are returned - a problem with the process redirection mechanism? FIXED in 0.92.3
3338
+
3339
+ PsychoPy 0.92.1
3340
+ ~~~~~~~~~~~~~~~~~~~~~~
3341
+ * fixed minor bug in IDE - wouldn't open if it had been closed with no open docs.
3342
+ * fixed problem with pushing/popping matrix that caused the stimuli to disappear (only if a TextStim was rendered repeatedly)
3343
+
3344
+ PsychoPy 0.92.0:
3345
+ ~~~~~~~~~~~~~~~~~~~~~~
3346
+ * 'sequential' ordering now implemented for data.TrialHandler (thx Ben Webb)
3347
+ * moved to pygame fonts (with unicode support and any TT font on the system). The switch will break any code that was using TextStim with lineWidth or letterWidth as args. Users wanting to continue using the previous TextStim can call textStimGLUT instead (although I think the new pygame fonts are superior in every way).
3348
+ * improved IDE handling of previous size (to cope with being closed in the maximised or minimised state, which previously caused the window not to return)
3349
+
3350
+ PsychoPy 0.91.5:
3351
+ ~~~~~~~~~~~~~~~~~~~~~~
3352
+ * fixed minor bug in using numpy.array as a mask (was only working if array was 128x128)
3353
+ * faster startup for IDE (added threading class for importing modules)
3354
+ * fixed very minor bug in IDE when searching for attributes that don't exist
3355
+ * fixed minor bug where scripts with syntax errors didn't run but didn't complain either
3356
+ * IDE FileOpen now tries the folder that the current file is in first
3357
+ * IDE removed threading class for running scripts
3358
+
3359
+ PsychoPy 0.91.4
3360
+ ~~~~~~~~~~~~~~~~~~~~~~
3361
+ * fixed the problem of stimulus order/depth. Now the default depth is set (more intuitively) by the order of drawing not creating.
3362
+ * IDE added recent files to file menu
3363
+ * IDE minor bug fixes
3364
+ * IDE rewrite of code inspection using wx.py.instrospect
3365
+
3366
+ PsychoPy 0.91.3
3367
+ ~~~~~~~~~~~~~~~~~~~~~~
3368
+ * added find dialog to IDE
3369
+ * added ability of data.FunctionFromStaircase to create unique bins rather than averaging several x values. Give bins='unique' (rather than bins=someInteger). Also fixed very minor issue where this func would only take a list of lists, rather than a single list.
3370
+
3371
+ PsychoPy 0.91.2
3372
+ ~~~~~~~~~~~~~~~~~~~~~~
3373
+ * fixed IDE problem running filenames containing spaces (only necessary on win32)
3374
+
3375
+ PsychoPy 0.91.1
3376
+ ~~~~~~~~~~~~~~~~~~~~~~
3377
+ * added reasonable SourceAssistant to IDE
3378
+ * added a stop button to abort scripts in IDE
3379
+ * IDE scripts now run as sub process rather than within the main process: slower but safer
3380
+ * added an autoflushing stdout to psychopy.__init__. Where lots of text is written to stdout this may be a problem, but turing it off means that stdout doesn't get properly picked up by the IDE :-(
3381
+
3382
+ PsychoPy 0.91.0
3383
+ ~~~~~~~~~~~~~~~~~~~~~~
3384
+ * PsychoPy now has its own IDE!! With syntax-highlighting, code-folding and auto-complete!! :-)
3385
+ * gui.py had to be refactored a little but (I think) should not be noticed by the end user (gui.Dlg is now a subclass of wx.Dialog rather than a modified instance)
3386
+ * gui.Dlg and DlgFromDict now end up with an attribute .OK that is either True or False
3387
+ * fixed bug in data.StairHandler that could result in too many trials being run (since v0.89)
3388
+
3389
+ PsychoPy 0.90.4
3390
+ ~~~~~~~~~~~~~~~~~~~~~~
3391
+ * resolved deprecation warning with wxPython (now using "import wx")
3392
+
3393
+ PsychoPy 0.90.3
3394
+ ~~~~~~~~~~~~~~~~~~~~~~
3395
+ * used the new numpy.mgrid commands throughout filters and visual modules
3396
+ * sorted out the rounding probs on RadialStim
3397
+ * fixed import bug in calibtools.py
3398
+
3399
+ PsychoPy 0.90.2
3400
+ ~~~~~~~~~~~~~~~~~~~~~~
3401
+ * fixed new bug in the minVal/maxVal handling of StairHandler (where these have not been specified)
3402
+ * changed the default console log level to be ERROR, due to too much log output!
3403
+
3404
+ PsychoPy 0.90.1
3405
+ ~~~~~~~~~~~~~~~~~~~~~~
3406
+ * fixed new bug in Sound object
3407
+ * changed the default log file to go to the script directory rather than site-packages/psychopy
3408
+
3409
+ PsychoPy 0.90
3410
+ ~~~~~~~~~~~~~~~~~~~~~~
3411
+ * sounds now in stereo and a new function to allow you to choose the settings for the sound system.
3412
+ * LMS colors (cone-isolating stimuli) are now tested and accurate (when calibrated)
3413
+ * added logging module (errors, warnings, info). And removed other messages:
3414
+ * @Verbose@ flags have become log.info messages
3415
+ * @Warn@ commands have become log.warning messages
3416
+ * added minVal and maxVal arguments to data.StairHandler so that range can be bounded
3417
+ * @import psychopy@ no longer imports anything other than core
3418
+
3419
+ Psychopy 0.89.1
3420
+ ~~~~~~~~~~~~~~~~~~~~~~
3421
+ * fixed bug in new numpy's handling of bits++ header
3422
+
3423
+ Psychopy 0.89
3424
+ ~~~~~~~~~~~~~~~~~~~~~~
3425
+ * optimised DotStim to use vertex arrays (can now draw several thousand dots)
3426
+ * optimised RadialStim to use vertex arrays (can increase radial resolution without much loss)
3427
+
3428
+ Psychopy 0.88
3429
+ ~~~~~~~~~~~~~~~~~~~~~~
3430
+ * fixed problem with MonitorCenter on OSX (buttons not working on recent version of wxPython)
3431
+
3432
+ Psychopy 0.87
3433
+ ~~~~~~~~~~~~~~~~~~~~~~
3434
+ * added sqrXsqr to RadialStim and made it default texture
3435
+ * fixed a minor bug in RadialStim rendering (stimuli failed to appear under certain stimulus orderings)
3436
+ * changed RadialStim size parameter to be diameter rather than radius (to be like AlphaStim)
3437
+ * namechange: introduced PatchStim (currently identical to AlphaStim which may one day become deprecated)
3438
+
3439
+ Psychopy 0.86
3440
+ ~~~~~~~~~~~~~~~~~~~~~~
3441
+ * distributed as an .egg
3442
+
3443
+ Psychopy 0.85
3444
+ ~~~~~~~~~~~~~~~~~~~~~~
3445
+ * upgraded for numpy1.0b and scipy0.50. Hopefully those packages are now stable enough that they won't need further PsychoPy compatibility changes
3446
+
3447
+ Psychopy 0.84
3448
+ ~~~~~~~~~~~~~~~~~~~~~~
3449
+ * NEW (alpha) support for radial patterns rather than linear ones
3450
+ * changed Clock behaviour to use time.clock() on win32 rather than time.time()
3451
+ * fixed a bug in the shuffle seeding behaviour
3452
+ * added a noise pattern to background in monitor calibration
3453
+
3454
+ Psychopy 0.83
3455
+ ~~~~~~~~~~~~~~~~~~~~~~
3456
+ * NEW post-install script for Win32 installs shortcuts to your >>Start>Programs menu
3457
+ * NEW parallel port code (temporary form) using DLportIO.dll can be found under _parallel
3458
+ * NEW hardware module with support for fORP response box (for MRI) using serial port
3459
+ * added iterator functionality to data.TrialHandler and data.StairHandler you can now use ::
3460
+ for thisTrial in allTrials:
3461
+
3462
+ but a consequence was that .nextTrial() will be deprecated in favour of .next().
3463
+ Also, when the end of the trials is reached a StopIteration is raised.
3464
+ * added the ability to seed the shuffle mechanism (and trial handler) so you can repeat experiments with the same trial sequence
3465
+
3466
+ Psychopy 0.82
3467
+ ~~~~~~~~~~~~~~~~~~~~~~
3468
+ * rewritten code for bits++ LUT drawing, raised by changes in pyOpenGL(2.0.1.09) call to drawpixels
3469
+ * minor change to exit behaviour. pyGame.quit() is now called and then sys.exit(0) rather than sys.exit(1)
3470
+ * bug fixes in type handling (from Numeric to numpy)
3471
+
3472
+ Psychopy 0.81
3473
+ ~~~~~~~~~~~~~~~~~~~~~~
3474
+ * changes to gui caused by new threading behaviour of wxPython and PyGame (DlgFromDict must now be a class not a function).
3475
+
3476
+ Psychopy 0.80
3477
+ ~~~~~~~~~~~~~~~~~~~~~~
3478
+ * switching numeric code to new python24 and new scipy/numpy. MUCH nicer
3479
+ * new (reduced requirements):
3480
+ * numpy 0.9 or newer (the replacement for Numeric/numarray)
3481
+ * numpy 0.4.4 or newer
3482
+ * pyOpenGL
3483
+ * pygame
3484
+ * PIL
3485
+ * matplotlib (for data plotting)
3486
+
3487
+ PsychoPy 0.72
3488
+ ~~~~~~~~~~~~~~~~~~~~~~
3489
+ * tested (and fixed) compatibility with wxPython 2.6. Will now be using this as my primary handler for GUIs
3490
+ * ADDED ability to quit during run of getLumSeries
3491
+
3492
+ PsychoPy 0.71
3493
+ ~~~~~~~~~~~~~~~~~~~~~~
3494
+ * FIXED filename bug in makeMovies.makeAnimatedGIF
3495
+ * slight change to monitors that it uses testMonitor.calib as a default rather than default.calib (testMonitor.calib is packaged with the installation)
3496
+
3497
+ PsychoPy 0.70
3498
+ ~~~~~~~~~~~~~~~~~~~~~~
3499
+ * FIXED bug in setSize. Wasn't updating correctly
3500
+ * ADDED ability to append to a data file rather than create new
3501
+ * bits.lib (from CRS) is now distributed directly with psychopy rather than needing separate install)
3502
+ * ADDED db/log/linear step methods to StairHandler
3503
+ * ADDED logistic equation to data.FitFunction
3504
+
3505
+ PsychoPy 0.69
3506
+ ~~~~~~~~~~~~~~~~~~~~~~
3507
+ * ADDED a testMonitor to the monitors package so that demos can use it for pseudo*calibrated stimuli.
3508
+ * REDUCED the attempt to use _bits.pyd. Was only necessary for machines that had bits++ monitor center
3509
+ * ADDED basic staircase method
3510
+ * CHANGED dlgFromDict to return None on cancel rather than 0
3511
+ * CHANGED the description of sin textures so that the centre of the patch had the color of dkl or rgb rather
3512
+ than the edge. (Effectively all sin textures are now shifted in phase by pi radians).
3513
+ -Demos removed from the main package - now ONLY distributed as a separate library
3514
+
3515
+ PsychoPy 0.68
3516
+ ~~~~~~~~~~~~~~~~~~~~~~
3517
+ * FIXED toFile and fromFile so they work!?
3518
+ * Demos being distributed as a separate .zip file (may be removed from the main package someday)
3519
+
3520
+ PsychoPy 0.67
3521
+ ~~~~~~~~~~~~~~~~~~~~~~
3522
+ * ADDED toFile, fromFile, pol2cart functions to psychopy.misc
3523
+ * CHANGED waitKeys to return a list of keys (usually of length one) so that it's compatible with getKeys
3524
+
3525
+ PsychoPy 0.66
3526
+ ~~~~~~~~~~~~~~~~~~~~~~
3527
+ * serial is now a subpackage of psychopy and so doesn't need additional installation
3528
+ * REMOVED the code to try and query the graphics card about the scr dimensions. From now on, if yo uwish to use real world units, you MUST specify scrWidthPIX and scrWidthCM when you make your visual.Window
3529
+ * ADDED flag to data output to output matrixOnly (useful for matlab imports)
3530
+ * REVERTED the default numeric handler to be Numeric rather than numarray (because it looks like numarray hasn't taken off as much as thought)
3531
+ * FIXED minor bug in text formatting for TrialHandler.saveAsText()
3532
+ * CHANGED visual.Window so that the monitor argument prefers to receive a Monitor object (rather than just a dictionary) or just the name of one. MonitorCenter makes it so easy to create these now that they should be the default.
3533
+ * CHANGED Photometer initialisation behaviour - used to raise an error on a fail but now sets an internal attribute .OK to False rather than True
3534
+
3535
+ PsychoPy 0.65
3536
+ ~~~~~~~~~~~~~~~~~~~~~~
3537
+ * MonitorCenter now complete. Plots and checks gamma correction.
3538
+ * can write movies out to animated gifs(any platform) or mpg/avi (both windows only)
3539
+
3540
+ PsychoPy 0.64
3541
+ ~~~~~~~~~~~~~~~~~~~~~~
3542
+ * CHANGED monitor key dkl_rgb_matrix to dkl_rgb (also for lms)
3543
+ * ADDED code for PR650 to get the monitor color calibration and calculate the color conversion matrices automatically. Will be implemented via the MonitorCenter application.
3544
+ * ADDED pyserial2.0 as a subpackage of psychopy so that it needn't be separately installed
3545
+ * Much improved MonitorCenter with DKL and LMS calibration buttons and matrix output
3546
+ * Double-click installer for Mac now available
3547
+
3548
+ PsychoPy 0.63
3549
+ ~~~~~~~~~~~~~~~~~~~~~~
3550
+ * ADDED ability to capture frames from the window as images (tif, jpg...) or as animated GIF files :) see demo
3551
+ * ADDED ability for elements in DotStim to be any arbitrary stimulus with a methods for .setPos(), .draw()
3552
+
3553
+ PsychoPy 0.62
3554
+ ~~~~~~~~~~~~~~~~~~~~~~
3555
+ * FIXED the circular mask for DotStim
3556
+ * FIXED bug in the new text alignment method (was being aligned but not positioned?!)
3557
+
3558
+ PsychoPy 0.61
3559
+ ~~~~~~~~~~~~~~~~~~~~~~
3560
+ * FIXED minor bug in MonitorCenter (OS X only)
3561
+
3562
+ PsychoPy 0.60
3563
+ ~~~~~~~~~~~~~~~~~~~~~~
3564
+ * ADDED a GUI application for looking after monitors and calibrations. SEE MonitorCenter.py in the new package monitors
3565
+ * MOVED "psychopy.calib" subpackage to a whole separate package "monitors". Calibration files will now be stored alongside the calibration code. This makes it easier to develop the new calibration GUI application that I'm working on. Also means that if you delete the psychopy folder for a new installation you won't lose your calibration files.
3566
+ * ADDED optional maxWait argument to event.waitKeys()
3567
+ * CHANGED TextStim to take the font as a name rather than font number
3568
+ * ADDED alignment to text stimuli (alignVert, alignHoriz)
3569
+ * CHANGED waitKeys to implicitly clear keys from the event queue so that it only finds the first keypress after its called. As result it now returns a single character rather than list of them
3570
+ * CHANGED visual.Window so that it no longer overrides monitor settings if arguments are specified. Easy now to create a monitor in the monitors GUI and use that instead
3571
+ * ADDED the circular mask for DotStimulus