content: [tool.poetry]
  name = "meshtastic"
  version = "2.7.3"
  description = "Python API & client shell for talking to Meshtastic devices"
  authors = ["Meshtastic Developers <contact@meshtastic.org>"]
  license = "GPL-3.0-only"
  readme = "README.md"
  
  [tool.poetry.dependencies]
  python = "^3.9,<3.14"                                               # 3.9 is needed for pandas, bleak requires <3.14
  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.8.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"
  