-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
173 lines (159 loc) · 3.09 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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
[tox]
requires =
tox>=4.2
env_list =
flake8
docs
pytest
pre-commit
mypy
bandit
vermin
clean
[testenv:flake8]
skip_install = true
deps =
flake8
flake8-aaa
flake8-all-not-strings
flake8-broken-line
flake8-bugbear
flake8-builtins
flake8-class-attributes-order
flake8-cognitive-complexity
flake8-commas
flake8-comprehensions
flake8-debugger
flake8-docstrings>=1.3.1
flake8-dunder-all
flake8-encodings
flake8-eradicate
flake8-expression-complexity
flake8-functions
flake8-functions-names[all]
flake8-isort
flake8-length
flake8-logging
flake8-logging-format
flake8-multiline-containers
flake8-mutable
flake8-newspaper-style
flake8-noqa
flake8-picky-parentheses
flake8-print
flake8-pytest-style
flake8-quotes
flake8-return
flake8-rst-docstrings
flake8-simplify
flake8-string-format
flake8-todos
flake8-typing-imports>=1.1
flake8-useless-assert
flake8-variables-names
flake8-warnings
mccabe
pep8-naming
pydoclint[flake8]
tryceratops
commands =
flake8
[testenv:docs]
skip_install = true
deps =
-r docs/source/requirements.txt
commands =
python -c "import os; os.makedirs('docs/source/gherkin', exist_ok=True)"
sphinx-gherkindoc tests/features docs/source/gherkin
sphinx-build -M html docs/source docs/build
[testenv:pytest]
deps =
pytest
pytest-archon
pytest-bdd
pytest-check
pytest-clarity
pytest-cov
pytest-sugar
commands =
pytest
python -m doctest README.md
depends =
clean
[testenv:pre-commit]
skip_install = true
deps =
pre-commit
commands =
pre-commit run --all-files
[testenv:mypy]
skip_install = false
deps =
mypy
commands =
mypy
[testenv:bandit]
skip_install = true
deps =
bandit
commands =
bandit -c pyproject.toml -r src/annual/
[testenv:vermin]
skip_install = true
deps =
vermin
commands =
vermin -t=3.11- --backport dataclasses --violations src/annual
[testenv:clean]
skip_install = true
deps =
coverage
commands =
coverage erase
[testenv:mut]
deps =
poodle
pytest-bdd
pytest-cov
commands =
poodle src
[flake8]
doctests = true
min-python-version = 3.11
per-file-ignores =
tests/test_*.py: DALL000
src/annual/*.py: D107
src/annual/ruleparser.py: FNE005, FNE007, N802
docs/source/conf.py: A001, VNE003
style = numpy
[pytest]
testpaths =
tests
minversion = 6.0
usedevelop = true
filterwarnings = ignore
addopts = -v -ra -q --cov --cov-append --cov-report term-missing --cov-report xml:coverage.xml --doctest-modules --pyargs annual tests
log_cli = True
log_cli_level = INFO
log_format = %(asctime)s %(levelname)s %(message)s
log_date_format = %Y-%m-%d %H:%M:%S
norecursedirs =
build
docs
bdd_features_base_dir = tests/features
doctest_optionflags =
NORMALIZE_WHITESPACE
DONT_ACCEPT_TRUE_FOR_1
ELLIPSIS
IGNORE_EXCEPTION_DETAIL
[coverage:run]
branch = True
source_pkgs =
annual
omit = tests/*
[coverage:report]
fail_under = 75
[coverage:paths]
source =
src
*/site-packages