guix_mirror_bot pushed a commit to branch python-team
in repository guix.
commit 49b9fada9d0ed091eba2915728d7f492f5dfcb8c
Author: Nicolas Graves <[email protected]>
AuthorDate: Sun Jul 6 16:13:54 2025 +0200
build-system/pyproject: Handle wheel not found exception.
The current error is very uninformative, use a proper exception to
give more information when this happens:
`In procedure map: Wrong type argument: #f`
After this patch:
`In procedure raise-exception:
ERROR:
1. &no-wheels-found`
* guix/build/pyproject-build-system.scm (&no-wheels-found): Add exception.
(install): Handle exception.
Change-Id: Ie72d3b50dfededb2d598162672cdb4321c42b632
Signed-off-by: Sharlatan Hellseher <[email protected]>
---
guix/build/pyproject-build-system.scm | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/guix/build/pyproject-build-system.scm
b/guix/build/pyproject-build-system.scm
index 1ca91701c3..1fadd91d68 100644
--- a/guix/build/pyproject-build-system.scm
+++ b/guix/build/pyproject-build-system.scm
@@ -87,6 +87,9 @@
;; Raised, when no wheel has been built by the build system.
(define-condition-type &no-wheels-built &python-build-error no-wheels-built?)
+;; Raised, when no installation candidate wheel has been found.
+(define-condition-type &no-wheels-found &python-build-error no-wheels-found?)
+
(define* (build #:key outputs build-backend backend-path configure-flags
#:allow-other-keys)
"Build a given Python package."
@@ -251,10 +254,15 @@ builder.build_wheel(sys.argv[3],
config_settings=config_settings)"
(let* ((wheel-output (assoc-ref outputs "wheel"))
(wheel-dir (if wheel-output wheel-output "dist"))
- (wheels (map (cut string-append wheel-dir "/" <>)
- (scandir wheel-dir
- (cut string-suffix? ".whl" <>)))))
+ (wheels-found (or (scandir wheel-dir
+ (cut string-suffix? ".whl" <>))
+ '()))
+ (wheels (map (cut string-append wheel-dir "/" <>) wheels-found)))
(cond
+ ;; This can happen if the 'build phase has been changed or when using
+ ;; the install phase using an alternative build-system.
+ ((null? wheels-found)
+ (raise (condition (&no-wheels-found))))
((> (length wheels) 1)
;; This code does not support multiple wheels yet, because their
;; outputs would have to be merged properly.