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

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Jun 20 06:27:10 PDT 2013


Author: lucadelu
Date: 2013-06-20 06:27:09 -0700 (Thu, 20 Jun 2013)
New Revision: 56825

Modified:
   grass/trunk/lib/python/script/core.py
Log:
fix string format and PEP 8

Modified: grass/trunk/lib/python/script/core.py
===================================================================
--- grass/trunk/lib/python/script/core.py	2013-06-20 13:12:35 UTC (rev 56824)
+++ grass/trunk/lib/python/script/core.py	2013-06-20 13:27:09 UTC (rev 56825)
@@ -39,13 +39,15 @@
 
 # subprocess wrapper that uses shell on Windows
 
+
 class Popen(subprocess.Popen):
-    def __init__(self, args, bufsize = 0, executable = None,
-                 stdin = None, stdout = None, stderr = None,
-                 preexec_fn = None, close_fds = False, shell = None,
-                 cwd = None, env = None, universal_newlines = False,
-                 startupinfo = None, creationflags = 0):
 
+    def __init__(self, args, bufsize=0, executable=None,
+                 stdin=None, stdout=None, stderr=None,
+                 preexec_fn=None, close_fds=False, shell=None,
+                 cwd=None, env=None, universal_newlines=False,
+                 startupinfo=None, creationflags=0):
+
         if shell == None:
             shell = (sys.platform == "win32")
 
@@ -58,6 +60,7 @@
 PIPE = subprocess.PIPE
 STDOUT = subprocess.STDOUT
 
+
 class ScriptError(Exception):
     def __init__(self, msg):
         self.value = msg
@@ -65,8 +68,9 @@
     def __str__(self):
         return self.value
 
-raise_on_error = False # raise exception instead of calling fatal()
+raise_on_error = False  # raise exception instead of calling fatal()
 
+
 def call(*args, **kwargs):
     return Popen(*args, **kwargs).wait()
 
@@ -76,6 +80,7 @@
                "preexec_fn", "close_fds", "cwd", "env",
                "universal_newlines", "startupinfo", "creationflags"]
 
+
 def decode(string):
     enc = locale.getdefaultlocale()[1]
     if enc:
@@ -83,6 +88,7 @@
 
     return string
 
+
 def _make_val(val):
     if isinstance(val, types.StringType) or \
             isinstance(val, types.UnicodeType):
@@ -93,6 +99,7 @@
         return _make_val(list(val))
     return str(val)
 
+
 def get_commands():
     """!Create list of available GRASS commands to use when parsing
     string from the command line
@@ -137,7 +144,8 @@
     return set(cmd), scripts
 
 
-def make_command(prog, flags = "", overwrite = False, quiet = False, verbose = False, **options):
+def make_command(prog, flags="", overwrite=False, quiet=False, verbose=False,
+                 **options):
     """!Return a list of strings suitable for use as the args parameter to
     Popen() or call(). Example:
 
@@ -174,13 +182,15 @@
             args.append("%s=%s" % (opt, _make_val(val)))
     return args
 
-def start_command(prog, flags = "", overwrite = False, quiet = False, verbose = False, **kwargs):
+
+def start_command(prog, flags="", overwrite=False, quiet=False,
+                  verbose=False, **kwargs):
     """!Returns a Popen object with the command created by make_command.
     Accepts any of the arguments which Popen() accepts apart from "args"
     and "shell".
 
     @code
-    >>> p = start_command("g.gisenv", stdout = subprocess.PIPE)
+    >>> p = start_command("g.gisenv", stdout=subprocess.PIPE)
     >>> print p  # doctest: +ELLIPSIS
     <...Popen object at 0x...>
     >>> print p.communicate()[0]  # doctest: +SKIP
@@ -213,11 +223,14 @@
     args = make_command(prog, flags, overwrite, quiet, verbose, **options)
 
     if debug_level() > 0:
-        sys.stderr.write("D1/%d: %s.start_command(): %s\n" % (debug_level(), __name__, ' '.join(args)))
+        sys.stderr.write("D1/%d: %s.start_command(): %s\n" % (debug_level(),
+                                                              __name__,
+                                                              ' '.join(args)))
         sys.stderr.flush()
 
     return Popen(args, **popts)
 
+
 def run_command(*args, **kwargs):
     """!Passes all arguments to start_command(), then waits for the process to
     complete, returning its exit code. Similar to subprocess.call(), but
