Skip to content
Snippets Groups Projects
Commit 3bfe983b authored by Lennard Geese's avatar Lennard Geese
Browse files

Add check for years with no events, e.g. when code is run after new years but before first event

parent b9db83b8
No related branches found
No related tags found
No related merge requests found
...@@ -68,11 +68,22 @@ class DataImporter(DataHandler, ABC): ...@@ -68,11 +68,22 @@ class DataImporter(DataHandler, ABC):
return fastf1.get_event(year, event) return fastf1.get_event(year, event)
def importAllEventsFromYear(self, year: int): 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) 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']: for raceIndex in schedule['RoundNumber']:
races.append(schedule.get_event_by_round(raceIndex)) events.append(schedule.get_event_by_round(raceIndex))
return races return events
def importSessionWeather(self, sessionIdentifier: SessionIdentifier): def importSessionWeather(self, sessionIdentifier: SessionIdentifier):
""" """
...@@ -101,12 +112,11 @@ class DataImporter(DataHandler, ABC): ...@@ -101,12 +112,11 @@ class DataImporter(DataHandler, ABC):
return session return session
def getWetEventsSince(self, firstYear: int): def getWetEventsSince(self, firstYear: int):
currentYear = datetime.now().year if self.__isInFuture(firstYear): raise ValueError("Cannot get race data from the future :)")
if firstYear > currentYear:
raise ValueError("Cannot get race data from the future :)")
rainRaces: list[Session] = [] 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) wetWeatherRacesInYear: list[Session] = self.getWetEventsIn(year)
for wetWeatherRace in wetWeatherRacesInYear: for wetWeatherRace in wetWeatherRacesInYear:
rainRaces.append(wetWeatherRace) rainRaces.append(wetWeatherRace)
...@@ -121,7 +131,9 @@ class DataImporter(DataHandler, ABC): ...@@ -121,7 +131,9 @@ class DataImporter(DataHandler, ABC):
return rainRaces return rainRaces
def __isInFuture(self, year: int):
currentYear = datetime.now().year
return year > currentYear
def getRainRacesSince(self, firstYear: int): def getRainRacesSince(self, firstYear: int):
""" """
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment