-
-
Notifications
You must be signed in to change notification settings - Fork 7
/
tox.toml
91 lines (84 loc) · 2.88 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
requires = ["tox>=4.21.1", "tox-uv>=1.13"]
env_list = ["fix", "3.13", "3.12", "3.11", "3.10", "3.9", "type", "pkg_meta"]
skip_missing_interpreters = true
[env_run_base]
description = "run the tests with pytest under {env_name}"
package = "wheel"
wheel_build_env = ".pkg"
extras = ["testing"]
pass_env = ["DIFF_AGAINST", "PYTEST_*", "TOX_GH_MAJOR_MINOR"]
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",
"5",
"--junitxml",
"{work_dir}{/}junit.{env_name}.xml",
"--no-cov-on-fail",
"--cov",
"{env_site_packages_dir}{/}tox_gh",
"--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
deps = ["pre-commit-uv>=4.1.3"]
pass_env = [{ replace = "ref", of = ["env_run_base", "pass_env"], extend = true }, "PROGRAMDATA"]
commands = [["pre-commit", "run", "--all-files", "--show-diff-on-failure", { replace = "posargs" }]]
[env.type]
description = "run type check on code base"
deps = ["mypy==1.11.2"]
commands = [["mypy", "src{/}tox_gh"], ["mypy", "tests"]]
[env.pkg_meta]
description = "check that the long description is valid"
skip_install = true
deps = ["check-wheel-contents>=0.6", "twine>=5.1.1", "uv>=0.4.17"]
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
deps = ["gitpython>=3.1.43", "packaging>=24.1", "towncrier>=24.8"]
commands = [["python", "{tox_root}/tasks/release.py", "--version", "{posargs}"]]
[env.dev]
description = "dev environment with all deps at {envdir}"
package = "editable"
deps = [
{ replace = "ref", of = [ "env", "release", "deps"], extend = true },
{ replace = "ref", of = [ "requires"], extend = true },
]
extras = ["docs", "testing"]
commands = [["uv", "pip", "tree"], ["python", "-c", 'print(r"{env_python}")']]
[gh.python]
"3.13" = ["3.13", "type", "pkg_meta"]
"3.12" = ["3.12"]
"3.11" = ["3.11"]
"3.10" = ["3.10"]
"3.9" = ["3.9"]