guix_mirror_bot pushed a commit to branch python-team
in repository guix.
commit b9abd616793991a82bd22940bb472f0563adb40d
Author: Sharlatan Hellseher <[email protected]>
AuthorDate: Sun Dec 7 13:05:15 2025 +0000
gnu: python-numpy: Set NumPy 2 as default.
* gnu/packages/python-xyz.scm (python-numpy): Move definition from
python-numpy-2 here.
(python-numpy-1): New variable, inherit from python-numpy.
Change-Id: I78bf7cae09b5bea59b536fe4ba14649a3398539c
---
gnu/packages/python-xyz.scm | 106 +++++++++++++++++++++++++++++++++++++++-----
1 file changed, 94 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2e97d1c0bf..1abe94ee10 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10669,6 +10669,99 @@ writing C extensions for Python as easy as Python
itself.")
;; often used together.
(define-public python-numpy
(package
+ (name "python-numpy")
+ (version "2.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/numpy/numpy/releases/download/v"
+ version "/numpy-" version ".tar.gz"))
+ (sha256
+ (base32 "0aqx8hsw54wfp7iv0h0ljlpsygvmrmi3rjic6rsa6v92lhhaxj8y"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:modules '((guix build utils)
+ (guix build pyproject-build-system)
+ (ice-9 format))
+ #:test-flags
+ #~(list "-m" "not slow"
+ "--numprocesses" (number->string (min 8 (parallel-job-count)))
+ ;; See: <https://github.com/numpy/numpy/issues/27531>,
+ ;; <https://github.com/numpy/numpy/issues/17685>,
+ ;; <https://github.com/numpy/numpy/issues/17635>.
+ "-k" "not test_api_importable")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-executable-paths
+ (lambda _
+ (substitute* "numpy/distutils/exec_command.py"
+ (("'/bin/sh'")
+ (format #f "~s" (which "bash"))))
+ (substitute* "numpy/meson.build"
+ ;; Relay on python from the PATH instead of full reference
+ ;; stored in built wheel.
+ (("'py.full_path\\(\\)'") "'python'"))))
+ (add-before 'build 'parallelize-build
+ (lambda _
+ (setenv "OMP_NUM_THREAD"
+ (number->string (parallel-job-count)))
+ (setenv "NPY_NUM_BUILD_JOBS"
+ (number->string (parallel-job-count)))))
+ ;; XXX: It fails with an issue "'fenv_t' has not been declared..."
+ ;; when the gfortran header is used. Remove gfortran from
+ ;; CPLUS_INCLUDE_PATH as a workaround. Taken from
+ ;; <https://issues.guix.gnu.org/73439#45>.
+ (add-after 'set-paths 'hide-gfortran
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((gfortran (assoc-ref inputs "gfortran")))
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-join
+ (delete (string-append gfortran "/include/c++")
+ (string-split (getenv "CPLUS_INCLUDE_PATH")
#\:))
+ ":")))))
+ (add-before 'build 'configure-blas
+ (lambda* (#:key inputs #:allow-other-keys)
+ (call-with-output-file "site.cfg"
+ (lambda (port)
+ (format port
+ "[openblas]
+libraries = openblas
+library_dirs = ~a/lib
+include_dirs = ~:*~a/include~%" #$(this-package-input "openblas"))))))
+ (replace 'check
+ (lambda* (#:key tests? test-flags #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion #$output
+ (apply invoke "pytest" test-flags))))))))
+ (native-inputs
+ (list gfortran
+ meson-python
+ ninja
+ pkg-config
+ python-hypothesis
+ python-mypy
+ python-pytest
+ python-pytest-xdist
+ python-setuptools
+ python-setuptools
+ python-typing-extensions
+ python-wheel))
+ (home-page "https://numpy.org")
+ (synopsis "Fundamental package for scientific computing with Python")
+ (description "NumPy is the fundamental package for scientific computing
+with Python. It contains among other things: a powerful N-dimensional array
+object, sophisticated (broadcasting) functions, tools for integrating C/C++
+and Fortran code, useful linear algebra, Fourier transform, and random number
+capabilities.")
+ (properties
+ '((upstream-name . "numpy")))
+ (license license:bsd-3)))
+
+(define-public python-numpy-1
+ (package
+ (inherit python-numpy)
(name "python-numpy")
;; XXX: Starting from v1.26.0 the project includes a vendored-meson which
;; is needed for SIMD and BLAS/LAPACK features that are not yet available
@@ -10689,7 +10782,6 @@ writing C extensions for Python as easy as Python
itself.")
(base32
"0410j6jfz1yzm5s0v0yrc1j0q6ih4322357and7arr0jxnlsn0ia"))
(patches (search-patches "python-numpy-gcc-14.patch"))))
- (build-system pyproject-build-system)
(arguments
(list
#:modules '((guix build utils)
@@ -10831,17 +10923,7 @@ include_dirs = ~:*~a/include~%"
;; <https://github.com/numpy/numpy/issues/24318>.
gcc ;fevn.h c[++] include must precede fortran's
gfortran))
- (inputs (list bash openblas))
- (home-page "https://numpy.org")
- (synopsis "Fundamental package for scientific computing with Python")
- (description "NumPy is the fundamental package for scientific computing
-with Python. It contains among other things: a powerful N-dimensional array
-object, sophisticated (broadcasting) functions, tools for integrating C/C++
-and Fortran code, useful linear algebra, Fourier transform, and random number
-capabilities.")
- (properties
- '((upstream-name . "numpy")))
- (license license:bsd-3)))
+ (inputs (list bash openblas))))
(define-public python-numpy-2
(package