# Python
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
dist/
build/
*.egg

# Virtual environments
.venv/
venv/
env/

# IDE
.idea/
.vscode/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Testing
.pytest_cache/
.coverage
htmlcov/

# Ruff
.ruff_cache/

*.log
*.log.gz
*.log.gz.part
*.log.gz.part.1
*.log.gz.part.2
*.log.gz.part.3
*.log.gz.part.4
*.log.gz.part.5
*.log.gz.part.6
*.log.gz.part.7
.env

# Generated simulation artifacts
src/uav_sim/simulations/**/*_log.json

# Trained policies, other than the checked-in reference ones.
# The learning curve belongs with the policy: `scripts/make_promo.py` only
# takes its reuse path when *both* files are present, so ignoring the curve
# made every promo render retrain from scratch -- an hour of CPU to change a
# line of on-screen copy.
policies/*
!policies/hover.npz
!policies/hover_curve.npy

# Docs build output
docs/.vitepress/dist/
docs/.vitepress/cache/
