tracinginsights's picture
download
raw
451 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Defaulting to user installation because normal site-packages is not writeable\n",
"Requirement already satisfied: fastf1 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (3.3.0)\n",
"Requirement already satisfied: requests>=2.28.1 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from fastf1) (2.31.0)\n",
"Requirement already satisfied: thefuzz in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from fastf1) (0.22.1)\n",
"Requirement already satisfied: websockets>=10.3 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from fastf1) (12.0)\n",
"Requirement already satisfied: numpy<2.0.0,>=1.21.5 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from fastf1) (1.26.4)\n",
"Requirement already satisfied: matplotlib<4.0.0,>=3.5.1 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from fastf1) (3.8.3)\n",
"Requirement already satisfied: python-dateutil in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from fastf1) (2.9.0.post0)\n",
"Requirement already satisfied: scipy<2.0.0,>=1.7.3 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from fastf1) (1.12.0)\n",
"Requirement already satisfied: requests-cache>=1.0.0 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from fastf1) (1.2.0)\n",
"Requirement already satisfied: timple>=0.1.6 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from fastf1) (0.1.8)\n",
"Requirement already satisfied: pandas<3.0.0,>=1.4.1 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from fastf1) (2.2.1)\n",
"Requirement already satisfied: pyparsing>=2.3.1 in /usr/lib/python3/dist-packages (from matplotlib<4.0.0,>=3.5.1->fastf1) (2.4.7)\n",
"Requirement already satisfied: packaging>=20.0 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from matplotlib<4.0.0,>=3.5.1->fastf1) (23.2)\n",
"Requirement already satisfied: kiwisolver>=1.3.1 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from matplotlib<4.0.0,>=3.5.1->fastf1) (1.4.5)\n",
"Requirement already satisfied: fonttools>=4.22.0 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from matplotlib<4.0.0,>=3.5.1->fastf1) (4.49.0)\n",
"Requirement already satisfied: pillow>=8 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from matplotlib<4.0.0,>=3.5.1->fastf1) (10.2.0)\n",
"Requirement already satisfied: contourpy>=1.0.1 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from matplotlib<4.0.0,>=3.5.1->fastf1) (1.2.0)\n",
"Requirement already satisfied: cycler>=0.10 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from matplotlib<4.0.0,>=3.5.1->fastf1) (0.12.1)\n",
"Requirement already satisfied: pytz>=2020.1 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from pandas<3.0.0,>=1.4.1->fastf1) (2024.1)\n",
"Requirement already satisfied: tzdata>=2022.7 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from pandas<3.0.0,>=1.4.1->fastf1) (2024.1)\n",
"Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil->fastf1) (1.16.0)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from requests>=2.28.1->fastf1) (3.3.2)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from requests>=2.28.1->fastf1) (2.2.1)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from requests>=2.28.1->fastf1) (2024.2.2)\n",
"Requirement already satisfied: idna<4,>=2.5 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from requests>=2.28.1->fastf1) (3.6)\n",
"Requirement already satisfied: cattrs>=22.2 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from requests-cache>=1.0.0->fastf1) (23.2.3)\n",
"Requirement already satisfied: url-normalize>=1.4 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from requests-cache>=1.0.0->fastf1) (1.4.3)\n",
"Requirement already satisfied: attrs>=21.2 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from requests-cache>=1.0.0->fastf1) (23.2.0)\n",
"Requirement already satisfied: platformdirs>=2.5 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from requests-cache>=1.0.0->fastf1) (4.2.0)\n",
"Requirement already satisfied: rapidfuzz<4.0.0,>=3.0.0 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from thefuzz->fastf1) (3.6.2)\n",
"Requirement already satisfied: exceptiongroup>=1.1.1 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from cattrs>=22.2->requests-cache>=1.0.0->fastf1) (1.2.0)\n",
"Requirement already satisfied: typing-extensions!=4.6.3,>=4.1.0 in /workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages (from cattrs>=22.2->requests-cache>=1.0.0->fastf1) (4.10.0)\n"
]
}
],
"source": [
"!pip install fastf1"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import fastf1\n",
"import os\n",
"import json\n",
"import utils\n",
"\n",
"YEAR = 2020\n",
"\n",
"events = [\n",
"# '70th Anniversary Grand Prix',\n",
"# 'Abu Dhabi Grand Prix',\n",
"# 'Austrian Grand Prix', \n",
"# 'Bahrain Grand Prix',\n",
"# 'Belgian Grand Prix', \n",
"# 'British Grand Prix', \n",
"# 'Eifel Grand Prix', \n",
"# 'Emilia Romagna Grand Prix',\n",
"# 'Hungarian Grand Prix',\n",
"# 'Italian Grand Prix',\n",
"# 'Portuguese Grand Prix', \n",
"# 'Russian Grand Prix',\n",
"# 'Spanish Grand Prix', \n",
"# 'Styrian Grand Prix', \n",
"# 'Turkish Grand Prix', \n",
" \n",
" \n",
" \n",
"# 'Tuscan Grand Prix', \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 'Sakhir Grand Prix',\n",
" \n",
"\n",
"]\n",
"sessions = [\n",
" \"Practice 1\",\n",
" \"Practice 2\",\n",
" \"Practice 3\",\n",
" \"Qualifying\",\n",
" \"Race\",\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"req WARNING \tDEFAULT CACHE ENABLED! (24.0 KB) /home/gitpod/.cache/fastf1\n",
"core INFO \tLoading data for Sakhir Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"_api WARNING \tDriver 1: Car data is incomplete!\n",
"_api WARNING \tDriver 2: Car data is incomplete!\n",
"_api WARNING \tDriver 8: Car data is incomplete!\n",
"_api WARNING \tDriver 9: Car data is incomplete!\n",
"_api WARNING \tDriver 12: Car data is incomplete!\n",
"_api WARNING \tDriver 14: Car data is incomplete!\n",
"_api WARNING \tDriver 15: Car data is incomplete!\n",
"_api WARNING \tDriver 17: Car data is incomplete!\n",
"_api WARNING \tDriver 19: Car data is incomplete!\n",
"_api WARNING \tDriver 21: Car data is incomplete!\n",
"_api WARNING \tDriver 27: Car data is incomplete!\n",
"_api WARNING \tDriver 41: Car data is incomplete!\n",
"_api WARNING \tDriver 43: Car data is incomplete!\n",
"_api WARNING \tDriver 44: Car data is incomplete!\n",
"_api WARNING \tDriver 46: Car data is incomplete!\n",
"_api WARNING \tDriver 47: Car data is incomplete!\n",
"_api WARNING \tDriver 49: Car data is incomplete!\n",
"_api WARNING \tDriver 66: Car data is incomplete!\n",
"_api WARNING \tDriver 75: Car data is incomplete!\n",
"_api WARNING \tDriver 76: Car data is incomplete!\n",
"_api WARNING \tDriver 23: Car data is incomplete!\n",
"_api WARNING \tDriver 26: Car data is incomplete!\n",
"_api WARNING \tDriver 31: Car data is incomplete!\n",
"_api WARNING \tDriver 33: Car data is incomplete!\n",
"_api WARNING \tDriver 51: Car data is incomplete!\n",
"_api WARNING \tDriver 55: Car data is incomplete!\n",
"_api WARNING \tDriver 63: Car data is incomplete!\n",
"_api WARNING \tDriver 77: Car data is incomplete!\n",
"_api WARNING \tDriver 89: Car data is incomplete!\n",
"_api WARNING \tDriver 99: Car data is incomplete!\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"_api WARNING \tDriver 1: Position data is incomplete!\n",
"_api WARNING \tDriver 2: Position data is incomplete!\n",
"_api WARNING \tDriver 8: Position data is incomplete!\n",
"_api WARNING \tDriver 9: Position data is incomplete!\n",
"_api WARNING \tDriver 12: Position data is incomplete!\n",
"_api WARNING \tDriver 14: Position data is incomplete!\n",
"_api WARNING \tDriver 15: Position data is incomplete!\n",
"_api WARNING \tDriver 17: Position data is incomplete!\n",
"_api WARNING \tDriver 19: Position data is incomplete!\n",
"_api WARNING \tDriver 21: Position data is incomplete!\n",
"_api WARNING \tDriver 27: Position data is incomplete!\n",
"_api WARNING \tDriver 41: Position data is incomplete!\n",
"_api WARNING \tDriver 43: Position data is incomplete!\n",
"_api WARNING \tDriver 44: Position data is incomplete!\n",
"_api WARNING \tDriver 46: Position data is incomplete!\n",
"_api WARNING \tDriver 47: Position data is incomplete!\n",
"_api WARNING \tDriver 49: Position data is incomplete!\n",
"_api WARNING \tDriver 66: Position data is incomplete!\n",
"_api WARNING \tDriver 75: Position data is incomplete!\n",
"_api WARNING \tDriver 76: Position data is incomplete!\n",
"_api WARNING \tDriver 77: Position data is incomplete!\n",
"_api WARNING \tDriver 78: Position data is incomplete!\n",
"_api WARNING \tDriver 79: Position data is incomplete!\n",
"_api WARNING \tDriver 87: Position data is incomplete!\n",
"_api WARNING \tDriver 91: Position data is incomplete!\n",
"_api WARNING \tDriver 92: Position data is incomplete!\n",
"_api WARNING \tDriver 99: Position data is incomplete!\n",
"_api WARNING \tDriver 23: Position data is incomplete!\n",
"_api WARNING \tDriver 26: Position data is incomplete!\n",
"_api WARNING \tDriver 31: Position data is incomplete!\n",
"_api WARNING \tDriver 33: Position data is incomplete!\n",
"_api WARNING \tDriver 51: Position data is incomplete!\n",
"_api WARNING \tDriver 55: Position data is incomplete!\n",
"_api WARNING \tDriver 63: Position data is incomplete!\n",
"_api WARNING \tDriver 89: Position data is incomplete!\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for weather_data. Loading data...\n",
"_api INFO \tFetching weather data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for race_control_messages. Loading data...\n",
"_api INFO \tFetching race control messages...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '63', '33', '16', '11', '26', '3', '55', '10', '18', '31', '23', '5', '99', '4', '20', '6', '89', '7', '51']\n"
]
}
],
"source": [
"session = fastf1.get_session(2020, 'Sakhir Grand Prix', 'Q')\n",
"session.load()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"fastest_lap = session.laps.pick_fastest()\n",
"car_data = fastest_lap.get_car_data().add_distance()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "'NoneType' object is not iterable",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m/workspace/2020/bot.ipynb Cell 5\u001b[0m line \u001b[0;36m1\n\u001b[0;32m----> <a href='vscode-notebook-cell://tracinginsightsa-2020-tg9i2wcyg87.ws-us110.gitpod.io/workspace/2020/bot.ipynb#X46sdnNjb2RlLXJlbW90ZQ%3D%3D?line=0'>1</a>\u001b[0m circuit_info \u001b[39m=\u001b[39m session\u001b[39m.\u001b[39;49mget_circuit_info()\n",
"File \u001b[0;32m/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/core.py:2442\u001b[0m, in \u001b[0;36mSession.get_circuit_info\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2431\u001b[0m \u001b[39m\u001b[39m\u001b[39m\"\"\"Returns additional information about the circuit that hosts this\u001b[39;00m\n\u001b[1;32m 2432\u001b[0m \u001b[39mevent.\u001b[39;00m\n\u001b[1;32m 2433\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2439\u001b[0m \u001b[39mSee :class:`~fastf1.mvapi.CircuitInfo` for detailed information.\u001b[39;00m\n\u001b[1;32m 2440\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 2441\u001b[0m circuit_key \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39msession_info[\u001b[39m'\u001b[39m\u001b[39mMeeting\u001b[39m\u001b[39m'\u001b[39m][\u001b[39m'\u001b[39m\u001b[39mCircuit\u001b[39m\u001b[39m'\u001b[39m][\u001b[39m'\u001b[39m\u001b[39mKey\u001b[39m\u001b[39m'\u001b[39m]\n\u001b[0;32m-> 2442\u001b[0m circuit_info \u001b[39m=\u001b[39m get_circuit_info(year\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mevent\u001b[39m.\u001b[39;49myear,\n\u001b[1;32m 2443\u001b[0m circuit_key\u001b[39m=\u001b[39;49mcircuit_key)\n\u001b[1;32m 2444\u001b[0m circuit_info\u001b[39m.\u001b[39madd_marker_distance(\n\u001b[1;32m 2445\u001b[0m reference_lap\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlaps\u001b[39m.\u001b[39mpick_fastest()\n\u001b[1;32m 2446\u001b[0m )\n\u001b[1;32m 2447\u001b[0m \u001b[39mreturn\u001b[39;00m circuit_info\n",
"File \u001b[0;32m/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/mvapi/data.py:138\u001b[0m, in \u001b[0;36mget_circuit_info\u001b[0;34m(year, circuit_key)\u001b[0m\n\u001b[1;32m 136\u001b[0m \u001b[39mfor\u001b[39;00m cat \u001b[39min\u001b[39;00m (\u001b[39m'\u001b[39m\u001b[39mcorners\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mmarshalLights\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mmarshalSectors\u001b[39m\u001b[39m'\u001b[39m):\n\u001b[1;32m 137\u001b[0m rows \u001b[39m=\u001b[39m \u001b[39mlist\u001b[39m()\n\u001b[0;32m--> 138\u001b[0m \u001b[39mfor\u001b[39;00m entry \u001b[39min\u001b[39;00m data[cat]:\n\u001b[1;32m 139\u001b[0m rows\u001b[39m.\u001b[39mappend((\n\u001b[1;32m 140\u001b[0m \u001b[39mfloat\u001b[39m(entry\u001b[39m.\u001b[39mget(\u001b[39m'\u001b[39m\u001b[39mtrackPosition\u001b[39m\u001b[39m'\u001b[39m, {})\u001b[39m.\u001b[39mget(\u001b[39m'\u001b[39m\u001b[39mx\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m0.0\u001b[39m)),\n\u001b[1;32m 141\u001b[0m \u001b[39mfloat\u001b[39m(entry\u001b[39m.\u001b[39mget(\u001b[39m'\u001b[39m\u001b[39mtrackPosition\u001b[39m\u001b[39m'\u001b[39m, {})\u001b[39m.\u001b[39mget(\u001b[39m'\u001b[39m\u001b[39my\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m0.0\u001b[39m)),\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 145\u001b[0m np\u001b[39m.\u001b[39mnan\n\u001b[1;32m 146\u001b[0m ))\n\u001b[1;32m 147\u001b[0m ret\u001b[39m.\u001b[39mappend(\n\u001b[1;32m 148\u001b[0m pd\u001b[39m.\u001b[39mDataFrame(\n\u001b[1;32m 149\u001b[0m rows,\n\u001b[1;32m 150\u001b[0m columns\u001b[39m=\u001b[39m[\u001b[39m'\u001b[39m\u001b[39mX\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mY\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mNumber\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mLetter\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mAngle\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mDistance\u001b[39m\u001b[39m'\u001b[39m]\n\u001b[1;32m 151\u001b[0m )\n\u001b[1;32m 152\u001b[0m )\n",
"\u001b[0;31mTypeError\u001b[0m: 'NoneType' object is not iterable"
]
}
],
"source": [
"circuit_info = session.get_circuit_info()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"core INFO \tLoading data for Austrian Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"core WARNING \tDriver 23: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 5: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 99: Lap timing integrity check failed for 1 lap(s)\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Austrian Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Austrian Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Austrian Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '33', '4', '23', '11', '16', '55', '18', '3', '5', '10', '26', '31', '8', '20', '63', '99', '7', '6']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Austrian Grand Prix - Race [v3.3.0]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tDriver 77: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 16: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 4: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 44: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 55: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 11: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 10: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 31: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 99: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 5: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 26: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 23: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 8: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 20: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 18: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 3: Lap timing integrity check failed for 1 lap(s)\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '16', '4', '44', '55', '11', '10', '31', '99', '5', '6', '26', '23', '7', '63', '8', '20', '18', '3', '33']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Styrian Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tNo lap data for driver 99\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 99)\n",
"core INFO \tFinished loading data for 22 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Styrian Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Styrian Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 20: Ignoring late data for a previously processed lap.The data may contain errors (previous: 14; current 15)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/core.py:1591: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '<TimedeltaArray>\n",
"['0 days 01:00:39.414000']\n",
"Length: 1, dtype: timedelta64[ns]' has dtype incompatible with datetime64[ns], please explicitly cast to a compatible dtype first.\n",
" result.loc[mask, 'LapStartTime'] = result.loc[mask, 'PitOutTime']\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '55', '77', '31', '4', '23', '10', '3', '5', '16', '63', '18', '26', '20', '7', '11', '6', '99', '8']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Styrian Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tSkipping lap alignment (no suitable lap)!\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '23', '4', '11', '18', '3', '55', '26', '7', '20', '8', '99', '10', '63', '6', '31', '16', '5']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Hungarian Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 10\n",
"core WARNING \tNo lap data for driver 7\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 10)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 7)\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Hungarian Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 16: Ignoring late data for a previously processed lap.The data may contain errors (previous: 6; current 7)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/core.py:1591: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '<TimedeltaArray>\n",
"['0 days 01:38:40.318000']\n",
"Length: 1, dtype: timedelta64[ns]' has dtype incompatible with datetime64[ns], please explicitly cast to a compatible dtype first.\n",
" result.loc[mask, 'LapStartTime'] = result.loc[mask, 'PitOutTime']\n",
"/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/core.py:1591: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '<TimedeltaArray>\n",
"['0 days 01:02:48.965000']\n",
"Length: 1, dtype: timedelta64[ns]' has dtype incompatible with datetime64[ns], please explicitly cast to a compatible dtype first.\n",
" result.loc[mask, 'LapStartTime'] = result.loc[mask, 'PitOutTime']\n",
"/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/core.py:1591: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '<TimedeltaArray>\n",
"['0 days 00:57:10.594000']\n",
"Length: 1, dtype: timedelta64[ns]' has dtype incompatible with datetime64[ns], please explicitly cast to a compatible dtype first.\n",
" result.loc[mask, 'LapStartTime'] = result.loc[mask, 'PitOutTime']\n",
"/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/core.py:1591: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '<TimedeltaArray>\n",
"['0 days 01:20:35.093000']\n",
"Length: 1, dtype: timedelta64[ns]' has dtype incompatible with datetime64[ns], please explicitly cast to a compatible dtype first.\n",
" result.loc[mask, 'LapStartTime'] = result.loc[mask, 'PitOutTime']\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Hungarian Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Hungarian Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '18', '11', '5', '16', '33', '4', '55', '10', '3', '63', '23', '31', '6', '20', '26', '8', '99', '7']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Hungarian Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '77', '18', '23', '5', '11', '3', '55', '20', '16', '26', '4', '31', '7', '8', '99', '63', '6', '10']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for British Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 0\n",
"core WARNING \tNo lap data for driver 11\n",
"core WARNING \tNo lap data for driver 65535\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 0)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 11)\n",
"core WARNING \tDriver 23: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 65535)\n",
"core WARNING \tDriver 99: Lap timing integrity check failed for 1 lap(s)\n",
"core INFO \tFinished loading data for 23 drivers: ['0', '10', '11', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '65535', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for British Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for British Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for British Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '16', '4', '18', '55', '3', '31', '5', '10', '23', '27', '26', '63', '20', '99', '7', '8', '6']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for British Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 4: Ignoring late data for a previously processed lap.The data may contain errors (previous: 35; current 36)\n",
"_api WARNING \tDriver 8: Encountered 1 timing integrity error(s) near lap(s): [15].\n",
"This might be a bug and should be reported.\n",
"_api WARNING \tSkipping lap alignment (no suitable lap)!\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '16', '3', '4', '31', '10', '23', '18', '5', '77', '63', '55', '99', '6', '8', '7', '26', '20', '27']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 10: Ignoring late data for a previously processed lap.The data may contain errors (previous: 16; current 17)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 99\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 99)\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tDriver 6: Lap timing integrity check failed for 1 lap(s)\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '27', '33', '3', '18', '10', '16', '23', '4', '31', '5', '55', '8', '63', '26', '20', '6', '99', '7']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['33', '44', '77', '16', '23', '18', '27', '31', '4', '26', '10', '5', '55', '3', '7', '8', '99', '63', '6', '20']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Spanish Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Spanish Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 7: Ignoring late data for a previously processed lap.The data may contain errors (previous: 9; current 10)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Spanish Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Spanish Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '11', '18', '23', '55', '4', '16', '10', '5', '26', '3', '7', '31', '20', '8', '63', '6', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Spanish Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '77', '18', '11', '55', '5', '23', '10', '4', '3', '26', '31', '7', '20', '99', '63', '6', '8', '16']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Belgian Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/core.py:1591: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '<TimedeltaArray>\n",
"['0 days 00:15:18.292000']\n",
"Length: 1, dtype: timedelta64[ns]' has dtype incompatible with datetime64[ns], please explicitly cast to a compatible dtype first.\n",
" result.loc[mask, 'LapStartTime'] = result.loc[mask, 'PitOutTime']\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Belgian Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Belgian Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Belgian Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '3', '23', '31', '55', '11', '18', '4', '26', '10', '16', '5', '63', '7', '8', '99', '6', '20']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Belgian Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 26: Ignoring late data for a previously processed lap.The data may contain errors (previous: 40; current 41)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '3', '31', '23', '4', '10', '18', '11', '26', '7', '5', '16', '8', '6', '20', '99', '63', '55']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Italian Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Italian Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Italian Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Italian Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 26: Ignoring late data for a previously processed lap.The data may contain errors (previous: 13; current 14)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '55', '11', '33', '4', '3', '18', '23', '10', '26', '31', '16', '7', '20', '8', '5', '99', '63', '6']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Italian Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '55', '18', '4', '77', '3', '44', '31', '26', '11', '6', '8', '7', '63', '23', '99', '33', '16', '20', '5']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Tuscan Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 77: Ignoring late data for a previously processed lap.The data may contain errors (previous: 23; current 24)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Tuscan Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tDriver 99: Lap timing integrity check failed for 1 lap(s)\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Tuscan Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/core.py:1591: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '<TimedeltaArray>\n",
"['0 days 00:37:37.820000']\n",
"Length: 1, dtype: timedelta64[ns]' has dtype incompatible with datetime64[ns], please explicitly cast to a compatible dtype first.\n",
" result.loc[mask, 'LapStartTime'] = result.loc[mask, 'PitOutTime']\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Tuscan Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '23', '16', '11', '18', '3', '55', '31', '4', '26', '7', '5', '8', '10', '99', '63', '6', '20']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Tuscan Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '23', '3', '11', '4', '26', '16', '7', '5', '63', '8', '18', '31', '6', '20', '99', '55', '33', '10']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Russian Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 6: Ignoring late data for a previously processed lap.The data may contain errors (previous: 11; current 12)\n",
"_api WARNING \tDriver 33: Ignoring late data for a previously processed lap.The data may contain errors (previous: 14; current 15)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Russian Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Russian Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Russian Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '77', '11', '3', '55', '31', '4', '10', '23', '16', '26', '18', '63', '5', '8', '99', '20', '6', '7']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Russian Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '33', '44', '11', '3', '16', '31', '26', '10', '23', '99', '20', '5', '7', '4', '6', '8', '63', '55', '18']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Eifel Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 31: Ignoring late data for a previously processed lap.The data may contain errors (previous: 13; current 14)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 18\n",
"core WARNING \tNo lap data for driver 27\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 18)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 27)\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Eifel Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"logger WARNING \tFailed to load result data from Ergast!\n",
"core WARNING \tNo result data for this session available on Ergast! (This is expected for recent sessions)\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"logger WARNING \tFailed to calculate quali results from lap times!\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '16', '33', '5', '4', '11', '3', '23', '10', '31', '26', '55', '7', '8', '20', '63', '99', '6', '27']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Eifel Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 7: Ignoring late data for a previously processed lap.The data may contain errors (previous: 37; current 38)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '3', '11', '55', '10', '16', '27', '8', '99', '5', '7', '20', '6', '26', '4', '23', '31', '77', '63']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Portuguese Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Portuguese Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Portuguese Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 5: Ignoring late data for a previously processed lap.The data may contain errors (previous: 13; current 14)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Portuguese Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '16', '11', '23', '55', '4', '10', '3', '31', '18', '26', '63', '5', '7', '99', '8', '20', '6']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Portuguese Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 77: Ignoring late data for a previously processed lap.The data may contain errors (previous: 62; current 63)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '16', '10', '55', '11', '31', '3', '5', '7', '23', '4', '63', '99', '20', '8', '6', '26', '18']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Emilia Romagna Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Emilia Romagna Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '33', '10', '3', '23', '16', '26', '4', '55', '11', '31', '63', '5', '18', '8', '20', '7', '6', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Emilia Romagna Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tDriver 23: Lap timing integrity check failed for 1 lap(s)\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '3', '26', '16', '11', '55', '4', '7', '99', '6', '5', '18', '8', '23', '63', '33', '20', '31', '10']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Turkish Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 10: Ignoring late data for a previously processed lap.The data may contain errors (previous: 2; current 3)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Turkish Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Turkish Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 99: Ignoring late data for a previously processed lap.The data may contain errors (previous: 8; current 9)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/core.py:1591: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '<TimedeltaArray>\n",
"['0 days 00:24:57.156000']\n",
"Length: 1, dtype: timedelta64[ns]' has dtype incompatible with datetime64[ns], please explicitly cast to a compatible dtype first.\n",
" result.loc[mask, 'LapStartTime'] = result.loc[mask, 'PitOutTime']\n",
"/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/core.py:1591: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '<TimedeltaArray>\n",
"['0 days 00:23:48.665000']\n",
"Length: 1, dtype: timedelta64[ns]' has dtype incompatible with datetime64[ns], please explicitly cast to a compatible dtype first.\n",
" result.loc[mask, 'LapStartTime'] = result.loc[mask, 'PitOutTime']\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Turkish Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 16: Ignoring late data for a previously processed lap.The data may contain errors (previous: 17; current 18)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['18', '33', '11', '23', '3', '44', '31', '7', '77', '99', '4', '5', '55', '16', '10', '20', '26', '63', '8', '6']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Turkish Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '11', '5', '16', '55', '33', '23', '4', '18', '3', '31', '26', '10', '77', '7', '63', '20', '8', '6', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 18: Encountered 1 timing integrity error(s) near lap(s): [24].\n",
"This might be a bug and should be reported.\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 20\n",
"core WARNING \tNo lap data for driver 99\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 20)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 99)\n",
"core INFO \tFinished loading data for 22 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '50', '51', '55', '6', '63', '7', '77', '88', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tDriver 16: Lap timing integrity check failed for 1 lap(s)\n",
"core WARNING \tDriver 51: Lap timing integrity check failed for 1 lap(s)\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '51', '55', '6', '63', '7', '77', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '51', '55', '6', '63', '7', '77', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['33', '77', '44', '4', '23', '55', '26', '18', '16', '10', '31', '3', '5', '99', '11', '7', '20', '63', '51', '6']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tDriver 6: Lap timing integrity check failed for 1 lap(s)\n",
"core INFO \tFinished loading data for 20 drivers: ['33', '77', '44', '23', '4', '55', '3', '10', '31', '18', '26', '7', '16', '5', '63', '99', '6', '20', '51', '11']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 6: Ignoring late data for a previously processed lap.The data may contain errors (previous: 18; current 19)\n",
"_api WARNING \tDriver 10: Ignoring late data for a previously processed lap.The data may contain errors (previous: 29; current 30)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tNo lap data for driver 7\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 7)\n",
"core INFO \tFinished loading data for 22 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 2 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 3 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Bahrain Grand Prix - Qualifying [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 16: Ignoring late data for a previously processed lap.The data may contain errors (previous: 6; current 7)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '23', '11', '3', '31', '10', '4', '26', '5', '16', '18', '63', '55', '99', '7', '20', '8', '6']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Bahrain Grand Prix - Race [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 55: Encountered 1 timing integrity error(s) near lap(s): [48].\n",
"This might be a bug and should be reported.\n",
"_api WARNING \tSkipping lap alignment (no suitable lap)!\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '23', '4', '55', '10', '3', '77', '31', '16', '26', '63', '5', '6', '7', '99', '20', '11', '18', '8']\n",
"data WARNING \tFailed to generate marker distance information: telemetry data has not been loaded\n",
"core INFO \tLoading data for Sakhir Grand Prix - Practice 1 [v3.3.0]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 31: Ignoring late data for a previously processed lap.The data may contain errors (previous: 18; current 19)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tDriver 89: Lap timing integrity check failed for 1 lap(s)\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '5', '51', '55', '6', '63', '7', '77', '89', '99']\n"
]
},
{
"ename": "TypeError",
"evalue": "'NoneType' object is not iterable",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m/workspace/2020/bot.ipynb Cell 2\u001b[0m line \u001b[0;36m4\n\u001b[1;32m <a href='vscode-notebook-cell://tracinginsightsa-2020-tg9i2wcyg87.ws-us108.gitpod.io/workspace/2020/bot.ipynb#X32sdnNjb2RlLXJlbW90ZQ%3D%3D?line=42'>43</a>\u001b[0m f1session \u001b[39m=\u001b[39m fastf1\u001b[39m.\u001b[39mget_session(YEAR, event, session)\n\u001b[1;32m <a href='vscode-notebook-cell://tracinginsightsa-2020-tg9i2wcyg87.ws-us108.gitpod.io/workspace/2020/bot.ipynb#X32sdnNjb2RlLXJlbW90ZQ%3D%3D?line=43'>44</a>\u001b[0m f1session\u001b[39m.\u001b[39mload(laps\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m, telemetry\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m, weather\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m, messages\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m)\n\u001b[0;32m---> <a href='vscode-notebook-cell://tracinginsightsa-2020-tg9i2wcyg87.ws-us108.gitpod.io/workspace/2020/bot.ipynb#X32sdnNjb2RlLXJlbW90ZQ%3D%3D?line=44'>45</a>\u001b[0m circuit_info \u001b[39m=\u001b[39m f1session\u001b[39m.\u001b[39;49mget_circuit_info()\u001b[39m.\u001b[39mcorners\n\u001b[1;32m <a href='vscode-notebook-cell://tracinginsightsa-2020-tg9i2wcyg87.ws-us108.gitpod.io/workspace/2020/bot.ipynb#X32sdnNjb2RlLXJlbW90ZQ%3D%3D?line=45'>46</a>\u001b[0m corner_info \u001b[39m=\u001b[39m{\n\u001b[1;32m <a href='vscode-notebook-cell://tracinginsightsa-2020-tg9i2wcyg87.ws-us108.gitpod.io/workspace/2020/bot.ipynb#X32sdnNjb2RlLXJlbW90ZQ%3D%3D?line=46'>47</a>\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mCornerNumber\u001b[39m\u001b[39m\"\u001b[39m: circuit_info[\u001b[39m'\u001b[39m\u001b[39mNumber\u001b[39m\u001b[39m'\u001b[39m]\u001b[39m.\u001b[39mtolist(),\n\u001b[1;32m <a href='vscode-notebook-cell://tracinginsightsa-2020-tg9i2wcyg87.ws-us108.gitpod.io/workspace/2020/bot.ipynb#X32sdnNjb2RlLXJlbW90ZQ%3D%3D?line=47'>48</a>\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mX\u001b[39m\u001b[39m\"\u001b[39m: circuit_info[\u001b[39m'\u001b[39m\u001b[39mX\u001b[39m\u001b[39m'\u001b[39m]\u001b[39m.\u001b[39mtolist(),\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m <a href='vscode-notebook-cell://tracinginsightsa-2020-tg9i2wcyg87.ws-us108.gitpod.io/workspace/2020/bot.ipynb#X32sdnNjb2RlLXJlbW90ZQ%3D%3D?line=50'>51</a>\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mDistance\u001b[39m\u001b[39m\"\u001b[39m: circuit_info[\u001b[39m'\u001b[39m\u001b[39mDistance\u001b[39m\u001b[39m'\u001b[39m]\u001b[39m.\u001b[39mtolist(),\n\u001b[1;32m <a href='vscode-notebook-cell://tracinginsightsa-2020-tg9i2wcyg87.ws-us108.gitpod.io/workspace/2020/bot.ipynb#X32sdnNjb2RlLXJlbW90ZQ%3D%3D?line=51'>52</a>\u001b[0m }\n\u001b[1;32m <a href='vscode-notebook-cell://tracinginsightsa-2020-tg9i2wcyg87.ws-us108.gitpod.io/workspace/2020/bot.ipynb#X32sdnNjb2RlLXJlbW90ZQ%3D%3D?line=53'>54</a>\u001b[0m driver_folder \u001b[39m=\u001b[39m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mevent\u001b[39m}\u001b[39;00m\u001b[39m/\u001b[39m\u001b[39m{\u001b[39;00msession\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m\n",
"File \u001b[0;32m/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/core.py:2442\u001b[0m, in \u001b[0;36mSession.get_circuit_info\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2431\u001b[0m \u001b[39m\u001b[39m\u001b[39m\"\"\"Returns additional information about the circuit that hosts this\u001b[39;00m\n\u001b[1;32m 2432\u001b[0m \u001b[39mevent.\u001b[39;00m\n\u001b[1;32m 2433\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2439\u001b[0m \u001b[39mSee :class:`~fastf1.mvapi.CircuitInfo` for detailed information.\u001b[39;00m\n\u001b[1;32m 2440\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 2441\u001b[0m circuit_key \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39msession_info[\u001b[39m'\u001b[39m\u001b[39mMeeting\u001b[39m\u001b[39m'\u001b[39m][\u001b[39m'\u001b[39m\u001b[39mCircuit\u001b[39m\u001b[39m'\u001b[39m][\u001b[39m'\u001b[39m\u001b[39mKey\u001b[39m\u001b[39m'\u001b[39m]\n\u001b[0;32m-> 2442\u001b[0m circuit_info \u001b[39m=\u001b[39m get_circuit_info(year\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mevent\u001b[39m.\u001b[39;49myear,\n\u001b[1;32m 2443\u001b[0m circuit_key\u001b[39m=\u001b[39;49mcircuit_key)\n\u001b[1;32m 2444\u001b[0m circuit_info\u001b[39m.\u001b[39madd_marker_distance(\n\u001b[1;32m 2445\u001b[0m reference_lap\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlaps\u001b[39m.\u001b[39mpick_fastest()\n\u001b[1;32m 2446\u001b[0m )\n\u001b[1;32m 2447\u001b[0m \u001b[39mreturn\u001b[39;00m circuit_info\n",
"File \u001b[0;32m/workspace/.pyenv_mirror/user/current/lib/python3.10/site-packages/fastf1/mvapi/data.py:138\u001b[0m, in \u001b[0;36mget_circuit_info\u001b[0;34m(year, circuit_key)\u001b[0m\n\u001b[1;32m 136\u001b[0m \u001b[39mfor\u001b[39;00m cat \u001b[39min\u001b[39;00m (\u001b[39m'\u001b[39m\u001b[39mcorners\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mmarshalLights\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mmarshalSectors\u001b[39m\u001b[39m'\u001b[39m):\n\u001b[1;32m 137\u001b[0m rows \u001b[39m=\u001b[39m \u001b[39mlist\u001b[39m()\n\u001b[0;32m--> 138\u001b[0m \u001b[39mfor\u001b[39;00m entry \u001b[39min\u001b[39;00m data[cat]:\n\u001b[1;32m 139\u001b[0m rows\u001b[39m.\u001b[39mappend((\n\u001b[1;32m 140\u001b[0m \u001b[39mfloat\u001b[39m(entry\u001b[39m.\u001b[39mget(\u001b[39m'\u001b[39m\u001b[39mtrackPosition\u001b[39m\u001b[39m'\u001b[39m, {})\u001b[39m.\u001b[39mget(\u001b[39m'\u001b[39m\u001b[39mx\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m0.0\u001b[39m)),\n\u001b[1;32m 141\u001b[0m \u001b[39mfloat\u001b[39m(entry\u001b[39m.\u001b[39mget(\u001b[39m'\u001b[39m\u001b[39mtrackPosition\u001b[39m\u001b[39m'\u001b[39m, {})\u001b[39m.\u001b[39mget(\u001b[39m'\u001b[39m\u001b[39my\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m0.0\u001b[39m)),\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 145\u001b[0m np\u001b[39m.\u001b[39mnan\n\u001b[1;32m 146\u001b[0m ))\n\u001b[1;32m 147\u001b[0m ret\u001b[39m.\u001b[39mappend(\n\u001b[1;32m 148\u001b[0m pd\u001b[39m.\u001b[39mDataFrame(\n\u001b[1;32m 149\u001b[0m rows,\n\u001b[1;32m 150\u001b[0m columns\u001b[39m=\u001b[39m[\u001b[39m'\u001b[39m\u001b[39mX\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mY\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mNumber\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mLetter\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mAngle\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mDistance\u001b[39m\u001b[39m'\u001b[39m]\n\u001b[1;32m 151\u001b[0m )\n\u001b[1;32m 152\u001b[0m )\n",
"\u001b[0;31mTypeError\u001b[0m: 'NoneType' object is not iterable"
]
}
],
"source": [
"\n",
"\n",
"def sessions_available(year: int, event: str | int) -> any:\n",
" # get sessions available for a given year and event\n",
" event = str(event)\n",
" data = utils.LatestData(year)\n",
" sessions = data.get_sessions(event)\n",
" return sessions\n",
"\n",
"for event in events:\n",
" sessions = utils.get_sessions(YEAR, event)\n",
" for session in sessions:\n",
" f1session = fastf1.get_session(YEAR, event, session)\n",
" f1session.load(laps=True, telemetry=False, weather=False, messages=False)\n",
" circuit_info = f1session.get_circuit_info().corners\n",
" corner_info ={\n",
" \"CornerNumber\": circuit_info['Number'].tolist(),\n",
" \"X\": circuit_info['X'].tolist(),\n",
" \"Y\": circuit_info['Y'].tolist(),\n",
" \"Angle\": circuit_info['Angle'].tolist(),\n",
" \"Distance\": circuit_info['Distance'].tolist(),\n",
" }\n",
"\n",
" driver_folder = f\"{event}/{session}\"\n",
" file_path = f\"{event}/{session}/corners.json\"\n",
" if not os.path.exists(driver_folder):\n",
" os.makedirs(driver_folder)\n",
" # Save the dictionary to a JSON file\n",
" with open(file_path, \"w\") as json_file:\n",
" json.dump(corner_info, json_file)\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"!pip install fastapi requests pandas lxml fastf1 -q"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"YEAR = 2020\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import fastf1\n",
"fastf1.Cache.enable_cache(\"cache\")"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['Austrian Grand Prix', 'Styrian Grand Prix', 'Hungarian Grand Prix', 'British Grand Prix', '70th Anniversary Grand Prix', 'Spanish Grand Prix', 'Belgian Grand Prix', 'Italian Grand Prix', 'Tuscan Grand Prix', 'Russian Grand Prix', 'Eifel Grand Prix', 'Portuguese Grand Prix', 'Emilia Romagna Grand Prix', 'Turkish Grand Prix', 'Bahrain Grand Prix', 'Sakhir Grand Prix', 'Abu Dhabi Grand Prix']\n"
]
}
],
"source": [
"import utils\n",
"import fastf1\n",
"def events_available(year: int) -> any:\n",
" # get events available for a given year\n",
" data = utils.LatestData(year)\n",
" events = data.get_events()\n",
" return events\n",
"\n",
"events = events_available(YEAR)\n",
"print(events)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def sessions_available(year: int, event: str | int) -> any:\n",
" # get sessions available for a given year and event\n",
" event = str(event)\n",
" data = utils.LatestData(year)\n",
" sessions = data.get_sessions(event)\n",
" return sessions\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Folder already exists for Austrian Grand Prix: /workspaces/2020/Austrian Grand Prix\n",
"Folder already exists for Styrian Grand Prix: /workspaces/2020/Styrian Grand Prix\n",
"Folder already exists for Hungarian Grand Prix: /workspaces/2020/Hungarian Grand Prix\n",
"Folder already exists for British Grand Prix: /workspaces/2020/British Grand Prix\n",
"Folder already exists for 70th Anniversary Grand Prix: /workspaces/2020/70th Anniversary Grand Prix\n",
"Folder already exists for Spanish Grand Prix: /workspaces/2020/Spanish Grand Prix\n",
"Folder already exists for Belgian Grand Prix: /workspaces/2020/Belgian Grand Prix\n",
"Folder already exists for Italian Grand Prix: /workspaces/2020/Italian Grand Prix\n",
"Folder already exists for Tuscan Grand Prix: /workspaces/2020/Tuscan Grand Prix\n",
"Folder already exists for Russian Grand Prix: /workspaces/2020/Russian Grand Prix\n",
"Folder already exists for Eifel Grand Prix: /workspaces/2020/Eifel Grand Prix\n",
"Folder already exists for Portuguese Grand Prix: /workspaces/2020/Portuguese Grand Prix\n",
"Folder already exists for Emilia Romagna Grand Prix: /workspaces/2020/Emilia Romagna Grand Prix\n",
"Folder already exists for Turkish Grand Prix: /workspaces/2020/Turkish Grand Prix\n",
"Folder already exists for Bahrain Grand Prix: /workspaces/2020/Bahrain Grand Prix\n",
"Folder already exists for Sakhir Grand Prix: /workspaces/2020/Sakhir Grand Prix\n",
"Folder already exists for Abu Dhabi Grand Prix: /workspaces/2020/Abu Dhabi Grand Prix\n"
]
}
],
"source": [
"import os\n",
"\n",
"# Your list of events\n",
"events_list = events\n",
"\n",
"# Create a folder for each event in the current working directory\n",
"for event in events_list:\n",
" event_directory = os.path.join(os.getcwd(), event)\n",
"\n",
" # Check if the folder already exists before creating it\n",
" if not os.path.exists(event_directory):\n",
" os.makedirs(event_directory)\n",
" print(f\"Folder created for {event}: {event_directory}\")\n",
" else:\n",
" print(f\"Folder already exists for {event}: {event_directory}\")\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"def session_drivers(year: int, event: str | int, session: str) -> any:\n",
" # get drivers available for a given year, event and session\n",
" import fastf1\n",
" f1session = fastf1.get_session(year, event, session)\n",
" f1session.load(telemetry=True, weather=False, messages=False)\n",
"\n",
" laps = f1session.laps\n",
" team_colors = utils.team_colors(year)\n",
" # add team_colors dict to laps on Team column\n",
" laps[\"color\"] = laps[\"Team\"].map(team_colors)\n",
"\n",
" unique_drivers = laps[\"Driver\"].unique()\n",
"\n",
" drivers = [\n",
" {\n",
"\n",
" \"driver\": driver,\n",
" \"team\": laps[laps.Driver == driver].Team.iloc[0],\n",
" }\n",
" for driver in unique_drivers\n",
" ]\n",
"\n",
" return {\"drivers\": drivers}"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Folder already exists for Austrian Grand Prix: /workspaces/2020/Austrian Grand Prix\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Folder already exists for Austrian Grand Prix - Practice 1: /workspaces/2020/Austrian Grand Prix/Practice 1\n",
"Folder already exists for Austrian Grand Prix - Practice 2: /workspaces/2020/Austrian Grand Prix/Practice 2\n",
"Folder already exists for Austrian Grand Prix - Practice 3: /workspaces/2020/Austrian Grand Prix/Practice 3\n",
"Folder already exists for Austrian Grand Prix - Qualifying: /workspaces/2020/Austrian Grand Prix/Qualifying\n",
"Folder already exists for Austrian Grand Prix - Race: /workspaces/2020/Austrian Grand Prix/Race\n",
"Folder already exists for Styrian Grand Prix: /workspaces/2020/Styrian Grand Prix\n",
"Folder already exists for Styrian Grand Prix - Practice 1: /workspaces/2020/Styrian Grand Prix/Practice 1\n",
"Folder already exists for Styrian Grand Prix - Practice 2: /workspaces/2020/Styrian Grand Prix/Practice 2\n",
"Folder already exists for Styrian Grand Prix - Practice 3: /workspaces/2020/Styrian Grand Prix/Practice 3\n",
"Folder already exists for Styrian Grand Prix - Qualifying: /workspaces/2020/Styrian Grand Prix/Qualifying\n",
"Folder already exists for Styrian Grand Prix - Race: /workspaces/2020/Styrian Grand Prix/Race\n",
"Folder already exists for Hungarian Grand Prix: /workspaces/2020/Hungarian Grand Prix\n",
"Folder already exists for Hungarian Grand Prix - Practice 1: /workspaces/2020/Hungarian Grand Prix/Practice 1\n",
"Folder already exists for Hungarian Grand Prix - Practice 2: /workspaces/2020/Hungarian Grand Prix/Practice 2\n",
"Folder already exists for Hungarian Grand Prix - Practice 3: /workspaces/2020/Hungarian Grand Prix/Practice 3\n",
"Folder already exists for Hungarian Grand Prix - Qualifying: /workspaces/2020/Hungarian Grand Prix/Qualifying\n",
"Folder already exists for Hungarian Grand Prix - Race: /workspaces/2020/Hungarian Grand Prix/Race\n",
"Folder already exists for British Grand Prix: /workspaces/2020/British Grand Prix\n",
"Folder already exists for British Grand Prix - Practice 1: /workspaces/2020/British Grand Prix/Practice 1\n",
"Folder already exists for British Grand Prix - Practice 2: /workspaces/2020/British Grand Prix/Practice 2\n",
"Folder already exists for British Grand Prix - Practice 3: /workspaces/2020/British Grand Prix/Practice 3\n",
"Folder already exists for British Grand Prix - Qualifying: /workspaces/2020/British Grand Prix/Qualifying\n",
"Folder already exists for British Grand Prix - Race: /workspaces/2020/British Grand Prix/Race\n",
"Folder already exists for 70th Anniversary Grand Prix: /workspaces/2020/70th Anniversary Grand Prix\n",
"Folder already exists for 70th Anniversary Grand Prix - Practice 1: /workspaces/2020/70th Anniversary Grand Prix/Practice 1\n",
"Folder already exists for 70th Anniversary Grand Prix - Practice 2: /workspaces/2020/70th Anniversary Grand Prix/Practice 2\n",
"Folder already exists for 70th Anniversary Grand Prix - Practice 3: /workspaces/2020/70th Anniversary Grand Prix/Practice 3\n",
"Folder already exists for 70th Anniversary Grand Prix - Qualifying: /workspaces/2020/70th Anniversary Grand Prix/Qualifying\n",
"Folder already exists for 70th Anniversary Grand Prix - Race: /workspaces/2020/70th Anniversary Grand Prix/Race\n",
"Folder already exists for Spanish Grand Prix: /workspaces/2020/Spanish Grand Prix\n",
"Folder already exists for Spanish Grand Prix - Practice 1: /workspaces/2020/Spanish Grand Prix/Practice 1\n",
"Folder already exists for Spanish Grand Prix - Practice 2: /workspaces/2020/Spanish Grand Prix/Practice 2\n",
"Folder already exists for Spanish Grand Prix - Practice 3: /workspaces/2020/Spanish Grand Prix/Practice 3\n",
"Folder already exists for Spanish Grand Prix - Qualifying: /workspaces/2020/Spanish Grand Prix/Qualifying\n",
"Folder already exists for Spanish Grand Prix - Race: /workspaces/2020/Spanish Grand Prix/Race\n",
"Folder already exists for Belgian Grand Prix: /workspaces/2020/Belgian Grand Prix\n",
"Folder already exists for Belgian Grand Prix - Practice 1: /workspaces/2020/Belgian Grand Prix/Practice 1\n",
"Folder already exists for Belgian Grand Prix - Practice 2: /workspaces/2020/Belgian Grand Prix/Practice 2\n",
"Folder already exists for Belgian Grand Prix - Practice 3: /workspaces/2020/Belgian Grand Prix/Practice 3\n",
"Folder already exists for Belgian Grand Prix - Qualifying: /workspaces/2020/Belgian Grand Prix/Qualifying\n",
"Folder already exists for Belgian Grand Prix - Race: /workspaces/2020/Belgian Grand Prix/Race\n",
"Folder already exists for Italian Grand Prix: /workspaces/2020/Italian Grand Prix\n",
"Folder already exists for Italian Grand Prix - Practice 1: /workspaces/2020/Italian Grand Prix/Practice 1\n",
"Folder already exists for Italian Grand Prix - Practice 2: /workspaces/2020/Italian Grand Prix/Practice 2\n",
"Folder already exists for Italian Grand Prix - Practice 3: /workspaces/2020/Italian Grand Prix/Practice 3\n",
"Folder already exists for Italian Grand Prix - Qualifying: /workspaces/2020/Italian Grand Prix/Qualifying\n",
"Folder already exists for Italian Grand Prix - Race: /workspaces/2020/Italian Grand Prix/Race\n",
"Folder already exists for Tuscan Grand Prix: /workspaces/2020/Tuscan Grand Prix\n",
"Folder already exists for Tuscan Grand Prix - Practice 1: /workspaces/2020/Tuscan Grand Prix/Practice 1\n",
"Folder already exists for Tuscan Grand Prix - Practice 2: /workspaces/2020/Tuscan Grand Prix/Practice 2\n",
"Folder already exists for Tuscan Grand Prix - Practice 3: /workspaces/2020/Tuscan Grand Prix/Practice 3\n",
"Folder already exists for Tuscan Grand Prix - Qualifying: /workspaces/2020/Tuscan Grand Prix/Qualifying\n",
"Folder already exists for Tuscan Grand Prix - Race: /workspaces/2020/Tuscan Grand Prix/Race\n",
"Folder already exists for Russian Grand Prix: /workspaces/2020/Russian Grand Prix\n",
"Folder already exists for Russian Grand Prix - Practice 1: /workspaces/2020/Russian Grand Prix/Practice 1\n",
"Folder already exists for Russian Grand Prix - Practice 2: /workspaces/2020/Russian Grand Prix/Practice 2\n",
"Folder already exists for Russian Grand Prix - Practice 3: /workspaces/2020/Russian Grand Prix/Practice 3\n",
"Folder already exists for Russian Grand Prix - Qualifying: /workspaces/2020/Russian Grand Prix/Qualifying\n",
"Folder already exists for Russian Grand Prix - Race: /workspaces/2020/Russian Grand Prix/Race\n",
"Folder already exists for Eifel Grand Prix: /workspaces/2020/Eifel Grand Prix\n",
"Folder already exists for Eifel Grand Prix - Practice 1: /workspaces/2020/Eifel Grand Prix/Practice 1\n",
"Folder already exists for Eifel Grand Prix - Practice 2: /workspaces/2020/Eifel Grand Prix/Practice 2\n",
"Folder already exists for Eifel Grand Prix - Practice 3: /workspaces/2020/Eifel Grand Prix/Practice 3\n",
"Folder already exists for Eifel Grand Prix - Qualifying: /workspaces/2020/Eifel Grand Prix/Qualifying\n",
"Folder already exists for Eifel Grand Prix - Race: /workspaces/2020/Eifel Grand Prix/Race\n",
"Folder already exists for Portuguese Grand Prix: /workspaces/2020/Portuguese Grand Prix\n",
"Folder already exists for Portuguese Grand Prix - Practice 1: /workspaces/2020/Portuguese Grand Prix/Practice 1\n",
"Folder already exists for Portuguese Grand Prix - Practice 2: /workspaces/2020/Portuguese Grand Prix/Practice 2\n",
"Folder already exists for Portuguese Grand Prix - Practice 3: /workspaces/2020/Portuguese Grand Prix/Practice 3\n",
"Folder already exists for Portuguese Grand Prix - Qualifying: /workspaces/2020/Portuguese Grand Prix/Qualifying\n",
"Folder already exists for Portuguese Grand Prix - Race: /workspaces/2020/Portuguese Grand Prix/Race\n",
"Folder already exists for Emilia Romagna Grand Prix: /workspaces/2020/Emilia Romagna Grand Prix\n",
"Folder already exists for Emilia Romagna Grand Prix - Practice: /workspaces/2020/Emilia Romagna Grand Prix/Practice\n",
"Folder already exists for Emilia Romagna Grand Prix - Qualifying: /workspaces/2020/Emilia Romagna Grand Prix/Qualifying\n",
"Folder already exists for Emilia Romagna Grand Prix - Race: /workspaces/2020/Emilia Romagna Grand Prix/Race\n",
"Folder already exists for Turkish Grand Prix: /workspaces/2020/Turkish Grand Prix\n",
"Folder already exists for Turkish Grand Prix - Practice 1: /workspaces/2020/Turkish Grand Prix/Practice 1\n",
"Folder already exists for Turkish Grand Prix - Practice 2: /workspaces/2020/Turkish Grand Prix/Practice 2\n",
"Folder already exists for Turkish Grand Prix - Practice 3: /workspaces/2020/Turkish Grand Prix/Practice 3\n",
"Folder already exists for Turkish Grand Prix - Qualifying: /workspaces/2020/Turkish Grand Prix/Qualifying\n",
"Folder already exists for Turkish Grand Prix - Race: /workspaces/2020/Turkish Grand Prix/Race\n",
"Folder already exists for Bahrain Grand Prix: /workspaces/2020/Bahrain Grand Prix\n",
"Folder already exists for Bahrain Grand Prix - Practice 1: /workspaces/2020/Bahrain Grand Prix/Practice 1\n",
"Folder already exists for Bahrain Grand Prix - Practice 2: /workspaces/2020/Bahrain Grand Prix/Practice 2\n",
"Folder already exists for Bahrain Grand Prix - Practice 3: /workspaces/2020/Bahrain Grand Prix/Practice 3\n",
"Folder already exists for Bahrain Grand Prix - Qualifying: /workspaces/2020/Bahrain Grand Prix/Qualifying\n",
"Folder already exists for Bahrain Grand Prix - Race: /workspaces/2020/Bahrain Grand Prix/Race\n",
"Folder already exists for Sakhir Grand Prix: /workspaces/2020/Sakhir Grand Prix\n",
"Folder already exists for Sakhir Grand Prix - Practice 1: /workspaces/2020/Sakhir Grand Prix/Practice 1\n",
"Folder already exists for Sakhir Grand Prix - Practice 2: /workspaces/2020/Sakhir Grand Prix/Practice 2\n",
"Folder already exists for Sakhir Grand Prix - Practice 3: /workspaces/2020/Sakhir Grand Prix/Practice 3\n",
"Folder already exists for Sakhir Grand Prix - Qualifying: /workspaces/2020/Sakhir Grand Prix/Qualifying\n",
"Folder already exists for Sakhir Grand Prix - Race: /workspaces/2020/Sakhir Grand Prix/Race\n",
"Folder already exists for Abu Dhabi Grand Prix: /workspaces/2020/Abu Dhabi Grand Prix\n",
"Folder already exists for Abu Dhabi Grand Prix - Practice 1: /workspaces/2020/Abu Dhabi Grand Prix/Practice 1\n",
"Folder already exists for Abu Dhabi Grand Prix - Practice 2: /workspaces/2020/Abu Dhabi Grand Prix/Practice 2\n",
"Folder already exists for Abu Dhabi Grand Prix - Practice 3: /workspaces/2020/Abu Dhabi Grand Prix/Practice 3\n",
"Folder already exists for Abu Dhabi Grand Prix - Qualifying: /workspaces/2020/Abu Dhabi Grand Prix/Qualifying\n",
"Folder already exists for Abu Dhabi Grand Prix - Race: /workspaces/2020/Abu Dhabi Grand Prix/Race\n"
]
}
],
"source": [
"import os\n",
"\n",
"# Your list of events\n",
"events_list = events\n",
"\n",
"# Loop through each event\n",
"for event in events_list:\n",
" event_directory = os.path.join(os.getcwd(), event)\n",
"\n",
" # Check if the event folder already exists before creating it\n",
" if not os.path.exists(event_directory):\n",
" os.makedirs(event_directory)\n",
" print(f\"Folder created for {event}: {event_directory}\")\n",
" else:\n",
" print(f\"Folder already exists for {event}: {event_directory}\")\n",
"\n",
" # Get sessions for the current event\n",
" sessions = sessions_available(YEAR, event)\n",
"\n",
" # Loop through each session and create a folder within the event folder\n",
" for session in sessions:\n",
" session_directory = os.path.join(event_directory, session)\n",
"\n",
" # Check if the session folder already exists before creating it\n",
" if not os.path.exists(session_directory):\n",
" os.makedirs(session_directory)\n",
" print(f\"Folder created for {event} - {session}: {session_directory}\")\n",
" else:\n",
" print(f\"Folder already exists for {event} - {session}: {session_directory}\")\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"events =[ 'Turkish Grand Prix', 'Bahrain Grand Prix', 'Sakhir Grand Prix', 'Abu Dhabi Grand Prix']\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"core INFO \tLoading data for Turkish Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Turkish Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Turkish Grand Prix/Practice 1/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Turkish Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Turkish Grand Prix/Practice 2/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Turkish Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Turkish Grand Prix/Practice 3/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['18', '33', '11', '23', '3', '44', '31', '7', '77', '99', '4', '5', '55', '16', '10', '20', '26', '63', '8', '6']\n",
"core INFO \tLoading data for Turkish Grand Prix - Race [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Turkish Grand Prix/Qualifying/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '11', '5', '16', '55', '33', '23', '4', '18', '3', '31', '26', '10', '77', '7', '63', '20', '8', '6', '99']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Turkish Grand Prix/Race/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 6: Ignoring late data for a previously processed lap.The data may contain errors (previous: 18; current 19)\n",
"_api WARNING \tDriver 10: Ignoring late data for a previously processed lap.The data may contain errors (previous: 29; current 30)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tNo lap data for driver 7\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 7)\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 22 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Bahrain Grand Prix/Practice 1/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"_api WARNING \tDriver 1: Car data is incomplete!\n",
"_api WARNING \tDriver 2: Car data is incomplete!\n",
"_api WARNING \tDriver 9: Car data is incomplete!\n",
"_api WARNING \tDriver 12: Car data is incomplete!\n",
"_api WARNING \tDriver 14: Car data is incomplete!\n",
"_api WARNING \tDriver 15: Car data is incomplete!\n",
"_api WARNING \tDriver 17: Car data is incomplete!\n",
"_api WARNING \tDriver 19: Car data is incomplete!\n",
"_api WARNING \tDriver 21: Car data is incomplete!\n",
"_api WARNING \tDriver 22: Car data is incomplete!\n",
"_api WARNING \tDriver 24: Car data is incomplete!\n",
"_api WARNING \tDriver 25: Car data is incomplete!\n",
"_api WARNING \tDriver 27: Car data is incomplete!\n",
"_api WARNING \tDriver 28: Car data is incomplete!\n",
"_api WARNING \tDriver 29: Car data is incomplete!\n",
"_api WARNING \tDriver 30: Car data is incomplete!\n",
"_api WARNING \tDriver 33: Car data is incomplete!\n",
"_api WARNING \tDriver 44: Car data is incomplete!\n",
"_api WARNING \tDriver 55: Car data is incomplete!\n",
"_api WARNING \tDriver 63: Car data is incomplete!\n",
"_api WARNING \tDriver 77: Car data is incomplete!\n",
"_api WARNING \tDriver 99: Car data is incomplete!\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"_api WARNING \tDriver 30: Position data is incomplete!\n",
"_api WARNING \tDriver 31: Position data is incomplete!\n",
"_api WARNING \tDriver 1: Position data is incomplete!\n",
"_api WARNING \tDriver 2: Position data is incomplete!\n",
"_api WARNING \tDriver 9: Position data is incomplete!\n",
"_api WARNING \tDriver 12: Position data is incomplete!\n",
"_api WARNING \tDriver 14: Position data is incomplete!\n",
"_api WARNING \tDriver 15: Position data is incomplete!\n",
"_api WARNING \tDriver 17: Position data is incomplete!\n",
"_api WARNING \tDriver 19: Position data is incomplete!\n",
"_api WARNING \tDriver 21: Position data is incomplete!\n",
"_api WARNING \tDriver 22: Position data is incomplete!\n",
"_api WARNING \tDriver 24: Position data is incomplete!\n",
"_api WARNING \tDriver 25: Position data is incomplete!\n",
"_api WARNING \tDriver 27: Position data is incomplete!\n",
"_api WARNING \tDriver 28: Position data is incomplete!\n",
"_api WARNING \tDriver 29: Position data is incomplete!\n",
"_api WARNING \tDriver 33: Position data is incomplete!\n",
"_api WARNING \tDriver 44: Position data is incomplete!\n",
"_api WARNING \tDriver 55: Position data is incomplete!\n",
"_api WARNING \tDriver 63: Position data is incomplete!\n",
"_api WARNING \tDriver 77: Position data is incomplete!\n",
"_api WARNING \tDriver 99: Position data is incomplete!\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Bahrain Grand Prix/Practice 2/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Bahrain Grand Prix/Practice 3/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 16: Ignoring late data for a previously processed lap.The data may contain errors (previous: 6; current 7)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '23', '11', '3', '31', '10', '4', '26', '5', '16', '18', '63', '55', '99', '7', '20', '8', '6']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Race [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Bahrain Grand Prix/Qualifying/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 55: Encountered 1 timing integrity error(s) near lap(s): [48].\n",
"This might be a bug and should be reported.\n",
"_api WARNING \tSkipping lap alignment (no suitable lap)!\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"_api WARNING \tDriver 241: Position data is incomplete!\n",
"_api WARNING \tDriver 242: Position data is incomplete!\n",
"_api WARNING \tDriver 243: Position data is incomplete!\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '23', '4', '55', '10', '3', '77', '31', '16', '26', '63', '5', '6', '7', '99', '20', '11', '18', '8']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Bahrain Grand Prix/Race/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 31: Ignoring late data for a previously processed lap.The data may contain errors (previous: 18; current 19)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"_api WARNING \tDriver 1: Car data is incomplete!\n",
"_api WARNING \tDriver 2: Car data is incomplete!\n",
"_api WARNING \tDriver 8: Car data is incomplete!\n",
"_api WARNING \tDriver 9: Car data is incomplete!\n",
"_api WARNING \tDriver 12: Car data is incomplete!\n",
"_api WARNING \tDriver 14: Car data is incomplete!\n",
"_api WARNING \tDriver 15: Car data is incomplete!\n",
"_api WARNING \tDriver 17: Car data is incomplete!\n",
"_api WARNING \tDriver 19: Car data is incomplete!\n",
"_api WARNING \tDriver 21: Car data is incomplete!\n",
"_api WARNING \tDriver 22: Car data is incomplete!\n",
"_api WARNING \tDriver 24: Car data is incomplete!\n",
"_api WARNING \tDriver 25: Car data is incomplete!\n",
"_api WARNING \tDriver 27: Car data is incomplete!\n",
"_api WARNING \tDriver 28: Car data is incomplete!\n",
"_api WARNING \tDriver 29: Car data is incomplete!\n",
"_api WARNING \tDriver 30: Car data is incomplete!\n",
"_api WARNING \tDriver 33: Car data is incomplete!\n",
"_api WARNING \tDriver 51: Car data is incomplete!\n",
"_api WARNING \tDriver 55: Car data is incomplete!\n",
"_api WARNING \tDriver 63: Car data is incomplete!\n",
"_api WARNING \tDriver 77: Car data is incomplete!\n",
"_api WARNING \tDriver 89: Car data is incomplete!\n",
"_api WARNING \tDriver 99: Car data is incomplete!\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '5', '51', '55', '6', '63', '7', '77', '89', '99']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Sakhir Grand Prix/Practice 1/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 11: Ignoring late data for a previously processed lap.The data may contain errors (previous: 51; current 52)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '5', '51', '55', '6', '63', '7', '77', '89', '99']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Sakhir Grand Prix/Practice 2/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 55: Ignoring late data for a previously processed lap.The data may contain errors (previous: 5; current 6)\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '5', '51', '55', '6', '63', '7', '77', '89', '99']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Sakhir Grand Prix/Practice 3/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"_api WARNING \tDriver 1: Car data is incomplete!\n",
"_api WARNING \tDriver 2: Car data is incomplete!\n",
"_api WARNING \tDriver 8: Car data is incomplete!\n",
"_api WARNING \tDriver 9: Car data is incomplete!\n",
"_api WARNING \tDriver 12: Car data is incomplete!\n",
"_api WARNING \tDriver 14: Car data is incomplete!\n",
"_api WARNING \tDriver 15: Car data is incomplete!\n",
"_api WARNING \tDriver 17: Car data is incomplete!\n",
"_api WARNING \tDriver 19: Car data is incomplete!\n",
"_api WARNING \tDriver 21: Car data is incomplete!\n",
"_api WARNING \tDriver 27: Car data is incomplete!\n",
"_api WARNING \tDriver 41: Car data is incomplete!\n",
"_api WARNING \tDriver 43: Car data is incomplete!\n",
"_api WARNING \tDriver 44: Car data is incomplete!\n",
"_api WARNING \tDriver 46: Car data is incomplete!\n",
"_api WARNING \tDriver 47: Car data is incomplete!\n",
"_api WARNING \tDriver 49: Car data is incomplete!\n",
"_api WARNING \tDriver 66: Car data is incomplete!\n",
"_api WARNING \tDriver 75: Car data is incomplete!\n",
"_api WARNING \tDriver 76: Car data is incomplete!\n",
"_api WARNING \tDriver 23: Car data is incomplete!\n",
"_api WARNING \tDriver 26: Car data is incomplete!\n",
"_api WARNING \tDriver 31: Car data is incomplete!\n",
"_api WARNING \tDriver 33: Car data is incomplete!\n",
"_api WARNING \tDriver 51: Car data is incomplete!\n",
"_api WARNING \tDriver 55: Car data is incomplete!\n",
"_api WARNING \tDriver 63: Car data is incomplete!\n",
"_api WARNING \tDriver 77: Car data is incomplete!\n",
"_api WARNING \tDriver 89: Car data is incomplete!\n",
"_api WARNING \tDriver 99: Car data is incomplete!\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"_api WARNING \tDriver 1: Position data is incomplete!\n",
"_api WARNING \tDriver 2: Position data is incomplete!\n",
"_api WARNING \tDriver 8: Position data is incomplete!\n",
"_api WARNING \tDriver 9: Position data is incomplete!\n",
"_api WARNING \tDriver 12: Position data is incomplete!\n",
"_api WARNING \tDriver 14: Position data is incomplete!\n",
"_api WARNING \tDriver 15: Position data is incomplete!\n",
"_api WARNING \tDriver 17: Position data is incomplete!\n",
"_api WARNING \tDriver 19: Position data is incomplete!\n",
"_api WARNING \tDriver 21: Position data is incomplete!\n",
"_api WARNING \tDriver 27: Position data is incomplete!\n",
"_api WARNING \tDriver 41: Position data is incomplete!\n",
"_api WARNING \tDriver 43: Position data is incomplete!\n",
"_api WARNING \tDriver 44: Position data is incomplete!\n",
"_api WARNING \tDriver 46: Position data is incomplete!\n",
"_api WARNING \tDriver 47: Position data is incomplete!\n",
"_api WARNING \tDriver 49: Position data is incomplete!\n",
"_api WARNING \tDriver 66: Position data is incomplete!\n",
"_api WARNING \tDriver 75: Position data is incomplete!\n",
"_api WARNING \tDriver 76: Position data is incomplete!\n",
"_api WARNING \tDriver 77: Position data is incomplete!\n",
"_api WARNING \tDriver 78: Position data is incomplete!\n",
"_api WARNING \tDriver 79: Position data is incomplete!\n",
"_api WARNING \tDriver 87: Position data is incomplete!\n",
"_api WARNING \tDriver 91: Position data is incomplete!\n",
"_api WARNING \tDriver 92: Position data is incomplete!\n",
"_api WARNING \tDriver 99: Position data is incomplete!\n",
"_api WARNING \tDriver 23: Position data is incomplete!\n",
"_api WARNING \tDriver 26: Position data is incomplete!\n",
"_api WARNING \tDriver 31: Position data is incomplete!\n",
"_api WARNING \tDriver 33: Position data is incomplete!\n",
"_api WARNING \tDriver 51: Position data is incomplete!\n",
"_api WARNING \tDriver 55: Position data is incomplete!\n",
"_api WARNING \tDriver 63: Position data is incomplete!\n",
"_api WARNING \tDriver 89: Position data is incomplete!\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '63', '33', '16', '11', '26', '3', '55', '10', '18', '31', '23', '5', '99', '4', '20', '6', '89', '7', '51']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Race [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Sakhir Grand Prix/Qualifying/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"_api WARNING \tDriver 241: Position data is incomplete!\n",
"_api WARNING \tDriver 242: Position data is incomplete!\n",
"_api WARNING \tDriver 243: Position data is incomplete!\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['11', '31', '18', '55', '3', '23', '26', '77', '63', '4', '10', '5', '99', '7', '20', '89', '51', '6', '33', '16']\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Sakhir Grand Prix/Race/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"logger WARNING \tFailed to load schedule from FastF1 backend!\n",
"req INFO \tUsing cached data for season_schedule\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tDriver 18: Encountered 1 timing integrity error(s) near lap(s): [24].\n",
"This might be a bug and should be reported.\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 20\n",
"core WARNING \tNo lap data for driver 99\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 20)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 99)\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 22 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '50', '51', '55', '6', '63', '7', '77', '88', '99']\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Abu Dhabi Grand Prix/Practice 1/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '51', '55', '6', '63', '7', '77', '99']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Abu Dhabi Grand Prix/Practice 2/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '51', '55', '6', '63', '7', '77', '99']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Abu Dhabi Grand Prix/Practice 3/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['33', '77', '44', '4', '23', '55', '26', '18', '16', '10', '31', '3', '5', '99', '11', '7', '20', '63', '51', '6']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Race [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Abu Dhabi Grand Prix/Qualifying/drivers.json\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"_api INFO \tParsing car data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"_api INFO \tParsing position data...\n",
"_api WARNING \tDriver 241: Position data is incomplete!\n",
"_api WARNING \tDriver 242: Position data is incomplete!\n",
"_api WARNING \tDriver 243: Position data is incomplete!\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tFinished loading data for 20 drivers: ['33', '77', '44', '23', '4', '55', '3', '10', '31', '18', '26', '7', '16', '5', '63', '99', '6', '20', '51', '11']\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dictionary saved to Abu Dhabi Grand Prix/Race/drivers.json\n"
]
}
],
"source": [
"import os\n",
"\n",
"# Your list of events\n",
"events_list = events\n",
"\n",
"# Loop through each event\n",
"for event in events_list:\n",
" if event == \"Styrian Grand Prix\":\n",
" sessions = [\"Practice 1\", \"Practice 2\", \"Qualifying\", \"Race\"]\n",
" if event == \"Eifel Grand Prix\":\n",
" sessions = [\"Practice 3\", \"Qualifying\", \"Race\"]\n",
" if event == \"Emilia Romagna Grand Prix\":\n",
" sessions = [\"Practice 1\", \"Qualifying\", \"Race\"]\n",
"\n",
" else:\n",
" # Get sessions for the current event\n",
" sessions = sessions_available(YEAR, event)\n",
"\n",
" # Loop through each session and create a folder within the event folder\n",
" for session in sessions:\n",
"\n",
"\n",
" drivers = session_drivers(YEAR, event, session)\n",
"\n",
" import json\n",
"\n",
" # Specify the file path where you want to save the JSON data\n",
" file_path = f\"{event}/{session}/drivers.json\"\n",
"\n",
" # Save the dictionary to a JSON file\n",
" with open(file_path, \"w\") as json_file:\n",
" json.dump(drivers, json_file)\n",
"\n",
" print(f\"Dictionary saved to {file_path}\")"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"def session_drivers_list(year: int, event: str | int, session: str) -> any:\n",
" # get drivers available for a given year, event and session\n",
" import fastf1\n",
" f1session = fastf1.get_session(year, event, session)\n",
" f1session.load(telemetry=True, weather=False, messages=False)\n",
"\n",
" laps = f1session.laps\n",
"\n",
"\n",
" unique_drivers = laps[\"Driver\"].unique()\n",
"\n",
"\n",
" return list(unique_drivers)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"core INFO \tLoading data for Bahrain Grand Prix - Race [v3.1.6]\n",
"req INFO \tNo cached data found for session_info. Loading data...\n",
"_api INFO \tFetching session info data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for driver_info. Loading data...\n",
"_api INFO \tFetching driver list...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for session_status_data. Loading data...\n",
"_api INFO \tFetching session status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for lap_count. Loading data...\n",
"_api INFO \tFetching lap count data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for track_status_data. Loading data...\n",
"_api INFO \tFetching track status data...\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for _extended_timing_data. Loading data...\n",
"_api INFO \tFetching timing data...\n",
"_api INFO \tParsing timing data...\n",
"_api WARNING \tSkipping lap alignment (no suitable lap)!\n",
"req INFO \tData has been written to cache!\n",
"req INFO \tNo cached data found for timing_app_data. Loading data...\n",
"_api INFO \tFetching timing app data...\n",
"req INFO \tData has been written to cache!\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tNo cached data found for car_data. Loading data...\n",
"_api INFO \tFetching car data...\n",
"core WARNING \tCar telemetry data is unavailable!\n",
"req INFO \tNo cached data found for position_data. Loading data...\n",
"_api INFO \tFetching position data...\n",
"core WARNING \tCar position data is unavailable!\n",
"core WARNING \tFailed to determine `Session.t0_date`!\n",
"logger WARNING \tFailed to load telemetry data!\n",
"core INFO \tFinished loading data for 20 drivers: ['5', '77', '44', '10', '20', '27', '14', '2', '9', '31', '55', '16', '8', '18', '35', '11', '28', '7', '33', '3']\n"
]
},
{
"data": {
"text/plain": [
"['GAS',\n",
" 'PER',\n",
" 'ALO',\n",
" 'LEC',\n",
" 'STR',\n",
" 'VAN',\n",
" 'MAG',\n",
" 'HUL',\n",
" 'HAR',\n",
" 'RIC',\n",
" 'OCO',\n",
" 'VER',\n",
" 'SIR',\n",
" 'HAM',\n",
" 'VET',\n",
" 'SAI',\n",
" 'RAI',\n",
" 'BOT',\n",
" 'GRO',\n",
" 'ERI']"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"session_drivers_list(2018,\"Bahrain Grand Prix\", \"Race\")"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"def laps_data(year: int, event: str | int, session: str, driver: str) -> any:\n",
" # get drivers available for a given year, event, and session\n",
" f1session = fastf1.get_session(year, event, session)\n",
" f1session.load(telemetry=False, weather=False, messages=False)\n",
" laps = f1session.laps\n",
"\n",
" # add team_colors dict to laps on Team column\n",
"\n",
" # for each driver in drivers, get the Team column from laps and get the color from team_colors dict\n",
" drivers_data = []\n",
"\n",
" driver_laps = laps.pick_driver(driver)\n",
" driver_laps[\"LapTime\"] = driver_laps[\"LapTime\"].dt.total_seconds()\n",
" # remove rows where LapTime is null\n",
" driver_laps = driver_laps[driver_laps.LapTime.notnull()]\n",
"\n",
" drivers_data = {\n",
" \"time\": driver_laps[\"LapTime\"].tolist(),\n",
" \"lap\": driver_laps[\"LapNumber\"].tolist(),\n",
" \"compound\": driver_laps[\"Compound\"].tolist(),\n",
" }\n",
"\n",
"\n",
"\n",
" return drivers_data\n",
"\n",
"\n",
"# # Example usage:\n",
"# result = laps_data(2018, \"Bahrain\", \"R\", \"GAS\")\n",
"# result"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"# # reversing a pyton list\n",
"# events.reverse()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"core INFO \tLoading data for Austrian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Austrian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Austrian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Austrian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Austrian Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Austrian Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Austrian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '33', '4', '23', '11', '16', '55', '18', '3', '5', '10', '26', '31', '8', '20', '63', '99', '7', '6']\n",
"core INFO \tLoading data for Austrian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '33', '4', '23', '11', '16', '55', '18', '3', '5', '10', '26', '31', '8', '20', '63', '99', '7', '6']\n",
"core INFO \tLoading data for Austrian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tDriver 8: Lap timing integrity check failed for 1 lap(s)\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '16', '4', '44', '55', '11', '10', '31', '99', '5', '6', '26', '23', '7', '63', '8', '20', '18', '3', '33']\n",
"core INFO \tLoading data for Austrian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tDriver 8: Lap timing integrity check failed for 1 lap(s)\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '16', '4', '44', '55', '11', '10', '31', '99', '5', '6', '26', '23', '7', '63', '8', '20', '18', '3', '33']\n",
"core INFO \tLoading data for Styrian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tNo lap data for driver 99\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 99)\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 22 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"core INFO \tLoading data for Styrian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tNo lap data for driver 99\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 99)\n",
"core INFO \tFinished loading data for 22 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"core INFO \tLoading data for Styrian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Styrian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Styrian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '55', '77', '31', '4', '23', '10', '3', '5', '16', '63', '18', '26', '20', '7', '11', '6', '99', '8']\n",
"core INFO \tLoading data for Styrian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '55', '77', '31', '4', '23', '10', '3', '5', '16', '63', '18', '26', '20', '7', '11', '6', '99', '8']\n",
"core INFO \tLoading data for Styrian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '23', '4', '11', '18', '3', '55', '26', '7', '20', '8', '99', '10', '63', '6', '31', '16', '5']\n",
"core INFO \tLoading data for Styrian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '23', '4', '11', '18', '3', '55', '26', '7', '20', '8', '99', '10', '63', '6', '31', '16', '5']\n",
"core INFO \tLoading data for Hungarian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 10\n",
"core WARNING \tNo lap data for driver 7\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 10)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 7)\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"core INFO \tLoading data for Hungarian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 10\n",
"core WARNING \tNo lap data for driver 7\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 10)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 7)\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"core INFO \tLoading data for Hungarian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Hungarian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Hungarian Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Hungarian Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Hungarian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '18', '11', '5', '16', '33', '4', '55', '10', '3', '63', '23', '31', '6', '20', '26', '8', '99', '7']\n",
"core INFO \tLoading data for Hungarian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '18', '11', '5', '16', '33', '4', '55', '10', '3', '63', '23', '31', '6', '20', '26', '8', '99', '7']\n",
"core INFO \tLoading data for Hungarian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '77', '18', '23', '5', '11', '3', '55', '20', '16', '26', '4', '31', '7', '8', '99', '63', '6', '10']\n",
"core INFO \tLoading data for Hungarian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '77', '18', '23', '5', '11', '3', '55', '20', '16', '26', '4', '31', '7', '8', '99', '63', '6', '10']\n",
"core INFO \tLoading data for British Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 0\n",
"core WARNING \tNo lap data for driver 11\n",
"core WARNING \tNo lap data for driver 65535\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 0)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 11)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 65535)\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 23 drivers: ['0', '10', '11', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '65535', '7', '77', '8', '99']\n",
"core INFO \tLoading data for British Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 0\n",
"core WARNING \tNo lap data for driver 11\n",
"core WARNING \tNo lap data for driver 65535\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 0)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 11)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 65535)\n",
"core INFO \tFinished loading data for 23 drivers: ['0', '10', '11', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '65535', '7', '77', '8', '99']\n",
"core INFO \tLoading data for British Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for British Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for British Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for British Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for British Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '16', '4', '18', '55', '3', '31', '5', '10', '23', '27', '26', '63', '20', '99', '7', '8', '6']\n",
"core INFO \tLoading data for British Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '16', '4', '18', '55', '3', '31', '5', '10', '23', '27', '26', '63', '20', '99', '7', '8', '6']\n",
"core INFO \tLoading data for British Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '16', '3', '4', '31', '10', '23', '18', '5', '77', '63', '55', '99', '6', '8', '7', '26', '20', '27']\n",
"core INFO \tLoading data for British Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '16', '3', '4', '31', '10', '23', '18', '5', '77', '63', '55', '99', '6', '8', '7', '26', '20', '27']\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 99\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 99)\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 99\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 99)\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '27', '33', '3', '18', '10', '16', '23', '4', '31', '5', '55', '8', '63', '26', '20', '6', '99', '7']\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '27', '33', '3', '18', '10', '16', '23', '4', '31', '5', '55', '8', '63', '26', '20', '6', '99', '7']\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['33', '44', '77', '16', '23', '18', '27', '31', '4', '26', '10', '5', '55', '3', '7', '8', '99', '63', '6', '20']\n",
"core INFO \tLoading data for 70th Anniversary Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['33', '44', '77', '16', '23', '18', '27', '31', '4', '26', '10', '5', '55', '3', '7', '8', '99', '63', '6', '20']\n",
"core INFO \tLoading data for Spanish Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Spanish Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Spanish Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Spanish Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Spanish Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Spanish Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Spanish Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '11', '18', '23', '55', '4', '16', '10', '5', '26', '3', '7', '31', '20', '8', '63', '6', '99']\n",
"core INFO \tLoading data for Spanish Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '11', '18', '23', '55', '4', '16', '10', '5', '26', '3', '7', '31', '20', '8', '63', '6', '99']\n",
"core INFO \tLoading data for Spanish Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '77', '18', '11', '55', '5', '23', '10', '4', '3', '26', '31', '7', '20', '99', '63', '6', '8', '16']\n",
"core INFO \tLoading data for Spanish Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '77', '18', '11', '55', '5', '23', '10', '4', '3', '26', '31', '7', '20', '99', '63', '6', '8', '16']\n",
"core INFO \tLoading data for Belgian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Belgian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Belgian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Belgian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Belgian Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Belgian Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Belgian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '3', '23', '31', '55', '11', '18', '4', '26', '10', '16', '5', '63', '7', '8', '99', '6', '20']\n",
"core INFO \tLoading data for Belgian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '3', '23', '31', '55', '11', '18', '4', '26', '10', '16', '5', '63', '7', '8', '99', '6', '20']\n",
"core INFO \tLoading data for Belgian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '3', '31', '23', '4', '10', '18', '11', '26', '7', '5', '16', '8', '6', '20', '99', '63', '55']\n",
"core INFO \tLoading data for Belgian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '3', '31', '23', '4', '10', '18', '11', '26', '7', '5', '16', '8', '6', '20', '99', '63', '55']\n",
"core INFO \tLoading data for Italian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Italian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Italian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Italian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Italian Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Italian Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Italian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '55', '11', '33', '4', '3', '18', '23', '10', '26', '31', '16', '7', '20', '8', '5', '99', '63', '6']\n",
"core INFO \tLoading data for Italian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '55', '11', '33', '4', '3', '18', '23', '10', '26', '31', '16', '7', '20', '8', '5', '99', '63', '6']\n",
"core INFO \tLoading data for Italian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '55', '18', '4', '77', '3', '44', '31', '26', '11', '6', '8', '7', '63', '23', '99', '33', '16', '20', '5']\n",
"core INFO \tLoading data for Italian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '55', '18', '4', '77', '3', '44', '31', '26', '11', '6', '8', '7', '63', '23', '99', '33', '16', '20', '5']\n",
"core INFO \tLoading data for Tuscan Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Tuscan Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Tuscan Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Tuscan Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Tuscan Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Tuscan Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Tuscan Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '23', '16', '11', '18', '3', '55', '31', '4', '26', '7', '5', '8', '10', '99', '63', '6', '20']\n",
"core INFO \tLoading data for Tuscan Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '23', '16', '11', '18', '3', '55', '31', '4', '26', '7', '5', '8', '10', '99', '63', '6', '20']\n",
"core INFO \tLoading data for Tuscan Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '23', '3', '11', '4', '26', '16', '7', '5', '63', '8', '18', '31', '6', '20', '99', '55', '33', '10']\n",
"core INFO \tLoading data for Tuscan Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '23', '3', '11', '4', '26', '16', '7', '5', '63', '8', '18', '31', '6', '20', '99', '55', '33', '10']\n",
"core INFO \tLoading data for Russian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"Request for URL https://ergast.com/api/f1/2020/10/results.json failed; using cached response\n",
"Traceback (most recent call last):\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/urllib3/connectionpool.py\", line 791, in urlopen\n",
" response = self._make_request(\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/urllib3/connectionpool.py\", line 537, in _make_request\n",
" response = conn.getresponse()\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/urllib3/connection.py\", line 461, in getresponse\n",
" httplib_response = super().getresponse()\n",
" File \"/home/codespace/.python/current/lib/python3.10/http/client.py\", line 1375, in getresponse\n",
" response.begin()\n",
" File \"/home/codespace/.python/current/lib/python3.10/http/client.py\", line 318, in begin\n",
" version, status, reason = self._read_status()\n",
" File \"/home/codespace/.python/current/lib/python3.10/http/client.py\", line 287, in _read_status\n",
" raise RemoteDisconnected(\"Remote end closed connection without\"\n",
"http.client.RemoteDisconnected: Remote end closed connection without response\n",
"\n",
"During handling of the above exception, another exception occurred:\n",
"\n",
"Traceback (most recent call last):\n",
" File \"/home/codespace/.local/lib/python3.10/site-packages/requests/adapters.py\", line 486, in send\n",
" resp = conn.urlopen(\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/urllib3/connectionpool.py\", line 845, in urlopen\n",
" retries = retries.increment(\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/urllib3/util/retry.py\", line 470, in increment\n",
" raise reraise(type(error), error, _stacktrace)\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/urllib3/util/util.py\", line 38, in reraise\n",
" raise value.with_traceback(tb)\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/urllib3/connectionpool.py\", line 791, in urlopen\n",
" response = self._make_request(\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/urllib3/connectionpool.py\", line 537, in _make_request\n",
" response = conn.getresponse()\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/urllib3/connection.py\", line 461, in getresponse\n",
" httplib_response = super().getresponse()\n",
" File \"/home/codespace/.python/current/lib/python3.10/http/client.py\", line 1375, in getresponse\n",
" response.begin()\n",
" File \"/home/codespace/.python/current/lib/python3.10/http/client.py\", line 318, in begin\n",
" version, status, reason = self._read_status()\n",
" File \"/home/codespace/.python/current/lib/python3.10/http/client.py\", line 287, in _read_status\n",
" raise RemoteDisconnected(\"Remote end closed connection without\"\n",
"urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))\n",
"\n",
"During handling of the above exception, another exception occurred:\n",
"\n",
"Traceback (most recent call last):\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/requests_cache/session.py\", line 255, in _resend\n",
" response = self._send_and_cache(request, actions, cached_response, **kwargs)\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/requests_cache/session.py\", line 229, in _send_and_cache\n",
" response = super().send(request, **kwargs)\n",
" File \"/home/codespace/.python/current/lib/python3.10/site-packages/fastf1/req.py\", line 124, in send\n",
" return super().send(request, **kwargs)\n",
" File \"/home/codespace/.local/lib/python3.10/site-packages/requests/sessions.py\", line 703, in send\n",
" r = adapter.send(request, **kwargs)\n",
" File \"/home/codespace/.local/lib/python3.10/site-packages/requests/adapters.py\", line 501, in send\n",
" raise ConnectionError(err, request=request)\n",
"requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Russian Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Russian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Russian Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Russian Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Russian Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Russian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '77', '11', '3', '55', '31', '4', '10', '23', '16', '26', '18', '63', '5', '8', '99', '20', '6', '7']\n",
"core INFO \tLoading data for Russian Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '77', '11', '3', '55', '31', '4', '10', '23', '16', '26', '18', '63', '5', '8', '99', '20', '6', '7']\n",
"core INFO \tLoading data for Russian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '33', '44', '11', '3', '16', '31', '26', '10', '23', '99', '20', '5', '7', '4', '6', '8', '63', '55', '18']\n",
"core INFO \tLoading data for Russian Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '33', '44', '11', '3', '16', '31', '26', '10', '23', '99', '20', '5', '7', '4', '6', '8', '63', '55', '18']\n",
"core INFO \tLoading data for Eifel Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 18\n",
"core WARNING \tNo lap data for driver 27\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 18)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 27)\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Eifel Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 18\n",
"core WARNING \tNo lap data for driver 27\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 18)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 27)\n",
"core INFO \tFinished loading data for 21 drivers: ['10', '11', '16', '18', '20', '23', '26', '27', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Eifel Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '33', '16', '23', '3', '31', '4', '11', '55', '5', '10', '26', '99', '20', '8', '63', '6', '7', '27']\n",
"core INFO \tLoading data for Eifel Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '33', '16', '23', '3', '31', '4', '11', '55', '5', '10', '26', '99', '20', '8', '63', '6', '7', '27']\n",
"core INFO \tLoading data for Eifel Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '3', '11', '55', '10', '16', '27', '8', '99', '5', '7', '20', '6', '26', '4', '23', '31', '77', '63']\n",
"core INFO \tLoading data for Eifel Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '3', '11', '55', '10', '16', '27', '8', '99', '5', '7', '20', '6', '26', '4', '23', '31', '77', '63']\n",
"core INFO \tLoading data for Portuguese Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Portuguese Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Portuguese Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Portuguese Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Portuguese Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Portuguese Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Portuguese Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '16', '11', '23', '55', '4', '10', '3', '31', '18', '26', '63', '5', '7', '99', '8', '20', '6']\n",
"core INFO \tLoading data for Portuguese Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '16', '11', '23', '55', '4', '10', '3', '31', '18', '26', '63', '5', '7', '99', '8', '20', '6']\n",
"core INFO \tLoading data for Portuguese Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '16', '10', '55', '11', '31', '3', '5', '7', '23', '4', '63', '99', '20', '8', '6', '26', '18']\n",
"core INFO \tLoading data for Portuguese Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '16', '10', '55', '11', '31', '3', '5', '7', '23', '4', '63', '99', '20', '8', '6', '26', '18']\n",
"core INFO \tLoading data for Emilia Romagna Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Emilia Romagna Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Emilia Romagna Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '33', '10', '3', '23', '16', '26', '4', '55', '11', '31', '63', '5', '18', '8', '20', '7', '6', '99']\n",
"core INFO \tLoading data for Emilia Romagna Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '44', '33', '10', '3', '23', '16', '26', '4', '55', '11', '31', '63', '5', '18', '8', '20', '7', '6', '99']\n",
"core INFO \tLoading data for Emilia Romagna Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '3', '26', '16', '11', '55', '4', '7', '99', '6', '5', '18', '8', '23', '63', '33', '20', '31', '10']\n",
"core INFO \tLoading data for Emilia Romagna Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '3', '26', '16', '11', '55', '4', '7', '99', '6', '5', '18', '8', '23', '63', '33', '20', '31', '10']\n",
"core INFO \tLoading data for Turkish Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Turkish Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Turkish Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Turkish Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Turkish Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Turkish Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Turkish Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['18', '33', '11', '23', '3', '44', '31', '7', '77', '99', '4', '5', '55', '16', '10', '20', '26', '63', '8', '6']\n",
"core INFO \tLoading data for Turkish Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['18', '33', '11', '23', '3', '44', '31', '7', '77', '99', '4', '5', '55', '16', '10', '20', '26', '63', '8', '6']\n",
"logger WARNING \tFailed to load schedule from FastF1 backend!\n",
"req INFO \tUsing cached data for season_schedule\n",
"core INFO \tLoading data for Turkish Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '11', '5', '16', '55', '33', '23', '4', '18', '3', '31', '26', '10', '77', '7', '63', '20', '8', '6', '99']\n",
"core INFO \tLoading data for Turkish Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '11', '5', '16', '55', '33', '23', '4', '18', '3', '31', '26', '10', '77', '7', '63', '20', '8', '6', '99']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tNo lap data for driver 7\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 7)\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 22 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 63\n",
"core WARNING \tNo lap data for driver 7\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 63)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 7)\n",
"core INFO \tFinished loading data for 22 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '40', '44', '5', '55', '6', '63', '7', '77', '8', '88', '99']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '55', '6', '63', '7', '77', '8', '99']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '23', '11', '3', '31', '10', '4', '26', '5', '16', '18', '63', '55', '99', '7', '20', '8', '6']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '77', '33', '23', '11', '3', '31', '10', '4', '26', '5', '16', '18', '63', '55', '99', '7', '20', '8', '6']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '23', '4', '55', '10', '3', '77', '31', '16', '26', '63', '5', '6', '7', '99', '20', '11', '18', '8']\n",
"core INFO \tLoading data for Bahrain Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['44', '33', '23', '4', '55', '10', '3', '77', '31', '16', '26', '63', '5', '6', '7', '99', '20', '11', '18', '8']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '5', '51', '55', '6', '63', '7', '77', '89', '99']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '5', '51', '55', '6', '63', '7', '77', '89', '99']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '5', '51', '55', '6', '63', '7', '77', '89', '99']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '5', '51', '55', '6', '63', '7', '77', '89', '99']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '5', '51', '55', '6', '63', '7', '77', '89', '99']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '5', '51', '55', '6', '63', '7', '77', '89', '99']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '63', '33', '16', '11', '26', '3', '55', '10', '18', '31', '23', '5', '99', '4', '20', '6', '89', '7', '51']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['77', '63', '33', '16', '11', '26', '3', '55', '10', '18', '31', '23', '5', '99', '4', '20', '6', '89', '7', '51']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['11', '31', '18', '55', '3', '23', '26', '77', '63', '4', '10', '5', '99', '7', '20', '89', '51', '6', '33', '16']\n",
"core INFO \tLoading data for Sakhir Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['11', '31', '18', '55', '3', '23', '26', '77', '63', '4', '10', '5', '99', '7', '20', '89', '51', '6', '33', '16']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 20\n",
"core WARNING \tNo lap data for driver 99\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 20)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 99)\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 22 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '50', '51', '55', '6', '63', '7', '77', '88', '99']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 1 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core WARNING \tNo lap data for driver 20\n",
"core WARNING \tNo lap data for driver 99\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 20)\n",
"core WARNING \tFailed to perform lap accuracy check - all laps marked as inaccurate (driver 99)\n",
"core INFO \tFinished loading data for 22 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '50', '51', '55', '6', '63', '7', '77', '88', '99']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '51', '55', '6', '63', '7', '77', '99']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 2 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '51', '55', '6', '63', '7', '77', '99']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '51', '55', '6', '63', '7', '77', '99']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Practice 3 [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['10', '11', '16', '18', '20', '23', '26', '3', '31', '33', '4', '44', '5', '51', '55', '6', '63', '7', '77', '99']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['33', '77', '44', '4', '23', '55', '26', '18', '16', '10', '31', '3', '5', '99', '11', '7', '20', '63', '51', '6']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Qualifying [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['33', '77', '44', '4', '23', '55', '26', '18', '16', '10', '31', '3', '5', '99', '11', '7', '20', '63', '51', '6']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"req INFO \tUsing cached data for car_data\n",
"req INFO \tUsing cached data for position_data\n",
"core INFO \tFinished loading data for 20 drivers: ['33', '77', '44', '23', '4', '55', '3', '10', '31', '18', '26', '7', '16', '5', '63', '99', '6', '20', '51', '11']\n",
"core INFO \tLoading data for Abu Dhabi Grand Prix - Race [v3.1.6]\n",
"req INFO \tUsing cached data for session_info\n",
"req INFO \tUsing cached data for driver_info\n",
"req INFO \tUsing cached data for session_status_data\n",
"req INFO \tUsing cached data for lap_count\n",
"req INFO \tUsing cached data for track_status_data\n",
"req INFO \tUsing cached data for _extended_timing_data\n",
"req INFO \tUsing cached data for timing_app_data\n",
"core INFO \tProcessing timing data...\n",
"core INFO \tFinished loading data for 20 drivers: ['33', '77', '44', '23', '4', '55', '3', '10', '31', '18', '26', '7', '16', '5', '63', '99', '6', '20', '51', '11']\n"
]
}
],
"source": [
"import os\n",
"import json\n",
"\n",
"# Your list of events\n",
"events_list = events\n",
"\n",
"# Loop through each event\n",
"for event in events_list:\n",
" sessions = sessions_available(YEAR, event)\n",
" if event == \"Styrian Grand Prix\":\n",
" sessions = [\"Practice 1\", \"Practice 2\", \"Qualifying\", \"Race\"]\n",
" if event == \"Eifel Grand Prix\":\n",
" sessions = [\"Practice 3\", \"Qualifying\", \"Race\"]\n",
" if event == \"Emilia Romagna Grand Prix\":\n",
" sessions = [\"Practice 1\", \"Qualifying\", \"Race\"]\n",
"\n",
"\n",
"\n",
"\n",
" # Loop through each session and create a folder within the event folder\n",
" for session in sessions:\n",
" drivers = session_drivers(YEAR, event, session)\n",
"\n",
" for driver in drivers:\n",
" # Create a folder for the driver if it doesn't exist\n",
" driver_folder = f\"{event}/{session}/{driver}\"\n",
" if not os.path.exists(driver_folder):\n",
" os.makedirs(driver_folder)\n",
"\n",
" laptimes = laps_data(YEAR, event, session, driver)\n",
"\n",
" # Specify the file path where you want to save the JSON data\n",
" file_path = f\"{driver_folder}/laptimes.json\"\n",
"\n",
" # Save the dictionary to a JSON file\n",
" with open(file_path, \"w\") as json_file:\n",
" json.dump(laptimes, json_file)\n",
"\n",
" # print(f\"Dictionary saved to {file_path}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import concurrent.futures\n",
"import datetime\n",
"import functools\n",
"import math\n",
"import os\n",
"from io import BytesIO\n",
"\n",
"import fastf1\n",
"import numpy as np\n",
"import pandas as pd\n",
"import requests\n",
"import streamlit as st\n",
"from fastapi import Depends, FastAPI\n",
"from fastapi.middleware.cors import CORSMiddleware\n",
"from fastapi.responses import FileResponse, HTMLResponse\n",
"from fastf1.ergast import Ergast\n",
"from pydantic import BaseModel, Field\n",
"from sqlalchemy.orm import Session\n",
"\n",
"from . import accelerations, database, models, utils\n",
"\n",
"# import accelerations\n",
"# import database\n",
"# import models\n",
"# import utils\n",
"FASTF1_CACHE_DIR = os.environ[\"FASTF1_CACHE_DIR\"]\n",
"\n",
"fastf1.Cache.enable_cache(FASTF1_CACHE_DIR)\n",
"\n",
"app = FastAPI()\n",
"\n",
"app.add_middleware(\n",
" CORSMiddleware,\n",
" allow_origins=[\"*\"],\n",
" allow_credentials=True,\n",
" allow_methods=[\"*\"],\n",
" allow_headers=[\"*\"],\n",
")\n",
"\n",
"\n",
"database.Base.metadata.create_all(bind=database.engine)\n",
"\n",
"\n",
"def get_db():\n",
" try:\n",
" db = database.SessionLocal()\n",
" yield db\n",
" finally:\n",
" db.close()\n",
"\n",
"\n",
"class RacePace(BaseModel):\n",
" year: int\n",
" event: str\n",
" session: str\n",
" Driver: str\n",
" LapTime: float\n",
" Diff: float\n",
" Team: str\n",
" fill: str\n",
"\n",
"\n",
"# @functools.cache\n",
"@app.get(\"/racepace/{year}/{event}/{session}\", response_model=None)\n",
"async def average_race_pace(\n",
" year: int, event: str | int, session: str, db: Session = Depends(get_db)\n",
") -> any:\n",
" race_pace_data = (\n",
" db.query(models.RacePace)\n",
" .filter_by(year=year, event=event, session=session)\n",
" .all()\n",
" )\n",
"\n",
" if race_pace_data:\n",
" print(\"Fetching from Database\")\n",
"\n",
" if not race_pace_data:\n",
" print(\"Writing to Database\")\n",
" f1session = fastf1.get_session(\n",
" year,\n",
" event,\n",
" session,\n",
" # backend=\"fastf1\",\n",
" # force_ergast=False,\n",
" )\n",
" f1session.load(telemetry=False, weather=False, messages=False)\n",
" laps = f1session.laps\n",
"\n",
" laps = laps.loc[laps.LapNumber > 1]\n",
" laps = laps.pick_track_status(\n",
" \"1\",\n",
" )\n",
" laps[\"LapTime\"] = laps.Sector1Time + laps.Sector2Time + laps.Sector3Time\n",
"\n",
" # convert LapTime to seconds\n",
" laps[\"LapTime\"] = laps[\"LapTime\"].apply(lambda x: x.total_seconds())\n",
"\n",
" laps = laps.loc[laps.LapTime < laps.LapTime.min() * 1.07]\n",
"\n",
" df = (\n",
" laps[[\"LapTime\", \"Driver\"]].groupby(\"Driver\").mean().reset_index(drop=False)\n",
" )\n",
" df = df.sort_values(by=\"LapTime\").reset_index(drop=True)\n",
" df[\"LapTime\"] = df[\"LapTime\"].round(3)\n",
" df[\"Diff\"] = (df[\"LapTime\"] - df[\"LapTime\"].min()).round(3)\n",
" teams = laps[[\"Driver\", \"Team\"]].drop_duplicates().reset_index(drop=True)\n",
" # join teams and df\n",
" df = df.merge(teams, on=\"Driver\", how=\"left\")\n",
"\n",
" car_colors = utils.team_colors(year)\n",
"\n",
" df[\"fill\"] = df[\"Team\"].map(car_colors)\n",
"\n",
" df_json = df.to_dict(\"records\")\n",
"\n",
" # save the data to the database\n",
" for record in df.to_dict(\"records\"):\n",
" race_pace = models.RacePace(**record)\n",
" db.add(race_pace)\n",
"\n",
" db.commit()\n",
"\n",
" return {\"racePace\": df_json}\n",
"\n",
" return {\"racePace\": [dict(race_pace) for race_pace in race_pace_data]}\n",
"\n",
"\n",
"@functools.cache\n",
"@app.get(\"/topspeed/{year}/{event}/{session}\", response_model=None)\n",
"async def top_speed(year: int, event: str | int, session: str) -> any:\n",
" f1session = fastf1.get_session(year, event, session)\n",
" f1session.load(telemetry=False, weather=False, messages=False)\n",
" laps = f1session.laps\n",
" team_colors = utils.team_colors(year)\n",
"\n",
" fastest_speedtrap = (\n",
" laps[[\"SpeedI1\", \"SpeedI2\", \"SpeedST\", \"SpeedFL\"]]\n",
" .idxmax(axis=1)\n",
" .value_counts()\n",
" .index[0]\n",
" )\n",
"\n",
" speed_df = (\n",
" laps[[fastest_speedtrap, \"Driver\", \"Compound\", \"Team\"]]\n",
" .groupby(\"Driver\")\n",
" .max()\n",
" .sort_values(fastest_speedtrap, ascending=False)\n",
" .reset_index()\n",
" )\n",
" # add team colors to dataframe\n",
" speed_df[\"fill\"] = speed_df[\"Team\"].apply(lambda x: team_colors[x])\n",
"\n",
" # rename fastest speedtrap column to TopSpeed\n",
" speed_df.rename(columns={fastest_speedtrap: \"TopSpeed\"}, inplace=True)\n",
"\n",
" # remove nan values in any column\n",
" speed_df = speed_df.dropna()\n",
"\n",
" # Convert to int\n",
" speed_df[\"TopSpeed\"] = speed_df[\"TopSpeed\"].astype(int)\n",
"\n",
" speed_dict = speed_df.to_dict(orient=\"records\")\n",
"\n",
" return {\"topSpeed\": speed_dict}\n",
"\n",
"\n",
"@functools.cache\n",
"@app.get(\"/overtakes/{year}/{event}\", response_model=None)\n",
"def get_overtakes(year: int, event: str) -> any:\n",
" def get_overtakes_df(year, event):\n",
" if year == 2023:\n",
" url = \"https://docs.google.com/spreadsheets/d/1M4aepPJaIfdqE9oU3L-2CQqKIyubLXG4Q4cqWnyqxp4/export?format=csv\"\n",
" if year == 2022:\n",
" url = \"https://docs.google.com/spreadsheets/d/1cuS3B6hk4iQmMaRQoMTcogIInJpavnV7rKuEsiJnEbU/export?format=csv\"\n",
" if year == 2021:\n",
" url = \"https://docs.google.com/spreadsheets/d/1ANQnPVkefRmvzrmGvEqXoqQ4dBfgcI_R9FPg-0BcM34/export?format=csv\"\n",
" if year == 2020:\n",
" url = \"https://docs.google.com/spreadsheets/d/1eG9WTkXKzFT4NMh-WqHOMs5G0UuPGnb6wP4CnFD8uzY/export?format=csv\"\n",
" if year == 2019:\n",
" url = \"https://docs.google.com/spreadsheets/d/10nHg7BIs5ySh_dE9uuIz2lq-gRWcg02tIMr0EPgPvJs/export?format=csv\"\n",
" if year == 2018:\n",
" url = \"https://docs.google.com/spreadsheets/d/1MyAwQdczccdca_FAIiZKkqZNauNh3ts99JZ278S2OKc/export?format=csv\"\n",
"\n",
" response = requests.get(url, timeout=10)\n",
" df = pd.read_csv(BytesIO(response.content))\n",
" df = df[[\"Driver\", event]]\n",
" # replace NaNs with 0s\n",
" df = df.fillna(0)\n",
" # convert numbers to ints\n",
" df[event] = df[event].astype(int)\n",
" # replace event with \"overtakes\"\n",
" df = df.rename(columns={event: \"overtakes\"})\n",
" return df\n",
"\n",
" def get_overtaken_df(year, event):\n",
" if year == 2023:\n",
" url = \"https://docs.google.com/spreadsheets/d/1wszzx694Ot-mvA5YrFCpy3or37xMgnC0XpE8uNnJLWk/export?format=csv\"\n",
" if year == 2022:\n",
" url = \"https://docs.google.com/spreadsheets/d/19_XFDD3BZDIQVkNE4bG6dwuKvMaO4g5HNaUARGaJwhE/export?format=csv\"\n",
" if year == 2021:\n",
" url = \"https://docs.google.com/spreadsheets/d/1dQBHnd3AXEPNH5I75cjbzAAzi9ipqGk3v9eZT9eYKS4/export?format=csv\"\n",
" if year == 2020:\n",
" url = \"https://docs.google.com/spreadsheets/d/1snyntPMxYH4_KHSRI96AwBoJQrPbX6OanJAcqbYyW-Y/export?format=csv\"\n",
" if year == 2019:\n",
" url = \"https://docs.google.com/spreadsheets/d/11FfFkXErJg7F22iVwJo9XfLFAWucMBVlzL1qUGWxM3s/export?format=csv\"\n",
" if year == 2018:\n",
" url = \"https://docs.google.com/spreadsheets/d/1XJXAEyRpRS_UwLHzEtN2PdIaFJYGWSN6ypYN8Ecwp9A/export?format=csv\"\n",
"\n",
" response = requests.get(url, timeout=10)\n",
" df = pd.read_csv(BytesIO(response.content))\n",
" df = df[[\"Driver\", event]]\n",
" # replace NaNs with 0s\n",
" df = df.fillna(0)\n",
" # convert numbers to ints\n",
" df[event] = df[event].astype(int)\n",
" df = df.rename(columns={event: \"overtaken\"})\n",
" return df\n",
"\n",
" overtakes = get_overtakes_df(year, event)\n",
" overtaken = get_overtaken_df(year, event)\n",
" df = overtakes.merge(overtaken, on=\"Driver\")\n",
"\n",
" # remove drivers with 0 overtakes and 0 overtaken\n",
" df = df[(df[\"overtakes\"] != 0) | (df[\"overtaken\"] != 0)]\n",
"\n",
" # sort in the decreasing order of overtakes\n",
" df = df.sort_values(\n",
" by=[\"overtakes\", \"overtaken\"], ascending=[False, True]\n",
" ).reset_index(drop=True)\n",
" # convert to dictionary\n",
" df_dict = df.to_dict(orient=\"records\")\n",
"\n",
" return {\"overtakes\": df_dict}\n",
"\n",
"\n",
"@functools.cache\n",
"@app.get(\"/fastest/{year}/{event}/{session}\", response_model=None)\n",
"async def fastest_lap(year: int, event: str | int, session: str) -> any:\n",
" f1session = fastf1.get_session(year, event, session)\n",
" f1session.load(telemetry=False, weather=False, messages=False)\n",
" laps = f1session.laps\n",
"\n",
" drivers = pd.unique(laps[\"Driver\"])\n",
"\n",
" list_fastest_laps = list()\n",
"\n",
" for drv in drivers:\n",
" drvs_fastest_lap = laps.pick_driver(drv).pick_fastest()\n",
" list_fastest_laps.append(drvs_fastest_lap)\n",
"\n",
" df = (\n",
" fastf1.core.Laps(list_fastest_laps)\n",
" .sort_values(by=\"LapTime\")\n",
" .reset_index(drop=True)\n",
" )\n",
"\n",
" pole_lap = df.pick_fastest()\n",
" df[\"Diff\"] = df[\"LapTime\"] - pole_lap[\"LapTime\"]\n",
"\n",
" car_colors = utils.team_colors(year)\n",
"\n",
" df[\"fill\"] = df[\"Team\"].map(car_colors)\n",
"\n",
" # convert timedelta to float and round to 3 decimal places\n",
" df[\"Diff\"] = df[\"Diff\"].dt.total_seconds().round(3)\n",
" df = df[[\"Driver\", \"LapTime\", \"Diff\", \"Team\", \"fill\"]]\n",
"\n",
" # remove nan values in any column\n",
" df = df.dropna()\n",
"\n",
" df_json = df.to_dict(\"records\")\n",
"\n",
" return {\"fastest\": df_json}\n",
"\n",
"\n",
"# @st.cache_data\n",
"\n",
"\n",
"@app.get(\"/wdc\", response_model=None)\n",
"async def driver_standings() -> any:\n",
" YEAR = 2023 # datetime.datetime.now().year\n",
" df = pd.DataFrame(\n",
" pd.read_html(f\"https://www.formula1.com/en/results.html/{YEAR}/drivers.html\")[0]\n",
" )\n",
" df = df[[\"Driver\", \"PTS\", \"Car\"]]\n",
" # reverse the order\n",
" df = df.sort_values(by=\"PTS\", ascending=True)\n",
"\n",
" # in Driver column only keep the last 3 characters\n",
" df[\"Driver\"] = df[\"Driver\"].str[:-5]\n",
"\n",
" # add colors to the dataframe\n",
" car_colors = utils.team_colors(YEAR)\n",
" df[\"fill\"] = df[\"Car\"].map(car_colors)\n",
"\n",
" # remove rows where points is 0\n",
" df = df[df[\"PTS\"] != 0]\n",
" df.reset_index(inplace=True, drop=True)\n",
" df.rename(columns={\"PTS\": \"Points\"}, inplace=True)\n",
"\n",
" return {\"WDC\": df.to_dict(\"records\")}\n",
"\n",
"\n",
"# @st.cache_data\n",
"\n",
"\n",
"@app.get(\"/\", response_model=None)\n",
"async def root():\n",
" return HTMLResponse(\n",
" content=\"\"\"<iframe src=\"https://tracinginsights-f1-analysis.hf.space\" frameborder=\"0\" style=\"width:100%; height:100%;\" scrolling=\"yes\" allowfullscreen:\"yes\"></iframe>\"\"\",\n",
" status_code=200,\n",
" )\n",
"\n",
"\n",
"# @st.cache_data\n",
"\n",
"\n",
"@app.get(\"/years\", response_model=None)\n",
"async def years_available() -> any:\n",
" # make a list from 2018 to current year\n",
" current_year = datetime.datetime.now().year\n",
" years = list(range(2018, current_year + 1))\n",
" # reverse the list to get the latest year first\n",
" years.reverse()\n",
" years = [{\"label\": str(year), \"value\": year} for year in years]\n",
" return {\"years\": years}\n",
"\n",
"\n",
"# format for events {\"events\":[{\"label\":\"Saudi Arabian Grand Prix\",\"value\":2},{\"label\":\"Bahrain Grand Prix\",\"value\":1},{\"label\":\"Pre-Season Testing\",\"value\":\"t1\"}]}\n",
"\n",
"# @st.cache_data\n",
"\n",
"\n",
"@app.get(\"/{year}\", response_model=None)\n",
"async def events_available(year: int) -> any:\n",
" # get events available for a given year\n",
" data = utils.LatestData(year)\n",
" events = data.get_events()\n",
" events = [{\"label\": event, \"value\": event} for i, event in enumerate(events)]\n",
" events.reverse()\n",
"\n",
" return {\"events\": events}\n",
"\n",
"\n",
"# format for sessions {\"sessions\":[{\"label\":\"FP1\",\"value\":\"FP1\"},{\"label\":\"FP2\",\"value\":\"FP2\"},{\"label\":\"FP3\",\"value\":\"FP3\"},{\"label\":\"Qualifying\",\"value\":\"Q\"},{\"label\":\"Race\",\"value\":\"R\"}]}\n",
"\n",
"\n",
"# @st.cache_data\n",
"@functools.cache\n",
"@app.get(\"/{year}/{event}\", response_model=None)\n",
"async def sessions_available(year: int, event: str | int) -> any:\n",
" # get sessions available for a given year and event\n",
" data = utils.LatestData(year)\n",
" sessions = data.get_sessions(event)\n",
" sessions = [{\"label\": session, \"value\": session} for session in sessions]\n",
"\n",
" return {\"sessions\": sessions}\n",
"\n",
"\n",
"# format for drivers {\"drivers\":[{\"color\":\"#fff500\",\"label\":\"RIC\",\"value\":\"RIC\"},{\"color\":\"#ff8700\",\"label\":\"NOR\",\"value\":\"NOR\"},{\"color\":\"#c00000\",\"label\":\"VET\",\"value\":\"VET\"},{\"color\":\"#0082fa\",\"label\":\"LAT\",\"value\":\"LAT\"},{\"color\":\"#787878\",\"label\":\"GRO\",\"value\":\"GRO\"},{\"color\":\"#ffffff\",\"label\":\"GAS\",\"value\":\"GAS\"},{\"color\":\"#f596c8\",\"label\":\"STR\",\"value\":\"STR\"},{\"color\":\"#787878\",\"label\":\"MAG\",\"value\":\"MAG\"},{\"color\":\"#0600ef\",\"label\":\"ALB\",\"value\":\"ALB\"},{\"color\":\"#ffffff\",\"label\":\"KVY\",\"value\":\"KVY\"},{\"color\":\"#fff500\",\"label\":\"OCO\",\"value\":\"OCO\"},{\"color\":\"#0600ef\",\"label\":\"VER\",\"value\":\"VER\"},{\"color\":\"#00d2be\",\"label\":\"HAM\",\"value\":\"HAM\"},{\"color\":\"#ff8700\",\"label\":\"SAI\",\"value\":\"SAI\"},{\"color\":\"#00d2be\",\"label\":\"BOT\",\"value\":\"BOT\"},{\"color\":\"#960000\",\"label\":\"GIO\",\"value\":\"GIO\"}]}\n",
"\n",
"# @st.cache_data\n",
"\n",
"\n",
"@functools.cache\n",
"@app.get(\"/strategy/{year}/{event}\", response_model=None)\n",
"async def get_strategy(year: int, event: str | int) -> any:\n",
" f1session = fastf1.get_session(year, event, \"R\")\n",
" f1session.load(telemetry=False, weather=False, messages=False)\n",
" laps = f1session.laps\n",
"\n",
" drivers_list = pd.unique(laps[\"Driver\"])\n",
"\n",
" drivers = pd.DataFrame(drivers_list, columns=[\"Driver\"])\n",
" drivers[\"FinishOrder\"] = drivers.index + 1\n",
"\n",
" # Get the LapNumber of the first lap of each stint\n",
" first_lap = (\n",
" laps[[\"Driver\", \"Stint\", \"Compound\", \"LapNumber\"]]\n",
" .groupby([\"Driver\", \"Stint\", \"Compound\"])\n",
" .first()\n",
" .reset_index()\n",
" )\n",
" # Add FinishOrder to first_lap\n",
" first_lap = pd.merge(first_lap, drivers, on=\"Driver\")\n",
" # change LapNumber to LapStart\n",
" first_lap = first_lap.rename(columns={\"LapNumber\": \"LapStart\"})\n",
" # reduce the lapstart by 1\n",
" first_lap[\"LapStart\"] = first_lap[\"LapStart\"] - 1\n",
"\n",
" # find the last lap of each stint\n",
" last_lap = (\n",
" laps[[\"Driver\", \"Stint\", \"Compound\", \"LapNumber\"]]\n",
" .groupby([\"Driver\", \"Stint\", \"Compound\"])\n",
" .last()\n",
" .reset_index()\n",
" )\n",
" # change LapNumber to LapEnd\n",
" last_lap = last_lap.rename(columns={\"LapNumber\": \"LapEnd\"})\n",
"\n",
" # combine first_lap and last_lap\n",
" stint_laps = pd.merge(first_lap, last_lap, on=[\"Driver\", \"Stint\", \"Compound\"])\n",
" # to cover for outliers\n",
" stint_laps[\"fill\"] = \"white\"\n",
"\n",
" stint_laps[\"fill\"] = stint_laps[\"Compound\"].map(\n",
" {\n",
" \"SOFT\": \"red\",\n",
" \"MEDIUM\": \"yellow\",\n",
" \"HARD\": \"white\",\n",
" \"INTERMEDIATE\": \"blue\",\n",
" \"WET\": \"green\",\n",
" }\n",
" )\n",
"\n",
" # sort by FinishOrder\n",
" stint_laps = stint_laps.sort_values(by=[\"FinishOrder\"], ascending=[True])\n",
"\n",
" stint_laps_dict = stint_laps.to_dict(\"records\")\n",
"\n",
" return {\"strategy\": stint_laps_dict}\n",
"\n",
"# lap position\n",
"@functools.cache\n",
"@app.get(\"/lapchart/{year}/{event}/{session}\", response_model=None)\n",
"async def lap_chart(\n",
" year: int,\n",
" event: str | int,\n",
" session: str,\n",
") -> any:\n",
" ergast = Ergast()\n",
"\n",
" race_names_df = ergast.get_race_schedule(season=year, result_type=\"pandas\")\n",
" event_number = race_names_df[race_names_df[\"raceName\"] == event][\"round\"].values[0]\n",
" drivers_df = ergast.get_driver_info(\n",
" season=year, round=event_number, result_type=\"pandas\"\n",
" )\n",
" laptimes_df = ergast.get_lap_times(\n",
" season=year, round=event_number, result_type=\"pandas\", limit=2000\n",
" ).content[0]\n",
" laptimes_df = pd.merge(laptimes_df, drivers_df, how=\"left\", on=\"driverId\")\n",
"\n",
" results_df = ergast.get_race_results(\n",
" season=year, round=event_number, result_type=\"pandas\"\n",
" ).content[0]\n",
" results_df = results_df[[\"driverCode\", \"constructorName\"]]\n",
"\n",
" # merge results_df on laptime_df\n",
" laptimes_df = pd.merge(laptimes_df, results_df, how=\"left\", on=\"driverCode\")\n",
"\n",
" team_colors = utils.team_colors(year)\n",
" # add team_colors to laptimes_df\n",
" laptimes_df[\"fill\"] = laptimes_df[\"constructorName\"].map(team_colors)\n",
"\n",
" # rename number as x and position as y\n",
" laptimes_df.rename(\n",
" columns={\"number\": \"x\", \"position\": \"y\", \"driverCode\": \"id\"}, inplace=True\n",
" )\n",
"\n",
" lap_chart_data = []\n",
"\n",
" for driver in laptimes_df[\"id\"].unique():\n",
" data = laptimes_df[laptimes_df[\"id\"] == driver]\n",
" fill = data[\"fill\"].values[0]\n",
" data = data[[\"x\", \"y\"]]\n",
" data_dict = data.to_dict(orient=\"records\")\n",
" driver_dict = {\"id\": driver, \"fill\": fill, \"data\": data_dict}\n",
" # add this to all_data\n",
" lap_chart_data.append(driver_dict)\n",
"\n",
" lap_chart_dict = {\"lapChartData\": lap_chart_data}\n",
"\n",
" return lap_chart_dict\n",
"\n",
"\n",
"@functools.cache\n",
"@app.get(\"/{year}/{event}/{session}\", response_model=None)\n",
"async def session_drivers(year: int, event: str | int, session: str) -> any:\n",
" # get drivers available for a given year, event and session\n",
" f1session = fastf1.get_session(year, event, session)\n",
" f1session.load(telemetry=False, weather=False, messages=False)\n",
"\n",
" laps = f1session.laps\n",
" team_colors = utils.team_colors(year)\n",
" # add team_colors dict to laps on Team column\n",
" laps[\"color\"] = laps[\"Team\"].map(team_colors)\n",
"\n",
" unique_drivers = laps[\"Driver\"].unique()\n",
"\n",
" drivers = [\n",
" {\n",
" \"color\": laps[laps.Driver == driver].color.iloc[0],\n",
" \"label\": driver,\n",
" \"value\": driver,\n",
" }\n",
" for driver in unique_drivers\n",
" ]\n",
"\n",
" return {\"drivers\": drivers}\n",
"\n",
"# select laps similar to select drivers select box\n",
"@functools.cache\n",
"@app.get(\"/laps/{year}/{event}/{session}\", response_model=None)\n",
"async def get_driver_laps_data(year: int, event: str | int, session: str) -> any:\n",
" # get drivers available for a given year, event and session\n",
" f1session = fastf1.get_session(year, event, session)\n",
" f1session.load(telemetry=False, weather=False, messages=False)\n",
" laps = f1session.laps\n",
" team_colors = utils.team_colors(year)\n",
" # add team_colors dict to laps on Team column\n",
" laps[\"color\"] = laps[\"Team\"].map(team_colors)\n",
"\n",
" # combine Driver and LapNumber as a new column\n",
" laps[\"label\"] = (\n",
" laps[\"Driver\"]\n",
" + \"-\"\n",
" + laps[\"LapNumber\"].astype(int).astype(str)\n",
" + \"-\"\n",
" + str(year)\n",
" + \"-\"\n",
" + event\n",
" + \"-\"\n",
" + session\n",
" )\n",
" laps[\"value\"] = (\n",
" laps[\"Driver\"]\n",
" + \"-\"\n",
" + laps[\"LapNumber\"].astype(int).astype(str)\n",
" + \"-\"\n",
" + str(year)\n",
" + \"-\"\n",
" + event\n",
" + \"-\"\n",
" + session\n",
" )\n",
"\n",
" laps = laps[[\"value\", \"label\", \"color\"]]\n",
"\n",
" driver_laps_dict = laps.to_dict(\"records\")\n",
"\n",
" return {\"laps\": driver_laps_dict}\n",
"\n",
"\n",
"# format for chartData {\"chartData\":[{\"lapnumber\":1},{\n",
"# \"VER\":91.564,\n",
"# \"VER_compound\":\"SOFT\",\n",
"# \"VER_compound_color\":\"#FF5733\",\n",
"# \"lapnumber\":2\n",
"# },{\"lapnumber\":3},{\"VER\":90.494,\"VER_compound\":\"SOFT\",\"VER_compound_color\":\"#FF5733\",\"lapnumber\":4},{\"lapnumber\":5},{\"VER\":90.062,\"VER_compound\":\"SOFT\",\"VER_compound_color\":\"#FF5733\",\"lapnumber\":6},{\"lapnumber\":7},{\"VER\":89.815,\"VER_compound\":\"SOFT\",\"VER_compound_color\":\"#FF5733\",\"lapnumber\":8},{\"VER\":105.248,\"VER_compound\":\"SOFT\",\"VER_compound_color\":\"#FF5733\",\"lapnumber\":9},{\"lapnumber\":10},{\"VER\":89.79,\"VER_compound\":\"SOFT\",\"VER_compound_color\":\"#FF5733\",\"lapnumber\":11},{\"VER\":145.101,\"VER_compound\":\"SOFT\",\"VER_compound_color\":\"#FF5733\",\"lapnumber\":12},{\"lapnumber\":13},{\"VER\":89.662,\"VER_compound\":\"SOFT\",\"VER_compound_color\":\"#FF5733\",\"lapnumber\":14},{\"lapnumber\":15},{\"VER\":89.617,\"VER_compound\":\"SOFT\",\"VER_compound_color\":\"#FF5733\",\"lapnumber\":16},{\"lapnumber\":17},{\"VER\":140.717,\"VER_compound\":\"SOFT\",\"VER_compound_color\":\"#FF5733\",\"lapnumber\":18}]}\n",
"\n",
"# @st.cache_data\n",
"\n",
"\n",
"@functools.cache\n",
"@app.get(\"/{year}/{event}/{session}/{driver}\", response_model=None)\n",
"async def laps_data(year: int, event: str | int, session: str, driver: str) -> any:\n",
" # get drivers available for a given year, event and session\n",
" f1session = fastf1.get_session(year, event, session)\n",
" f1session.load(telemetry=False, weather=False, messages=False)\n",
" laps = f1session.laps\n",
" team_colors = utils.team_colors(year)\n",
" # add team_colors dict to laps on Team column\n",
"\n",
" drivers = laps.Driver.unique()\n",
" # for each driver in drivers, get the Team column from laps and get the color from team_colors dict\n",
" drivers = [\n",
" {\n",
" \"color\": team_colors[laps[laps.Driver == driver].Team.iloc[0]],\n",
" \"label\": driver,\n",
" \"value\": driver,\n",
" }\n",
" for driver in drivers\n",
" ]\n",
"\n",
" driver_laps = laps.pick_driver(driver)\n",
" driver_laps[\"LapTime\"] = driver_laps[\"LapTime\"].dt.total_seconds()\n",
" # remove rows where LapTime is null\n",
" driver_laps = driver_laps[driver_laps.LapTime.notnull()]\n",
" compound_colors = {\n",
" \"SOFT\": \"#FF0000\",\n",
" \"MEDIUM\": \"#FFFF00\",\n",
" \"HARD\": \"#FFFFFF\",\n",
" \"INTERMEDIATE\": \"#00FF00\",\n",
" \"WET\": \"#088cd0\",\n",
" }\n",
"\n",
" driver_laps_data = []\n",
"\n",
" for _, row in driver_laps.iterrows():\n",
" if row[\"LapTime\"] > 0:\n",
" lap = {\n",
" f\"{driver}\": row[\"LapTime\"],\n",
" f\"{driver}_compound\": row[\"Compound\"],\n",
" f\"{driver}_compound_color\": compound_colors[row[\"Compound\"]],\n",
" \"lapnumber\": row[\"LapNumber\"],\n",
" }\n",
" else:\n",
" lap = {\"lapnumber\": row[\"LapNumber\"]}\n",
"\n",
" driver_laps_data.append(lap)\n",
"\n",
" return {\"chartData\": driver_laps_data}\n",
"\n",
"\n",
"@functools.cache\n",
"@app.get(\"/laptimes/{year}/{event}/{session}/{driver}\", response_model=None)\n",
"async def get_laps_data(year: int, event: str | int, session: str, driver: str) -> any:\n",
" # get drivers available for a given year, event and session\n",
" f1session = fastf1.get_session(year, event, session)\n",
" f1session.load(telemetry=False, weather=False, messages=False)\n",
" laps = f1session.laps\n",
" team_colors = utils.team_colors(year)\n",
" # add team_colors dict to laps on Team column\n",
"\n",
" drivers = laps.Driver.unique()\n",
" # for each driver in drivers, get the Team column from laps and get the color from team_colors dict\n",
" drivers = [\n",
" {\n",
" \"color\": team_colors[laps[laps.Driver == driver].Team.iloc[0]],\n",
" \"label\": driver,\n",
" \"value\": driver,\n",
" }\n",
" for driver in drivers\n",
" ]\n",
"\n",
" driver_laps = laps.pick_driver(driver)\n",
" driver_laps[\"LapTime\"] = driver_laps[\"LapTime\"].dt.total_seconds()\n",
" driver_laps = driver_laps[[\"Driver\", \"LapTime\", \"LapNumber\", \"Compound\"]]\n",
"\n",
" # remove rows where LapTime is null\n",
" driver_laps = driver_laps[driver_laps.LapTime.notnull()]\n",
"\n",
" driver_laps_dict = driver_laps.to_dict(\"records\")\n",
"\n",
" return {\"chartData\": driver_laps_dict}\n",
"\n",
"\n",
"# @st.cache_data\n",
"\n",
"\n",
"@functools.cache\n",
"@app.get(\"/{year}/{event}/{session}/{driver}/{lap_number}\", response_model=None)\n",
"async def telemetry_data(\n",
" year: int, event: str | int, session: str, driver: str, lap_number: int\n",
") -> any:\n",
" f1session = fastf1.get_session(year, event, session)\n",
" f1session.load(telemetry=True, weather=False, messages=False)\n",
" laps = f1session.laps\n",
"\n",
" driver_laps = laps.pick_driver(driver)\n",
" driver_laps[\"LapTime\"] = driver_laps[\"LapTime\"].dt.total_seconds()\n",
"\n",
" # get the telemetry for lap_number\n",
" selected_lap = driver_laps[driver_laps.LapNumber == lap_number]\n",
"\n",
" telemetry = selected_lap.get_telemetry()\n",
"\n",
" lon_acc, lat_acc = accelerations.compute_accelerations(telemetry)\n",
" telemetry[\"lon_acc\"] = lon_acc\n",
" telemetry[\"lat_acc\"] = lat_acc\n",
"\n",
" telemetry[\"Time\"] = telemetry[\"Time\"].dt.total_seconds()\n",
"\n",
" laptime = selected_lap.LapTime.values[0]\n",
" data_key = f\"{driver} - Lap {int(lap_number)} - {year} {session} [laptime]\"\n",
"\n",
" telemetry[\"DRS\"] = telemetry[\"DRS\"].apply(lambda x: 1 if x in [10, 12, 14] else 0)\n",
"\n",
" brake_tel = []\n",
" drs_tel = []\n",
" gear_tel = []\n",
" rpm_tel = []\n",
" speed_tel = []\n",
" throttle_tel = []\n",
" time_tel = []\n",
" track_map = []\n",
" lon_acc_tel = []\n",
" lat_acc_tel = []\n",
"\n",
" for _, row in telemetry.iterrows():\n",
" brake = {\n",
" \"x\": row[\"Distance\"],\n",
" \"y\": row[\"Brake\"],\n",
" }\n",
" brake_tel.append(brake)\n",
"\n",
" drs = {\n",
" \"x\": row[\"Distance\"],\n",
" \"y\": row[\"DRS\"],\n",
" }\n",
" drs_tel.append(drs)\n",
"\n",
" gear = {\n",
" \"x\": row[\"Distance\"],\n",
" \"y\": row[\"nGear\"],\n",
" }\n",
" gear_tel.append(gear)\n",
"\n",
" rpm = {\n",
" \"x\": row[\"Distance\"],\n",
" \"y\": row[\"RPM\"],\n",
" }\n",
" rpm_tel.append(rpm)\n",
"\n",
" speed = {\n",
" \"x\": row[\"Distance\"],\n",
" \"y\": row[\"Speed\"],\n",
" }\n",
" speed_tel.append(speed)\n",
"\n",
" throttle = {\n",
" \"x\": row[\"Distance\"],\n",
" \"y\": row[\"Throttle\"],\n",
" }\n",
" throttle_tel.append(throttle)\n",
"\n",
" time = {\n",
" \"x\": row[\"Distance\"],\n",
" \"y\": row[\"Time\"],\n",
" }\n",
" time_tel.append(time)\n",
"\n",
" lon_acc = {\n",
" \"x\": row[\"Distance\"],\n",
" \"y\": row[\"lon_acc\"],\n",
" }\n",
" lon_acc_tel.append(lon_acc)\n",
"\n",
" lat_acc = {\n",
" \"x\": row[\"Distance\"],\n",
" \"y\": row[\"lat_acc\"],\n",
" }\n",
" lat_acc_tel.append(lat_acc)\n",
"\n",
" track = {\n",
" \"x\": row[\"X\"],\n",
" \"y\": row[\"Y\"],\n",
" }\n",
" track_map.append(track)\n",
"\n",
" telemetry_data = {\n",
" \"telemetryData\": {\n",
" \"brake\": brake_tel,\n",
" \"dataKey\": data_key,\n",
" \"drs\": drs_tel,\n",
" \"gear\": gear_tel,\n",
" \"rpm\": rpm_tel,\n",
" \"speed\": speed_tel,\n",
" \"throttle\": throttle_tel,\n",
" \"time\": time_tel,\n",
" \"lon_acc\": lon_acc_tel,\n",
" \"lat_acc\": lat_acc_tel,\n",
" \"trackMap\": track_map,\n",
" }\n",
" }\n",
"\n",
" return telemetry_data"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

Xet Storage Details

Size:
451 kB
·
Xet hash:
3f3a87d9cd51d3f623b93d1531d3fb1535dd89a8a5d2e205f6177fe48876ddf3

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.