gnu: Add pyre.

* gnu/packages/python-science.scm (pyre): New variable.

Change-Id: I4a26d7a83f24210104cb0ab50b5392ab97d9bfc4
This commit is contained in:
Maxim Cournoyer 2024-11-26 23:34:05 +09:00
parent 1de944c18b
commit 0b6c957ca1
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -53,6 +53,7 @@
#:use-module (gnu packages check)
#:use-module (gnu packages chemistry)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crypto)
@ -78,6 +79,7 @@
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages simulation)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
#:use-module (gnu packages statistics)
#:use-module (gnu packages time)
#:use-module (gnu packages xdisorg)
@ -89,9 +91,89 @@
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject))
(define-public pyre
(package
(name "pyre")
(version "1.12.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pyre/pyre")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0crmssga481q2ggwcmj40nj5n9975wri14p609jdr9hwg4vdyvj2"))))
(build-system cmake-build-system)
(arguments
(list
#:imported-modules (append %cmake-build-system-modules
%python-build-system-modules)
#:modules '((guix build cmake-build-system)
((guix build python-build-system) #:prefix python:)
(guix build utils))
#:configure-flags
#~(list (string-append "-DPYRE_VERSION=" #$version)
(string-append "-DPYRE_DEST_PACKAGES="
(python:site-packages %build-inputs %outputs)))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'enable-bytecode-determinism
(assoc-ref python:%standard-phases 'enable-bytecode-determinism))
;; Move the check phase after the Python 'pyre' module
;; is installed and made available.
(delete 'check)
(add-after 'install 'add-to-pythonpath
(lambda* (#:key inputs outputs #:allow-other-keys)
(python:add-installed-pythonpath inputs outputs)))
(add-after 'add-to-pythonpath 'wrap
(assoc-ref python:%standard-phases 'wrap))
(add-after 'add-to-pythonpath 'check
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
(when tests?
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
(let ((ignored-tests
(list
;; The MPI tests are failing for unknown reasons (see:
;; https://github.com/pyre/pyre/issues/126).
"tests.mpi"
;; These tests have a cleanup phase that fails
;; non-deterministically (see:
;; https://github.com/pyre/pyre/issues/125).
"tests.pyre.lib.viz.flow"
;; This test expects a TCP port 22 to be listening.
"tests.pyre.pkg.ipc.tcp.py"
;; These postgres tests require a running postgresql
;; daemon; they are also skipped in upstream CI.
"tests.postgres.ext"
;; This test fails due to pre-1980 timestamps, not
;; supported by ZIP.
"tests.pyre.pkg.filesystem.zip_open.py"
;; This one trips on the patched python3 shebang.
"tests.pyre.pkg.filesystem.local_open.py")))
(invoke "ctest"
"-j" (if parallel-tests?
(number->string (parallel-job-count))
"1")
"-E" (string-join ignored-tests "|")))))))))
(native-inputs (list openssh-sans-x python python-numpy pybind11 zip))
(inputs (list gsl hdf5 openmpi postgresql))
(propagated-inputs (list python-pyyaml)) ;for the Python bindings
(home-page "http://pyre.orthologue.com/")
(synopsis "Framework for building Scientific applications")
(description
"This package provides a framework for building scientific applications.
It aims to bring state of the art software design practices to scientific
computing, with the goal of providing a strong skeleton on which to build
scientific codes by steering the implementation towards usability and
maintainability.")
(license license:bsd-3)))
(define-public python-cvxpy
(package
(name "python-cvxpy")