Skip to main content

Python library for working with Spatiotemporal Asset Catalog (STAC).

Project description

PySTAC

Build Status PyPI version Documentation codecov Gitter chat License

PySTAC is a library for working with SpatialTemporal Asset Catalog in Python 3.

Installation

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/stac-utils/pystac.git
> cd pystac
> pip install .

Versions

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
1.x 1.0.x
0.5.x 1.0.0-beta.*
0.4.x 0.9.x
0.3.x 0.8.x

Documentation

See the documentation page for the latest docs.

Developing

To ensure development libraries are installed, install everything in requirements-dev.txt:

> pip install -r requirements-dev.txt

Unit Tests

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

Code quality checks

PySTAC uses flake8 and yapf for code formatting and style checks.

To run the flake8 style checks:

> flake8 pystac tests

To format code:

> yapf -ipr pystac tests

Note that you may have to use yapf3 explicitly depending on your environment.

To check for spelling mistakes in modified files:

> git diff --name-only | xargs codespell -I .codespellignore -f

You can also run the ./scripts/test script to check for linting, spelling, and run unit tests.

Continuous Integration

CI will run the scripts/test script to check for code quality. If you have a Pull Request that fails CI, make sure to fix any linting, spelling or test issues reported by scripts/test.

Documentation

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

Note: You will see some warnings along the lines of

WARNING: duplicate object description of pystac.Collection.id,
other instance in api, use :noindex: for one of them

for some of the classes. This is expected due to sphinx-doc/sphinx#8664.

Use 'make' without arguments to see a list of available commands.

Note: nbsphinx requires that a local pystac is installed; use pip install -e ..

Running the quickstart and tutorials

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pystac-1.0.0b1.tar.gz (121.0 kB view details)

Uploaded Source

Built Distribution

pystac-1.0.0b1-py3-none-any.whl (153.8 kB view details)

Uploaded Python 3

File details

Details for the file pystac-1.0.0b1.tar.gz.

File metadata

  • Download URL: pystac-1.0.0b1.tar.gz
  • Upload date:
  • Size: 121.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for pystac-1.0.0b1.tar.gz
Algorithm Hash digest
SHA256 e16df2ca3d49a70ecf9b9c80f077ee2ccfae9a87d17e35b2cb27d665f6d7d983
MD5 e60af6cc3aed518d7673e03e7ff02a2b
BLAKE2b-256 6c466b30e4c8b796ff9e3a663403aecd9ff282618960306c4aef2c62e11b7d0c

See more details on using hashes here.

File details

Details for the file pystac-1.0.0b1-py3-none-any.whl.

File metadata

  • Download URL: pystac-1.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 153.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for pystac-1.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 0b90550b1c1dda59b1035376c28a7ad1c4b3d8d5baa82be44bef1df7d02ada2d
MD5 935276c519f0202baf689b362c3f07e9
BLAKE2b-256 f548056d195efd4e98358ace211b8cbff0a510ec466376d4a713228970cdf363

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page