guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 13d37cbcb54ec34240615d7d6aeea1a2e4eb0005
Author: wrobell <[email protected]>
AuthorDate: Mon Jun 23 12:56:26 2025 +0100

    gnu: Add python-rbfly.
    
    * gnu/packages/python-xyz.scm (python-rbfly): New variable.
    
    Change-Id: Ibc5d61c9d4b8461c4e7976dc3f6cd1bec38dc0b2
    Co-authored-by: Sharlatan Hellseher <[email protected]>
    Signed-off-by: Sharlatan Hellseher <[email protected]>
---
 gnu/packages/python-xyz.scm | 57 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 5b82b19828..dd6ff9ea82 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -27591,6 +27591,63 @@ in human-readable HTML format.")
 executed more than a given number of times during a given period.")
     (license license:asl2.0)))
 
+(define-public python-rbfly
+  (package
+    (name "python-rbfly")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "rbfly" version))
+       (sha256
+        (base32 "019fs94qzbxb43vahcm0va53m5d4nxrib5pkl29m4hx9adcccpf6"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:test-flags #~(list "--pyargs" "rbfly")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-pytest-config
+            (lambda _
+              ;; Drop test coverage requirements.
+              (substitute* "pyproject.toml"
+                ((".*addopts.*") "")))))))
+    (native-inputs
+     (list python-cython-3
+           python-pytest
+           python-pytest-asyncio
+           python-pytest-timeout
+           python-setuptools
+           python-wheel))
+    (home-page "https://wrobell.dcmod.org/rbfly/";)
+    (synopsis "Work with RabbitMQ Streams in Python")
+    (description
+     "This package implements a functionality to deal with
+@url{https://www.rabbitmq.com/streams.html, RabbitMQ Streams} using
+@url{https://docs.python.org/3/library/asyncio.html, @code{asyncio}}.
+
+It is designed and implemented with the following qualities in mind:
+@itemize
+@item asynchronous Pythonic API with type annotations
+@item use of
+@url{https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol, AMQP}
+1.0 message format to enable interoperability between RabbitMQ Stream. clients
+@item auto reconnection to RabbitMQ broker with lazily created connection
+objects
+@end itemize
+
+Support of many RabbitMQ Streams broker features:
+@itemize
+@item publishing single messages, or in batches, with confirmation
+@item subscribing to a stream at a specific point in time, from a specific
+offset, or using offset reference
+@item stream message filtering
+@item writing stream offset reference
+@item message deduplication
+@item integration with AMQP 1.0 ecosystem at message format level
+@end itemize")
+    (license license:gpl3+)))
+
 (define-public python-jsonrpclib-pelix
   (package
     (name "python-jsonrpclib-pelix")

Reply via email to