Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/stac-utils/stac-pydantic in…
Browse files Browse the repository at this point in the history
…to patch/start-end-datetime-when-single-datetime
  • Loading branch information
vincentsarago committed May 21, 2024
2 parents f5a372d + 6546020 commit ceb9318
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 16 deletions.
8 changes: 5 additions & 3 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:
tags:
- '*'
pull_request:
env:
LATEST_PY_VERSION: '3.12'

jobs:
tests:
Expand Down Expand Up @@ -35,10 +37,10 @@ jobs:
run: tox -e py

- name: Upload Results
if: success()
uses: codecov/codecov-action@v1
if: ${{ matrix.python-version == env.LATEST_PY_VERSION }}
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
flags: unittests
name: ${{ matrix.platform }}-${{ matrix.tox-env }}
name: ${{ matrix.python-version }}
fail_ci_if_error: false
12 changes: 1 addition & 11 deletions stac_pydantic/item.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,7 @@
from pydantic import AnyUrl, ConfigDict, Field, model_serializer, model_validator

from stac_pydantic.links import Links
from stac_pydantic.shared import (
SEMVER_REGEX,
Asset,
StacBaseModel,
StacCommonMetadata,
UtcDatetime,
)
from stac_pydantic.shared import SEMVER_REGEX, Asset, StacBaseModel, StacCommonMetadata
from stac_pydantic.version import STAC_VERSION


Expand All @@ -19,10 +13,6 @@ class ItemProperties(StacCommonMetadata):
https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md#properties-object
"""

# Overide the datetime field to be required
datetime: Optional[UtcDatetime]

# Check https://docs.pydantic.dev/dev-v2/migration/#changes-to-config for more information.
model_config = ConfigDict(extra="allow")


Expand Down
2 changes: 1 addition & 1 deletion stac_pydantic/shared.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ class StacCommonMetadata(StacBaseModel):
title: Optional[str] = None
description: Optional[str] = None
# Date and Time
datetime: Optional[UtcDatetime] = None
datetime: Optional[UtcDatetime] = Field(...)
created: Optional[UtcDatetime] = None
updated: Optional[UtcDatetime] = None
# Date and Time Range
Expand Down
8 changes: 8 additions & 0 deletions tests/api/test_search.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,14 @@ def test_temporal_search_two_tailed():
assert search.start_date == utcnow
assert search.end_date is None

search = Search(collections=["collection1"], datetime=f"../{utcnow_str}")
assert search.start_date is None
assert search.end_date == utcnow

search = Search(collections=["collection1"], datetime=f"/{utcnow_str}")
assert search.start_date is None
assert search.end_date == utcnow


def test_temporal_search_open():
# Test open date range
Expand Down
2 changes: 1 addition & 1 deletion tests/example_stac/datetimerange.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
]
},
"properties":{
"datetime":"2018-01-01T13:21:30Z",
"datetime":null,
"start_datetime":"2018-01-01T13:21:30Z",
"end_datetime":"2018-01-01T13:31:30Z"
},
Expand Down
10 changes: 10 additions & 0 deletions tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,16 @@ def test_stac_common_dates(args) -> None:
StacCommonMetadata(**args)


def test_stac_null_datetime_required() -> None:
with pytest.raises(ValidationError):
StacCommonMetadata(
**{
"start_datetime": "2024-01-01T00:00:00Z",
"end_datetime": "2024-01-02T00:00:00Z",
}
)


@pytest.mark.parametrize(
"args",
[
Expand Down

0 comments on commit ceb9318

Please sign in to comment.