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') 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]