# -*-conf-*-

[GENERAL OPTIONS]

[BASIC]

extension-pkg-allow-list=bup._helpers # so pylint can see effects

class-rgx=([_a-z]+)|(_?([A-Z]+[a-z]*)+) # LocalRepo mmap finalized...
const-rgx=([_a-z]+)|([_A-Z]+) # snake-case uppper or lower

[VARIABLES]
dummy-variables-rgx=.*_$
ignored-argument-names=.*_$

[MESSAGES CONTROL]

# Only enable the messages we want (i.e. opt-in) so that the set of
# enable linters will be the same across pylint versions.  This does
# mean that we'll need to periodiically check to see if we're
# interested in new linters.  The current list was derived from the
# default set in pylint 3.3.4.

disable=all
  # These are linters that are in the default set that we've decided
  # against, at least for now.  To check for potentially new
  # interesting linters, you can just uncomment these (removing all
  # above) and run "make lint".
  #
  # broad-exception-raised,
  # cell-var-from-loop,
  # consider-using-f-string,
  # duplicate-code,
  # fixme,
  # global-statement,
  # global-variable-not-assigned,
  # line-too-long,
  # missing-class-docstring,
  # missing-function-docstring,
  # missing-module-docstring,
  # multiple-imports,
  # multiple-statements,
  # protected-access,
  # redefined-builtin,
  # subprocess-run-check,
  # superfluous-parens,
  # too-few-public-methods,
  # 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-positional-arguments,
  # too-many-return-statements,
  # too-many-statements

enable=
  abstract-method,
  arguments-differ,
  arguments-renamed,
  assert-on-string-literal,
  assignment-from-no-return,
  attribute-defined-outside-init,
  bad-classmethod-argument,
  bad-indentation,
  bare-except,
  broad-exception-caught,
  c-extension-no-member,
  catching-non-exception,
  chained-comparison,
  consider-iterating-dictionary,
  consider-using-dict-items,
  consider-using-enumerate,
  consider-using-from-import,
  consider-using-generator,
  consider-using-in,
  consider-using-max-builtin,
  consider-using-min-builtin,
  consider-using-sys-exit,
  consider-using-ternary,
  consider-using-with,
  deprecated-module,
  duplicate-key,
  expression-not-assigned,
  f-string-without-interpolation,
  function-redefined,
  import-outside-toplevel,
  inconsistent-return-statements,
  invalid-name,
  logging-not-lazy,
  no-else-continue,
  no-else-raise,
  no-else-return,
  no-member,
  no-name-in-module,
  no-value-for-parameter,
  possibly-used-before-assignment,
  raise-missing-from,
  redefined-outer-name,
  reimported,
  return-in-init,
  singleton-comparison,
  stop-iteration-return,
  subprocess-popen-preexec-fn,
  super-init-not-called,
  syntax-error,
  trailing-comma-tuple,
  trailing-newlines,
  trailing-whitespace,
  unbalanced-tuple-unpacking,
  undefined-loop-variable,
  undefined-variable,
  ungrouped-imports,
  unidiomatic-typecheck,
  unnecessary-comprehension,
  unnecessary-lambda,
  unnecessary-lambda-assignment,
  unnecessary-pass,
  unnecessary-semicolon,
  unreachable,
  unspecified-encoding,
  unsubscriptable-object,
  unused-argument,
  unused-import,
  unused-variable,
  unused-wildcard-import,
  use-dict-literal,
  use-implicit-booleaness-not-len,
  use-list-literal,
  use-maxsplit-arg,
  use-yield-from,
  used-before-assignment,
  useless-return,
  using-constant-test,
  wildcard-import,
  wrong-import-order,
  wrong-import-position