@@ -231,6 +244,7 @@
     ps = start_command(*args, **kwargs)
     return ps.wait()
 
+
 def pipe_command(*args, **kwargs):
     """!Passes all arguments to start_command(), but also adds
     "stdout = PIPE". Returns the Popen object.
@@ -257,6 +271,7 @@
     kwargs['stdout'] = PIPE
     return start_command(*args, **kwargs)
 
+
 def feed_command(*args, **kwargs):
     """!Passes all arguments to start_command(), but also adds
     "stdin = PIPE". Returns the Popen object.
@@ -269,6 +284,7 @@
     kwargs['stdin'] = PIPE
     return start_command(*args, **kwargs)
 
+
 def read_command(*args, **kwargs):
     """!Passes all arguments to pipe_command, then waits for the process to
     complete, returning its stdout (i.e. similar to shell `backticks`).
@@ -281,6 +297,7 @@
     ps = pipe_command(*args, **kwargs)
     return ps.communicate()[0]
 
+
 def parse_command(*args, **kwargs):
     """!Passes all arguments to read_command, then parses the output
     by parse_key_val().
@@ -312,16 +329,17 @@
         del kwargs['parse']
 
     if 'delimiter' in kwargs:
-        parse_args = { 'sep' : kwargs['delimiter'] }
+        parse_args = {'sep': kwargs['delimiter']}
         del kwargs['delimiter']
 
     if not parse:
-        parse = parse_key_val # use default fn
+        parse = parse_key_val  # use default fn
 
     res = read_command(*args, **kwargs)
 
     return parse(res, **parse_args)
 
+
 def write_command(*args, **kwargs):
     """!Passes all arguments to feed_command, with the string specified
     by the 'stdin' argument fed to the process' stdin.
@@ -337,7 +355,9 @@
     p.stdin.close()
     return p.wait()
 
-def exec_command(prog, flags = "", overwrite = False, quiet = False, verbose = False, env = None, **kwargs):
+
+def exec_command(prog, flags="", overwrite=False, quiet=False, verbose=False,
+                 env=None, **kwargs):
     """!Interface to os.execvpe(), but with the make_command() interface.
 
     @param prog GRASS module
@@ -356,36 +376,41 @@
 
 # interface to g.message
 
-def message(msg, flag = None):
+
+def message(msg, flag=None):
     """!Display a message using `g.message`
 
     @param msg message to be displayed
     @param flag flags (given as string)
     """
-    run_command("g.message", flags = flag, message = msg)
+    run_command("g.message", flags=flag, message=msg)
 
-def debug(msg, debug = 1):
+
+def debug(msg, debug=1):
     """!Display a debugging message using `g.message -d`
 
     @param msg debugging message to be displayed
     @param debug debug level (0-5)
     """
-    run_command("g.message", flags = 'd', message = msg, debug = debug)
+    run_command("g.message", flags='d', message=msg, debug=debug)
 
+
 def verbose(msg):
     """!Display a verbose message using `g.message -v`
 
     @param msg verbose message to be displayed
     """
-    message(msg, flag = 'v')
+    message(msg, flag='v')
 
+
 def info(msg):
     """!Display an informational message using `g.message -i`
 
     @param msg informational message to be displayed
     """
-    message(msg, flag = 'i')
+    message(msg, flag='i')
 
+
 def percent(i, n, s):
     """!Display a progress info message using `g.message -p`
 
@@ -401,22 +426,25 @@
     @param n total number of items
     @param s increment size
     """
-    message("%d %d %d" % (i, n, s), flag = 'p')
+    message("%d %d %d" % (i, n, s), flag='p')
 
+
 def warning(msg):
     """!Display a warning message using `g.message -w`
 
     @param msg warning message to be displayed
     """
-    message(msg, flag = 'w')
+    message(msg, flag='w')
 
+
 def error(msg):
     """!Display an error message using `g.message -e`
 
     @param msg error message to be displayed
     """
-    message(msg, flag = 'e')
+    message(msg, flag='e')
 
+
 def fatal(msg):
     """!Display an error message using `g.message -e`, then abort
 
@@ -431,7 +459,8 @@
     error(msg)
     sys.exit(1)
 
-def set_raise_on_error(raise_exp = True):
+
+def set_raise_on_error(raise_exp=True):
     """!Define behaviour on fatal error (fatal() called)
 
     @param raise_exp True to raise ScriptError instead of calling
