[tool.pytest.ini_options] testpaths = ["tests_unit", "tests"] asyncio_mode = "auto" addopts = "-p no:cacheprovider" [tool.coverage.run] source = ["custom_components/ninlight"] branch = true [tool.coverage.report] fail_under = 95 show_missing = true [tool.ruff] target-version = "py314" line-length = 100 exclude = ["docs/"] [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM", "RUF", "ASYNC"] # E501: line length is the formatter's job; long literals in test tables stay on one line. # RUF012: HA entities declare _attr_* lists as plain class attributes by convention. ignore = ["E501", "RUF012"] [tool.ruff.lint.isort] known-first-party = ["custom_components.ninlight", "tests", "tests_unit"] force-sort-within-sections = true