/
tox.ini
103 lines (94 loc) · 2.42 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
; a generative tox configuration, see: https://testrun.org/tox/latest/config.html#generative-envlist
; {toxinidir} is the directory where tox.ini is located
[tox]
envlist =
clean,
check,
py38,
report,
docs,
profile
[testenv]
basepython =
pypy: {env:TOXPYTHON:pypy}
py33: {env:TOXPYTHON:python3.3}
py34: {env:TOXPYTHON:python3.4}
py35: {env:TOXPYTHON:python3.5}
{py38,docs,profile}: {env:TOXPYTHON:python3.8}
{clean,check,report,codecov,spell}: {env:TOXPYTHON:python3}
setenv =
PYTHONPATH={toxinidir}/tests
PYTHONUNBUFFERED=yes
passenv =
*
usedevelop = false
deps =
-r{toxinidir}/requirements/base.txt
pytest
pytest-cov
commands =
{posargs:pytest --cov --cov-report=term-missing -vv tests}
[testenv:spell]
setenv =
SPELLCHECK=1
commands =
sphinx-build -b spelling docs dist/docs
skip_install = true
deps =
-r{toxinidir}/docs/requirements.txt
sphinxcontrib-spelling
pyenchant
[testenv:docs]
deps =
-r{toxinidir}/requirements/base.txt
-r{toxinidir}/docs/requirements.txt
commands =
sphinx-apidoc -e -f -o {toxinidir}/docs/reference {toxinidir}/src/tlo
; Generate API documentation for TLO methods
python docs/tlo_methods_rst.py
; Generate data sources page
python docs/tlo_data_sources.py
; Generate HSI events listing
python src/tlo/analysis/hsi_events.py --output-file docs/_hsi_events.rst --output-format rst-list
python src/tlo/analysis/hsi_events.py --output-file docs/hsi_events.csv --output-format csv
sphinx-build {posargs:-E} -b html docs dist/docs
-sphinx-build -b linkcheck docs dist/docs
[testenv:check]
deps =
docutils
check-manifest
flake8
pygments
isort
twine
skip_install = true
commands =
python setup.py sdist --formats=gztar
twine check dist/*.tar.gz
check-manifest {toxinidir}
flake8 src tests setup.py
isort --check-only --diff src tests setup.py
[testenv:codecov]
deps =
codecov
skip_install = true
commands =
coverage xml --ignore-errors
codecov []
[testenv:report]
deps = coverage
skip_install = true
commands =
coverage report
coverage html
[testenv:profile]
deps =
-r{toxinidir}/requirements/base.txt
pyinstrument>=4.3
commands =
pyinstrument --show='*/tlo/*' --interval=0.1 \
src/scripts/profiling/scale_run.py --years 5 --show-progress-bar
[testenv:clean]
commands = coverage erase
skip_install = true
deps = coverage