diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 9959792..ffb7e10 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -10,6 +10,9 @@ - Fix STAC API Query Extension operator names from ne->neq, le->lte, and ge->gte (#120, @philvarner) - Better **datetime** parsing/validation by using Pydantic native types and remove `ciso8601` requirement (#131, @eseglem) - move datetime validation in `StacCommonMetadata` model definition (#131, @eseglem) +- use `StacBaseModel` as base model for `Asset` model (#148, @vincentsarago) +- add `license` in `StacCommonMetadata` model (#147, @vincentsarago) +- make `limit` optional in `api.Search` model (#150, @vincentsarago) 3.0.0 (2024-01-25) ------------------ diff --git a/stac_pydantic/api/search.py b/stac_pydantic/api/search.py index 62d1e73..c68fd60 100644 --- a/stac_pydantic/api/search.py +++ b/stac_pydantic/api/search.py @@ -42,7 +42,7 @@ class Search(BaseModel): bbox: Optional[BBox] = None intersects: Optional[Intersection] = None datetime: Optional[str] = None - limit: int = 10 + limit: Optional[int] = 10 # Private properties to store the parsed datetime values. Not part of the model schema. _start_date: Optional[dt] = None diff --git a/stac_pydantic/shared.py b/stac_pydantic/shared.py index 126379b..5903cf3 100644 --- a/stac_pydantic/shared.py +++ b/stac_pydantic/shared.py @@ -140,6 +140,8 @@ class StacCommonMetadata(StacBaseModel): # Date and Time Range start_datetime: Optional[UtcDatetime] = None end_datetime: Optional[UtcDatetime] = None + # Licensing + license: Optional[str] = None # Provider providers: Optional[List[Provider]] = None # Instrument @@ -171,7 +173,7 @@ def validate_start_end(self) -> Self: return self -class Asset(StacCommonMetadata): +class Asset(StacBaseModel): """ https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md#asset-object """ @@ -185,10 +187,3 @@ class Asset(StacCommonMetadata): model_config = ConfigDict( populate_by_name=True, use_enum_values=True, extra="allow" ) - - @model_validator(mode="after") - def validate_datetime_or_start_end(self) -> Self: - # Overriding the parent method to avoid requiring datetime or start/end_datetime - # Additional fields MAY be added on the Asset object, but are not required. - # https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md#additional-fields-for-assets - return self