summaryrefslogtreecommitdiff
path: root/gnu/packages/python-science.scm
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@friendly-machines.com>2025-12-22 15:28:02 +0100
committerDanny Milosavljevic <dannym@friendly-machines.com>2026-02-12 18:58:09 +0100
commit8516a200ac520a3a55196dd73873be55e8a25b8a (patch)
tree69ae7c47dd696611e3cc4457d5081eb3a52177d0 /gnu/packages/python-science.scm
parent07b13851a3dbf80390f00a7ea510d4464e4ce5a8 (diff)
gnu: Add python-brille.
* gnu/packages/python-science.scm (python-brille): New variable. Change-Id: I39db7aff28c9d3d80c1cd404ee91fd1ec5fc89cd
Diffstat (limited to 'gnu/packages/python-science.scm')
-rw-r--r--gnu/packages/python-science.scm86
1 files changed, 86 insertions, 0 deletions
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 3337b3d2169..0b771374016 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -58,6 +58,7 @@
58(define-module (gnu packages python-science) 58(define-module (gnu packages python-science)
59 #:use-module ((guix licenses) #:prefix license:) 59 #:use-module ((guix licenses) #:prefix license:)
60 #:use-module (gnu packages) 60 #:use-module (gnu packages)
61 #:use-module (gnu packages algebra)
61 #:use-module (gnu packages base) 62 #:use-module (gnu packages base)
62 #:use-module (gnu packages bioinformatics) 63 #:use-module (gnu packages bioinformatics)
63 #:use-module (gnu packages boost) 64 #:use-module (gnu packages boost)
@@ -71,15 +72,20 @@
71 #:use-module (gnu packages databases) 72 #:use-module (gnu packages databases)
72 #:use-module (gnu packages digest) 73 #:use-module (gnu packages digest)
73 #:use-module (gnu packages duckdb) 74 #:use-module (gnu packages duckdb)
75 #:use-module (gnu packages elf)
74 #:use-module (gnu packages gcc) 76 #:use-module (gnu packages gcc)
75 #:use-module (gnu packages geo) 77 #:use-module (gnu packages geo)
78 #:use-module (gnu packages gl)
76 #:use-module (gnu packages graphviz) 79 #:use-module (gnu packages graphviz)
77 #:use-module (gnu packages image) 80 #:use-module (gnu packages image)
78 #:use-module (gnu packages image-processing) 81 #:use-module (gnu packages image-processing)
82 #:use-module (gnu packages jemalloc)
79 #:use-module (gnu packages jupyter) 83 #:use-module (gnu packages jupyter)
80 #:use-module (gnu packages machine-learning) 84 #:use-module (gnu packages machine-learning)
81 #:use-module (gnu packages maths) 85 #:use-module (gnu packages maths)
82 #:use-module (gnu packages mpi) 86 #:use-module (gnu packages mpi)
87 #:use-module (gnu packages networking)
88 #:use-module (gnu packages ninja)
83 #:use-module (gnu packages pcre) 89 #:use-module (gnu packages pcre)
84 #:use-module (gnu packages perl) 90 #:use-module (gnu packages perl)
85 #:use-module (gnu packages pkg-config) 91 #:use-module (gnu packages pkg-config)
@@ -93,11 +99,14 @@
93 #:use-module (gnu packages python-xyz) 99 #:use-module (gnu packages python-xyz)
94 #:use-module (gnu packages qt) 100 #:use-module (gnu packages qt)
95 #:use-module (gnu packages rust-apps) 101 #:use-module (gnu packages rust-apps)
102 #:use-module (gnu packages serialization)
96 #:use-module (gnu packages simulation) 103 #:use-module (gnu packages simulation)
97 #:use-module (gnu packages sphinx) 104 #:use-module (gnu packages sphinx)
98 #:use-module (gnu packages ssh) 105 #:use-module (gnu packages ssh)
99 #:use-module (gnu packages statistics) 106 #:use-module (gnu packages statistics)
107 #:use-module (gnu packages tbb)
100 #:use-module (gnu packages time) 108 #:use-module (gnu packages time)
109 #:use-module (gnu packages tls)
101 #:use-module (gnu packages version-control) 110 #:use-module (gnu packages version-control)
102 #:use-module (gnu packages xdisorg) 111 #:use-module (gnu packages xdisorg)
103 #:use-module (gnu packages xml) 112 #:use-module (gnu packages xml)
@@ -110,6 +119,7 @@
110 #:use-module (guix utils) 119 #:use-module (guix utils)
111 #:use-module (guix build-system cargo) 120 #:use-module (guix build-system cargo)
112 #:use-module (guix build-system cmake) 121 #:use-module (guix build-system cmake)
122 #:use-module (guix build-system meson)
113 #:use-module (guix build-system python) 123 #:use-module (guix build-system python)
114 #:use-module (guix build-system pyproject)) 124 #:use-module (guix build-system pyproject))
115 125
@@ -6488,6 +6498,82 @@ Python style, together with a fast and comfortable execution environment.")
6488 python-setuptools 6498 python-setuptools
6489 python-wheel)))) 6499 python-wheel))))
6490 6500
6501(define-public python-brille
6502 (package
6503 (name "python-brille")
6504 (version "0.8.3")
6505 (source
6506 (origin
6507 (method git-fetch)
6508 (uri (git-reference
6509 (url "https://github.com/brille/brille")
6510 (commit (string-append "v" version))))
6511 (file-name (git-file-name name version))
6512 (sha256
6513 (base32 "1vyxa7k6yrpxizbmljrv7bnsf7dzxsfbs4id36x09jjxwh7dysjj"))))
6514 (build-system cmake-build-system)
6515 (arguments
6516 (list
6517 #:configure-flags
6518 #~(list
6519 ;; Boost.System is header-only since 1.69, but FindBoost looks for
6520 ;; libboost_system.so which doesn't exist.
6521 "-DHIGHFIVE_USE_BOOST=OFF"
6522 ;; Pretend we're doing a scikit-build build to skip Conan.
6523 "-DSKBUILD=ON"
6524 (string-append "-DSKBUILD_PROJECT_NAME=brille")
6525 (string-append "-DSKBUILD_PROJECT_VERSION=" #$version))
6526 #:imported-modules `(,@%cmake-build-system-modules
6527 ,@%pyproject-build-system-modules)
6528 #:modules '((guix build cmake-build-system)
6529 ((guix build python-build-system) #:select (site-packages))
6530 (guix build utils))
6531 #:phases
6532 (with-extensions (list (pyproject-guile-json))
6533 #~(modify-phases %standard-phases
6534 (add-after 'unpack 'create-pkg-info
6535 (lambda _
6536 ;; Create PKG-INFO so DynamicVersion.cmake finds version without git.
6537 (call-with-output-file "PKG-INFO"
6538 (lambda (port)
6539 (format port "Metadata-Version: 2.1
6540Name: brille
6541Version: ~a
6542" #$version)))))
6543 (add-before 'configure 'set-version
6544 (lambda _
6545 (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))
6546 (add-after 'install 'install-python
6547 (lambda* (#:key inputs outputs #:allow-other-keys)
6548 (let ((site-packages (site-packages inputs outputs)))
6549 (mkdir-p (string-append site-packages "/brille"))
6550 ;; Install Python source files and compiled extension module.
6551 (for-each (lambda (file)
6552 (install-file file
6553 (string-append site-packages "/brille")))
6554 (append
6555 (find-files "../source/brille" "\\.py$")
6556 (find-files "." "^_brille\\..*\\.so$"))))))))))
6557 (native-inputs
6558 (list catch2-3
6559 cmake-minimal
6560 highfive
6561 pybind11
6562 python-wrapper
6563 python-setuptools
6564 python-setuptools-scm))
6565 (inputs
6566 (list hdf5))
6567 (propagated-inputs
6568 (list python-numpy))
6569 (home-page "https://github.com/brille/brille")
6570 (synopsis "Symmetry operations and interpolation in Brillouin zones")
6571 (description
6572 "Brille is a C++ library for symmetry operations and linear interpolation
6573within an irreducible part of the first Brillouin zone. It provides Python
6574bindings via pybind11 for use in phonon calculations and inelastic neutron
6575scattering simulations.")
6576 (license license:agpl3+)))
6491;;; 6577;;;
6492;;; Avoid adding new packages to the end of this file. To reduce the chances 6578;;; Avoid adding new packages to the end of this file. To reduce the chances
6493;;; of a merge conflict, place them above by existing packages with similar 6579;;; of a merge conflict, place them above by existing packages with similar