2Fake/devolo_plc_api

View on GitHub
pyproject.toml

Summary

Maintainability
Test Coverage
[build-system]
requires = ["setuptools>=65", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"

[project]
authors = [
    { name = "Markus Bong", email = "m.bong@famabo.de" },
    { name = "Guido Schmitz", email = "guido.schmitz@fedaix.de"}
]
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
    "Operating System :: OS Independent",
]
description = "devolo PLC devices in Python"
dependencies = [
    "ifaddr>=0.1.7",
    "httpx>=0.21.0",
    "protobuf>=4.22.0",
    "segno>=1.5.2",
    "zeroconf>=0.70.0",
]
dynamic = [
    "version",
]
license = { file = "LICENSE" }
name = "devolo_plc_api"
readme = "README.md"
requires-python = ">= 3.8"
urls = {changelog = "https://github.com/2Fake/devolo_plc_api/docs/CHANGELOG.md", homepage = "https://github.com/2Fake/devolo_plc_api"}

[project.optional-dependencies]
dev = [
    "pre-commit",
    "mypy>=1.8.0"
]
test = [
    "pytest",
    "pytest-asyncio",
    "pytest-cov",
    "pytest-httpx>=0.18.0",
    "typing-extensions",
    "syrupy",
]

[tool.black]
line-length = 127
force-exclude = '.*_pb2\.py|.*\.pyi'

[tool.isort]
combine_as_imports = true
filter_files = true
forced_separate = ["tests"]
line_length = 127
profile = "black"
skip_glob = "*_pb2.py"

[tool.mypy]
ignore_missing_imports = true

[tool.pytest.ini_options]
asyncio_mode = "auto"

[tool.ruff]
exclude = ["*_pb2.py", "*.pyi"]
line-length = 127
target-version = "py38"

[tool.ruff.lint]
ignore = ["ANN101", "ANN401", "COM812", "D203", "D205", "D212", "FBT001", "N818"]
select = ["ALL"]

[tool.ruff.lint.isort]
combine-as-imports = true
forced-separate = ["tests"]

[tool.ruff.lint.per-file-ignores]
"tests/*" = ["ANN201", "ARG", "PLR2004", "PT004", "PT012", "S", "SLF001"]
"scripts/*" = ["FBT002", "INP001"]

[tool.setuptools]
packages = { find = {exclude=["docs*", "script*", "tests*"]} }

[tool.setuptools_scm]