-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathtox.ini
135 lines (125 loc) · 2.66 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
[tox]
requires =
tox>=4
envlist =
py3{9,10,11,12,13}-latest
py39-min
py3{11,12,13}-pre
style
spellcheck
skip_missing_interpreters = true
# Configuration that allows us to split tests across GitHub runners effectively
[gh-actions]
python =
3.9: py39
3.10: py310
3.11: py311
3.12: py312
3.13: py313
[gh-actions:env]
DEPENDS =
min: min
latest: latest
pre: pre
[testenv]
description = Pytest with coverage
labels = test
pip_pre =
pre: true
pass_env =
TEMPLATEFLOW_HOME
# Freesurfer variables searched for
FREESURFER_HOME
SUBJECTS_DIR
FS_LICENSE
# CI variables
TEST_DATA_HOME
TEST_OUTPUT_DIR
TEST_WORK_DIR
FMRIPREP_REGRESSION_SOURCE
CACHED_WORK_DIRECTORY
# CircleCI-specific
CIRCLE_NPROCS
SAVE_CIRCLE_ARTIFACTS
# getpass.getuser() sources for Windows:
LOGNAME
USER
LNAME
USERNAME
# Pass user color preferences through
PY_COLORS
FORCE_COLOR
NO_COLOR
CLICOLOR
CLICOLOR_FORCE
PYTHON_GIL
deps =
# Waiting on a release
py313: traits @ git+https://github.com/enthought/traits.git@10954eb
extras = tests
setenv =
pre: PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
pre: UV_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
uv_resolution =
min: lowest-direct
commands =
pytest --durations=20 --durations-min=1.0 --cov-report term-missing {posargs:-n auto}
[testenv:style]
description = Check our style guide
labels = check
deps =
ruff
skip_install = true
commands =
ruff check --diff
ruff format --diff
[testenv:style-fix]
description = Auto-apply style guide to the extent possible
labels = pre-release
deps =
ruff
skip_install = true
commands =
ruff check --fix
ruff format
ruff check --select ISC001
[testenv:typecheck]
description = "Run mypy type checking"
labels = check
deps =
mypy
extras = types
commands =
mypy nireports
[testenv:spellcheck]
description = Check spelling
labels = check
deps =
codespell[toml]
skip_install = true
commands =
codespell . {posargs}
[testenv:build{,-strict}]
labels =
check
pre-release
deps =
build
twine
skip_install = true
set_env =
# Ignore specific known warnings:
# https://github.com/pypa/pip/issues/11684
# https://github.com/pypa/pip/issues/12243
strict: PYTHONWARNINGS=error,once:pkg_resources is deprecated as an API.:DeprecationWarning:pip._internal.metadata.importlib._envs,once:Unimplemented abstract methods {'locate_file'}:DeprecationWarning:pip._internal.metadata.importlib._dists
commands =
python -m build
python -m twine check dist/*
[testenv:publish]
depends = build
labels = release
deps =
twine
skip_install = true
commands =
python -m twine upload dist/*