def glist(self, type, pattern=None): """Return a list of grass types like: * 'asciivect', * 'group', * 'icon', * 'labels', * 'oldvect', * 'rast', * 'rast3d', * 'region', * 'region3d', * 'sites', * 'vect', * 'view3d' :param type: the type of element to query :type type: str :param pattern: the pattern to filter the result :type pattern: str :: >>> mapset = Mapset('PERMANENT') >>> rast = mapset.glist('rast') >>> rast.sort() >>> rast # doctest: +ELLIPSIS ['basins', 'elevation', ...] >>> sorted(mapset.glist('rast', pattern='el*')) ['elevation', 'elevation_shade'] .. """ if type not in ETYPE: str_err = "Type %s is not valid, valid types are: %s." raise TypeError(str_err % (type, ', '.join(ETYPE.keys()))) clist = libgis.G_list(ETYPE[type], self.gisdbase, self.location, self.name) elist = [] for el in clist: el_name = ct.cast(el, ct.c_char_p).value if el_name: elist.append(el_name) else: if pattern: return fnmatch.filter(elist, pattern) return elist
def glist(self, type, pattern=None): """Return a list of grass types like: * 'group', * 'label', * 'raster', * 'raster_3d', * 'region', * 'vector', :param type: the type of element to query :type type: str :param pattern: the pattern to filter the result :type pattern: str :: >>> mapset = Mapset() >>> mapset.current() >>> rast = mapset.glist('raster') >>> test_raster_name in rast True >>> vect = mapset.glist('vector') >>> test_vector_name in vect True .. """ if type not in ETYPE: str_err = "Type %s is not valid, valid types are: %s." raise TypeError(str_err % (type, ", ".join(ETYPE.keys()))) clist = libgis.G_list(ETYPE[type], self.gisdbase, self.location, self.name) elist = [] for el in clist: el_name = ct.cast(el, ct.c_char_p).value if el_name: elist.append(decode(el_name)) else: if pattern: return fnmatch.filter(elist, pattern) return elist