| # Copyright 2011 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| [MASTER] |
| |
| # Specify a configuration file. |
| #rcfile= |
| |
| # Python code to execute, usually for sys.path manipulation such as |
| # pygtk.require(). |
| #init-hook= |
| |
| # Profiled execution. |
| #profile=no |
| |
| # Do not lint files or directories matching the regex patterns. |
| # It matches against base names, not paths. |
| ignore-patterns= |
| .*_pb2\.py$, |
| .*third_party\/.*.py$ |
| |
| |
| # Pickle collected data for later comparisons. |
| #persistent=yes |
| |
| # List of plugins (as comma separated values of python modules names) to load, |
| # usually to register additional checkers. |
| load-plugins= |
| chromite.cli.cros.lint, |
| pylint.extensions.bad_builtin, |
| pylint.extensions.docstyle, |
| pylint.extensions.redefined_variable_type, |
| pylint.extensions.overlapping_exceptions, |
| |
| |
| [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 times. |
| # eq-without-hash: We omit this as we don't require all objects be hashable. |
| # We'll wait for unittest coverage to detect missing __hash__ on objects. |
| # no-absolute-import: We don't seem to rely on this behavior, so don't enforce |
| # using this future import everywhere. |
| # round-builtin: We omit this as all our usage of round() is OK with either |
| # Python 2 or 3 behavior (and probably leans towards 3 anyways). |
| enable= |
| apply-builtin, |
| backtick, |
| bad-python3-import, |
| basestring-builtin, |
| buffer-builtin, |
| cmp-builtin, |
| cmp-method, |
| coerce-builtin, |
| coerce-method, |
| delslice-method, |
| deprecated-itertools-function, |
| deprecated-str-translate-call, |
| deprecated-string-function, |
| deprecated-types-field, |
| dict-items-not-iterating, |
| dict-iter-method, |
| dict-keys-not-iterating, |
| dict-values-not-iterating, |
| dict-view-method, |
| div-method, |
| exception-message-attribute, |
| execfile-builtin, |
| file-builtin, |
| filter-builtin-not-iterating, |
| getslice-method, |
| hex-method, |
| idiv-method, |
| import-star-module-level, |
| indexing-exception, |
| intern-builtin, |
| invalid-str-codec, |
| long-builtin, |
| long-suffix, |
| map-builtin-not-iterating, |
| metaclass-assignment, |
| next-method-called, |
| next-method-defined, |
| nonzero-method, |
| oct-method, |
| old-ne-operator, |
| old-octal-literal, |
| old-raise-syntax, |
| parameter-unpacking, |
| print-statement, |
| raising-string, |
| range-builtin-not-iterating, |
| raw_input-builtin, |
| rdiv-method, |
| reduce-builtin, |
| reload-builtin, |
| setslice-method, |
| standarderror-builtin, |
| sys-max-int, |
| unichr-builtin, |
| unicode-builtin, |
| unpacking-in-except, |
| using-cmp-argument, |
| xrange-builtin, |
| zip-builtin-not-iterating, |
| |
| |
| # 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". |
| # We leave many of the style warnings to judgement/peer review. |
| # TODO: We need to re-enable broad-except, but requires cleaning up our code. |
| # TODO: Re-enable redefined-variable-type. |
| # TODO: Re-enable inconsistent-return-statements. |
| # TODO: Re-enable keyword-arg-before-vararg once we're on Python 3-only. |
| # TODO: Re-enable import-outside-toplevel. |
| # TODO: Re-enable try-except-raise. |
| # TODO(b/236161656): Re-enable consider-using-f-string. |
| # ungrouped-imports: We let isort handle this. |
| # wrong-import-order: We let isort handle this. |
| disable= |
| broad-except, |
| consider-using-f-string, |
| consider-iterating-dictionary, |
| fixme, |
| file-ignored, |
| keyword-arg-before-vararg, |
| import-outside-toplevel, |
| inconsistent-return-statements, |
| invalid-name, |
| locally-disabled, |
| locally-enabled, |
| missing-function-docstring, |
| no-member, |
| no-else-break, |
| no-else-continue, |
| no-else-raise, |
| no-else-return, |
| no-self-use, |
| raise-missing-from, |
| redefined-variable-type, |
| relative-import, |
| super-with-arguments, |
| too-few-public-methods, |
| too-many-arguments, |
| too-many-boolean-expressions, |
| too-many-branches, |
| too-many-instance-attributes, |
| too-many-lines, |
| too-many-locals, |
| too-many-nested-blocks, |
| too-many-public-methods, |
| too-many-return-statements, |
| too-many-statements, |
| try-except-raise, |
| ungrouped-imports, |
| wrong-import-order, |
| |
| [REPORTS] |
| |
| # Set the output format. Available formats are text, parseable, colorized, msvs |
| # (visual studio) and html |
| #output-format=text |
| |
| # Put messages in a separate file for each module / package specified on the |
| # command line instead of printing them on stdout. Reports (if any) will be |
| # written in a file name "pylint_global.[txt|html]". |
| #files-output=no |
| |
| # Tells whether to display a full report or only the messages |
| # CHANGE: No report. |
| reports=no |
| |
| # Activate the evaluation score. |
| score=no |
| |
| # Python expression which should return a note less than 10 (10 is the highest |
| # note). You have access to the variables errors warning, statement which |
| # respectively contain the number of errors / warnings messages and the total |
| # number of statements analyzed. This is used by the global evaluation report |
| # (RP0004). |
| #evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) |
| |
| # Add a comment according to your evaluation note. This is used by the global |
| # evaluation report (RP0004). |
| #comment=no |
| |
| |
| [MISCELLANEOUS] |
| |
| # List of note tags to take in consideration, separated by a comma. |
| #notes=FIXME,XXX,TODO |
| |
| |
| [FORMAT] |
| |
| # Maximum number of characters on a single line. |
| max-line-length=80 |
| |
| # Disable line length enforcement for import statements or comment lines |
| # containing URLs. |
| ignore-long-lines=(^(import|from))|(^\s*(# )?<?https?://\S+>?$) |
| |
| # Maximum number of lines in a module |
| #max-module-lines=1000 |
| |
| # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 |
| # tab). |
| # CHANGE: Use " " instead. |
| indent-string=" " |
| |
| |
| [TYPECHECK] |
| |
| # Tells whether missing members accessed in mixin class should be ignored. A |
| # mixin class is detected if its name ends with "mixin" (case insensitive). |
| #ignore-mixin-members=yes |
| |
| # List of classes names for which member attributes should not be checked |
| # (useful for classes with attributes dynamically set). |
| ignored-classes=hashlib,numpy |
| |
| # When zope mode is activated, add a predefined set of Zope acquired attributes |
| # to generated-members. |
| #zope=no |
| |
| # List of members which are set dynamically and missed by pylint inference |
| # system, and so shouldn't trigger E0201 when accessed. |
| # CHANGE: Added 'AndRaise', 'AndReturn', 'InAnyOrder' and 'MultipleTimes' for pymox. |
| # CHANGE: Added tempdir for @osutils.TempDirDecorator. |
| generated-members=REQUEST,acl_users,aq_parent,AndRaise,AndReturn,InAnyOrder,MultipleTimes,tempdir |
| |
| # List of modules for which member attributes should not be checked. |
| # Modules listed here will not trigger import errors even if the linter can't |
| # import them. |
| # |
| # pytest: Made available by our testing virtualenv and can be assumed exists. |
| ignored-modules= |
| libcst, |
| psutil, |
| pytest, |
| opentelemetry, |
| |
| [BASIC] |
| |
| # Required attributes for module, separated by a comma |
| #required-attributes= |
| |
| # List of builtins function names that should not be used, separated by a comma. |
| # exit & quit are for the interactive interpreter shell only. |
| # https://docs.python.org/3/library/constants.html#constants-added-by-the-site-module |
| bad-functions= |
| apply, |
| exit, |
| filter, |
| map, |
| quit, |
| reduce, |
| |
| # Regular expression which should only match correct module names |
| #module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ |
| |
| # Regular expression which should only match correct module level names |
| #const-rgx=(([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 |
| # |
| # CHANGE: The ChromiumOS standard is different than PEP-8, so we need to |
| # redefine this. |
| # |
| # Common exceptions to ChromiumOS standard: |
| # - main: Standard for main function |
| function-rgx=([A-Z_][a-zA-Z0-9]{2,30}|main)$ |
| |
| # Regular expression which should only match correct method names |
| # |
| # CHANGE: The ChromiumOS standard is different than PEP-8, so we need to |
| # redefine this. Here's what we allow: |
| # - CamelCaps, starting with a capital letter. No underscores in function |
| # names. Can also have a "_" prefix (private method) or a "test" prefix |
| # (unit test). |
| # - Methods that look like __xyz__, which are used to do things like |
| # __init__, __del__, etc. |
| # - setUp, tearDown: For unit tests. |
| method-rgx=((_|test)?[A-Z][a-zA-Z0-9]{2,30}|__[a-z]+__|setUp|tearDown)$ |
| |
| # Regular expression which should only match correct instance attribute names |
| #attr-rgx=[a-z_][a-z0-9_]{2,30}$ |
| |
| # Regular expression which should only match correct argument names |
| #argument-rgx=[a-z_][a-z0-9_]{2,30}$ |
| |
| # Regular expression which should only match correct variable names |
| #variable-rgx=[a-z_][a-z0-9_]{2,30}$ |
| |
| # Regular expression which should only match correct list comprehension / |
| # generator expression variable names |
| #inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ |
| |
| # Good variable names which should always be accepted, separated by a comma |
| #good-names=i,j,k,ex,Run,_ |
| |
| # Bad variable names which should always be refused, separated by a comma |
| #bad-names=foo,bar,baz,toto,tutu,tata |
| |
| # Regular expression which should only match functions or classes name which do |
| # not require a docstring |
| #no-docstring-rgx=__.*__ |
| |
| |
| [SIMILARITIES] |
| |
| # Minimum lines number of a similarity. |
| min-similarity-lines=20 |
| |
| # Ignore comments when computing similarities. |
| #ignore-comments=yes |
| |
| # Ignore docstrings when computing similarities. |
| #ignore-docstrings=yes |
| |
| |
| [VARIABLES] |
| |
| # Tells whether we should check for unused import in __init__ files. |
| #init-import=no |
| |
| # A regular expression matching the beginning of the name of dummy variables |
| # (i.e. not used). |
| dummy-variables-rgx=_|unused_ |
| |
| # List of additional names supposed to be defined in builtins. Remember that |
| # you should avoid to define new builtins when possible. |
| #additional-builtins= |
| |
| |
| [CLASSES] |
| |
| # List of interface methods to ignore, separated by a comma. This is used for |
| # instance to not check methods defines in Zope's Interface base class. |
| #ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by |
| |
| # List of method names used to declare (i.e. assign) instance attributes. |
| #defining-attr-methods=__init__,__new__,setUp |
| |
| |
| [DESIGN] |
| |
| # Maximum number of arguments for function / method |
| #max-args=5 |
| |
| # Argument names that match this expression will be ignored. Default to name |
| # with leading underscore |
| #ignored-argument-names=_.* |
| |
| # Maximum number of locals for function / method body |
| #max-locals=15 |
| |
| # Maximum number of return / yield for function / method body |
| #max-returns=6 |
| |
| # Maximum number of branch for function / method body |
| #max-branchs=12 |
| |
| # Maximum number of statements in function / method body |
| #max-statements=50 |
| |
| # Maximum number of parents for a class (see R0901). |
| max-parents=10 |
| |
| # Maximum number of attributes for a class (see R0902). |
| #max-attributes=7 |
| |
| # Minimum number of public methods for a class (see R0903). |
| #min-public-methods=2 |
| |
| # Maximum number of public methods for a class (see R0904). |
| #max-public-methods=20 |
| |
| |
| [IMPORTS] |
| |
| # Deprecated modules which should not be used, separated by a comma. |
| # __builtin__: Use the 'six.moves.builtins' module instead |
| # (or 'builtins' in Python 3). |
| # apiclient: Use the 'googleapiclient' module instead. |
| # Bastion: Dropped in Python 3. |
| # ConfigParser: Use the 'six.moves.configparser' module instead |
| # (or 'configparser' in Python 3). |
| # cookielib: Use the 'six.moves.http_cookiejar' module instead |
| # (or 'http.cookiejar' in Python 3). |
| # cPickle: Use the 'pickle' module instead. |
| # cStringIO: Use 'io.StringIO' or 'io.BytesIO' instead. |
| # exceptions: Dropped in Python 3. |
| # HTMLParser: Use the 'six.moves.html_parser' module instead |
| # (or 'html.parser' in Python 3). |
| # httplib: Use the 'six.moves.http_client' module instead |
| # (or 'http.client' in Python 3). |
| # md5: Use the 'hashlib' module instead. |
| # mox: Use the 'mock' module instead. |
| # optparse: Use the 'argparse' module instead. |
| # Queue: Use the 'six.moves.queue' module instead (or 'queue' in Python 3). |
| # regsub: Use the 're' module instead. |
| # rexec: Dropped in Python 3. |
| # StringIO: Use 'io.StringIO' or 'io.BytesIO' instead. |
| # TERMIOS: Use the 'termios' module instead. |
| # urllib2: Use the 'six.moves.urllib' module instead |
| # (or 'urllib.request' in Python 3). |
| # urlparse: Use the 'six.moves.urllib' module instead |
| # (or 'urllib.parse' in Python 3). |
| deprecated-modules= |
| __builtin__, |
| apiclient, |
| Bastion, |
| ConfigParser, |
| cookielib, |
| cPickle, |
| cStringIO, |
| exceptions, |
| HTMLParser, |
| httplib, |
| md5, |
| mock, |
| mox, |
| optparse, |
| Queue, |
| regsub, |
| rexec, |
| StringIO, |
| TERMIOS, |
| urllib2, |
| urlparse, |
| |
| # Create a graph of every (i.e. internal and external) dependencies in the |
| # given file (report RP0402 must not be disabled) |
| #import-graph= |
| |
| # Create a graph of external dependencies in the given file (report RP0402 must |
| # not be disabled) |
| #ext-import-graph= |
| |
| # Create a graph of internal dependencies in the given file (report RP0402 must |
| # not be disabled) |
| #int-import-graph= |
| |
| # Force import order to recognize a module as part of the standard |
| # compatibility libraries. |
| known-standard-library= |
| |
| # Force import order to recognize a module as part of a third party library. |
| known-third-party= |
| _emerge, |
| apiclient, |
| elftools, |
| gcloud, |
| google, |
| googleapiclient, |
| httplib2, |
| jinja2, |
| jsonschema, |
| lddtree, |
| libcst, |
| magic, |
| mock, |
| oauth2client, |
| opentelemetry, |
| portage, |
| psutil, |
| pylint, |
| pytest, |
| requests, |
| six, |
| sqlalchemy, |
| yaml, |
| |
| |
| [LOGGING] |
| |
| # Apply logging string format checks to calls on these modules. |
| logging-modules= |
| logging, |