Subject: [bug#41395] [PATCH 1/2] gnu: python-prompt-toolkit: Update to 3.0.5

From: Edouard Klein <[email-masked]>
Date: Tue, 19 May 2020 11:58:02 +0200

* /gnu/packages/python-xyz.scm (python-widgetsnbextension): Pin python-prompt-toolkit to version 2
* /gnu/packages/python-xyz.scm (python-ipywidgets): Pin python-prompt-toolkit to version 2
* /gnu/packages/python-xyz.scm (python-jupyter-console): Pin python-prompt-toolkit to version 2
* /gnu/packages/python-xyz.scm (python-prompt-toolkit): Update to 3.0.5
* /gnu/packages/python-xyz.scm (python-prompt-toolkit-2): New variable
* /gnu/packages/python-xyz.scm (python-prompt-toolkit-2-instead-of-prompt-toolkit): New variable
* /gnu/packages/machine-learning.scm (python-iml): Pin ipython to python-prompt-toolkit-2 variant
---
 gnu/packages/machine-learning.scm |  9 ++++--
 gnu/packages/python-xyz.scm       | 48 +++++++++++++++++++++++++++++--
 2 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 6552d171bf..5553b31bb5 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2019 Guillaume Le Vaillant <[email-masked]>
 ;;; Copyright © 2019 Brett Gilio <[email-masked]>
 ;;; Copyright © 2020 Konrad Hinsen <[email-masked]>
+;;; Copyright © 2020 Edouard Klein <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1803,12 +1804,14 @@ advanced research.")
          "1k8szlpm19rcwcxdny9qdm3gmaqq8akb4xlvrzyz8c2d679aak6l"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("ipython" ,python-ipython)
-       ("nose" ,python-nose)
+     `(("ipython" ,(prompt-toolkit-2-instead-of-prompt-toolkit
+                    python-ipython))
        ("numpy" ,python-numpy)
        ("pandas" ,python-pandas)
        ("scipy" ,python-scipy)))
-    (home-page "http://github.com/interpretable-ml/iml")
+    (native-inputs
+     `(("nose" ,python-nose)))
+    (home-page "https://github.com/interpretable-ml/iml")
     (synopsis "Interpretable Machine Learning (iML) package")
     (description "Interpretable ML (iML) is a set of data type objects,
 visualizations, and interfaces that can be used by any method designed to
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b8a51570c3..5fd7e274e9 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -8922,6 +8922,7 @@ interactive computing.")
     (build-system python-build-system)
     (propagated-inputs
      `(("python-ipykernel" ,python-ipykernel)
+       ("python-prompt-toolkit" ,python-prompt-toolkit-2)
        ("python-notebook" ,python-notebook)))
     (native-inputs
      `(("python-certifi" ,python-certifi)
@@ -8950,6 +8951,7 @@ notebooks.")
     (propagated-inputs
      `(("python-ipython" ,python-ipython)
        ("python-traitlets" ,python-traitlets)
+       ("python-prompt-toolkit" ,python-prompt-toolkit-2)
        ("python-widgetsnbextension" ,python-widgetsnbextension)))
     (native-inputs
      `(("python-nose" ,python-nose)
@@ -8980,7 +8982,7 @@ in the data.")
     (propagated-inputs
      `(("python-ipykernel" ,python-ipykernel)
        ("python-jupyter-client" ,python-jupyter-client)
-       ("python-prompt-toolkit" ,python-prompt-toolkit)
+       ("python-prompt-toolkit" ,python-prompt-toolkit-2)
        ("python-pygments" ,python-pygments)))
     (native-inputs
      `(("python-nose" ,python-nose)))
@@ -12049,6 +12051,44 @@ collections of data.")
   (package-with-python2 python-backpack))
 
 (define-public python-prompt-toolkit
+  (package
+    (name "python-prompt-toolkit")
+    (version "3.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "prompt_toolkit" version))
+       (sha256
+        (base32
+         "1j3x5s4gp4ih73sbcni0a0vffbzvrxbrbnkvb3fzjgxn810ilgan"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'check)
+         (add-after 'install 'post-install-check
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             ;; HOME is needed for the test
+             ;; "test_pathcompleter_can_expanduser".
+             (setenv "HOME" "/tmp")
+             (add-installed-pythonpath inputs outputs)
+             (invoke "py.test"))))))
+    (propagated-inputs
+     `(("python-wcwidth" ,python-wcwidth)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page
+     "https://github.com/prompt-toolkit/python-prompt-toolkit")
+    (synopsis "Library for building command line interfaces in Python")
+    (description
+     "Prompt-Toolkit is a library for building interactive command line
+interfaces in Python.  It's like GNU Readline but it also features syntax
+highlighting while typing, out-of-the-box multi-line input editing, advanced
+code completion, incremental search, support for Chinese double-width
+characters, mouse support, and auto suggestions.")
+    (license license:bsd-3)))
+
+(define-public python-prompt-toolkit-2
   (package
     (name "python-prompt-toolkit")
     (version "2.0.7")
@@ -12077,7 +12117,7 @@ collections of data.")
        ("python-pygments" ,python-pygments)))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
-    (home-page "https://github.com/jonathanslenders/python-prompt-toolkit")
+    (home-page "https://github.com/prompt-toolkit/python-prompt-toolkit")
     (synopsis "Library for building command line interfaces in Python")
     (description
      "Prompt-Toolkit is a library for building interactive command line
@@ -12104,6 +12144,10 @@ characters, mouse support, and auto suggestions.")
 (define-public python2-prompt-toolkit-1
   (package-with-python2 python-prompt-toolkit-1))
 
+(define-public prompt-toolkit-2-instead-of-prompt-toolkit
+  (package-input-rewriting/spec
+   `(("python-prompt-toolkit" . ,(const python-prompt-toolkit-2)))))
+
 (define-public python-jedi
   (package
     (name "python-jedi")
-- 
2.26.2