guix_mirror_bot pushed a commit to branch python-team
in repository guix.

commit 28f501ac341f1c173ed433f2fe49d3f64488712e
Author: Sharlatan Hellseher <[email protected]>
AuthorDate: Tue Dec 16 12:38:21 2025 +0000

    gnu: python-jupyter-client: Simplfy bootstrapping.
    
    * gnu/packages/python-xyz.scm (python-jupyter-client): Take over
    definition of python-jupyter-client-bootsrap with adjustments.
    [arguments] <phases>: Remove 'hide-zmq-deprecation-warnings, and
    'set-tool-file-name, it uses Python's "subprocess.Popen" now; add
    'fix-pytest-config, and 'pre-check'; use default 'check.
    (python-jupyter-client-bootsrap): Inherit from python-jupyter-client
    
    Change-Id: I2cf3aceb4d33995853cd36e79034a5867e51444e
---
 gnu/packages/python-xyz.scm | 148 +++++++++++++++++++-------------------------
 1 file changed, 64 insertions(+), 84 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2065815fd9..f5a05851c8 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -14766,98 +14766,78 @@ connect strings, then issue SQL commands within 
IPython or IPython Notebook.")
 container data structures in Python).")
     (license license:asl2.0)))
 
+(define-public python-jupyter-client
+  (package
+    (name "python-jupyter-client")
+    (version "7.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jupyter_client" version))
+       (sha256
+        (base32 "0ck8fb0d582r8izkcn7087zmbmmqf9jkv2abd8p44867k9hdn5jn"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      ;; tests: 176 passed, 4 skipped, 2 warnings
+      #:tests? (not (%current-target-system))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-pytest-config
+            (lambda _
+              (substitute* "pyproject.toml"
+                ;; Do not fail on warnings.
+                (("\"error\",") ""))))
+          (add-before 'check 'pre-check
+            (lambda _
+              ;; Some tests try to write to $HOME.
+              (setenv "HOME" "/tmp")
+              ;; jupyter-core demands this be set.
+              (setenv "JUPYTER_PLATFORM_DIRS" "1")))
+          (add-after 'check 'fix-syntax-error
+            ;; Hatchling seems to generate entry scripts with invalid imports.
+            (lambda _
+              (substitute* (string-append #$output 
"/bin/.jupyter-kernelspec-real")
+                (("import KernelSpecApp.launch_instance") "import 
KernelSpecApp")))))))
+    (native-inputs
+     (list python-hatchling
+           python-pytest
+           python-pytest-asyncio
+           python-pytest-timeout
+           python-async-generator
+           python-ipython
+           python-ipykernel-bootstrap))
+    (inputs
+     (list iproute))
+    (propagated-inputs
+     (list python-dateutil
+           python-entrypoints
+           python-jupyter-core
+           python-nest-asyncio
+           python-pyzmq
+           python-tornado-6
+           python-traitlets))
+    (home-page "https://jupyter.org/";)
+    (synopsis "Jupyter protocol implementation and client libraries")
+    (description
+     "The @code{jupyter_client} package contains the reference implementation
+of the Jupyter protocol.  It also provides client and kernel management APIs
+for working with kernels, and the @code{jupyter kernelspec} entrypoint for
+installing @code{kernelspec}s for use with Jupyter frontends.")
+    (license license:bsd-3)))
+
 ;; Bootstrap variant of jupyter-client, which breaks the loop between ipykernel
 ;; and jupyter-client by removing the former from its native-inputs and
 ;; disabling tests.
 (define-public python-jupyter-client-bootstrap
   (hidden-package
-   (package
+   (package/inherit python-jupyter-client
      (name "python-jupyter-client-bootstrap")
-     (version "7.4.4")
-     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "jupyter_client" version))
-        (sha256
-         (base32
-          "0ck8fb0d582r8izkcn7087zmbmmqf9jkv2abd8p44867k9hdn5jn"))))
-     (build-system pyproject-build-system)
      (arguments
-      (list
-       #:tests? #f
-       #:phases
-       #~(modify-phases %standard-phases
-           ;; The deprecation warnings break the tests.
-           (add-after 'unpack 'hide-zmq-deprecation-warnings
-             (lambda _
-               (substitute* "pyproject.toml"
-                 (("\"ignore:There is no current event 
loop:DeprecationWarning:zmq\"," m)
-                  (string-append m "
-\"ignore:zmq.eventloop.ioloop.*:DeprecationWarning\",
-\"ignore:zmq.tests.BaseZMQTestCase.*:DeprecationWarning\"")))))
-           (add-after 'unpack 'set-tool-file-names
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "jupyter_client/localinterfaces.py"
-                 (("'ip'")
-                  (format #f "'~a'" (search-input-file inputs "sbin/ip"))))))
-           ;; Hatchling seems to generate entry scripts with invalid imports.
-           (add-after 'check 'fix-syntax-error
-             (lambda _
-               (substitute* (string-append #$output 
"/bin/.jupyter-kernelspec-real")
-                 (("import KernelSpecApp.launch_instance") "import 
KernelSpecApp")))))))
-     (inputs (list iproute))
-     (propagated-inputs
-      (list python-dateutil
-            python-entrypoints
-            python-jupyter-core
-            python-nest-asyncio
-            python-pyzmq
-            python-tornado-6
-            python-traitlets))
+      (substitute-keyword-arguments (package-arguments python-jupyter-client)
+        ((#:tests? _) #f)))
      (native-inputs
-      (list python-hatchling))
-     (home-page "https://jupyter.org/";)
-     (synopsis "Jupyter protocol implementation and client libraries")
-     (description
-      "The @code{jupyter_client} package contains the reference implementation
-of the Jupyter protocol.  It also provides client and kernel management APIs
-for working with kernels, and the @code{jupyter kernelspec} entrypoint for
-installing @code{kernelspec}s for use with Jupyter frontends.")
-     (license license:bsd-3))))
-
-(define-public python-jupyter-client
-  (let ((base python-jupyter-client-bootstrap))
-    (package
-      (inherit base)
-      (name "python-jupyter-client")
-      (arguments
-       (substitute-keyword-arguments (package-arguments base)
-         ((#:tests? _ #f)
-          (not (%current-target-system)))
-         ((#:phases phases #~%standard-phases)
-          #~(modify-phases #$phases
-              (replace 'check
-                (lambda* (#:key tests? #:allow-other-keys)
-                  (when tests?
-                    ;; Some tests try to write to $HOME.
-                    (setenv "HOME" "/tmp")
-                    ;; jupyter-core demands this be set.
-                    (setenv "JUPYTER_PLATFORM_DIRS" "1")
-                    (invoke "pytest" "-vv" "-Wignore::DeprecationWarning"
-                            "-k"
-                            ;; XXX "RuntimeError: Kernel died before replying
-                            ;; to kernel_info", but there's no more
-                            ;; information.
-                            "not test_start_parallel_process_kernels"))))))))
-      (native-inputs
-       (list python-hatchling
-             python-pytest
-             python-pytest-asyncio
-             python-pytest-timeout
-             python-async-generator
-             python-ipython
-             python-ipykernel-bootstrap))
-      (properties (alist-delete 'hidden? (package-properties base))))))
+      (list python-hatchling)))))
 
 (define-public python-backcall
   (package

Reply via email to