Python library for working with Spatiotemporal Asset Catalog (STAC).
Project description
PySTAC
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pystac-1.0.0b2.tar.gz
.
File metadata
- Download URL: pystac-1.0.0b2.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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87eba5ce660f4baaf498511dc1bf14bc3ae00226e124c221c2c217a1fb909c03 |
|
MD5 | c9fd3ee60cccde20590f72c818ff926e |
|
BLAKE2b-256 | 808f41503624654095d2d0dfad8dd81d2afab610ae78e462587d36c385ad2a37 |
File details
Details for the file pystac-1.0.0b2-py3-none-any.whl
.
File metadata
- Download URL: pystac-1.0.0b2-py3-none-any.whl
- Upload date:
- Size: 153.7 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e39b535936d179cc0c26433b89136fe2fbced84ebe86711b713ac61174f3eed |
|
MD5 | 5e5f9be3c898097eeabc5c4c4e823501 |
|
BLAKE2b-256 | f5bff91e69b654e481ce15a64d7713d01f93286ed483c864721fe27bb261d7ac |