| # | |
| # Licensed to the Apache Software Foundation (ASF) under one or more | |
| # contributor license agreements. See the NOTICE file distributed with | |
| # this work for additional information regarding copyright ownership. | |
| # The ASF licenses this file to You under the Apache License, Version 2.0 | |
| # (the "License"); you may not use this file except in compliance with | |
| # the License. You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| # | |
| [MAIN] | |
| # Ignore auto-generated files. | |
| ignore=clients,cloudbuild,s3 | |
| load-plugins=pylint.extensions.no_self_use,pylint.extensions.bad_builtin | |
| [BASIC] | |
| # Regular expression which should only match the name | |
| # of functions or classes which do not require a docstring. | |
| no-docstring-rgx=(__.*__|main) | |
| # Min length in lines of a function that requires a docstring. | |
| docstring-min-length=10 | |
| # Regular expression which should only match correct module names. The | |
| # leading underscore is sanctioned for private modules by Google's style | |
| # guide. | |
| # | |
| # There are exceptions to the basic rule (_?[a-z][a-z0-9_]*) to cover | |
| # requirements of Python's module system and of the presubmit framework. | |
| module-rgx=^(_?[a-z][a-z0-9_]*)|__init__|PRESUBMIT|PRESUBMIT_unittest$ | |
| # Regular expression which should only match correct module level names | |
| const-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$ | |
| # Regular expression which should only match correct class attribute | |
| class-attribute-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$ | |
| # Regular expression which should only match correct class names | |
| class-rgx=^_?[A-Z][a-zA-Z0-9]*$ | |
| # Regular expression which should only match correct function names. | |
| # 'camel_case' and 'snake_case' group names are used for consistency of naming | |
| # styles across functions and methods. | |
| function-rgx=^(?:(?P<camel_case>_?[A-Z][a-zA-Z0-9]*)|(?P<snake_case>_?[a-z][a-z0-9_]*))$ | |
| # Regular expression which should only match correct method names. | |
| # 'camel_case' and 'snake_case' group names are used for consistency of naming | |
| # styles across functions and methods. 'exempt' indicates a name which is | |
| # consistent with all naming styles. | |
| method-rgx=^(?:(?P<exempt>__[a-z0-9_]+__|next)|(?P<camel_case>_{0,2}[A-Z][a-zA-Z0-9]*)|(?P<snake_case>_{0,2}[a-z][a-z0-9_]*))$ | |
| # Regular expression which should only match correct instance attribute names | |
| attr-rgx=^_{0,2}[a-z][a-z0-9_]*$ | |
| # Regular expression which should only match correct argument names | |
| argument-rgx=^[a-z][a-z0-9_]*$ | |
| # Regular expression which should only match correct variable names | |
| variable-rgx=^[a-z][a-z0-9_]*$ | |
| # Regular expression which should only match correct list comprehension / | |
| # generator expression variable names | |
| inlinevar-rgx=^[a-z][a-z0-9_]*$ | |
| # List of builtins function names that should not be used, separated by a comma | |
| bad-functions=input,apply,reduce | |
| # Good variable names which should always be accepted, separated by a comma | |
| good-names=main,_ | |
| # Bad variable names which should always be refused, separated by a comma | |
| bad-names= | |
| [MESSAGES CONTROL] | |
| disable = | |
| abstract-method, | |
| abstract-class-instantiated, | |
| arguments-differ, | |
| arguments-renamed, | |
| attribute-defined-outside-init, | |
| bad-builtin, | |
| broad-except, | |
| broad-exception-raised, | |
| c-extension-no-member, | |
| comparison-with-callable, | |
| consider-iterating-dictionary, | |
| consider-using-dict-items, | |
| consider-using-enumerate, | |
| consider-using-f-string, | |
| consider-using-from-import, | |
| consider-using-generator, | |
| consider-using-in, | |
| consider-using-max-builtin, | |
| consider-using-min-builtin, | |
| consider-using-sys-exit, | |
| consider-using-with, | |
| cyclic-import, | |
| deprecated-method, | |
| deprecated-module, | |
| design, | |
| fixme, | |
| function-redefined, | |
| global-statement, | |
| global-variable-undefined, | |
| import-error, | |
| import-outside-toplevel, | |
| import-self, | |
| inconsistent-return-statements, | |
| invalid-overridden-method, | |
| invalid-name, | |
| keyword-arg-before-vararg, | |
| len-as-condition, | |
| locally-disabled, | |
| logging-not-lazy, | |
| logging-too-few-args, | |
| missing-docstring, | |
| modified-iterating-list, | |
| multiple-statements, | |
| no-self-use, | |
| no-else-break, | |
| no-else-continue, | |
| no-else-raise, | |
| no-else-return, | |
| no-member, | |
| no-name-in-module, | |
| no-self-argument, | |
| no-value-for-parameter, | |
| not-callable, | |
| pointless-statement, | |
| possibly-used-before-assignment, | |
| protected-access, | |
| raise-missing-from, #TODO(https://github.com/apache/beam/issues/21169) Enable and fix warnings | |
| raising-format-tuple, | |
| redefined-builtin, | |
| redefined-outer-name, | |
| redundant-keyword-arg, | |
| self-cls-assignment, | |
| similarities, | |
| simplifiable-if-statement, | |
| stop-iteration-return, | |
| super-init-not-called, | |
| super-with-arguments, | |
| superfluous-parens, | |
| try-except-raise, | |
| undefined-variable, | |
| unexpected-keyword-arg, | |
| unidiomatic-typecheck, | |
| unnecessary-comprehension, | |
| unnecessary-direct-lambda-call, | |
| unnecessary-dunder-call, | |
| unnecessary-lambda, | |
| unnecessary-lambda-assignment, | |
| unnecessary-pass, | |
| unneeded-not, | |
| use-yield-from, | |
| used-before-assignment, | |
| unsubscriptable-object, | |
| unsupported-binary-operation, | |
| unspecified-encoding, #TODO(https://github.com/apache/beam/issues/21236) Enable explicit encoding | |
| unused-argument, | |
| use-dict-literal, | |
| useless-return, | |
| unused-wildcard-import, | |
| useless-object-inheritance, | |
| wildcard-import, | |
| wrong-import-order, | |
| [REPORTS] | |
| # Tells whether to display a full report or only the messages | |
| reports=no | |
| [CLASSES] | |
| # List of method names used to declare (i.e. assign) instance attributes. | |
| defining-attr-methods=__init__,__new__,setUp | |
| # "class_" is also a valid for the first argument to a class method. | |
| valid-classmethod-first-arg=cls,class_ | |
| [FORMAT] | |
| # Maximum number of characters on a single line. | |
| max-line-length=80 | |
| # Maximum number of lines in a module | |
| max-module-lines=99999 | |
| # String used as indentation unit. (2 spaces.) | |
| indent-string=' ' | |
| # Number of spaces of indent required. | |
| indent-after-paren=4 | |
| # Regexp for a line that is allowed to be longer than the limit. | |
| # Long import lines or URLs in comments or pydocs. | |
| ignore-long-lines=(?x) | |
| (^\s*(import|from)\s | |
| |^\s*(\#\ )?<?(https?|ftp):\/\/[^\s\/$.?#].[^\s]*>?$ | |
| |^.*\#\ type\: | |
| |^.*LegacyArtifact | |
| ) | |
| [VARIABLES] | |
| # Tells whether we should check for unused import in __init__ files. | |
| init-import=no | |
| # A regular expression matching names used for dummy variables (i.e. not used). | |
| dummy-variables-rgx=^\*{0,2}(_$|unused_|dummy_|args|kwargs) |