grass.grassdb package

Submodules

grass.grassdb.checks module

Checking objects in a 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.

grass.grassdb.checks.can_start_in_mapset(mapset_path, ignore_lock=False)[source]

Check if a mapset from a gisrc file is usable for new session

grass.grassdb.checks.dir_contains_location(path)[source]

Return True if directory path contains a valid location

grass.grassdb.checks.get_list_of_locations(dbase)[source]

Get list of GRASS locations in given dbase

Parameters

dbase – GRASS database path

Returns

list of locations (sorted)

grass.grassdb.checks.get_location_invalid_reason(database, location, none_for_no_reason=False)[source]

Returns a message describing what is wrong with the Location

The goal is to provide the most suitable error message (rather than to do a quick check).

By default, when no reason is found, a message about unknown reason is returned. This applies also to the case when this function is called on a valid location (e.g. as a part of larger investigation). none_for_no_reason=True allows the function to be used as part of other diagnostic. When this function fails to find reason for invalidity, other the caller can continue the investigation in their context.

Parameters
  • database – Path to GRASS GIS database directory

  • location – name of a Location

  • none_for_no_reason – When True, return None when reason is unknown

Returns

translated message or None

grass.grassdb.checks.get_location_invalid_suggestion(database, location)[source]

Return suggestion what to do when specified location is not valid

It gives suggestion when:
  • A mapset was specified instead of a location.

  • A GRASS database was specified instead of a location.

grass.grassdb.checks.get_location_name_invalid_reason(grassdb, location_name)[source]

Get reasons why location name is not valid.

It gets reasons when:
  • Name is not valid.

  • Location in the same path already exists.

Returns message as string if there was a reason, otherwise None.

grass.grassdb.checks.get_lockfile_if_present(database, location, mapset)[source]

Return path to lock if present, None otherwise

Returns the path as a string or None if nothing was found, so the return value can be used to test if the lock is present.

grass.grassdb.checks.get_mapset_invalid_reason(database, location, mapset, none_for_no_reason=False)[source]

Returns a message describing what is wrong with the Mapset

The goal is to provide the most suitable error message (rather than to do a quick check).

Parameters
  • database – Path to GRASS GIS database directory

  • location – name of a Location

  • mapset – name of a Mapset

Returns

translated message

grass.grassdb.checks.get_mapset_lock_info(mapset_path)[source]

Get information about .gislock file. Assumes lock file exists, use is_mapset_locked to find out. Returns information as a dictionary with keys ‘owner’ (None if unknown), ‘lockpath’, and ‘timestamp’.

grass.grassdb.checks.get_mapset_name_invalid_reason(database, location, mapset_name)[source]

Get reasons why mapset name is not valid.

It gets reasons when:
  • Name is not valid.

  • Name is reserved for OGR layers.

  • Mapset in the same path already exists.

Returns message as string if there was a reason, otherwise None.

grass.grassdb.checks.get_mapset_owner(mapset_path)[source]

Returns mapset owner name or None if owner name unknown. On Windows it always returns None.

grass.grassdb.checks.get_reason_id_mapset_not_usable(mapset_path)[source]

It finds a reason why mapset is not usable.

Returns a reason id as a string. If mapset path is None or no reason found, returns None.

grass.grassdb.checks.get_reason_mapset_not_removable(grassdb, location, mapset, check_permanent)[source]

Get reason why one mapset cannot be removed.

Parameter check_permanent is True of False. It depends on whether we want to check for permanent mapset or not.

Returns message as string if there was failed check, otherwise None.

grass.grassdb.checks.get_reasons_grassdb_not_removable(grassdb)[source]

Get reasons why one grassdb cannot be removed.

Returns messages as list if there were any failed checks, otherwise empty list.

grass.grassdb.checks.get_reasons_location_not_removable(grassdb, location)[source]

Get reasons why one location cannot be removed.

Returns messages as list if there were any failed checks, otherwise empty list.

grass.grassdb.checks.get_reasons_locations_not_removable(locations)[source]

Get reasons why locations cannot be removed.

Parameter locations is a list of tuples (database, location).

Returns messages as list if there were any failed checks, otherwise empty list.

grass.grassdb.checks.get_reasons_mapsets_not_removable(mapsets, check_permanent)[source]

Get reasons why mapsets cannot be removed.

Parameter mapsets is a list of tuples (database, location, mapset). Parameter check_permanent is True of False. It depends on whether we want to check for permanent mapset or not.

Returns messages as list if there were any failed checks, otherwise empty list.

grass.grassdb.checks.is_current_user_mapset_owner(mapset_path)[source]

Returns True if mapset owner is the current user. On Windows it always returns True.

grass.grassdb.checks.is_different_mapset_owner(mapset_path)[source]

Returns True if mapset owner is different from the current user

