[tox] requires = tox>=4 envlist = py3{9,10,11,12}-{full,pre} py39-min 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 [gh-actions:env] DEPENDS = min: min full: full pre: pre [testenv] description = Pytest with coverage labels = test pip_pre = pre: true pass_env = # getpass.getuser() sources for Windows: LOGNAME USER LNAME USERNAME # Pass user color preferences through PY_COLORS FORCE_COLOR NO_COLOR CLICOLOR CLICOLOR_FORCE extras = test deps = min: numpy ==1.22 min: scipy ==1.8 min: nibabel ==4.0 min: pandas ==1.2.0 # Tested on 0.2.4-0.5.2 min: formulaic ==0.2.4 min: sqlalchemy ==1.3.16 min: num2words ==0.5.5 min: click ==8.0 commands = pytest --doctest-modules -v \ --cov src/bids --cov-report xml:cov.xml --cov-report term \ src/bids {posargs:-n auto} [testenv:docs] description = Build documentation site labels = docs allowlist_externals = make extras = doc commands = make -C doc html [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 = build-strict: PYTHONWARNINGS=error 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/*