guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 510baaaad8f523bfc2bc60e44a8270df42a31730
Author: bdunahu <[email protected]>
AuthorDate: Mon Jan 5 16:20:48 2026 -0700

    gnu: Add python-meshtastic.
    
    * gnu/packages/radio.scm (python-meshtastic): New variable.
    
    Change-Id: I2c6ee6d02cfea3c0e300ef3ab29a246d68f6897b
    Signed-off-by: Sharlatan Hellseher <[email protected]>
---
 gnu/packages/radio.scm | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 4af5ab64ad..929b31d9d9 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2025 Jordan Moore <[email protected]>
 ;;; Copyright © 2025 Artyom V. Poptsov <[email protected]>
 ;;; Copyright © 2025 Laura Kirsch <[email protected]>
+;;; Copyright © 2026 bdunahu <[email protected]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -831,6 +832,58 @@ library.")
 devices that are supported by the SoapySDR library.")
     (license license:expat)))
 
+(define-public python-meshtastic
+  (package
+    (name "python-meshtastic")
+    (version "2.7.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/meshtastic/python";)
+              (commit version)
+              (recursive? #t))) ;TODO: package meshtastic/protobufs subproject
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0fdxlwdf1ga00wa7vbfvhhd0dpwcxakdlmrjs24zhd6pq5k7jicf"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      ;; tests: 220 passed, 3 skipped, 77 deselected
+      #:test-flags
+      ;; requires pytap2 input, which is not in Guix
+      #~(list "-k not test_tunnel_tunnel_arg")))
+    (native-inputs
+     (list python-poetry-core
+           python-pytest))
+    ;; unpackaged (optional) inputs: python-print-color, python-dash
+    ;; python-pytap2, python-dash-bootstrap-components
+    (propagated-inputs
+     (list python-argcomplete
+           python-bleak
+           python-dotmap
+           python-packaging
+           python-pandas
+           python-pandas-stubs
+           python-protobuf
+           python-pypubsub
+           python-pyqrcode
+           python-pyserial
+           python-pyyaml
+           python-requests
+           python-tabulate
+           python-wcwidth))
+    (home-page "https://github.com/meshtastic/python";)
+    (synopsis "Python library and CLI for talking to Meshtastic devices")
+    (description
+     "@url{https://meshtastic.org/,Meshtastic} Python is a small library which
+provides an easy API for sending and receiving messages over mesh radios.  It
+provides access to any of the operations/data available in the device user
+interface or the Android applications.  Events are delivered using a
+publish-subscribe model, and you can subscribe to only the message types you
+are interested in.")
+    (license license:gpl3))) ;XXX: both python API and protobufs
+
 (define-public qspectrumanalyzer
   (package
     (name "qspectrumanalyzer")

Reply via email to