# some of the prunes here are so that check-manifest doesn't complain about their exclusion
# as such, be judicious in your use of prune

# stubs
prune mypy/typeshed
include mypy/typeshed/LICENSE
include mypy/typeshed/stdlib/VERSIONS
recursive-include mypy/typeshed *.pyi

# mypy and mypyc
include mypy/py.typed
include mypyc/py.typed
recursive-include mypy *.py
recursive-include mypyc *.py

# random
include mypy_bootstrap.ini
graft mypy/xml
graft scripts

# docs
graft docs
prune docs/build
prune docs/source/_build

# assorted mypyc requirements
graft mypyc/external
graft mypyc/lib-rt
graft mypyc/test
graft mypyc/test-data
graft mypyc/doc
prune mypyc/doc/build

# files necessary for testing sdist
include mypy-requirements.txt
include build-requirements.txt
include test-requirements.in
include test-requirements.txt
include mypy_self_check.ini
prune misc
graft test-data
graft mypy/test
include conftest.py
include runtests.py
include tox.ini

include LICENSE mypyc/README.md CHANGELOG.md
exclude .gitmodules CONTRIBUTING.md CREDITS ROADMAP.md action.yml .editorconfig
exclude .git-blame-ignore-revs .pre-commit-config.yaml

global-exclude *.py[cod]
global-exclude .DS_Store
