-
-
Notifications
You must be signed in to change notification settings - Fork 477
Expand file tree
/
Copy pathtox.ini
More file actions
146 lines (123 loc) · 4.65 KB
/
tox.ini
File metadata and controls
146 lines (123 loc) · 4.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
# For details: https://github.com/coveragepy/coveragepy/blob/main/NOTICE.txt
[tox]
# When changing this list, be sure to check the [gh] list below.
# PYVERSIONS
envlist = py3{10-15}, py3{13-15}t, pypy3, doc, lint, mypy
labels =
py = py3{10-15}, py3{13-15}t, pypy3
qual = lint, mypy
skip_missing_interpreters = {env:COVERAGE_SKIP_MISSING_INTERPRETERS:True}
toxworkdir = {env:TOXWORKDIR:.tox}
[testenv]
download = True
extras =
toml
# PYVERSIONS
deps =
-r requirements/pip.pip
-r requirements/pytest.pip
py3{10-14}: -r requirements/light-threads.pip
# Windows can't update the pip version with pip running, so use Python
# to install things.
install_command = python -m pip install -U {env:COVERAGE_PIP_ARGS} {opts} {packages}
passenv = *
setenv =
pypy3{,10,11}: COVERAGE_TEST_CORES=pytrace
PYTHONWARNDEFAULTENCODING=1
PYTHONWARNINGS=ignore::EncodingWarning:pip._internal.utils.subprocess,ignore::EncodingWarning:pip._internal.configuration
# Disable CPython's color output
PYTHON_COLORS=0
# $set_env.py: COVERAGE_PIP_ARGS - Extra arguments for `pip install`
# `--no-build-isolation` will let tox work with no network.
commands =
# Create tests/zipmods.zip
python igor.py zip_mods
# Build the C extension and test with the CTracer
python setup.py --quiet build_ext --inplace
# Installing with -e means with metacov we can measure ourselves without
# getting all of site-packages measured also.
python -m pip install {env:COVERAGE_PIP_ARGS} -q -e .
python igor.py clean_for_core ctrace
python igor.py test_with_core ctrace {posargs}
# Test with the PyTracer
python igor.py clean_for_core pytrace
python igor.py test_with_core pytrace {posargs}
# Test with sys.monitoring
py3{12-15}{,t},anypy: python igor.py clean_for_core sysmon
py3{12-15}{,t},anypy: python igor.py test_with_core sysmon {posargs}
[testenv:anypy]
# $set_env.py: COVERAGE_ANYPY - The custom Python for "tox -e anypy"
# For running against my own builds of CPython, or any other specific Python.
basepython = {env:COVERAGE_ANYPY}
[testenv:doc]
# One of the PYVERSIONS, that's currently supported by Sphinx. Make sure it
# matches the `python:version:` in the .readthedocs.yml file, and the
# python-version in the `doc` job in the .github/workflows/quality.yml workflow.
basepython = python3.12
# Build the docs so we know if they are successful. We build twice: once with
# -q to get all warnings, and once with -QW to get a success/fail status
# return.
deps =
-r doc/requirements.pip
allowlist_externals =
make
setenv =
{[testenv]setenv}
PYTHONWARNDEFAULTENCODING=
commands =
# If cog fails, it means the docs need to be updated. Run `make prebuild`.
python -m cogapp -cP --check --check-fail-msg='run `make prebuild`' --verbosity=1 doc/*.rst doc/*/*.rst
doc8 -q --ignore-path 'doc/_*' doc CHANGES.rst README.rst
sphinx-lint doc CHANGES.rst README.rst
sphinx-build -b html -aEnqW doc doc/_build/html
sphinx-build -b rediraffecheckdiff doc/ doc/_build/html
rst2html --verbose --strict README.rst doc/_build/README.html
- sphinx-build -b html -b linkcheck -aEnq doc doc/_build/html
- sphinx-build -b html -b linkcheck -aEnQW doc doc/_build/html
[testenv:lint]
# Minimum of PYVERSIONS
basepython = python3.10
deps =
-r requirements/dev.pip
setenv =
{[testenv]setenv}
PYTHONWARNDEFAULTENCODING=
LINTABLE=coverage tests doc ci igor.py setup.py __main__.py
commands =
python -m tabnanny {env:LINTABLE}
# If cog fails, it means the docs need to be updated. Run `make prebuild`.
python -m cogapp -cP --check --check-fail-msg='run `make prebuild`' --verbosity=1 doc/*.rst doc/*/*.rst
# If cog fails, it means the workflow files need to be updated. Run `make workflows`.
python -m cogapp -cP --check --check-fail-msg='run `make workflows`' --verbosity=1 .github/workflows/*.yml
ruff format --check
python -m pylint -j 0 --notes= --ignore-paths 'doc/_build/.*' {env:LINTABLE}
check-manifest --ignore "doc/sample_html/*,a1_coverage.pth"
python -m build -qq
twine check dist/*
[testenv:mypy]
basepython = python3.10
deps =
-r requirements/mypy.pip
setenv =
{[testenv]setenv}
PYTHONWARNDEFAULTENCODING=
TYPEABLE=coverage tests setup.py
commands =
# PYVERSIONS
mypy --python-version=3.14 --strict {env:TYPEABLE}
[gh]
# https://pypi.org/project/tox-gh/
# PYVERSIONS
python =
3.10 = py310
3.11 = py311
3.12 = py312
3.13 = py313
3.13t = py313t
3.14 = py314
3.14t = py314t
3.15 = py315
3.15t = py315t
pypy-3 = pypy3
pypy-3.11 = pypy3