2024-05-16 03:19:37 +02:00
[ build-system ]
requires = [ "setuptools==69.2.0" , "wheel~=0.43.0" ]
build-backend = "setuptools.build_meta"
[ project ]
name = "esphome"
license = { text = "MIT" }
2024-12-06 03:24:20 +01:00
description = "ESPHome is a system to configure your microcontrollers by simple yet powerful configuration files and control them remotely through Home Automation systems."
2024-05-16 03:19:37 +02:00
readme = "README.md"
authors = [
{ name = "The ESPHome Authors" , email = "esphome@nabucasa.com" }
]
keywords = [ "home" , "automation" ]
classifiers = [
"Environment :: Console" ,
"Intended Audience :: Developers" ,
"Intended Audience :: End Users/Desktop" ,
"License :: OSI Approved :: MIT License" ,
"Programming Language :: C++" ,
"Programming Language :: Python :: 3" ,
"Topic :: Home Automation" ,
]
requires-python = ">=3.9.0"
dynamic = [ "dependencies" , "optional-dependencies" , "version" ]
[ project . urls ]
"Documentation" = "https://esphome.io"
"Source Code" = "https://github.com/esphome/esphome"
"Bug Tracker" = "https://github.com/esphome/issues/issues"
"Feature Request Tracker" = "https://github.com/esphome/feature-requests/issues"
"Discord" = "https://discord.gg/KhAMKrd"
"Forum" = "https://community.home-assistant.io/c/esphome"
"Twitter" = "https://twitter.com/esphome_"
[ project . scripts ]
esphome = "esphome.__main__:main"
[ tool . setuptools ]
platforms = [ "any" ]
zip-safe = false
include-package-data = true
[ tool . setuptools . dynamic ]
dependencies = { file = [ "requirements.txt" ] }
optional-dependencies . dev = { file = [ "requirements_dev.txt" ] }
optional-dependencies . test = { file = [ "requirements_test.txt" ] }
optional-dependencies . displays = { file = [ "requirements_optional.txt" ] }
version = { attr = "esphome.const.__version__" }
[ tool . setuptools . packages . find ]
include = [ "esphome*" ]
2021-03-07 20:03:16 +01:00
[ tool . black ]
2022-10-05 09:09:27 +02:00
target-version = [ "py39" , "py310" ]
2021-03-07 20:03:16 +01:00
exclude = 'generated'
2024-05-16 03:20:12 +02:00
[ tool . pytest . ini_options ]
testpaths = [
"tests" ,
]
addopts = [
"--cov=esphome" ,
"--cov-branch" ,
]
2024-05-16 03:47:36 +02:00
[ tool . pylint . MAIN ]
py-version = "3.9"
ignore = [
"api_pb2.py" ,
]
persistent = false
[ tool . pylint . REPORTS ]
score = false
[ tool . pylint . "MESSAGES CONTROL" ]
disable = [
"format" ,
"missing-docstring" ,
"fixme" ,
"unused-argument" ,
"global-statement" ,
"too-few-public-methods" ,
"too-many-lines" ,
"too-many-locals" ,
"too-many-ancestors" ,
"too-many-branches" ,
"too-many-statements" ,
"too-many-arguments" ,
"too-many-return-statements" ,
"too-many-instance-attributes" ,
"duplicate-code" ,
"invalid-name" ,
"cyclic-import" ,
"redefined-builtin" ,
"undefined-loop-variable" ,
"useless-object-inheritance" ,
"stop-iteration-return" ,
"import-outside-toplevel" ,
# Broken
"unsupported-membership-test" ,
"unsubscriptable-object" ,
]
[ tool . pylint . FORMAT ]
expected-line-ending-format = "LF"
2024-07-19 01:26:21 +02:00
[ tool . ruff ]
required-version = ">=0.5.0"
[ tool . ruff . lint ]
select = [
"E" , # pycodestyle
"F" , # pyflakes/autoflake
"I" , # isort
"PL" , # pylint
"UP" , # pyupgrade
]
ignore = [
"E501" , # line too long
"PLR0911" , # Too many return statements ({returns} > {max_returns})
"PLR0912" , # Too many branches ({branches} > {max_branches})
"PLR0913" , # Too many arguments to function call ({c_args} > {max_args})
"PLR0915" , # Too many statements ({statements} > {max_statements})
"PLR2004" , # Magic value used in comparison, consider replacing {value} with a constant variable
"PLW2901" , # Outer {outer_kind} variable {name} overwritten by inner {inner_kind} target
]
[ tool . ruff . lint . isort ]
force-sort-within-sections = true
known-first-party = [
"esphome" ,
]
combine-as-imports = true
split-on-trailing-comma = false