#!/usr/bin/python3 import datetime import sys import typing from rich.pretty import pprint import agenda.travel from agenda.types import StrDict config = __import__("config.default", fromlist=[""]) data_dir = config.PERSONAL_DATA def get_current_flight(now: datetime.datetime) -> StrDict | None: """Flight.""" bookings = agenda.travel.parse_yaml("flights", data_dir) for booking in bookings: for flight in typing.cast(list[StrDict], booking["flights"]): if ( "depart" not in flight or "arrive" not in flight or not (flight["depart"] < now < flight["arrive"]) ): continue return flight return None now = datetime.datetime.now(tz=datetime.UTC) flight = get_current_flight(now) if not flight: print("not currently on a flight") sys.exit(0) pprint(flight) print(flight["arrive"] - now)