[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

[tool.black]
line-length = 100
target-version = ["py37", "py38", "py39", "py310"]

[tool.pylint.main]
# Minimum supported Python version.
py-version = "3.7"
[tool.pylint.basic]
# Naming convention for objects that do not require docstrings.
no-docstring-rgx = "^_"
[tool.pylint.classes]
# List of method names used to declare (i.e. assign) instance attributes.
defining-attr-methods = ["__init__", "__new__", "setUp", "__post_init__"]
# List of member names, which should be excluded from the protected access
# warning.
exclude-protected = ["_asdict", "_fields", "_replace", "_source", "_make"]
# List of valid names for the first argument in a class method.
valid-classmethod-first-arg = ["cls"]
# List of valid names for the first argument in a metaclass class method.
valid-metaclass-classmethod-first-arg = ["cls"]
[tool.pylint.exceptions]
# Exceptions that will emit a warning when caught.
overgeneral-exceptions = ["BaseException"]
[tool.pylint."messages control"]
disable = [
    "duplicate-code",
    "raw-checker-failed",
    "bad-inline-option",
    "locally-disabled",
    "file-ignored",
    "suppressed-message",
    "useless-suppression",
    "deprecated-pragma",
    "use-symbolic-message-instead",
    "useless-option-value",
    "unknown-option-value",
    "invalid-name",
    "wrong-import-order",
    "too-many-arguments",
    "too-many-locals",
    "too-many-instance-attributes",
    "too-few-public-methods",
    "missing-module-docstring",
    "missing-class-docstring",
    "missing-function-docstring",
    "wrong-import-position",
    "multiple-statements",
    "redefined-outer-name",
    "use-implicit-booleaness-not-len",
    "unused-wildcard-import",
    "unneeded-not",
    "line-too-long",
    "unnecessary-semicolon",
    "trailing-whitespace",
    "missing-final-newline",
    "bad-indentation",
]
[tool.pylint.variables]
# Tells whether unused global variables should be treated as a violation.
allow-global-unused-variables = true
# A regular expression matching the name of dummy variables (i.e. expected to not
# be used).
dummy-variables-rgx = "_.*"
ignored-argument-names = "_.*"
# List of qualified module names which can have objects that can redefine builtins.
redefining-builtins-modules = ["six.moves", "past.builtins", "future.builtins", "builtins", "io"]
