diff options
author | zimoun <zimon.toutoune@gmail.com> | 2021-01-19 16:47:17 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-03-07 22:49:28 +0100 |
commit | 434925379d1bf18a4d70b146a2fd1837b9c7b46e (patch) | |
tree | bb2275cd8f4c99fdf22cda73a4b6db2efe8ef752 /guix/import | |
parent | ebb03447f8cc93b9e070b3e7706d7a64d5d1772c (diff) |
import: pypi: Return multiple values for unknown packages.
Partly fixes <https://bugs.gnu.org/44115>.
* guix/import/pypi.scm (pypi->guix-package): Return two values when
PROJECT is false.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'guix/import')
-rw-r--r-- | guix/import/pypi.scm | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index edfca3454b..77b5f12f72 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2022 Vivien Kraus <vivien@planete-kraus.eu> +;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -496,36 +497,37 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." (let* ((project (pypi-fetch package-name)) (info (and=> project pypi-project-info)) (version (or version (and=> project latest-version)))) - (and project - (guard (c ((missing-source-error? c) - (let ((package (missing-source-error-package c))) - (raise - (apply - make-compound-condition - (formatted-message - (G_ "no source release for pypi package ~a ~a~%") - (project-info-name info) version) - (match (project-info-home-page info) - ((or #f "") '()) - (url - (list - (condition - (&fix-hint - (hint (format #f (G_ "This indicates that the + (if project + (guard (c ((missing-source-error? c) + (let ((package (missing-source-error-package c))) + (raise + (apply + make-compound-condition + (formatted-message + (G_ "no source release for pypi package ~a ~a~%") + (project-info-name info) version) + (match (project-info-home-page info) + ((or #f "") '()) + (url + (list + (condition + (&fix-hint + (hint (format #f (G_ "This indicates that the package is available on PyPI, but only as a \"wheel\" containing binaries, not source. To build it from source, refer to the upstream repository at @uref{~a}.") - url)))))))))))) - (make-pypi-sexp (project-info-name info) version - (and=> (source-release project version) - distribution-url) - (and=> (wheel-release project version) - distribution-url) - (project-info-home-page info) - (project-info-summary info) - (project-info-summary info) - (string->license - (project-info-license info))))))))) + url)))))))))))) + (make-pypi-sexp (project-info-name info) version + (and=> (source-release project version) + distribution-url) + (and=> (wheel-release project version) + distribution-url) + (project-info-home-page info) + (project-info-summary info) + (project-info-summary info) + (string->license + (project-info-license info)))) + (values #f '())))))) (define* (pypi-recursive-import package-name #:optional version) (recursive-import package-name |