[GRASS-dev] [GRASS GIS] #2067: PyGRASS grid calls g.region at import time

GRASS GIS trac at osgeo.org
Sat Sep 7 21:09:15 PDT 2013


#2067: PyGRASS grid calls g.region at import time
---------------------------------------------------------------------------------------------+
 Reporter:  huhabla                                                                          |       Owner:  grass-dev@…              
     Type:  defect                                                                           |      Status:  new                      
 Priority:  blocker                                                                          |   Milestone:  7.0.0                    
Component:  Python                                                                           |     Version:  svn-trunk                
 Keywords:  wingrass, PyGRASS, Grid, Python, temporal framework, t.remove, t.rast.neighbors  |    Platform:  MSWindows 7              
      Cpu:  Unspecified                                                                      |  
---------------------------------------------------------------------------------------------+

Comment(by hamish):

 fwiw,

 trunk/lib/python/pygrass/modules/grid/grid.py line 23 from the traceback
 has:
 {{{
   _GREG = Module('g.region')
 }}}

 which is used within cmd_exe(), to "Create a mapset, and execute a cmd
 inside."

 there are a number of other Module() aliases created within, but no other
 at the top level of the file, all the others are within a function
 definition. (but if it stops on the first error maybe that's irrelevant)

 The Module() class is defined in
 trunk/lib/python/pygrass/modules/interface/module.py, the line there where
 the above failure is caught (L244) is:
 {{{
     def __init__(self, cmd, *args, **kargs):
         self.name = cmd
         try:
             # call the command with --interface-description
             get_cmd_xml = subprocess.Popen([cmd, "--interface-
 description"],
                                            stdout=subprocess.PIPE)
         except OSError:
             str_err = "Module %r not found, please check that the module
 exist"
             raise GrassError(str_err % self.name)
 }}}

 so apparently during the build anything calling that initialization
 function would want to be run in a dummy session, as is done to generate
 the header usage text for the html help pages. or the pygrass code change
 to simply skip past the step with a warning message if GISBASE is not set
 to anything.


 Hamish

-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/2067#comment:3>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list