@@ -446,6 +475,7 @@
 
 # interface to g.parser
 
+
 def _parse_opts(lines):
     options = {}
     flags = {}
@@ -469,6 +499,7 @@
 
     return (options, flags)
 
+
 def parser():
     """!Interface to g.parser, intended to be run from the top-level, e.g.:
 
@@ -499,7 +530,7 @@
         else:
             argv[0] = os.path.join(sys.path[0], name)
 
-    p = Popen(['g.parser', '-s'] + argv, stdout = PIPE)
+    p = Popen(['g.parser', '-s'] + argv, stdout=PIPE)
     s = p.communicate()[0]
     lines = s.splitlines()
 
@@ -511,7 +542,8 @@
 
 # interface to g.tempfile
 
-def tempfile(create = True):
+
+def tempfile(create=True):
     """!Returns the name of a temporary file, created with
     g.tempfile.
 
@@ -523,15 +555,17 @@
     if not create:
         flags += 'd'
 
-    return read_command("g.tempfile", flags = flags, pid = os.getpid()).strip()
+    return read_command("g.tempfile", flags=flags, pid=os.getpid()).strip()
 
+
 def tempdir():
     """!Returns the name of a temporary dir, created with g.tempfile."""
-    tmp = tempfile(create = False)
+    tmp = tempfile(create=False)
     os.mkdir(tmp)
 
     return tmp
 
+
 class KeyValue(dict):
     """A general-purpose key-value store.
 
@@ -558,7 +592,8 @@
 
 # key-value parsers
 
-def parse_key_val(s, sep = '=', dflt = None, val_type = None, vsep = None):
+
+def parse_key_val(s, sep='=', dflt=None, val_type=None, vsep=None):
     """!Parse a string into a dictionary, where entries are separated
     by newlines and the key and value are separated by `sep' (default: `=')
 
@@ -599,6 +634,7 @@
 
     return result
 
+
 def _text_to_key_value_dict(filename, sep=":", val_sep=","):
     """
         !Convert a key-value text file, where entries are separated
@@ -663,15 +699,16 @@
         kvdict[key] = value_list
     return kvdict
 
+
 def compare_key_value_text_files(filename_a, filename_b, sep=":",
                                  val_sep=",", precision=0.000001):
     """
     !Compare two key-value text two files
 
-    This method will print a warning in case keys that are present in the first file
-    are not present in the second one.
-    The comparison method tries to convert the values into there native format (float, int or string)
-    to allow correct comparison.
+    This method will print a warning in case keys that are present in the first
+    file are not present in the second one.
+    The comparison method tries to convert the values into there native format
+    (float, int or string) to allow correct comparison.
 
     An example key-value text file may have this content:
     \code
@@ -696,7 +733,7 @@
 
     # We compare matching keys
     for key in dict_a.keys():
-        if dict_b.has_key(key):
+        if key in dict_b:
             # Floating point values must be handled separately
             if isinstance(dict_a[key], float) and isinstance(dict_b[key], float):
                 if abs(dict_a[key] - dict_b[key]) > precision:
@@ -704,7 +741,7 @@
             elif isinstance(dict_a[key], float) or isinstance(dict_b[key], float):
                 warning(_("Mixing value types. Will try to compare after "
                           "integer conversion"))
-                return int(dict_a[key]) ==  int(dict_b[key])
+                return int(dict_a[key]) == int(dict_b[key])
             elif key == "+towgs84":
                 # We compare the sum of the entries
                 if abs(sum(dict_a[key]) - sum(dict_b[key])) > precision:
@@ -717,12 +754,14 @@
     if missing_keys == len(dict_a):
         return False
     if missing_keys > 0:
-        warning(_("Several keys (%i out of %i) are missing "
-                  "in the target file")%(missing_keys, len(dict_a)))
+        warning(_("Several keys (%(miss)i out of %(a)i) are missing "
+                  "in the target file") % {'miss': missing_keys,
+                                           'a': len(dict_a)})
     return True
 
 # interface to g.gisenv
 
+
 def gisenv():
     """!Returns the output from running g.gisenv (with no arguments), as a
     dictionary. Example:
@@ -741,6 +780,7 @@
 
 # interface to g.region
 
+
 def locn_is_latlong():
     """!Tests if location is lat/long. Value is obtained
     by checking the "g.region -p" projection code.
@@ -754,7 +794,8 @@
     else:
         return False
 
