Skip to content

Releases: stac-utils/pystac

v1.7.1

21 Mar 18:42
v1.7.1
Compare
Choose a tag to compare

This is a bugfix release for #1048 which corrects Item's __geo_interface__ property to return the whole feature, not just the geometry. This also includes some linting and infrastructure fixups.

What's Changed

Full Changelog: v1.7.0...v1.7.1

v1.7.0

06 Mar 21:19
v1.7.0
Compare
Choose a tag to compare

Summary

Many bug fixes and feature additions. Some changes/additions of note:

Issues and pull requests are grouped into the Github milestone.

Changelog

Added

  • Additional util methods now_in_utc and now_to_rfc3339_str (#760)
  • media_type and role filtering to Item and Collection get_assets() method (#936)
  • Asset.has_role (#936)
  • Enum MediaType entry for flatgeobuf (discussion) (#938)
  • Custom header support to DefaultStacIO (#889)
  • Python 3.11 checks in CI (#908)
  • Ability to only update resolved links when using Catalog.normalize_hrefs and Catalog.normalize_and_save, via a new skip_unresolved argument (#900)
  • Optional argument timespec to utils.datetime_to_str (#929)
  • isort (#961)
  • AsIsLayoutStrategy (#919)
  • __geo_interface__ for items (#885)
  • Optional strategy parameter to catalog.add_items() (#967)
  • start_datetime and end_datetime arguments to the Item constructor (#918)
  • RetryStacIO (#986)
  • STACObject.remove_hierarchical_links and Link.is_hierarchical (#999)
  • extra_fields to AssetDefinition in the item assets extension (#1003)
  • Catalog.fully_resolve (#1001)
  • A DeprecatedWarning when deserializing an Item or Collection to a STAC object via the from_dict() method (1006)
  • Support for relative stac extension paths via make_absolute_href (#884)

Changed

  • Projection extension updated to use v1.1.0 (#989).
  • Update Grid Extension support to v1.1.0 and fix issue with grid:code prefix validation (#925)
  • Switch to pytest (#939)
  • Use from __future__ import annotations for type signatures (#962)
  • Use TypeVar for alternate constructors (#983)
  • Behavior when required fields are missing in Item.from_dict (#994)
  • By default, ItemCollection now clones items in iterator (clone_items=True) (#1016)

Deprecated

  • TemplateError in layout.py deprecated in favor of duplicate in errors.py (#1018)

Fixed

  • Creating dictionaries from Catalogs and Collections without root hrefs now creates valid STAC (#896)
  • Dependency resolution when installing requirements-dev.txt (#897)
  • Serializing optional Collection attributes (#916)
  • A couple non-running tests (#912)
  • Filtering on media_type in get_links() and get_single_link() (#966)
  • Missing hrefs and duplicate Item fields in html generated by _repr_html_() (#975)
  • Allow subclasses in a few more clone methods (#983)
  • Pass href from Item.from_dict to constructor (#984)
  • Serializing the table extension (#992)

New Contributors

v1.6.1

28 Jul 01:39
Compare
Choose a tag to compare

Fixed

  • Pins jsonschema to >=4.0.1 to avoid a RefResolutionError when validating some extensions (#857)

What's Changed

Full Changelog: v1.6.0...v1.6.1

v1.6.0

22 Jul 14:20
Compare
Choose a tag to compare

NOTE: This release exists purely to drop support for Python 3.7.

Removed

  • Support for Python 3.7 (#853)

What's Changed

Full Changelog: v1.5.0...v1.6.0

v1.5.0

22 Jul 13:13
Compare
Choose a tag to compare

Added

  • Enum MediaType entry for PDF documents (#758)
  • Enum MediaType entry for HTML documents (#816)
  • Updated Link to obtain stac_io from owner root (#762)
  • Replace test.com with special-use domain name. (#769)
  • Updated AssetDefinition to have create, apply methods (#768)
  • Add Grid Extension support (#799)
  • Rich HTML representations for Jupyter Notebook display (#743)
  • Add assets argument to Item and Collection init methods to allow adding Assets during object initialization (#834)

Changed

  • Updated Raster Extension from v1.0.0 to v1.1.0 (#809)

Fixed

  • Mutating Asset.extra_fields on a cloned Asset also mutated the original asset (#826)
  • "How to create STAC catalogs" tutorial (#775)
  • Add a variables argument, to accompany dimensions, for the apply method of stac objects extended with datacube (#782)
  • Deepcopy collection properties on clone. Implement clone method for Summaries (#794)
  • Collection assets are now preserved when using Collection.clone (#834)
  • Docstrings for StacIO.read_text and StacIO.write_text now match the type annotations for the source argument. (#835)
  • UTC timestamps now always have tzutc timezone even when system timezone is set to UTC. (#848)

What's Changed

New Contributors

Full Changelog: v1.4.0...v1.5.0

v1.4.0

27 Feb 12:37
Compare
Choose a tag to compare

Added

  • Experimental support for Python 3.11 (#731)
  • Accept PathLike objects in StacIO I/O methods, pystac.read_file and pystac.write_file (#728)
  • Support for Storage Extension (#745)
  • Optional StacIO instance as argument to Catalog.save/Catalog.normalize_and_save (#751)
  • More thorough docstrings for pystac.utils functions and classes (#735)

Changed

  • Label Extension version updated to v1.0.1 (#726)
  • Option to filter by media_type in STACObject.get_links and STACObject.get_single_link
    (#704)

Fixed

  • Self links no longer included in Items for "relative published" catalogs (#725)
  • Adding New and Custom Extensions tutorial now up-to-date with new extensions API (#724)
  • Clarify error message when using PropertyExtension.ext(..., add_if_missing=True) on an Asset
    with no owner (#746)
  • Type errors when initializing TemporalExtent using a list of datetime objects (#744)

Thanks to @fnattino & @mneagul for your contributions!

v1.3.0

19 Jan 00:47
Compare
Choose a tag to compare

Added

  • Type annotations for instance attributes on all classes (#705)
  • extensions.datacube.Variable.to_dict method (#699])
  • Clarification of possible errors when using .ext to extend an object (#701)
  • Downloadable documentation as zipped HTML (#715)

Removed

  • Downloadable documentation in ePub format (#715)

Changed

  • Reorganize docs and switch to PyData theme (#687)

Fixed

  • Quickstart tutorial is now up-to-date with all package changes (#674)
  • Creating absolute URLs from absolute URLs (#697])
  • Serialization error when using pystac.extensions.file.MappingObject (#700)
  • Use PropertiesExtension._get_property to properly set return type in TableExtension (#712)
  • DatacubeExtension.variables now has a setter (#699])
  • Landsat STAC tutorial is now up-to-date with all package changes (#692)
  • Paths to sub-catalog files when using Catalog.save (#714)
  • Link to PySTAC Introduction tutorial in tutorials index page (#719)

v1.2.0

12 Nov 18:51
Compare
Choose a tag to compare

Added

  • Added Table-extension (#646)
  • Stable support for Python 3.10 (#656)
  • .python-version files are now ignored by Git (#647)
  • Added a flag to allow users to skip transforming hierarchical link HREFs based on root catalog type (#663)

Removed

  • Exclude tests from package distribution. This should make the package lighter (#604)

Changed

  • Enable strict mode for mypy (#591)
  • Links will get their title from their target if no title is provided (#607)
  • Relax typing on LabelClasses from List to Sequence (#627)
  • Upgraded datacube-extension to version 2.0.0 (#645)
  • By default, ItemCollections will not modify Item HREFs based on root catalog type to avoid performance costs of root link reads (#663)

Fixed

  • generate_subcatalogs can include multiple template values in a single subfolder layer
    (#595)
  • Avoid implicit re-exports (#591)
  • Fix issue that caused incorrect root links when constructing multi-leveled catalogs (#658)
  • Regression where string Enum values were not serialized properly in methods like Link.to_dict (#654)

v1.1.0

28 Jul 21:01
Compare
Choose a tag to compare

Added

  • Include type information during packaging for use with e.g. mypy (#579)
  • Optional dest_href argument to Catalog.save to allow saving Catalog instances to
    locations other than their self href (#565)

Changed

v1.0.1

26 Jul 18:03
Compare
Choose a tag to compare

Changed

  • HREFs in Link objects with rel == "self" are converted to absolute HREFs (#574)