# pystac.extensions.version

Implements the Versioning Indicators Extension.

class pystac.extensions.version.AssetVersionExtension(asset: Asset)

  A concrete implementation of `VersionExtension` on an `Asset` that extends the properties of the Asset to include properties defined in the Versioning Indicators Extension.

  This class should generally not be instantiated directly. Instead, call `VersionExtension.ext()` on an `Asset` to extend it.

  asset: Asset
  properties: dict[str, Any]

    The properties that this extension wraps.

    The extension which implements PropertiesExtension can use `_get_property` and `_set_property` to get and set values on this instance. Note that _set_properties mutates the properties directly.

class pystac.extensions.version.BaseVersionExtension

  A base extension that just gets and sets attributes, not links.

  Used for Assets and AssetDefinitions.

  apply_base(version: str | None = None, deprecated: bool | None = None, experimental: bool | None = None) → None

    Applies attributes to this extension object.

  property deprecated: bool | None

    Get or sets whether this object is deprecated.

    A value of `True` specifies that the object is deprecated with the potential to be removed. It should be transitioned out of usage as soon as possible and users should refrain from using it in new projects. A link with relation type `latest-version` SHOULD be added to the links and MUST refer to the resource that can be used instead.

    Note

    A `pystac.DeprecatedWarning` is issued if the `deprecated` property is `True` when deserializing a dictionary to an object. The `ignore_deprecated()` context manager is provided as a convenience to suppress these warnings:

        >>> with ignore_deprecated():
        ...    deprecated_item = pystac.Item.from_dict(deprecated_item_dict)

  property experimental: bool | None

    Get and set whether this object is experimental.

    Specifies that the context this field is used in (e.g. Asset or Collection) is experimental with the potential to break or be unstable.

  classmethod ext(obj: T, add_if_missing: bool = False) → BaseVersionExtension[T]

    Extends the given STAC Object with properties from the Versioning Indicators Extension.

    Raises:

      pystac.ExtensionTypeError – If an invalid object type is passed.

  classmethod get_schema_uri() → str

    Gets the schema URI associated with this extension.

  name: Literal['version'] = 'version'
  property version: str | None

    Get or sets a version string of this object.

class pystac.extensions.version.CatalogVersionExtension(catalog: Catalog)

  A concrete implementation of `VersionExtension` on a `Catalog` that extends the properties of the Catalog to include properties defined in the Versioning Indicators Extension.

  This class should generally not be instantiated directly. Instead, call `VersionExtension.ext()` on an `Catalog` to extend it.

  catalog: Catalog
  links: list[Link]
  properties: dict[str, Any]

    The properties that this extension wraps.

    The extension which implements PropertiesExtension can use `_get_property` and `_set_property` to get and set values on this instance. Note that _set_properties mutates the properties directly.

class pystac.extensions.version.CollectionVersionExtension(collection: Collection)

  A concrete implementation of `VersionExtension` on a `Collection` that extends the properties of the Collection to include properties defined in the Versioning Indicators Extension.

  This class should generally not be instantiated directly. Instead, call `VersionExtension.ext()` on an `Collection` to extend it.

  collection: Collection
  links: list[Link]
  properties: dict[str, Any]

    The properties that this extension wraps.

    The extension which implements PropertiesExtension can use `_get_property` and `_set_property` to get and set values on this instance. Note that _set_properties mutates the properties directly.

class pystac.extensions.version.ItemAssetsViewExtension(item_asset: AssetDefinition)
  properties: dict[str, Any]

    The properties that this extension wraps.

    The extension which implements PropertiesExtension can use `_get_property` and `_set_property` to get and set values on this instance. Note that _set_properties mutates the properties directly.

class pystac.extensions.version.ItemVersionExtension(item: Item)

  A concrete implementation of `VersionExtension` on an `Item` that extends the properties of the Item to include properties defined in the Versioning Indicators Extension.

  This class should generally not be instantiated directly. Instead, call `VersionExtension.ext()` on an `Item` to extend it.

  item: Item
  links: list[Link]
  properties: dict[str, Any]

    The properties that this extension wraps.

    The extension which implements PropertiesExtension can use `_get_property` and `_set_property` to get and set values on this instance. Note that _set_properties mutates the properties directly.

class pystac.extensions.version.VersionExtension(obj: STACObject)

  An abstract class that can be used to extend the properties of an `Item`, `Collection`, or `Catalog` with properties from the Versioning Indicators Extension. This class is generic over the type of STAC Object to be extended.

  To create a concrete instance of `VersionExtension`, use the `VersionExtension.ext()` method. For example:

      >>> item: pystac.Item = ...
      >>> version_ext = VersionExtension.ext(item)

  apply(version: str | None = None, deprecated: bool | None = None, experimental: bool | None = None, latest: U | None = None, predecessor: U | None = None, successor: U | None = None) → None

    Applies version extension properties to the extended `Item` or `Collection`.

    Parameters:

      - version – The version string for the item.

      - deprecated – Optional flag set to `True` if an Item is deprecated with the potential to be removed. Defaults to `False` if not present.

      - latest – Item representing the latest (e.g., current) version.

      - predecessor – Item representing the resource containing the predecessor version in the version history.

      - successor – Item representing the resource containing the successor version

      - history. (in the version) –

  classmethod ext(obj: U, add_if_missing: bool = False) → VersionExtension[U]

    Extends the given STAC Object with properties from the Versioning Indicators Extension.

    This extension can be applied to instances of `Item` or `Collection`.

    Raises:

      pystac.ExtensionTypeError – If an invalid object type is passed.

  property latest: U | None

    Gets or sets the `Link` to the `Item` representing the most recent version.

  obj: STACObject
  property predecessor: U | None

    Gets or sets the `Link` to the `Item` representing the resource containing the predecessor version in the version history.

  property successor: U | None

    Gets or sets the `Link` to the `Item` representing the resource containing the successor version in the version history.

class pystac.extensions.version.VersionExtensionHooks
  get_object_links(so: STACObject) → list[str] | None
  prev_extension_ids = {'https://stac-extensions.github.io/version/v1.0.0/schema.json', 'https://stac-extensions.github.io/version/v1.1.0/schema.json', 'version'}
  schema_uri = 'https://stac-extensions.github.io/version/v1.2.0/schema.json'
  stac_object_types = {STACObjectType.CATALOG, STACObjectType.COLLECTION, STACObjectType.ITEM}

class pystac.extensions.version.VersionRelType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

  A list of rel types defined in the Version Extension.

  See the Version Extension Relation types documentation for details.

  HISTORY = 'version-history'

    This link points to a version history or changelog.

    This can be for example a Markdown file with the corresponding media type or a STAC Catalog or Collection.

  LATEST = 'latest-version'

    Indicates a link pointing to a resource containing the latest version.

  PREDECESSOR = 'predecessor-version'

    Indicates a link pointing to a resource containing the predecessor version in the version history.

  SUCCESSOR = 'successor-version'

    Indicates a link pointing to a resource containing the successor version in the version history.

pystac.extensions.version.ignore_deprecated() → Generator[None, None, None]

  Context manager for suppressing the `pystac.DeprecatedWarning` when creating a deprecated `Item` or `Collection` from a dictionary.

previous

pystac.extensions.timestamps

next

pystac.extensions.view