def get_driver_name(did, include_flag=True, just_last=False): """ Gets the stylized version of the given driver's name :param did: Driver ID :param include_flag: Whether to include the nationality flag in the driver's name :param just_last: Whether to include the first name :return: String """ global drivers if drivers is None: drivers = load_drivers() driver = drivers.loc[did] if just_last: name = driver["surname"] else: name = driver["forename"] + " " + driver["surname"] if include_flag: nat = driver["nationality"].lower() if nat in NATIONALITY_TO_FLAG.index: flag_t = NATIONALITY_TO_FLAG.loc[nat, "flag"] name = flag.flagize(f":{flag_t}: " + name) else: logging.warning(f"Unknown nationality {nat}, driver ID: {did}") return name
import logging import traceback import time import pandas as pd from mode.driver import get_layout, generate_team_performance_layout, generate_spvfp_scatter, generate_mltr_fp_scatter from data_loading.data_loader import load_drivers, load_races, load_driver_standings, load_results, \ load_fastest_lap_data from mode.driver import generate_win_plot, generate_positions_plot, mark_team_changes, \ generate_circuit_performance_table, generate_finishing_position_bar_plot, generate_wdc_position_bar_plot from utils import time_decorator, get_driver_name # Biggest JOKE of a "unit test" but it works drivers = load_drivers() error_ids = [] times = {"did": [], "time": []} logger = logging.getLogger() logger.disabled = True driver_standings = load_driver_standings() results = load_results() fastest_lap_data = load_fastest_lap_data() races = load_races() driver_id = 30 # Schumacher driver_results = results[results["driverId"] == driver_id] driver_driver_standings = driver_standings[driver_standings["driverId"] == driver_id] driver_rids = driver_results["raceId"].unique() driver_races = races[races.index.isin(driver_rids)].sort_values( by=["year", "raceId"])