| # Copyright 2022 The ChromiumOS Authors | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| # NB: This is a fork of platform2/pylintrc with indent set to 2. | |
| # Everything else is kept the same. | |
| [MASTER] | |
| # Add files or directories matching the regex patterns to the ignore list. | |
| # The regex matches against base names, not paths. | |
| ignore-patterns= | |
| .*_pb2\.py$, | |
| .*third_party\/.*.py$ | |
| # 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 useless-object-inheritance once we're on Python 3-only and | |
| # we update the style guide. | |
| # TODO: Re-enable import-outside-toplevel. | |
| # TODO: Re-enable unnecessary-comprehension. | |
| # TODO: Re-enable consider-using-dict-comprehension. | |
| # TODO: Re-enable consider-using-set-comprehension. | |
| # TODO: Re-enable consider-using-in. | |
| # TODO: Re-enable try-except-raise. | |
| # TODO: Re-enable chained-comparison. | |
| disable= | |
| bad-continuation, | |
| bad-indentation, | |
| broad-except, | |
| chained-comparison, | |
| consider-iterating-dictionary, | |
| consider-using-dict-comprehension, | |
| consider-using-in, | |
| consider-using-set-comprehension, | |
| fixme, | |
| file-ignored, | |
| keyword-arg-before-vararg, | |
| invalid-docstring-quote, | |
| invalid-string-quote, | |
| invalid-triple-quote, | |
| import-outside-toplevel, | |
| inconsistent-return-statements, | |
| invalid-name, | |
| locally-disabled, | |
| locally-enabled, | |
| missing-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, | |
| unnecessary-comprehension, | |
| useless-object-inheritance, | |
| [REPORTS] | |
| # Tells whether to display a full report or only the messages | |
| # CHANGE: No report. | |
| reports=no | |
| # Activate the evaluation score. | |
| score=no | |
| [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). | |
| indent-string=' ' | |
| [TYPECHECK] | |
| # List of classes names for which member attributes should not be checked | |
| # (useful for classes with attributes dynamically set). | |
| ignored-classes=hashlib,numpy | |
| # List of members which are set dynamically and missed by pylint inference | |
| # system, and so shouldn't trigger E0201 when accessed. | |
| # CHANGE: Added tempdir for @osutils.TempDirDecorator. | |
| generated-members=REQUEST,acl_users,aq_parent,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=pytest | |
| [BASIC] | |
| # 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 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)$ | |
| [SIMILARITIES] | |
| # Minimum lines number of a similarity. | |
| min-similarity-lines=20 | |
| [VARIABLES] | |
| # A regular expression matching the beginning of the name of dummy variables | |
| # (i.e. not used). | |
| dummy-variables-rgx=_|unused_ | |
| [DESIGN] | |
| # Maximum number of parents for a class (see R0901). | |
| max-parents=10 | |
| [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, | |
| # 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, | |
| magic, | |
| mock, | |
| oauth2client, | |
| portage, | |
| pylint, | |
| pytest, | |
| requests, | |
| six, | |
| sqlalchemy, | |
| yaml, | |
| [LOGGING] | |
| # Apply logging string format checks to calls on these modules. | |
| logging-modules= | |
| logging, |