Explain it like I’m mid-lane
Short riffs you can skim between matches. These are here to answer “what does this mean?” so the steps can stay focused on “what should I build?”
Input vs arguments
Start with input() for zero friction, then graduate to flags when you’re sick of re-typing.
Used in: Step 00, Step 02
Open explainer →Terminal + folders
pwd/ls/cd, project root, and why “file not found” is often just “wrong folder”.
Used in: Step 00, Step 03
Open explainer →python -m (modules)
Why this project uses python -m, what __main__.py is, and the classic “No module named src” fix.
Used in: Step 00
Open explainer →uv + dependencies
Install libraries with uv add, run with uv run, and fix ModuleNotFoundError without panic.
Used in: Step 01, Step 06
Open explainer →API keys + env vars
Store secrets outside your code, read RIOT_API_KEY safely, and print receipts not secrets.
Used in: Step 02
Open explainer →Tracebacks (reading errors)
Read from the bottom, find the real line, and recognize the top beginner errors fast.
Used in: Debugging, Step 04
Open explainer →HTTP + JSON
Status codes you’ll actually see (200/401/403/404/429) and what to print when it fails.
Used in: Step 02, Step 04
Open explainer →Routing values (platform vs regional)
The “wrong host” bug explained. Print your base URL and you’ll usually win.
Used in: Step 02, Step 04
Open explainer →Caching sanity
Raw vs derived datasets, why TTL can be optional, and how caching keeps you sane.
Used in: Step 03, Step 04
Open explainer →Pandas minimum
head(), shape, dtypes; groupby for counts/means/winrate; sort before time math.
Used in: Step 06, Step 07
Open explainer →Plotly minimum
Plotly Express bar/line, debug the dataframe first, save with write_html.
Used in: Step 07
Open explainer →