# Python
__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/
env/
ENV/
.venv

# Testing
.pytest_cache/
.coverage
htmlcov/
.tox/

# IDEs
.vscode/
.idea/
*.swp
*.swo
*~

# Security - NEVER commit these
*.key
*.pem
*.p12
*.pfx
secrets/
vault_data/
.vault_config
*.enc
# `env/` above is the virtualenv directory and does not match these. A dotenv
# file is the single most common way a credential reaches a public repository,
# and nothing here covered it.
.env
.env.*
!.env.example
credentials.toml
*.jks
*.keystore
id_rsa
id_ed25519

# OS
.DS_Store
Thumbs.db

# Model files (can be large)
*.pt
*.pth
*.ckpt
*.onnx
*.pb
*.h5
*.safetensors

# Documentation
docs/_build/
site/

# Logs
*.log
logs/

# Rust
target/
# Note: Cargo.lock is committed for binary crate reproducibility
**/*.rs.bk
*.pdb

# Tarpaulin coverage artifacts
tarpaulin-report.json
tarpaulin_stderr.log

# LLVM coverage artifacts
*.profraw
*.profdata

# Cache
.cache/

# Videos (contains node_modules)
videos/

# Test/demo outputs (contain local paths — never commit)
reports/*.txt
reports/XDG_DEMO_COMPLETE.md

# Defensive: never commit anything that may embed local username/paths
**/target/
fuzz/target/
fuzz/artifacts/
fuzz/corpus/
fuzz/coverage/
*.dump
*.dmp
**/.cargo-ok

# OS / editor noise
*.bak
*.orig
*.rej
