Skip to main content
Ingestion needs no credentials. EnvironmentConfig exposes four settings, each with a sensible default, each overridable via an environment variable or a .env file.
path
default:"data/cache"
Where FastF1 caches downloaded session data on disk. Sized to hold every session you’ve loaded once see the cache section below.
path
default:"data/bronze"
Bronze root ingest.py writes under (same layout), overridden per-run by --bronze-dir. Point it at a scratch directory for probes and experiments so they never write into data/bronze. verify_bronze.py, manifest_report.py and scripts/check_season_seeds.py take the same --bronze-dir flag.
string
default:"INFO"
Default logging verbosity, overridden per-run by ingest.py’s --log-level flag.
float
default:"300"
Per-request timeout passed through to FastF1’s network calls. Falls back to 300 with a warning if set to a non-numeric value.
Neither FastF1 nor Jolpica requires authentication. There is no API key, token, or secret anywhere in the ingestion config surface.

.env discovery

EnvironmentConfig searches for a .env file up the directory tree the current working directory, then ingestion/, then the project root and loads the first one it finds. You don’t need to export variables manually; dropping a .env file at the project root is enough.
.env

The FastF1 cache

Every session FastF1 loads is cached to FASTF1_CACHE_DIR (data/cache/ by default) the first time it’s pulled. Subsequent loads of the same session including a --force re-ingest read from the local cache instead of hitting the upstream feed again.
This is why --force re-pulls are cheap: the slow part (talking to FastF1’s live-timing/archive feed) only happens once per session. Everything after that is a local cache read plus the Bronze write.
The cache directory is created automatically on first run via fastf1.Cache.enable_cache(...) there’s nothing to set up beyond optionally redirecting where it lives.