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

From: Adriel Dumas--Jondeau <[email-masked]>
Date: Fri, 1 Mar 2024 12:32:22 +0100

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

Change-Id: If13f258440bb35973b3d79a87fea68e4708845bf
---
 gnu/packages/python-xyz.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

Hi o/

Thank you for your answers!
Here's a squashed version of previous patches, as if V1 never existed in
the first place. Does that looks good to you?

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 29e2bfd222..64060d44e3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -6327,6 +6327,43 @@ (define-public autokey
 flexibility and power of the Python language.")
     (license license:gpl3+)))
 
+(define-public python-kalamine
+  (package
+    (name "python-kalamine")
+    (version "0.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "kalamine" version))
+       (sha256
+        (base32 "1aqwfp0m2fr9miwh0d8ljmb58k4mw7bp9bzn5fk3kyj2d6zr0cxg"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (apply invoke
+                            (cons* "python" "-m" "kalamine.cli" "make"
+                                   (find-files "layouts" "\\.toml")))
+                     (invoke "pytest" "-vv" "tests")))))))
+    (propagated-inputs (list python-click python-livereload python-lxml
+                             python-pyyaml python-tomli python-hatchling))
+    (native-inputs (list python-black
+                         python-isort
+                         python-mypy
+                         python-pytest))
+    (home-page "https://github.com/OneDeadKey/kalamine")
+    (synopsis "A cross-platform Keyboard Layout Maker")
+    (description "Kalamine provides a CLI to create advanced keyboard layout
+for Windows (@file{.ahk} or @file{.klc} files), MacOS (@file{.keylayout} files)
+and GNU/Linux (@file{.xkb_custom} or @file{.xkb} files) from a textual,
+portable description.  It also provides @command{xkalamine} to install XKB
+files on GNU/Linux in either @file{/usr/share/X11/xbk} or the rootless
+user-only equivalent @file{.config/xkb}.")
+    (license license:expat)))
+
 (define-public python-dm-tree
   (package
     (name "python-dm-tree")

base-commit: 203344cc37c8a7df1ec1454381b5069d53ce7f9e
prerequisite-patch-id: cefc174692b72660bf5ed4c03442f33dbaf6e784
prerequisite-patch-id: 6b1015959d122056b883e766306b0ff8ba30bde9
prerequisite-patch-id: a3116f7908bc9fdb237e4cde52260856b083596d
prerequisite-patch-id: db1d3d945579284d401944b18fcbc506a000714f
prerequisite-patch-id: 84bff5e4689979f565315edf96250ccc367f8fb8
prerequisite-patch-id: bd69d4115bc86b7d2739e9890625788f1fa5a006
prerequisite-patch-id: 0834ca6f4e7f1ed91b5dcb679096a953a6e36273
-- 
2.41.0