grass.grassdb.checks.is_fallback_session()[source]

Checks if a user encounters a fallback GRASS session.

Returns True if a user encounters a fallback session. It occurs when a last mapset is not usable and at the same time a user is in a temporary location.

grass.grassdb.checks.is_first_time_user()[source]

Check if a user is a first-time user.

Returns True if a user is a first-time user. It occurs when a gisrc file has initial settings either in last used mapset or in current mapset settings.

grass.grassdb.checks.is_location_current(database, location)[source]

Return True if the given GRASS Location is the current location

grass.grassdb.checks.is_location_name_valid(database, location_name)[source]

Check if location name is valid.

Returns True if location name is valid, otherwise False.

grass.grassdb.checks.is_location_valid(path, location=None)[source]

Return True if GRASS Location is valid

Parameters
  • path – Path to a Location or to a GRASS GIS database directory

  • location – name of a Location if not part of path

grass.grassdb.checks.is_mapset_current(database, location, mapset)[source]

Return True if the given GRASS Mapset is the current mapset

grass.grassdb.checks.is_mapset_locked(mapset_path)[source]

Check if the mapset is locked

grass.grassdb.checks.is_mapset_name_valid(database, location, mapset_name)[source]

Check if mapset name is valid.

Returns True if mapset name is valid, otherwise False.

grass.grassdb.checks.is_mapset_valid(path, location=None, mapset=None)[source]

Return True if GRASS Mapset is valid

Either only path is provided or all three parameters need to be provided.

Parameters
  • path – Path to a Mapset or to a GRASS GIS database directory

  • location – name of a Location if not part of path

  • mapset – name of a Mapset if not part of path

grass.grassdb.checks.location_exists(path, location=None)[source]

Returns True whether location path exists.

Parameters
  • path – Path to a Location or to a GRASS GIS database directory

  • location – name of a Location if not part of path

grass.grassdb.checks.mapset_exists(path, location=None, mapset=None)[source]

Returns True whether mapset path exists.

Either only path is provided or all three parameters need to be provided.

Parameters
  • path – Path to a Mapset or to a GRASS GIS database directory

  • location – name of a Location if not part of path

  • mapset – name of a Mapset if not part of path

grass.grassdb.config module

Set global variables for objects in a 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.

grass.grassdb.create module

Create objects 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.

grass.grassdb.create.create_mapset(database, location, mapset)[source]

Creates a mapset in a specified location

grass.grassdb.create.get_default_mapset_name()[source]

Returns default name for mapset.

grass.grassdb.data module

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.

grass.grassdb.data.map_exists(name, element, mapset=None, env=None)[source]

Check is map is present in the mapset given in the environment

Parameters
  • name – Name of the map

  • element – Data type (‘raster’, ‘raster_3d’, and ‘vector’)

  • env – Environment created by function grass.script.create_environment

  • mapset – Mapset name, “.” for current mapset only, None for all mapsets in the search path

grass.grassdb.manage module

Managing existing objects in a 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.

class grass.grassdb.manage.MapsetPath(path, directory, location, mapset)[source]

Bases: object

This is a representation of a path to mapset.

Individual components are accessible through read-only properties and objects have an os.PathLike interface.

Paths are currently stored as is (not resolved, not expanded), but that may change in the future.

property directory

Location name

property location

Location name

property mapset

Mapset name

property path

Full path to the mapset as a pathlib.Path object

grass.grassdb.manage.delete_grassdb(database)[source]

Deletes a specified GRASS database

grass.grassdb.manage.delete_location(database, location)[source]

Deletes a specified location

grass.grassdb.manage.delete_mapset(database, location, mapset)[source]

Deletes a specified mapset

grass.grassdb.manage.rename_location(database, old_name, new_name)[source]

Rename location from old_name to new_name

grass.grassdb.manage.rename_mapset(database, location, old_name, new_name)[source]

Rename mapset from old_name to new_name

grass.grassdb.manage.resolve_mapset_path(path, location=None, mapset=None)[source]

Resolve full path to mapset from given combination of parameters.

Full or relative path to mapset can be provided as path. If the path points to a valid location instead of a valid mapset, the mapset defaults to PERMANENT.

Alternatively, location and mapset can be provided separately. In that case, location and mapset are added to the path. If location is provided and mapset is not, mapset defaults to PERMANENT.

Home represented by ~ (tilde) and relative paths are resolved and the result contains absolute paths.

The function does not enforce the existence of the directory or that it is a mapset. It only manipulates the paths except for internal checks which help to determine the result in some cases. On Windows, if the path does not exist and .. is present in the path, it will be not be resolved due to path resolution limitation in the Python pathlib package.

Returns a MapsetPath object.

grass.grassdb.manage.split_mapset_path(mapset_path)[source]

Split mapset path to three parts - grassdb, location, mapset