Browse Source

avoid repetition in PYTHONPATH

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@56941 15284696-431f-4ddb-bdfa-cd5b030d7da7
Hamish Bowman 11 years ago
parent
commit
701c766285

+ 3 - 1
gui/wxpython/core/globalvar.py

@@ -27,7 +27,9 @@ ETCSYMBOLDIR = os.path.join(ETCDIR, "gui", "images", "symbols")
 
 
 from core.debug import Debug
 from core.debug import Debug
 
 
-sys.path.append(os.path.join(ETCDIR, "python"))
+if os.path.join(ETCDIR, "python") not in sys.path:
+    sys.path.append(os.path.join(ETCDIR, "python"))
+
 from grass.script.core import get_commands
 from grass.script.core import get_commands
 
 
 
 

+ 7 - 2
gui/wxpython/core/menutree.py

@@ -43,7 +43,10 @@ except ImportError:
 import wx
 import wx
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
-    sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
+
 from core.treemodel import TreeModel, ModuleNode
 from core.treemodel import TreeModel, ModuleNode
 from core.settings import UserSettings
 from core.settings import UserSettings
 
 
@@ -217,7 +220,9 @@ if __name__ == "__main__":
         elif arg in ('manager', 'modeler', 'psmap'):
         elif arg in ('manager', 'modeler', 'psmap'):
             menu = arg
             menu = arg
 
 
-    sys.path.append(os.path.join(os.getenv("GISBASE"), "etc", "gui", "wxpython"))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
 
 
     # FIXME: cross-dependencies
     # FIXME: cross-dependencies
     if menu == 'manager':
     if menu == 'manager':

+ 3 - 1
gui/wxpython/core/toolboxes.py

@@ -32,7 +32,9 @@ else:
 
 
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
-    sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
 
 
 from core.globalvar import ETCWXDIR
 from core.globalvar import ETCWXDIR
 from core.utils import GetSettingsPath
 from core.utils import GetSettingsPath

+ 2 - 1
gui/wxpython/core/utils.py

@@ -22,7 +22,8 @@ import re
 import inspect
 import inspect
 
 
 from core.globalvar import ETCDIR
 from core.globalvar import ETCDIR
-sys.path.append(os.path.join(ETCDIR, "python"))
+if os.path.join(ETCDIR, "python") not in sys.path:
+    sys.path.append(os.path.join(ETCDIR, "python"))
 
 
 from grass.script import core as grass
 from grass.script import core as grass
 from grass.script import task as gtask
 from grass.script import task as gtask

+ 4 - 1
gui/wxpython/dbmgr/base.py

@@ -33,7 +33,10 @@ import copy
 import types
 import types
 
 
 if __name__ == "__main__":
 if __name__ == "__main__":
