Skip to content

Commit

Permalink
Merge v1.2.0 changes into release branch (#664)
Browse files Browse the repository at this point in the history
* build(deps): bump ipython from 7.25.0 to 7.26.0 (#592)

Bumps [ipython](https://github.com/ipython/ipython) from 7.25.0 to 7.26.0.
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](ipython/ipython@7.25.0...7.26.0)

---
updated-dependencies:
- dependency-name: ipython
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump nbsphinx from 0.8.6 to 0.8.7

Bumps [nbsphinx](https://github.com/spatialaudio/nbsphinx) from 0.8.6 to 0.8.7.
- [Release notes](https://github.com/spatialaudio/nbsphinx/releases)
- [Changelog](https://github.com/spatialaudio/nbsphinx/blob/master/NEWS.rst)
- [Commits](spatialaudio/nbsphinx@0.8.6...0.8.7)

---
updated-dependencies:
- dependency-name: nbsphinx
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Avoid implicit re-exports (#591)

* Remove implicit re-exports

* Enable mypy strict mode

* Update CHANGELOG for #591

* build(deps): bump orjson from 3.6.0 to 3.6.1 (#596)

Bumps [orjson](https://github.com/ijl/orjson) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](ijl/orjson@3.6.0...3.6.1)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump pre-commit from 2.13.0 to 2.14.0 (#600)

Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 2.13.0 to 2.14.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/master/CHANGELOG.md)
- [Commits](pre-commit/pre-commit@v2.13.0...v2.14.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump types-orjson from 0.1.1 to 3.6.0 (#599)

Bumps [types-orjson](https://github.com/python/typeshed) from 0.1.1 to 3.6.0.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-orjson
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump types-python-dateutil from 0.1.4 to 0.1.6 (#598)

Bumps [types-python-dateutil](https://github.com/python/typeshed) from 0.1.4 to 0.1.6.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* exclude tests from package distribution (#604)

* exclude tests from package distribution

* update changelog

* Get link title from target, when possible (#607)

* Get link title from target, when possible

* Update CHANGELOG for #607

* Add tests for serialization and title in init

* Better control on subfolders in `generate_subcatalogs` (#595)

* LayoutTemplate.get_template_values -> .substitute

* test that template elements can be merged in a subdir

* fix test to use "/" as separator in template

* fix docs on the use of "/" as template path separator

* add changes to CHANGELOG.md

* build(deps): bump orjson from 3.6.1 to 3.6.3 (#610)

Bumps [orjson](https://github.com/ijl/orjson) from 3.6.1 to 3.6.3.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](ijl/orjson@3.6.1...3.6.3)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Apply StacIO instance from root in Catalog.set_root (#590)

* Use root StacIO in Catalog.set_root

* Add "public" Catalog.stac_io property

* Update CHANGELOG for #590

* Revert "Add "public" Catalog.stac_io property"

This reverts commit 9c229d0.

* Fix some docstrings in catalog.py

* Fix remaining Catalog.stac_io reference

* Remove outdated CHANGELOG entry

* Update PR template for main branch rename (#613)

* build(deps): bump black from 21.7b0 to 21.8b0 (#614)

Bumps [black](https://github.com/psf/black) from 21.7b0 to 21.8b0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/commits)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump codecov/codecov-action from 2.0.2 to 2.0.3 (#612)

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](codecov/codecov-action@v2.0.2...v2.0.3)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump ipython from 7.26.0 to 7.27.0 (#615)

* build(deps): bump ipython from 7.26.0 to 7.27.0

Bumps [ipython](https://github.com/ipython/ipython) from 7.26.0 to 7.27.0.
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](ipython/ipython@7.26.0...7.27.0)

---
updated-dependencies:
- dependency-name: ipython
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update Python 3.10 CI version

* Use stable toolchain for orjson build

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jon Duckworth <duckontheweb@gmail.com>

* build(deps): bump pre-commit from 2.14.0 to 2.14.1 (#616)

Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 2.14.0 to 2.14.1.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/master/CHANGELOG.md)
- [Commits](pre-commit/pre-commit@v2.14.0...v2.14.1)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump types-python-dateutil from 0.1.6 to 2.8.0 (#620)

Bumps [types-python-dateutil](https://github.com/python/typeshed) from 0.1.6 to 2.8.0.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump pre-commit from 2.14.1 to 2.15.0 (#621)

Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 2.14.1 to 2.15.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/master/CHANGELOG.md)
- [Commits](pre-commit/pre-commit@v2.14.1...v2.15.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Use Sequence for annotations for label classes (#627)

* Use Sequence for annotations for label classes

Per https://mypy.readthedocs.io/en/stable/common_issues.html#variance,
`List` is invariant, so the LabelClasses.classes type annotation is
unncessarily strict. This commit relaxes the type annotation to use
`Sequence`, including a simple unit test.

* Update CHANGELOG for #627

* build(deps): bump codecov/codecov-action from 2.0.3 to 2.1.0 (#623)

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.3 to 2.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](codecov/codecov-action@v2.0.3...v2.1.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump doc8 from 0.9.0 to 0.9.1 (#628)

Bumps [doc8](https://github.com/pycqa/doc8) from 0.9.0 to 0.9.1.
- [Release notes](https://github.com/pycqa/doc8/releases)
- [Commits](PyCQA/doc8@0.9.0...0.9.1)

---
updated-dependencies:
- dependency-name: doc8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump sphinx from 4.1.2 to 4.2.0 (#624)

Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 4.1.2 to 4.2.0.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/4.x/CHANGES)
- [Commits](sphinx-doc/sphinx@v4.1.2...v4.2.0)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump black from 21.8b0 to 21.9b0 (#625)

Bumps [black](https://github.com/psf/black) from 21.8b0 to 21.9b0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/commits)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump ipython from 7.27.0 to 7.28.0 (#629)

Bumps [ipython](https://github.com/ipython/ipython) from 7.27.0 to 7.28.0.
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](ipython/ipython@7.27.0...7.28.0)

---
updated-dependencies:
- dependency-name: ipython
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump jsonschema from 3.2.0 to 4.0.1 (#630)

Bumps [jsonschema](https://github.com/Julian/jsonschema) from 3.2.0 to 4.0.1.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](python-jsonschema/jsonschema@v3.2.0...v4.0.1)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump coverage from 5.5 to 6.0 (#632)

Bumps [coverage](https://github.com/nedbat/coveragepy) from 5.5 to 6.0.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](nedbat/coveragepy@coverage-5.5...6.0)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump orjson from 3.6.3 to 3.6.4 (#631)

Bumps [orjson](https://github.com/ijl/orjson) from 3.6.3 to 3.6.4.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](ijl/orjson@3.6.3...3.6.4)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump coverage from 6.0 to 6.0.1 (#636)

Bumps [coverage](https://github.com/nedbat/coveragepy) from 6.0 to 6.0.1.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](nedbat/coveragepy@6.0...6.0.1)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump flake8 from 3.9.2 to 4.0.1 (#637)

Bumps [flake8](https://github.com/pycqa/flake8) from 3.9.2 to 4.0.1.
- [Release notes](https://github.com/pycqa/flake8/releases)
- [Commits](PyCQA/flake8@3.9.2...4.0.1)

---
updated-dependencies:
- dependency-name: flake8
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump types-orjson from 3.6.0 to 3.6.1 (#640)

Bumps [types-orjson](https://github.com/python/typeshed) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump jsonschema from 4.0.1 to 4.1.1 (#643)

Bumps [jsonschema](https://github.com/Julian/jsonschema) from 4.0.1 to 4.1.1.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](python-jsonschema/jsonschema@v4.0.1...v4.1.1)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump types-python-dateutil from 2.8.0 to 2.8.2 (#642)

Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.0 to 2.8.2.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump coverage from 6.0.1 to 6.0.2 (#639)

Bumps [coverage](https://github.com/nedbat/coveragepy) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](nedbat/coveragepy@6.0.1...6.0.2)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump jsonschema from 4.1.1 to 4.1.2 (#644)

Bumps [jsonschema](https://github.com/Julian/jsonschema) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](python-jsonschema/jsonschema@v4.1.1...v4.1.2)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Revert "Apply StacIO instance from root in Catalog.set_root (#590)" (#633)

This reverts commit 5ddfa83.

* Extension/datacube - added variable property (#645)

* Extension/datacube - added variable property

* Extension/datacube - complied with pre-commit hooks

* Extension/datacube - applied suggest changes from pr #645

* Extension/datacube - applied suggest changes from pr #645

Co-authored-by: Thomas Li Fredriksen <thomas.fredriksen@oceandata.earth>

* build(deps): bump coverage from 6.0.2 to 6.1.1 (#650)

Bumps [coverage](https://github.com/nedbat/coveragepy) from 6.0.2 to 6.1.1.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](nedbat/coveragepy@6.0.2...6.1.1)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump black from 21.9b0 to 21.10b0 (#649)

Bumps [black](https://github.com/psf/black) from 21.9b0 to 21.10b0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/commits)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Extension/Table - Added extension (#646)

* Extension/table - created extension

* Extension/table - Added extension hook. Added unittests

* Extension/table - Removed deepcopy usage

* Extension/table - Implemented changes proposed in PR #646

* Extension/table - Updated docs for PR #646

* Extension/table - Updated changelog for PR #646

Co-authored-by: Thomas Li Fredriksen <thomas.fredriksen@oceandata.earth>

* build(deps): bump ipython from 7.28.0 to 7.29.0 (#648)

Bumps [ipython](https://github.com/ipython/ipython) from 7.28.0 to 7.29.0.
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](ipython/ipython@7.28.0...7.29.0)

---
updated-dependencies:
- dependency-name: ipython
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump jsonschema from 4.1.2 to 4.2.0 (#651)

Bumps [jsonschema](https://github.com/Julian/jsonschema) from 4.1.2 to 4.2.0.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](python-jsonschema/jsonschema@v4.1.2...v4.2.0)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump jsonschema from 4.2.0 to 4.2.1 (#655)

Bumps [jsonschema](https://github.com/Julian/jsonschema) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/Julian/jsonschema/releases)
- [Changelog](https://github.com/Julian/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](python-jsonschema/jsonschema@v4.2.0...v4.2.1)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Use stable Python 3.10 in CI (#656)

* Use stable python 3.10 in CI

* Add CHANGELOG entry for 656

* Update README.md

Co-authored-by: Pete Gadomski <pete.gadomski@gmail.com>

* Update .github/workflows/continuous-integration.yml

Co-authored-by: Pete Gadomski <pete.gadomski@gmail.com>

Co-authored-by: Pete Gadomski <pete.gadomski@gmail.com>

* Packaging: Add Trove Classifier for Python 3.10 (#659)

* gitignore .python-version file (#647)

* Gitignore .python-version file

* Add CHANGELOG entry for #647

* Fix string enum serialization (#654)

* Add failing test for RelType serialization

* Fix serialization of string Enum classes

* Add CHANGELOG entry for 654

* Use assertEqual instead of assert + ==

* Use StringEnum in remaining classes inheriting from str, Enum

* Add an extra SELF_CONTAINED catalog test (#658)

* Add an extra SELF_CONTAINED catalog test

* Improve unit test

* Run pre-commit

* Make linter happy

* Update test to avoid checking 'self' link

'self' link is always absolute; PySTAC avoids writing
the link if the Catalog is self contained or relative published
(besides the root catalog in the latter case).

* Inline test issue-specific catalog; check raw json

* Set root on resolved links when setting on Catalog

When setting the root on a Catalog, also set the root on
any child or item objects that are resolved. This handles the case
where child items and catalogs were created, added to a catalog,
and then that catalog added to another catalog, invalidating the
originally set root links of the leaf items and catalogs.

* Close file properly in test

* Message which catalog failed for better debugging

* Don't recursively clear the root of children/items

When clearing the root link of a Catalog, avoid clearing the
root link of the children/items. This is to avoid the root link clearing
in the "clone" method to avoid touching the un-cloned linked STAC Objects.

* Use STACObject.set_root in full_copy

This avoids logic in the child class implementations that are incompatible
with the full_copy logic, such as the Catalog's call of set_root
on of child and item links. This crawling logic is handled by full_copy
itself.

* Update CHANGELOG

Co-authored-by: Rob Emanuele <rdemanuele@gmail.com>

* build(deps): bump coverage from 6.1.1 to 6.1.2 (#660)

Bumps [coverage](https://github.com/nedbat/coveragepy) from 6.1.1 to 6.1.2.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](nedbat/coveragepy@6.1.1...6.1.2)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump sphinx from 4.2.0 to 4.3.0 (#661)

Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/4.x/CHANGES)
- [Commits](sphinx-doc/sphinx@v4.2.0...v4.3.0)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump doc8 from 0.9.1 to 0.10.1 (#662)

Bumps [doc8](https://github.com/pycqa/doc8) from 0.9.1 to 0.10.1.
- [Release notes](https://github.com/pycqa/doc8/releases)
- [Commits](PyCQA/doc8@0.9.1...0.10.1)

---
updated-dependencies:
- dependency-name: doc8
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Allow PySTAC to skip transforming hrefs to relative or absolute based on CatalogType (#663)

* Use clone_item to determine preserve_dict

Currently the clone_item parameter only affects the case
where the items are pystac.Items. The analogous use
for a list of Dicts representing the Items is
by using preserve_dict if the Items should be "cloned".
This allows users to use clone_item=False to speed
up reading ItemCollections in the case that they are
passing in a list of Dicts.

* Take a Callable instead of a Type for set_default

This shouldn't break any client code as a Type[StacIO] is
itself a Callable[[], StacIO]. This allows flexibility
in how we generate the StacIO object, which is useful
in cases like mocking the StacIO object.

* Add MockDefaultStacIO

This allows the default StacIO to be set inside a context
manager for tests that want to utilize a mock as the default StacIO.

* Test ItemCollection.to_dict won't read item roots

This test, which fails without a subsequent fix,
tests that there should only be a single read operation
when convering an ItemCollection to a dict. This test
fails due to the root link being read for each item
in the logic that determines if heirarchial links should
be absolute or relative.

* Allow link href transformation logic to be skipped

This adds a new option to determine if a link's href
should be transformed based on the link's owner's root
catalog type. The current implementation always checks
the link's owner for a root catalog, and if it exists
and if that root catalog is of type RELATIVE_PUBLISHED
or SELF_CONTAINED, and that link is a hierarchical link,
then the link's href is transformed to be relative to
the link's owner's root catalog.

The default option is to maintain this behavior for
the default to_dict method, along with the
Catalog, Collection and Item to_dict methods; but this
flag now allows users to skip this link href transformation,
saving reads.

The ItemCollection.to_dict method was modified to skip
link transformation by default. If Items exist in an
ItemCollection, the likely desired behavior is not to modify
the link hrefs based on the root catalog type, and the result
of transforming hrefs in situations where the ItemCollection
does not itself have a root catalog results in a root link
resolution for each Item, which can be very slow.

* Update CHANGELOG

* Bump to v1.2.0 (#653)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rob Emanuele <rdemanuele@gmail.com>
Co-authored-by: Vincent Sarago <vincent.sarago@gmail.com>
Co-authored-by: Francesco Nattino <49899980+fnattino@users.noreply.github.com>
Co-authored-by: Pete Gadomski <pete.gadomski@gmail.com>
Co-authored-by: Thomas Li Fredriksen <thomafred@users.noreply.github.com>
Co-authored-by: Thomas Li Fredriksen <thomas.fredriksen@oceandata.earth>
Co-authored-by: Tyler Battle <tyler@battle.ca>
Co-authored-by: Grigory <gr.pomadchin@gmail.com>
  • Loading branch information
10 people authored Nov 12, 2021
1 parent 0e4a87e commit 2f57a92
Show file tree
Hide file tree
Showing 50 changed files with 1,254 additions and 147 deletions.
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@
- [ ] Tests pass (run `scripts/test`)
- [ ] Documentation has been updated to reflect changes, if applicable
- [ ] This PR maintains or improves overall codebase code coverage.
- [ ] Changes are added to the [CHANGELOG](https://github.com/stac-utils/pystac/blob/develop/CHANGELOG.md). See [the docs](https://pystac.readthedocs.io/en/latest/contributing.html#changelog) for information about adding to the changelog.
- [ ] Changes are added to the [CHANGELOG](https://github.com/stac-utils/pystac/blob/main/CHANGELOG.md). See [the docs](https://pystac.readthedocs.io/en/latest/contributing.html#changelog) for information about adding to the changelog.
15 changes: 6 additions & 9 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ jobs:
test:
name: test
runs-on: ${{ matrix.os }}
continue-on-error: ${{ startsWith(matrix.python-version, '3.10')}}
strategy:
# Allow other matrix jobs to complete if 1 fails
fail-fast: false
Expand All @@ -23,7 +22,7 @@ jobs:
- "3.7"
- "3.8"
- "3.9"
- "3.10.0-beta.3"
- "3.10"
os:
- ubuntu-latest
- windows-latest
Expand All @@ -38,13 +37,11 @@ jobs:
python-version: ${{ matrix.python-version }}

- uses: actions-rs/toolchain@v1
# No wheels exist for orjson on Python 3.10 on MacOS or Windows, and the Linux
# wheels are sometimes not uploaded until after the package is initially
# published. This sets up the Rust nightly toolchain so we can build the orjson
# wheel.
# Wheels for orjson on Python 3.10 are still spotty on MacOS or Windows. This sets up the Rust
# toolchain so we can build the orjson wheel.
if: ${{ startsWith(matrix.python-version, '3.10')}}
with:
toolchain: nightly-2021-04-27
toolchain: stable
override: true
default: true
profile: minimal
Expand Down Expand Up @@ -120,7 +117,7 @@ jobs:
run: coverage xml --fail-under 0

- name: Upload All coverage to Codecov
uses: codecov/codecov-action@v2.0.2
uses: codecov/codecov-action@v2.1.0
if: ${{ env.GITHUB_REPOSITORY }} == 'stac-utils/pystac'
with:
token: ${{ secrets.CODECOV_TOKEN }}
Expand All @@ -142,7 +139,7 @@ jobs:
- "3.7"
- "3.8"
- "3.9"
- "3.10.0-beta.3"
- "3.10"

steps:
- uses: actions/checkout@v2
Expand Down
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -106,14 +106,14 @@ ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
Expand Down
34 changes: 33 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,37 @@

### Deprecated

## [v1.2.0]

### Added

- Added Table-extension ([#646](https://github.com/stac-utils/pystac/pull/646))
- Stable support for Python 3.10 ([#656](https://github.com/stac-utils/pystac/pull/656))
- `.python-version` files are now ignored by Git ([#647](https://github.com/stac-utils/pystac/pull/647))
- Added a flag to allow users to skip transforming hierarchical link HREFs based on root catalog type ([#663](https://github.com/stac-utils/pystac/pull/663))

### Removed

- Exclude `tests` from package distribution. This should make the package lighter ([#604](https://github.com/stac-utils/pystac/pull/604))

### Changed

- Enable [strict
mode](https://mypy.readthedocs.io/en/latest/command_line.html?highlight=strict%20mode#cmdoption-mypy-strict)
for `mypy` ([#591](https://github.com/stac-utils/pystac/pull/591))
- Links will get their `title` from their target if no `title` is provided ([#607](https://github.com/stac-utils/pystac/pull/607))
- Relax typing on `LabelClasses` from `List` to `Sequence` ([#627](https://github.com/stac-utils/pystac/pull/627))
- Upgraded datacube-extension to version 2.0.0 ([#645](https://github.com/stac-utils/pystac/pull/645))
- By default, ItemCollections will not modify Item HREFs based on root catalog type to avoid performance costs of root link reads ([#663](https://github.com/stac-utils/pystac/pull/663))

### Fixed

- `generate_subcatalogs` can include multiple template values in a single subfolder layer
([#595](https://github.com/stac-utils/pystac/pull/595))
- Avoid implicit re-exports ([#591](https://github.com/stac-utils/pystac/pull/591))
- Fix issue that caused incorrect root links when constructing multi-leveled catalogs ([#658](https://github.com/stac-utils/pystac/pull/658))
- Regression where string `Enum` values were not serialized properly in methods like `Link.to_dict` ([#654](https://github.com/stac-utils/pystac/pull/654))

## [v1.1.0]

### Added
Expand Down Expand Up @@ -494,7 +525,8 @@ use `Band.create`

Initial release.

[Unreleased]: <https://github.com/stac-utils/pystac/compare/v1.1.0..main>
[Unreleased]: <https://github.com/stac-utils/pystac/compare/v1.2.0..main>
[v1.2.0]: <https://github.com/stac-utils/pystac/compare/v1.1.0..v1.2.0>
[v1.1.0]: <https://github.com/stac-utils/pystac/compare/v1.0.1..v1.1.0>
[v1.0.1]: <https://github.com/stac-utils/pystac/compare/v1.0.0..v1.0.1>
[v1.0.0]: <https://github.com/stac-utils/pystac/compare/v1.0.0-rc.3..v1.0.0>
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ for Python versions. This means that users can expect support for Python 3.7 to
removed from the `main` branch after Dec 26, 2021 and therefore from the next release
after that date.

*Support for Python >= 3.10 should be considered experimental
until further notice.*
Note that while we support Python 3.10.\*, wheels for the `orjson` library are not always immediately available for all
platforms. If you install PySTAC with the `orjson` extra, you may need to have the Rust toolchain installed (e.g. via [rustup](https://rustup.rs/)) in order to
build the package from source.

PySTAC has a single required dependency (`python-dateutil`).
PySTAC can be installed from pip or the source repository.
Expand Down
49 changes: 49 additions & 0 deletions docs/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,22 @@ AdditionalDimension
:show-inheritance:
:inherited-members:

VariableType
~~~~~~~~~~~~

.. autoclass:: pystac.extensions.datacube.VariableType
:members:
:show-inheritance:
:inherited-members:

Variable
~~~~~~~~

.. autoclass:: pystac.extensions.datacube.Variable
:members:
:show-inheritance:
:inherited-members:

DatacubeExtension
~~~~~~~~~~~~~~~~~

Expand Down Expand Up @@ -793,6 +809,39 @@ ItemScientificExtension
:members:
:show-inheritance:

Table Extension
---------------

These classes are representations of the :stac-ext:`Table Extension Spec <tables>`.

TableExtension
~~~~~~~~~~~~~~

.. autoclass:: pystac.extensions.table.TableExtension
:members:
:show-inheritance:

CollectionTableExtension
~~~~~~~~~~~~~~~~~~~~~~~~

.. autoclass:: pystac.extensions.table.CollectionTableExtension
:members:
:show-inheritance:

ItemTableExtension
~~~~~~~~~~~~~~~~~~

.. autoclass:: pystac.extensions.table.ItemTableExtension
:members:
:show-inheritance:

AssetTableExtension
~~~~~~~~~~~~~~~~~~~

.. autoclass:: pystac.extensions.table.AssetTableExtension
:members:
:show-inheritance:

Timestamps Extension
--------------------

Expand Down
6 changes: 4 additions & 2 deletions docs/concepts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ To use them you can pass in a strategy to the normalize_hrefs call.
Using templates
'''''''''''''''

You can utilze template strings to determine the file paths of HREFs set on Catalogs,
You can utilize template strings to determine the file paths of HREFs set on Catalogs,
Collection or Items. These templates use python format strings, which can name
the property or attribute of the item you want to use for replacing the template
variable. For example:
Expand All @@ -84,7 +84,9 @@ variable. For example:
The above code will save items in subfolders based on the collection ID, year and month
of it's datetime (or start_datetime if a date range is defined and no datetime is
defined).
defined). Note that the forward slash (``/``) should be used as path separator in the
template string regardless of the system path separator (thus both in POSIX-compliant
and Windows environments).

You can use dot notation to specify attributes of objects or keys in dictionaries for
template variables. PySTAC will look at the object, it's ``properties`` and its
Expand Down
14 changes: 1 addition & 13 deletions mypy.ini
Original file line number Diff line number Diff line change
@@ -1,18 +1,6 @@
[mypy]
check_untyped_defs = True
disallow_any_generics = True
disallow_incomplete_defs = True
disallow_subclassing_any = True
disallow_untyped_calls = True
disallow_untyped_decorators = True
disallow_untyped_defs = True
no_implicit_optional = True
show_error_codes = True
strict_equality = True
warn_redundant_casts = True
warn_return_any = True
warn_unused_configs = True
warn_unused_ignores = True
strict = True

[mypy-jsonschema.*]
ignore_missing_imports = True
Expand Down
45 changes: 42 additions & 3 deletions pystac/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,43 @@
"""
PySTAC is a library for working with SpatioTemporal Asset Catalogs (STACs)
"""
__all__ = [
"__version__",
"STACError",
"STACTypeError",
"DuplicateObjectKeyError",
"ExtensionAlreadyExistsError",
"ExtensionNotImplemented",
"ExtensionTypeError",
"RequiredPropertyMissing",
"STACValidationError",
"MediaType",
"RelType",
"StacIO",
"STACObject",
"STACObjectType",
"Link",
"HIERARCHICAL_LINKS",
"Catalog",
"CatalogType",
"Collection",
"Extent",
"SpatialExtent",
"TemporalExtent",
"Summaries",
"CommonMetadata",
"RangeSummary",
"Item",
"Asset",
"ItemCollection",
"Provider",
"ProviderRole",
"read_file",
"read_dict",
"write_file",
"get_stac_version",
"set_stac_version",
]

from pystac.errors import (
STACError,
Expand Down Expand Up @@ -30,11 +67,11 @@
Extent,
SpatialExtent,
TemporalExtent,
Summaries,
)
from pystac.common_metadata import CommonMetadata
from pystac.summaries import RangeSummary
from pystac.item import Item, Asset
from pystac.summaries import RangeSummary, Summaries
from pystac.asset import Asset
from pystac.item import Item
from pystac.item_collection import ItemCollection
from pystac.provider import ProviderRole, Provider
import pystac.validation
Expand All @@ -50,6 +87,7 @@
import pystac.extensions.sar
import pystac.extensions.sat
import pystac.extensions.scientific
import pystac.extensions.table
import pystac.extensions.timestamps
import pystac.extensions.version
import pystac.extensions.view
Expand All @@ -66,6 +104,7 @@
pystac.extensions.sar.SAR_EXTENSION_HOOKS,
pystac.extensions.sat.SAT_EXTENSION_HOOKS,
pystac.extensions.scientific.SCIENTIFIC_EXTENSION_HOOKS,
pystac.extensions.table.TABLE_EXTENSION_HOOKS,
pystac.extensions.timestamps.TIMESTAMPS_EXTENSION_HOOKS,
pystac.extensions.version.VERSION_EXTENSION_HOOKS,
pystac.extensions.view.VIEW_EXTENSION_HOOKS,
Expand Down
Loading

0 comments on commit 2f57a92

Please sign in to comment.