Pārlūkot izejas kodu

add and fix doctest to functions.py, remove and unused function, fix abstract for vector and raster according the changes in functions.py

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@54902 15284696-431f-4ddb-bdfa-cd5b030d7da7
Luca Delucchi 12 gadi atpakaļ
vecāks
revīzija
77b4986766

+ 30 - 17
lib/python/pygrass/functions.py

@@ -45,39 +45,52 @@ def copy(existingmap, newmap, maptype):
 
 
 def getenv(env):
-    """Return the current grass environment variables:
+    """Return the current grass environment variables ::
 
         >>> getenv("MAPSET")
         'user1'
 
-    .."""
+    """
     return libgis.G__getenv(env)
 
 
 def get_mapset_raster(mapname, mapset=''):
+    """Return the mapset of the raster map ::
+
+    >>> get_mapset_raster('elevation')
+    'PERMANENT'
+
+    """
     return libgis.G_find_raster(mapname, '')
 
 
 def get_mapset_vector(mapname, mapset=''):
+    """Return the mapset of the vector map ::
+
+    >>> get_mapset_vector('census')
+    'PERMANENT'
+
+    """
     return libgis.G_find_vector(mapname, '')
 
 
-def exist(mapname, mapset=''):
-    mapset = get_mapset_raster(mapname, mapset)
-    if mapset != '':
-        return True
-    else:
-        mapset = get_mapset_vector(mapname, mapset)
-        if mapset:
-            return True
-    return False
+def is_clean_name(name):
+    """Return if the name is valid ::
 
+    >>> is_clean_name('census')
+    True
+    >>> is_clean_name('0census')
+    False
+    >>> is_clean_name('census&')
+    False
 
-def clean_map_name(name):
-    name.strip()
+    """
+    if name[0].isdigit():
+        return False
     for char in ' @#^?°,;%&/':
-        name = name.replace(char, '')
-    return name
+        if name.find(char) != -1:
+            return False
+    return True
 
 
 def coor2pixel((east, north), region):
@@ -86,7 +99,7 @@ def coor2pixel((east, north), region):
         >>> reg = Region()
         >>> coor2pixel((reg.west, reg.north), reg)
         (0.0, 0.0)
-        >>> coor2pixel((reg.east, reg.south), reg) == (reg.cols, reg.rows)
+        >>> coor2pixel((reg.east, reg.south), reg) == (reg.rows, reg.cols)
         True
     """
     return (libraster.Rast_northing_to_row(north, region.c_region),
@@ -99,7 +112,7 @@ def pixel2coor((col, row), region):
         >>> reg = Region()
         >>> pixel2coor((0, 0), reg) == (reg.north, reg.west)
         True
-        >>> pixel2coor((reg.cols, reg.rows), reg) == (reg.east, reg.south)
+        >>> pixel2coor((reg.cols, reg.rows), reg) == (reg.south, reg.east)
         True
     """
     return (libraster.Rast_row_to_northing(row, region.c_region),

+ 6 - 5
lib/python/pygrass/raster/abstract.py

@@ -26,7 +26,7 @@ import grass.lib.raster as libraster
 from grass.pygrass import functions
 from grass.pygrass.gis.region import Region
 from grass.pygrass.errors import must_be_open
-
+from grass.pygrass.gis import Mapset
 #
 # import raster classes
 #
@@ -123,11 +123,12 @@ class RasterAbstractBase(object):
 
     def _set_name(self, newname):
         """Private method to change the Raster name"""
-        #import pdb; pdb.set_trace()
-        cleanname = functions.clean_map_name(newname)
+        if not functions.is_clean_name(newname):
+            str_err = _("Map name {0} not valid")
+            raise ValueError(str_err.format(newname))
         if self.exist():
-            self.rename(cleanname)
-        self._name = cleanname
+            self.rename(newname)
+        self._name = newname
 
     name = property(fget=_get_name, fset=_set_name)
 

+ 7 - 1
lib/python/pygrass/vector/abstract.py

@@ -90,7 +90,13 @@ class Info(object):
             return self._name
 
     def _set_name(self, newname):
-        self.rename(newname)
+        """Private method to change the Raster name"""
+        if not functions.is_clean_name(newname):
+            str_err = _("Map name {0} not valid")
+            raise ValueError(str_err.format(newname))
+        if self.exist():
+            self.rename(newname)
+        self._name = newname
 
     name = property(fget=_get_name, fset=_set_name)