psychopy 2024.1.1__py3-none-any.whl → 2024.1.3__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/__init__.py +2 -2
- psychopy/alerts/_alerts.py +6 -2
- psychopy/alerts/alertsCatalogue/alertmsg.py +15 -0
- psychopy/app/builder/dialogs/paramCtrls.py +4 -2
- psychopy/app/builder/localizedStrings.py +16 -4
- psychopy/app/locale/ar_001/LC_MESSAGE/messages.mo +0 -0
- 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/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_ES/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/fa_IR/LC_MESSAGE/messages.mo +0 -0
- 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/he_IL/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/hi_IN/LC_MESSAGE/messages.mo +0 -0
- 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/ja_JP/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ja_JP/LC_MESSAGE/messages.po +3548 -5422
- 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/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/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/tr_TR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/zh_CN/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/zh_TW/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/plugin_manager/plugins.py +1 -1
- psychopy/app/preferencesDlg.py +2 -1
- psychopy/demos/builder/Hardware/EEG_parallel_component/EEG_triggers_parallel_comp.psyexp +552 -550
- psychopy/demos/builder/Hardware/EEG_serial_component/EEG_triggers_serial_comp.psyexp +572 -570
- psychopy/demos/coder/timing/timeByFrames.py +7 -1
- psychopy/experiment/components/_base.py +122 -0
- psychopy/experiment/components/aperture/__init__.py +6 -2
- psychopy/experiment/components/brush/__init__.py +3 -1
- psychopy/experiment/components/button/__init__.py +6 -2
- psychopy/experiment/components/buttonBox/__init__.py +2 -1
- psychopy/experiment/components/camera/__init__.py +13 -0
- psychopy/experiment/components/code/__init__.py +34 -1
- psychopy/experiment/components/form/formItems.xltx +0 -0
- psychopy/experiment/components/mouse/__init__.py +12 -0
- psychopy/experiment/components/polygon/__init__.py +14 -3
- psychopy/experiment/components/settings/__init__.py +4 -1
- psychopy/experiment/components/sound/__init__.py +1 -1
- psychopy/experiment/components/text/__init__.py +1 -1
- psychopy/experiment/params.py +17 -0
- psychopy/experiment/routines/_base.py +122 -0
- psychopy/experiment/routines/counterbalance/__init__.py +1 -1
- psychopy/hardware/button.py +4 -3
- psychopy/hardware/camera/__init__.py +6 -0
- psychopy/hardware/keyboard.py +8 -3
- psychopy/iohub/devices/eyetracker/hw/gazepoint/__init__.py +1 -1
- psychopy/iohub/devices/eyetracker/hw/gazepoint/gp3/__init__.py +1 -1
- psychopy/iohub/devices/eyetracker/hw/gazepoint/gp3/calibration.py +1 -1
- psychopy/iohub/devices/eyetracker/hw/gazepoint/gp3/eyetracker.py +1 -1
- psychopy/localization/generateTranslationTemplate.py +45 -19
- psychopy/localization/messages.pot +5049 -3418
- psychopy/preferences/Darwin.spec +2 -0
- psychopy/preferences/FreeBSD.spec +2 -0
- psychopy/preferences/Linux.spec +2 -0
- psychopy/preferences/Windows.spec +2 -0
- psychopy/preferences/baseNoArch.spec +2 -0
- psychopy/preferences/generateHints.py +2 -1
- psychopy/preferences/hints.py +118 -97
- psychopy/tests/test_experiment/test_components/__init__.py +1 -1
- psychopy/tests/test_experiment/test_components/{test_ButtonBox.py → test_ButtonBoxComponent.py} +9 -27
- psychopy/tests/test_experiment/test_components/{test_Code.py → test_CodeComponent.py} +8 -20
- psychopy/tests/test_experiment/test_components/test_GratingComponent.py +7 -0
- psychopy/tests/test_experiment/test_components/test_ImageComponent.py +8 -0
- psychopy/tests/test_experiment/test_components/{test_Mouse.py → test_MouseComponent.py} +44 -57
- psychopy/tests/test_experiment/test_components/{test_Polygon.py → test_PolygonComponent.py} +9 -25
- psychopy/tests/test_experiment/test_components/{test_ResourceManager.py → test_ResourceManagerComponent.py} +3 -13
- psychopy/tests/test_experiment/test_components/{test_Settings.py → test_SettingsComponent.py} +1 -3
- psychopy/tests/test_experiment/test_components/{test_Static.py → test_StaticComponent.py} +3 -12
- psychopy/tests/test_experiment/test_components/test_all_components.py +8 -66
- psychopy/tests/test_experiment/test_components/test_base_components.py +212 -125
- psychopy/tools/fontmanager.py +1 -1
- psychopy/tools/versionchooser.py +1 -1
- psychopy/visual/noise.py +9 -0
- psychopy/visual/radial.py +8 -0
- psychopy/visual/secondorder.py +9 -0
- psychopy/visual/textbox2/textbox2.py +19 -21
- {psychopy-2024.1.1.dist-info → psychopy-2024.1.3.dist-info}/METADATA +1 -1
- {psychopy-2024.1.1.dist-info → psychopy-2024.1.3.dist-info}/RECORD +95 -66
- {psychopy-2024.1.1.dist-info → psychopy-2024.1.3.dist-info}/WHEEL +1 -1
- psychopy/tests/test_experiment/test_components/test_Image.py +0 -24
- {psychopy-2024.1.1.dist-info → psychopy-2024.1.3.dist-info}/entry_points.txt +0 -0
- {psychopy-2024.1.1.dist-info → psychopy-2024.1.3.dist-info}/licenses/AUTHORS.md +0 -0
- {psychopy-2024.1.1.dist-info → psychopy-2024.1.3.dist-info}/licenses/LICENSE +0 -0
psychopy/__init__.py
CHANGED
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
import os
|
|
13
13
|
import sys
|
|
14
14
|
|
|
15
|
-
__version__ = '2024.1.
|
|
15
|
+
__version__ = '2024.1.3'
|
|
16
16
|
__license__ = 'GPL v3'
|
|
17
17
|
__author__ = 'Open Science Tools Ltd'
|
|
18
18
|
__author_email__ = 'support@opensciencetools.org'
|
|
19
19
|
__maintainer_email__ = 'support@opensciencetools.org'
|
|
20
20
|
__url__ = 'https://www.psychopy.org/'
|
|
21
21
|
__download_url__ = 'https://github.com/psychopy/psychopy/releases/'
|
|
22
|
-
__git_sha__ = '
|
|
22
|
+
__git_sha__ = 'a2e6ccdec'
|
|
23
23
|
__build_platform__ = 'n/a'
|
|
24
24
|
|
|
25
25
|
__all__ = ["gui", "misc", "visual", "core",
|
psychopy/alerts/_alerts.py
CHANGED
|
@@ -118,10 +118,14 @@ class AlertEntry:
|
|
|
118
118
|
else:
|
|
119
119
|
self.name = None
|
|
120
120
|
|
|
121
|
+
# _translate(catalog.alert[code]['msg']) works, but string literals
|
|
122
|
+
# in _translate() (i.e., 'msg' in this case) cause false detection
|
|
123
|
+
# by pybabel.
|
|
124
|
+
msg = catalog.alert[code]['msg']
|
|
121
125
|
if strFields:
|
|
122
|
-
self.msg = _translate(
|
|
126
|
+
self.msg = _translate(msg).format(**strFields)
|
|
123
127
|
else:
|
|
124
|
-
self.msg = _translate(
|
|
128
|
+
self.msg = _translate(msg)
|
|
125
129
|
|
|
126
130
|
if trace:
|
|
127
131
|
self.trace = ''.join(traceback.format_exception(
|
|
@@ -47,6 +47,10 @@ _translate(
|
|
|
47
47
|
_translate(
|
|
48
48
|
"Component {component} has stop time set as a duration, but doesn't have a start time")
|
|
49
49
|
|
|
50
|
+
# Alert 4125
|
|
51
|
+
_translate(
|
|
52
|
+
"Microphone component `{name}` given blank stop time, using max duration allowed by buffer size ({stopVal}s).")
|
|
53
|
+
|
|
50
54
|
# Alert 4205
|
|
51
55
|
_translate(
|
|
52
56
|
"Python Syntax Error in '{codeTab}' tab. See '{code}' on line number {lineNumber} of the '{codeTab}' tab.")
|
|
@@ -127,6 +131,13 @@ _translate(
|
|
|
127
131
|
_translate(
|
|
128
132
|
"Chosen transcriber '{engine}' requires an API key, please supply one in Preferences.")
|
|
129
133
|
|
|
134
|
+
# Alert 4705
|
|
135
|
+
_translate(
|
|
136
|
+
"Column name '{param}' in conditions file already exists as a variable in this experiment ({category}).")
|
|
137
|
+
|
|
138
|
+
# Alert 4710
|
|
139
|
+
_translate("Column name '{param}' is likely to cause name clashes. {msg}.")
|
|
140
|
+
|
|
130
141
|
# Alert 5055
|
|
131
142
|
_translate(
|
|
132
143
|
"Device parameter of microphone component \"{name}\" will not be used online.")
|
|
@@ -135,6 +146,10 @@ _translate(
|
|
|
135
146
|
_translate(
|
|
136
147
|
"The file you are attempting to run does not seem to exist, the full path supplied to Runner was {path}")
|
|
137
148
|
|
|
149
|
+
# Alert 7105
|
|
150
|
+
_translate(
|
|
151
|
+
"Component {name} comes from the plugin {plugin}, which is either not installed or not activated.")
|
|
152
|
+
|
|
138
153
|
# Alert 8105
|
|
139
154
|
_translate(
|
|
140
155
|
"Color space attribute `.{colorSpaceAttrib}` is no longer in use, as colors are no longer tied to one space.")
|
|
@@ -362,9 +362,9 @@ class ChoiceCtrl(wx.Choice, _ValidatorMixin, _HideMixin):
|
|
|
362
362
|
_labels = {}
|
|
363
363
|
for i, value in enumerate(choices):
|
|
364
364
|
if i < len(labels):
|
|
365
|
-
_labels[value] = labels[i]
|
|
365
|
+
_labels[value] = _translate(labels[i]) if labels[i] != '' else ''
|
|
366
366
|
else:
|
|
367
|
-
_labels[value] = value
|
|
367
|
+
_labels[value] = _translate(value) if value != '' else ''
|
|
368
368
|
labels = _labels
|
|
369
369
|
# store labels and choices
|
|
370
370
|
self.labels = labels
|
|
@@ -995,6 +995,8 @@ class TableCtrl(wx.TextCtrl, _ValidatorMixin, _HideMixin, _FileMixin):
|
|
|
995
995
|
thisType = frame.component.type
|
|
996
996
|
elif hasattr(frame, "routine"):
|
|
997
997
|
thisType = frame.routine.type
|
|
998
|
+
elif hasattr(frame, "type"):
|
|
999
|
+
thisType = frame.type
|
|
998
1000
|
else:
|
|
999
1001
|
thisType = "None"
|
|
1000
1002
|
# open type specific template, or blank
|
|
@@ -26,6 +26,10 @@ _localizedCategories = {
|
|
|
26
26
|
'Dots': _translate('Dots'),
|
|
27
27
|
'Grating': _translate('Grating'),
|
|
28
28
|
'Advanced': _translate('Advanced'),
|
|
29
|
+
'Favorites': _translate('Favorites'),
|
|
30
|
+
'Stimuli': _translate('Stimuli'),
|
|
31
|
+
'Responses': _translate('Responses'),
|
|
32
|
+
'I/O': _translate('I/O'),
|
|
29
33
|
'Custom': _translate('Custom'),
|
|
30
34
|
'Carrier': _translate('Carrier'),
|
|
31
35
|
'Envelope': _translate('Envelope'),
|
|
@@ -41,7 +45,8 @@ _localizedCategories = {
|
|
|
41
45
|
'Animation':_translate('Animation'),
|
|
42
46
|
'Transcription':_translate('Transcription'),
|
|
43
47
|
'Timing':_translate('Timing'),
|
|
44
|
-
'Playback':_translate('Playback')
|
|
48
|
+
'Playback':_translate('Playback'),
|
|
49
|
+
'Window':_translate('Window')
|
|
45
50
|
}
|
|
46
51
|
|
|
47
52
|
_localizedDialogs = {
|
|
@@ -86,6 +91,11 @@ _localizedDialogs = {
|
|
|
86
91
|
'pix': 'pix', 'deg': 'deg', 'cm': 'cm',
|
|
87
92
|
'norm': 'norm', 'height': 'height',
|
|
88
93
|
'degFlat': 'degFlat', 'degFlatPos':'degFlatPos',
|
|
94
|
+
# background image:
|
|
95
|
+
'cover':_translate('cover'),
|
|
96
|
+
'contain':_translate('contain'),
|
|
97
|
+
'fill':_translate('fill'),
|
|
98
|
+
'scale-down':_translate('scale-down'),
|
|
89
99
|
# anchor
|
|
90
100
|
'center': _translate('center'),
|
|
91
101
|
'top-center': _translate('top-center'),
|
|
@@ -107,7 +117,7 @@ _localizedDialogs = {
|
|
|
107
117
|
'add': _translate('add'),
|
|
108
118
|
'avg': _translate('average'),
|
|
109
119
|
'average (no FBO)': _translate('average (no FBO)'), # blend mode
|
|
110
|
-
'use prefs': _translate('use
|
|
120
|
+
'use prefs': _translate('use prefs'),
|
|
111
121
|
'on Sync': _translate('on Sync'), # export HTML
|
|
112
122
|
'on Save': _translate('on Save'),
|
|
113
123
|
'manually': _translate('manually'),
|
|
@@ -123,6 +133,9 @@ _localizedDialogs = {
|
|
|
123
133
|
'data': _translate('data'),
|
|
124
134
|
'warning': _translate('warning'),
|
|
125
135
|
'error': _translate('error'),
|
|
136
|
+
# Clock format:
|
|
137
|
+
'Experiment start':_translate('Experiment start'),
|
|
138
|
+
'Wall clock':_translate('Wall clock'),
|
|
126
139
|
# Experiment info dialog:
|
|
127
140
|
'Field': _translate('Field'),
|
|
128
141
|
'Default': _translate('Default'),
|
|
@@ -155,6 +168,7 @@ _localizedDialogs = {
|
|
|
155
168
|
# Form
|
|
156
169
|
'rows': _translate('rows'),
|
|
157
170
|
'columns': _translate('columns'),
|
|
171
|
+
'custom...': _translate('custom...'),
|
|
158
172
|
# Variable component
|
|
159
173
|
'first': _translate('first'),
|
|
160
174
|
'last': _translate('last'),
|
|
@@ -199,8 +213,6 @@ _localizedDialogs = {
|
|
|
199
213
|
'visible': _translate('visible'),
|
|
200
214
|
'scroll': _translate('scroll'),
|
|
201
215
|
'hidden': _translate('hidden'),
|
|
202
|
-
# Form
|
|
203
|
-
'custom...': _translate('custom...')
|
|
204
216
|
}
|
|
205
217
|
|
|
206
218
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|