Mack's LoL Scout
Mini-guides

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 →