forked from astropy/astropy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
117 lines (103 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
[tox]
envlist =
py{36,37,38}-test{,-alldeps,-oldestdeps,-devdeps,-numpy116,-numpy117,-numpy118}{,-cov}
build_docs
linkcheck
codestyle
requires =
setuptools >= 30.3.0
pip >= 19.3.1
isolated_build = true
[testenv]
# Pass through the following environemnt variables which are needed for the CI
passenv = HOME WINDIR LC_ALL LC_CTYPE CC CI TRAVIS TEST_READ_HUGE_FILE
# For coverage, we need to pass extra options to the C compiler
setenv =
cov: CFLAGS = --coverage -fno-inline-functions -O0
# Run the tests in a temporary directory to make sure that we don't import
# astropy from the source tree
changedir = .tmp/{envname}
# tox environments are constructued 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
oldestdeps: with the oldest supported version of key dependencies
cov: and test coverage
numpy116: with numpy 1.16.*
numpy117: with numpy 1.17.*
numpy118: with numpy 1.18.*
deps =
numpy116: numpy==1.16.*
numpy117: numpy==1.17.*
numpy118: numpy==1.18.*
# The oldestdeps factor is intended to be used to install the oldest versions of all
# dependencies that have a minimum version
oldestdeps: numpy==1.16.*
oldestdeps: matplotlib==2.1.*
oldestdeps: asdf==2.4.*
# The devdeps factor is intended to be used to install the latest developer version
# of key dependencies.
devdeps: git+https://github.com/numpy/numpy.git#egg=numpy
devdeps: git+https://github.com/matplotlib/matplotlib.git#egg=matplotlib
devdeps: git+https://github.com/spacetelescope/asdf.git#egg=asdf
# The following indicates which extras_require from setup.cfg will be installed
extras =
test
alldeps: all
commands =
pip freeze
!cov: pytest --pyargs astropy {toxinidir}/docs {posargs}
cov: pytest --pyargs astropy {toxinidir}/docs --cov astropy --cov-config={toxinidir}/setup.cfg {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]
# We list the warnings/errors to check for here rather than in setup.cfg because
# we don't want these options to apply whenever anyone calls flake8 from the
# command-line or their code editor - in this case all warnings/errors should be
# checked for. The warnings/errors we check for here are:
# E101 - mix of tabs and spaces
# W191 - use of tabs
# W291 - trailing whitespace
# W292 - no newline at end of file
# W293 - trailing whitespace
# W391 - blank line at end of file
# E111 - 4 spaces per indentation level
# E112 - 4 spaces per indentation level
# E113 - 4 spaces per indentation level
# E301 - expected 1 blank line, found 0
# E302 - expected 2 blank lines, found 0
# E303 - too many blank lines (3)
# E304 - blank lines found after function decorator
# E305 - expected 2 blank lines after class or function definition
# E306 - expected 1 blank line before a nested definition
# E502 - the backslash is redundant between brackets
# E722 - do not use bare except
# E901 - SyntaxError or IndentationError
# E902 - IOError
# E999: SyntaxError -- failed to compile a file into an Abstract Syntax Tree
# F822: undefined name in __all__
# F823: local variable name referenced before assignment
skip_install = true
description = check code style, e.g. with flake8
deps = flake8
commands = flake8 astropy --count --select=E101,W191,W291,W292,W293,W391,E111,E112,E113,E30,E502,E722,E901,E902,E999,F822,F823