diff --git a/agenda/trip.py b/agenda/trip.py index b0c50cf..cbb72fc 100644 --- a/agenda/trip.py +++ b/agenda/trip.py @@ -93,7 +93,6 @@ def load_flight_bookings(data_dir: str) -> list[StrDict]: """Load flight bookings.""" bookings = load_travel("flight", "flights", data_dir) airlines = yaml.safe_load(open(os.path.join(data_dir, "airlines.yaml"))) - iata = {a["iata"]: a["name"] for a in airlines} airports = travel.parse_yaml("airports", data_dir) for booking in bookings: for flight in booking["flights"]: @@ -102,7 +101,7 @@ def load_flight_bookings(data_dir: str) -> list[StrDict]: if flight["to"] in airports: flight["to_airport"] = airports[flight["to"]] if "airline" in flight: - flight["airline_name"] = iata.get(flight["airline"], "[unknown]") + flight["airline_name"] = airlines.get(flight["airline"], "[unknown]") flight["distance"] = travel.flight_distance(flight) return bookings diff --git a/validate_yaml.py b/validate_yaml.py index ec34a52..d23fd0e 100755 --- a/validate_yaml.py +++ b/validate_yaml.py @@ -13,86 +13,43 @@ import agenda.trip import agenda.types config = __import__("config.default", fromlist=[""]) + data_dir = config.PERSONAL_DATA +trip_list = agenda.trip.build_trip_list(data_dir) +print(len(trip_list), "trips") -def check_trips() -> None: - """Check trips.""" - trip_list = agenda.trip.build_trip_list(data_dir) - print(len(trip_list), "trips") +coords, routes = agenda.trip.get_coordinates_and_routes(trip_list, data_dir) +print(len(coords), "coords") +print(len(routes), "routes") - coords, routes = agenda.trip.get_coordinates_and_routes(trip_list, data_dir) - print(len(coords), "coords") - print(len(routes), "routes") +flights = agenda.travel.parse_yaml("flights", data_dir) +print(len(flights), "flights") + +trains = agenda.travel.parse_yaml("trains", data_dir) +print(len(trains), "trains") + +conferences = agenda.conference.get_list(os.path.join(data_dir, "conferences.yaml")) +print(len(conferences), "conferences") + +today = date.today() +last_year = today - timedelta(days=365) +next_year = today + timedelta(days=2 * 365) + +events = agenda.events_yaml.read(data_dir, last_year, next_year) +print(len(events), "events") + +airports = typing.cast( + dict[str, agenda.types.StrDict], agenda.travel.parse_yaml("airports", data_dir) +) +print(len(airports), "airports") +for airport in airports.values(): + assert "country" in airport + assert agenda.get_country(airport["country"]) -def check_flights() -> None: - """Check flights.""" - flights = agenda.travel.parse_yaml("flights", data_dir) - print(len(flights), "flights") - - -def check_trains() -> None: - """Check trains.""" - trains = agenda.travel.parse_yaml("trains", data_dir) - print(len(trains), "trains") - - -def check_conferences() -> None: - """Check conferences.""" - conferences = agenda.conference.get_list(os.path.join(data_dir, "conferences.yaml")) - print(len(conferences), "conferences") - - -def check_events() -> None: - """Check events.""" - today = date.today() - last_year = today - timedelta(days=365) - next_year = today + timedelta(days=2 * 365) - - events = agenda.events_yaml.read(data_dir, last_year, next_year) - print(len(events), "events") - - -def check_airports() -> None: - """Check airports.""" - airports = typing.cast( - dict[str, agenda.types.StrDict], agenda.travel.parse_yaml("airports", data_dir) - ) - print(len(airports), "airports") - for airport in airports.values(): - assert "country" in airport - assert agenda.get_country(airport["country"]) - - -def check_stations() -> None: - """Check stations.""" - stations = agenda.travel.parse_yaml("stations", data_dir) - print(len(stations), "stations") - for station in stations: - assert "country" in station - assert agenda.get_country(station["country"]) - - -def check_airlines() -> None: - """Check airlines.""" - airlines = agenda.travel.parse_yaml("airlines", data_dir) - print(len(airlines), "airlines") - for airline in airlines: - assert airline.keys() == {"icao", "iata", "name"} - - -def check() -> None: - """Validate personal data YAML files.""" - check_trips() - check_flights() - check_trains() - check_conferences() - check_events() - check_airports() - check_stations() - check_airlines() - - -if __name__ == "__main__": - check() +stations = agenda.travel.parse_yaml("stations", data_dir) +print(len(stations), "stations") +for station in stations: + assert "country" in station + assert agenda.get_country(station["country"])