[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