Subject: [PATCH] gnu: Add python-textual.
From: Brian Kubisiak <[email-masked]>
To: [email-masked]
Date: Sun, 25 Sep 2022 05:59:24 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/python-xyz.scm (python-textual): New variable.
---
 gnu/packages/python-xyz.scm | 44 +++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ffcb023d60..5fd7dad8e3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -15973,6 +15973,50 @@ (define-public python-rich
 syntax highlighting, markdown and more to the terminal.")
     (license license:expat)))
 
+(define-public python-textual
+  (package
+    (name "python-textual")
+    (version "0.1.18")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "textual" version))
+              (sha256
+               (base32
+                "08yg5a51hz1axfj5hx28hx31gq5apcj6vpkkmawmiplisa73z25j"))))
+    (build-system python-build-system)
+    (arguments
+     (list #:phases
+       #~(modify-phases %standard-phases
+           (replace 'check
+             (lambda* (#:key inputs tests? #:allow-other-keys)
+               (when tests?
+                 (copy-recursively (string-append
+                                    (assoc-ref inputs "tests") "/tests")
+                                   "tests")
+                 (invoke "python" "-m" "pytest" "-vv")))))))
+    (propagated-inputs
+     (list python-rich python-typing-extensions))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("tests"
+        ;; The release on pypi comes without tests.  We can't build from this
+        ;; checkout, though, because installation requires an invocation of
+        ;; poetry.
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/Textualize/textual")
+                 (commit (string-append "v" version))))
+           (file-name (git-file-name name version))
+           (sha256
+            (base32
+             "0b3ycwqhp21mg9fvmadgxhgbvkwq6fd784l2xcmvy77rravrnnax"))))))
+    (home-page "https://github.com/Textualize/textual")
+    (synopsis "Build TUIs in python")
+    (description "Textual is a TUI (Text User Interface) framework for Python
+inspired by modern web development.")
+    (license license:expat)))
+
 (define-public python-magic
   (package
     (name "python-magic")
-- 
2.37.3