Hi, how will this be solved? Then we could start backporting python lib etc to relbr7.
thanks Markus On Sep 8, 2014 2:24 AM, "GRASS GIS" <[email protected]> wrote: > #2410: Python ScriptError > > -------------------------+-------------------------------------------------- > Reporter: martinl | Owner: grass-dev@… > Type: defect | Status: new > Priority: normal | Milestone: 7.1.0 > Component: Python | Version: svn-trunk > Keywords: ScriptError | Platform: Unspecified > Cpu: Unspecified | > > -------------------------+-------------------------------------------------- > > Comment(by zarch): > > Replying to [ticket:2410 martinl]: > > In trunk Python Scripting Library is used !ScriptError from PyGRASS > source:grass/trunk/lib/python/script/core.py#L36. It was introduced in > r61187 by zarch. In relbr70 is still used it's own implementation of > `ScriptError` > source:grass/branches/releasebranch_7_0/lib/python/script/core.py#L70 > which defines attribute `value`. This attribute is accessed on many places > of Python Scripting Library or wxGUI, eg. > > > > {{{ > > except ScriptError as e: > > self.errorMsg = e.value > > }}} > > > > Since `ScriptError` from PyGRASS doesn't have this attribute, it fails > with > > > > {{{ > > File "/opt/src/grass_trunk/dist.x86_64-unknown-linux- > gnu/etc/python/grass/script/task.py", line 70, in __init__ > > self.errorMsg = e.value > > AttributeError: 'ScriptError' object has no attribute 'value' > > }}} > > Right I did this change, we can modify ScriptError back to: > > {{{ > class ScriptError(Exception): > def __init__(self, msg): > self.value = msg > > def __str__(self): > return self.value > > # --- or alternatively > class ScriptError(Exception): > @property > def value(self): > return self.args[0] > }}} > > or change the e.value to e.args[0] > > The value property seems to be used in: > > {{{ > $ grep --color=auto --exclude-dir={.svn,.git,.OBJ,locale,dist.x86_64 > -unknown-linux-gnu} -IrnE "\se\.value" > lib/python/script/task.py:70: self.errorMsg = e.value > gui/wxpython/vnet/vnet_utils.py:80: e = e.value > gui/wxpython/vnet/vnet_utils.py:119: e = e.value > gui/wxpython/psmap/instructions.py:1546: GError(message = > e.value) > gui/wxpython/psmap/instructions.py:1584: GError(message > = e.value) > gui/wxpython/psmap/instructions.py:1717: GError(message = > e.value) > gui/wxpython/mapwin/buffered.py:821: GError(message = e.value) > gui/wxpython/location_wizard/wizard.py:2140: return e.value > gui/wxpython/core/settings.py:48: print >> sys.stderr, e.value > gui/wxpython/nviz/mapwindow.py:1355: message = > e.value) > gui/wxpython/nviz/mapwindow.py:1397: message = > e.value) > gui/wxpython/dbmgr/base.py:93: message = e.value) > gui/wxpython/dbmgr/base.py:1814: message = > _("Loading attribute data failed.\n\n%s") % e.value) > gui/wxpython/dbmgr/base.py:1839: message = > _("Loading attribute data failed.\n\n%s") % e.value) > gui/wxpython/wxplot/histogram.py:189: message = e.value) > gui/wxpython/wxplot/scatter.py:195: message = e.value) > }}} > > Personally I think that we should change the ScriptError class definition. > > -- > Ticket URL: <http://trac.osgeo.org/grass/ticket/2410#comment:1> > GRASS GIS <http://grass.osgeo.org> > > _______________________________________________ > grass-dev mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/grass-dev
_______________________________________________ grass-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-dev
