Release 1.84.00

128 views
Skip to first unread message

Jon

unread,
May 13, 2016, 4:53:39 PM5/13/16
to psychopy-dev
Hi all,

I'm thinking it's about time we had a 1.84 release, don't you think? 
  - The OSF projects menu is much improved (and can now create a project on OSF with which to sync).
  - The dust seems to have settled after the refactoring project (actually there wasn't too much dust)

Are there other things I needed to get done, like bugs that you know needed fixing?
I haven't updated the changelog fully so if you know of something you changed/added that *will affect users* then do let me know asap

Otherwise I'll try and get a 1.84.00rc1 built next week

best wishes
Jon

Jeremy Gray

unread,
May 14, 2016, 10:06:43 AM5/14/16
to psycho...@googlegroups.com
A lot of people have been asking about word naming (and I've been slow to reply). If there are code issues (very well might be), it would be ideal if any needed fixes, additions, doc could make it into the next release. Not sure if I can get to all of it this coming week.

--Jeremy

--
You received this message because you are subscribed to the Google Groups "psychopy-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to psychopy-dev...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jeremy Gray

unread,
May 14, 2016, 10:09:43 AM5/14/16
to psycho...@googlegroups.com
Also, figuring out the pyo stuff would be good, including making sure we are shipping a version with the memory leak fixed (this was impacting movies when using pyo for sound). Let me know if I can help in some way.

--Jeremy

Jonathan Peirce

unread,
May 14, 2016, 11:02:49 AM5/14/16
to PsychoPy Developers
Pyo will be version 0.80 on win and Mac



This was sent from my phone. Apologies for brevity, typos and inappropriate auto-corrects

Hiroyuki Sogo

unread,
May 16, 2016, 12:42:18 AM5/16/16
to psychopy-dev
I'm working on updating translation. 
Popup menu of the Routine pane of the Builder is partially corrupted in the latest master branch.  I think I can fix this soon.

In addition, new "Projects" menu needs to be translated.


--
Hiroyuki



2016年5月14日土曜日 5時53分39秒 UTC+9 Jon:

Jonathan Peirce

unread,
May 16, 2016, 5:16:45 AM5/16/16
to psycho...@googlegroups.com


On 16/05/16 05:42, Hiroyuki Sogo wrote:
I'm working on updating translation. 
Popup menu of the Routine pane of the Builder is partially corrupted in the latest master branch.  I think I can fix this soon.

Not sure what happened there. Oli was doing some work to make routines rename-able but I don't think he touched the context menus for that - just the main menu items


In addition, new "Projects" menu needs to be translated.

Ah, yes, I'm afraid I've given you a fair bit of new text to translate there, in dialogs as well as in the menu. Sorry! ;-)
On the plus side I'm pretty much done with it now, so this is probably the right time to do the translations.

best wishes
Jon




2016年5月14日土曜日 5時53分39秒 UTC+9 Jon:
Hi all,

I'm thinking it's about time we had a 1.84 release, don't you think? 
  - The OSF projects menu is much improved (and can now create a project on OSF with which to sync).
  - The dust seems to have settled after the refactoring project (actually there wasn't too much dust)

Are there other things I needed to get done, like bugs that you know needed fixing?
I haven't updated the changelog fully so if you know of something you changed/added that *will affect users* then do let me know asap

Otherwise I'll try and get a 1.84.00rc1 built next week

best wishes
Jon

--
You received this message because you are subscribed to the Google Groups "psychopy-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to psychopy-dev...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
Jonathan Peirce
University of Nottingham

http://www.peirce.org.uk


This message and any attachment are intended solely for the addressee
and may contain confidential information. If you have received this
message in error, please send it back to me, and immediately delete it. 

Please do not use, copy or disclose the information contained in this
message or in any attachment.  Any views or opinions expressed by the
author of this email do not necessarily reflect the views of the
University of Nottingham.

This message has been checked for viruses but the contents of an
attachment may still contain software viruses which could damage your
computer system, you are advised to perform your own checks. Email
communications with the University of Nottingham may be monitored as
permitted by UK legislation.

Hiroyuki Sogo

unread,
May 16, 2016, 7:34:36 AM5/16/16
to psychopy-dev
I've sent a pull request for fixing context menu.
This fix works well on my Japanese Windows10 and Ubuntu 14.04LTS.

--
Hiroyuki
 

2016年5月16日月曜日 18時16分45秒 UTC+9 Jon:

Richard Höchenberger

unread,
May 18, 2016, 4:05:21 AM5/18/16
to psychopy-dev
I'd been working on some things (visual stimuli, staircases), but this all needs more testing still, so should probably not be included before 1.85 or so :)

Cheers,

    Richard

Michael MacAskill

unread,
May 18, 2016, 6:29:19 AM5/18/16
to psycho...@googlegroups.com
Hi All,

>
> On 18/05/2016, at 20:04, Richard Höchenberger <richard.ho...@gmail.com> wrote:
>
> I'd been working on some things (visual stimuli, staircases), but this all needs more testing still, so should probably not be included before 1.85 or so :)

There is also a bug which reared its head again on the user list a few days ago <https://groups.google.com/d/msg/psychopy-users/wawxyOHmSq8/8bxDk1nMBQAJ> and has been seen before:

Linking to a .csv (but not .xlsx) conditions file that contains blank cells will break the display of the flow panel in Builder, and prevent the experiment running. It can only be repaired by manually editing the .psyexp file to remove errant nan values. It seems to be due (again) to a quirk in the pandas csv reader. I think because it reads values into a numpy array, missing values become NaN rather than None (i.e. this preserves a single type for each data column, rather than mixing say, floating point values and None objects).

Jeremy has noted it back in March: <https://github.com/psychopy/psychopy/issues/1147>

It's probably a simple fix (e.g. maybe using pandas.DataFrame.fillna(value=None) after reading the condition file) but will be a day or two until I can look into it.

It is a pretty catastrophic consequence for a reasonably common situation (i.e. the Builder interface breaking just because of empty .csv cells). The workaround of using an xlsx file doesn't solve the issue once it has arisen, as a manual .psyexp file edit is also required.

So I'm thinking this should probably be addressed before the next release, or is that already too far along the road?

Cheers,

Mike



--
Michael R. MacAskill, PhD 66 Stewart St
Research Director, Christchurch 8011
New Zealand Brain Research Institute NEW ZEALAND

Senior Research Fellow, michael....@nzbri.org
Te Whare Wānanga o Otāgo, Otautahi Ph: +64 3 3786 072
University of Otago, Christchurch http://www.nzbri.org/macaskill

Jonathan Peirce

unread,
May 18, 2016, 6:31:30 AM5/18/16
to psycho...@googlegroups.com


On 18/05/16 11:22, Michael MacAskill wrote:
> Hi All,
>
>> On 18/05/2016, at 20:04, Richard Höchenberger <richard.ho...@gmail.com> wrote:
>>
>> I'd been working on some things (visual stimuli, staircases), but this all needs more testing still, so should probably not be included before 1.85 or so :)
> There is also a bug which reared its head again on the user list a few days ago <https://groups.google.com/d/msg/psychopy-users/wawxyOHmSq8/8bxDk1nMBQAJ> and has been seen before:
>
> Linking to a .csv (but not .xlsx) conditions file that contains blank cells will break the display of the flow panel in Builder, and prevent the experiment running. It can only be repaired by manually editing the .psyexp file to remove errant nan values. It seems to be due (again) to a quirk in the pandas csv reader. I think because it reads values into a numpy array, missing values become NaN rather than None (i.e. this preserves a single type for each data column, rather than mixing say, floating point values and None objects).
>
> Jeremy has noted it back in March: <https://github.com/psychopy/psychopy/issues/1147>
>
> It's probably a simple fix (e.g. maybe using pandas.DataFrame.fillna(value=None) after reading the condition file) but will be a day or two until I can look into it.
>
> It is a pretty catastrophic consequence for a reasonably common situation (i.e. the Builder interface breaking just because of empty .csv cells). The workaround of using an xlsx file doesn't solve the issue once it has arisen, as a manual .psyexp file edit is also required.
According to the pandas docs this is set to None by default while
reading the csv:
http://pandas.pydata.org/pandas-docs/stable/io.html#na-and-missing-data-handling
but I'll look into it.

cheers
Jon

> So I'm thinking this should probably be addressed before the next release, or is that already too far along the road?
>
> Cheers,
>
> Mike
>
>
>

--

Michael MacAskill

unread,
May 18, 2016, 6:38:42 AM5/18/16
to psycho...@googlegroups.com

> On 18/05/2016, at 22:31, Jonathan Peirce <jon.p...@gmail.com> wrote:
>
> According to the pandas docs this is set to None by default while reading the csv:
> http://pandas.pydata.org/pandas-docs/stable/io.html#na-and-missing-data-handling
> but I'll look into it.

I thought that initially too, but on re-reading, I think that refers to specifying non-standard custom values that should get interpreted as NaN (e.g. if one wanted -9999 to be regarded as NaN, one would provide that as a value for the 'na_values' argument.) It doesn't change the missing value result itself (which remains NaN).

So I *think* we can intercept the NaN values only after importing.

Jeremy Gray

unread,
May 18, 2016, 7:21:37 AM5/18/16
to psycho...@googlegroups.com
Also, just for information at this point, probably not for including in the 1.84 release: pyglet (actually dangillet) has made a lot of progress tracking down the memory leak for text, and appears to have a fix for both linux and windows. (mac seems to be ok, I thought it had issues too but probably not.) It is probably premature to include the patches in PsychoPy since they are not officially part of pyglet yet. But just putting this out there.

https://bitbucket.org/pyglet/pyglet/issues/66/memory-leak-in-fonttext -- look for dangillet's comments and link(s) down the bottom.

--Jeremy

Richard Höchenberger

unread,
May 18, 2016, 7:22:12 AM5/18/16
to psychopy-dev
It could be perfectly fine to have a set of 'empty' conditions. So
what we should do is, force users to specify a column as
'condition-identifier', which must never be empty; and if it is, drop
the entire row, since it's not a condition then, but just an ordinary
empty row.

Richard

Jonathan Peirce

unread,
May 18, 2016, 7:33:05 AM5/18/16
to psycho...@googlegroups.com
Actually I am inclined to include this since it's affected auite a few people. Will apply these patches to my own pyglet installs (but can't do anything about the linux one I guess).

Jeremy this one looks like it does affect OSX:
    https://bitbucket.org/dangillet/pyglet/commits/930ec395c20c3aba89a7f40af053213c66e8d361?at=default

cheers
Jon
-- 
Jonathan Peirce
Nottingham Visual Neuroscience

http://www.peirce.org.uk


This message and any attachment are intended solely for the addressee
and may contain confidential information. If you have received this
message in error, please send it back to me, and immediately delete it. 

Please do not use, copy or disclose the information contained in this
message or in any attachment.  Any views or opinions expressed by the
author of this email do not necessarily reflect the views of the
University of Nottingham.

This message has been checked for viruses but the contents of an
attachment may still contain software viruses which could damage your
computer system, you are advised to perform your own checks. Email
communications with the University of Nottingham may be monitored as
permitted by UK legislation.

Richard Höchenberger

unread,
May 18, 2016, 7:45:12 AM5/18/16
to psychopy-dev
pandas.read_csv() also has a skip_blank_lines argument, don't know if
we're currently using this.

As for NaNs generally, we probably want something like
DataFrame.where((pd.notnull(df)), None):

----------
In [33]: import pandas as pd

In [34]: import numpy as np

In [35]: df = pd.DataFrame({'col_a': [1, 2, np.nan],
....: 'col_b': [3, np.nan, 4]})

In [36]: df
Out[36]:
col_a col_b
0 1.0 3.0
1 2.0 NaN
2 NaN 4.0

In [37]: df = df.where((pd.notnull(df)), None)

In [38]: df
Out[38]:
col_a col_b
0 1 3
1 2 None
2 None 4

----------

Richard

Richard Höchenberger

unread,
May 18, 2016, 8:01:31 AM5/18/16
to psychopy-dev
On Wed, May 18, 2016 at 1:44 PM, Richard Höchenberger
<richard.ho...@gmail.com> wrote:
> In [37]: df = df.where((pd.notnull(df)), None)

Just figured that notnull() is also a DataFrame method AND supports
the inplace keyword with recent pandas versions, so one could rewrite
the expression as:

df.where(df.notnull(), None, inplace=True)

:)

