From dbe0624af894ec5cab8c9cc41e6b9436a6e239b7 Mon Sep 17 00:00:00 2001 From: Sean Breckenridge Date: Wed, 22 Feb 2023 22:49:59 -0800 Subject: [PATCH] fix datetime.min.timestamp bug, default to utc --- my/location/fallback/common.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/my/location/fallback/common.py b/my/location/fallback/common.py index 9ea3886..2fc02a1 100644 --- a/my/location/fallback/common.py +++ b/my/location/fallback/common.py @@ -1,7 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from typing import Optional, Callable, Sequence, Iterator, List, Union -from datetime import datetime, timedelta, date +from datetime import datetime, timedelta, timezone from ..common import LocationProtocol, Location DateExact = Union[datetime, float, int] # float/int as epoch timestamps @@ -71,7 +71,11 @@ LocationEstimators = Sequence[LocationEstimator] # helper function, instead of dealing with datetimes while comparing, just use epoch timestamps def _datetime_timestamp(dt: DateExact) -> float: if isinstance(dt, datetime): - return dt.timestamp() + try: + return dt.timestamp() + except ValueError: + # https://github.com/python/cpython/issues/75395 + return dt.replace(tzinfo=timezone.utc).timestamp() return float(dt) def _iter_estimate_from(