[GRASS-dev] How to improve flags related error message in pygrass module?
Nikos Alexandris
nik at nikosalexandris.net
Tue Jan 16 23:12:15 PST 2018
* Markus Neteler <neteler at osgeo.org> [2018-01-15 14:42:29 +0100]:
>On Mon, Jan 15, 2018 at 1:38 PM, Nikos Alexandris
><nik at nikosalexandris.net> wrote:
>> * Markus Neteler <neteler at osgeo.org> [2018-01-15 11:12:46 +0100]:
>
>>> r.in_gdal(input="/home/user/geodaten/ASTGTM2_N50E007_dem.tif",output="dem_nrw",flags="e",overwrite="OVR")
>...
>>> "/home/user/source/grass-7.4.svn/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/modules/interface/module.py",
>>> line 705, in check
>>> if flg and flg.suppress_required:
>>> TypeError: __nonzero__ should return bool or int, returned str
>...
>> Even like that, the error message is informative. It expects a boolean
>> (True or False) or an integer (say: 0 or 1). Instead a string was returned.
>
>Right. My point is that it does not say _which_ flag is wrong.
>
>My scope it to make it easy/obvious also for newcomers...
>
>Markus
Flags are set/updated during the following piece of code (in `module.py`):
"""
#
# set/update args
#
for param, arg in zip(self.params_list, args):
param.value = arg
for key, val in kargs.items():
if key in self.inputs:
self.inputs[key].value = val
elif key in self.outputs:
self.outputs[key].value = val
elif key in self.flags:
# we need to add this, because some parameters (overwrite,
# verbose and quiet) work like parameters
self.flags[key].value = val
else:
raise ParameterError('%s is not a valid parameter.' % key)
"""
and `check()`ing for required parameters, runs after when/if the `run_`
attribute is True.
Maybe adding a test before
self.flags[key].value = val
would help? And report the `flag[key]` in case `val` is not one expected?
Maybe adding a specific test for the overwrite, verbose, quiet parameters, that
exist for every grass module?
Nikos
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20180117/20c9c51b/attachment.sig>
More information about the grass-dev
mailing list