forked from astropy/photutils
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
140 lines (123 loc) · 4.33 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
[tox]
envlist =
py{310,311,312,313}-test{,-alldeps,-devdeps,-oldestdeps,-devinfra}{,-cov}
py{310,311,312,313}-test-numpy{126,200,210}
build_docs
linkcheck
codestyle
pep517
bandit
isolated_build = true
[testenv]
# Suppress display of matplotlib plots generated during docs build
setenv =
MPLBACKEND=agg
devdeps: PIP_EXTRA_INDEX_URL = https://pypi.anaconda.org/scientific-python-nightly-wheels/simple https://pypi.anaconda.org/liberfa/simple https://pypi.anaconda.org/astropy/simple
# Pass through the following environment variables which may be needed
# for the CI
passenv = HOME,WINDIR,LC_ALL,LC_CTYPE,CC,CI
# Run the tests in a temporary directory to make sure that we don't
# import this package from the source tree
changedir = .tmp/{envname}
# tox environments are constructed with so-called 'factors' (or terms)
# separated by hyphens, e.g., test-devdeps-cov. Lines below starting
# with factor: will only take effect if that factor is included in the
# environment name. To see a list of example environments that can be run,
# along with a description, run:
#
# tox -l -v
#
description =
run tests
alldeps: with all optional dependencies
devdeps: with the latest developer version of key dependencies
devinfra: like devdeps but also dev version of infrastructure
oldestdeps: with the oldest supported version of key dependencies
cov: and test coverage
numpy126: with numpy 1.26.*
numpy200: with numpy 2.0.*
numpy210: with numpy 2.1.*
# The following provides some specific pinnings for key packages
deps =
cov: pytest-cov
numpy126: numpy==1.26.*
numpy200: numpy==2.0.*
numpy210: numpy==2.1.*
oldestdeps: numpy==1.24
oldestdeps: astropy==5.3
oldestdeps: scipy==1.10
oldestdeps: matplotlib==3.7
oldestdeps: scikit-image==0.20
oldestdeps: scikit-learn==1.1
oldestdeps: gwcs==0.19
oldestdeps: pytest-astropy==0.11
devdeps: numpy>=0.0.dev0
devdeps: scipy>=0.0.dev0
devdeps: scikit-image>=0.0.dev0
devdeps: scikit-learn>=0.0.dev0
devdeps: matplotlib>=0.0.dev0
devdeps: pyerfa>=0.0.dev0
devdeps: astropy>=0.0.dev0
devdeps: git+https://github.com/spacetelescope/gwcs.git
# Latest developer version of infrastructure packages.
devinfra: git+https://github.com/pytest-dev/pytest.git
devinfra: git+https://github.com/astropy/extension-helpers.git
devinfra: git+https://github.com/astropy/pytest-doctestplus.git
devinfra: git+https://github.com/astropy/pytest-remotedata.git
devinfra: git+https://github.com/astropy/pytest-astropy-header.git
devinfra: git+https://github.com/astropy/pytest-arraydiff.git
devinfra: git+https://github.com/astropy/pytest-filter-subpackage.git
devinfra: git+https://github.com/astropy/pytest-astropy.git
# The following indicates which [project.optional-dependencies] from
# pyproject.toml will be installed
extras =
test: test
alldeps: all
build_docs: docs
install_command =
!devdeps: python -I -m pip install
devdeps: python -I -m pip install -v --pre
commands =
# Force numpy-dev after matplotlib downgrades it
# (https://github.com/matplotlib/matplotlib/issues/26847)
devdeps: python -m pip install --pre --upgrade --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy
pip freeze
pytest --pyargs photutils {toxinidir}/docs \
cov: --cov photutils --cov-config={toxinidir}/pyproject.toml --cov-report xml:{toxinidir}/coverage.xml --cov-report term-missing \
{posargs}
[testenv:build_docs]
changedir = docs
description = invoke sphinx-build to build the HTML docs
extras = docs
commands =
pip freeze
sphinx-build -W -b html . _build/html
[testenv:linkcheck]
changedir = docs
description = check the links in the HTML docs
extras = docs
commands =
pip freeze
sphinx-build -W -b linkcheck . _build/html
[testenv:codestyle]
skip_install = true
changedir = .
description = check code style with flake8
deps = flake8
commands = flake8 photutils --count --max-line-length=79
[testenv:pep517]
skip_install = true
changedir = .
description = PEP 517
deps =
build
twine
commands =
python -m build --sdist .
twine check dist/* --strict
[testenv:bandit]
skip_install = true
changedir = .
description = security check with bandit
deps = bandit
commands = bandit -r photutils -c pyproject.toml