-
Notifications
You must be signed in to change notification settings - Fork 2
/
tox.ini
105 lines (93 loc) · 2.58 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
; By default, testenvs are configured to:
; - don't skip dist (skipsdist = False)
; - don't skip the package installation (skip_install = False)
; - don't use source installation (usedevelop = False)
; where one of those steps is not necessary for the test,
; we set the associated flag (e.g. for linting we don't need
; the package installation).
[tox]
envlist = bandit, safety, black, black-check, isort, isort-check, flake8, mypy, pylint, darglint, py{3.7,3.8,3.9,3.10}-{win,linux,darwin}
; when running locally we don't want to fail for no good reason
skip_missing_interpreters = true
[testenv]
basepython = python3
whitelist_externals = /bin/sh
passenv = *
extras = all
setenv =
PYTHONHASHSEED=0
[testenv:bandit]
skipsdist = True
skip_install = True
deps =
tomte[bandit]==0.2.15
commands = bandit -s B101 -r packages
[testenv:black]
skipsdist = True
skip_install = True
deps =
tomte[black]==0.2.15
commands = black packages
[testenv:black-check]
skipsdist = True
skip_install = True
deps =
tomte[black]==0.2.15
commands = black --check packages
[testenv:isort]
skipsdist = True
skip_install = True
deps = tomte[isort]==0.2.14
commands =
isort packages --gitignore
[testenv:isort-check]
skipsdist = True
skip_install = True
deps = tomte[isort]==0.2.14
commands =
isort --check-only packages --gitignore
[testenv:flake8]
skipsdist = True
skip_install = True
deps =
tomte[flake8]==0.2.15
commands = flake8 packages
[testenv:safety]
skipsdist = True
skip_install = True
deps = tomte[safety]==0.2.14
commands = safety check -i 37524 -i 38038 -i 37776 -i 38039 -i 39621 -i 40291 -i 39706 -i 41002 -i 51358 -i 51499
[flake8]
paths=packages
exclude=.md,
*_pb2.py,
*_pb2_grpc.py
max-line-length = 88
select = B,C,D,E,F,I,W,
ignore = E203,E501,W503,D202,B014,D400,D401,DAR
application-import-names = packages
# ignore as too restrictive for our needs:
# D400: First line should end with a period
# D401: First line should be in imperative mood
# E501: https://www.flake8rules.com/rules/E501.html (Line too long)
# E203: https://www.flake8rules.com/rules/E203.html (Whitespace)
# W503: https://www.flake8rules.com/rules/W503.html (Line break)
# D202: blank lines
# B014: redundant exception
[isort]
# for black compatibility
multi_line_output=3
include_trailing_comma=True
force_grid_wrap=0
use_parentheses=True
ensure_newline_before_comments = True
line_length=88
# custom configurations
order_by_type=False
case_sensitive=True
lines_after_imports=2
skip_glob =
known_first_party=autonomy
known_packages=packages
known_local_folder=tests
sections=FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,PACKAGES,LOCALFOLDER