[GRASS-SVN] r71032 - grass-addons/grass7/raster/r.vect.stats

svn_grass at osgeo.org svn_grass at osgeo.org
Fri May 5 06:45:58 PDT 2017


Author: martinl
Date: 2017-05-05 06:45:58 -0700 (Fri, 05 May 2017)
New Revision: 71032

Modified:
   grass-addons/grass7/raster/r.vect.stats/r.vect.stats.py
Log:
r.vect.stats: check if column is numeric

Modified: grass-addons/grass7/raster/r.vect.stats/r.vect.stats.py
===================================================================
--- grass-addons/grass7/raster/r.vect.stats/r.vect.stats.py	2017-05-05 13:23:10 UTC (rev 71031)
+++ grass-addons/grass7/raster/r.vect.stats/r.vect.stats.py	2017-05-05 13:45:58 UTC (rev 71032)
@@ -36,9 +36,11 @@
 #% guisection: Attributes
 #%end
 
+import sys
+
 import grass.script as gs
+from grass.exceptions import CalledModuleError
 
-
 def main():
     options, flags = gs.parser()
 
@@ -49,12 +51,24 @@
     z = 3
     sep = 'pipe'
     out_args = {}
+
+    if not gs.find_file(vector, element='vector')['fullname']:
+        gs.fatal('Vector map <{0}> not found'.format(vector))
+
     if options['column']:
         method = options['method']
         z = 4
         out_args['column'] = options['column']
-        out_args['where'] = '{} IS NOT NULL'.format(options['column'])
-        
+        out_args['where'] = '{0} IS NOT NULL'.format(options['column'])
+
+        columns = gs.vector_columns(vector)
+
+        if options['column'] not in columns:
+            gs.fatal(_('Column <{0}> not found'.format(options['column']))) 
+        if columns[options['column']]['type'] not in ('INTEGER', 'DOUBLE PRECISION'):
+            gs.fatal(_('Column <{0}> is not numeric'.format(options['column']))) 
+
+
     out_process = gs.pipe_command(
         'v.out.ascii', input=vector, layer=layer, format='point',
         separator=sep, **out_args)
@@ -64,6 +78,7 @@
     in_process.communicate()
     out_process.wait()
 
+    return 0
 
 if __name__ == "__main__":
-    main()
+    sys.exit(main())



More information about the grass-commit mailing list