psychopy 2024.2.5__py3-none-any.whl → 2025.1.1__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.
- psychopy/CHANGELOG.txt +4 -4
- psychopy/GIT_SHA +1 -1
- psychopy/LICENSE.txt +1 -1
- psychopy/VERSION +1 -1
- psychopy/__init__.py +10 -7
- psychopy/alerts/__init__.py +1 -1
- psychopy/alerts/_alerts.py +53 -17
- psychopy/alerts/_errorHandler.py +3 -4
- psychopy/alerts/alertsCatalogue/3210.yaml +27 -0
- psychopy/alerts/alertsCatalogue/3610.yaml +19 -0
- psychopy/alerts/alertsCatalogue/4130.yaml +19 -0
- psychopy/alerts/alertsCatalogue/alertCategories.yaml +8 -1
- psychopy/alerts/alertsCatalogue/alertmsg.py +1 -1
- psychopy/alerts/alerttools.py +0 -16
- psychopy/app/Resources/betasplash.png +0 -0
- psychopy/app/Resources/betasplash@2x.png +0 -0
- psychopy/app/Resources/classic/case.png +0 -0
- psychopy/app/Resources/classic/case@2x.png +0 -0
- psychopy/app/Resources/classic/fileaudio.png +0 -0
- psychopy/app/Resources/classic/fileaudio@2x.png +0 -0
- psychopy/app/Resources/classic/filecss.png +0 -0
- psychopy/app/Resources/classic/filecss@2x.png +0 -0
- psychopy/app/Resources/classic/filecsv.png +0 -0
- psychopy/app/Resources/classic/filecsv@2x.png +0 -0
- psychopy/app/Resources/classic/filedesign.png +0 -0
- psychopy/app/Resources/classic/filedesign@2x.png +0 -0
- psychopy/app/Resources/classic/filefont.png +0 -0
- psychopy/app/Resources/classic/filefont@2x.png +0 -0
- psychopy/app/Resources/classic/filegit.png +0 -0
- psychopy/app/Resources/classic/filegit@2x.png +0 -0
- psychopy/app/Resources/classic/filehtml.png +0 -0
- psychopy/app/Resources/classic/filehtml@2x.png +0 -0
- psychopy/app/Resources/classic/fileimage.png +0 -0
- psychopy/app/Resources/classic/fileimage@2x.png +0 -0
- psychopy/app/Resources/classic/fileinfo.png +0 -0
- psychopy/app/Resources/classic/fileinfo@2x.png +0 -0
- psychopy/app/Resources/classic/filejs.png +0 -0
- psychopy/app/Resources/classic/filejs@2x.png +0 -0
- psychopy/app/Resources/classic/filejson.png +0 -0
- psychopy/app/Resources/classic/filejson@2x.png +0 -0
- psychopy/app/Resources/classic/filepkg.png +0 -0
- psychopy/app/Resources/classic/filepkg@2x.png +0 -0
- psychopy/app/Resources/classic/filepsyexp.png +0 -0
- psychopy/app/Resources/classic/filepsyexp@2x.png +0 -0
- psychopy/app/Resources/classic/filepy.png +0 -0
- psychopy/app/Resources/classic/filepy@2x.png +0 -0
- psychopy/app/Resources/classic/filetxt.png +0 -0
- psychopy/app/Resources/classic/filetxt@2x.png +0 -0
- psychopy/app/Resources/classic/fileunknown.png +0 -0
- psychopy/app/Resources/classic/fileunknown@2x.png +0 -0
- psychopy/app/Resources/classic/filevideo.png +0 -0
- psychopy/app/Resources/classic/filevideo@2x.png +0 -0
- psychopy/app/Resources/classic/find.png +0 -0
- psychopy/app/Resources/classic/find@2x.png +0 -0
- psychopy/app/Resources/classic/loop.png +0 -0
- psychopy/app/Resources/classic/loop@2x.png +0 -0
- psychopy/app/Resources/classic/regex.png +0 -0
- psychopy/app/Resources/classic/regex@2x.png +0 -0
- psychopy/app/Resources/dark/case.png +0 -0
- psychopy/app/Resources/dark/case@2x.png +0 -0
- psychopy/app/Resources/dark/fileaudio.png +0 -0
- psychopy/app/Resources/dark/fileaudio@2x.png +0 -0
- psychopy/app/Resources/dark/filecss.png +0 -0
- psychopy/app/Resources/dark/filecss@2x.png +0 -0
- psychopy/app/Resources/dark/filecsv.png +0 -0
- psychopy/app/Resources/dark/filecsv@2x.png +0 -0
- psychopy/app/Resources/dark/filedesign.png +0 -0
- psychopy/app/Resources/dark/filedesign@2x.png +0 -0
- psychopy/app/Resources/dark/filefont.png +0 -0
- psychopy/app/Resources/dark/filefont@2x.png +0 -0
- psychopy/app/Resources/dark/filegit.png +0 -0
- psychopy/app/Resources/dark/filegit@2x.png +0 -0
- psychopy/app/Resources/dark/filehtml.png +0 -0
- psychopy/app/Resources/dark/filehtml@2x.png +0 -0
- psychopy/app/Resources/dark/fileimage.png +0 -0
- psychopy/app/Resources/dark/fileimage@2x.png +0 -0
- psychopy/app/Resources/dark/fileinfo.png +0 -0
- psychopy/app/Resources/dark/fileinfo@2x.png +0 -0
- psychopy/app/Resources/dark/filejs.png +0 -0
- psychopy/app/Resources/dark/filejs@2x.png +0 -0
- psychopy/app/Resources/dark/filejson.png +0 -0
- psychopy/app/Resources/dark/filejson@2x.png +0 -0
- psychopy/app/Resources/dark/filepkg.png +0 -0
- psychopy/app/Resources/dark/filepkg@2x.png +0 -0
- psychopy/app/Resources/dark/filepsyexp.png +0 -0
- psychopy/app/Resources/dark/filepsyexp@2x.png +0 -0
- psychopy/app/Resources/dark/filepy.png +0 -0
- psychopy/app/Resources/dark/filepy@2x.png +0 -0
- psychopy/app/Resources/dark/filetxt.png +0 -0
- psychopy/app/Resources/dark/filetxt@2x.png +0 -0
- psychopy/app/Resources/dark/fileunknown.png +0 -0
- psychopy/app/Resources/dark/fileunknown@2x.png +0 -0
- psychopy/app/Resources/dark/filevideo.png +0 -0
- psychopy/app/Resources/dark/filevideo@2x.png +0 -0
- psychopy/app/Resources/dark/find.png +0 -0
- psychopy/app/Resources/dark/find@2x.png +0 -0
- psychopy/app/Resources/dark/loop.png +0 -0
- psychopy/app/Resources/dark/loop@2x.png +0 -0
- psychopy/app/Resources/dark/regex.png +0 -0
- psychopy/app/Resources/dark/regex@2x.png +0 -0
- psychopy/app/Resources/light/case.png +0 -0
- psychopy/app/Resources/light/case@2x.png +0 -0
- psychopy/app/Resources/light/fileaudio.png +0 -0
- psychopy/app/Resources/light/fileaudio@2x.png +0 -0
- psychopy/app/Resources/light/filecss.png +0 -0
- psychopy/app/Resources/light/filecss@2x.png +0 -0
- psychopy/app/Resources/light/filecsv.png +0 -0
- psychopy/app/Resources/light/filecsv@2x.png +0 -0
- psychopy/app/Resources/light/filedesign.png +0 -0
- psychopy/app/Resources/light/filedesign@2x.png +0 -0
- psychopy/app/Resources/light/filefont.png +0 -0
- psychopy/app/Resources/light/filefont@2x.png +0 -0
- psychopy/app/Resources/light/filegit.png +0 -0
- psychopy/app/Resources/light/filegit@2x.png +0 -0
- psychopy/app/Resources/light/filehtml.png +0 -0
- psychopy/app/Resources/light/filehtml@2x.png +0 -0
- psychopy/app/Resources/light/fileimage.png +0 -0
- psychopy/app/Resources/light/fileimage@2x.png +0 -0
- psychopy/app/Resources/light/fileinfo.png +0 -0
- psychopy/app/Resources/light/fileinfo@2x.png +0 -0
- psychopy/app/Resources/light/filejs.png +0 -0
- psychopy/app/Resources/light/filejs@2x.png +0 -0
- psychopy/app/Resources/light/filejson.png +0 -0
- psychopy/app/Resources/light/filejson@2x.png +0 -0
- psychopy/app/Resources/light/filepkg.png +0 -0
- psychopy/app/Resources/light/filepkg@2x.png +0 -0
- psychopy/app/Resources/light/filepsyexp.png +0 -0
- psychopy/app/Resources/light/filepsyexp@2x.png +0 -0
- psychopy/app/Resources/light/filepy.png +0 -0
- psychopy/app/Resources/light/filepy@2x.png +0 -0
- psychopy/app/Resources/light/filetxt.png +0 -0
- psychopy/app/Resources/light/filetxt@2x.png +0 -0
- psychopy/app/Resources/light/fileunknown.png +0 -0
- psychopy/app/Resources/light/fileunknown@2x.png +0 -0
- psychopy/app/Resources/light/filevideo.png +0 -0
- psychopy/app/Resources/light/filevideo@2x.png +0 -0
- psychopy/app/Resources/light/find.png +0 -0
- psychopy/app/Resources/light/find@2x.png +0 -0
- psychopy/app/Resources/light/loop.png +0 -0
- psychopy/app/Resources/light/loop@2x.png +0 -0
- psychopy/app/Resources/light/regex.png +0 -0
- psychopy/app/Resources/light/regex@2x.png +0 -0
- psychopy/app/Resources/routine_templates/Basic.psyexp +0 -1
- psychopy/app/Resources/routine_templates/Misc.psyexp +0 -1
- psychopy/app/Resources/routine_templates/Online.psyexp +0 -2
- psychopy/app/Resources/routine_templates/Trials.psyexp +0 -1
- psychopy/app/Resources/splash.png +0 -0
- psychopy/app/Resources/splash@2x.png +0 -0
- psychopy/app/__init__.py +49 -8
- psychopy/app/__main__.py +3 -0
- psychopy/app/_psychopyApp.py +134 -125
- psychopy/app/builder/builder.py +42 -22
- psychopy/app/builder/dialogs/__init__.py +44 -11
- psychopy/app/builder/dialogs/dlgsCode.py +1 -1
- psychopy/app/builder/dialogs/dlgsConditions.py +1 -1
- psychopy/app/builder/dialogs/findDlg.py +106 -20
- psychopy/app/builder/dialogs/paramCtrls.py +42 -1
- psychopy/app/builder/validators.py +1 -1
- psychopy/app/coder/codeEditorBase.py +8 -8
- psychopy/app/coder/coder.py +32 -29
- psychopy/app/coder/fileBrowser.py +68 -22
- psychopy/app/coder/folding.py +1 -1
- psychopy/app/coder/psychoParser.py +1 -1
- psychopy/app/coder/repl.py +1 -1
- psychopy/app/coder/sourceTree.py +1 -1
- psychopy/app/connections/__init__.py +1 -1
- psychopy/app/connections/news.py +1 -1
- psychopy/app/connections/sendusage.py +1 -1
- psychopy/app/connections/updates.py +1 -1
- psychopy/app/console.py +1 -1
- psychopy/app/errorDlg.py +1 -1
- psychopy/app/frametracker.py +1 -1
- psychopy/app/idle.py +1 -1
- psychopy/app/jobs.py +5 -2
- psychopy/app/linuxconfig/__init__.py +1 -1
- psychopy/app/locale/ar_001/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ar_001/LC_MESSAGE/messages.po +4 -4
- psychopy/app/locale/cs_CZ/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/da_DK/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/de_DE/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/de_DE/LC_MESSAGE/messages.po +3 -3
- psychopy/app/locale/el_GR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/en_NZ/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/en_US/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/es_CO/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/es_CO/LC_MESSAGE/messages.po +4 -4
- psychopy/app/locale/es_ES/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/es_ES/LC_MESSAGE/messages.po +4 -4
- psychopy/app/locale/es_US/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/es_US/LC_MESSAGE/messages.po +4 -4
- psychopy/app/locale/et_EE/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/et_EE/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/fa_IR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/fa_IR/LC_MESSAGE/messages.po +1 -1
- psychopy/app/locale/fi_FI/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/fr_FR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/fr_FR/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/he_IL/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/he_IL/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/hi_IN/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/hi_IN/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/hu_HU/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/it_IT/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/it_IT/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/ja_JP/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ja_JP/LC_MESSAGE/messages.po +3421 -2396
- psychopy/app/locale/ko_KR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ms_MY/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ms_MY/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/nl_NL/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/nn_NO/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/pl_PL/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/pt_PT/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/pt_PT/LC_MESSAGE/messages.po +4 -4
- psychopy/app/locale/ro_RO/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ru_RU/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/sv_SE/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/sv_SE/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/tr_TR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/tr_TR/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/zh_CN/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/zh_CN/LC_MESSAGE/messages.po +3 -3
- psychopy/app/locale/zh_TW/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/zh_TW/LC_MESSAGE/messages.po +2 -2
- psychopy/app/{builder/localizedStrings.py → localizedStrings.py} +173 -26
- psychopy/app/pavlovia_ui/__init__.py +1 -1
- psychopy/app/pavlovia_ui/_base.py +1 -1
- psychopy/app/pavlovia_ui/functions.py +1 -1
- psychopy/app/pavlovia_ui/menu.py +1 -1
- psychopy/app/pavlovia_ui/project.py +1 -1
- psychopy/app/pavlovia_ui/search.py +1 -1
- psychopy/app/pavlovia_ui/sync.py +1 -1
- psychopy/app/pavlovia_ui/user.py +1 -1
- psychopy/app/plugin_manager/dialog.py +34 -96
- psychopy/app/plugin_manager/packages.py +10 -14
- psychopy/app/plugin_manager/plugins.py +64 -4
- psychopy/app/preferencesDlg.py +12 -37
- psychopy/app/psychopyApp.py +130 -44
- psychopy/app/ribbon.py +1 -0
- psychopy/app/runner/runner.py +19 -7
- psychopy/app/runner/scriptProcess.py +11 -6
- psychopy/app/stdout/stdOutRich.py +9 -2
- psychopy/app/themes/fonts.py +1 -1
- psychopy/app/themes/icons.py +2 -38
- psychopy/app/ui/__init__.py +1 -1
- psychopy/app/utils.py +3 -3
- psychopy/assets/default.mp3 +0 -0
- psychopy/assets/fonts/NotoSans-Bold.ttf +0 -0
- psychopy/assets/fonts/NotoSans-BoldItalic.ttf +0 -0
- psychopy/assets/fonts/NotoSans-Italic.ttf +0 -0
- psychopy/assets/fonts/NotoSans-Regular.ttf +0 -0
- psychopy/assets/voicekeyThresholdStim.wav +0 -0
- psychopy/clock.py +4 -1
- psychopy/colors.py +12 -5
- psychopy/core.py +1 -1
- psychopy/data/base.py +1 -1
- psychopy/data/experiment.py +151 -46
- psychopy/data/routine.py +27 -1
- psychopy/data/staircase.py +2 -1
- psychopy/data/trial.py +62 -14
- psychopy/data/utils.py +2 -2
- psychopy/demos/builder/Design Templates/branchedExperiment/branchedExperiment.psyexp +333 -218
- psychopy/demos/builder/Design Templates/psychophysicsStaircase/psychophysicsStaircase.psyexp +261 -239
- psychopy/demos/builder/Design Templates/psychophysicsStairsInterleaved/psychophysicsStaircaseInterleaved.psyexp +319 -180
- psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks.psyexp +204 -116
- psychopy/demos/builder/Experiments/BART/assets/background.jpg +0 -0
- psychopy/demos/builder/Experiments/BART/assets/blueBalloon.png +0 -0
- psychopy/demos/builder/Experiments/BART/assets/greenBalloon.png +0 -0
- psychopy/demos/builder/Experiments/BART/assets/redBalloon.png +0 -0
- psychopy/demos/builder/Experiments/BART/bart.psyexp +779 -866
- psychopy/demos/builder/Experiments/BigFiveInventory/BFI.psyexp +242 -180
- psychopy/demos/builder/Experiments/GoNoGo/gng.psyexp +419 -406
- psychopy/demos/builder/Experiments/dragAndDrop/README.md +2 -37
- psychopy/demos/builder/Experiments/dragAndDrop/drag_and_drop.psyexp +460 -1204
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/blank_grid.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/make_shapes.psyexp +221 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/readme.md +4 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_1.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_10.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_2.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_3.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_4.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_5.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_6.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_7.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_8.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_9.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solutions.xlsx +0 -0
- psychopy/demos/builder/Experiments/mentalRotation/MentalRotation.psyexp +583 -542
- psychopy/demos/builder/Experiments/navon/NavonTask.psyexp +458 -427
- psychopy/demos/builder/Experiments/sternberg/sternberg.psyexp +588 -550
- psychopy/demos/builder/Experiments/stroop/stroop.psyexp +303 -207
- psychopy/demos/builder/Experiments/stroopExtended/stroop.psyexp +390 -215
- psychopy/demos/builder/Experiments/stroopExtended/stroopReverse.psyexp +390 -215
- psychopy/demos/builder/Experiments/stroopVoice/stroopVoice.psyexp +357 -331
- psychopy/demos/builder/Feature Demos/buttonBox/buttonBoxDemo.psyexp +3 -2
- psychopy/demos/builder/Feature Demos/counterbalance/counterbalance.psyexp +287 -277
- psychopy/demos/builder/Feature Demos/gratings/gratings.psyexp +370 -320
- psychopy/demos/builder/Feature Demos/noise/noise.psyexp +452 -399
- psychopy/demos/builder/Feature Demos/panorama/panorama.psyexp +168 -133
- psychopy/demos/builder/Feature Demos/pilotMode/pilotMode.psyexp +4 -3
- psychopy/demos/builder/Feature Demos/progress/progressBar.psyexp +420 -392
- psychopy/demos/builder/Feature Demos/sliders/sliders.psyexp +917 -871
- psychopy/demos/builder/Feature Demos/visualValidator/readme.md +7 -0
- psychopy/demos/builder/Feature Demos/visualValidator/visualValidator.psyexp +200 -0
- psychopy/demos/builder/Hardware/EEG_parallel_component/EEG_triggers_parallel_comp.psyexp +25 -9
- psychopy/demos/builder/Hardware/EEG_serial_code/EEG_triggers_serial_code.psyexp +372 -361
- psychopy/demos/builder/Hardware/EEG_serial_component/EEG_triggers_serial_comp.psyexp +25 -9
- psychopy/demos/builder/Hardware/EGI_netstation/stroop.psyexp +320 -235
- psychopy/demos/builder/Hardware/Eyetracking_visual_search/visualSearch.psyexp +790 -651
- psychopy/demos/builder/Hardware/camera/camera.psyexp +326 -246
- psychopy/demos/builder/Hardware/eyetracking/eyetracking.psyexp +432 -327
- psychopy/demos/builder/Hardware/eyetracking_custom_cal/eyetracking_custom_cal.psyexp +440 -321
- psychopy/demos/builder/Hardware/fMRI/fMRI_demo.psyexp +190 -181
- psychopy/demos/builder/Hardware/lab_streaming_layer/lsl_triggers_demo.psyexp +323 -312
- psychopy/demos/builder/Hardware/lab_streaming_layer/lsl_triggers_demo_legacy.psyexp +360 -0
- psychopy/demos/builder/Hardware/lab_streaming_layer/lsl_triggers_demo_legacy_legacy.psyexp +312 -0
- psychopy/demos/builder/Hardware/lab_streaming_layer_legacy/lsl_triggers_demo_legacy.psyexp +329 -273
- psychopy/demos/builder/Hardware/lab_streaming_layer_legacy/lsl_triggers_demo_legacy_legacy.psyexp +360 -0
- psychopy/demos/builder/Hardware/lab_streaming_layer_legacy/lsl_triggers_demo_legacy_legacy_legacy.psyexp +312 -0
- psychopy/demos/builder/Hardware/microphone/microphone.psyexp +450 -404
- psychopy/demos/builder/Hardware/pump/pump.psyexp +593 -329
- psychopy/demos/builder/Helper Tools/achorVSalignment/FlowCircular-Regular.ttf +0 -0
- psychopy/demos/builder/Helper Tools/achorVSalignment/anchorAlignment.psyexp +336 -274
- psychopy/demos/builder/Helper Tools/clockFace/clockFace.psyexp +200 -149
- psychopy/demos/builder/Helper Tools/colors/colors.psyexp +300 -279
- psychopy/demos/builder/Helper Tools/drawPolygon/drawPolygon.psyexp +677 -564
- psychopy/demos/builder/Helper Tools/keyNameFinder/keyNameFinder.psyexp +214 -158
- psychopy/demos/builder/Helper Tools/spatialUnits/unitDemo.psyexp +195 -146
- psychopy/demos/coder/experiment control/runtimeInfo.py +1 -1
- psychopy/devices/__init__.py +1 -1
- psychopy/event.py +1 -1
- psychopy/exceptions.py +1 -1
- psychopy/experiment/__init__.py +1 -1
- psychopy/experiment/_experiment.py +30 -9
- psychopy/experiment/components/__init__.py +1 -6
- psychopy/experiment/components/_base.py +44 -19
- psychopy/experiment/components/aperture/__init__.py +1 -1
- psychopy/experiment/components/brush/__init__.py +2 -2
- psychopy/experiment/components/button/__init__.py +24 -28
- psychopy/experiment/components/camera/__init__.py +38 -39
- psychopy/experiment/components/code/__init__.py +1 -1
- psychopy/experiment/components/dots/__init__.py +1 -1
- psychopy/experiment/components/eyetracker_record/__init__.py +7 -3
- psychopy/experiment/components/form/__init__.py +3 -3
- psychopy/experiment/components/grating/__init__.py +1 -1
- psychopy/experiment/components/image/__init__.py +1 -1
- psychopy/experiment/components/joyButtons/__init__.py +2 -2
- psychopy/experiment/components/joyButtons/virtualJoyButtons.py +1 -1
- psychopy/experiment/components/joystick/__init__.py +3 -3
- psychopy/experiment/components/joystick/virtualJoystick.py +1 -1
- psychopy/experiment/components/keyboard/__init__.py +98 -122
- psychopy/experiment/components/microphone/__init__.py +54 -98
- psychopy/experiment/components/mouse/__init__.py +92 -93
- psychopy/experiment/components/movie/__init__.py +28 -50
- psychopy/experiment/components/parallelOut/__init__.py +3 -3
- psychopy/experiment/components/polygon/__init__.py +2 -3
- psychopy/experiment/components/roi/__init__.py +2 -2
- psychopy/experiment/components/routineSettings/__init__.py +2 -0
- psychopy/experiment/components/serialOut/__init__.py +7 -7
- psychopy/experiment/components/settings/__init__.py +317 -313
- psychopy/experiment/components/settings/eyetracking.py +108 -0
- psychopy/experiment/components/slider/__init__.py +5 -5
- psychopy/experiment/components/sound/__init__.py +168 -78
- psychopy/experiment/components/soundsensor/__init__.py +361 -0
- psychopy/experiment/components/soundsensor/classic/soundsensor.png +0 -0
- psychopy/experiment/components/soundsensor/classic/soundsensor@2x.png +0 -0
- psychopy/experiment/components/soundsensor/dark/soundsensor.png +0 -0
- psychopy/experiment/components/soundsensor/dark/soundsensor@2x.png +0 -0
- psychopy/experiment/components/soundsensor/light/soundsensor.png +0 -0
- psychopy/experiment/components/soundsensor/light/soundsensor@2x.png +0 -0
- psychopy/experiment/components/static/__init__.py +59 -33
- psychopy/experiment/components/text/__init__.py +2 -6
- psychopy/experiment/components/textbox/__init__.py +3 -7
- psychopy/experiment/components/unknown/__init__.py +2 -0
- psychopy/experiment/components/unknownPlugin/__init__.py +2 -0
- psychopy/experiment/exports.py +1 -1
- psychopy/experiment/flow.py +2 -2
- psychopy/experiment/localization.py +1 -1
- psychopy/experiment/loops.py +43 -10
- psychopy/experiment/params.py +6 -4
- psychopy/experiment/plugins.py +8 -1
- psychopy/experiment/py2js.py +1 -1
- psychopy/experiment/py2js_transpiler.py +1 -1
- psychopy/experiment/routines/__init__.py +1 -1
- psychopy/experiment/routines/_base.py +23 -24
- psychopy/experiment/routines/audioValidator/__init__.py +343 -0
- psychopy/experiment/routines/audioValidator/classic/audio_validator.png +0 -0
- psychopy/experiment/routines/audioValidator/classic/audio_validator@2x.png +0 -0
- psychopy/experiment/routines/audioValidator/dark/audio_validator.png +0 -0
- psychopy/experiment/routines/audioValidator/dark/audio_validator@2x.png +0 -0
- psychopy/experiment/routines/audioValidator/light/audio_validator.png +0 -0
- psychopy/experiment/routines/audioValidator/light/audio_validator@2x.png +0 -0
- psychopy/experiment/routines/eyetracker_calibrate/__init__.py +76 -17
- psychopy/experiment/routines/eyetracker_validate/__init__.py +1 -1
- psychopy/experiment/routines/unknown/__init__.py +2 -0
- psychopy/experiment/routines/{photodiodeValidator → visualValidator}/__init__.py +89 -120
- psychopy/experiment/routines/visualValidator/classic/visual_validator.png +0 -0
- psychopy/experiment/routines/visualValidator/classic/visual_validator@2x.png +0 -0
- psychopy/experiment/routines/visualValidator/dark/visual_validator.png +0 -0
- psychopy/experiment/routines/visualValidator/dark/visual_validator@2x.png +0 -0
- psychopy/experiment/routines/visualValidator/light/visual_validator.png +0 -0
- psychopy/experiment/routines/visualValidator/light/visual_validator@2x.png +0 -0
- psychopy/experiment/utils.py +1 -1
- psychopy/gui/__init__.py +1 -1
- psychopy/gui/qtgui.py +15 -6
- psychopy/gui/wxgui.py +1 -1
- psychopy/hardware/__init__.py +0 -1
- psychopy/hardware/base.py +147 -16
- psychopy/hardware/bbtk/__init__.py +10 -16
- psychopy/hardware/brainproducts.py +7 -13
- psychopy/hardware/button.py +21 -2
- psychopy/hardware/buttonbox/__init__.py +1 -1
- psychopy/hardware/camera/__init__.py +18 -5
- psychopy/hardware/cedrus.py +5 -16
- psychopy/hardware/crs/__init__.py +1 -1
- psychopy/hardware/crs/bits.py +36 -33
- psychopy/hardware/crs/colorcal.py +8 -11
- psychopy/hardware/crs/optical.py +7 -10
- psychopy/hardware/crs/shaders.py +18 -5
- psychopy/hardware/emotiv.py +1 -1
- psychopy/hardware/emulator.py +11 -5
- psychopy/hardware/exceptions.py +86 -0
- psychopy/hardware/forp.py +18 -23
- psychopy/hardware/gammasci.py +8 -3
- psychopy/hardware/iolab.py +8 -19
- psychopy/hardware/joystick/__init__.py +865 -266
- psychopy/hardware/joystick/_base.py +251 -0
- psychopy/hardware/joystick/backend_glfw.py +306 -0
- psychopy/hardware/joystick/backend_pyglet.py +309 -0
- psychopy/hardware/joystick/mappings.py +287 -0
- psychopy/hardware/keyboard.py +4 -2
- psychopy/hardware/labhackers.py +1 -1
- psychopy/hardware/labjacks.py +9 -13
- psychopy/hardware/{photodiode.py → lightsensor.py} +146 -203
- psychopy/hardware/listener.py +9 -8
- psychopy/hardware/manager.py +24 -35
- psychopy/hardware/microphone.py +535 -155
- psychopy/hardware/minolta.py +14 -4
- psychopy/hardware/mouse/__init__.py +1 -1
- psychopy/hardware/photometer/__init__.py +2 -2
- psychopy/hardware/pr.py +14 -4
- psychopy/hardware/qmix.py +18 -27
- psychopy/hardware/serialdevice.py +43 -12
- psychopy/hardware/soundsensor.py +473 -0
- psychopy/hardware/spatial/__init__.py +231 -0
- psychopy/hardware/speaker.py +298 -36
- psychopy/hardware/triggerbox/__init__.py +1 -1
- psychopy/hardware/triggerbox/base.py +1 -1
- psychopy/hardware/triggerbox/parallel.py +1 -1
- psychopy/info.py +1 -1
- psychopy/iohub/devices/eyetracker/__init__.py +10 -18
- psychopy/iohub/devices/eyetracker/calibration/procedure.py +15 -33
- psychopy/iohub/devices/eyetracker/hw/gazepoint/__init__.py +2 -2
- psychopy/iohub/devices/eyetracker/hw/gazepoint/gp3/__init__.py +1 -0
- psychopy/iohub/devices/eyetracker/hw/gazepoint/gp3/eyetracker.py +10 -0
- psychopy/iohub/devices/eyetracker/hw/pupil_labs/neon/__init__.py +1 -0
- psychopy/iohub/devices/mouse/linux2.py +2 -1
- psychopy/layout.py +1 -1
- psychopy/liaison.py +91 -39
- psychopy/locale_setup.py +11 -1
- psychopy/localization/__init__.py +1 -1
- psychopy/localization/_localization.py +1 -1
- psychopy/localization/messages.pot +2 -2
- psychopy/logging.py +14 -12
- psychopy/microphone.py +4 -3
- psychopy/misc.py +1 -1
- psychopy/monitors/MonitorCenter.py +3 -3
- psychopy/monitors/__init__.py +1 -1
- psychopy/monitors/calibData.py +1 -1
- psychopy/monitors/calibTools.py +3 -2
- psychopy/platform_specific/__init__.py +1 -1
- psychopy/platform_specific/darwin.py +1 -1
- psychopy/platform_specific/linux.py +1 -1
- psychopy/platform_specific/win32.py +1 -1
- psychopy/plugins/__init__.py +26 -17
- psychopy/plugins/util.py +65 -0
- psychopy/preferences/Darwin.spec +11 -3
- psychopy/preferences/FreeBSD.spec +11 -3
- psychopy/preferences/Linux.spec +11 -3
- psychopy/preferences/Windows.spec +11 -3
- psychopy/preferences/__init__.py +1 -1
- psychopy/preferences/baseNoArch.spec +11 -3
- psychopy/preferences/hints.py +78 -61
- psychopy/preferences/preferences.py +82 -13
- psychopy/projects/__init__.py +1 -1
- psychopy/projects/pavlovia.py +29 -13
- psychopy/scripts/psyexpCompile.py +1 -1
- psychopy/session.py +81 -8
- psychopy/sound/__init__.py +25 -10
- psychopy/sound/_base.py +134 -34
- psychopy/sound/audioclip.py +38 -15
- psychopy/sound/audiodevice.py +1 -1
- psychopy/sound/backend_ptb.py +53 -321
- psychopy/sound/backend_pygame.py +7 -3
- psychopy/sound/backend_pyo.py +53 -22
- psychopy/sound/backend_pysound.py +10 -27
- psychopy/sound/backend_sounddevice.py +33 -21
- psychopy/sound/exceptions.py +1 -1
- psychopy/sound/microphone.py +83 -5
- psychopy/sound/transcribe.py +3 -3
- psychopy/tests/data/test_basic_run.py +1 -0
- psychopy/tests/data/test_sounds/default_16000.wav +0 -0
- psychopy/tests/data/test_sounds/default_192000.wav +0 -0
- psychopy/tests/data/test_sounds/default_22050.wav +0 -0
- psychopy/tests/data/test_sounds/default_32000.wav +0 -0
- psychopy/tests/data/test_sounds/default_44100.wav +0 -0
- psychopy/tests/data/test_sounds/default_48000.wav +0 -0
- psychopy/tests/data/test_sounds/default_8000.wav +0 -0
- psychopy/tests/data/test_sounds/default_96000.wav +0 -0
- psychopy/tests/test_alerts/test_alerttools.py +2 -1
- psychopy/tests/test_app/test_command_line.py +65 -0
- psychopy/tests/test_data/test_TrialHandler2.py +18 -7
- psychopy/tests/test_demos/test_builder_demos.py +1 -1
- psychopy/tests/test_experiment/needs_wx/componsTemplate.txt +5238 -4188
- psychopy/tests/test_experiment/needs_wx/test_components.py +1 -1
- psychopy/tests/test_experiment/test_components/test_RoutineSettingsComponent.py +16 -0
- psychopy/tests/test_experiment/test_components/test_all_components.py +1 -1
- psychopy/tests/test_experiment/test_components/test_base_components.py +26 -17
- psychopy/tests/test_experiment/test_loops.py +12 -4
- psychopy/tests/test_experiment/test_params.py +17 -4
- psychopy/tests/test_experiment/test_routines/test_PhotodiodeValidationRoutine.py +2 -2
- psychopy/tests/test_hardware/test_photodiode.py +66 -0
- psychopy/tests/test_liaison/test_Liaison.py +4 -4
- psychopy/tests/test_misc/test_clock.py +2 -0
- psychopy/tests/test_misc/test_color.py +2 -0
- psychopy/tests/test_misc/test_event.py +1 -0
- psychopy/tests/test_plugins/__init__.py +0 -0
- psychopy/tests/test_plugins/test_plugin_stubs.py +125 -0
- psychopy/tests/test_sound/test_sound.py +111 -40
- psychopy/tests/test_tools/test_colorspacetools.py +24 -23
- psychopy/tests/test_tools/test_mathtools.py +9 -9
- psychopy/tests/test_tools/test_viewtools.py +101 -0
- psychopy/tests/test_validators/__init__.py +0 -0
- psychopy/tests/test_validators/test_voicekeyValidator.py +95 -0
- psychopy/tests/test_visual/test_all_stimuli.py +2 -2
- psychopy/tests/test_visual/test_basevisual.py +37 -7
- psychopy/tests/test_visual/test_button.py +2 -2
- psychopy/tests/test_visual/test_circle.py +10 -2
- psychopy/tests/test_visual/test_dots.py +1 -1
- psychopy/tests/test_visual/test_form.py +13 -13
- psychopy/tests/test_visual/test_gamma.py +3 -3
- psychopy/tests/test_visual/test_image.py +2 -2
- psychopy/tests/test_visual/test_progress.py +2 -2
- psychopy/tests/test_visual/test_roi.py +8 -2
- psychopy/tests/test_visual/test_shape.py +2 -2
- psychopy/tests/test_visual/test_slider.py +2 -2
- psychopy/tests/test_visual/test_target.py +2 -2
- psychopy/tests/test_visual/test_textbox.py +6 -8
- psychopy/tests/test_visual/test_winScalePos.py +6 -5
- psychopy/tests/test_visual/test_window.py +17 -0
- psychopy/tests/utils.py +51 -1
- psychopy/tools/__init__.py +1 -1
- psychopy/tools/arraytools.py +2 -2
- psychopy/tools/attributetools.py +52 -1
- psychopy/tools/audiotools.py +4 -1
- psychopy/tools/colorspacetools.py +6 -4
- psychopy/tools/coordinatetools.py +1 -1
- psychopy/tools/fileerrortools.py +21 -9
- psychopy/tools/filetools.py +2 -2
- psychopy/tools/fontmanager.py +47 -28
- psychopy/tools/gltools.py +2967 -559
- psychopy/tools/imagetools.py +1 -1
- psychopy/tools/mathtools.py +997 -127
- psychopy/tools/monitorunittools.py +7 -1
- psychopy/tools/movietools.py +1 -2
- psychopy/tools/pkgtools.py +157 -127
- psychopy/tools/plottools.py +1 -1
- psychopy/tools/rifttools.py +1 -1
- psychopy/tools/stereotools.py +1 -1
- psychopy/tools/stimulustools.py +172 -2
- psychopy/tools/stringtools.py +22 -2
- psychopy/tools/systemtools.py +1 -1
- psychopy/tools/typetools.py +1 -1
- psychopy/tools/unittools.py +1 -1
- psychopy/tools/versionchooser.py +3 -1
- psychopy/tools/viewtools.py +54 -70
- psychopy/tools/wizard.py +2 -2
- psychopy/validation/__init__.py +6 -0
- psychopy/validation/audio.py +74 -0
- psychopy/validation/visual.py +115 -0
- psychopy/visual/__init__.py +1 -4
- psychopy/visual/aperture.py +9 -6
- psychopy/visual/backends/__init__.py +1 -1
- psychopy/visual/backends/_base.py +1 -1
- psychopy/visual/backends/gamma.py +1 -1
- psychopy/visual/backends/glfwbackend.py +8 -12
- psychopy/visual/backends/pygamebackend.py +1 -1
- psychopy/visual/backends/pygletbackend.py +32 -11
- psychopy/visual/basevisual.py +93 -13
- psychopy/visual/brush.py +1 -1
- psychopy/visual/bufferimage.py +90 -10
- psychopy/visual/button.py +1 -1
- psychopy/visual/circle.py +12 -20
- psychopy/visual/custommouse.py +1 -1
- psychopy/visual/dot.py +80 -14
- psychopy/visual/elementarray.py +84 -10
- psychopy/visual/filters.py +1 -1
- psychopy/visual/form.py +43 -28
- psychopy/visual/grating.py +105 -25
- psychopy/visual/helpers.py +4 -2
- psychopy/visual/image.py +98 -20
- psychopy/visual/line.py +15 -25
- psychopy/visual/movie.py +1 -1
- psychopy/visual/movie2.py +4 -3
- psychopy/visual/movie3.py +4 -3
- psychopy/visual/movies/__init__.py +1 -1
- psychopy/visual/movies/frame.py +1 -1
- psychopy/visual/movies/metadata.py +1 -1
- psychopy/visual/movies/players/__init__.py +1 -1
- psychopy/visual/movies/players/_base.py +1 -1
- psychopy/visual/movies/players/ffpyplayer_player.py +2 -3
- psychopy/visual/nnlvs.py +9 -6
- psychopy/visual/noise.py +4 -16
- psychopy/visual/patch.py +4 -3
- psychopy/visual/pie.py +3 -14
- psychopy/visual/polygon.py +21 -28
- psychopy/visual/radial.py +4 -18
- psychopy/visual/ratingscale.py +4 -3
- psychopy/visual/rect.py +16 -25
- psychopy/visual/rift.py +8 -2
- psychopy/visual/secondorder.py +4 -16
- psychopy/visual/shaders.py +620 -286
- psychopy/visual/shape.py +281 -90
- psychopy/visual/simpleimage.py +1 -1
- psychopy/visual/slider.py +78 -25
- psychopy/visual/stim3d.py +5 -608
- psychopy/visual/text.py +13 -3
- psychopy/visual/textbox2/textbox2.py +188 -56
- psychopy/visual/vlcmoviestim.py +1 -1
- psychopy/visual/window.py +374 -201
- psychopy/web.py +1 -1
- {psychopy-2024.2.5.dist-info → psychopy-2025.1.1.dist-info}/METADATA +13 -12
- {psychopy-2024.2.5.dist-info → psychopy-2025.1.1.dist-info}/RECORD +647 -624
- {psychopy-2024.2.5.dist-info → psychopy-2025.1.1.dist-info}/WHEEL +1 -1
- psychopy/.DS_Store +0 -0
- psychopy/__init__.py.orig +0 -65
- psychopy/app/.DS_Store +0 -0
- psychopy/app/Resources/.DS_Store +0 -0
- psychopy/app/Resources/classic/filecsv16.png +0 -0
- psychopy/app/Resources/classic/fileimage16.png +0 -0
- psychopy/app/Resources/classic/fileunknown16.png +0 -0
- psychopy/app/Resources/dark/filecsv16.png +0 -0
- psychopy/app/Resources/dark/filecsv16@2x.png +0 -0
- psychopy/app/Resources/dark/fileimage16.png +0 -0
- psychopy/app/Resources/dark/fileimage16@2x.png +0 -0
- psychopy/app/Resources/dark/fileunknown16.png +0 -0
- psychopy/app/Resources/dark/fileunknown16@2x.png +0 -0
- psychopy/app/Resources/fonts/OpenSans-Bold.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-BoldItalic.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-ExtraBold.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-Italic.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-Light.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-LightItalic.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-Regular.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-SemiBold.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
- psychopy/app/Resources/light/filecsv16.png +0 -0
- psychopy/app/Resources/light/filecsv16@2x.png +0 -0
- psychopy/app/Resources/light/fileimage16.png +0 -0
- psychopy/app/Resources/light/fileimage16@2x.png +0 -0
- psychopy/app/Resources/light/fileunknown16.png +0 -0
- psychopy/app/Resources/light/fileunknown16@2x.png +0 -0
- psychopy/app/Resources/psychopySplash.png +0 -0
- psychopy/app/Resources/psychopySplash@2x.png +0 -0
- psychopy/app/builder/builder.py.orig +0 -3932
- psychopy/app/builder/dialogs/__init__.py.orig +0 -1679
- psychopy/app/builder/dialogs/paramCtrls.py.orig +0 -713
- psychopy/app/colorpicker/__init__.py.orig +0 -411
- psychopy/app/locale/ar_001/.DS_Store +0 -0
- psychopy/app/locale/ar_001/LC_MESSAGE/.DS_Store +0 -0
- psychopy/core.py.orig +0 -169
- psychopy/demos/builder/.DS_Store +0 -0
- psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks_lastrun.py +0 -330
- psychopy/demos/builder/Experiments/.DS_Store +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/archived_conditions.xlsx +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/draw grid stim.py +0 -61
- psychopy/demos/builder/Experiments/dragAndDrop/shapeMaker.psyexp +0 -91
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_1.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_10.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_2.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_3.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_4.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_5.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_6.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_7.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_8.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_9.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/updated_conditions.xlsx +0 -0
- psychopy/demos/builder/Tools/.DS_Store +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/.DS_Store +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/data/.DS_Store +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.csv +0 -38
- psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.log +0 -3418
- psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.psydat +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.csv +0 -2
- psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.log +0 -15
- psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.psydat +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual_lastrun.py +0 -562
- psychopy/demos/coder/.DS_Store +0 -0
- psychopy/demos/coder/experiment control/info_gamma.pickle +0 -0
- psychopy/demos/coder/iohub/.iohpid +0 -1
- psychopy/demos/coder/iohub/eyetracking/.iohpid +0 -1
- psychopy/demos/coder/iohub/wintab/.DS_Store +0 -0
- psychopy/demos/coder/stimuli/.DS_Store +0 -0
- psychopy/experiment/_experiment.py.orig +0 -1032
- psychopy/experiment/components/.DS_Store +0 -0
- psychopy/experiment/components/_base.py.orig +0 -823
- psychopy/experiment/components/form/.DS_Store +0 -0
- psychopy/experiment/components/microphone/__init__.py.orig +0 -490
- psychopy/experiment/components/settings/__init__.py.orig +0 -1337
- psychopy/experiment/components/textbox/__init__.py.orig +0 -310
- psychopy/experiment/components/webcam/.DS_Store +0 -0
- psychopy/experiment/components/webcam/light/.DS_Store +0 -0
- psychopy/experiment/loops.py.orig +0 -829
- psychopy/experiment/params.py.orig +0 -408
- psychopy/experiment/routine.py.orig +0 -503
- psychopy/experiment/routines/photodiodeValidator/classic/photodiode_validator.png +0 -0
- psychopy/experiment/routines/photodiodeValidator/classic/photodiode_validator@2x.png +0 -0
- psychopy/experiment/routines/photodiodeValidator/dark/photodiode_validator.png +0 -0
- psychopy/experiment/routines/photodiodeValidator/dark/photodiode_validator@2x.png +0 -0
- psychopy/experiment/routines/photodiodeValidator/light/photodiode_validator.png +0 -0
- psychopy/experiment/routines/photodiodeValidator/light/photodiode_validator@2x.png +0 -0
- psychopy/hardware/.DS_Store +0 -0
- psychopy/hardware/brainproducts.py.orig +0 -680
- psychopy/hardware/iolab.py.orig +0 -238
- psychopy/iohub/datastore/__init__.py.orig +0 -443
- psychopy/iohub/datastore/util.py.orig +0 -692
- psychopy/iohub/devices/mouse/darwin.py.orig +0 -427
- psychopy/iohub/devices/mouse/linux2.py.orig +0 -198
- psychopy/preferences/.DS_Store +0 -0
- psychopy/projects/pavlovia.py.orig +0 -1295
- psychopy/tests/.DS_Store +0 -0
- psychopy/tests/data/.DS_Store +0 -0
- psychopy/tests/data/TestCircle_fill_local.png +0 -0
- psychopy/tests/data/aperture1_normHexbackground_local.png +0 -0
- psychopy/tests/data/aperture1_norm_local.png +0 -0
- psychopy/tests/data/aperture2_normHexbackground_local.png +0 -0
- psychopy/tests/data/beatandrcos_height_local.png +0 -0
- psychopy/tests/data/beatandrcos_normAddBlend_local.png +0 -0
- psychopy/tests/data/beatandrcos_normHexbackground_local.png +0 -0
- psychopy/tests/data/beatandrcos_norm_local.png +0 -0
- psychopy/tests/data/beatandrcos_stencil_local.png +0 -0
- psychopy/tests/data/blend_add_height_local.png +0 -0
- psychopy/tests/data/blend_add_normAddBlend_local.png +0 -0
- psychopy/tests/data/blend_add_normHexbackground_local.png +0 -0
- psychopy/tests/data/blend_add_normNoShade_local.png +0 -0
- psychopy/tests/data/blend_add_norm_local.png +0 -0
- psychopy/tests/data/blend_add_stencil_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_height_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_normAddBlend_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_normHexbackground_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_normNoShade_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_norm_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_stencil_local.png +0 -0
- psychopy/tests/data/circleHex_height_local.png +0 -0
- psychopy/tests/data/circleHex_normAddBlend_local.png +0 -0
- psychopy/tests/data/circleHex_normHexbackground_local.png +0 -0
- psychopy/tests/data/circleHex_normNoShade_local.png +0 -0
- psychopy/tests/data/circleHex_norm_local.png +0 -0
- psychopy/tests/data/circleHex_stencil_local.png +0 -0
- psychopy/tests/data/color_comparison_local.png +0 -0
- psychopy/tests/data/correctScript/.DS_Store +0 -0
- psychopy/tests/data/dots_height_local.png +0 -0
- psychopy/tests/data/dots_normAddBlend_local.png +0 -0
- psychopy/tests/data/dots_normHexbackground_local.png +0 -0
- psychopy/tests/data/dots_normNoShade_local.png +0 -0
- psychopy/tests/data/dots_norm_local.png +0 -0
- psychopy/tests/data/dots_stencil_local.png +0 -0
- psychopy/tests/data/elarray1_height_local.png +0 -0
- psychopy/tests/data/elarray1_normAddBlend_local.png +0 -0
- psychopy/tests/data/elarray1_normHexbackground_local.png +0 -0
- psychopy/tests/data/elarray1_norm_local.png +0 -0
- psychopy/tests/data/elarray1_stencil_local.png +0 -0
- psychopy/tests/data/envelopeandrcos_height_local.png +0 -0
- psychopy/tests/data/envelopeandrcos_normAddBlend_local.png +0 -0
- psychopy/tests/data/envelopeandrcos_normHexbackground_local.png +0 -0
- psychopy/tests/data/envelopeandrcos_norm_local.png +0 -0
- psychopy/tests/data/envelopeandrcos_stencil_local.png +0 -0
- psychopy/tests/data/envelopepowerandrcos_height_local.png +0 -0
- psychopy/tests/data/envelopepowerandrcos_normAddBlend_local.png +0 -0
- psychopy/tests/data/envelopepowerandrcos_normHexbackground_local.png +0 -0
- psychopy/tests/data/envelopepowerandrcos_norm_local.png +0 -0
- psychopy/tests/data/envelopepowerandrcos_stencil_local.png +0 -0
- psychopy/tests/data/gabor1_height_local.png +0 -0
- psychopy/tests/data/gabor1_normAddBlend_local.png +0 -0
- psychopy/tests/data/gabor1_normHexbackground_local.png +0 -0
- psychopy/tests/data/gabor1_normNoShade_local.png +0 -0
- psychopy/tests/data/gabor1_norm_local.png +0 -0
- psychopy/tests/data/gabor1_stencil_local.png +0 -0
- psychopy/tests/data/greyscale_normHexbackground_local.png +0 -0
- psychopy/tests/data/imageAndGauss_height_local.png +0 -0
- psychopy/tests/data/imageAndGauss_normAddBlend_local.png +0 -0
- psychopy/tests/data/imageAndGauss_normHexbackground_local.png +0 -0
- psychopy/tests/data/imageAndGauss_normNoShade_local.png +0 -0
- psychopy/tests/data/imageAndGauss_norm_local.png +0 -0
- psychopy/tests/data/imageAndGauss_stencil_local.png +0 -0
- psychopy/tests/data/movFrame1_stencil_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_height_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_normAddBlend_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_normHexbackground_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_normNoShade_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_norm_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_stencil_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_height_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_normAddBlend_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_normHexbackground_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_normNoShade_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_norm_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_stencil_local.png +0 -0
- psychopy/tests/data/numpyImage_height_local.png +0 -0
- psychopy/tests/data/numpyImage_normAddBlend_local.png +0 -0
- psychopy/tests/data/numpyImage_normHexbackground_local.png +0 -0
- psychopy/tests/data/numpyImage_normNoShade_local.png +0 -0
- psychopy/tests/data/numpyImage_norm_local.png +0 -0
- psychopy/tests/data/numpyImage_stencil_local.png +0 -0
- psychopy/tests/data/shape2_1_normAddBlend_local.png +0 -0
- psychopy/tests/data/shape2_1_normHexbackground_local.png +0 -0
- psychopy/tests/data/shape2_1_normNoShade_local.png +0 -0
- psychopy/tests/data/shape2_1_norm_local.png +0 -0
- psychopy/tests/data/shape2_1_stencil_local.png +0 -0
- psychopy/tests/data/text1_height_local.png +0 -0
- psychopy/tests/data/text1_normAddBlend_local.png +0 -0
- psychopy/tests/data/text1_normHexbackground_local.png +0 -0
- psychopy/tests/data/text1_norm_local.png +0 -0
- psychopy/tests/data/text1_stencil_local.png +0 -0
- psychopy/tests/data/wedge1_height_local.png +0 -0
- psychopy/tests/data/wedge1_normAddBlend_local.png +0 -0
- psychopy/tests/data/wedge1_normHexbackground_local.png +0 -0
- psychopy/tests/data/wedge1_normNoShade_local.png +0 -0
- psychopy/tests/data/wedge1_norm_local.png +0 -0
- psychopy/tests/data/wedge1_stencil_local.png +0 -0
- psychopy/tests/test_app/.DS_Store +0 -0
- psychopy/tests/test_app/test_builder/.DS_Store +0 -0
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.log +0 -177
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.psydat +0 -0
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.xlsx +0 -0
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.log +0 -168
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.psydat +0 -0
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.xlsx +0 -0
- psychopy/tests/test_data/.DS_Store +0 -0
- psychopy/tests/test_hardware/test_CRS_BitsSharp.py +0 -67
- psychopy/tests/test_hardware/test_CRS_BitsSharp.py.orig +0 -68
- psychopy/tests/test_hardware/test_CRS_bitsShaders.py +0 -110
- psychopy/tests/test_visual/test_image.py.orig +0 -219
- psychopy/visual/basevisual.py.orig +0 -1723
- psychopy/visual/form.py.orig +0 -1181
- psychopy/visual/text.py.orig +0 -752
- psychopy/visual/textbox2/textbox2.py.orig +0 -1315
- psychopy/visual/windowwarp.py.orig +0 -463
- /psychopy/{app/cortex.log → alerts/alertsCatalogue/3600.yaml} +0 -0
- /psychopy/{app/Resources → assets}/fonts/Arvo-Bold.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/Arvo-BoldItalic.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/Arvo-Italic.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/Arvo-Regular.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/DejaVuSerif.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/IndieFlower-Regular.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/JetBrainsMono-VariableFont_wght.ttf +0 -0
- /psychopy/demos/builder/Experiments/{GoNoGo → goNoGo}/readme.md +0 -0
- {psychopy-2024.2.5.dist-info → psychopy-2025.1.1.dist-info}/entry_points.txt +0 -0
- {psychopy-2024.2.5.dist-info → psychopy-2025.1.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,157 +1,206 @@
|
|
|
1
|
-
|
|
1
|
+
<?xml version="1.0" ?>
|
|
2
|
+
<PsychoPy2experiment encoding="utf-8" version="2025.1.0">
|
|
2
3
|
<Settings>
|
|
3
|
-
<Param val="use prefs" valType="str" updates="None" name="Audio latency priority"
|
|
4
|
-
<Param val="use prefs" valType="str" updates="None" name="Audio lib"
|
|
5
|
-
<Param val="" valType="str" updates="None" name="Completed URL"
|
|
6
|
-
<Param val="auto" valType="str" updates="None" name="Data file delimiter"
|
|
7
|
-
<Param val="u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])" valType="code" updates="None" name="Data filename"
|
|
8
|
-
<Param val="True" valType="bool" updates="None" name="Enable Escape"
|
|
9
|
-
<Param val="
|
|
10
|
-
<Param val="
|
|
11
|
-
<Param val="
|
|
12
|
-
<Param val="" valType="
|
|
13
|
-
<Param val="" valType="str" updates="None" name="
|
|
14
|
-
<Param val="
|
|
15
|
-
<Param val="
|
|
16
|
-
<Param val="
|
|
17
|
-
<Param val="False" valType="bool" updates="None" name="Save
|
|
18
|
-
<Param val="False" valType="bool" updates="None" name="Save
|
|
19
|
-
<Param val="
|
|
20
|
-
<Param val="True" valType="bool" updates="None" name="Save
|
|
21
|
-
<Param val="True" valType="bool" updates="None" name="Save
|
|
22
|
-
<Param val="
|
|
23
|
-
<Param val="
|
|
24
|
-
<Param val="False" valType="bool" updates="None" name="Show
|
|
25
|
-
<Param val="
|
|
26
|
-
<Param val="" valType="str" updates="None" name="
|
|
27
|
-
<Param val="
|
|
28
|
-
<Param val="
|
|
29
|
-
<Param val="
|
|
30
|
-
<Param val="
|
|
31
|
-
<Param val="
|
|
32
|
-
<Param val="
|
|
33
|
-
<Param val="
|
|
34
|
-
<Param val="
|
|
35
|
-
<Param val="
|
|
36
|
-
<Param val="
|
|
37
|
-
<Param val="
|
|
38
|
-
<Param val="
|
|
39
|
-
<Param val="
|
|
40
|
-
<Param val="
|
|
41
|
-
<Param val="
|
|
42
|
-
<Param val="
|
|
43
|
-
<Param val="
|
|
44
|
-
<Param val="
|
|
45
|
-
<Param val="
|
|
46
|
-
<Param val="
|
|
47
|
-
<Param val="
|
|
48
|
-
<Param val="
|
|
49
|
-
<Param val="
|
|
50
|
-
<Param val="" valType="str" updates="None" name="
|
|
51
|
-
<Param val="" valType="str" updates="None" name="
|
|
52
|
-
<Param val="
|
|
53
|
-
<Param val="" valType="str" updates="None" name="
|
|
54
|
-
|
|
4
|
+
<Param val="use prefs" valType="str" updates="None" name="Audio latency priority"/>
|
|
5
|
+
<Param val="use prefs" valType="str" updates="None" name="Audio lib"/>
|
|
6
|
+
<Param val="" valType="str" updates="None" name="Completed URL"/>
|
|
7
|
+
<Param val="auto" valType="str" updates="None" name="Data file delimiter"/>
|
|
8
|
+
<Param val="u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])" valType="code" updates="None" name="Data filename"/>
|
|
9
|
+
<Param val="True" valType="bool" updates="None" name="Enable Escape"/>
|
|
10
|
+
<Param val="Thank you for your patience." valType="str" updates="None" name="End Message"/>
|
|
11
|
+
<Param val="{'participant': '', 'session': '001'}" valType="code" updates="None" name="Experiment info"/>
|
|
12
|
+
<Param val="True" valType="bool" updates="None" name="Force stereo"/>
|
|
13
|
+
<Param val="False" valType="bool" updates="None" name="Full-screen window"/>
|
|
14
|
+
<Param val="" valType="str" updates="None" name="HTML path"/>
|
|
15
|
+
<Param val="" valType="str" updates="None" name="Incomplete URL"/>
|
|
16
|
+
<Param val="testMonitor" valType="str" updates="None" name="Monitor"/>
|
|
17
|
+
<Param val="[]" valType="fileList" updates="None" name="Resources"/>
|
|
18
|
+
<Param val="False" valType="bool" updates="None" name="Save csv file"/>
|
|
19
|
+
<Param val="False" valType="bool" updates="None" name="Save excel file"/>
|
|
20
|
+
<Param val="False" valType="bool" updates="None" name="Save hdf5 file"/>
|
|
21
|
+
<Param val="True" valType="bool" updates="None" name="Save log file"/>
|
|
22
|
+
<Param val="True" valType="bool" updates="None" name="Save psydat file"/>
|
|
23
|
+
<Param val="True" valType="bool" updates="None" name="Save wide csv file"/>
|
|
24
|
+
<Param val="1" valType="num" updates="None" name="Screen"/>
|
|
25
|
+
<Param val="False" valType="bool" updates="None" name="Show info dlg"/>
|
|
26
|
+
<Param val="False" valType="bool" updates="None" name="Show mouse"/>
|
|
27
|
+
<Param val="height" valType="str" updates="None" name="Units"/>
|
|
28
|
+
<Param val="" valType="str" updates="None" name="Use version"/>
|
|
29
|
+
<Param val="[1080, 720]" valType="code" updates="None" name="Window size (pixels)"/>
|
|
30
|
+
<Param val="none" valType="str" updates="None" name="backgroundFit"/>
|
|
31
|
+
<Param val="" valType="str" updates="None" name="backgroundImg"/>
|
|
32
|
+
<Param val="avg" valType="str" updates="None" name="blendMode"/>
|
|
33
|
+
<Param val="float" valType="str" updates="None" name="clockFormat"/>
|
|
34
|
+
<Param val="{'thisRow.t': 'priority.CRITICAL', 'expName': 'priority.LOW'}" valType="dict" updates="None" name="colPriority"/>
|
|
35
|
+
<Param val="$[0,0,0]" valType="str" updates="None" name="color"/>
|
|
36
|
+
<Param val="rgb" valType="str" updates="None" name="colorSpace"/>
|
|
37
|
+
<Param val="warning" valType="code" updates="None" name="consoleLoggingLevel"/>
|
|
38
|
+
<Param val="default" valType="str" updates="None" name="ecSampleRate"/>
|
|
39
|
+
<Param val="100.1.1.1" valType="str" updates="None" name="elAddress"/>
|
|
40
|
+
<Param val="FILTER_LEVEL_2" valType="str" updates="None" name="elDataFiltering"/>
|
|
41
|
+
<Param val="FILTER_LEVEL_OFF" valType="str" updates="None" name="elLiveFiltering"/>
|
|
42
|
+
<Param val="EYELINK 1000 DESKTOP" valType="str" updates="None" name="elModel"/>
|
|
43
|
+
<Param val="ELLIPSE_FIT" valType="str" updates="None" name="elPupilAlgorithm"/>
|
|
44
|
+
<Param val="PUPIL_AREA" valType="str" updates="None" name="elPupilMeasure"/>
|
|
45
|
+
<Param val="1000" valType="num" updates="None" name="elSampleRate"/>
|
|
46
|
+
<Param val="False" valType="bool" updates="None" name="elSimMode"/>
|
|
47
|
+
<Param val="RIGHT_EYE" valType="str" updates="None" name="elTrackEyes"/>
|
|
48
|
+
<Param val="PUPIL_CR_TRACKING" valType="str" updates="None" name="elTrackingMode"/>
|
|
49
|
+
<Param val="unitDemo2" valType="str" updates="None" name="expName"/>
|
|
50
|
+
<Param val="" valType="str" updates="None" name="expVersion"/>
|
|
51
|
+
<Param val="on Sync" valType="str" updates="None" name="exportHTML"/>
|
|
52
|
+
<Param val="None" valType="str" updates="None" name="eyetracker"/>
|
|
53
|
+
<Param val="" valType="code" updates="None" name="frameRate"/>
|
|
54
|
+
<Param val="Attempting to measure frame rate of screen, please wait..." valType="str" updates="None" name="frameRateMsg"/>
|
|
55
|
+
<Param val="127.0.0.1" valType="str" updates="None" name="gpAddress"/>
|
|
56
|
+
<Param val="4242" valType="num" updates="None" name="gpPort"/>
|
|
57
|
+
<Param val="PsychToolbox" valType="str" updates="None" name="keyboardBackend"/>
|
|
58
|
+
<Param val="debug" valType="code" updates="None" name="logging level"/>
|
|
59
|
+
<Param val="True" valType="bool" updates="None" name="measureFrameRate"/>
|
|
60
|
+
<Param val="MIDDLE_BUTTON" valType="list" updates="None" name="mgBlink"/>
|
|
61
|
+
<Param val="CONTINUOUS" valType="str" updates="None" name="mgMove"/>
|
|
62
|
+
<Param val="0.5" valType="num" updates="None" name="mgSaccade"/>
|
|
63
|
+
<Param val="neon.local" valType="str" updates="None" name="plCompanionAddress"/>
|
|
64
|
+
<Param val="8080" valType="num" updates="None" name="plCompanionPort"/>
|
|
65
|
+
<Param val="0.6" valType="num" updates="None" name="plConfidenceThreshold"/>
|
|
66
|
+
<Param val="" valType="str" updates="None" name="plPupilCaptureRecordingLocation"/>
|
|
67
|
+
<Param val="127.0.0.1" valType="str" updates="None" name="plPupilRemoteAddress"/>
|
|
68
|
+
<Param val="50020" valType="num" updates="None" name="plPupilRemotePort"/>
|
|
69
|
+
<Param val="1000" valType="num" updates="None" name="plPupilRemoteTimeoutMs"/>
|
|
70
|
+
<Param val="False" valType="bool" updates="None" name="plPupillometryOnly"/>
|
|
71
|
+
<Param val="psychopy_iohub_surface" valType="str" updates="None" name="plSurfaceName"/>
|
|
72
|
+
<Param val="0" valType="code" updates="constant" name="runMode"/>
|
|
73
|
+
<Param val="False" valType="bool" updates="None" name="rush"/>
|
|
74
|
+
<Param val="time" valType="str" updates="None" name="sortColumns"/>
|
|
75
|
+
<Param val="" valType="str" updates="None" name="tbLicenseFile"/>
|
|
76
|
+
<Param val="" valType="str" updates="None" name="tbModel"/>
|
|
77
|
+
<Param val="60" valType="num" updates="None" name="tbSampleRate"/>
|
|
78
|
+
<Param val="" valType="str" updates="None" name="tbSerialNo"/>
|
|
79
|
+
<Param val="pyglet" valType="str" updates="None" name="winBackend"/>
|
|
80
|
+
</Settings>
|
|
55
81
|
<Routines>
|
|
56
82
|
<Routine name="rectMover">
|
|
57
|
-
<
|
|
58
|
-
<Param val="" valType="
|
|
59
|
-
<Param val="" valType="
|
|
60
|
-
<Param val="
|
|
61
|
-
<Param val="
|
|
62
|
-
<Param val="" valType="
|
|
63
|
-
<Param val="" valType="
|
|
64
|
-
<Param val="
|
|
65
|
-
<Param val="
|
|
66
|
-
<Param val="
|
|
67
|
-
<Param val="" valType="
|
|
68
|
-
<Param val="" valType="
|
|
69
|
-
<Param val="" valType="
|
|
70
|
-
<Param val="" valType="
|
|
71
|
-
<Param val="False" valType="bool" updates="None" name="
|
|
72
|
-
|
|
83
|
+
<RoutineSettingsComponent name="rectMover" plugin="None">
|
|
84
|
+
<Param val="none" valType="str" updates="None" name="backgroundFit"/>
|
|
85
|
+
<Param val="" valType="str" updates="None" name="backgroundImg"/>
|
|
86
|
+
<Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
|
|
87
|
+
<Param val="rgb" valType="str" updates="None" name="colorSpace"/>
|
|
88
|
+
<Param val="" valType="str" updates="constant" name="desc"/>
|
|
89
|
+
<Param val="False" valType="bool" updates="None" name="disabled"/>
|
|
90
|
+
<Param val="" valType="code" updates="None" name="durationEstim"/>
|
|
91
|
+
<Param val="False" valType="code" updates="None" name="forceNonSlip"/>
|
|
92
|
+
<Param val="rectMover" valType="code" updates="None" name="name"/>
|
|
93
|
+
<Param val="True" valType="bool" updates="None" name="saveStartStop"/>
|
|
94
|
+
<Param val="" valType="code" updates="constant" name="skipIf"/>
|
|
95
|
+
<Param val="duration (s)" valType="str" updates="None" name="stopType"/>
|
|
96
|
+
<Param val="" valType="code" updates="constant" name="stopVal"/>
|
|
97
|
+
<Param val="False" valType="bool" updates="None" name="useWindowParams"/>
|
|
98
|
+
</RoutineSettingsComponent>
|
|
99
|
+
<CodeComponent name="code" plugin="None">
|
|
100
|
+
<Param val="" valType="extendedCode" updates="constant" name="Before Experiment"/>
|
|
101
|
+
<Param val="" valType="extendedCode" updates="constant" name="Before JS Experiment"/>
|
|
102
|
+
<Param val="mags = {&#10; 'height': 0.1,&#10; 'norm': 0.1,&#10; 'pix': 100,&#10; 'cm': 1,&#10; 'deg': pi/10,&#10;}&#10;unitCodes = {&#10; 'h': 'height',&#10; 'n': 'norm',&#10; 'p': 'pix',&#10; 'c': 'cm',&#10; 'd': 'deg'&#10;}" valType="extendedCode" updates="constant" name="Begin Experiment"/>
|
|
103
|
+
<Param val="mags = {"height": 0.1, "norm": 0.1, "pix": 100, "cm": 1, "deg": (pi / 10)};&#10;unitCodes = {"h": "height", "n": "norm", "p": "pix", "c": "cm", "d": "deg"};&#10;" valType="extendedCode" updates="constant" name="Begin JS Experiment"/>
|
|
104
|
+
<Param val="" valType="extendedCode" updates="constant" name="Begin JS Routine"/>
|
|
105
|
+
<Param val="" valType="extendedCode" updates="constant" name="Begin Routine"/>
|
|
106
|
+
<Param val="Auto->JS" valType="str" updates="None" name="Code Type"/>
|
|
107
|
+
<Param val="keys = event.getKeys()&#10;if keys:&#10; # Get key&#10; if 'escape' in keys:&#10; continueRoutine = False&#10; break&#10; key = keys.pop()&#10; pol = (key in ['right', 'up', 'equal'])*2-1 # Polarity: Whatever dimension, move up or down?&#10; mag = mags[stim.units] # Magnitude to move by&#10; if key in ['left', 'right']:&#10; # Move along the x axis&#10; stim.pos = (stim.pos[0] + mag*pol, &#10; stim.pos[1])&#10; if key in ['up', 'down']:&#10; # Move along the y axis&#10; stim.pos = (stim.pos[0], &#10; stim.pos[1] + mag*pol)&#10; if key in ['equal', 'minus']:&#10; # Move along the size axis&#10; if stim.size[0] + mag*pol>=0: # only if size greater than 0&#10; stim.size = (stim.size[0] + mag*pol,&#10; stim.size[1] + mag*pol)&#10; if key in ['h', 'p', 'n', 'c', 'd']:&#10; # Set units&#10; stim.units = unitCodes[key]&#10; poslog.units = unitCodes[key]&#10; if key in ['r']:&#10; # Reset&#10; stim.units = 'height'&#10; stim.size = (0.1, 0.1)&#10; stim.pos = (0, 0)" valType="extendedCode" updates="constant" name="Each Frame"/>
|
|
108
|
+
<Param val="var _pj;&#10;function _pj_snippets(container) {&#10; function in_es6(left, right) {&#10; if (((right instanceof Array) || ((typeof right) === "string"))) {&#10; return (right.indexOf(left) > (- 1));&#10; } else {&#10; if (((right instanceof Map) || (right instanceof Set) || (right instanceof WeakMap) || (right instanceof WeakSet))) {&#10; return right.has(left);&#10; } else {&#10; return (left in right);&#10; }&#10; }&#10; }&#10; container["in_es6"] = in_es6;&#10; return container;&#10;}&#10;_pj = {};&#10;_pj_snippets(_pj);&#10;keys = event.getKeys();&#10;if (keys) {&#10; if (_pj.in_es6("escape", keys)) {&#10; continueRoutine = false;&#10; break;&#10; }&#10; key = keys.pop();&#10; pol = ((_pj.in_es6(key, ["right", "up", "equal"]) * 2) - 1);&#10; mag = mags[stim.units];&#10; if (_pj.in_es6(key, ["left", "right"])) {&#10; stim.pos = [(stim.pos[0] + (mag * pol)), stim.pos[1]];&#10; }&#10; if (_pj.in_es6(key, ["up", "down"])) {&#10; stim.pos = [stim.pos[0], (stim.pos[1] + (mag * pol))];&#10; }&#10; if (_pj.in_es6(key, ["equal", "minus"])) {&#10; if (((stim.size[0] + (mag * pol)) >= 0)) {&#10; stim.size = [(stim.size[0] + (mag * pol)), (stim.size[1] + (mag * pol))];&#10; }&#10; }&#10; if (_pj.in_es6(key, ["h", "p", "n", "c", "d"])) {&#10; stim.units = unitCodes[key];&#10; poslog.units = unitCodes[key];&#10; }&#10; if (_pj.in_es6(key, ["r"])) {&#10; stim.units = "height";&#10; stim.size = [0.1, 0.1];&#10; stim.pos = [0, 0];&#10; }&#10;}&#10;" valType="extendedCode" updates="constant" name="Each JS Frame"/>
|
|
109
|
+
<Param val="" valType="extendedCode" updates="constant" name="End Experiment"/>
|
|
110
|
+
<Param val="" valType="extendedCode" updates="constant" name="End JS Experiment"/>
|
|
111
|
+
<Param val="" valType="extendedCode" updates="constant" name="End JS Routine"/>
|
|
112
|
+
<Param val="" valType="extendedCode" updates="constant" name="End Routine"/>
|
|
113
|
+
<Param val="False" valType="bool" updates="None" name="disabled"/>
|
|
114
|
+
<Param val="code" valType="code" updates="None" name="name"/>
|
|
73
115
|
</CodeComponent>
|
|
74
|
-
<PolygonComponent name="stim">
|
|
75
|
-
<Param val="
|
|
76
|
-
<Param val="
|
|
77
|
-
<Param val="
|
|
78
|
-
<Param val="" valType="
|
|
79
|
-
<Param val="
|
|
80
|
-
<Param val="
|
|
81
|
-
<Param val="
|
|
82
|
-
<Param val="
|
|
83
|
-
<Param val="
|
|
84
|
-
<Param val="1" valType="
|
|
85
|
-
<Param val="
|
|
86
|
-
<Param val="
|
|
87
|
-
<Param val="
|
|
88
|
-
<Param val="
|
|
89
|
-
<Param val="
|
|
90
|
-
<Param val="
|
|
91
|
-
<Param val="
|
|
92
|
-
<Param val="
|
|
93
|
-
<Param val="" valType="
|
|
94
|
-
<Param val="
|
|
95
|
-
<Param val="
|
|
96
|
-
<Param val="
|
|
97
|
-
<Param val="" valType="code" updates="
|
|
98
|
-
<Param val="
|
|
99
|
-
<Param val="
|
|
100
|
-
<Param val="" valType="
|
|
116
|
+
<PolygonComponent name="stim" plugin="None">
|
|
117
|
+
<Param val="center" valType="str" updates="constant" name="anchor"/>
|
|
118
|
+
<Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
|
|
119
|
+
<Param val="1" valType="num" updates="constant" name="contrast"/>
|
|
120
|
+
<Param val="False" valType="bool" updates="None" name="disabled"/>
|
|
121
|
+
<Param val="False" valType="code" updates="constant" name="draggable"/>
|
|
122
|
+
<Param val="" valType="code" updates="None" name="durationEstim"/>
|
|
123
|
+
<Param val="$[1,1,1]" valType="str" updates="constant" name="fillColor"/>
|
|
124
|
+
<Param val="rgb" valType="str" updates="constant" name="fillColorSpace"/>
|
|
125
|
+
<Param val="linear" valType="str" updates="constant" name="interpolate"/>
|
|
126
|
+
<Param val="$[1,1,1]" valType="str" updates="constant" name="lineColor"/>
|
|
127
|
+
<Param val="rgb" valType="str" updates="constant" name="lineColorSpace"/>
|
|
128
|
+
<Param val="1" valType="code" updates="constant" name="lineWidth"/>
|
|
129
|
+
<Param val="4" valType="int" updates="constant" name="nVertices"/>
|
|
130
|
+
<Param val="stim" valType="code" updates="None" name="name"/>
|
|
131
|
+
<Param val="1" valType="code" updates="constant" name="opacity"/>
|
|
132
|
+
<Param val="0" valType="code" updates="constant" name="ori"/>
|
|
133
|
+
<Param val="(0, 0)" valType="list" updates="constant" name="pos"/>
|
|
134
|
+
<Param val="True" valType="bool" updates="None" name="saveStartStop"/>
|
|
135
|
+
<Param val="rectangle" valType="str" updates="constant" name="shape"/>
|
|
136
|
+
<Param val="(0.5, 0.5)" valType="list" updates="constant" name="size"/>
|
|
137
|
+
<Param val="" valType="code" updates="None" name="startEstim"/>
|
|
138
|
+
<Param val="time (s)" valType="str" updates="None" name="startType"/>
|
|
139
|
+
<Param val="0.0" valType="code" updates="None" name="startVal"/>
|
|
140
|
+
<Param val="duration (s)" valType="str" updates="None" name="stopType"/>
|
|
141
|
+
<Param val="" valType="code" updates="constant" name="stopVal"/>
|
|
142
|
+
<Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
|
|
143
|
+
<Param val="from exp settings" valType="str" updates="None" name="units"/>
|
|
144
|
+
<Param val="" valType="code" updates="None" name="validator"/>
|
|
145
|
+
<Param val="" valType="list" updates="constant" name="vertices"/>
|
|
101
146
|
</PolygonComponent>
|
|
102
|
-
<TextComponent name="inst">
|
|
103
|
-
<Param val="black" valType="str" updates="constant" name="color"
|
|
104
|
-
<Param val="rgb" valType="str" updates="constant" name="colorSpace"
|
|
105
|
-
<Param val="1" valType="num" updates="constant" name="contrast"
|
|
106
|
-
<Param val="False" valType="bool" updates="None" name="disabled"
|
|
107
|
-
<Param val="" valType="code" updates="
|
|
108
|
-
<Param val="" valType="
|
|
109
|
-
<Param val="
|
|
110
|
-
<Param val="
|
|
111
|
-
<Param val="
|
|
112
|
-
<Param val="
|
|
113
|
-
<Param val="
|
|
114
|
-
<Param val="
|
|
115
|
-
<Param val="
|
|
116
|
-
<Param val="
|
|
117
|
-
<Param val="" valType="
|
|
118
|
-
<Param val="
|
|
119
|
-
<Param val="
|
|
120
|
-
<Param val="
|
|
121
|
-
<Param val="" valType="
|
|
122
|
-
<Param val="
|
|
123
|
-
<Param val="
|
|
124
|
-
<Param val="
|
|
125
|
-
<Param val="" valType="
|
|
147
|
+
<TextComponent name="inst" plugin="None">
|
|
148
|
+
<Param val="black" valType="str" updates="constant" name="color"/>
|
|
149
|
+
<Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
|
|
150
|
+
<Param val="1" valType="num" updates="constant" name="contrast"/>
|
|
151
|
+
<Param val="False" valType="bool" updates="None" name="disabled"/>
|
|
152
|
+
<Param val="False" valType="code" updates="constant" name="draggable"/>
|
|
153
|
+
<Param val="" valType="code" updates="None" name="durationEstim"/>
|
|
154
|
+
<Param val="" valType="str" updates="constant" name="flip"/>
|
|
155
|
+
<Param val="Arial" valType="str" updates="constant" name="font"/>
|
|
156
|
+
<Param val="LTR" valType="str" updates="None" name="languageStyle"/>
|
|
157
|
+
<Param val="0.025" valType="code" updates="constant" name="letterHeight"/>
|
|
158
|
+
<Param val="inst" valType="code" updates="None" name="name"/>
|
|
159
|
+
<Param val="1" valType="code" updates="constant" name="opacity"/>
|
|
160
|
+
<Param val="0" valType="code" updates="constant" name="ori"/>
|
|
161
|
+
<Param val="(0, -0.4)" valType="list" updates="constant" name="pos"/>
|
|
162
|
+
<Param val="True" valType="bool" updates="None" name="saveStartStop"/>
|
|
163
|
+
<Param val="" valType="code" updates="None" name="startEstim"/>
|
|
164
|
+
<Param val="time (s)" valType="str" updates="None" name="startType"/>
|
|
165
|
+
<Param val="0.0" valType="code" updates="None" name="startVal"/>
|
|
166
|
+
<Param val="duration (s)" valType="str" updates="None" name="stopType"/>
|
|
167
|
+
<Param val="" valType="code" updates="constant" name="stopVal"/>
|
|
168
|
+
<Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
|
|
169
|
+
<Param val="Move: up, down, left, right&#10;Scale: minus = shrink, equals = grow&#10;Units: p = pix, h = height, n = norm, c = cm, d = deg&#10;Reset: r" valType="extendedStr" updates="constant" name="text"/>
|
|
170
|
+
<Param val="from exp settings" valType="str" updates="None" name="units"/>
|
|
171
|
+
<Param val="" valType="code" updates="None" name="validator"/>
|
|
172
|
+
<Param val="" valType="code" updates="constant" name="wrapWidth"/>
|
|
126
173
|
</TextComponent>
|
|
127
|
-
<TextComponent name="poslog">
|
|
128
|
-
<Param val="black" valType="str" updates="constant" name="color"
|
|
129
|
-
<Param val="rgb" valType="str" updates="constant" name="colorSpace"
|
|
130
|
-
<Param val="1" valType="num" updates="constant" name="contrast"
|
|
131
|
-
<Param val="False" valType="bool" updates="None" name="disabled"
|
|
132
|
-
<Param val="" valType="code" updates="
|
|
133
|
-
<Param val="" valType="
|
|
134
|
-
<Param val="
|
|
135
|
-
<Param val="
|
|
136
|
-
<Param val="
|
|
137
|
-
<Param val="
|
|
138
|
-
<Param val="
|
|
139
|
-
<Param val="
|
|
140
|
-
<Param val="
|
|
141
|
-
<Param val="
|
|
142
|
-
<Param val="" valType="
|
|
143
|
-
<Param val="
|
|
144
|
-
<Param val="
|
|
145
|
-
<Param val="
|
|
146
|
-
<Param val="" valType="
|
|
147
|
-
<Param val="
|
|
148
|
-
<Param val="
|
|
149
|
-
<Param val="
|
|
150
|
-
<Param val="" valType="
|
|
174
|
+
<TextComponent name="poslog" plugin="None">
|
|
175
|
+
<Param val="black" valType="str" updates="constant" name="color"/>
|
|
176
|
+
<Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
|
|
177
|
+
<Param val="1" valType="num" updates="constant" name="contrast"/>
|
|
178
|
+
<Param val="False" valType="bool" updates="None" name="disabled"/>
|
|
179
|
+
<Param val="False" valType="code" updates="constant" name="draggable"/>
|
|
180
|
+
<Param val="" valType="code" updates="None" name="durationEstim"/>
|
|
181
|
+
<Param val="" valType="str" updates="constant" name="flip"/>
|
|
182
|
+
<Param val="Arial" valType="str" updates="constant" name="font"/>
|
|
183
|
+
<Param val="LTR" valType="str" updates="None" name="languageStyle"/>
|
|
184
|
+
<Param val="0.05" valType="code" updates="constant" name="letterHeight"/>
|
|
185
|
+
<Param val="poslog" valType="code" updates="None" name="name"/>
|
|
186
|
+
<Param val="1" valType="code" updates="constant" name="opacity"/>
|
|
187
|
+
<Param val="0" valType="code" updates="constant" name="ori"/>
|
|
188
|
+
<Param val="stim.pos" valType="list" updates="set every frame" name="pos"/>
|
|
189
|
+
<Param val="True" valType="bool" updates="None" name="saveStartStop"/>
|
|
190
|
+
<Param val="" valType="code" updates="None" name="startEstim"/>
|
|
191
|
+
<Param val="time (s)" valType="str" updates="None" name="startType"/>
|
|
192
|
+
<Param val="0.0" valType="code" updates="None" name="startVal"/>
|
|
193
|
+
<Param val="duration (s)" valType="str" updates="None" name="stopType"/>
|
|
194
|
+
<Param val="" valType="code" updates="constant" name="stopVal"/>
|
|
195
|
+
<Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
|
|
196
|
+
<Param val="$f"pos: ({stim.pos[0]:.2f}, {stim.pos[1]:.2f})\nsize: ({stim.size[0]:.2f}, {stim.size[1]:.2f})\nunits: {stim.units}"" valType="extendedStr" updates="set every frame" name="text"/>
|
|
197
|
+
<Param val="from exp settings" valType="str" updates="None" name="units"/>
|
|
198
|
+
<Param val="" valType="code" updates="None" name="validator"/>
|
|
199
|
+
<Param val="" valType="code" updates="constant" name="wrapWidth"/>
|
|
151
200
|
</TextComponent>
|
|
152
201
|
</Routine>
|
|
153
202
|
</Routines>
|
|
154
203
|
<Flow>
|
|
155
|
-
<Routine name="rectMover"
|
|
204
|
+
<Routine name="rectMover"/>
|
|
156
205
|
</Flow>
|
|
157
|
-
</PsychoPy2experiment>
|
|
206
|
+
</PsychoPy2experiment>
|
|
@@ -25,7 +25,7 @@ logging.console.setLevel(logging.DEBUG)
|
|
|
25
25
|
runInfo = psychopy.info.RunTimeInfo(
|
|
26
26
|
# if you specify author and version here, it overrides the automatic detection of __author__ and __version__ in your script
|
|
27
27
|
# author=' < your name goes here, plus whatever you like, e.g., your lab or contact info > ',
|
|
28
|
-
# version="
|
|
28
|
+
# version="2025.2.0",
|
|
29
29
|
win=win, # # a psychopy.visual.Window() instance; None = default temp window used; False = no win, no win.flips()
|
|
30
30
|
refreshTest='grating', # # None, True, or 'grating' (eye-candy to avoid a blank screen)
|
|
31
31
|
verbose=True, # # True means report on everything
|
psychopy/devices/__init__.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
|
|
4
4
|
# Part of the PsychoPy library
|
|
5
|
-
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-
|
|
5
|
+
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-2025 Open Science Tools Ltd.
|
|
6
6
|
# Distributed under the terms of the GNU General Public License (GPL).
|
|
7
7
|
|
|
8
8
|
from psychopy.hardware.keyboard import Keyboard
|
psychopy/event.py
CHANGED
|
@@ -6,7 +6,7 @@ pygame to be installed).
|
|
|
6
6
|
See demo_mouse.py and i{demo_joystick.py} for examples
|
|
7
7
|
"""
|
|
8
8
|
# Part of the PsychoPy library
|
|
9
|
-
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-
|
|
9
|
+
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-2025 Open Science Tools Ltd.
|
|
10
10
|
# Distributed under the terms of the GNU General Public License (GPL).
|
|
11
11
|
|
|
12
12
|
# 01/2011 modified by Dave Britton to get mouse event timing
|
psychopy/exceptions.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
|
|
4
4
|
# Part of the PsychoPy library
|
|
5
|
-
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-
|
|
5
|
+
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-2025 Open Science Tools Ltd.
|
|
6
6
|
# Distributed under the terms of the GNU General Public License (GPL).
|
|
7
7
|
|
|
8
8
|
|
psychopy/experiment/__init__.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
|
|
4
4
|
# Part of the PsychoPy library
|
|
5
|
-
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-
|
|
5
|
+
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-2025 Open Science Tools Ltd.
|
|
6
6
|
# Distributed under the terms of the GNU General Public License (GPL).
|
|
7
7
|
|
|
8
8
|
"""Experiment classes:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
|
|
4
4
|
# Part of the PsychoPy library
|
|
5
|
-
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-
|
|
5
|
+
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-2025 Open Science Tools Ltd.
|
|
6
6
|
# Distributed under the terms of the GNU General Public License (GPL).
|
|
7
7
|
|
|
8
8
|
"""Experiment classes:
|
|
@@ -146,6 +146,9 @@ class Experiment:
|
|
|
146
146
|
self.requireImport(importName='keyboard',
|
|
147
147
|
importFrom='psychopy.hardware')
|
|
148
148
|
|
|
149
|
+
# what online resources are needed? (PsychoJS only)
|
|
150
|
+
self.requiredResources = []
|
|
151
|
+
|
|
149
152
|
_settingsComp = getComponents(fetchIcons=False)['SettingsComponent']
|
|
150
153
|
self.settings = _settingsComp(parentName='', exp=self)
|
|
151
154
|
# this will be the xml.dom.minidom.doc object for saving
|
|
@@ -172,6 +175,27 @@ class Experiment:
|
|
|
172
175
|
else:
|
|
173
176
|
# if neither, it's not the same
|
|
174
177
|
return False
|
|
178
|
+
|
|
179
|
+
def requireOnlineResource(self, url, name=None):
|
|
180
|
+
"""
|
|
181
|
+
Add a link to an online resource to be loaded at experiment start in PsychoJS.
|
|
182
|
+
|
|
183
|
+
Parameters
|
|
184
|
+
----------
|
|
185
|
+
url : str
|
|
186
|
+
Link to the necessary resource
|
|
187
|
+
name : str
|
|
188
|
+
Name with which to refer to the resource later in the experiment. Leave as None to use
|
|
189
|
+
the url as its name.
|
|
190
|
+
"""
|
|
191
|
+
# use url for name if none given
|
|
192
|
+
if name is None:
|
|
193
|
+
name = url
|
|
194
|
+
# add resource
|
|
195
|
+
self.requiredResources.append({
|
|
196
|
+
'name': name,
|
|
197
|
+
'rel': url,
|
|
198
|
+
})
|
|
175
199
|
|
|
176
200
|
def requirePsychopyLibs(self, libs=()):
|
|
177
201
|
"""Add a list of top-level psychopy libs that the experiment
|
|
@@ -720,9 +744,10 @@ class Experiment:
|
|
|
720
744
|
# don't warn people if we know it's OK (e.g. for params
|
|
721
745
|
# that have been removed
|
|
722
746
|
pass
|
|
723
|
-
elif componentNode is not None and componentNode.get("plugin") not in ("None", None):
|
|
724
|
-
#
|
|
725
|
-
|
|
747
|
+
elif componentNode is not None and componentNode.get("plugin", False) not in (False, "", "None", None):
|
|
748
|
+
# is param unrecognised because it's from a plugin?
|
|
749
|
+
params[name].categ = "Plugin"
|
|
750
|
+
params[name].plugin = componentNode.get("plugin", False)
|
|
726
751
|
elif paramNode.get('plugin', False):
|
|
727
752
|
# load plugin name if param is from a plugin
|
|
728
753
|
params[name].plugin = paramNode.get('plugin')
|
|
@@ -1173,10 +1198,6 @@ class Experiment:
|
|
|
1173
1198
|
else:
|
|
1174
1199
|
thisFile['rel'] = filePath
|
|
1175
1200
|
thisFile['abs'] = os.path.normpath(join(srcRoot, filePath))
|
|
1176
|
-
if "/" in filePath:
|
|
1177
|
-
thisFile['name'] = filePath.split("/")[-1]
|
|
1178
|
-
else:
|
|
1179
|
-
thisFile['name'] = filePath
|
|
1180
1201
|
if len(thisFile['abs']) <= 256 and os.path.isfile(thisFile['abs']):
|
|
1181
1202
|
return thisFile
|
|
1182
1203
|
|
|
@@ -1333,7 +1354,7 @@ class Experiment:
|
|
|
1333
1354
|
chosenResources.append(thisFile)
|
|
1334
1355
|
|
|
1335
1356
|
# Check for any resources not in experiment path
|
|
1336
|
-
resources = loopResources + compResources + chosenResources
|
|
1357
|
+
resources = loopResources + compResources + chosenResources + self.requiredResources
|
|
1337
1358
|
resources = [res for res in resources if res is not None]
|
|
1338
1359
|
for res in resources:
|
|
1339
1360
|
if res in list(ft.defaultStim):
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
|
|
4
4
|
# Part of the PsychoPy library
|
|
5
|
-
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-
|
|
5
|
+
# Copyright (C) 2002-2018 Jonathan Peirce (C) 2019-2025 Open Science Tools Ltd.
|
|
6
6
|
# Distributed under the terms of the GNU General Public License (GPL).
|
|
7
7
|
|
|
8
8
|
"""Extensible set of components for the PsychoPy Builder view.
|
|
@@ -64,11 +64,6 @@ def addComponent(compClass):
|
|
|
64
64
|
|
|
65
65
|
# check type and attributes of the class
|
|
66
66
|
if not issubclass(compClass, (BaseComponent, BaseVisualComponent)):
|
|
67
|
-
logging.warning(
|
|
68
|
-
"Component `{}` does not appear to be a subclass of "
|
|
69
|
-
"`psychopy.experiment.components._base.BaseComponent`. This will be skipped."
|
|
70
|
-
.format(compName)
|
|
71
|
-
)
|
|
72
67
|
return
|
|
73
68
|
elif not hasattr(compClass, 'categories'):
|
|
74
69
|
logging.warning(
|