-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.flake8
More file actions
172 lines (154 loc) · 5.01 KB
/
Copy path.flake8
File metadata and controls
172 lines (154 loc) · 5.01 KB
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
[flake8]
# Print the total number of errors:
count = true
# Don't even try to analyze these:
extend-exclude =
# Circle CI configs
.circleci,
# No need to traverse egg info dir
*.egg-info,
# GitHub configs
.github,
# Cache files of MyPy
.mypy_cache,
# Cache files of pytest
.pytest_cache,
# Temp dir of pytest-testmon
.tmontmp,
# Countless third-party libs in venvs
.tox,
# Occasional virtualenv dir
.venv,
# VS Code
.vscode,
# Temporary build dir
build,
# This contains sdists and wheels that we don't want to check
dist,
# Metadata of `pip wheel` cmd is autogenerated
pip-wheel-metadata,
# IMPORTANT: avoid using ignore option, always use extend-ignore instead
# Completely and unconditionally ignore the following errors:
extend-ignore =
# Legitimate cases, no need to "fix" these violations:
# E501: "line too long", its function is replaced by `flake8-length`
E501,
# I: isort-handled
I,
# W505: "doc line too long", its function is replaced by `flake8-length`
W505,
# S101: MyPy requires `asserts`, plus they're not bad if cooked well
S101,
# WPS300: "Found local folder import" -- nothing bad about this
WPS300,
# WPS305: "Found f string" -- nothing bad about this
WPS305,
# An opposite consistency expectation is currently enforced
# by pylint via: useless-object-inheritance (R0205):
# WPS306: "Found class without a base class: *" -- nothing bad about this
WPS306,
# WPS317 enforces weird indents
WPS317,
# WPS318 enforces weird indents too
WPS318,
# WPS322: "Found incorrect multi-line string" -- false-positives with
# attribute docstrings. Ref:
# https://github.com/wemake-services/wemake-python-styleguide/issues/3056
WPS322,
# WPS326: "Found implicit string concatenation" -- nothing bad about this
WPS326,
# WPS332: "Found walrus operator" -- nothing bad about this
WPS332,
# WPS422: "Found future import: *" -- we need these for multipython
WPS422,
# WPS428: "Found statement that has no effect" -- false-positives with
# attribute docstrings. Ref:
# https://github.com/wemake-services/wemake-python-styleguide/issues/3056
WPS428,
# WPS462: "Wrong multiline string usage" -- false-positives with
# attribute docstrings. Ref:
# https://github.com/wemake-services/wemake-python-styleguide/issues/3056
WPS462,
# IMPORTANT: avoid using select option, always use extend-select instead
# Enable the following errors:
extend-select =
# B950: "line too long", longer than `max-line-length` + 10%
B950,
# https://wemake-python-stylegui.de/en/latest/pages/usage/formatter.html
format = wemake
# Let's not overcomplicate the code:
max-complexity = 10
# Accessibility/large fonts and PEP8 friendly.
# This is being flexibly extended through the `flake8-length`:
max-line-length = 79
# Allow certain violations in certain files:
# Please keep both sections of this list sorted, as it will be easier for others to find and add entries in the future
per-file-ignores =
# The following ignores have been researched and should be considered permanent
# each should be preceded with an explanation of each of the error codes
# If other ignores are added for a specific file in the section following this,
# these will need to be added to that line as well.
# There are multiple `assert`s (S101) in tests;
# we don't care about the security of temporary directories in tests (S108);
# also, using fixtures looks like shadowing the outer scope (WPS442);
# nested functions are often necessary for mocking (WPS430);
# furthermore, we should be able to import and test private attributes
# (WPS450) and modules (WPS436); `pytest.raises()` allows inspecting the
# exception outside the CM (WPS441); additionally test docstrings don't
# need param lists (DAR, DCO020); parametrized tests that also take
# pytest fixtures legitimately end up with many args (WPS211):
tests/**.py: DAR, DCO020, S101, S108, WPS211, WPS430, WPS436, WPS441, WPS442, WPS450
tests/importable_test.py: ANN101, DAR
# Count the number of occurrences of each error/warning code and print a report:
statistics = true
# ## Plugin-provided settings: ##
# flake8-eradicate
# E800:
eradicate-whitelist-extend = isort:\s+\w+|(Ref:|\*)\s+https?:\/\/
# flake8-pytest-style
# PT001:
pytest-fixture-no-parentheses = true
# PT006:
pytest-parametrize-names-type = tuple
# PT007:
pytest-parametrize-values-type = tuple
pytest-parametrize-values-row-type = tuple
# PT023:
pytest-mark-no-parentheses = true
# flake8-quotes
inline-quotes = single
multiline-quotes = double
docstring-quotes = double
# flake8-rst-docstrings
rst-directives =
spelling
rst-roles =
# Built-in Sphinx roles:
class,
data,
file,
func,
exc,
meth,
mod,
term,
py:class,
py:data,
py:exc,
py:func,
py:meth,
py:term,
# Sphinx's internal role:
event,
# flake8-typing-as-t
# TYT02:
typing-as-t-imported-name = _t
# wemake-python-styleguide
# WPS111:
# `_t` will be enforced by `flake8-typing-as-t`
allowed-domain-names =
_t,
_c,
i-control-code = false
show-violation-links = true
show-source = true