-
Notifications
You must be signed in to change notification settings - Fork 27
/
tox.ini
146 lines (136 loc) · 2.91 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
[tox]
requires =
tox>=4
tox-uv
envlist =
py3{9,10,11,12,13}-latest-{fast,slow,veryslow}
py39-min-fast
py3{11,12,13}-pre-{fast,slow,veryslow}
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
MARKS =
fast: fast
slow: slow
veryslow: veryslow
[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
# FSL
FSLOUTPUTTYPE
FSLMULTIFILEQUIT
# AFNI
AFNI_HOME
AFNI_MODELPATH
AFNI_IMSAVE_WARNINGS
AFNI_TTATLAS_DATASET
AFNI_PLUGINPATH
# 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_INDEX=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
pre: UV_INDEX_STRATEGY=unsafe-best-match
uv_resolution =
min: lowest-direct
commands =
pytest --durations=20 --durations-min=1.0 --cov-report term-missing \
fast: -m "not slow" \
slow: -m "slow and not veryslow" \
veryslow: -m "veryslow" \
{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: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/*