[tool.black]
target-version = ["py38", "py39"]
include = 'custom_components/localtuya/.*\.py'

# pylint config stolen from Home Assistant
# Use a conservative default here; 2 should speed up most setups and not hurt
# any too bad. Override on command line as appropriate.
# Disabled for now: https://github.com/PyCQA/pylint/issues/3584
#jobs = 2
load-plugins = [
    "pylint_strict_informational",
]
persistent = false
extension-pkg-whitelist = [
    "ciso8601",
    "cv2",
]

[tool.pylint.BASIC]
good-names = [
    "_",
    "ev",
    "ex",
    "fp",
    "i",
    "id",
    "j",
    "k",
    "Run",
    "T",
    "hs",
]

[tool.pylint."MESSAGES CONTROL"]
# Reasons disabled:
# format - handled by black
# locally-disabled - it spams too much
# duplicate-code - unavoidable
# cyclic-import - doesn't test if both import on load
# abstract-class-little-used - prevents from setting right foundation
# unused-argument - generic callbacks and setup methods create a lot of warnings
# too-many-* - are not enforced for the sake of readability
# too-few-* - same as too-many-*
# abstract-method - with intro of async there are always methods missing
# inconsistent-return-statements - doesn't handle raise
# too-many-ancestors - it's too strict.
# wrong-import-order - isort guards this
disable = [
    "format",
    "abstract-class-little-used",
    "abstract-method",
    "cyclic-import",
    "duplicate-code",
    "inconsistent-return-statements",
    "locally-disabled",
    "not-context-manager",
    "too-few-public-methods",
    "too-many-ancestors",
    "too-many-arguments",
    "too-many-branches",
    "too-many-instance-attributes",
    "too-many-lines",
    "too-many-locals",
    "too-many-public-methods",
    "too-many-return-statements",
    "too-many-statements",
    "too-many-boolean-expressions",
    "unused-argument",
    "wrong-import-order",
]
enable = [
    "use-symbolic-message-instead",
]

[tool.pylint.REPORTS]
score = false

[tool.pylint.FORMAT]
expected-line-ending-format = "LF"

[tool.pylint.MISCELLANEOUS]
notes = "XXX"
