-
Notifications
You must be signed in to change notification settings - Fork 83
/
tox.ini
146 lines (135 loc) · 3.53 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
141
142
143
144
145
146
# Tox (http://tox.testrun.org/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.
[tox]
# To use a PEP 517 build-backend you are required to configure tox to use an isolated_build:
# https://tox.readthedocs.io/en/latest/example/package.html
isolated_build = True
skipsdist = True
envlist =
# always keep coverage-clean first
coverage-clean
lint
flake8
mypy
docstr-coverage
py
[testenv]
whitelist_externals =
poetry
commands =
poetry run pytest
description = Run unit tests with pytest. This is a special environment that does not get a name, and
can be referenced with "py".
[testenv:coverage-clean]
deps = coverage
skip_install = true
commands = coverage erase
[testenv:lint]
deps =
black
isort
skip_install = true
commands =
black src/ tests/
isort src/ tests/
description = Run linters.
[testenv:doclint]
deps =
rstfmt
skip_install = true
commands =
rstfmt docs/source/
description = Run documentation linters.
[testenv:flake8]
skip_install = true
deps =
darglint
flake8
flake8-black
flake8-bandit
flake8-bugbear
flake8-colors
flake8-docstrings
flake8-isort
flake8-print
pydocstyle
commands =
flake8 src/ tests/
description = Run the flake8 tool with several plugins (bandit, docstrings, import order, pep8 naming).
#########################
# Flake8 Configuration #
# (.flake8) #
#########################
[flake8]
exclude =
templates
max-line-length = 100
ignore =
# Missing parameter(s) in Docstring: - with_git_hash
DAR101
# Missing "Returns" in Docstring: - return
DAR201
# Missing "Yields" in Docstring: - yield
DAR301
# Missing exception(s) in Raises section: -r ValueError
DAR401
# indentation is not a multiple of 4
E111
# whitespace before ':'
E203
E721
# print found.
T201
# line break before binary operator
W503
# No blank lines allowed between a section header and its content
D412
# Pickle and modules that wrap it can be unsafe when used to deserialize
# untrusted data, possible security issue.
S301
# Consider possible security implications associated with pickle module.
S403
# Do not use bare `except:`
B001
# Do not perform function calls in argument defaults.
B008
B024
D101
D102
D103
D104
D105
# No blank lines allowed after function docstring
D202
# do not use bare 'except'
E722
F841
F821
# Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
S101
# Requests call without timeout
S113
# Try, Except, Pass detected.
S110
S311
[testenv:mypy]
deps = mypy
skip_install = true
commands = mypy --install-types --non-interactive --ignore-missing-imports --no-strict-optional --exclude 'src/ontogpt/templates/*' --follow-imports skip --no-warn-no-return src/
description = Run the mypy tool to check static typing on the project.
[testenv:docstr-coverage]
skip_install = true
deps =
docstr-coverage
commands =
docstr-coverage src/ tests/ --skip-private --skip-magic
description = Run the docstr-coverage tool to check documentation coverage
[testenv:codespell]
description = Run spell checker.
skip_install = true
deps =
codespell
tomli # required for getting config from pyproject.toml
commands = codespell src/ tests/ -S tests/input