# ignore all root items
/*

# unignore folders: files and folders to ignore (the / is optional - I just think it looks nice)
!**/src/*.py
!**/tests/*.py
!docs/
!.github/

# unignore files: files and folders to not ignore
!.gitignore
!Changelog.md
!Build.txt
!README.md
!README_PyPl.md
!pyproject.toml
# Tracked so CI can `uv sync --locked` and get byte-identical dependencies.
!uv.lock
# Runs the CI gates locally; kept beside the workflow it mirrors.
!run-ci.sh
!maptasker
!tests
dmg_builder
!Misc Utilities
!Language_Support_Utilities


# recursively re-ignore
__pycache__
.claude

# test / lint tooling artifacts
.pytest_cache
.ruff_cache
.coverage
.coverage.*
coverage.xml
htmlcov
