Skip to content

rs_server_common/rspy_models.md

<< Back to index

Module used to overwrite stac_pydantic with RSPY types.

Item

Bases: Item

Custom implementation of stac_pydantic.Item.

Source code in docs/rs-server/services/common/rs_server_common/rspy_models.py
62
63
64
65
66
67
class Item(stac_pydantic.item.Item):
    """
    Custom implementation of stac_pydantic.Item.
    """

    properties: ItemProperties

ItemCollection

Bases: FeatureCollection, StacBaseModel

Custom implementation of stac_pydantic.ItemCollection.

Source code in docs/rs-server/services/common/rs_server_common/rspy_models.py
70
71
72
73
74
75
76
class ItemCollection(FeatureCollection, StacBaseModel):
    """
    Custom implementation of stac_pydantic.ItemCollection.
    """

    features: Sequence[Item]
    links: Links | None = None

ItemProperties

Bases: WrapStacCommonMetadata

Custom implementation of stac_pydantic.ItemProperties

Source code in docs/rs-server/services/common/rs_server_common/rspy_models.py
47
48
49
50
51
52
53
54
55
56
57
58
59
class ItemProperties(WrapStacCommonMetadata):
    """
    Custom implementation of stac_pydantic.ItemProperties
    """

    model_config = ConfigDict(extra="allow")

    def __init__(self, **data: Any):
        """Force convert datetime to str if any in init."""
        data = {key: (strftime_millis(value) if isinstance(value, datetime) else value) for key, value in data.items()}

        # Call the parent class's initializer
        super().__init__(**data)

__init__(**data)

Force convert datetime to str if any in init.

Source code in docs/rs-server/services/common/rs_server_common/rspy_models.py
54
55
56
57
58
59
def __init__(self, **data: Any):
    """Force convert datetime to str if any in init."""
    data = {key: (strftime_millis(value) if isinstance(value, datetime) else value) for key, value in data.items()}

    # Call the parent class's initializer
    super().__init__(**data)

WrapStacCommonMetadata

Bases: StacCommonMetadata

Custom implementation of pydantic.StacCommonMetadata Overload stac_pydantic datetime-like objects from item properties to use a string with custom format. Datetime only use microseconds ".512000Z", so this model is updated to store a more flexible date type.

Source code in docs/rs-server/services/common/rs_server_common/rspy_models.py
33
34
35
36
37
38
39
40
41
42
43
44
class WrapStacCommonMetadata(StacCommonMetadata):
    """
    Custom implementation of pydantic.StacCommonMetadata
    Overload stac_pydantic datetime-like objects from item properties to use a string with custom format.
    Datetime only use microseconds ".512000Z", so this model is updated to store a more flexible date type.
    """

    datetime: str | None = Field(...)
    created: str | None = None
    updated: str | None = None
    start_datetime: str | None = None
    end_datetime: str | None = None