# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python

# Packaging / build — release artifacts are built on demand, never committed
build/
dist/
*.egg-info/
*.egg
pip-wheel-metadata/
uv.lock

# Environments — conda env lives outside the repo (see environment.yml)
.venv/
venv/
env/
.conda/
.python-version

# Test / lint caches
.pytest_cache/
.mypy_cache/
.ruff_cache/
.tox/
.nox/
.coverage
.coverage.*
htmlcov/
coverage.xml

# Editors / tooling
.vscode/
.idea/
*.swp
*.swo
.claude/

# OS
.DS_Store
Thumbs.db

# Secrets — THRIXEL_API_KEY must never be committed
.env
.env.*
!.env.example

# Generated assets land here by default
thrixel_assets/

# Test suites and dev tooling stay local. End users install the package with
# uvx and never run these; keeping them out of the PUBLISHED tree is the point,
# and that is now done where it belongs - tool.hatch.build.targets.sdist in
# pyproject.toml - so this repo can hold them. Ignoring them here also meant
# they had no copy anywhere but one machine, which is not a tradeoff worth
# making for tidiness.
