Skip to content

Commit 967ce91

Browse files
avalentinogadomski
andauthored
Do not use the deprecated utcnow (#1283)
* Do not use the deprecated utcnow * Update CHANGELOG.md * Update CHANGELOG.md * Update CHANGELOG.md --------- Co-authored-by: Pete Gadomski <[email protected]>
1 parent c2c1d3c commit 967ce91

File tree

5 files changed

+25
-21
lines changed

5 files changed

+25
-21
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## [Unreleased]
44

5+
### Fixed
6+
7+
- No longer use the `datetime.utcnow` method that has been deprecated in Python 3.12 ([#1283](https://github.com/stac-utils/pystac/pull/1283))
8+
59
## [v1.9.0] - 2023-10-23
610

711
### Added

pystac/collection.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import warnings
44
from collections.abc import Iterable
55
from copy import deepcopy
6-
from datetime import datetime
6+
from datetime import datetime, timezone
77
from typing import (
88
TYPE_CHECKING,
99
Any,
@@ -294,7 +294,7 @@ def from_now() -> TemporalExtent:
294294
TemporalExtent: The resulting TemporalExtent.
295295
"""
296296
return TemporalExtent(
297-
intervals=[[datetime.utcnow().replace(microsecond=0), None]]
297+
intervals=[[datetime.now(timezone.utc).replace(microsecond=0), None]]
298298
)
299299

300300

tests/test_catalog.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from collections import defaultdict
99
from collections.abc import Iterator
1010
from copy import deepcopy
11-
from datetime import datetime
11+
from datetime import datetime, timezone
1212
from pathlib import Path
1313
from typing import Any, cast
1414

@@ -140,7 +140,7 @@ def test_clear_items_removes_from_cache(self) -> None:
140140
id="test-item",
141141
geometry=ARBITRARY_GEOM,
142142
bbox=ARBITRARY_BBOX,
143-
datetime=datetime.utcnow(),
143+
datetime=datetime.now(timezone.utc),
144144
properties={"key": "one"},
145145
)
146146
subcat.add_item(item)
@@ -154,7 +154,7 @@ def test_clear_items_removes_from_cache(self) -> None:
154154
id="test-item",
155155
geometry=ARBITRARY_GEOM,
156156
bbox=ARBITRARY_BBOX,
157-
datetime=datetime.utcnow(),
157+
datetime=datetime.now(timezone.utc),
158158
properties={"key": "two"},
159159
)
160160
subcat.add_item(item)
@@ -168,7 +168,7 @@ def test_clear_items_removes_from_cache(self) -> None:
168168
id="test-item",
169169
geometry=ARBITRARY_GEOM,
170170
bbox=ARBITRARY_BBOX,
171-
datetime=datetime.utcnow(),
171+
datetime=datetime.now(timezone.utc),
172172
properties={"key": "three"},
173173
)
174174
subcat.add_item(item)
@@ -710,7 +710,7 @@ def test_generate_subcatalogs_merge_template_elements(self) -> None:
710710
id=f"item{ni}",
711711
geometry=ARBITRARY_GEOM,
712712
bbox=ARBITRARY_BBOX,
713-
datetime=datetime.utcnow(),
713+
datetime=datetime.now(timezone.utc),
714714
properties=properties,
715715
)
716716
)
@@ -748,7 +748,7 @@ def test_generate_subcatalogs_works_after_adding_more_items(self) -> None:
748748
id="item1",
749749
geometry=ARBITRARY_GEOM,
750750
bbox=ARBITRARY_BBOX,
751-
datetime=datetime.utcnow(),
751+
datetime=datetime.now(timezone.utc),
752752
properties=properties,
753753
)
754754
)
@@ -758,7 +758,7 @@ def test_generate_subcatalogs_works_after_adding_more_items(self) -> None:
758758
id="item2",
759759
geometry=ARBITRARY_GEOM,
760760
bbox=ARBITRARY_BBOX,
761-
datetime=datetime.utcnow(),
761+
datetime=datetime.now(timezone.utc),
762762
properties=properties,
763763
)
764764
)
@@ -787,7 +787,7 @@ def test_generate_subcatalogs_works_for_branched_subcatalogs(self) -> None:
787787
id=f"item{ni}",
788788
geometry=ARBITRARY_GEOM,
789789
bbox=ARBITRARY_BBOX,
790-
datetime=datetime.utcnow(),
790+
datetime=datetime.now(timezone.utc),
791791
properties=properties,
792792
)
793793
)
@@ -812,7 +812,7 @@ def test_generate_subcatalogs_works_for_subcatalogs_with_same_ids(self) -> None:
812812
id=f"item{ni}",
813813
geometry=ARBITRARY_GEOM,
814814
bbox=ARBITRARY_BBOX,
815-
datetime=datetime.utcnow(),
815+
datetime=datetime.now(timezone.utc),
816816
properties=properties,
817817
)
818818
)
@@ -896,7 +896,7 @@ def test_map_items_multiple_2(self) -> None:
896896
id="item1",
897897
geometry=ARBITRARY_GEOM,
898898
bbox=ARBITRARY_BBOX,
899-
datetime=datetime.utcnow(),
899+
datetime=datetime.now(timezone.utc),
900900
properties={},
901901
)
902902
item1.add_asset("ortho", Asset(href="/some/ortho.tif"))
@@ -907,7 +907,7 @@ def test_map_items_multiple_2(self) -> None:
907907
id="item2",
908908
geometry=ARBITRARY_GEOM,
909909
bbox=ARBITRARY_BBOX,
910-
datetime=datetime.utcnow(),
910+
datetime=datetime.now(timezone.utc),
911911
properties={},
912912
)
913913
item2.add_asset("ortho", Asset(href="/some/other/ortho.tif"))
@@ -1436,7 +1436,7 @@ def test_full_copy_1(self) -> None:
14361436
id="test_item",
14371437
geometry=ARBITRARY_GEOM,
14381438
bbox=ARBITRARY_BBOX,
1439-
datetime=datetime.utcnow(),
1439+
datetime=datetime.now(timezone.utc),
14401440
properties={},
14411441
)
14421442

@@ -1456,7 +1456,7 @@ def test_full_copy_2(self) -> None:
14561456
id="Imagery",
14571457
geometry=ARBITRARY_GEOM,
14581458
bbox=ARBITRARY_BBOX,
1459-
datetime=datetime.utcnow(),
1459+
datetime=datetime.now(timezone.utc),
14601460
properties={},
14611461
)
14621462
for key in ["ortho", "dsm"]:
@@ -1469,7 +1469,7 @@ def test_full_copy_2(self) -> None:
14691469
id="Labels",
14701470
geometry=ARBITRARY_GEOM,
14711471
bbox=ARBITRARY_BBOX,
1472-
datetime=datetime.utcnow(),
1472+
datetime=datetime.now(timezone.utc),
14731473
properties={},
14741474
)
14751475
cat.add_items([image_item, label_item])

tests/utils/test_cases.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import csv
22
import os
3-
from datetime import datetime
3+
from datetime import datetime, timezone
44
from typing import Any
55

66
import pystac
@@ -156,7 +156,7 @@ def case_3() -> Catalog:
156156
id="imagery-item",
157157
geometry=ARBITRARY_GEOM,
158158
bbox=ARBITRARY_BBOX,
159-
datetime=datetime.utcnow(),
159+
datetime=datetime.now(timezone.utc),
160160
properties={},
161161
)
162162

@@ -168,7 +168,7 @@ def case_3() -> Catalog:
168168
id="label-items",
169169
geometry=ARBITRARY_GEOM,
170170
bbox=ARBITRARY_BBOX,
171-
datetime=datetime.utcnow(),
171+
datetime=datetime.now(timezone.utc),
172172
properties={},
173173
)
174174

tests/validation/test_validate.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import os
33
import shutil
44
import tempfile
5-
from datetime import datetime
5+
from datetime import datetime, timezone
66
from typing import Any
77

88
import jsonschema
@@ -176,7 +176,7 @@ def test_validates_geojson_with_tuple_coordinates(self) -> None:
176176
id="test-item",
177177
geometry=geom,
178178
bbox=[-115.308, 36.126, -115.305, 36.129],
179-
datetime=datetime.utcnow(),
179+
datetime=datetime.now(timezone.utc),
180180
properties={},
181181
)
182182

0 commit comments

Comments
 (0)