Skip to content

Commit ceb9318

Browse files
committed
Merge branch 'main' of https://github.com/stac-utils/stac-pydantic into patch/start-end-datetime-when-single-datetime
2 parents f5a372d + 6546020 commit ceb9318

File tree

6 files changed

+26
-16
lines changed

6 files changed

+26
-16
lines changed

Diff for: .github/workflows/cicd.yml

+5-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ on:
88
tags:
99
- '*'
1010
pull_request:
11+
env:
12+
LATEST_PY_VERSION: '3.12'
1113

1214
jobs:
1315
tests:
@@ -35,10 +37,10 @@ jobs:
3537
run: tox -e py
3638

3739
- name: Upload Results
38-
if: success()
39-
uses: codecov/codecov-action@v1
40+
if: ${{ matrix.python-version == env.LATEST_PY_VERSION }}
41+
uses: codecov/codecov-action@v4
4042
with:
4143
file: ./coverage.xml
4244
flags: unittests
43-
name: ${{ matrix.platform }}-${{ matrix.tox-env }}
45+
name: ${{ matrix.python-version }}
4446
fail_ci_if_error: false

Diff for: stac_pydantic/item.py

+1-11
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,7 @@
44
from pydantic import AnyUrl, ConfigDict, Field, model_serializer, model_validator
55

66
from stac_pydantic.links import Links
7-
from stac_pydantic.shared import (
8-
SEMVER_REGEX,
9-
Asset,
10-
StacBaseModel,
11-
StacCommonMetadata,
12-
UtcDatetime,
13-
)
7+
from stac_pydantic.shared import SEMVER_REGEX, Asset, StacBaseModel, StacCommonMetadata
148
from stac_pydantic.version import STAC_VERSION
159

1610

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

22-
# Overide the datetime field to be required
23-
datetime: Optional[UtcDatetime]
24-
25-
# Check https://docs.pydantic.dev/dev-v2/migration/#changes-to-config for more information.
2616
model_config = ConfigDict(extra="allow")
2717

2818

Diff for: stac_pydantic/shared.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ class StacCommonMetadata(StacBaseModel):
134134
title: Optional[str] = None
135135
description: Optional[str] = None
136136
# Date and Time
137-
datetime: Optional[UtcDatetime] = None
137+
datetime: Optional[UtcDatetime] = Field(...)
138138
created: Optional[UtcDatetime] = None
139139
updated: Optional[UtcDatetime] = None
140140
# Date and Time Range

Diff for: tests/api/test_search.py

+8
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,14 @@ def test_temporal_search_two_tailed():
7777
assert search.start_date == utcnow
7878
assert search.end_date is None
7979

80+
search = Search(collections=["collection1"], datetime=f"../{utcnow_str}")
81+
assert search.start_date is None
82+
assert search.end_date == utcnow
83+
84+
search = Search(collections=["collection1"], datetime=f"/{utcnow_str}")
85+
assert search.start_date is None
86+
assert search.end_date == utcnow
87+
8088

8189
def test_temporal_search_open():
8290
# Test open date range

Diff for: tests/example_stac/datetimerange.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
]
3838
},
3939
"properties":{
40-
"datetime":"2018-01-01T13:21:30Z",
40+
"datetime":null,
4141
"start_datetime":"2018-01-01T13:21:30Z",
4242
"end_datetime":"2018-01-01T13:31:30Z"
4343
},

Diff for: tests/test_models.py

+10
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,16 @@ def test_stac_common_dates(args) -> None:
180180
StacCommonMetadata(**args)
181181

182182

183+
def test_stac_null_datetime_required() -> None:
184+
with pytest.raises(ValidationError):
185+
StacCommonMetadata(
186+
**{
187+
"start_datetime": "2024-01-01T00:00:00Z",
188+
"end_datetime": "2024-01-02T00:00:00Z",
189+
}
190+
)
191+
192+
183193
@pytest.mark.parametrize(
184194
"args",
185195
[

0 commit comments

Comments
 (0)