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

Better control on subfolders in generate_subcatalogs #595

Merged
merged 6 commits into from
Aug 23, 2021

Conversation

fnattino
Copy link
Contributor

@fnattino fnattino commented Aug 4, 2021

Related Issue(s): #480

Description:

Fix Catalog.generate_subcatalogs() to allow for better control on the subcatalogs:

  • subfolders can include multiple template values (e.g. using "${property1}_${property2}" will add a single subfolder layer);
  • subfolders that are common to all items can be setup directly via the template (e.g. "2021-08-04/${property1}" will add the 2021-08-04 subcatalog for all items, without having to use the defaults argument)

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.

@fnattino fnattino changed the title Fix/480 Better control on subfolders in generate_subcatalogs Aug 4, 2021
@codecov-commenter
Copy link

codecov-commenter commented Aug 4, 2021

Codecov Report

Merging #595 (cdeab92) into main (6cbdd88) will increase coverage by 0.00%.
The diff coverage is 100.00%.

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #595    /-   ##
=======================================
  Coverage   94.69%   94.69%           
=======================================
  Files          75       75           
  Lines       10777    10786     9     
  Branches     1053     1057     4     
=======================================
  Hits        10205    10214     9     
  Misses        396      396           
  Partials      176      176           
Impacted Files Coverage Δ
pystac/layout.py 89.38% <ø> (ø)
pystac/catalog.py 91.91% <100.00%> (-0.03%) ⬇️
tests/test_catalog.py 99.18% <100.00%> ( 0.01%) ⬆️

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 6cbdd88...cdeab92. Read the comment docs.

@fnattino fnattino marked this pull request as ready for review August 23, 2021 10:47
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.

Looks great to me, thanks again!

pystac/layout.py Show resolved Hide resolved
pystac/catalog.py Show resolved Hide resolved
@duckontheweb duckontheweb merged commit 0ca2972 into stac-utils:main Aug 23, 2021
@fnattino fnattino deleted the fix/480 branch August 23, 2021 12:52
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] <[email protected]>

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] <[email protected]>

* 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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

* 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 <[email protected]>

* 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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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 <[email protected]>

* 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] <[email protected]>

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] <[email protected]>

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 <[email protected]>

* 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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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 <[email protected]>

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

Co-authored-by: Pete Gadomski <[email protected]>

Co-authored-by: Pete Gadomski <[email protected]>

* 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 <[email protected]>

* 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] <[email protected]>

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] <[email protected]>

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] <[email protected]>

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 <[email protected]>
Co-authored-by: Vincent Sarago <[email protected]>
Co-authored-by: Francesco Nattino <49899980 [email protected]>
Co-authored-by: Pete Gadomski <[email protected]>
Co-authored-by: Thomas Li Fredriksen <[email protected]>
Co-authored-by: Thomas Li Fredriksen <[email protected]>
Co-authored-by: Tyler Battle <[email protected]>
Co-authored-by: Grigory <[email protected]>
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.

4 participants