diff mbox

[v3] gnu: Add python-prompt-toolkit, python2-prompt-toolkit.

Message ID 20160629094040.01b99f6a@scratchpost.org
State New
Headers show

Commit Message

Danny Milosavljevic June 29, 2016, 7:40 a.m. UTC
* gnu/packages/python.scm (python-prompt-toolkit, python2-prompt-toolkit): New variables.

Signed-off-by: Danny Milosavljevic <dannym+a@scratchpost.org>
---
 gnu/packages/python.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

Comments

Danny Milosavljevic June 29, 2016, 9:30 a.m. UTC | #1
On Wed, 29 Jun 2016 09:40:40 +0200
Danny Milosavljevic <dannym+a@scratchpost.org> wrote:

> +(define-public python2-prompt-toolkit
> +  (let ((base (package-with-python2 (strip-python2-variant python-prompt-toolkit))))
> +    (package
> +      (inherit base)
> +      (native-inputs
> +       `(("python2-setuptools" ,python2-setuptools)
> +         ,@(package-native-inputs base))))))


Hmm. Now that I made it a native input instead of propagated input, the python2-wcwidth that is compiled alongside python2-prompt-toolkit doesn't find setuptools anymore. Why?
Leo Famulari June 30, 2016, 2:23 a.m. UTC | #2
On Wed, Jun 29, 2016 at 11:30:33AM +0200, Danny Milosavljevic wrote:
> On Wed, 29 Jun 2016 09:40:40 +0200
> Danny Milosavljevic <dannym+a@scratchpost.org> wrote:
> 
> > +(define-public python2-prompt-toolkit
> > +  (let ((base (package-with-python2 (strip-python2-variant python-prompt-toolkit))))
> > +    (package
> > +      (inherit base)
> > +      (native-inputs
> > +       `(("python2-setuptools" ,python2-setuptools)
> > +         ,@(package-native-inputs base))))))
> 
> 
> Hmm. Now that I made it a native input instead of propagated input, the python2-wcwidth that is compiled alongside python2-prompt-toolkit doesn't find setuptools anymore. Why?

In python-wcwidth and python-prompt-toolkit, the 'properties' field that
makes the python2-variant system work is missing. I missed that in my
review of python-wcwidth.

I'll push a follow up to that commit, and then push this patch with the
properties field added as well.
Danny Milosavljevic July 6, 2016, 8:52 a.m. UTC | #3
I can confirm that adding

  (properties `((python2-variant . ,(delay python2-prompt-toolkit))))

and 

  (properties `((python2-variant . ,(delay python2-wcwidth))))

, respectively, makes python2-prompt-toolkit work for Python 2 as well.
diff mbox

Patch

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index d295467..145e453 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -9663,3 +9663,41 @@  implementation for Python.")
       (propagated-inputs
        `(("python2-ipaddress" ,python2-ipaddress)
          ,@(package-propagated-inputs base))))))
+
+(define-public python-prompt-toolkit
+ (package
+  (name "python-prompt-toolkit")
+  (version "1.0.3")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "https://pypi.python.org/packages/"
+             "8d/de/412f23919929c01e6b55183e124623f705e4b91796d3d2dce2cb53d595ad/"
+             "prompt_toolkit-" version ".tar.gz"))
+      (sha256
+        (base32
+          "18lbmmkyjf509klc3217lq0x863pfzix779zx5kp9lms1iph4pl0"))))
+  (build-system python-build-system)
+  (inputs `(("python-wcwidth" ,python-wcwidth)
+            ("python-pygments" ,python-pygments)))
+  (native-inputs `(("python-six" ,python-six)))
+  (home-page
+    "https://github.com/jonathanslenders/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 also features syntax highlighting while typing,
+out-of-the-box multi-line input editing, advanced code completion, incremental search,
+it works properly with Chinese double-width characters, it has mouse support,
+auto suggestions etc.")
+  (license bsd-3)))
+
+(define-public python2-prompt-toolkit
+  (let ((base (package-with-python2 (strip-python2-variant python-prompt-toolkit))))
+    (package
+      (inherit base)
+      (native-inputs
+       `(("python2-setuptools" ,python2-setuptools)
+         ,@(package-native-inputs base))))))