xref: /aosp_15_r20/system/apex/pylintrc (revision 33f3758387333dbd2962d7edbd98681940d895da)
1# This Pylint rcfile contains a best-effort configuration to uphold the
2# best-practices and style described in the Google Python style guide:
3#   https://google.github.io/styleguide/pyguide.html
4#
5# Its canonical open-source location is:
6#   https://google.github.io/styleguide/pylintrc
7
8[MASTER]
9
10# Add files or directories to the blacklist. They should be base names, not
11# paths.
12ignore=third_party
13
14# Add files or directories matching the regex patterns to the blacklist. The
15# regex matches against base names, not paths.
16ignore-patterns=
17
18# Pickle collected data for later comparisons.
19persistent=no
20
21# List of plugins (as comma separated values of python modules names) to load,
22# usually to register additional checkers.
23load-plugins=
24
25# Use multiple processes to speed up Pylint.
26jobs=4
27
28# Allow loading of arbitrary C extensions. Extensions are imported into the
29# active Python interpreter and may run arbitrary code.
30unsafe-load-any-extension=no
31
32# A comma-separated list of package or module names from where C extensions may
33# be loaded. Extensions are loading into the active Python interpreter and may
34# run arbitrary code
35extension-pkg-whitelist=
36
37
38[MESSAGES CONTROL]
39
40# Only show warnings with the listed confidence levels. Leave empty to show
41# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED
42confidence=
43
44# Enable the message, report, category or checker with the given id(s). You can
45# either give multiple identifier separated by comma (,) or put this option
46# multiple time (only on the command line, not in the configuration file where
47# it should appear only once). See also the "--disable" option for examples.
48#enable=
49
50# Disable the message, report, category or checker with the given id(s). You
51# can either give multiple identifiers separated by comma (,) or put this
52# option multiple times (only on the command line, not in the configuration
53# file where it should appear only once).You can also use "--disable=all" to
54# disable everything first and then reenable specific checks. For example, if
55# you want to run only the similarities checker, you can use "--disable=all
56# --enable=similarities". If you want to run only the classes checker, but have
57# no Warning level messages displayed, use"--disable=all --enable=classes
58# --disable=W"
59disable=abstract-method,
60        apply-builtin,
61        arguments-differ,
62        attribute-defined-outside-init,
63        backtick,
64        bad-option-value,
65        basestring-builtin,
66        buffer-builtin,
67        c-extension-no-member,
68        consider-using-enumerate,
69        cmp-builtin,
70        cmp-method,
71        coerce-builtin,
72        coerce-method,
73        delslice-method,
74        div-method,
75        duplicate-code,
76        eq-without-hash,
77        execfile-builtin,
78        file-builtin,
79        filter-builtin-not-iterating,
80        fixme,
81        getslice-method,
82        global-statement,
83        hex-method,
84        idiv-method,
85        implicit-str-concat-in-sequence,
86        import-error,
87        import-self,
88        import-star-module-level,
89        inconsistent-return-statements,
90        input-builtin,
91        intern-builtin,
92        invalid-str-codec,
93        locally-disabled,
94        long-builtin,
95        long-suffix,
96        map-builtin-not-iterating,
97        misplaced-comparison-constant,
98        missing-function-docstring,
99        metaclass-assignment,
100        next-method-called,
101        next-method-defined,
102        no-absolute-import,
103        no-else-break,
104        no-else-continue,
105        no-else-raise,
106        no-else-return,
107        no-init,  # added
108        no-member,
109        no-name-in-module,
110        no-self-use,
111        nonzero-method,
112        oct-method,
113        old-division,
114        old-ne-operator,
115        old-octal-literal,
116        old-raise-syntax,
117        parameter-unpacking,
118        print-statement,
119        raising-string,
120        range-builtin-not-iterating,
121        raw_input-builtin,
122        rdiv-method,
123        reduce-builtin,
124        relative-import,
125        reload-builtin,
126        round-builtin,
127        setslice-method,
128        signature-differs,
129        standarderror-builtin,
130        suppressed-message,
131        sys-max-int,
132        too-few-public-methods,
133        too-many-ancestors,
134        too-many-arguments,
135        too-many-boolean-expressions,
136        too-many-branches,
137        too-many-instance-attributes,
138        too-many-locals,
139        too-many-nested-blocks,
140        too-many-public-methods,
141        too-many-return-statements,
142        too-many-statements,
143        trailing-newlines,
144        unichr-builtin,
145        unicode-builtin,
146        unnecessary-pass,
147        unpacking-in-except,
148        useless-else-on-loop,
149        useless-object-inheritance,
150        useless-suppression,
151        using-cmp-argument,
152        wrong-import-order,
153        xrange-builtin,
154        zip-builtin-not-iterating,
155
156
157[REPORTS]
158
159# Set the output format. Available formats are text, parseable, colorized, msvs
160# (visual studio) and html. You can also give a reporter class, eg
161# mypackage.mymodule.MyReporterClass.
162output-format=text
163
164# Tells whether to display a full report or only the messages
165reports=no
166
167# Python expression which should return a note less than 10 (10 is the highest
168# note). You have access to the variables errors warning, statement which
169# respectively contain the number of errors / warnings messages and the total
170# number of statements analyzed. This is used by the global evaluation report
171# (RP0004).
172evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
173
174# Template used to display messages. This is a python new-style format string
175# used to format the message information. See doc for all details
176#msg-template=
177
178
179[BASIC]
180
181# Good variable names which should always be accepted, separated by a comma
182good-names=main,_
183
184# Bad variable names which should always be refused, separated by a comma
185bad-names=
186
187# Colon-delimited sets of names that determine each other's naming style when
188# the name regexes allow several styles.
189name-group=
190
191# Include a hint for the correct naming format with invalid-name
192include-naming-hint=no
193
194# List of decorators that produce properties, such as abc.abstractproperty. Add
195# to this list to register other decorators that produce valid properties.
196property-classes=abc.abstractproperty,cached_property.cached_property,cached_property.threaded_cached_property,cached_property.cached_property_with_ttl,cached_property.threaded_cached_property_with_ttl
197
198# Regular expression matching correct function names
199function-rgx=^(?:(?P<exempt>setUp|tearDown|setUpModule|tearDownModule)|(?P<camel_case>_?[A-Z][a-zA-Z0-9]*)|(?P<snake_case>_?[a-z][a-z0-9_]*))$
200
201# Regular expression matching correct variable names
202variable-rgx=^[a-z][a-z0-9_]*$
203
204# Regular expression matching correct constant names
205const-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$
206
207# Regular expression matching correct attribute names
208attr-rgx=^_{0,2}[a-z][a-z0-9_]*$
209
210# Regular expression matching correct argument names
211argument-rgx=^[a-z][a-z0-9_]*$
212
213# Regular expression matching correct class attribute names
214class-attribute-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$
215
216# Regular expression matching correct inline iteration names
217inlinevar-rgx=^[a-z][a-z0-9_]*$
218
219# Regular expression matching correct class names
220class-rgx=^_?[A-Z][a-zA-Z0-9]*$
221
222# Regular expression matching correct module names
223module-rgx=^(_?[a-z][a-z0-9_]*|__init__)$
224
225# Regular expression matching correct method names
226method-rgx=(?x)^(?:(?P<exempt>_[a-z0-9_]+__|runTest|setUp|tearDown|setUpTestCase|tearDownTestCase|setupSelf|tearDownClass|setUpClass|(test|assert)_*[A-Z0-9][a-zA-Z0-9_]*|next)|(?P<camel_case>_{0,2}[A-Z][a-zA-Z0-9_]*)|(?P<snake_case>_{0,2}[a-z][a-z0-9_]*))$
227
228# Regular expression which should only match function or class names that do
229# not require a docstring.
230no-docstring-rgx=(__.*__|main|test.*|.*test|.*Test)$
231
232# Minimum line length for functions/classes that require docstrings, shorter
233# ones are exempt.
234docstring-min-length=10
235
236
237[TYPECHECK]
238
239# List of decorators that produce context managers, such as
240# contextlib.contextmanager. Add to this list to register other decorators that
241# produce valid context managers.
242contextmanager-decorators=contextlib.contextmanager,contextlib2.contextmanager
243
244# Tells whether missing members accessed in mixin class should be ignored. A
245# mixin class is detected if its name ends with "mixin" (case insensitive).
246ignore-mixin-members=yes
247
248# List of module names for which member attributes should not be checked
249# (useful for modules/projects where namespaces are manipulated during runtime
250# and thus existing member attributes cannot be deduced by static analysis. It
251# supports qualified module names, as well as Unix pattern matching.
252ignored-modules=
253
254# List of class names for which member attributes should not be checked (useful
255# for classes with dynamically set attributes). This supports the use of
256# qualified names.
257ignored-classes=optparse.Values,thread._local,_thread._local
258
259# List of members which are set dynamically and missed by pylint inference
260# system, and so shouldn't trigger E1101 when accessed. Python regular
261# expressions are accepted.
262generated-members=
263
264
265[FORMAT]
266
267# Maximum number of characters on a single line.
268max-line-length=100
269
270# TODO(https://github.com/PyCQA/pylint/issues/3352): Direct pylint to exempt
271# lines made too long by directives to pytype.
272
273# Regexp for a line that is allowed to be longer than the limit.
274ignore-long-lines=(?x)(
275  ^\s*(\#\ )?<?https?://\S+>?$|
276  ^\s*(from\s+\S+\s+)?import\s+.+$)
277
278# Allow the body of an if to be on the same line as the test if there is no
279# else.
280single-line-if-stmt=yes
281
282# Maximum number of lines in a module
283max-module-lines=99999
284
285# String used as indentation unit.  The internal Google style guide mandates 2
286# spaces.  Google's externaly-published style guide says 4, consistent with
287# PEP 8.  Here, we use 2 spaces, for conformity with many open-sourced Google
288# projects (like TensorFlow).
289indent-string='  '
290
291# Number of spaces of indent required inside a hanging  or continued line.
292indent-after-paren=4
293
294# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
295expected-line-ending-format=
296
297
298[MISCELLANEOUS]
299
300# List of note tags to take in consideration, separated by a comma.
301notes=TODO
302
303
304[STRING]
305
306# This flag controls whether inconsistent-quotes generates a warning when the
307# character used as a quote delimiter is used inconsistently within a module.
308check-quote-consistency=yes
309
310
311[VARIABLES]
312
313# Tells whether we should check for unused import in __init__ files.
314init-import=no
315
316# A regular expression matching the name of dummy variables (i.e. expectedly
317# not used).
318dummy-variables-rgx=^\*{0,2}(_$|unused_|dummy_)
319
320# List of additional names supposed to be defined in builtins. Remember that
321# you should avoid to define new builtins when possible.
322additional-builtins=
323
324# List of strings which can identify a callback function by name. A callback
325# name must start or end with one of those strings.
326callbacks=cb_,_cb
327
328# List of qualified module names which can have objects that can redefine
329# builtins.
330redefining-builtins-modules=six,six.moves,past.builtins,future.builtins,functools
331
332
333[LOGGING]
334
335# Logging modules to check that the string format arguments are in logging
336# function parameter format
337logging-modules=logging,absl.logging,tensorflow.io.logging
338
339
340[SIMILARITIES]
341
342# Minimum lines number of a similarity.
343min-similarity-lines=4
344
345# Ignore comments when computing similarities.
346ignore-comments=yes
347
348# Ignore docstrings when computing similarities.
349ignore-docstrings=yes
350
351# Ignore imports when computing similarities.
352ignore-imports=no
353
354
355[SPELLING]
356
357# Spelling dictionary name. Available dictionaries: none. To make it working
358# install python-enchant package.
359spelling-dict=
360
361# List of comma separated words that should not be checked.
362spelling-ignore-words=
363
364# A path to a file that contains private dictionary; one word per line.
365spelling-private-dict-file=
366
367# Tells whether to store unknown words to indicated private dictionary in
368# --spelling-private-dict-file option instead of raising a message.
369spelling-store-unknown-words=no
370
371
372[IMPORTS]
373
374# Deprecated modules which should not be used, separated by a comma
375deprecated-modules=regsub,
376                   TERMIOS,
377                   Bastion,
378                   rexec,
379                   sets
380
381# Create a graph of every (i.e. internal and external) dependencies in the
382# given file (report RP0402 must not be disabled)
383import-graph=
384
385# Create a graph of external dependencies in the given file (report RP0402 must
386# not be disabled)
387ext-import-graph=
388
389# Create a graph of internal dependencies in the given file (report RP0402 must
390# not be disabled)
391int-import-graph=
392
393# Force import order to recognize a module as part of the standard
394# compatibility libraries.
395known-standard-library=
396
397# Force import order to recognize a module as part of a third party library.
398known-third-party=enchant, absl
399
400# Analyse import fallback blocks. This can be used to support both Python 2 and
401# 3 compatible code, which means that the block might have code that exists
402# only in one or another interpreter, leading to false positives when analysed.
403analyse-fallback-blocks=no
404
405
406[CLASSES]
407
408# List of method names used to declare (i.e. assign) instance attributes.
409defining-attr-methods=__init__,
410                      __new__,
411                      setUp
412
413# List of member names, which should be excluded from the protected access
414# warning.
415exclude-protected=_asdict,
416                  _fields,
417                  _replace,
418                  _source,
419                  _make
420
421# List of valid names for the first argument in a class method.
422valid-classmethod-first-arg=cls,
423                            class_
424
425# List of valid names for the first argument in a metaclass class method.
426valid-metaclass-classmethod-first-arg=mcs
427
428
429[EXCEPTIONS]
430
431# Exceptions that will emit a warning when being caught. Defaults to
432# "Exception"
433overgeneral-exceptions=builtins.StandardError,
434                       builtins.Exception,
435                       builtins.BaseException
436