Subject: [PATCH] gnu: Add python-portend.

From: Troy Figiel <[email-masked]>
Date: Mon, 1 Jan 2024 18:53:47 +0100

* gnu/packages/python-web.scm (python-portend): New variable.
---
 gnu/packages/python-web.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 06b578dac7..8eed01c3e2 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -60,6 +60,7 @@
 ;;; Copyright © 2022 Baptiste Strazzulla <[email-masked]>
 ;;; Copyright © 2023 John Kehayias <[email-masked]>
 ;;; Copyright © 2023 Ivan Vilata-i-Balaguer <[email-masked]>
+;;; Copyright © 2024 Troy Figiel <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -201,6 +202,38 @@ (define-public python-lazr-uri
 reusable library for parsing, manipulating, and generating URIs.")
     (license license:lgpl3)))
 
+(define-public python-portend
+  (package
+    (name "python-portend")
+    (version "3.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "portend" version))
+       (sha256
+        (base32 "0wpvixicc3d0lack65554mvdrrckkn18p1xcgiv9v5cwq59a6l2j"))))
+    (build-system pyproject-build-system)
+    ;; Do not test pyproject.toml with python-pytest-checkdocs as it tries to
+    ;; download dependencies.
+    (arguments
+     '(#:test-flags '("-k" "not project")))
+    (propagated-inputs (list python-tempora))
+    ;; TODO: Add python-pytest-ruff to native-inputs once it has been packaged.
+    (native-inputs (list python-pytest
+                         python-pytest-black
+                         python-pytest-checkdocs
+                         python-pytest-cov
+                         python-pytest-enabler
+                         python-pytest-mypy))
+    (home-page "https://github.com/jaraco/portend")
+    (synopsis "Monitor TCP ports for bound or unbound states")
+    (description
+     "@code{python-portend} can be used to monitor TCP ports for bound or
+unbound states.  For example, waiting for a port to be occupied or freed
+within a set timeout.  @code{python-portend} can also be used directly from
+the command line.")
+    (license license:expat)))
+
 (define-public python-prawcore
   (package
     (name "python-prawcore")

base-commit: ff586211aaf0e3b468ff3cedc5ede18e8ab529dd
-- 
2.40.1