# MkDocs build output
site/
# mkdocs-jupyter's rendered-notebook cache, written by `mkdocs build`
.cache/

# Python cache and build files
*.pyc
*.pyo
*.pyc
__pycache__/
*.egg-info/
build/
dist/

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

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

# Output and data files
*zarr/
*.prof
Archive/
*imzML
*ibd
# ...except the hand-authored corpus, which is the one place imzML/.ibd bytes
# are deliberately tracked. They are tiny (a few KB each) and they are the only
# imzML in the tree that pyimzml's own writer did not produce, so they are the
# only fixtures that can catch a parser bug the writer shares. See
# tests/data/fixtures/README.md, and .gitattributes -- the CRLF fixture needs an
# explicit -text or staging silently strips the line endings it exists to test.
!tests/data/fixtures/*.imzML
!tests/data/fixtures/*.ibd
*.d
*.mis
*.slx
*.tiff
*.ipynb

# Jupyter notebooks
.ipynb_checkpoints/
*.ipynb
# ...except documentation notebooks, which are published as part of the docs
# site and must be committed with their outputs.
!docs/*.ipynb

# Temporary files
temp_*
test_output*/
nul

# Test data (large MSI files)
test_data/

# Benchmark data and results
benchmarks/converted/
benchmarks/results/
benchmarks/continue_benchmark.py
benchmarks/missing_benchmark.py
benchmarks/test_*.py

# Leading slash: anchor to the repository root. Unanchored, this also matched
# .github/scripts/, the one tracked scripts directory, so git refused to add
# changes to the complexity monitor without -f.
/scripts/

# Generated analysis output. The complexity monitor writes
# reports/complexity/ on every run -- in CI, where it is uploaded as a
# 30-day artifact, and locally for anyone running the script by hand.
# Nothing under here has ever been tracked. Anchored for the same reason
# /scripts/ is.
/reports/

# Virtual environment (uv creates it in-project by default)
.venv/