Oliver Clark

unread,
May 21, 2016, 9:14:38 AM5/21/16
to psychopy-dev
Had me worried a bit there - no I didn't touch the context menu for the routine panel - just the flow context windows and main menu.

Oliver Clark

unread,
May 23, 2016, 5:46:35 AM5/23/16
to psychopy-dev
Is anyone else having problems loading experiments on Mac OSX El Cap?  The running icon appears but not text box.  There are no error messages at all.

BW

Oli

Jonathan Peirce

unread,
May 23, 2016, 7:05:19 AM5/23/16
to psycho...@googlegroups.com
Just with this test release or in general?
-- 
Jonathan Peirce
Nottingham Visual Neuroscience

http://www.peirce.org.uk

Oliver Clark

unread,
May 23, 2016, 8:16:29 AM5/23/16
to psychopy-dev
I can only confirm with the test release - I'm having audio API problems on the current GIT version (still...)

Oliver Clark

unread,
May 23, 2016, 8:21:53 AM5/23/16
to psychopy-dev
Also - OSF wont log in (error message attached).  Are issues for the standalone test version best posted here, or should I be adding issues to GIT?

Cheers,

OLi
OSFError.rtf

Jon Peirce

unread,
May 23, 2016, 4:42:25 PM5/23/16
to psycho...@googlegroups.com
Could you expand the phrase "having problems loading experiments"? You're really not giving us much chance to help here :-/

