Move two functions to agenda/trip.py

This commit is contained in:
Edward Betts 2025-11-03 12:22:27 +00:00
parent f718535624
commit b4126d04f8
4 changed files with 64 additions and 63 deletions

View file

@ -2,8 +2,10 @@
import os
import typing
from datetime import date, datetime, timedelta, timezone
from time import time
from datetime import date, datetime, time, timedelta, timezone
from zoneinfo import ZoneInfo
from .types import StrDict
def as_date(d: datetime | date) -> date:
@ -118,3 +120,15 @@ async def time_function(
exception = e
end_time = time()
return name, result, end_time - start_time, exception
def depart_datetime(item: StrDict) -> datetime:
"""Return a datetime for this travel item.
If the travel item already has a datetime return that, otherwise if the
departure time is just a date return midnight UTC for that date.
"""
depart = item["depart"]
if isinstance(depart, datetime):
return depart
return datetime.combine(depart, time.min).replace(tzinfo=ZoneInfo("UTC"))