This repository has been archived by the owner on Jun 19, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
pylintrc
288 lines (227 loc) · 12.1 KB
/
pylintrc
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
[MASTER]
reports=no
output-format=colorized
# INSPIRATION FROM: https://github.com/Yelp/pgctl/blob/050012b80dd612df21ec0a76df928fe9ecdd4736/pylintrc
# source: https://github.com/home-assistant/home-assistant/blob/dev/pylintrc
# Reasons disabled:
# locally-disabled - it spams too much
# duplicate-code - unavoidable
# cyclic-import - doesn't test if both import on load
# abstract-class-little-used - prevents from setting right foundation
# abstract-class-not-used - is flaky, should not show up but does
# unused-argument - generic callbacks and setup methods create a lot of warnings
# global-statement - used for the on-demand requirement installation
# redefined-variable-type - this is Python, we're duck typing!
# too-many-* - are not enforced for the sake of readability
# too-few-* - same as too-many-*
# abstract-method - with intro of async there are always methods missing
# logging-format-interpolation - (W1202): *Use % formatting in logging functions and pass the % parameters as arguments*
# invalid-name (C0103) - *Invalid %s name "%s"%s* Used when the name doesn't match the regular expression associated to its type (constant, variable, class...).
# logging-format-interpolation (W1202): - Use % formatting in logging functions and pass the % parameters as arguments Used when a logging statement has a call form of “logging.(format_string.format(format_args...))”. Such calls should use % formatting instead, but leave interpolation to the logging function by passing the parameters as arguments.
# disable=
# locally-disabled,
# duplicate-code,
# cyclic-import,
# abstract-class-little-used,
# abstract-class-not-used,
# unused-argument,
# global-statement,
# redefined-variable-type,
# too-many-arguments,
# too-many-branches,
# too-many-instance-attributes,
# too-many-locals,
# too-many-public-methods,
# too-many-return-statements,
# too-many-statements,
# too-few-public-methods,
# abstract-method,
# locally-disabled,
# abstract-method,
# logging-format-interpolation,
# invalid-name
[MESSAGES CONTROL]
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time. See also the "--disable" option for examples.
#enable=
# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifiers separated by comma (,) or put this
# option multiple times (only on the command line, not in the configuration
# file where it should appear only once).You can also use "--disable=all" to
# disable everything first and then reenable specific checks. For example, if
# you want to run only the similarities checker, you can use "--disable=all
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use"--disable=all --enable=classes
# --disable=W"
# SOURCE: https://github.com/Yelp/pgctl/blob/050012b80dd612df21ec0a76df928fe9ecdd4736/pylintrc
# bad-continuation (C0330): *Wrong %s indentation%s%s.*
# TODO
# fixme (W0511):
# Used when a warning note as FIXME or XXX is detected.
# :locally-disabled (I0011): *Locally disabling %s (%s)*
# Used when an inline option disables a message or a messages category.
# :missing-docstring (C0111): *Missing %s docstring*
# Used when a module, function, class or method has no docstring.Some special
# methods like __init__ doesnt necessary require a docstring.
# :no-init (W0232): *Class has no __init__ method*
# Used when a class has no __init__ method, neither its parent classes.
# :redefined-builtin (W0622): *Redefining built-in %r*
# Used when a variable or function override a built-in.
# :redefined-outer-name (W0621): *Redefining name %r from outer scope (line %s)*
# Used when a variables name hides a name defined in the outer scope.
# :function-redefined (E0102): *%s already defined line %s*
# Used when a function / class / method is redefined.
# :misplaced-comparison-constant (C0122): *Comparison should be %s*
# Used when the constant is placed on the left side of a comparison. It is
# usually clearer in intent to place it in the right hand side of the
# comparison.
# :useless-else-on-loop (W0120): *Else clause on loop without a break statement*
# Loops should only have an else clause if they can exit early with a break
# statement, otherwise the statements under else should be on the same scope as
# the loop itself.
# :unbalanced-tuple-unpacking (E0632): *Possible unbalanced tuple unpacking with sequence%s: left side # has %d label(s), rightside has %d value(s)*
# :no-else-return (R1705): *Unnecessary "else" after "return"*
# Used in order to highlight an unnecessary block of code following an if
# containing a return statement. As such, it will warn when it encounters an
# else following a chain of ifs, all of them containing a return statement.
disable=C0103,C0330,E0211,E0213,W0221,E0239,E0603,E0604,E0611,E1002,E1101,E1103,F0220,F0401,I0011,R0201,R0801,R0924,W0142,W0201,W0212,W0232,W0613,W0633,W0703,W1001,W1202,C0330,I0011,C0111,W0232,W0622,W0621,C0122,W0120,E0632,R1705
# disable=
# bad-continuation,
# fixme,
# locally-disabled,
# missing-docstring,
# no-init,
# redefined-builtin,
# redefined-outer-name,
# redefined-variable-type,
# star-args,
# misplaced-comparison-constant,
# wrong-import-order,
# useless-else-on-loop,
# unbalanced-tuple-unpacking,
# no-else-return
#:C0103 (invalid-name): *Invalid %s name "%s"*
#Used when the name doesn't match the regular expression associated to its type
#(constant, variable, class...). This message belongs to the basic checker.
#:C0330 bad-continuation: Wrong %s indentation%s.
#:E0211 Method has no argument
#:E0213 Method should have "self" as first argument
#:W0221 Arguments number differs from overridden '__call__' method
#:E0239 Inheriting 'Interface', which is not a class.
#:E0603(undefined-all-variable), ] Undefined variable name in __all__
# Complains when we have module.__name__ in __all__
#:E0604 (invalid-all-object): *Invalid object %r in __all__, must contain only strings*
#Used when an invalid (non-string) object occurs in __all__. This message belongs to the variables checker.
#:E0611 (no-name-in-module): *No name %r in module %r*
#Used when a name cannot be found in a module. This message belongs to the variables checker.
#:E1002 (super-on-old-class): *Use of super on an old style class*
#Used when an old style class uses the super builtin. This message belongs to the newstyle checker.
#:E1101 (no-member): *%s %r has no %r member*
#Used when a variable is accessed for an unexistent member. This message belongs to the typecheck checker.
#:E1103 (maybe-no-member): *%s %r has no %r member (but some types could not be inferred)*
#Used when a variable is accessed for an unexistent member, but astroid was not
#able to interpret all possible types of this variable. This message belongs to the typecheck checker.
#:F0220 (unresolved-interface): *failed to resolve interfaces implemented by %s (%s)*
#Used when a PyLint as failed to find interfaces implemented by a class This message belongs to the classes checker.
#:F0401 (import-error): *Unable to import %s*
#Used when pylint has been unable to import a module. This message belongs to the imports checker.
#:I0011 (locally-disabled): Locally disabling %s
# Used when an inline option disables a message or a messages category.
#:R0201 (no-self-use): *Method could be a function*
#Used when a method doesn't use its bound instance, and so could be written as
#a function. This message belongs to the classes checker.
#:R0801 (duplicate-code): *Similar lines in %s files*
#Indicates that a set of similar lines has been detected among multiple file.
#This usually means that the code should be refactored to avoid this
#duplication. This message belongs to the similarities checker.
#:R0924 (incomplete-protocol): *Badly implemented %s, implements %s but not %s*
#A class implements some of the special methods for a particular protocol, but
#not all of them This message belongs to the design checker.
#:W0142 (star-args): *Used * or ** magic*
#Used when a function or method is called using `*args` or `**kwargs` to
#dispatch arguments. This doesn't improve readability and should be used with
#care. This message belongs to the basic checker.
#:W0201 (attribute-defined-outside-init): *Attribute %r defined outside __init__*
#Used when an instance attribute is defined outside the __init__ method. This message belongs to the classes checker.
#:W0212 (protected-access): *Access to a protected member %s of a client class*
#Used when a protected member (i.e. class member with a name beginning with an
#underscore) is access outside the class or a descendant of the class where
#it's defined. This message belongs to the classes checker.
#:W0232 (no-init): *Class has no __init__ method*
#Used when a class has no __init__ method, neither its parent classes. This message belongs to the classes checker.
#:W0613 (unused-argument): *Unused argument %r*
#Used when a function or method argument is not used. This message belongs to the variables checker.
#:W0633 (unpacking-non-sequence): Attempting to unpack a non-sequence%s
#Used when something which is not a sequence is used in an unpack assignment
#:W0703 (broad-except): *Catching too general exception %s*
#Used when an except catches a too general exception, possibly burying
#unrelated errors. This message belongs to the exceptions checker.
#:W1001 (property-on-old-class): *Use of "property" on an old style class*
#Used when PyLint detect the use of the builtin "property" on an old style
#class while this is relying on new style classes features This message belongs to the newstyle checker.
[BASIC]
# Good variable names which should always be accepted, separated by a comma
good-names=i,j,k,ex,Run,_,fd
# Regular expression matching correct constant names
#const-rgx=(([A-Za-z_][A-Za-z0-9_]*)|(__.*__))$
const-rgx=(([A-Za-z_][A-Za-z0-9_]*)|(__.*__))$
# Regular expression matching correct function names
#function-rgx=[a-z_][a-z0-9_]{2,30}$
function-rgx=[a-z_][a-z0-9_]{2,60}$
# Regular expression matching correct method names
#method-rgx=[a-z_][a-z0-9_]{2,30}$
method-rgx=(%(function-rgx)s|%(const-rgx)s)
# Regular expression matching correct variable names
#variable-rgx=[a-z_][a-z0-9_]{2,30}$
variable-rgx=[a-z_][a-z0-9_]{0,30}$
# Regular expression matching correct class names
#class-rgx=[A-Z_][a-zA-Z0-9]+$
class-rgx=%(const-rgx)s
[TYPECHECK]
# List of classes names for which member attributes should not be checked
# (useful for classes with attributes dynamically set).
ignored-classes=pytest,LocalPath,_MovedItems
[VARIABLES]
# A regular expression matching the name of dummy variables (i.e. expectedly
# not used).
dummy-variables-rgx=_$|dummy|^unused|fake
# List of strings which can identify a callback function by name. A callback
# name must start or end with one of those strings.
callbacks=cb_,_cb
[SIMILARITIES]
# Minimum lines number of a similarity.
min-similarity-lines=5
# Ignore comments when computing similarities.
ignore-comments=yes
# Ignore docstrings when computing similarities.
ignore-docstrings=yes
# Ignore imports when computing similarities.
ignore-imports=no
[DESIGN]
# Minimum number of public methods for a class (see R0903).
min-public-methods=0
# Maximum number of arguments for function / method
max-args=12
[EXCEPTIONS]
overgeneral-exceptions=Exception,ScarlettError
[FORMAT]
# Maximum number of characters on a single line.
max-line-length=200
# Maximum number of lines in a module
max-module-lines=2000
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
# tab).
indent-string=' '
# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
# Allow the body of an if to be on the same line as the test if there is no
# else.
single-line-if-stmt=no
# List of optional constructs for which whitespace checking is disabled
no-space-check=trailing-comma,dict-separator
# Number of spaces of indent required inside a hanging or continued line.
indent-after-paren=4
# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
expected-line-ending-format=
# vim:ft=dosini: