# See https://www.pylint.org/
[BASIC]
# Permit 2 character & long argument names, like db
argument-rgx=[a-z_][a-z0-9_]{1,50}$
# Long attribute names
attr-rgx=[a-z_][a-z0-9_]{2,50}$
# Long function names
function-rgx=[a-z_][a-z0-9_]{2,50}$
# Long method names
method-rgx=[a-z_][a-z0-9_]{2,50}$
# Permit 2 character  & long variable names, like sb
variable-rgx=[a-z_][a-z0-9_]{1,50}$

[MESSAGES CONTROL]
# C0103 - invalid-name - Fix variable names to match convention
# C0206 - consider-using-dict-items - Need to explicitly specify .keys() or .items() in a dictionary iteration
# C0207 - use-maxsplit-arg - Use maxsplit arg in split() calls
# C0209 - consider-using-f-string - Need to convert most format strings (using both % and .format) to f""-style strings
# C0301 - line-too-long - some of the type annotations are longer then 100 columns
# C0325 - superfluous-parens - Superfluous parens, easy to fix
# C0330 - bad-continuation - ignore conflicts produced by yapf formatting
# C2801 - unnecessary-dunder-call - Prefer a builtin call instead of a dunder method
# C3001 - unnecessary-lambda-assignment - Prefer def over lambda

# E0401 - import-error - ignore imports that fail to load
# E0601 - used-before-assignment
# E0611 - no-name-in-module
# E1101 - no-member - ignore maybe no member warnings

# I0011 - locally-disabled - ignore warnings about disable pylint checks
# I0021 - useless-suppression
# I0021 - useless-suppression - Useless suppression of a pylint warning

# R0204 - redefined-variable-type
# R0205 - useless-object-inheritance - See PM-1380
# R0801 - duplicate-code - See PM-1380
# R0903 - too-few-public-methods - pylint does not always know best
# R1705 - no-else-return - sometimes an unnecessary else helps readability
# R1710 - inconsistent-return-statements
# R1720 - no-else-raise - See PM-1380
# R1728 - consider-using-generator - Use a generator instead of creating an in-memory list
# R1730 - consider-using-min-builtin - Lots of situations where min() can be used to eliminate an if block
# R1731 - consider-using-max-builtin - Lots of situations where max() can be used to eliminate an if block
# R1732 - consider-using-with - Add 'with' for most open() operations
# R1734 - use-list-literal - Prefer [] list initialization over list() function
# R1735 - use-dict-literal - Prefer {} dict initialization over dict() function
# R1736 - unnecessary-list-index-lookup

# W0107 - unnecessary-pass - See PM-1380
# W0122 - exec-used - See PM-1380
# W0212 - protected-access
# W0221 - arguments-differ
# W0231 - super-init-not-called - Call parent class constructor properly
# W0402 - deprecated-module - See PM-1380
# W0511 - fixme - ignore TODOs in comments
# W0602 - global-variable-not-assigned
# W0603 - global-statement
# W0611 - unused-import - typing module is needed for mypy
# W0621 - redefined-outer-name - Overriding variable name
# W0640 - cell-var-from-loop
# W0719 - broad-exception-raised - Should use a more precise exception than `Exception`
# W1505 - deprecated-method - See PM-1380
# W1514 - unspecified-encoding - Need to add 'encoding="utf-8"' to most open() operations
# W3101 - missing-timeout - Add an explicit timeout to some sync functions

disable=
    arguments-differ,
    bare-except,
    broad-except,
    broad-exception-raised,
    cell-var-from-loop,
    consider-using-dict-items,
    consider-using-f-string,
    consider-using-generator,
    consider-using-max-builtin,
    consider-using-min-builtin,
    consider-using-with,
    consider-using-sys-exit,
    deprecated-method,
    deprecated-module,
    duplicate-code,
    exec-used,
    fixme,
    global-statement,
    global-variable-not-assigned,
    import-error,
    import-outside-toplevel,
    inconsistent-return-statements,
    invalid-name,
    line-too-long,
    locally-disabled,
    use-maxsplit-arg,
    missing-class-docstring,
    missing-docstring,
    missing-function-docstring,
    missing-module-docstring,
    missing-timeout,
    no-else-break,
    no-else-continue,
    no-else-raise,
    no-else-return,
    no-member,
    no-name-in-module,
    protected-access,
    raise-missing-from,
    redefined-outer-name,
    subprocess-run-check,
    super-init-not-called,
    superfluous-parens,
    super-with-arguments,
    too-few-public-methods,
    too-many-arguments,
    too-many-branches,
    too-many-function-args,
    too-many-instance-attributes,
    too-many-lines,
    too-many-locals,
    too-many-public-methods,
    too-many-return-statements,
    too-many-statements,
    unidiomatic-typecheck,
    unnecessary-comprehension,
    unnecessary-dunder-call,
    unnecessary-lambda-assignment,
    unnecessary-list-index-lookup,
    unnecessary-pass,
    unspecified-encoding,
    unused-import,
    unused-argument,
    use-dict-literal,
    use-list-literal,
    used-before-assignment,
    useless-object-inheritance,
    wrong-import-order
enable=useless-suppression

[IMPORTS]
known-third-party=boto3,botocore,psutil,yaml,xmlrunner
