[GRASS-dev] [GRASS GIS] #630: "Mapset Access" broken (wxpython)

William Kyngesburye woklist at kyngchaos.com
Sun Jun 14 13:53:07 EDT 2009


Ah.  Someone else just mentioned this to me offlist, though they only  
had the problem in RC5, not RC4.  I couldn't get that exact problem to  
happen for me, but it would hang the GUI when I tried this for a  
location with many mapsets.

I quoted your email on that bug report, and added my info.

On Jun 14, 2009, at 12:08 PM, Cline, Royce L. wrote:

> On OS X with 6.4RC4 and RC5 when using Config->GIS Working
> Environment->Mapset Access I get the following error:
>
> Sun Jun 14 11:29:28 2009) Command finished (0 sec)
> Traceback (most recent call last):
>  File
> "/Applications/GRASS-6.4.app/Contents/MacOS/etc/wxpyt
> hon/wxgui.py", line
> 366, in OnMapsets
>
> dlg = preferences.MapsetAccess(parent=self,
> id=wx.ID_ANY)
>  File
> "/Applications/GRASS-6.4.app/Contents/MacOS/etc/wxpyt
> hon/gui_modules/prefer
> ences.py", line 1732, in __init__
>
> self.mapsetlb.LoadData(self.all_mapsets)
>
> File
> "/Applications/GRASS-6.4.app/Contents/MacOS/etc/wxpyt
> hon/gui_modules/prefer
> ences.py", line 1811, in LoadData
>
> stat_info =
> os.stat(mapsetPath)
> OSError
> :
> [Errno 2] No such file or
> directory:
> '/Users/rcline/grassdata/oakesModel/\ngridTest01sql'
>
>
> Mapset Access fails because the mapset gridTest01sql begins with "\n".
>
> This results because the g.mapsets -l returns multiple lines:
> GRASS 6.4.0RC4 (oakesModel):~ > g.mapsets -l
> aquiferBnd aquifers boresModel01 boresModel02 drains grid_tran01  
> grid_tran03
> gridTest01sql oakes2 PERMANENT testAreaTopo
>
> In lines 1800-1805 of preferences.py the call to g.mapsets -l is  
> made on
> line1800.
>        ret = gcmd.RunCommand('g.mapsets',
>                              flags = 'l',
>                              read = True)
>        mapsets = []
>        if ret:
>            mapsets = ret.rstrip(' \n').split(' ')
>
> In line 1805, ret.rstrip(' \n').split(' '), only the trailing line  
> feed is
> removed and not the line feed following the first line. Line 1805  
> should be
> replaced with:
> mapsets = ret.replace('\n','').split()
>
> That way both the last line feed and any line feeds on multiple  
> lines are
> removed. Using .split() removes the need to handle the trailing space.
>
> The change fixes the problem for me in 6.4RC4 and 6.4RC5. It also  
> fixed a
> crash when starting wxpython and opening an existing workspace. Can  
> someone
> with svn access verify my solution and fix this.
>
> When invoking Mapset Access from the TclTK GUI, the search order was  
> the
> current mapset, Permanent, other mapsets in alphabetical order. With  
> the
> wxpython GUI, the search order is mapsets in alphabetical order. Was  
> this
> change intentional? It breaks some of my scripts, as I assumed that  
> the
> current mapset would always be searched first.
>
>
> Royce Cline

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

All generalizations are dangerous, even this one.




More information about the grass-dev mailing list