[pylint]

max-line-length=160

disable=
    abstract-method,
    access-member-before-definition,
    arguments-differ,
    assignment-from-no-return,
    assignment-from-none,
    attribute-defined-outside-init,
    bad-indentation,
    bad-mcs-classmethod-argument,
    bad-super-call,  # flakey test, can report false positives due to inference issue when using deprecate_calls plugin
    broad-exception-caught,
    broad-exception-raised,
    c-extension-no-member,
    cell-var-from-loop,
    chained-comparison,
    comparison-with-callable,
    consider-iterating-dictionary,
    consider-merging-isinstance,
    consider-using-dict-comprehension,  # requires Python 2.7+, but we still require Python 2.6 support
    consider-using-dict-items,
    consider-using-enumerate,
    consider-using-f-string,  # Python 2.x support still required
    consider-using-generator,
    consider-using-get,
    consider-using-in,
    consider-using-set-comprehension,  # requires Python 2.7+, but we still require Python 2.6 support
    consider-using-ternary,
    consider-using-with,
    consider-using-max-builtin,
    consider-using-min-builtin,
    cyclic-import,  # consistent results require running with --jobs 1 and testing all files
    deprecated-argument,  # results vary by Python version
    deprecated-attribute,  # results vary by Python version
    deprecated-class,  # results vary by Python version
    deprecated-comment,  # custom plugin only used by ansible-core, not collections
    deprecated-decorator,  # results vary by Python version
    deprecated-method,  # results vary by Python version
    deprecated-module,  # results vary by Python version
    duplicate-code,  # consistent results require running with --jobs 1 and testing all files
    eval-used,
    exec-used,
    expression-not-assigned,
    fixme,
    function-redefined,
    global-statement,
    global-variable-undefined,
    import-error,  # inconsistent results which depend on the availability of imports
    import-outside-toplevel,  # common pattern in ansible related code
    import-self,
    inconsistent-return-statements,
    invalid-envvar-default,
    invalid-name,
    invalid-sequence-index,
    keyword-arg-before-vararg,
    len-as-condition,
    line-too-long,
    literal-comparison,
    locally-disabled,
    method-hidden,
    missing-docstring,
    no-else-break,
    no-else-continue,
    no-else-raise,
    no-else-return,
    no-member,
    no-name-in-module,  # inconsistent results which depend on the availability of imports
    no-value-for-parameter,
    non-iterator-returned,
    not-a-mapping,
    not-an-iterable,
    not-callable,
    pointless-statement,
    pointless-string-statement,
    possibly-unused-variable,
    possibly-used-before-assignment,
    protected-access,
    raise-missing-from,  # Python 2.x does not support raise from
    redefined-argument-from-local,
    redefined-builtin,
    redefined-outer-name,
    redundant-u-string-prefix,  # Python 2.x support still required
    reimported,
    relative-beyond-top-level,  # https://github.com/PyCQA/pylint/issues/2967
    signature-differs,
    simplifiable-if-expression,
    simplifiable-if-statement,
    subprocess-popen-preexec-fn,
    super-init-not-called,
    super-with-arguments,  # Python 2.x does not support super without arguments
    superfluous-parens,
    too-few-public-methods,
    too-many-ancestors,  # inconsistent results between python 3.6 and 3.7+
    too-many-arguments,
    too-many-boolean-expressions,
    too-many-branches,
    too-many-function-args,
    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,
    too-many-positional-arguments,
    try-except-raise,
    unbalanced-tuple-unpacking,
    undefined-loop-variable,
    unexpected-keyword-arg,
    ungrouped-imports,
    unnecessary-pass,
    unnecessary-dunder-call,
    unsubscriptable-object,
    unsupported-assignment-operation,
    unsupported-delete-operation,
    unsupported-membership-test,
    unused-argument,
    unused-variable,
    unspecified-encoding,  # always run with UTF-8 encoding enforced
    use-dict-literal,  # ignoring as a common style issue
    use-list-literal,  # many occurrences
    use-implicit-booleaness-not-comparison,  # many occurrences
    useless-object-inheritance,
    useless-return,
    useless-super-delegation,
    useless-option-value,  # provide backwards compatibility with previous versions of ansible-test
    wrong-import-order,
    wrong-import-position,

bad-names=
    _,
    bar,
    baz,
    foo,
    tata,
    toto,
    tutu,

good-names=
    ex,
    i,
    j,
    k,
    Run,

ignored-modules=
    _MovedItems,
