A simple library to use GRASS GIS from python. You can specify the GRASS executable that you want to use with an enviromental variable called: GRASSBIN
In development
To install the stable version use:
$ pip install grass-session
To install the current development version use:
$ pip install git+https://github.com/zarch/grass-session.git
Set the GRASS GIS binary that you want to use with: export GRASSBIN=grass75:
>>> from grass_session import Session >>> from grass.script import core as gcore >>> with Session(gisdb="/tmp", location="location", ... create_opts="EPSG:4326"): ... print(gcore.parse_command("g.gisenv", flags="s")) {u'GISDBASE': u"'/tmp/';", u'LOCATION_NAME': u"'epsg3035';", u'MAPSET': u"'PERMANENT';",} >>> with Session(gisdb="/tmp", location="location", mapset="test", ... create_opts=""): ... print(gcore.parse_command("g.gisenv", flags="s")) {u'GISDBASE': u"'/tmp/';", u'LOCATION_NAME': u"'epsg3035';", u'MAPSET': u"'test';",}
Clone the repository:
$ git clone git@github.com:zarch/grass_session.git
Make sure that
py.test
,tox
andpre-commit
are installed:$ pip install -r requirements-testing.txt
Install
pre-commit
hook in the local repository:$ pre-commit install
Test locally with
py.test
:$ pytest -vv .
To see the coverage use:
$ pytest -v --cov=grass_session --cov-report=html .
To test with different version of python or grass use:
$ GRASSBIN=~/.local/bin/grassXX PYTHONPATH="pwd:$PYTHONPATH" pytest .
Test against multiple Python environments using
tox
:$ tox ... _______________________ summary _____________________________ py27: commands succeeded py36: commands succeeded py37: commands succeeded py38: commands succeeded congratulations :)