# Git
.git
.gitignore

# Python (patterns without **/ only match at the context root)
**/__pycache__
**/*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Virtual environments
.venv
venv/
ENV/

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

# Testing
.pytest_cache/
.mypy_cache/
.ruff_cache/
.import_linter_cache/
.coverage
htmlcov/
.tox/
.nox/

# Node (rebuilt in container)
**/node_modules/

# Frontend build output and test artifacts (the UI is built in the
# frontend stage; a local dist/ would be merged into the image's copy)
src/stemtrace/server/ui/frontend/dist/
src/stemtrace/server/ui/frontend/test-results/
src/stemtrace/server/ui/frontend/playwright-report/
src/stemtrace/server/ui/frontend/.tanstack/
src/stemtrace/server/ui/frontend/tsconfig.tsbuildinfo

# Documentation
docs/_build/

# Local development
.env
.env.local
*.log

# Cursor/Editor/agent tooling
.cursor/
.context/
.claude/

# Keep these (they're built in Dockerfile)
!src/stemtrace/server/ui/frontend/package*.json
!src/stemtrace/server/ui/frontend/src/
!src/stemtrace/server/ui/frontend/*.config.*
!src/stemtrace/server/ui/frontend/*.json
