[GRASS-SVN] r73906 - grass/trunk/lib/python/script

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Jan 3 14:43:37 PST 2019


Author: martinl
Date: 2019-01-03 14:43:37 -0800 (Thu, 03 Jan 2019)
New Revision: 73906

Modified:
   grass/trunk/lib/python/script/core.py
Log:
avoid usage of os.environb, inspired by https://stackoverflow.com/questions/52269281/fix-import-error-on-using-environb-in-python, see #3723

Modified: grass/trunk/lib/python/script/core.py
===================================================================
--- grass/trunk/lib/python/script/core.py	2019-01-03 22:03:59 UTC (rev 73905)
+++ grass/trunk/lib/python/script/core.py	2019-01-03 22:43:37 UTC (rev 73906)
@@ -27,6 +27,7 @@
 import codecs
 import string
 import random
+import pipes
 import types as python_types
 
 from .utils import KeyValue, parse_key_val, basename, encode, decode
@@ -39,12 +40,10 @@
 try:
     # python2
     import __builtin__
-    from os import environ
     __builtin__.__dict__['_'] = __builtin__.__dict__['_'].__self__.ugettext
 except ImportError:
     # python3
     import builtins as __builtin__
-    from os import environb as environ
     unicode = str
     __builtin__.__dict__['_'] = __builtin__.__dict__['_'].__self__.gettext
 
@@ -820,9 +819,9 @@
         print("You must be in GRASS GIS to run this program.", file=sys.stderr)
         sys.exit(1)
 
-    cmdline = [basename(encode(sys.argv[0]))]
-    cmdline += [b'"' + encode(arg) + b'"' for arg in sys.argv[1:]]
-    environ[b'CMDLINE'] = b' '.join(cmdline)
+    cmdline = [basename(sys.argv[0])]
+    cmdline += [pipes.quote(a) for a in sys.argv[1:]]
+    os.environ['CMDLINE'] = ' '.join(cmdline)
 
     argv = sys.argv[:]
     name = argv[0]



More information about the grass-commit mailing list