Skip to content

Commit 53b9651

Browse files
committed
Consistent checks for potential timezone info.
1 parent 6bd1c4e commit 53b9651

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

immanuel/tools/date.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,17 @@ def localize(dt: datetime, lat: float, lon: float, offset: float = None, is_dst:
4949
def to_datetime(dt: str | float | datetime, lat: float = None, lon: float = None, offset: float = None, is_dst: bool = None) -> datetime:
5050
""" Convert an unknown into a datetime. Unknowns can be either an
5151
ISO-formatted string, a Julian Date, or already a datetime. """
52-
no_coords = lat is None or lon is None
52+
no_tz = (lat is None or lon is None) and offset is None
5353
if isinstance(dt, str):
5454
date_time = datetime.fromisoformat(dt)
55-
return date_time.replace(tzinfo=ZoneInfo('UTC')) if no_coords and offset is None else localize(date_time, lat, lon, offset, is_dst)
55+
return date_time.replace(tzinfo=ZoneInfo('UTC')) if no_tz else localize(date_time, lat, lon, offset, is_dst)
5656
if isinstance(dt, float):
5757
ut = swe.revjul(dt)
5858
time = convert.dec_to_dms(ut[3])[1:]
5959
date_time = datetime(*ut[:3], *time, tzinfo=ZoneInfo('UTC'))
60-
return date_time if no_coords else date_time.astimezone(get_timezone(lat, lon, offset))
60+
return date_time if no_tz else date_time.astimezone(get_timezone(lat, lon, offset))
6161
if isinstance(dt, datetime):
62-
if no_coords:
62+
if no_tz:
6363
return dt.replace(tzinfo=ZoneInfo('UTC')) if dt.tzinfo is None else dt
6464
else:
6565
return localize(dt, lat, lon, offset, is_dst)

0 commit comments

Comments
 (0)