[tool.poetry] name = "bmspy" version = "2.1" description = "bmspy is a tool to get information from a xiaoxiang-type BMS system" authors = ["Timothy Allen "] license = "CC BY-NC-SA 4.0" readme = "README.md" include = [ {path = "docs/ecoflow-river2-fields.md", format = "sdist"}, {path = "tools/ecoflow-bt.py", format = "sdist"}, ] [tool.poetry.dependencies] python = ">=3.12,<4.0" pyserial = ">=3.5" influxdb3-python = {version = ">=0.19.0", optional = true, extras = ["influxdb"]} typing-extensions = {version = ">=4.13", optional = true, extras = ["influxdb"]} prometheus-client = {version = ">=0.11.0", optional = true, extras = ["prometheus"]} bleak = {version = ">=0.21.0", optional = true, extras = ["ecoflow-bt"]} ecdsa = {version = ">=0.19.0", optional = true, extras = ["ecoflow-bt"]} pycryptodome = {version = ">=3.20.0", optional = true, extras = ["ecoflow-bt"]} [tool.poetry.extras] influxdb = ["influxdb3-python", "typing-extensions"] prometheus = ["prometheus-client"] ecoflow-bt = ["bleak", "ecdsa", "pycryptodome"] [tool.poetry.group.dev.dependencies] pytest = ">=8.0" pytest-cov = ">=7.1.0" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.coverage.report] exclude_lines = [ "pragma: no cover", "if __name__ == .__main__.:", ] [tool.poetry.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-usbd = "bmspy.usbhid:main" bmspy-ecoflow-login = "bmspy.ecoflow_login:main"