From 434925379d1bf18a4d70b146a2fd1837b9c7b46e Mon Sep 17 00:00:00 2001 From: zimoun Date: Tue, 19 Jan 2021 16:47:17 +0100 Subject: [PATCH] import: pypi: Return multiple values for unknown packages. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Partly fixes . * guix/import/pypi.scm (pypi->guix-package): Return two values when PROJECT is false. Co-authored-by: Ludovic Courtès --- guix/import/pypi.scm | 56 +++++++++++++++++++++++--------------------- 1 file 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 ;;; Copyright © 2021 Marius Bakke ;;; Copyright © 2022 Vivien Kraus +;;; Copyright © 2021 Simon Tournier ;;; ;;; This file is part of GNU Guix. ;;; @@ -496,36 +497,37 @@ (define pypi->guix-package (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