[tox] minversion = 4.4.4 skip_missing_interpreters = {env:TOX_SKIP_MISSING_INTERPRETERS:True} envlist = py38, py39, py310, py311, py312, py313, docs, lint, type, isolated_build = true [testenv] description = run the test driver with {basepython} passenv = PYTEST_XDIST_WORKER_COUNT PROGRAMDATA PROGRAMFILES(X86) PYTEST_ADDOPTS deps = -r test-requirements.txt # This is a bit of a hack, but ensures the faster-cache path is tested in CI orjson;python_version=='3.12' commands = python -m pytest {posargs} [testenv:dev] description = generate a DEV environment, that has all project libraries usedevelop = True deps = -r test-requirements.txt -r docs/requirements-docs.txt commands = python -m pip list --format=columns python -c 'import sys; print(sys.executable)' {posargs} [testenv:docs] description = invoke sphinx-build to build the HTML docs passenv = VERIFY_MYPY_ERROR_CODES deps = -r docs/requirements-docs.txt commands = sphinx-build -n -d "{toxworkdir}/docs_doctree" docs/source "{toxworkdir}/docs_out" --color -W -bhtml {posargs} python -c 'import pathlib; print("documentation available under file://\{0\}".format(pathlib.Path(r"{toxworkdir}") / "docs_out" / "index.html"))' [testenv:lint] description = check the code style skip_install = true deps = pre-commit commands = pre-commit run --all-files --show-diff-on-failure [testenv:type] description = type check ourselves passenv = TERM MYPY_FORCE_COLOR MYPY_FORCE_TERMINAL_WIDTH commands = python runtests.py self python -m mypy --config-file mypy_self_check.ini misc --exclude misc/sync-typeshed.py python -m mypy --config-file mypy_self_check.ini test-data/unit/plugins