Subject: [bug#49169] [PATCH v2 13/16] import: pypi: Emit new-style package inputs.

From: Ludovic Courtès <[email-masked]>
Date: Wed, 30 Jun 2021 22:48:29 +0200

* guix/import/pypi.scm (maybe-inputs): Wrap PACKAGE-INPUTS in 'list'
instead of 'quasiquote'.
(compute-inputs)[requirement->package-name/sort]: Return a list of symbols.
* tests/pypi.scm ("pypi->guix-package, no wheel")
("pypi->guix-package, wheels"): Adjust accordingly.
---
 guix/import/pypi.scm | 15 ++++-----------
 tests/pypi.scm       | 18 ++++--------------
 2 files changed, 8 insertions(+), 25 deletions(-)

diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm
index 6731d50891..f3619dcd9e 100644
--- a/guix/import/pypi.scm
+++ b/guix/import/pypi.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 David Thompson <[email-masked]>
 ;;; Copyright © 2015 Cyril Roelandt <[email-masked]>
-;;; Copyright © 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <[email-masked]>
+;;; Copyright © 2015, 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2017 Mathieu Othacehe <[email-masked]>
 ;;; Copyright © 2018 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2019 Maxim Cournoyer <[email-masked]>
@@ -183,7 +183,7 @@ the input field."
     (()
      '())
     ((package-inputs ...)
-     `((,input-type (,'quasiquote ,package-inputs))))))
+     `((,input-type (list ,@package-inputs))))))
 
 (define %requirement-name-regexp
   ;; Regexp to match the requirement name in a requirement specification.
@@ -402,15 +402,8 @@ return the unaltered list of upstream dependency names."
     (remove (cut string=? "argparse" <>) deps))
 
   (define (requirement->package-name/sort deps)
-    (sort
-     (map (lambda (input)
-            (let ((guix-name (python->package-name input)))
-              (list guix-name (list 'unquote (string->symbol guix-name)))))
-          deps)
-     (lambda args
-       (match args
-         (((a _ ...) (b _ ...))
-          (string-ci<? a b))))))
+    (map string->symbol
+         (sort (map python->package-name deps) string-ci<?)))
 
   (define process-requirements
     (compose requirement->package-name/sort strip-argparse))
diff --git a/tests/pypi.scm b/tests/pypi.scm
index f421d6d9df..bb81e91839 100644
--- a/tests/pypi.scm
+++ b/tests/pypi.scm
@@ -213,13 +213,8 @@ Requires-Dist: pytest (>=3.1.0); extra == 'testing'
                                  ('base32
                                   (? string? hash)))))
                      ('build-system 'python-build-system)
-                     ('propagated-inputs
-                      ('quasiquote
-                       (("python-bar" ('unquote 'python-bar))
-                        ("python-foo" ('unquote 'python-foo)))))
-                     ('native-inputs
-                      ('quasiquote
-                       (("python-pytest" ('unquote 'python-pytest)))))
+                     ('propagated-inputs ('list 'python-bar 'python-foo))
+                     ('native-inputs ('list 'python-pytest))
                      ('home-page "http://example.com")
                      ('synopsis "summary")
                      ('description "summary")
@@ -282,13 +277,8 @@ Requires-Dist: pytest (>=3.1.0); extra == 'testing'
                                ('base32
                                 (? string? hash)))))
                    ('build-system 'python-build-system)
-                   ('propagated-inputs
-                    ('quasiquote
-                     (("python-bar" ('unquote 'python-bar))
-                      ("python-baz" ('unquote 'python-baz)))))
-                   ('native-inputs
-                    ('quasiquote
-                     (("python-pytest" ('unquote 'python-pytest)))))
+                   ('propagated-inputs ('list 'python-bar 'python-baz))
+                   ('native-inputs ('list 'python-pytest))
                    ('home-page "http://example.com")
                    ('synopsis "summary")
                    ('description "summary")
-- 
2.32.0