Subject: [bug#67999] [PATCH v2] gnu: Add kalamine.

From: Sharlatan Hellseher <[email-masked]>
Date: Sat, 2 Mar 2024 14:08:04 +0000

From: Adriel Dumas--Jondeau <[email-masked]>

* gnu/packages/python-xyz.scm (kalamine): New variable.

Change-Id: If13f258440bb35973b3d79a87fea68e4708845bf
Signed-off-by: Sharlatan Hellseher <[email-masked]>
---
 gnu/packages/python-xyz.scm | 41 +++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index fc6e997b6c..7410f40465 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -147,6 +147,7 @@
 ;;; Copyright © 2023 Attila Lendvai <[email-masked]>
 ;;; Copyright © 2023, 2024 Troy Figiel <[email-masked]>
 ;;; Copyright © 2024 Timothee Mathieu <[email-masked]>
+;;; Copyright © 2024 Adriel Dumas--Jondeau <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -6375,6 +6376,46 @@ (define-public autokey
 flexibility and power of the Python language.")
     (license license:gpl3+)))
 
+(define-public kalamine
+  (package
+    (name "kalamine")
+    (version "0.33")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "kalamine" version))
+       (sha256
+        (base32 "11hci02lvjc8657lylfcdw24bff0g1q0qxi8wcrjgqcqka9vm63c"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'check 'make-test-layouts
+            (lambda _
+              (apply invoke
+                     (cons* "python" "-m" "kalamine.cli" "build"
+                            (find-files "layouts" "\\.toml")))
+              (invoke "python" "-m" "kalamine.cli" "new" "test.toml"))))))
+    (propagated-inputs
+     (list python-click
+           python-livereload
+           python-lxml
+           python-progress
+           python-pyyaml
+           python-tomli))
+    ;; TODO: Add python-pytest-ruff to native-inputs once it has been
+    ;; packaged.
+    (native-inputs
+     (list python-hatchling python-mypy python-pytest))
+    (home-page "https://github.com/OneDeadKey/kalamine")
+    (synopsis "Keyboard Layout Maker")
+    (description
+     "Kalamine provides a CLI to create advanced keyboard layout from a
+textual portable description.  It also supports layout emulation via web
+browser.")
+    (license license:expat)))
+
 (define-public python-dm-tree
   (package
     (name "python-dm-tree")

base-commit: 4a0549be52f3f46fbce61342d8de30f7b83130c5
-- 
2.41.0