-
-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathtox.ini
148 lines (141 loc) · 3.37 KB
/
tox.ini
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
147
148
[tox]
requires =
setuptools>=65.3
tox>=4.24.2
tox-extra>=2.1
tox-uv>=1.25
env_list =
py
lint
pkg
docs
deps
alpine
skip_missing_interpreters = true
[testenv]
description =
Run the tests under {base_python}
devel: avoid dependency lock
package = editable
extras =
test
pass_env =
CI
CURL_CA_BUNDLE
FORCE_COLOR
GITHUB_*
HOME
LANG
LC_*
NO_COLOR
PIP_*
PUBLISH
PYTEST_*
PYTEST_REQPASS
PYTHON*
PYTHONBREAKPOINT
PYTHONIOENCODING
PYTHONPYCACHEPREFIX
PY_COLORS
REQUESTS_CA_BUNDLE
RTD_TOKEN
SETUPTOOLS_SCM_DEBUG
SSH_AUTH_SOCK
SSL_CERT_FILE
TERM
UV_*
set_env =
COVERAGE_FILE = {env:COVERAGE_FILE:{env_dir}/.coverage.{env_name}}
COVERAGE_PROCESS_START = {tox_root}/pyproject.toml
FORCE_COLOR = 1
PIP_CONSTRAINT = {tox_root}/.config/constraints.txt
PIP_DISABLE_PIP_VERSION_CHECK = 1
PRE_COMMIT_COLOR = always
PYTEST_REQPASS = 18
PYTHONDONTWRITEBYTECODE = 1
PYTHONUNBUFFERED = 1
UV_CONSTRAINT = {tox_root}/.config/constraints.txt
deps, devel, lint, pkg, pre: PIP_CONSTRAINT = /dev/null
deps, devel, lint, pkg, pre: UV_CONSTRAINT = /dev/null
change_dir = {tox_root}
commands_pre =
sh -c "rm -f {env_dir}/.coverage.* 2>/dev/null || true"
{env_python} -m pip check
commands =
coverage erase
coverage run -m pytest {posargs:-n auto}
{py,py39,py310,py311,py312,py313}: sh -c "coverage combine -a -q --data-file={env_dir}/.coverage {work_dir}/*/.coverage.* && coverage xml -i --data-file={env_dir}/.coverage -o {env_dir}/coverage.xml --fail-under=0 && coverage report --data-file={env_dir}/.coverage"
allowlist_externals =
find
rm
sh
uv_seed = true
[testenv:lint]
description = Run all linters
skip_install = true
deps =
pre-commit>=4.1
pre-commit-uv>=4.1.4
setuptools>=51.1.1
pass_env =
{[testenv]pass_env}
PRE_COMMIT_HOME
commands_pre =
commands =
{env_python} -m pre_commit run --all-files --show-diff-on-failure {posargs:}
[testenv:pkg]
description =
Do packaging and distribution tests, PEP-440,PEP-517,PEP-621
skip_install = true
deps =
build>=0.9
twine>=4.0.1
set_env =
commands_pre =
commands =
rm -rfv {tox_root}/dist/
python -m build \
--outdir {tox_root}/dist/ \
{tox_root}
python -m twine check --strict {tox_root}/dist/*
used_develop = false
[testenv:docs]
description = Builds docs
package = editable
skip_install = false
extras =
docs
set_env =
DYLD_FALLBACK_LIBRARY_PATH = /opt/homebrew/lib:{env:LD_LIBRARY_PATH}
NO_COLOR = 1
TERM = dump
commands =
mkdocs {posargs:build --strict --site-dir=_readthedocs/html/}
[testenv:deps]
description = Bump all test dependencies
skip_install = true
deps =
{[testenv:lint]deps}
commands_pre =
commands =
pre-commit run --all-files --show-diff-on-failure --hook-stage manual lock
pre-commit run --all-files --show-diff-on-failure --hook-stage manual deps
pre-commit autoupdate
tox -e lint
env_dir = {work_dir}/lint
[testenv:alpine]
description = Tests installation on Alpine linux
skip_install = true
commands_pre =
commands =
docker build .
allowlist_externals =
docker
[testenv:rpm]
description = Use packit to build RPM (requires RPM based Linux distro)
deps =
build
packitos
setuptools-scm
commands =
sh -c "packit build in-mock --root=fedora-40-$(arch)"