-def region(region3d = False, complete = False):
+
+def region(region3d=False, complete=False):
     """!Returns the output from running "g.region -g", as a
     dictionary. Example:
 
@@ -779,8 +820,8 @@
     if complete:
         flgs += 'cep'
 
-    s = read_command("g.region", flags = flgs)
-    reg = parse_key_val(s, val_type = float)
+    s = read_command("g.region", flags=flgs)
+    reg = parse_key_val(s, val_type=float)
     for k in ['rows',  'cols',  'cells',
               'rows3', 'cols3', 'cells3', 'depths']:
         if k not in reg:
@@ -789,8 +830,8 @@
 
     return reg
 
-def region_env(region3d = False,
-               **kwargs):
+
+def region_env(region3d=False, **kwargs):
     """!Returns region settings as a string which can used as
     GRASS_REGION environmental variable.
 
@@ -803,8 +844,8 @@
     \param region3d True to get 3D region
     \param kwargs g.region's parameters like 'rast', 'vect' or 'region'
     \code
-    os.environ['GRASS_REGION'] = grass.region_env(region = 'detail')
-    grass.mapcalc('map = 1', overwrite = True)
+    os.environ['GRASS_REGION'] = grass.region_env(region='detail')
+    grass.mapcalc('map=1', overwrite=True)
     os.environ.pop('GRASS_REGION')
     \endcode
 
@@ -813,8 +854,8 @@
     """
     # read proj/zone from WIND file
     env = gisenv()
-    windfile = os.path.join (env['GISDBASE'], env['LOCATION_NAME'],
-                              env['MAPSET'], "WIND")
+    windfile = os.path.join(env['GISDBASE'], env['LOCATION_NAME'],
+                            env['MAPSET'], "WIND")
     fd = open(windfile, "r")
     grass_region = ''
     for line in fd.readlines():
@@ -828,7 +869,7 @@
 
         grass_region += '%s: %s;' % (key, value)
 
-    if not kwargs: # return current region
+    if not kwargs:  # return current region
         return grass_region
 
     # read other values from `g.region -g`
@@ -836,7 +877,7 @@
     if region3d:
         flgs += '3'
 
-    s = read_command('g.region', flags = flgs, **kwargs)
+    s = read_command('g.region', flags=flgs, **kwargs)
     if not s:
         return ''
     reg = parse_key_val(s)
@@ -864,27 +905,30 @@
 
     return grass_region
 
+
 def use_temp_region():
     """!Copies the current region to a temporary region with "g.region save=",
     then sets WIND_OVERRIDE to refer to that region. Installs an atexit
     handler to delete the temporary region upon termination.
     """
     name = "tmp.%s.%d" % (os.path.basename(sys.argv[0]), os.getpid())
-    run_command("g.region", save = name, overwrite = True)
+    run_command("g.region", save=name, overwrite=True)
     os.environ['WIND_OVERRIDE'] = name
     atexit.register(del_temp_region)
 
+
 def del_temp_region():
     """!Unsets WIND_OVERRIDE and removes any region named by it."""
     try:
         name = os.environ.pop('WIND_OVERRIDE')
-        run_command("g.remove", quiet = True, region = name)
+        run_command("g.remove", quiet=True, region=name)
     except:
         pass
 
 # interface to g.findfile
 
-def find_file(name, element = 'cell', mapset = None):
+
+def find_file(name, element='cell', mapset=None):
     """!Returns the output from running g.findfile as a
     dictionary. Example:
 
@@ -906,12 +950,14 @@
     if element == 'raster' or element == 'rast':
         verbose(_('Element type should be "cell" and not "%s"') % element)
         element = 'cell'
-    s = read_command("g.findfile", flags='n', element = element, file = name, mapset = mapset)
+    s = read_command("g.findfile", flags='n', element=element, file=name,
+                     mapset=mapset)
     return parse_key_val(s)
 
 # interface to g.list
 
-def list_grouped(type, check_search_path = True):
+
+def list_grouped(type, check_search_path=True):
     """!List elements grouped by mapsets.
 
     Returns the output from running g.list, as a dictionary where the
@@ -925,7 +971,8 @@
     @endcode
 
     @param type element type (rast, vect, rast3d, region, ...)
-    @param check_search_path True to add mapsets for the search path with no found elements
+    @param check_search_path True to add mapsets for the search path with no
+                             found elements
 
     @return directory of mapsets/elements
     """
