-
-
Notifications
You must be signed in to change notification settings - Fork 526
/
tox.toml
122 lines (115 loc) · 3.24 KB
/
tox.toml
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
requires = ["tox>=4.23.2"]
env_list = ["fix", "3.13", "3.12", "3.11", "3.10", "3.9", "3.8", "cov", "type", "docs", "pkg_meta"]
skip_missing_interpreters = true
[env_run_base]
description = "run the tests with pytest under {env_name}"
package = "wheel"
wheel_build_env = ".pkg"
dependency_groups = ["test"]
pass_env = ["PYTEST_*", "SSL_CERT_FILE"]
set_env.COVERAGE_FILE = { replace = "env", name = "COVERAGE_FILE", default = "{work_dir}{/}.coverage.{env_name}" }
set_env.COVERAGE_FILECOVERAGE_PROCESS_START = "{tox_root}{/}pyproject.toml"
commands = [
[
"pytest",
{ replace = "posargs", extend = true, default = [
"--durations",
"15",
"-n",
{ replace = "env", name = "PYTEST_XDIST_AUTO_NUM_WORKERS", default = "auto" },
"--junitxml",
"{work_dir}{/}junit.{env_name}.xml",
"--no-cov-on-fail",
"--cov",
"{env_site_packages_dir}{/}tox",
"--cov",
"{tox_root}{/}tests",
"--cov-config",
"{tox_root}{/}pyproject.toml",
"--cov-context",
"test",
"--cov-report",
"term-missing:skip-covered",
"--cov-report",
"html:{env_tmp_dir}{/}htmlcov",
"--cov-report",
"xml:{work_dir}{/}coverage.{env_name}.xml",
"tests",
"--run-integration",
] },
],
[
"diff-cover",
"--compare-branch",
{ replace = "env", name = "DIFF_AGAINST", default = "origin/main" },
"{work_dir}{/}coverage.{env_name}.xml",
],
]
[env.fix]
description = "format the code base to adhere to our styles, and complain about what we cannot do automatically"
skip_install = true
dependency_groups = ["fix"]
pass_env = [{ replace = "ref", of = ["env_run_base", "pass_env"], extend = true }, "PROGRAMDATA", "DISABLE_PRE_COMMIT_UV_PATCH"]
commands = [["pre-commit", "run", "--all-files", "--show-diff-on-failure", { replace = "posargs", extend = true }]]
[env.type]
description = "run type check on code base"
dependency_groups = ["type"]
commands = [["mypy", "src{/}tox"], ["mypy", "tests"]]
[env.docs]
description = "build documentation"
dependency_groups = ["docs"]
commands = [
[
"sphinx-build",
"-d",
"{env_tmp_dir}{/}docs_tree",
"docs",
"{env:READTHEDOCS_OUTPUT:{work_dir}{/}docs_out}/html",
"--color",
"-b",
"html",
{ replace = "posargs", default = [], extend = true },
"-W",
],
[
"python",
"-c",
'print(r"documentation available under file://{work_dir}{/}docs_out{/}index.html")',
],
]
[env.pkg_meta]
description = "check that the long description is valid"
skip_install = true
dependency_groups = ["pkg_meta"]
commands = [
[
"uv",
"build",
"--sdist",
"--wheel",
"--out-dir",
"{env_tmp_dir}",
".",
],
[
"twine",
"check",
"{env_tmp_dir}{/}*",
],
[
"check-wheel-contents",
"--no-config",
"{env_tmp_dir}",
],
]
[env.release]
description = "do a release, required posargs of the version number"
skip_install = true
dependency_groups = ["release"]
commands = [["python", "{tox_root}/tasks/release.py", "--version", "{posargs}"]]
[env.dev]
description = "dev environment with all deps at {envdir}"
package = "editable"
dependency_groups = ["dev"]
commands = [["python", "-m", "pip", "list", "--format=columns"], ["python", "-c", 'print(r"{env_python}")']]
uv_seed = true