def run(self): os.environ["GRASS_MESSAGE_FORMAT"] = "gui" while True: requestId, args, kwds = self.requestQ.get() for key in ( "callable", "onDone", "onPrepare", "userData", "addLayer", "notification", ): if key in kwds: vars()[key] = kwds[key] del kwds[key] else: vars()[key] = None if not vars()["callable"]: vars()["callable"] = GrassCmd requestTime = time.time() # prepare if self.receiver: event = wxCmdPrepare( cmd=args[0], time=requestTime, pid=requestId, onPrepare=vars()["onPrepare"], userData=vars()["userData"], ) wx.PostEvent(self.receiver, event) # run command event = wxCmdRun( cmd=args[0], pid=requestId, notification=vars()["notification"] ) wx.PostEvent(self.receiver, event) time.sleep(0.1) self.requestCmd = vars()["callable"](*args, **kwds) if self._want_abort_all and self.requestCmd is not None: self.requestCmd.abort() if self.requestQ.empty(): self._want_abort_all = False self.resultQ.put((requestId, self.requestCmd.run())) try: returncode = self.requestCmd.module.returncode except AttributeError: returncode = 0 # being optimistic try: aborted = self.requestCmd.aborted except AttributeError: aborted = False time.sleep(0.1) # set default color table for raster data if ( UserSettings.Get( group="rasterLayer", key="colorTable", subkey="enabled" ) and args[0][0][:2] == "r." ): colorTable = UserSettings.Get( group="rasterLayer", key="colorTable", subkey="selection" ) mapName = None if args[0][0] == "r.mapcalc": try: mapName = args[0][1].split("=", 1)[0].strip() except KeyError: pass else: moduleInterface = GUI(show=None).ParseCommand(args[0]) outputParam = moduleInterface.get_param( value="output", raiseError=False ) if outputParam and outputParam["prompt"] == "raster": mapName = outputParam["value"] if mapName: argsColor = list(args) argsColor[0] = [ "r.colors", "map=%s" % mapName, "color=%s" % colorTable, ] self.requestCmdColor = vars()["callable"](*argsColor, **kwds) self.resultQ.put((requestId, self.requestCmdColor.run())) if self.receiver: event = wxCmdDone( cmd=args[0], aborted=aborted, returncode=returncode, time=requestTime, pid=requestId, onDone=vars()["onDone"], userData=vars()["userData"], addLayer=vars()["addLayer"], notification=vars()["notification"], ) # send event wx.PostEvent(self.receiver, event)
def run(self): os.environ['GRASS_MESSAGE_FORMAT'] = 'gui' while True: requestId, args, kwds = self.requestQ.get() for key in ('callable', 'onDone', 'onPrepare', 'userData', 'notification'): if key in kwds: vars()[key] = kwds[key] del kwds[key] else: vars()[key] = None if not vars()['callable']: vars()['callable'] = GrassCmd requestTime = time.time() # prepare if self.receiver: event = wxCmdPrepare(cmd=args[0], time=requestTime, pid=requestId, onPrepare=vars()['onPrepare'], userData=vars()['userData']) wx.PostEvent(self.receiver, event) # run command event = wxCmdRun(cmd=args[0], pid=requestId, notification=vars()['notification']) wx.PostEvent(self.receiver, event) time.sleep(.1) self.requestCmd = vars()['callable'](*args, **kwds) if self._want_abort_all and self.requestCmd is not None: self.requestCmd.abort() if self.requestQ.empty(): self._want_abort_all = False self.resultQ.put((requestId, self.requestCmd.run())) try: returncode = self.requestCmd.module.returncode except AttributeError: returncode = 0 # being optimistic try: aborted = self.requestCmd.aborted except AttributeError: aborted = False time.sleep(.1) # set default color table for raster data if UserSettings.Get(group='rasterLayer', key='colorTable', subkey='enabled') and \ args[0][0][:2] == 'r.': colorTable = UserSettings.Get(group='rasterLayer', key='colorTable', subkey='selection') mapName = None if args[0][0] == 'r.mapcalc': try: mapName = args[0][1].split('=', 1)[0].strip() except KeyError: pass else: moduleInterface = GUI(show=None).ParseCommand(args[0]) outputParam = moduleInterface.get_param(value='output', raiseError=False) if outputParam and outputParam['prompt'] == 'raster': mapName = outputParam['value'] if mapName: argsColor = list(args) argsColor[0] = ['r.colors', 'map=%s' % mapName, 'color=%s' % colorTable] self.requestCmdColor = vars()['callable'](*argsColor, **kwds) self.resultQ.put((requestId, self.requestCmdColor.run())) if self.receiver: event = wxCmdDone(cmd=args[0], aborted=aborted, returncode=returncode, time=requestTime, pid=requestId, onDone=vars()['onDone'], userData=vars()['userData'], notification=vars()['notification']) # send event wx.PostEvent(self.receiver, event)
def run(self): os.environ['GRASS_MESSAGE_FORMAT'] = 'gui' while True: requestId, args, kwds = self.requestQ.get() for key in ('callable', 'onDone', 'onPrepare', 'userData', 'addLayer', 'notification'): if key in kwds: vars()[key] = kwds[key] del kwds[key] else: vars()[key] = None if not vars()['callable']: vars()['callable'] = GrassCmd requestTime = time.time() # prepare if self.receiver: event = wxCmdPrepare(cmd=args[0], time=requestTime, pid=requestId, onPrepare=vars()['onPrepare'], userData=vars()['userData']) wx.PostEvent(self.receiver, event) # run command event = wxCmdRun(cmd=args[0], pid=requestId, notification=vars()['notification']) wx.PostEvent(self.receiver, event) time.sleep(.1) self.requestCmd = vars()['callable'](*args, **kwds) if self._want_abort_all and self.requestCmd is not None: self.requestCmd.abort() if self.requestQ.empty(): self._want_abort_all = False self.resultQ.put((requestId, self.requestCmd.run())) try: returncode = self.requestCmd.module.returncode except AttributeError: returncode = 0 # being optimistic try: aborted = self.requestCmd.aborted except AttributeError: aborted = False time.sleep(.1) # set default color table for raster data if UserSettings.Get(group='rasterLayer', key='colorTable', subkey='enabled') and \ args[0][0][:2] == 'r.': colorTable = UserSettings.Get(group='rasterLayer', key='colorTable', subkey='selection') mapName = None if args[0][0] == 'r.mapcalc': try: mapName = args[0][1].split('=', 1)[0].strip() except KeyError: pass else: moduleInterface = GUI(show=None).ParseCommand(args[0]) outputParam = moduleInterface.get_param(value='output', raiseError=False) if outputParam and outputParam['prompt'] == 'raster': mapName = outputParam['value'] if mapName: argsColor = list(args) argsColor[0] = [ 'r.colors', 'map=%s' % mapName, 'color=%s' % colorTable ] self.requestCmdColor = vars()['callable'](*argsColor, **kwds) self.resultQ.put((requestId, self.requestCmdColor.run())) if self.receiver: event = wxCmdDone(cmd=args[0], aborted=aborted, returncode=returncode, time=requestTime, pid=requestId, onDone=vars()['onDone'], userData=vars()['userData'], addLayer=vars()['addLayer'], notification=vars()['notification']) # send event wx.PostEvent(self.receiver, event)