From 3bfe983b1c6f503c697532d4b37669cad3983154 Mon Sep 17 00:00:00 2001 From: Lennard Geese <lennard.geese@sva.de> Date: Wed, 23 Apr 2025 16:30:24 +0200 Subject: [PATCH] Add check for years with no events, e.g. when code is run after new years but before first event --- DataImporter.py | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/DataImporter.py b/DataImporter.py index e8fe418..8c4cefb 100644 --- a/DataImporter.py +++ b/DataImporter.py @@ -68,11 +68,22 @@ class DataImporter(DataHandler, ABC): return fastf1.get_event(year, event) def importAllEventsFromYear(self, year: int): - races: list[Event] = [] + """ + Get all event objects from given year. + :param year: Year from which to retrieve event objects. + :return: List of all event objects from the given year. Returns None if + """ + if self.__isInFuture(year): raise ValueError("Cannot get event data from the future :)") + + events: list[Event] = [] schedule: EventSchedule = fastf1.get_event_schedule(year, include_testing = False) + if schedule.empty: + print(f"INFO: No races have run in {year} yet. You will receive a None object") + return None + for raceIndex in schedule['RoundNumber']: - races.append(schedule.get_event_by_round(raceIndex)) - return races + events.append(schedule.get_event_by_round(raceIndex)) + return events def importSessionWeather(self, sessionIdentifier: SessionIdentifier): """ @@ -101,12 +112,11 @@ class DataImporter(DataHandler, ABC): return session def getWetEventsSince(self, firstYear: int): - currentYear = datetime.now().year - if firstYear > currentYear: - raise ValueError("Cannot get race data from the future :)") + if self.__isInFuture(firstYear): raise ValueError("Cannot get race data from the future :)") rainRaces: list[Session] = [] - for year in range(firstYear, currentYear): # FIXME: Handle exception after new years, when no events have run in current year yet + currentYear = datetime.now().year + for year in range(firstYear, currentYear): wetWeatherRacesInYear: list[Session] = self.getWetEventsIn(year) for wetWeatherRace in wetWeatherRacesInYear: rainRaces.append(wetWeatherRace) @@ -121,7 +131,9 @@ class DataImporter(DataHandler, ABC): return rainRaces - + def __isInFuture(self, year: int): + currentYear = datetime.now().year + return year > currentYear def getRainRacesSince(self, firstYear: int): """ -- GitLab