# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info

# Virtual environments
.venv

# 测试与覆盖率
.coverage
.coverage.*
htmlcov/
coverage.xml
coverage.json

# 工具缓存
.ruff_cache/
.pyrefly_cache/
.mypy_cache/
.uv-cache/
.pytest_cache/
.eslintcache
.pytmp
frontend/.vitest-cache/
frontend/.vitest

# IDE
.idea/
*_profile.html

# 环境变量与凭证（勿提交）
.env
.env.*
# 但部署模板必须入库：CI 同步到服务器时要用它初始化 .env
!deploy/.env.prod.example

src/cndb/static/*
!src/cndb/static/.gitkeep

*.db

# Playwright E2E
frontend/.auth/
frontend/playwright-report/
frontend/test-results/
frontend/.local-ms-playwright/
# Vitest 覆盖率报告产物（CI 分片：blob 报告 + 各分片独立覆盖率目录）
frontend/coverage/
frontend/coverage-shard-*/
frontend/blob-report/

# 前端冗余 lock 文件（已用 pnpm，不再用 npm）
frontend/package-lock.json
*.bak
uploads
.e2e-data/
.trae-html-share-packages/*
*backup-*.tar.gz
!examples/backups/**/*backup-*.tar.gz
.pnpm-store
*.docx

# seed 生成的示例报告产物（每次 seed 覆盖重写，不入库）
examples/datasets/**/*-示例报告.*

# SQLite 内存 DB / URI 临时文件
file:*
?cache=*

# 本地协作产物一律不入库
.trae/*
!.trae/rules/
!.trae/skills/
.claude/
.workbuddy/
