-
Notifications
You must be signed in to change notification settings - Fork 3
/
tox.ini
132 lines (116 loc) · 3.97 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
[tox]
envlist =
py{310,311,312}-test{,-alldeps,-devdeps,-oldestdeps,-devinfra}{,-cov}
py{310,311,312}-test-numpy{124,125,126,200}
build_docs
linkcheck
codestyle
pep517
bandit
requires =
setuptools >= 61.2
pip >= 19.3.1
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/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
numpy124: with numpy 1.24.*
numpy125: with numpy 1.25.*
numpy126: with numpy 1.26.*
# The following provides some specific pinnings for key packages
deps =
cov: pytest-cov
numpy124: numpy==1.24.*
numpy125: numpy==1.25.*
numpy126: numpy==1.26.*
numpy200: numpy==2.0.*
oldestdeps: numpy==1.24
oldestdeps: scipy==1.10
oldestdeps: matplotlib==3.6
oldestdeps: astropy==5.1
devdeps: numpy>=0.0.dev0
devdeps: scipy>=0.0.dev0
devdeps: matplotlib>=0.0.dev0
devdeps: astropy>=0.0.dev0
# 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
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 lacosmic {toxinidir}/docs \
cov: --cov lacosmic --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 lacosmic --count --max-line-length=88
[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 lacosmic -c pyproject.toml