Subject: [bug#72741] [PATCH 28/32] gnu: Add python-pvextractor.

From: Sharlatan Hellseher <[email-masked]>
Date: Wed, 21 Aug 2024 01:03:30 +0100

* gnu/packages/astronomy.scm (python-pvextractor): New variable.

Change-Id: I43589099c662cd73ac234a8581be6a559d2ddd6c
---
 gnu/packages/astronomy.scm | 48 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index fe74008f7e..38f9db1c8c 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -1237,6 +1237,54 @@ (define-public python-glue-core
 across many files.")
     (license license:bsd-3)))
 
+(define-public python-pvextractor
+  (package
+    (name "python-pvextractor")
+    (version "0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pvextractor" version))
+       (sha256
+        (base32 "1kl33vg5rxmdwlk36pn8zqa7k7f43fb7w417fym6ygp86mci2spd"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:test-flags #~(list "--pyargs" "pvextractor")
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; See <https://github.com/radio-astro-tools/pvextractor/issues/124>.
+         (add-after 'unpack 'patch-regexp
+           (lambda _
+             (substitute* "pvextractor/pvregions.py"
+               (("coordre = re.compile.*")
+                "coordre = re.compile(\"^[a-z]*\\\\((.*)\\\\)\")\n"))))
+           (add-before 'check 'prepare-x
+             (lambda _
+               (system "Xvfb &")
+               (setenv "DISPLAY" ":0")
+               (setenv "HOME" "/tmp"))))))
+    (propagated-inputs
+     (list python-astropy
+           python-matplotlib
+           python-numpy
+           python-pyqt-6
+           python-qtpy
+           python-scipy
+           python-spectral-cube))
+    (native-inputs
+     (list python-pytest-astropy
+           python-setuptools-scm
+           xorg-server-for-tests))
+    (home-page "http://pvextractor.readthedocs.io")
+    (synopsis "Position-Velocity diagram extractor")
+    (description
+     "The concept of the pvextractor package is simple - given a path defined
+in sky coordinates, and a spectral cube, extract a slice of the cube along
+that path, and along the spectral axis, producing a position-velocity or
+position-frequency slice.")
+    (license license:bsd-3)))
+
 (define-public python-pyxsim
   (package
     (name "python-pyxsim")
-- 
2.41.0