__pycache__/
*.py[cod]
.pytest_cache/
.ruff_cache/
.venv/
*.egg-info/
.DS_Store
_previews/

# Local secrets
.env

# Personal working artifacts, not library code.
# exam.py / exam2.ipynb are a Q-and-A dialogue with Alex's own half-filled
# answers in it; figures/ are unapproved renders made for one meeting. Both are
# kept ON DISK and out of the repo -- removal from disk is Alex's call.
exam.py
exam2.ipynb
# ROOT-ANCHORED ON PURPOSE. An unanchored `figures/` matches a directory of that
# name at ANY depth, and it silently swallowed `docs/figures/`, which is
# COMMITTED output the site embeds. The generator for those lives in
# `illustrations/`.
/figures/

# Written by notebook/tutorial.ipynb when it runs, as the save-and-load
# section requires an actual file on disk. An artifact of executing the
# notebook, not an input to it.
notebook/sidewalk.json

# Staged into docs/ at site-build time by hooks/stage_examples.py. The one copy
# that is not generated lives in examples/, beside the script that writes it.
docs/examples/

# mkdocs output
site/
.cache/
