From e66945a82538fbdf4ff34cf52c1b4ecd8697f719 Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Wed, 3 Jul 2024 09:54:00 +0300 Subject: [PATCH] Refactor validate_yaml.py --- validate_yaml.py | 111 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 77 insertions(+), 34 deletions(-) diff --git a/validate_yaml.py b/validate_yaml.py index d23fd0e..ec34a52 100755 --- a/validate_yaml.py +++ b/validate_yaml.py @@ -13,43 +13,86 @@ 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") -coords, routes = agenda.trip.get_coordinates_and_routes(trip_list, data_dir) -print(len(coords), "coords") -print(len(routes), "routes") +def check_trips() -> None: + """Check trips.""" + trip_list = agenda.trip.build_trip_list(data_dir) + print(len(trip_list), "trips") -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"]) + coords, routes = agenda.trip.get_coordinates_and_routes(trip_list, data_dir) + print(len(coords), "coords") + print(len(routes), "routes") -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_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()