# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
*.so

# Distribution / packaging
.Python
build/
dist/
sdist/
wheels/
*.egg-info/
*.egg
MANIFEST
pip-wheel-metadata/

# Virtual environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Testing / coverage
.tox/
.nox/
.coverage
.coverage.*
htmlcov/
.cache
.pytest_cache/
nosetests.xml
coverage.xml
*.cover
.hypothesis/

# Type checking
.mypy_cache/
.dmypy.json
dmypy.json
.pyre/
.pytype/

# Linting
.ruff_cache/

# Jupyter
.ipynb_checkpoints

# IDE / editor
.idea/
.vscode/
*.swp
*.swo
*~
.DS_Store
Thumbs.db

# OS
.directory

# IBM Quantum credentials — NEVER commit
.qiskit/
qiskit-ibm.json
*.token
.env.local
config.local.*
secrets.*

# Output directories
output/
out/
results/
*_temp/

# Large generated assets — gallery/ tracked via Git LFS, raw outputs ignored
gallery/raw/
gallery/_temp/

# Notebooks: outputs cleaned, but committed
# (use `nbstripout` pre-commit hook for output stripping)

# Logs
*.log

# Local data overrides — `data/runs/` is committed (CC BY 4.0 dataset),
# but personal experimental scratch goes here:
data/_scratch/
data/_personal/