@@ -936,11 +983,11 @@
     mapset_re = re.compile("<(.*)>")
     result = {}
     if check_search_path:
-        for mapset in mapsets(search_path = True):
+        for mapset in mapsets(search_path=True):
             result[mapset] = []
 
     mapset = None
-    for line in read_command("g.list", type = type).splitlines():
+    for line in read_command("g.list", type=type).splitlines():
         if line == "":
             continue
         if dashes_re.match(line):
@@ -956,12 +1003,14 @@
 
     return result
 
+
 def _concat(xs):
     result = []
     for x in xs:
         result.extend(x)
     return result
 
+
 def list_pairs(type):
     """!List of elements as tuples.
 
@@ -981,6 +1030,7 @@
     return _concat([[(map, mapset) for map in maps]
                     for mapset, maps in list_grouped(type).iteritems()])
 
+
 def list_strings(type):
     """!List of elements as strings.
 
@@ -1001,7 +1051,8 @@
 
 # interface to g.mlist
 
-def mlist_strings(type, pattern = None, mapset = None, flag = ''):
+
+def mlist_strings(type, pattern=None, mapset=None, flag=''):
     """!List of elements as strings.
 
     Returns the output from running g.mlist, as a list of qualified
@@ -1010,7 +1061,8 @@
     @param type element type (rast, vect, rast3d, region, ...)
     @param pattern pattern string
     @param mapset mapset name (if not given use search path)
-    @param flag pattern type: 'r' (basic regexp), 'e' (extended regexp), or '' (glob pattern)
+    @param flag pattern type: 'r' (basic regexp), 'e' (extended regexp), or ''
+                (glob pattern)
 
     @return list of elements
     """
@@ -1019,16 +1071,17 @@
         type = 'rast'
     result = list()
     for line in read_command("g.mlist",
-                             quiet = True,
-                             flags = 'm' + flag,
-                             type = type,
-                             pattern = pattern,
-                             mapset = mapset).splitlines():
+                             quiet=True,
+                             flags='m' + flag,
+                             type=type,
+                             pattern=pattern,
+                             mapset=mapset).splitlines():
         result.append(line.strip())
 
     return result
 
-def mlist_pairs(type, pattern = None, mapset = None, flag = ''):
+
+def mlist_pairs(type, pattern=None, mapset=None, flag=''):
     """!List of elements as pairs
 
     Returns the output from running g.mlist, as a list of
@@ -1037,13 +1090,16 @@
     @param type element type (rast, vect, rast3d, region, ...)
     @param pattern pattern string
     @param mapset mapset name (if not given use search path)
-    @param flag pattern type: 'r' (basic regexp), 'e' (extended regexp), or '' (glob pattern)
+    @param flag pattern type: 'r' (basic regexp), 'e' (extended regexp), or ''
+                (glob pattern)
 
     @return list of elements
     """
-    return [tuple(map.split('@', 1)) for map in mlist_strings(type, pattern, mapset, flag)]
+    return [tuple(map.split('@', 1)) for map in mlist_strings(type, pattern,
+                                                              mapset, flag)]
 
-def mlist_grouped(type, pattern = None, check_search_path = True, flag = ''):
+
+def mlist_grouped(type, pattern=None, check_search_path=True, flag=''):
     """!List of elements grouped by mapsets.
 
     Returns the output from running g.mlist, as a dictionary where the
@@ -1058,8 +1114,10 @@
 
     @param type element type (rast, vect, rast3d, region, ...)
     @param pattern pattern string
-    @param check_search_path True to add mapsets for the search path with no found elements
-    @param flag pattern type: 'r' (basic regexp), 'e' (extended regexp), or '' (glob pattern)
+    @param check_search_path True to add mapsets for the search path with no
+                             found elements
+    @param flag pattern type: 'r' (basic regexp), 'e' (extended regexp), or ''
+                (glob pattern)
 
     @return directory of mapsets/elements
     """
@@ -1068,12 +1126,12 @@
         type = 'rast'
     result = {}
     if check_search_path:
-        for mapset in mapsets(search_path = True):
+        for mapset in mapsets(search_path=True):
             result[mapset] = []
 
     mapset = None
-    for line in read_command("g.mlist", quiet = True, flags = "m" + flag,
-                             type = type, pattern = pattern).splitlines():
+    for line in read_command("g.mlist", quiet=True, flags="m" + flag,
+                             type=type, pattern=pattern).splitlines():
         try:
             name, mapset = line.split('@')
         except ValueError:
