Files
bmspy/pyproject.toml
T
tim bac953bf48 Replace Poetry with uv
Use standard project metadata, dependency groups, and the uv build backend. The new lock preserves the previous dependency versions. Documentation and services use uv, and services leave their shared environment unchanged at startup.

Remove the entry point for the empty USB HID prototype. Exclude local prototypes, captures, and the external Type 7 lookup table from version control and distributions.
2026-10-08 14:03:09 +02:00

58 lines
1.4 KiB
TOML

[project]
name = "bmspy"
version = "2.1"
description = "bmspy is a tool to get information from a xiaoxiang-type BMS system"
authors = [{name = "Timothy Allen", email = "tim@treehouse.org.za"}]
license = "CC-BY-NC-SA-4.0"
license-files = ["LICENSE"]
readme = "README.md"
requires-python = ">=3.12,<4.0"
dependencies = [
"pyserial>=3.5",
]
[project.optional-dependencies]
influxdb = [
"influxdb3-python>=0.19.0",
"typing-extensions>=4.13",
]
prometheus = ["prometheus-client>=0.11.0"]
ecoflow-bt = [
"bleak>=0.21.0",
"ecdsa>=0.19.0",
"pycryptodome>=3.20.0",
]
[project.scripts]
bmspy = "bmspy:main"
bmspy-server = "bmspy.server:main"
bmspy-influxdb = "bmspy.influxdb:main"
bmspy-prometheus = "bmspy.prometheus:main"
bmspy-ups = "bmspy.ups:main"
bmspy-ecoflow-login = "bmspy.ecoflow_login:main"
[dependency-groups]
dev = [
"pytest>=8.0",
"pytest-cov>=7.1.0",
]
[build-system]
requires = ["uv_build>=0.12.5,<0.13"]
build-backend = "uv_build"
[tool.uv.build-backend]
module-root = ""
source-include = [
"tests/**", "docs/ecoflow-river2-fields.md",
"tools/ecoflow-bt.py", "*.service", "uv.lock",
]
# Do not distribute the external Type 7 table or the unfinished local USB stub.
source-exclude = ["/bmspy/ecoflow_keydata.py", "/bmspy/usbhid.py"]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"if __name__ == .__main__.:",
]