PySTAC is a library for working with SpatialTemporal Asset Catalog in Python 3.
PySTAC has a single dependency (python-dateutil
).
PySTAC can be installed from pip or the source repository.
> pip install pystac
if you'd like to enable the validation feature utilizing the jsonschema project, install with the optional validation
requirements:
> pip install pystac[validation]
From source repository:
> git clone https://github.com/azavea/pystac.git
> cd pystac
> pip install .
To install a specific versions of STAC, install the matching version of pystac.
> pip install pystac==0.5.*
The table below shows the corresponding versions between pystac and STAC:
pystac | STAC |
---|---|
0.5.x | 1.0.x |
0.4.x | 0.9.x |
0.3.x | 0.8.x |
See the documentation page for the latest docs.
To ensure development libraries are installed, install everything in requirements-dev.txt
:
> pip install -r requirements-dev.txt
Unit tests are in the tests
folder. To run unit tests, use unittest
:
> python -m unittest discover tests
To run linters, code formatters, and test suites all together, use test
:
> ./scripts/test
PySTAC uses flake8 and yapf for code formatting and style checks.
To run the flake8 style checks:
> flake8 pystac
> flake8 tests
To format code:
> yapf -ipr pystac
> yapf -ipr tests
You can also run the ./scripts/test
script to check flake8 and yapf.
To build and develop the documentation locally, make sure sphinx is available (which is installed with requirements-dev.txt
), and use the Makefile in the docs folder:
> cd docs
> make html
> make livehtml
Use 'make' without arguments to see a list of available commands.
Note: nbsphinx
requires that a local pystac
is installed; use pip install -e .
.
There is a quickstart and tutorials written as jupyter notebooks in the docs/tutorials
folder.
To run the notebooks, run a jupyter notebook with the docs
directory as the notebook directory:
> PYTHONPATH=`pwd`:$PYTHONPATH jupyter notebook --ip 0.0.0.0 --port 8888 --notebook-dir=docs
You can then navigate to the notebooks and execute them.
Requires Jupyter be installed.