-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
105 lines (93 loc) · 2.22 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
[base]
name = bbp_workflow
testdeps =
-rrequirements.txt
pytest
files = {[base]name} tests doc/source/conf.py
[tox]
envlist =
check-packaging
lint
py{310,311,312}
[testenv]
deps = {[base]testdeps}
commands = pytest tests {posargs}
[testenv:check-packaging]
skip_install = true
deps =
wheel
twine
build
commands_pre =
rm -rf {envtmpdir}/dist
commands =
python -m build --outdir {envtmpdir}/dist
twine check {envtmpdir}/dist/*
allowlist_externals = rm
[testenv:lint]
usedevelop = true
deps =
{[base]testdeps}
pycodestyle
pydocstyle
pylint
codespell
isort
black
commands =
codespell {[base]files}
isort --check-only --diff {[base]files}
black --check {[base]files}
pycodestyle {[base]name}
pydocstyle {[base]name}
pylint {[base]name}
[testenv:format]
deps =
{[base]testdeps}
autoflake
codespell
isort
black
commands =
autoflake -ir --remove-all-unused-imports --ignore-init-module-imports {[base]name}
codespell -i 2 -w {[base]files}
isort {[base]files}
black {[base]files}
[testenv:coverage]
deps =
{[base]testdeps}
coverage
commands =
coverage run --source={[base]name} -m pytest tests/
coverage report --show-missing
coverage xml
[testenv:docs]
changedir = doc
extras = docs
commands = make html SPHINXOPTS=-W
allowlist_externals = make
[testenv:upgrade-requirements]
description = Create or update requirements.txt, using the latest version of dependencies
skip_install = True
deps = pip-tools
commands = python -m piptools compile --upgrade
# E203: whitespace before ':'
# E731: do not assign a lambda expression, use a def
# W503: line break after binary operator
# W504: line break before binary operator
[pycodestyle]
ignore = E203,E731,W503,W504
max-line-length = 100
[pydocstyle]
# ignore the following
# - D102: Missing docstring in public method
# - D107: Missing docstring in __init__
# - D300: Use """triple double quotes""" (found "-quotes)
# - D301: Use r""" if any backslashes in a docstring
# - D413: no blank line afer last section
# - D419: Docstring is empty
add-ignore = D102,D107,D300,D301,D413,D419
[gh-actions]
python =
3.11: py311, lint, check-packaging
3.12: py312