@@ -1107,7 +1165,8 @@
     "violet":  (0.50, 0.00, 1.00),
     "indigo":  (0.00, 0.50, 1.00)}
 
-def parse_color(val, dflt = None):
+
+def parse_color(val, dflt=None):
     """!Parses the string "val" as a GRASS colour, which can be either one of
     the named colours or an R:G:B tuple e.g. 255:255:255. Returns an
     (r,g,b) triple whose components are floating point values between 0
@@ -1137,6 +1196,7 @@
 
 # check GRASS_OVERWRITE
 
+
 def overwrite():
     """!Return True if existing files may be overwritten"""
     owstr = 'GRASS_OVERWRITE'
@@ -1144,6 +1204,7 @@
 
 # check GRASS_VERBOSE
 
+
 def verbosity():
     """!Return the verbosity level selected by GRASS_VERBOSE"""
     vbstr = os.getenv('GRASS_VERBOSE')
@@ -1156,7 +1217,8 @@
 
 # basename inc. extension stripping
 
-def basename(path, ext = None):
+
+def basename(path, ext=None):
     """!Remove leading directory components and an optional extension
     from the specified path
 
@@ -1171,6 +1233,7 @@
         name = fs[0]
     return name
 
+
 # find a program (replacement for "which")
 # from http://hg.python.org/cpython/file/6860263c05b3/Lib/shutil.py#l1068
 # see ticket #2008
@@ -1210,8 +1273,8 @@
                 and not os.path.isdir(fn))
 
     # If we're given a path with a directory part, look it up directly rather
-    # than referring to PATH directories. This includes checking relative to the
-    # current directory, e.g. ./script
+    # than referring to PATH directories. This includes checking relative to
+    # the current directory, e.g. ./script
     if os.path.dirname(cmd):
         if _access_check(cmd, mode):
             return cmd
@@ -1256,6 +1319,7 @@
 
 # try to remove a file, without complaints
 
+
 def try_remove(path):
     """!Attempt to remove a file; no exception is generated if the
     attempt fails.
@@ -1269,6 +1333,7 @@
 
 # try to remove a directory, without complaints
 
+
 def try_rmdir(path):
     """!Attempt to remove a directory; no exception is generated if the
     attempt fails.
@@ -1278,8 +1343,9 @@
     try:
         os.rmdir(path)
     except:
-        shutil.rmtree(path, ignore_errors = True)
+        shutil.rmtree(path, ignore_errors=True)
 
+
 def float_or_dms(s):
     """!Convert DMS to float.
 
@@ -1291,7 +1357,8 @@
 
 # interface to g.mapsets
 
-def mapsets(search_path = False):
+
+def mapsets(search_path=False):
     """!List available mapsets
 
     @param search_path True to list mapsets only in search path
@@ -1303,9 +1370,9 @@
     else:
         flags = 'l'
     mapsets = read_command('g.mapsets',
-                           flags = flags,
-                           sep = 'newline',
-                           quiet = True)
+                           flags=flags,
+                           sep='newline',
+                           quiet=True)
     if not mapsets:
         fatal(_("Unable to list mapsets"))
 
@@ -1313,9 +1380,9 @@
 
 # interface to `g.proj -c`
 
