Skip to content

Releases: stac-utils/pystac

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)

v1.0.0

17 Jul 18:18
eee0602
Compare
Choose a tag to compare

Added

  • ProjectionExtension.crs_string to provide a single string to describe the coordinate reference system (CRS).
    Useful because projections can be defined by EPSG code, WKT, or projjson.
    (#548)
  • SAR Extension summaries(#556)
  • Migration for sar:type -> sar:product_type and sar:polarization ->
    sar:polarizations for pre-0.9 catalogs
    (#556)
  • Migration from eo:epsg -> proj:epsg for pre-0.9 catalogs (#557)
  • Collection summaries for Point Cloud Extension (#558)
  • PhenomenologyType enum for recommended values of pc:type & SchemaType enum for
    valid values of type in Point Cloud Schema
    Objects

    (#548)
  • to_dict and equality definition for extensions.item_asset.AssetDefinition (#564)
  • Asset.common_metadata property (#563)

Changed

  • The from_dict method on STACObjects will set the object's root link when a root parameter is present. An ItemCollection from_dict with a root parameter will set the root on each of it's Items. (#549)
  • Calling ExtensionManagementMixin.validate_has_extension with add_if_missing = True
    on an ownerless Asset will raise a STACError (#554)
  • PointcloudSchema -> Schema, PointcloudStatistic -> Statistic for consistency
    with naming convention in other extensions
    (#548)
  • RequiredPropertyMissing always raised when trying to get a required property that is
    None (STACError or KeyError was previously being raised in some cases)
    (#561)

Fixed

  • Added Collections as a type that can be extended for extensions whose fields can appear in collection summaries (#547)
  • Allow resolved self links when getting an object's self href (#555)
  • Fixed type annotation on SummariesLabelExtension.label_properties setter (#562)
  • Allow comparable types with alternate parameter naming of lt method to pass structural type linting for RangeSummary (#562)

v1.0.0-rc.3

08 Jul 12:14
f2afd5a
Compare
Choose a tag to compare

Added

  • (Experimental) support for Python 3.10 (#473)
  • LabelTask enum in pystac.extensions.label with recommended values for
    "label:tasks" field (#484)
  • LabelMethod enum in pystac.extensions.label with recommended values for
    "label:methods" field (#484)
  • Label Extension summaries (#484)
  • Timestamps Extension summaries (#513)
  • Define equality and __repr__ of RangeSummary instances based on to_dict
    representation (#513)
  • Sat Extension summaries (#509)
  • Catalog.get_collections for getting all child
    Collections for a catalog, and Catalog.get_all_collections for recursively getting
    all child Collections for a catalog and its children (#511)

Changed

  • Renamed Asset.properties -> Asset.extra_fields and Link.properties ->
    Link.extra_fields for consistency with other STAC objects
    (#510)

Fixed

  • Bug in pystac.serialization.identify_stac_object_type where invalid objects with
    stac_version == 1.0.0 were incorrectly identified as Catalogs
    (#487)
  • Link constructor classes (e.g. Link.from_dict, Link.canonical, etc.) now return
    the calling class instead of always returning the Link class
    (#512)
  • Sat extension now includes all fields defined in v1.0.0
    (#509)

Removed

  • STAC_IO class in favor of StacIO. This was deprecated in v1.0.0-beta.1 and has
    been removed in this release. (#490)
  • Support for Python 3.6 (#500)

v1.0.0-rc.2

25 Jun 00:51
7f9fef4
Compare
Choose a tag to compare

Added

  • Add a preserve_dict parameter to ItemCollection.from_dict and set it to False when
    using ItemCollection.from_file.
    (#468)
  • StacIO.json_dumps and StacIO.json_loads methods for JSON
    serialization/deserialization. These were "private" methods, but are now "public" and
    documented (#471)

Changed

  • pystac.stac_io.DuplicateObjectKeyError moved to pystac.DuplicateObjectKeyError
    (#471)

v1.0.0-rc.1

18 Jun 02:21
Compare
Choose a tag to compare

Added

  • License file included in distribution (#409)
  • Links to Issues, Discussions, and documentation sites (#409)
  • Python minimum version set to >=3.6 (#409)
  • Code of Conduct (#399)
  • ItemCollection class for working with GeoJSON FeatureCollections containing only
    STAC Items (#430)
  • Support for Python 3.9 (#420)
  • Migration for pre-1.0.0-rc.1 Stats Objects (renamed to Range Objects in 1.0.0-rc.3) (#447)
  • Attempting to extend a STACObject that does not contain the extension's schema URI in
    stac_extensions raises new ExtensionNotImplementedError (#450)
  • STACObject.from_dict now takes a preserve_dict parameter, which if False will avoid a call to deepcopy on the passed in dict and can result in performance gains (defaults to True. Reading from a file will use preserve_dict=False resulting in better performance. (#454)

Changed

  • Package author to stac-utils, email to [email protected], url to this repo (#409)
  • StacIO.read_json passes arbitrary positional and keyword arguments to
    StacIO.read_text (#433)
  • FileExtension updated to work with File Info Extension v2.0.0 (#442)
  • FileExtension only operates on pystac.Asset instances (#442)
  • *Extension.ext methods now have an optional add_if_missing argument, which will
    add the extension schema URI to the object's stac_extensions list if it is not
    present (#450)
  • from_file and from_dict methods on STACObject sub-classes always return instance
    of calling class (#451)

Fixed

  • EOExtension.get_bands returns None for asset without EO bands (#406)
  • identify_stac_object_type returns None and identify_stac_object raises STACTypeError for non-STAC objects
    (#402)
  • ExtensionManagementMixin.add_to is now idempotent (only adds schema URI to
    stac_extensions once per Item regardless of the number of calls) (#419)
  • Version check for when extensions changed from short links to schema URIs
    (#455)
  • Schema URI base for STAC 1.0.0-beta.1 (#455)

v1.0.0-beta.3

02 Jun 19:52
3f329e7
Compare
Choose a tag to compare

Added

  • Summaries for View Geometry, Projection, and Scientific extensions (#372)
  • Raster extension support (#364)
  • solar_illumination field in eo extension (#356)
  • Added Link.canonical static method for creating links with "canonical" rel type (#351)
  • Added RelType enum containing common rel values (#351)
  • Added support for summaries (#264)

Fixed

  • Links to STAC Spec point to latest supported version (#368)
  • Links to STAC Extension pages point to repos in stac-extensions GitHub org (#368)
  • Collection assets (#373)

Removed

  • Two v0.6.0 examples from the test suite (#373)

v1.0.0-beta.2

24 May 19:24
6214193
Compare
Choose a tag to compare

Changed

  • Split DefaultStacIO's reading and writing into two methods to allow subclasses to use the default link resolution behavior (#354)
  • Increased test coverage for the pointcloud extension (#352)

Fixed

  • Reading json without orjson (#348)

Removed

  • Removed type information from docstrings, since it is redundant with function type
    annotations (#342)