-    sys.path.append(os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython'))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
+
 from core import globalvar
 from core import globalvar
 import wx
 import wx
 import wx.lib.mixins.listctrl as listmix
 import wx.lib.mixins.listctrl as listmix

+ 3 - 1
gui/wxpython/dbmgr/g.gui.dbmgr.py

@@ -37,7 +37,9 @@ gettext.install('grasswxpy', os.path.join(os.getenv("GISBASE"), 'locale'), unico
 
 
 import grass.script as grass
 import grass.script as grass
 
 
-sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+if gui_wx_path not in sys.path:
+    sys.path.append(gui_wx_path)
 
 
 from dbmgr.manager import AttributeManager
 from dbmgr.manager import AttributeManager
 
 

+ 4 - 1
gui/wxpython/dbmgr/sqlbuilder.py

@@ -28,7 +28,10 @@ import os
 import sys
 import sys
 
 
 if __name__ == "__main__":
 if __name__ == "__main__":
-    sys.path.append(os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython'))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
+
 from core import globalvar
 from core import globalvar
 import wx
 import wx
 
 

+ 4 - 1
gui/wxpython/gis_set.py

@@ -33,7 +33,10 @@ import gettext
 gettext.install('grasswxpy', os.path.join(os.getenv("GISBASE"), 'locale'), unicode = True)
 gettext.install('grasswxpy', os.path.join(os.getenv("GISBASE"), 'locale'), unicode = True)
 
 
 if __name__ == "__main__":
 if __name__ == "__main__":
-    sys.path.append(os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython'))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
+
 from core import globalvar
 from core import globalvar
 import wx
 import wx
 import wx.lib.mixins.listctrl as listmix
 import wx.lib.mixins.listctrl as listmix

+ 3 - 1
gui/wxpython/gmodeler/g.gui.gmodeler.py

@@ -42,7 +42,9 @@ import gettext
 
 
 import grass.script as grass
 import grass.script as grass
 
 
-sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+if gui_wx_path not in sys.path:
+    sys.path.append(gui_wx_path)
 
 
 from core.giface import StandaloneGrassInterface
 from core.giface import StandaloneGrassInterface
 from core.globalvar import CheckWxVersion
 from core.globalvar import CheckWxVersion

+ 3 - 1
gui/wxpython/gui_core/forms.py

@@ -66,7 +66,8 @@ if gisbase is None:
 else:
 else:
     wxbase = os.path.join(gisbase, 'etc', 'gui', 'wxpython')
     wxbase = os.path.join(gisbase, 'etc', 'gui', 'wxpython')
 
 
-sys.path.append(wxbase)
+if wxbase not in sys.path:
+    sys.path.append(wxbase)
 
 
 from core import globalvar
 from core import globalvar
 import wx
 import wx
@@ -480,6 +481,7 @@ class TaskFrame(wx.Frame):
         self.Bind(wx.EVT_MENU, self.OnCancel, id=wx.ID_CLOSE)
         self.Bind(wx.EVT_MENU, self.OnCancel, id=wx.ID_CLOSE)
         accelTableList = [(wx.ACCEL_NORMAL, wx.WXK_ESCAPE, wx.ID_CLOSE)]
         accelTableList = [(wx.ACCEL_NORMAL, wx.WXK_ESCAPE, wx.ID_CLOSE)]
         accelTableList = [(wx.ACCEL_CTRL, ord('Q'), wx.ID_CLOSE)]
         accelTableList = [(wx.ACCEL_CTRL, ord('Q'), wx.ID_CLOSE)]
+        # TODO: bind Ctrl-t for tile windows here (trac #2004)
 
 
         if self.get_dcmd is not None: # A callback has been set up
         if self.get_dcmd is not None: # A callback has been set up
             btn_apply = wx.Button(parent = self.panel, id = wx.ID_APPLY)
             btn_apply = wx.Button(parent = self.panel, id = wx.ID_APPLY)

+ 3 - 1
gui/wxpython/gui_core/goutput.py

@@ -23,7 +23,9 @@ import os
 import sys
 import sys
 import textwrap
 import textwrap
 
 
-sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+if gui_wx_path not in sys.path:
+    sys.path.append(gui_wx_path)
 
 
 import wx
 import wx
 from   wx import stc
 from   wx import stc

+ 3 - 1
gui/wxpython/gui_core/query.py

@@ -18,7 +18,9 @@ import sys
 import wx
 import wx
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
-    sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
 
 
 from gui_core.treeview import TreeListView
 from gui_core.treeview import TreeListView
 from core.treemodel import TreeModel, DictNode
 from core.treemodel import TreeModel, DictNode

+ 3 - 1
gui/wxpython/gui_core/treeview.py

@@ -25,7 +25,9 @@ except ImportError:
 import wx.gizmos as gizmos
 import wx.gizmos as gizmos
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
-    sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
 
 
 from core.globalvar import hasAgw
 from core.globalvar import hasAgw
 from core.treemodel import TreeModel, DictNode
 from core.treemodel import TreeModel, DictNode

+ 4 - 1
gui/wxpython/iclass/frame.py

@@ -23,7 +23,10 @@ import copy
 import tempfile
 import tempfile
 
 
 if __name__ == "__main__":
 if __name__ == "__main__":
-    sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
+
 from core import globalvar
 from core import globalvar
 import wx
 import wx
 
 

+ 3 - 1
gui/wxpython/iclass/g.gui.iclass.py

@@ -56,7 +56,9 @@ import gettext
 import grass.script as grass
 import grass.script as grass
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
-    sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+    wxbase = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if wxbase not in sys.path:
+        sys.path.append(wxbase)
 
 
 from core.settings  import UserSettings
 from core.settings  import UserSettings
 from core.globalvar import CheckWxVersion
 from core.globalvar import CheckWxVersion

+ 3 - 1
gui/wxpython/lmgr/frame.py

@@ -37,7 +37,9 @@ try:
 except ImportError:
 except ImportError:
     import wx.lib.flatnotebook   as FN
     import wx.lib.flatnotebook   as FN
 
 
-sys.path.append(os.path.join(globalvar.ETCDIR, "python"))
+if os.path.join(globalvar.ETCDIR, "python") not in sys.path:
+    sys.path.append(os.path.join(globalvar.ETCDIR, "python"))
+
 from grass.script          import core as grass
 from grass.script          import core as grass
 
 
 from core.gcmd             import RunCommand, GError, GMessage, GException
 from core.gcmd             import RunCommand, GError, GMessage, GException

+ 3 - 1
gui/wxpython/location_wizard/dialogs.py

@@ -24,7 +24,9 @@ import wx
 import wx.lib.scrolledpanel as scrolled
 import wx.lib.scrolledpanel as scrolled
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
-    sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+    wxbase = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if wxbase not in sys.path:
+        sys.path.append(wxbase)
 
 
 from core                 import globalvar
 from core                 import globalvar
 from core.gcmd            import RunCommand
 from core.gcmd            import RunCommand

+ 4 - 2
gui/wxpython/mapdisp/frame.py

@@ -31,8 +31,10 @@ from core import globalvar
 import wx
 import wx
 import wx.aui
 import wx.aui
 
 
-sys.path.append(os.path.join(globalvar.ETCWXDIR, "icons"))
-sys.path.append(os.path.join(globalvar.ETCDIR,   "python"))
+if os.path.join(globalvar.ETCWXDIR, "icons") not in sys.path:
+    sys.path.append(os.path.join(globalvar.ETCWXDIR, "icons"))
+if os.path.join(globalvar.ETCDIR, "python") not in sys.path:
+    sys.path.append(os.path.join(globalvar.ETCDIR, "python"))
 
 
 from core               import globalvar
 from core               import globalvar
 from core.render        import Map
 from core.render        import Map

+ 4 - 1
gui/wxpython/mapdisp/main.py

@@ -30,7 +30,10 @@ import os
 import sys
 import sys
 
 
 if __name__ == "__main__":
 if __name__ == "__main__":
-    sys.path.append(os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython'))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
+
 from core          import globalvar
 from core          import globalvar
 import wx
 import wx
 
 

+ 3 - 3
gui/wxpython/mapdisp/overlays.py

@@ -25,9 +25,9 @@ class OverlayController(object):
         self._pdcType = 'image'
         self._pdcType = 'image'
         self._propwin = None
         self._propwin = None
         self._defaultAt = ''
         self._defaultAt = ''
-        self._cmd = None  # to be set by user
+        self._cmd = None   # to be set by user
         self._name = None  # to be defined by subclass
         self._name = None  # to be defined by subclass
-        self._id = None  # to be defined by subclass
+        self._id = None    # to be defined by subclass
 
 
     def SetCmd(self, cmd):
     def SetCmd(self, cmd):
         hasAt = False
         hasAt = False
@@ -103,7 +103,7 @@ class OverlayController(object):
         self._overlay = self._renderer.AddOverlay(id = self._id, ltype = self._name,
         self._overlay = self._renderer.AddOverlay(id = self._id, ltype = self._name,
                                                   command = self.cmd, active = False,
                                                   command = self.cmd, active = False,
                                                   render = False, hidden = True)
                                                   render = False, hidden = True)
-        # check if successfull
+        # check if successful
 
 
     def _update(self):
     def _update(self):
         self._renderer.ChangeOverlay(id = self._id, command = self._cmd,
         self._renderer.ChangeOverlay(id = self._id, command = self._cmd,

+ 3 - 1
gui/wxpython/mapswipe/g.gui.mapswipe.py

@@ -54,7 +54,9 @@ import gettext
 import grass.script as grass
 import grass.script as grass
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
-    sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+    wxbase = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if wxbase not in sys.path:
+        sys.path.append(wxbase)
 
 
 from core.settings import UserSettings
 from core.settings import UserSettings
 from core.globalvar import CheckWxVersion
 from core.globalvar import CheckWxVersion

+ 3 - 1
gui/wxpython/modules/mcalc_builder.py

@@ -24,7 +24,9 @@ import wx
 import grass.script as grass
 import grass.script as grass
 
 
 if __name__ == "__main__":
 if __name__ == "__main__":
-    sys.path.append(os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython'))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
 
 
 from core             import globalvar
 from core             import globalvar
 from core.gcmd        import GError, RunCommand
 from core.gcmd        import GError, RunCommand

+ 3 - 1
gui/wxpython/modules/vclean.py

@@ -21,7 +21,9 @@ import wx
 import wx.lib.scrolledpanel as scrolled
 import wx.lib.scrolledpanel as scrolled
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
-    sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
 
 
 from core.gcmd        import RunCommand, GError
 from core.gcmd        import RunCommand, GError
 from core             import globalvar
 from core             import globalvar

+ 3 - 1
gui/wxpython/psmap/g.gui.psmap.py

@@ -40,7 +40,9 @@ import  wx
 
 
 import grass.script as grass
 import grass.script as grass
 
 
-sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+wxbase = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+if wxbase not in sys.path:
+    sys.path.append(wxbase)
 
 
 from core.globalvar import CheckWxVersion
 from core.globalvar import CheckWxVersion
 from psmap.frame        import PsMapFrame
 from psmap.frame        import PsMapFrame

+ 3 - 1
gui/wxpython/rlisetup/g.gui.rlisetup.py

@@ -33,7 +33,9 @@ import gettext
 import  wx
 import  wx
 import grass.script as grass
 import grass.script as grass
 
 
-sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+wxbase = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+if wxbase not in sys.path:
+    sys.path.append(wxbase)
 
 
 from core.giface import StandaloneGrassInterface
 from core.giface import StandaloneGrassInterface
 from core.globalvar import CheckWxVersion
 from core.globalvar import CheckWxVersion

+ 3 - 1
gui/wxpython/rlisetup/wizard.py

@@ -23,7 +23,9 @@ This program is free software under the GNU General Public License
 import sys
 import sys
 import os
 import os
 
 
-sys.path.append(os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython'))
+wxbase = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+if wxbase not in sys.path:
+    sys.path.append(wxbase)
 
 
 import wx
 import wx
 import wx.wizard as wiz
 import wx.wizard as wiz

+ 2 - 1
gui/wxpython/scripts/vkrige.py

@@ -34,7 +34,8 @@ except ImportError:
 ### wxGUI imports
 ### wxGUI imports
 
 
 GUIModulesPath = os.path.join(os.getenv("GISBASE"), "etc", "gui", "wxpython")
 GUIModulesPath = os.path.join(os.getenv("GISBASE"), "etc", "gui", "wxpython")
-sys.path.append(GUIModulesPath)
+if GUIModulesPath not in sys.path:
+    sys.path.append(GUIModulesPath)
 
 
 from core import globalvar
 from core import globalvar
 from gui_core import gselect
 from gui_core import gselect

+ 3 - 1
gui/wxpython/vdigit/g.gui.vdigit.py

@@ -39,7 +39,9 @@ import grass.script as grass
 import wx
 import wx
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
-    sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
 
 
 from core.globalvar import CheckWxVersion
 from core.globalvar import CheckWxVersion
 from mapdisp.frame import MapFrame
 from mapdisp.frame import MapFrame

+ 2 - 1
gui/wxpython/web_services/cap_interface.py

@@ -25,7 +25,8 @@ import os
 import sys
 import sys
 
 
 WMSLibPath = os.path.join(os.getenv("GISBASE"), "etc", "r.in.wms")
 WMSLibPath = os.path.join(os.getenv("GISBASE"), "etc", "r.in.wms")
-sys.path.append(WMSLibPath)
+if WMSLibPath not in sys.path:
+    sys.path.append(WMSLibPath)
 
 
 from wms_cap_parsers import WMSCapabilitiesTree, \
 from wms_cap_parsers import WMSCapabilitiesTree, \
                             WMTSCapabilitiesTree, \
                             WMTSCapabilitiesTree, \

+ 3 - 1
gui/wxpython/web_services/widgets.py

@@ -44,7 +44,9 @@ from gui_core.widgets  import GNotebook
 
 
 import grass.script as grass
 import grass.script as grass
 
 
-sys.path.append(os.path.join(os.getenv("GISBASE"), "etc", "r.in.wms"))
+rinwms_path = os.path.join(os.getenv("GISBASE"), "etc", "r.in.wms")
+if rinwms_path not in sys.path:
+    sys.path.append(rinwms_path)
 
 
 from wms_base import WMSDriversInfo
 from wms_base import WMSDriversInfo
 
 

+ 4 - 1
gui/wxpython/wxgui.py

@@ -23,7 +23,10 @@ import sys
 import getopt
 import getopt
 
 
 if __name__ == "__main__":
 if __name__ == "__main__":
-    sys.path.append(os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython'))
+    gui_wx_path = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
+    if gui_wx_path not in sys.path:
+        sys.path.append(gui_wx_path)
+
 from core import globalvar
 from core import globalvar
 import wx
 import wx
 try:
 try:

+ 5 - 1
lib/init/grass.py

@@ -611,8 +611,12 @@ def non_interactive(arg, geofile=None):
                                                                os.F_OK):
                                                                os.F_OK):
                             fatal(_("Failed to create new location. The " \
                             fatal(_("Failed to create new location. The " \
                                     "location <%s> already exists." % location_name))
                                     "location <%s> already exists." % location_name))
-                        sys.path.append(gfile('etc', 'python'))
+
+                        if gfile('etc', 'python') not in sys.path:
+                            sys.path.append(gfile('etc', 'python'))
+
                         from grass.script import core as grass
                         from grass.script import core as grass
+
                         try:
                         try:
                             if geofile and geofile.find('EPSG:') > -1:
                             if geofile and geofile.find('EPSG:') > -1:
                                 epsg = geofile.split(':', 1)[1]
                                 epsg = geofile.split(':', 1)[1]