[tox] envlist = py310,py311,py312,py313,py314 isolated_build = True skip_missing_interpreters = True [testenv] description = Run tests with pytest basepython = py310: python3.10 py311: python3.11 py312: python3.12 py313: python3.13 py314: python3.14 deps = pytest pytest-cov coverage mnemonic extras = dev commands = pytest --maxfail=1 --disable-warnings {posargs} [testenv:lint] description = Run linting checks deps = flake8 mypy commands = flake8 keycard tests mypy keycard [testenv:coverage] description = Run tests with coverage report deps = pytest pytest-cov coverage mnemonic commands = pytest --cov=keycard --cov-report=term-missing --cov-report=xml [gh-actions] python = 3.10: py310 3.11: py311 3.12: py312 3.13: py313 3.14: py314