diff mbox series

[bug#66930] gnu: Add python-pyamg.

Message ID 39e96e5e211c0a24b03057c4387cc791f2e23e86.1699110356.git.felgru@posteo.net
State New
Headers show
Series [bug#66930] gnu: Add python-pyamg. | expand

Commit Message

Felix Gruber Nov. 4, 2023, 3:05 p.m. UTC
* gnu/packages/python-science.scm (python-pyamg): New variable.

Change-Id: Ibf39fecd14d4e6fd72078b217737e5e5cbbf2321
---
 gnu/packages/python-science.scm | 36 +++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)


base-commit: 9dcd8802f5bc472579f23a38dcf437f8a9ac976c

Comments

Vinicius Monego Nov. 4, 2023, 3:41 p.m. UTC | #1
Hello,

Em 04/11/2023 12:05, Felix Gruber escreveu:
> * gnu/packages/python-science.scm (python-pyamg): New variable.
>
> Change-Id: Ibf39fecd14d4e6fd72078b217737e5e5cbbf2321
> ---
>   gnu/packages/python-science.scm | 36 +++++++++++++++++++++++++++++++++
>   1 file changed, 36 insertions(+)
>
> diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
> index 4063797a30..1c2edda118 100644
> --- a/gnu/packages/python-science.scm
> +++ b/gnu/packages/python-science.scm
> @@ -387,6 +387,42 @@ (define-public python-trimesh
>   library.")
>       (license license:expat)))
>   
> +(define-public python-pyamg
> +  (package
> +    (name "python-pyamg")
> +    (version "5.0.0")

I saw that version 5.0.1 is out since Jul 3, 2023. Does it fail to build?

> +    (source (origin
> +              (method url-fetch)
> +              (uri (pypi-uri "pyamg" version))
> +              (sha256
> +               (base32
> +                "0bm0cbqcj5zgs4k7djs5ga98pb95raxxdd674g744hv1iwi6gfga"))))
> +    (build-system pyproject-build-system)
> +    (propagated-inputs (list pybind11 python-numpy python-scipy))

Pybind11 is usually a native or normal input. Does it have to be 
propagated here?

> +    (native-inputs (list python-setuptools-scm python-pytest))
> +    (arguments
> +     (list
> +      #:test-flags
> +      ;; Test installed package in order to find C++ modules.
> +      #~(list "--pyargs" "pyamg.tests")))
> +    (home-page "https://github.com/pyamg/pyamg")
> +    (synopsis "Algebraic Multigrid Solvers in Python")
> +    (description "PyAMG is a Python library of Algebraic Multigrid
> +(AMG) solvers.
> +
> +PyAMG features implementations of:

Nitpick: to avoid repeating "PyAMG", you can say "It" in the second 
paragraph and join with the first.

> +@itemize
> +@item Ruge-Stuben (RS) or Classical AMG
> +@item AMG based on Smoothed Aggregation (SA)
> +@item Adaptive Smoothed Aggregation (αSA)
> +@item Compatible Relaxation (CR)
> +@item Krylov methods such as CG, GMRES, FGMRES, BiCGStab, MINRES, etc.
> +@end itemize
> +PyAMG is primarily written in Python with supporting C++ code for
> +performance critical operations.
> +")

Implementation details like in this last sentence about languages and 
performance should be transparent to the user and can be omitted.

> +    (license license:expat)))
> +
>   (define-public python-tspex
>     (package
>       (name "python-tspex")
>
> base-commit: 9dcd8802f5bc472579f23a38dcf437f8a9ac976c

I also noticed that amg_core contains cpp files generated by the 
pyamg/amg_core/bindthem.py script. I'd suggest to grep 'DO NOT EDIT' on 
that directory to find the files, delete them in a snippet and rerun the 
bindthem.py script in a new phase after unpacking.

Thanks,

Vinicius
Sharlatan Hellseher Jan. 21, 2024, 5:44 p.m. UTC | #2
I've apply changes to the patch:
- updated to the latest upstream version 5.0.1
- move propagated and native inputs after arguments
- move pybind11 to native-inputs


--8<---------------cut here---------------start------------->8---
@@ -460,21 +460,21 @@ (define-public python-meshzoo
 (define-public python-pyamg
   (package
     (name "python-pyamg")
-    (version "5.0.0")
+    (version "5.0.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pyamg" version))
               (sha256
                (base32
-                "0bm0cbqcj5zgs4k7djs5ga98pb95raxxdd674g744hv1iwi6gfga"))))
+                "0l3dliwynxyjvbgpmi2k8jqvkkw6fc00c8w69h6swhrkfh0ql12z"))))
     (build-system pyproject-build-system)
-    (propagated-inputs (list pybind11 python-numpy python-scipy))
-    (native-inputs (list python-setuptools-scm python-pytest))
     (arguments
      (list
       #:test-flags
       ;; Test installed package in order to find C++ modules.
       #~(list "--pyargs" "pyamg.tests")))
+    (native-inputs (list pybind11 python-pytest python-setuptools-scm))
+    (propagated-inputs (list python-numpy python-scipy))
     (home-page "https://github.com/pyamg/pyamg")
     (synopsis "Algebraic Multigrid Solvers in Python")
     (description "PyAMG is a Python library of Algebraic Multigrid
@@ -489,8 +489,7 @@ (define-public python-pyamg
 @item Krylov methods such as CG, GMRES, FGMRES, BiCGStab, MINRES, etc.
 @end itemize
 PyAMG is primarily written in Python with supporting C++ code for
-performance critical operations.
-")
+performance critical operations.")
     (license license:expat)))

 (define-public python-tspex
--8<---------------cut here---------------end--------------->8---

Pushe as 5f93aa182a32e4baecc6238c21d2538af0b18ad3

Thanks,
Oleg
diff mbox series

Patch

diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 4063797a30..1c2edda118 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -387,6 +387,42 @@  (define-public python-trimesh
 library.")
     (license license:expat)))
 
+(define-public python-pyamg
+  (package
+    (name "python-pyamg")
+    (version "5.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pyamg" version))
+              (sha256
+               (base32
+                "0bm0cbqcj5zgs4k7djs5ga98pb95raxxdd674g744hv1iwi6gfga"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list pybind11 python-numpy python-scipy))
+    (native-inputs (list python-setuptools-scm python-pytest))
+    (arguments
+     (list
+      #:test-flags
+      ;; Test installed package in order to find C++ modules.
+      #~(list "--pyargs" "pyamg.tests")))
+    (home-page "https://github.com/pyamg/pyamg")
+    (synopsis "Algebraic Multigrid Solvers in Python")
+    (description "PyAMG is a Python library of Algebraic Multigrid
+(AMG) solvers.
+
+PyAMG features implementations of:
+@itemize
+@item Ruge-Stuben (RS) or Classical AMG
+@item AMG based on Smoothed Aggregation (SA)
+@item Adaptive Smoothed Aggregation (αSA)
+@item Compatible Relaxation (CR)
+@item Krylov methods such as CG, GMRES, FGMRES, BiCGStab, MINRES, etc.
+@end itemize
+PyAMG is primarily written in Python with supporting C++ code for
+performance critical operations.
+")
+    (license license:expat)))
+
 (define-public python-tspex
   (package
     (name "python-tspex")