from datetime import datetime, timezone from zoneinfo import ZoneInfo def parse_time(maybe_time): if maybe_time: return datetime.fromisoformat(maybe_time[:-1] + '+00:00') return None def filter_departures(departures): return [ dep for dep in departures if dep['scheduled_departure_utc'] and parse_time(dep['scheduled_departure_utc']) > datetime.now().astimezone(timezone.utc) ] def format_time(maybe_time): if maybe_time: return str(maybe_time.astimezone(ZoneInfo('Australia/Melbourne')))[:-6] return None