pystac.extensions.hooks#

class pystac.extensions.hooks.ExtensionHooks[source]#

Bases: abc.ABC

migrate(obj: Dict[str, Any], version: pystac.serialization.identify.STACVersionID, info: pystac.serialization.identify.STACJSONDescription) None[source]#

Migrate a STAC Object in dict format from a previous version. The base implementation will update the stac_extensions to the latest schema ID. This method will only be called for STAC objects that have been identified as a previous version of STAC. Implementations should directly manipulate the obj dict. Remember to call super() in order to change out the old ‘stac_extension’ entry with the latest schema URI.

abstract property prev_extension_ids: Set[str]#

A set of previous extension IDs (schema URIs or old short ids) that should be migrated to the latest schema URI in the ‘stac_extensions’ property. Override with a class attribute so that the set of previous IDs is only created once.

abstract property schema_uri: str#

The schema_uri for the current version of this extension

abstract property stac_object_types: Set[pystac.stac_object.STACObjectType]#

A set of STACObjectType for which migration logic will be applied.

class pystac.extensions.hooks.RegisteredExtensionHooks(hooks: Iterable[pystac.extensions.hooks.ExtensionHooks])[source]#

Bases: object

add_extension_hooks(hooks: pystac.extensions.hooks.ExtensionHooks) None[source]#
hooks: Dict[str, pystac.extensions.hooks.ExtensionHooks]#
migrate(obj: Dict[str, Any], version: pystac.serialization.identify.STACVersionID, info: pystac.serialization.identify.STACJSONDescription) None[source]#
remove_extension_hooks(extension_id: str) None[source]#