[tox] # Python 3.8 is the first version with positional-only argument syntax support envlist = py{38,39,3.10,3.11,3.12,py3} skip_missing_interpreters = True [testenv] commands = coverage run -m unittest discover -t . -s test coverage report coverage xml # mypy won't install on PyPy, so only run the typechecking on CPython !pypy3: python -m mypy.stubtest --allowlist dev/mypy.allowlist contextlib2 deps = coverage !pypy3: mypy [gh-actions] python = 3.8: py38 3.9: py39 3.10: py3.10 3.11: py3.11 3.12: py3.12 pypy-3.10: pypy3