How nitzv/fast-f1 works
FastF1 is a Python package for retrieving and analyzing Formula 1 schedules, session results, timing and telemetry, plus current and historical Ergast-compatible data. The principal workflow is to select an event/session, load data through the session layer and its data providers, then analyze extended Pandas objects or visualize them. Separate branches cover live SignalR capture, authenticated timing access, and Ergast queries. The graph follows shown imports and calls; several subsystems are represented from documented capabilities and the file tree, so their internal links are omitted where excerpts do not establish them.
Main entry points: core.py Session model · interface.py Historical API · events.py Event lookup · req.py HTTP and cache
Components 22
Events and sessions
- Event lookup
fastf1/events.py - Session model
fastf1/core.py
Data providers
- F1 timing API
fastf1/_api.py - Historical API
fastf1/ergast/interface.py - Ergast responses
fastf1/ergast/structure.py - MV API data
fastf1/mvapi/data.py
Live timing
- SignalR client
fastf1/livetiming/client.py - Live data parser
fastf1/livetiming/data.py - Account auth
fastf1/internals/f1account/__init__.py - Token manager
fastf1/internals/f1account/tokens.py
Analysis and visualization
- Extended Pandas
fastf1/internals/pandas_base.py - Pandas helpers
fastf1/internals/pandas_extensions.py - Plotting interface
fastf1/plotting/_interface.py
Shared infrastructure
- HTTP and cache
fastf1/req.py - Parsing helpers
fastf1/internals/parsing_helpers.py - Fuzzy matching
fastf1/internals/fuzzy.py - Logging
fastf1/logger.py
Other components
- Analyst
- F1 services
- Jolpica API
- Analysis data
- Visualization
Connections 28
- Analyst → Event lookup: selects event
- Event lookup → Session model: creates session
fastf1/events.py - Event lookup → HTTP and cache: fetches schedule
fastf1/events.py - Event lookup → Historical API: uses historical data
fastf1/events.py - Event lookup → Fuzzy matching: matches names
fastf1/events.py - Session model → F1 timing API: loads timing
fastf1/core.py - Session model → Historical API: loads results
fastf1/core.py - Session model → Live data parser: reads live data
fastf1/core.py - Session model → MV API data: loads API data
fastf1/core.py - F1 timing API → HTTP and cache: fetches pages
fastf1/_api.py - F1 timing API → Parsing helpers: uses parsers
fastf1/_api.py - Historical API → HTTP and cache: sends queries
fastf1/ergast/interface.py - Historical API → Ergast responses: builds responses
fastf1/ergast/interface.py - Historical API → Analysis data: returns frames
fastf1/ergast/interface.py - F1 services → F1 timing API: provides timing
- Jolpica API → Historical API: provides race data
- Analyst → SignalR client: captures stream
fastf1/livetiming/client.py - SignalR client → Account auth: gets token
fastf1/livetiming/client.py - Account auth → Token manager: manages tokens
fastf1/internals/f1account/__init__.py - SignalR client → F1 services: subscribes stream
fastf1/livetiming/client.py - Live data parser → Parsing helpers: uses parsers
fastf1/livetiming/data.py - Session model → Extended Pandas: extends dataframes
fastf1/core.py - Extended Pandas → Analysis data: provides analysis data
- Analyst → Plotting interface: requests plots
- Plotting interface → Session model: plots session data
fastf1/plotting/_interface.py - Plotting interface → Visualization: renders chart
- HTTP and cache → F1 services: requests data
- HTTP and cache → Jolpica API: requests data