Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extension/Table - Added extension #646

Merged
merged 6 commits into from
Nov 8, 2021
Merged

Extension/Table - Added extension #646

merged 6 commits into from
Nov 8, 2021

Conversation

thomafred
Copy link
Contributor

@thomafred thomafred commented Oct 28, 2021

Related Issue(s): #

Description:
Added support for the Table-extension by @TomAugspurger:

https://github.com/stac-extensions/table

PR Checklist:

  • Code is formatted (run pre-commit run --all-files)
  • 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. See the docs for information about adding to the changelog.

@codecov-commenter
Copy link

codecov-commenter commented Oct 28, 2021

Codecov Report

Merging #646 (61dd1c9) into main (4cc8483) will decrease coverage by 0.51%.
The diff coverage is 75.53%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #646      +/-   ##
==========================================
- Coverage   94.73%   94.21%   -0.52%     
==========================================
  Files          75       77       +2     
  Lines       10837    11077     +240     
  Branches     1060     1075      +15     
==========================================
+ Hits        10266    10436     +170     
- Misses        396      465      +69     
- Partials      175      176       +1     
Impacted Files Coverage Δ
pystac/__init__.py 100.00% <ø> (ø)
pystac/extensions/table.py 69.93% <69.93%> (ø)
tests/extensions/test_table.py 100.00% <100.00%> (ø)
pystac/extensions/datacube.py 64.04% <0.00%> (-0.24%) ⬇️
pystac/catalog.py 91.91% <0.00%> (-0.05%) ⬇️
tests/test_catalog.py 99.18% <0.00%> (-0.02%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4cc8483...61dd1c9. Read the comment docs.

Copy link
Collaborator

@TomAugspurger TomAugspurger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this! Looks good at a quick glance.

We might want to add the classes to the API docs: https://github.com/stac-utils/pystac/blob/main/docs/api.rst

pystac/extensions/table.py Show resolved Hide resolved
Copy link
Contributor

@duckontheweb duckontheweb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks once again @thomafred.

Looks good overall, I just had a couple of comments about the deepcopy usage. Let me know what you think about those, and I can open a separate issue to make that more consistent throughout the code.

pystac/extensions/table.py Outdated Show resolved Hide resolved
pystac/extensions/table.py Outdated Show resolved Hide resolved
pystac/extensions/table.py Outdated Show resolved Hide resolved
tests/data-files/table/README.md Outdated Show resolved Hide resolved
@thomafred
Copy link
Contributor Author

Thank you @duckontheweb for your feedback.

I have pushed the changes you and @TomAugspurger suggested and updated the docs

Copy link
Contributor

@duckontheweb duckontheweb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @thomafred, this looks good.

For some reason the coverage is dropping in catalog.py, test_catalog.py, and datacube.py, but I can't see any reason why this PR would be causing that. I'm going to try rebasing onto master to see if that solves the problem, but I don't think we should hold up this PR on account of that.

@duckontheweb
Copy link
Contributor

Actually, @thomafred it looks like I don't have permission to push to this repo. Would you mind rebasing this and pushing the changes?

@thomafred
Copy link
Contributor Author

@duckontheweb I have rebased with main and pushed :)

Copy link
Contributor

@duckontheweb duckontheweb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @thomafred. Looks good to me!

@duckontheweb duckontheweb merged commit 4d00f9f into stac-utils:main Nov 8, 2021
duckontheweb pushed a commit that referenced this pull request Nov 12, 2021
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants