|
1 | | -[build-system] |
2 | | -requires = ["setuptools", "setuptools-scm"] |
3 | | -build-backend = "setuptools.build_meta" |
4 | | - |
5 | | -[tool.setuptools] |
6 | | -license-files = [] # https://github.com/astral-sh/uv/issues/9513 |
7 | | - |
8 | | -[project] |
9 | | -name = "sunsynk" |
10 | | -version = "0.9.0" |
11 | | -description = "Library to interface Deye/Sunsynk Hybrid Inverters" |
12 | | -keywords = ["sunsynk", "deye", "inverter", "modbus", "asyncio"] |
13 | | -readme = "README.md" |
14 | | -authors = [{ name = "Johann Kellerman", email = "kellerza@gmail.com" }] |
15 | | -license = { text = "Apache-2.0" } |
16 | | -classifiers = [ |
17 | | - "Development Status :: 4 - Beta", |
18 | | - "Intended Audience :: Developers", |
19 | | - "Natural Language :: English", |
20 | | - "Programming Language :: Python :: 3", |
21 | | - "Programming Language :: Python :: 3 :: Only", |
22 | | - "Programming Language :: Python :: 3.12", |
23 | | - "Programming Language :: Python :: 3.13", |
24 | | -] |
25 | | -requires-python = ">=3.12" |
26 | | -dependencies = [ |
27 | | - "attrs>=25,<26", |
28 | | - "cattrs>=25,<26", |
29 | | - "mqtt-entity[options]>=1,<2", |
30 | | - "prettytable==3.16.0", |
31 | | - "pymodbus[serial]==3.9.2", |
32 | | -] |
33 | | - |
34 | | -[project.urls] |
35 | | -Homepage = "https://kellerza.github.io/sunsynk/" |
36 | | - |
37 | | -[project.optional-dependencies] |
38 | | -umodbus = ["async_modbus==0.2.2", "connio==0.2.0", "umodbus==1.0.4"] |
39 | | -solarman = ["pysolarmanv5==3.0.6"] |
40 | | - |
41 | | -[dependency-groups] |
42 | | -dev = [ |
43 | | - "mypy", |
44 | | - "pytest-asyncio", |
45 | | - "pytest-cov", |
46 | | - "pytest-github-actions-annotate-failures", |
47 | | - "pytest", |
48 | | - "types-PyYAML", |
49 | | -] |
50 | | - |
51 | | -[tool.mypy] |
52 | | -disallow_untyped_defs = true |
53 | | -ignore_missing_imports = true |
54 | | -exclude = "build/.*" |
55 | | -enable_error_code = ["ignore-without-code"] |
56 | | - |
57 | | -[tool.pytest.ini_options] |
58 | | -pythonpath = [".", "src"] |
59 | | -filterwarnings = "ignore:.+@coroutine.+deprecated.+" |
60 | | -testpaths = "src\tests" |
61 | | -norecursedirs = [".git", "modules"] |
62 | | -log_cli = true |
63 | | -log_cli_level = "DEBUG" |
64 | | -asyncio_mode = "auto" |
65 | | -addopts = "--cov=src --cov-report xml:cov.xml" |
66 | | - |
67 | | -[tool.ruff] |
68 | | -include = ["src/**/*.py"] |
69 | | - |
70 | | -[tool.ruff.format] |
71 | | -line-ending = "lf" |
72 | | -docstring-code-format = true |
73 | | - |
74 | | -[tool.ruff.lint] |
75 | | -select = [ |
76 | | - "A", # flake8-builtins |
77 | | - "ASYNC", # flake8-async |
78 | | - "B", # bugbear |
79 | | - "D", # pydocstyle |
80 | | - "E", # pycodestyle |
81 | | - "F", # pyflakes |
82 | | - "I", # isort |
83 | | - "PGH", # pygrep-hooks |
84 | | - "PIE", # flake8-pie |
85 | | - "PL", # pylint |
86 | | - "PTH", # flake8-pathlib |
87 | | - "PYI", # flake8-pyi |
88 | | - "RUF", # ruff |
89 | | - "UP", # pyupgrade |
90 | | - "W", # pycodestyle |
91 | | -] |
92 | | -ignore = ["E203", "E501", "D203", "D213", "PLR2004"] |
93 | | - |
94 | | -[tool.ruff.lint.pylint] |
95 | | -max-args = 7 |
| 1 | +[build-system] |
| 2 | +build-backend = "setuptools.build_meta" |
| 3 | + |
| 4 | +requires = [ "setuptools", "setuptools-scm" ] |
| 5 | + |
| 6 | +[project] |
| 7 | +name = "sunsynk" |
| 8 | +version = "0.9.0" |
| 9 | +description = "Library to interface Deye/Sunsynk Hybrid Inverters" |
| 10 | +readme = "README.md" |
| 11 | +keywords = [ "asyncio", "deye", "inverter", "modbus", "sunsynk" ] |
| 12 | +license = { text = "Apache-2.0" } |
| 13 | +authors = [ { name = "Johann Kellerman", email = "kellerza@gmail.com" } ] |
| 14 | +requires-python = ">=3.12" |
| 15 | +classifiers = [ |
| 16 | + "Development Status :: 4 - Beta", |
| 17 | + "Intended Audience :: Developers", |
| 18 | + "Natural Language :: English", |
| 19 | + "Programming Language :: Python :: 3 :: Only", |
| 20 | + "Programming Language :: Python :: 3.12", |
| 21 | + "Programming Language :: Python :: 3.13", |
| 22 | +] |
| 23 | +dependencies = [ |
| 24 | + "attrs>=25,<26", |
| 25 | + "cattrs>=25,<26", |
| 26 | + "mqtt-entity[options]>=1,<2", |
| 27 | + "prettytable==3.16", |
| 28 | + "pymodbus[serial]==3.11.2", |
| 29 | +] |
| 30 | + |
| 31 | +optional-dependencies.solarman = [ "pysolarmanv5==3.0.6" ] |
| 32 | +optional-dependencies.umodbus = [ "async-modbus==0.2.2", "connio==0.2", "umodbus==1.0.4" ] |
| 33 | +urls.Homepage = "https://kellerza.github.io/sunsynk/" |
| 34 | + |
| 35 | +[dependency-groups] |
| 36 | +dev = [ |
| 37 | + "codespell>=2.4.1", |
| 38 | + "mypy", |
| 39 | + "pyproject-fmt>=2.6", |
| 40 | + "pytest", |
| 41 | + "pytest-asyncio", |
| 42 | + "pytest-cov", |
| 43 | + "pytest-github-actions-annotate-failures", |
| 44 | + "types-pyyaml", |
| 45 | +] |
| 46 | + |
| 47 | +[tool.setuptools] |
| 48 | +license-files = [ ] # https://github.com/astral-sh/uv/issues/9513 |
| 49 | + |
| 50 | +[tool.ruff] |
| 51 | +include = [ "src/**/*.py" ] |
| 52 | + |
| 53 | +format.line-ending = "lf" |
| 54 | +format.docstring-code-format = true |
| 55 | +lint.select = [ |
| 56 | + "A", # flake8-builtins |
| 57 | + "ASYNC", # flake8-async |
| 58 | + "B", # bugbear |
| 59 | + "D", # pydocstyle |
| 60 | + "E", # pycodestyle |
| 61 | + "F", # pyflakes |
| 62 | + "I", # isort |
| 63 | + "PGH", # pygrep-hooks |
| 64 | + "PIE", # flake8-pie |
| 65 | + "PL", # pylint |
| 66 | + "PTH", # flake8-pathlib |
| 67 | + "PYI", # flake8-pyi |
| 68 | + "RUF", # ruff |
| 69 | + "UP", # pyupgrade |
| 70 | + "W", # pycodestyle |
| 71 | +] |
| 72 | +lint.ignore = [ "D203", "D213", "E203", "E501", "PLR2004" ] |
| 73 | +lint.pylint.max-args = 7 |
| 74 | + |
| 75 | +[tool.codespell] |
| 76 | +skip = "data,*.map,package-lock.json,*.map,www/docs/.vitepress/cache/*" |
| 77 | +ignore-words-list = "HASS,hass,Hass,ist" |
| 78 | + |
| 79 | +[tool.pytest.ini_options] |
| 80 | +pythonpath = [ ".", "src" ] |
| 81 | +filterwarnings = "ignore:.+@coroutine.+deprecated.+" |
| 82 | +testpaths = "src\tests" |
| 83 | +norecursedirs = [ ".git", "modules" ] |
| 84 | +log_cli = true |
| 85 | +log_cli_level = "DEBUG" |
| 86 | +asyncio_mode = "auto" |
| 87 | +addopts = "--cov=src --cov-report xml:cov.xml" |
| 88 | + |
| 89 | +[tool.mypy] |
| 90 | +disallow_untyped_defs = true |
| 91 | +ignore_missing_imports = true |
| 92 | +exclude = "build/.*" |
| 93 | +enable_error_code = [ "ignore-without-code" ] |
0 commit comments