Oliver Clark

unread,
May 24, 2016, 2:00:15 AM5/24/16
to psychopy-dev
Sorry Jon! I guess the answer is no-one else is having problems running.

I mean that when I press the green button nothing happens - the Psychopy run icon pops up but no expoinfo dialogue box. the red kill button still works however so it doesn't seem to be a crash.

This occurs in both coder and builder. Coder will run basic scripts (hello world etc). I tried getting rid of the dlg part of the script in case it was related to an earlier issue but no joy.

Oliver Clark

unread,
May 24, 2016, 4:42:33 AM5/24/16
to psychopy-dev
psychopy2480.mov

Oliver Clark

unread,
May 24, 2016, 6:03:56 AM5/24/16
to psychopy-dev
Hi all,

I've done some proper debugging now and have narrowed my problem down to the gui module.

Printing to the console stops when GUI is imported so it does not seem to be the calling of GUI.dlg that is the issue here.

Furthermore, experiments will run when I comment out gui from the importing phase and the dlg object.  I am sorry that I can provide no further information about this, as I said earlier there are no error messages.

Strangely however, using the shell to import gui and create a dlg box works fine.

On a side note, when the experiment does run the window is confined to a quarter of the screen with the other three quarters flashing very quickly(see video here https://www.dropbox.com/s/mcvqou84nkoh6ao/Psychopy2b.mov?dl=0)

Jon Peirce

unread,
May 24, 2016, 6:36:24 AM5/24/16
to psycho...@googlegroups.com
Thanks. I'll look into those issues
Jon
--
You received this message because you are subscribed to the Google Groups "psychopy-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to psychopy-dev...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Oliver Clark

unread,
May 24, 2016, 6:59:50 AM5/24/16
to psychopy-dev
Great - a further narrowing is that when winType is set to pygame the window flashing issue vanishes.

Sol Simpson

unread,
May 24, 2016, 11:35:03 AM5/24/16
to psychopy-dev
I've been meaning to ask / comment about this, perhaps it is related. 

Currently psychopy,gui imports  either qtgui.* or wxgui.*.  I think that Dlg and DlgFromDict are the same in both implementations; that was the intent anyhow. 
Beyond this though, qtgui and wxgui do not have the exact same set of dialog classes / functions and I am not sure if classes of the same name take exactly the same args.

I think qtgui and wxgui need to have 100% identical user level api's for things to work as was/is intended when qtgui and wxgui were put into a common gui module.

Thanks.

Jon Peirce

unread,
May 24, 2016, 12:44:12 PM5/24/16
to psycho...@googlegroups.com
The demo now shows you can choose one or other explicitly with
    from psychopy.gui import qtgui as gui
    from psychopy.gui import wxgui as gui
or just get a default:
    from psychopy import gui

I think I removed the most visible difference between them (the fact that qtgui.Dlg returned data from show() whereas my wxgui.Dlg expected you to extract this yourself from dlg.data). I changed wxgui to do that as well now. I also removed the deprecation warning that qtgui.Dlg.show() will be removed in favour of display(). I don't want that to happen because of compatibility with wxgui. show() works on both and has been around for years so lets not change it.
https://github.com/psychopy/psychopy/commit/2a112efa365b4eec4d1a9c69f90173535f34be20

Otherwise I'm not sure of further diffs but let me know if you're aware of any. FYI the online docs are now being created from qtgui docstrings

cheers
Jon
--
You received this message because you are subscribed to the Google Groups "psychopy-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to psychopy-dev...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Oliver Clark

unread,
May 26, 2016, 5:44:18 AM5/26/16
to psychopy-dev
Since updating to 1.84ORC2 I have been unable to run the ioHub Eyetracking demo because of a missing objc module.  I moved the folder over from a previous release into my Enthought Site-Packages but it is saying that the module has the wrong architecture:

    import objc._objc as _objc
ImportError: dlopen(/Users/oliverclark/Library/Enthought/Canopy_32bit/User/lib/python2.7/site-packages/objc/_objc.so, 2): no suitable image found.  Did find:
/Users/oliverclark/Library/Enthought/Canopy_32bit/User/lib/python2.7/site-packages/objc/_objc.so: mach-o, but wrong architecture

I am unsure if this is my Python dist or a bug with the latest Psychopy so I've dropped this here.

Cheers,

Oli

Jon

unread,
May 31, 2016, 6:40:18 AM5/31/16
to psychopy-dev
OK, this one I have tracked down. I upgraded the packaged wxPython to 3.0.2 and that appears to clash with pyglet. It's fine if we import gui before visual not freezes if pyglet gets imported first.

I'll drop the mac packaged wxpython down to 3.0.1 and lets keep our fingers crossed that the 3.0.3 release (which is the "phoenix" wx rewritten from scratch over several years) gets rid of the problem. Right now that crashes out on me while loading the app and I can't be bothered to work out why.

best wishes
Jon

Hiroyuki Sogo

unread,
Jun 3, 2016, 6:19:09 AM6/3/16
to psychopy-dev
I have some trouble in using "Projects" (Ubuntu 14.04LTS, PsychoPy 1.84.0rc3 with pyosf 1.0.4).

I made my test project on OSF website (https://osf.io/cpzyt/) and tried to sync from PsychoPy.
On Sync dialog, I input "TestProject" to "Name (for PsychoPyuse)" edit box and set "/home/hiroyuki/Desktop/testproject" as the local directory. When I pressed "Sync Now" button, I got following warning messages.

23.7645 WARNING No proj file: /home/hiroyuki/.psychopy2/projects/None.psyproj
23.7645 WARNING Project file failed to load a root_path for the local files and none was provided
23.7651 WARNING Project file failed to load a root_path for the local files and none was provided
40.1587 WARNING Project file failed to load a root_path for the local files and none was provided

"None.psyproj" was created in /home/hiroyuki/.psychopy2/projects, and contents of my project were copied to /home/hiroyuki/Deskto/testproject". On the "Open" submenu of the "Projects" menu, "cpzyt:" was appeared. I could edit the copied files and synchronize it.


Then, when I closed PsychoPy, I got following error message.

Exception AttributeError: "'NoneType' object has no attribute 'path'" in <bound method Project.__del__ of Project(/home/hiroyuki/.psychopy2/projects/None.psyproj)> ignored
Exception AttributeError: "'NoneType' object has no attribute 'path'" in <bound method Project.__del__ of Project(/home/hiroyuki/.psychopy2/projects/None.psyproj)> ignored

Next time I started PsychoPy, I found that item of the "Open" submenu of the "Projects" menu had changed to "cpzyt: TestProject".


Synchronization seemed to work fine, but I got "'NoneType' object has no attribute 'path'" error (the same as shown above) every time when I closed PsychoPy.  Removing None.psyproj from /home/hiroyuki/.psychopy2/projects, the error message disappeared.

I'm not sure what is expected result when I pressed "Sync Now" at the first time. I guess that "None.psyproj" would be unexpected file name. What is the expected name of this file?

--
Hiroyuki

Jonathan Peirce

unread,
Jun 3, 2016, 7:52:59 AM6/3/16
to psycho...@googlegroups.com
Thanks Hiroyuki,

The error message in the __del__ function:
This is not a real problem but is ugly. The problem comes about because we make a call to the os.path module to save a file during the __del__ method. In this case the __del__ has been executed as Python shuts down but occurs after the os module has been garbage collected so os.path can't be used. What we need to do is set the project to be garbage collected (by setting app.project=None) before/while the application shuts down so that by the time Python itself closes it won't try to call. I've just submitted a pull request (to myself) that I think will fix the message.
https://github.com/psychopy/psychopy/pull/1190
The filename being called None.psyproj is more annnoying and needs fixing:
The name you gave it (TestProject) should have been applied as the filename (/home/hiroyuki/.psychopy2/projects/TestProject.psyproj) as well as being stored within the file. It sounds like in your case it only got stored inside the file (which is why it shows up correctly in the projects menu). My guess is that PsychoPy had set a filename before you had inserted on project name and PsychoPy failed to update it?
thanks for your help with this
Jon
--
You received this message because you are subscribed to the Google Groups "psychopy-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to psychopy-dev...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
Jonathan Peirce
University of Nottingham

http://www.peirce.org.uk

Hiroyuki Sogo

unread,
Jun 3, 2016, 12:25:00 PM6/3/16
to psychopy-dev
Jon, than you for quick reply.

Adding following three lines to ProjectFrame.updateProjectFields(), name of .psyproj file is updated. However, None.psyproj is left in the projects folder.

    def updateProjectFields(self):                                       # line 855
       
if not self.project:
           
self.project = pyosf.Project(osf = self.OSFproject)
       
self.project.name = self.nameCtrl.GetValue()
       
self.project.username = self.OSFproject.session.username
       
self.project.project_id = self.OSFproject.id
        projPath
= "%s/%s.psyproj" % (projectsFolder, self.project.name) # add
       
self.project.project_file = projPath                             # add
       
self.project.save()                                              # add
        key
= projectCatalog.addFile(self.project.project_file)
        projHistory
.AddFileToHistory(key)

None.psyproj is created in ProjectFrame.setProject() (line 782 of projects.py)

            if localProj is None:  # create a project for it
                projPath
= "%s/%s.psyproj" % (projectsFolder, name)
                localProj
= pyosf.Project(project_file=projPath, osf=project)
                localProj
.save()   # <-------------------------------------- line 782
                key
= projectCatalog.addFile(projPath)
                projHistory
.AddFileToHistory(key)


setProject() is called when ProjectFrame object is created in SearchFrame.onSyncButton() (lines 493-494, see below). Because 'name' parameter is not given here, value of 'name' parameter is always None. 

        projFrame = ProjectFrame(parent=self.app, id=-1,
                                 title
=self.currentOSFProject.title)

Commenting out lines 782-784, None.psyproj is not created.  But I'm not sure if there is a better way.

--
Hiroyuki


2016年6月3日金曜日 20時52分59秒 UTC+9 Jon:

Hiroyuki Sogo

unread,
Jun 10, 2016, 11:11:26 AM6/10/16
to psychopy-dev
I've committed a fix for None.proj problem.
Please examine my latest commit.
The following are the modifications.

1. Project ID is used as the local project name of project if no local project name is provided.
2. Autosave is set to be False to avoid creating unnecessary project file when the Sync dialog is closed before synchronization is performed.
3. Path to the project file is updated and saved when "Sync Now" button is pressed. Autosave is set to be True at the same time.

I'll send pull request if there is no problem.

--
Hiroyuki


2016年6月4日土曜日 1時25分00秒 UTC+9 Hiroyuki Sogo:
Reply all
Reply to author
Forward
0 new messages