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