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
and pre-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 :)