[tool.poetry] name = "meshtastic" version = "2.7.5" description = "Python API & client shell for talking to Meshtastic devices" authors = ["Meshtastic Developers "] license = "GPL-3.0-only" readme = "README.md" [tool.poetry.dependencies] python = "^3.9,<3.15" # 3.9 is needed for pandas pyserial = "^3.5" protobuf = ">=4.21.12" tabulate = "^0.9.0" requests = "^2.31.0" pyyaml = "^6.0.1" pypubsub = "^4.0.3" bleak = ">=0.22.3" packaging = "^24.0" argcomplete = { version = "^3.5.2", optional = true } pyqrcode = { version = "^1.2.1", optional = true } dotmap = { version = "^1.3.30", optional = true } print-color = { version = "^0.4.6", optional = true } dash = { version = "^2.17.1", optional = true } pytap2 = { version = "^2.3.0", optional = true } dash-bootstrap-components = { version = "^1.6.0", optional = true } pandas = { version = "^2.2.2", optional = true } pandas-stubs = { version = "^2.2.2.240603", optional = true } wcwidth = {version = "^0.2.13", optional = true} [tool.poetry.group.dev.dependencies] hypothesis = "^6.103.2" pytest = "^8.2.2" pytest-cov = "^5.0.0" pdoc3 = "^0.10.0" autopep8 = "^2.1.0" pylint = "^3.2.3" pyinstaller = "^6.10.0" mypy = "^1.10.0" mypy-protobuf = "^3.3.0" types-protobuf = "^5.26.0.20240422" types-tabulate = "^0.9.0.20240106" types-requests = "^2.31.0.20240406" types-setuptools = "^69.5.0.20240423" types-pyyaml = "^6.0.12.20240311" pyarrow-stubs = "^10.0.1.7" [tool.poetry.group.powermon] optional = true [tool.poetry.group.powermon.dependencies] riden = { git = "https://github.com/geeksville/riden.git#1.2.1" } ppk2-api = "^0.9.2" parse = "^1.20.2" pyarrow = "^16.1.0" platformdirs = "^4.2.2" # If you are doing power analysis you might want these extra devtools [tool.poetry.group.analysis] optional = true [tool.poetry.group.analysis.dependencies] jupyterlab = "^4.2.2" matplotlib = "^3.9.0" ipympl = "^0.9.4" ipywidgets = "^8.1.3" jupyterlab-widgets = "^3.0.11" [tool.poetry.extras] cli = ["pyqrcode", "print-color", "dotmap", "argcomplete", "wcwidth"] tunnel = ["pytap2"] analysis = ["dash", "dash-bootstrap-components", "pandas", "pandas-stubs"] [tool.poetry.scripts] meshtastic = "meshtastic.__main__:main" mesh-tunnel = "meshtastic.__main__:tunnelMain [tunnel]" mesh-analysis = "meshtastic.analysis.__main__:main [analysis]" # "Poe the poet" (optional) provides an easy way of running non python tools inside the poetry virtualenv # if you would like to use it run "pipx install poe" # then you can do stuff like "poe code" to run vscode inside this environment [tool.poe.tasks] code = "code ." juypter = "poetry run jupyter lab" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"