diff options
Diffstat (limited to 'pylintrc')
-rw-r--r-- | pylintrc | 355 |
1 files changed, 9 insertions, 346 deletions
@@ -1,358 +1,21 @@ -# Copyright 2021 The Chromium OS Authors. All rights reserved. +# Copyright 2021 The ChromiumOS Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -# -# This file is copied Chromium OS platform2, as seen in the following link: -# https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/pylintrc -# Please keep in sync. - -# NB: This is a fork of chromite/pylintrc with indent set to 4. -# 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, - -# Configure quote preferences. -string-quote = single-avoid-escape -triple-quote = double -docstring-quote = double +# Changes to make pylint and black agree on the formatting. [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= - broad-except, - chained-comparison, - consider-iterating-dictionary, - consider-using-dict-comprehension, - consider-using-in, - consider-using-set-comprehension, + bad-continuation, + bad-whitespace, + # These have nothing to do with black, they are just annoying fixme, - file-ignored, - keyword-arg-before-vararg, - 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, - + too-many-branches, + too-many-locals -[LOGGING] +[format] -# Apply logging string format checks to calls on these modules. -logging-modules= - logging, +string-quote=double |