# Python
__pycache__/
*.py[cod]
*.egg-info/
build/
dist/
.venv/
venv/
.eggs/

# Tooling
.pytest_cache/
.ruff_cache/
.mypy_cache/

# Easel session state and output
*.easel
out/
output/
samples/*.png
samples/*.gif
!samples/.gitkeep
# The brush sampler is the project's primary test artefact and its best
# at-a-glance description, so it is committed even though it is generated.
!samples/brushes.png
!samples/shapes.png

# Editors / OS
.vscode/
.idea/
.DS_Store
Thumbs.db

# Golden images: the stored ones are committed (they are what a human looks at
# when a case fails). The `.actual.png` a failing test writes beside them is not.
tests/golden/*.actual.png

# A painting's own looks, previews and rehearsals are intermediates and regenerate
# from the pass scripts beside them; the finished painting and its time-lapse are
# the thing itself and are committed.
paintings/**/out_*/
paintings/**/look_*.png
paintings/**/preview_*.png
paintings/**/rehearse_*.png
paintings/**/compare_*.png
paintings/**/prepare_*.png
