I am using the builder interface for PsychoPy 3.1.2 on a Win 8.1 (Pro) OS.
I am trying to save a variable that is created within a routine using a code component to the datafile. The variable seems to be working as it controls when the routine ends. The experiment only freezes if I attempt to add this variable to the datafile. Within the ‘end routine’ box, I have tried using both:
thisExp.addData('clickSequence',clickSequence)
and
currentLoop.addData('clickSequence',clickSequence)
In both cases, I end up with the following error message:
Traceback (most recent call last):
File “C:\Users\Jen\Google Drive\Research\MemoryOnline - Copy\VS_Memory_Seq_Online - Copy_lastrun.py”, line 2347, in
thisExp.addData(‘clickSequence’,clickSequence)
File “C:\Program Files (x86)\PsychoPy3\lib\site-packages\psychopy\data\experiment.py”, line 216, in addData
value = copy.deepcopy(value)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 150, in deepcopy
y = copier(x, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 215, in _deepcopy_list
append(deepcopy(a, memo))
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 180, in deepcopy
y = _reconstruct(x, memo, *rv)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 280, in _reconstruct
state = deepcopy(state, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 150, in deepcopy
y = copier(x, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 240, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 180, in deepcopy
y = _reconstruct(x, memo, *rv)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 280, in _reconstruct
state = deepcopy(state, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 150, in deepcopy
y = copier(x, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 240, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 180, in deepcopy
y = _reconstruct(x, memo, *rv)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 280, in _reconstruct
state = deepcopy(state, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 150, in deepcopy
y = copier(x, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 240, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 180, in deepcopy
y = _reconstruct(x, memo, *rv)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 280, in _reconstruct
state = deepcopy(state, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 150, in deepcopy
y = copier(x, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 240, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 180, in deepcopy
y = _reconstruct(x, memo, *rv)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 280, in _reconstruct
state = deepcopy(state, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 150, in deepcopy
y = copier(x, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 240, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 180, in deepcopy
y = _reconstruct(x, memo, *rv)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 280, in _reconstruct
state = deepcopy(state, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 150, in deepcopy
y = copier(x, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 240, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 180, in deepcopy
y = _reconstruct(x, memo, *rv)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 280, in _reconstruct
state = deepcopy(state, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 150, in deepcopy
y = copier(x, memo)
File “C:\Program Files (x86)\PsychoPy3\lib\copy.py”, line 240, in _deepcopy_dict
The experiment freezes and crashes. I have been unable to find other reports of this on the forum. I am also planning to use this experiment on Pavlovia so am trying to keep code as simple as possible as I am not very good at translating it to JS. For info, here is the rest of the code component:
Begin routine:
clickSequence=[]
Each frame:
for square in [Sq1_3,Sq2_3,Sq3_3,Sq4_3,Sq5_3,Sq6_3,Sq7_3,Sq8_3,Sq9_3,Sq10_3,Sq11_3,Sq12_3,Sq13_3,Sq14_3,Sq15_3,Sq16_3]:
if mouse.isPressedIn(square):
if clickSequence==[]:
clickSequence.append(square)
elif square!=clickSequence[-1]:
clickSequence.append(square)
# all clicked?
if len(clickSequence) >= len(respSequence):
continueRoutine = False
End Routine:
thisExp.addData('clickSequence',clickSequence)
#determine if all items recalled, order doesn't matter
if list(set(clickSequence))==list(set(respSequence)):
correctCount=correctCount+1