~ruther/guix-local

6e8d2d28e9dbcaeca73c39d45c8db3cef6dfa39f — Sharlatan Hellseher 3 months ago 4a41327
gnu: python-jupyter-client: Move to jupyter.

* gnu/packages/python-xyz.scm (python-jupyter-client,
python-jupyter-client-bootstrap): Move from here ...
* gnu/packages/jupyter.scm: ... to here.

Change-Id: I036632e68c808877de14da7f91863be50cdafd61
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2 files changed, 76 insertions(+), 74 deletions(-)

M gnu/packages/jupyter.scm
M gnu/packages/python-xyz.scm
M gnu/packages/jupyter.scm => gnu/packages/jupyter.scm +76 -1
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Danny Milosavljevic <dannym@friendly-machines.com>
;;; Copyright © 2014, 2024 Danny Milosavljevic <dannym@friendly-machines.com>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2019, 2021-2025 Ricardo Wurmus <rekado@elephly.net>


@@ 13,6 13,7 @@
;;; Copyright © 2021, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2022 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2022, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2023 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2023 Greg Hogan <code@greghogan.com>
;;; Copyright © 2024 Danny Milosavljevic <dannym@friendly-machines.com>


@@ 44,6 45,7 @@
  #:use-module (guix build-system cmake)
  #:use-module (guix build-system pyproject)
  #:use-module (guix build-system python)
  #:use-module (guix utils)
  #:use-module (gnu packages algebra)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages check)


@@ 430,6 432,79 @@ interactive computing.")
to Jupyter Server for their Python Web application backend.")
    (license license:bsd-3)))

(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/inherit python-jupyter-client
     (name "python-jupyter-client-bootstrap")
     (arguments
      (substitute-keyword-arguments (package-arguments python-jupyter-client)
        ((#:tests? _) #f)))
     (native-inputs
      (list python-hatchling)))))

(define-public python-jupyter-core
  (package
    (name "python-jupyter-core")

M gnu/packages/python-xyz.scm => gnu/packages/python-xyz.scm +0 -73
@@ 14812,79 14812,6 @@ 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/inherit python-jupyter-client
     (name "python-jupyter-client-bootstrap")
     (arguments
      (substitute-keyword-arguments (package-arguments python-jupyter-client)
        ((#:tests? _) #f)))
     (native-inputs
      (list python-hatchling)))))

(define-public python-backcall
  (package
    (name "python-backcall")