Skip to main content
`Ctrl`+`K`

# pystac.extensions.hooks

class pystac.extensions.hooks.ExtensionHooks
  get_object_links(obj: STACObject) → list[str | pystac.RelType] | None
  has_extension(obj: dict[str, Any]) → bool
  migrate(obj: dict[str, Any], version: STACVersionID, info: STACJSONDescription) → None

    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[STACObjectType]

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

class pystac.extensions.hooks.RegisteredExtensionHooks(hooks: Iterable[ExtensionHooks])
  add_extension_hooks(hooks: ExtensionHooks) → None
  get_extended_object_links(obj: STACObject) → list[str | pystac.RelType]
  hooks: dict[str, ExtensionHooks]
  migrate(obj: dict[str, Any], version: STACVersionID, info: STACJSONDescription) → None
  remove_extension_hooks(extension_id: str) → None