diff --git a/pylintrc b/pylintrc deleted file mode 100644 index 86f3d4caea07bf4ade379079e98942417678b926..0000000000000000000000000000000000000000 --- a/pylintrc +++ /dev/null @@ -1,65 +0,0 @@ -[MASTER] -ignore=tests -# 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=no -extension-pkg-whitelist=ciso8601,cv2 - -[BASIC] -good-names=id,i,j,k,ex,Run,_,fp,T,ev - -[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 useless-suppression temporarily every now and then to clean them up -enable= - use-symbolic-message-instead - -[REPORTS] -score=no - -[TYPECHECK] -# For attrs -ignored-classes=_CountingAttr - -[FORMAT] -expected-line-ending-format=LF - -[EXCEPTIONS] -overgeneral-exceptions=BaseException,Exception,HomeAssistantError diff --git a/pyproject.toml b/pyproject.toml index 7c0c5eeb4337f9970898fc37e37e05357f175e6e..0f416d9e0141cfc246286e44c2cfaf66add5a5a3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,117 @@ [tool.black] target-version = ["py37", "py38"] exclude = 'generated' + +[tool.isort] +# https://github.com/PyCQA/isort/wiki/isort-Settings +profile = "black" +# will group `import x` and `from x import` of the same module. +force_sort_within_sections = true +known_first_party = [ + "homeassistant", + "tests", +] +forced_separate = [ + "tests", +] +combine_as_imports = true + +[tool.pylint.MASTER] +ignore = [ + "tests", +] +# 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", +] + +[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 = [ + #"useless-suppression", # temporarily every now and then to clean them up + "use-symbolic-message-instead", +] + +[tool.pylint.REPORTS] +score = false + +[tool.pylint.TYPECHECK] +ignored-classes = [ + "_CountingAttr", # for attrs +] + +[tool.pylint.FORMAT] +expected-line-ending-format = "LF" + +[tool.pylint.EXCEPTIONS] +overgeneral-exceptions = [ + "BaseException", + "Exception", + "HomeAssistantError", +] + +[tool.pytest.ini_options] +testpaths = [ + "tests", +] +norecursedirs = [ + ".git", + "testing_config", +] diff --git a/setup.cfg b/setup.cfg index 8dd3e083a8b99ae8bab89e64e9548c79846d83db..bf863cb97a5821b8587396e3235de68e8a519145 100644 --- a/setup.cfg +++ b/setup.cfg @@ -14,10 +14,6 @@ classifier = Programming Language :: Python :: 3.7 Topic :: Home Automation -[tool:pytest] -testpaths = tests -norecursedirs = .git testing_config - [flake8] exclude = .venv,.git,.tox,docs,venv,bin,lib,deps,build doctests = True @@ -35,16 +31,6 @@ ignore = D202, W504 -[isort] -# https://github.com/timothycrosley/isort -# https://github.com/timothycrosley/isort/wiki/isort-Settings -profile = black -# will group `import x` and `from x import` of the same module. -force_sort_within_sections = true -known_first_party = homeassistant,tests -forced_separate = tests -combine_as_imports = true - [mypy] python_version = 3.7 ignore_errors = true