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

# Distribution / packaging
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
*.manifest
*.spec

# Cython
*.c
*.cpp

# ===========================
# Virtual Environment
# ===========================
.venv/
venv/
ENV/
env/
.uv/

# ===========================
# IDE / Editor
# ===========================
.vscode/
.idea/
*.swp
*.swo
*~
*.sublime-project
*.sublime-workspace
.spyderproject
.spyproject

# JetBrains
*.iml
.idea/

# ===========================
# Testing
# ===========================
.pytest_cache/
.tox/
.nox/
.hypothesis/
*.cover
*.py,cover

# Coverage
.coverage
.coverage.*
htmlcov/
coverage.xml
*.coveragerc

# ===========================
# Reports
# ===========================
reports/
allure-results/
allure-report/

# ===========================
# Logs
# ===========================
logs/
*.log

# ===========================
# OS Generated
# ===========================
# macOS
.DS_Store
.AppleDouble
.LSOverride
._*

# Windows
Thumbs.db
ehthumbs.db
Desktop.ini

# Linux
*~

# ===========================
# Type Checkers
# ===========================
.mypy_cache/
.dmypy.json
dmypy.json
.pytype/
.pyre/

# ===========================
# Pre-commit
# ===========================
.pre-commit-config.yaml.bak

# ===========================
# Documentation
# ===========================
docs/_build/
site/

# ===========================
# Jupyter Notebook
# ===========================
.ipynb_checkpoints/
*.ipynb_checkpoints

# ===========================
# Environment Variables
# ===========================
.env
.env.local
.env.*.local
!.env.example

# ===========================
# Secrets (NEVER commit)
# ===========================
*.pem
*.key
*.crt
secrets/
credentials.json

# ===========================
# AI / Tools
# ===========================
.claude/*
!.claude/skills/
!.claude/CLAUDE.md

# ===========================
# Project Specific
# ===========================
# uv.lock 应该提交到 Git（确保环境一致性）
# 不要忽略 uv.lock
/tmpclaude*
