# Copyright 2021 The Chromium OS Authors. All rights reserved.
# 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 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


[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,
    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,


[LOGGING]

# Apply logging string format checks to calls on these modules.
logging-modules=
    logging,