-def create_location(dbase, location,
-                    epsg = None, proj4 = None, filename = None, wkt = None,
-                    datum = None, datum_trans = None, desc = None):
+
+def create_location(dbase, location, epsg=None, proj4=None, filename=None,
+                    wkt=None, datum=None, datum_trans=None, desc=None):
     """!Create new location
 
     Raise ScriptError on error.
@@ -1334,8 +1401,7 @@
     if epsg or proj4 or filename or wkt:
         # FIXME: changing GISDBASE mid-session is not background-job safe
         gisdbase = gisenv()['GISDBASE']
-        run_command('g.gisenv',
-                    set = 'GISDBASE=%s' % dbase)
+        run_command('g.gisenv', set='GISDBASE=%s' % dbase)
     if not os.path.exists(dbase):
             os.mkdir(dbase)
 
@@ -1346,48 +1412,30 @@
         kwargs['datum_trans'] = datum_trans
 
     if epsg:
-        ps = pipe_command('g.proj',
-                          quiet = True,
-                          flags = 't',
-                          epsg = epsg,
-                          location = location,
-                          stderr = PIPE,
-                          **kwargs)
+        ps = pipe_command('g.proj', quiet=True, flags='t', epsg=epsg,
+                          location=location, stderr=PIPE, **kwargs)
     elif proj4:
-        ps = pipe_command('g.proj',
-                          quiet = True,
-                          flags = 't',
-                          proj4 = proj4,
-                          location = location,
-                          stderr = PIPE,
-                          **kwargs)
+        ps = pipe_command('g.proj', quiet=True, flags='t', proj4=proj4,
+                          location=location, stderr=PIPE, **kwargs)
     elif filename:
-        ps = pipe_command('g.proj',
-                          quiet = True,
-                          georef = filename,
-                          location = location,
-                          stderr = PIPE)
+        ps = pipe_command('g.proj', quiet=True, georef=filename,
+                          location=location, stderr=PIPE)
     elif wkt:
-        ps = pipe_command('g.proj',
-                          quiet = True,
-                          wkt = wkt,
-                          location = location,
-                          stderr = PIPE)
+        ps = pipe_command('g.proj', quiet=True, wkt=wkt, location=location,
+                          stderr=PIPE)
     else:
         _create_location_xy(dbase, location)
 
     if epsg or proj4 or filename or wkt:
         error = ps.communicate()[1]
-        run_command('g.gisenv',
-                    set = 'GISDBASE=%s' % gisdbase)
+        run_command('g.gisenv', set='GISDBASE=%s' % gisdbase)
 
         if ps.returncode != 0 and error:
             raise ScriptError(repr(error))
 
     try:
-        fd = codecs.open(os.path.join(dbase, location,
-                                      'PERMANENT', 'MYNAME'),
-                         encoding = 'utf-8', mode = 'w')
+        fd = codecs.open(os.path.join(dbase, location, 'PERMANENT', 'MYNAME'),
+                         encoding='utf-8', mode='w')
         if desc:
             fd.write(desc + os.linesep)
         else:
@@ -1396,6 +1444,7 @@
     except OSError, e:
         raise ScriptError(repr(e))
 
+
 def _create_location_xy(database, location):
     """!Create unprojected location
 
@@ -1445,6 +1494,7 @@
 
 # interface to g.version
 
+
 def version():
     """!Get GRASS version as dictionary
 
@@ -1453,11 +1503,11 @@
 
     {'proj4': '4.8.0', 'geos': '3.3.5', 'libgis_revision': '52468',
      'libgis_date': '2012-07-27 22:53:30 +0200 (Fri, 27 Jul 2012)',
-     'version': '7.0.svn', 'date': '2012', 'gdal': '2.0dev', 'revision': '53670'}
+     'version': '7.0.svn', 'date': '2012', 'gdal': '2.0dev',
+     'revision': '53670'}
     @endcode
     """
-    data = parse_command('g.version',
-                         flags = 'rge')
+    data = parse_command('g.version', flags='rge')
     for k, v in data.iteritems():
         data[k.strip()] = v.replace('"', '').strip()
 
@@ -1466,6 +1516,7 @@
 # get debug_level
 _debug_level = None
 
+
 def debug_level():
     global _debug_level
     if _debug_level is not None:
@@ -1474,6 +1525,7 @@
     if find_program('g.gisenv'):
         _debug_level = int(gisenv().get('DEBUG', 0))
 
+
 def legal_name(s):
     """!Checks if the string contains only allowed characters.
 
@@ -1482,7 +1534,8 @@
     @note It is not clear when to use this function.
     """
     if not s or s[0] == '.':
-        warning(_("Illegal filename <%s>. Cannot be 'NULL' or start with '.'.") % s)
+        warning(_("Illegal filename <%s>. Cannot be 'NULL' or start with " \
+                  "'.'.") % s)
         return False
 
     illegal = [c
@@ -1490,7 +1543,8 @@
                if c in '/"\'@,=*~' or c <= ' ' or c >= '\177']
     if illegal:
         illegal = ''.join(sorted(set(illegal)))
-        warning(_("Illegal filename <%s>. <%s> not allowed.\n") % (s, illegal))
+        warning(_("Illegal filename <%(s)s>. <%(il)s> not allowed.\n") % {
+        's': s, 'il': illegal})
         return False
 
     return True
@@ -1499,4 +1553,3 @@
 if __name__ == '__main__':
     import doctest
     doctest.testmod()
-



More information about the grass-commit mailing list