# Source code for grass.grassdb.data

    """
    Manipulate data in mapsets in GRASS GIS Spatial Database

    (C) 2020 by the GRASS Development Team
    This program is free software under the GNU General Public
    License (>=v2). Read the file COPYING that comes with GRASS
    for details.

    .. sectionauthor:: Vaclav Petras <wenzeslaus gmail com>
    """

    import grass.script as gs

    def map_exists(name, element, mapset=None, env=None):
        """Check is map is present in the mapset given in the environment

        :param name: Name of the map
        :param element: Data type ('raster', 'raster_3d', and 'vector')
        :param env: Environment created by function grass.script.create_environment
        :param mapset: Mapset name, "." for current mapset only,
                       None for all mapsets in the search path
        """
        # change type to element used by find file
        if element == "raster":
            element = "cell"
        elif element == "raster_3d":
            element = "grid3"
        # g.findfile returns non-zero when file was not found
        # se we ignore return code and just focus on stdout
        process = gs.start_command(
            "g.findfile",
            flags="n",
            element=element,
            file=name,
            mapset=mapset,
            stdout=gs.PIPE,
            stderr=gs.PIPE,
            env=env,
        )
        output, unused_errors = process.communicate()
        info = gs.parse_key_val(output, sep="=")
        # file is the key questioned in grass.script.core find_file()
        # return code should be equivalent to checking the output
        if info["file"]:
            return True
        return False

Help Index | Topics Index | Keywords Index | Full Index

© 2003-2023 GRASS Development Team, GRASS GIS 8.4.0dev Reference Manual