Metadata-Version: 2.1
Name: pystac
Version: 1.10.1
Summary: Python library for working with the SpatioTemporal Asset Catalog (STAC) specification
Author-email: Rob Emanuele <rdemanuele@gmail.com>, Jon Duckworth <duckontheweb@gmail.com>
Maintainer-email: Pete Gadomski <pete.gadomski@gmail.com>
License: Apache-2.0
Project-URL: Homepage, https://github.com/stac-utils/pystac
Project-URL: Documentation, https://pystac.readthedocs.io
Project-URL: Repository, https://github.com/stac-utils/pystac.git
Project-URL: Changelog, https://github.com/stac-utils/pystac/blob/main/CHANGELOG.md
Project-URL: Discussions, https://github.com/radiantearth/stac-spec/discussions/categories/stac-software
Keywords: pystac,imagery,raster,catalog,STAC
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: python-dateutil >=2.7.0
Provides-Extra: bench
Requires-Dist: asv ~=0.6.0 ; extra == 'bench'
Requires-Dist: packaging ~=24.0 ; extra == 'bench'
Requires-Dist: virtualenv ~=20.22 ; extra == 'bench'
Provides-Extra: docs
Requires-Dist: Sphinx ~=6.2 ; extra == 'docs'
Requires-Dist: boto3 ~=1.28 ; extra == 'docs'
Requires-Dist: ipython ~=8.12 ; extra == 'docs'
Requires-Dist: jinja2 <4.0 ; extra == 'docs'
Requires-Dist: jupyter ~=1.0 ; extra == 'docs'
Requires-Dist: nbsphinx ~=0.9.0 ; extra == 'docs'
Requires-Dist: pydata-sphinx-theme ~=0.13 ; extra == 'docs'
Requires-Dist: rasterio ~=1.3 ; extra == 'docs'
Requires-Dist: shapely ~=2.0 ; extra == 'docs'
Requires-Dist: sphinx-autobuild ==2024.2.4 ; extra == 'docs'
Requires-Dist: sphinx-design ~=0.5.0 ; extra == 'docs'
Requires-Dist: sphinxcontrib-fulltoc ~=1.2 ; extra == 'docs'
Provides-Extra: jinja2
Requires-Dist: jinja2 <4.0 ; extra == 'jinja2'
Provides-Extra: orjson
Requires-Dist: orjson >=3.5 ; extra == 'orjson'
Provides-Extra: test
Requires-Dist: black ~=24.0 ; extra == 'test'
Requires-Dist: codespell ~=2.2 ; extra == 'test'
Requires-Dist: coverage ~=7.2 ; extra == 'test'
Requires-Dist: doc8 ~=1.1 ; extra == 'test'
Requires-Dist: html5lib ~=1.1 ; extra == 'test'
Requires-Dist: jinja2 <4.0 ; extra == 'test'
Requires-Dist: jsonschema ~=4.18 ; extra == 'test'
Requires-Dist: mypy ~=1.2 ; extra == 'test'
Requires-Dist: orjson ~=3.8 ; extra == 'test'
Requires-Dist: pre-commit ~=3.2 ; extra == 'test'
Requires-Dist: pytest-cov ~=5.0 ; extra == 'test'
Requires-Dist: pytest-mock ~=3.10 ; extra == 'test'
Requires-Dist: pytest-recording ~=0.13.0 ; extra == 'test'
Requires-Dist: pytest ~=8.0 ; extra == 'test'
Requires-Dist: requests-mock ~=1.11 ; extra == 'test'
Requires-Dist: ruff ==0.3.4 ; extra == 'test'
Requires-Dist: types-html5lib ~=1.1 ; extra == 'test'
Requires-Dist: types-orjson ~=3.6 ; extra == 'test'
Requires-Dist: types-jsonschema ~=4.18 ; extra == 'test'
Requires-Dist: types-python-dateutil ~=2.8 ; extra == 'test'
Requires-Dist: types-urllib3 ~=1.26 ; extra == 'test'
Provides-Extra: urllib3
Requires-Dist: urllib3 >=1.26 ; extra == 'urllib3'
Provides-Extra: validation
Requires-Dist: jsonschema ~=4.18 ; extra == 'validation'

# PySTAC

[![Build Status](https://github.com/stac-utils/pystac/workflows/CI/badge.svg?branch=main)](https://github.com/stac-utils/pystac/actions/workflows/continuous-integration.yml)
[![PyPI version](https://badge.fury.io/py/pystac.svg)](https://badge.fury.io/py/pystac)
[![Conda (channel only)](https://img.shields.io/conda/vn/conda-forge/pystac)](https://anaconda.org/conda-forge/pystac)
[![Documentation](https://readthedocs.org/projects/pystac/badge/?version=latest)](https://pystac.readthedocs.io/en/latest/)
[![codecov](https://codecov.io/gh/stac-utils/pystac/branch/main/graph/badge.svg)](https://codecov.io/gh/stac-utils/pystac)
[![Gitter](https://badges.gitter.im/SpatioTemporal-Asset-Catalog/python.svg)](https://gitter.im/SpatioTemporal-Asset-Catalog/python?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

PySTAC is a library for working with the [SpatioTemporal Asset Catalog](https://stacspec.org) specification in Python 3.

## Installation

### Install from PyPi (recommended)

```shell
pip install pystac
```

If you would like to enable the validation feature utilizing the
[jsonschema](https://pypi.org/project/jsonschema/) project, install with the optional
`validation` requirements:

```shell
pip install 'pystac[validation]'
```

If you would like to use the [`orjson`](https://pypi.org/project/orjson/) instead of the
standard `json` library for JSON serialization/deserialization, install with the
optional `orjson` requirements:

```shell
pip install 'pystac[orjson]'
```

If you would like to use a custom `RetryStacIO` class for automatically retrying
network requests when reading with PySTAC, you'll need
[`urllib3`](https://urllib3.readthedocs.io/en/stable/):

```shell
pip install 'pystac[urllib3]'
```

If you are using jupyter notebooks and want to enable pretty display of pystac objects you'll need [`jinja2`](https://pypi.org/project/Jinja2/)

```shell
pip install 'pystac[jinja2]'
```

### Install from source

```shell
git clone https://github.com/stac-utils/pystac.git
cd pystac
pip install .
```

See the [installation page](https://pystac.readthedocs.io/en/latest/installation.html)
for more options.

## Documentation

See the [documentation page](https://pystac.readthedocs.io/en/latest/) for the latest docs.

## Developing

See [contributing docs](https://pystac.readthedocs.io/en/latest/contributing.html)
for details on contributing to this project.

## 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:

```shell
jupyter notebook --ip 0.0.0.0 --port 8888 --notebook-dir=docs
```

You can then navigate to the notebooks and execute them.

Requires [Jupyter](https://jupyter.org/) be installed.
