gnu: Add python-astropy.
This patch was co-authored with Vinicius Monego. * gnu/packages/astronomy.scm (python-astropy): New variable. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>master
parent
a168679509
commit
9371cf2138
|
@ -57,6 +57,7 @@
|
||||||
#:use-module (gnu packages version-control)
|
#:use-module (gnu packages version-control)
|
||||||
#:use-module (gnu packages video)
|
#:use-module (gnu packages video)
|
||||||
#:use-module (gnu packages xiph)
|
#:use-module (gnu packages xiph)
|
||||||
|
#:use-module (gnu packages xml)
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
|
@ -613,6 +614,100 @@ accurately in real time at any rate desired.")
|
||||||
`(#:configure-flags '("-DENABLE_GTK=ON" "-DENABLE_QT=OFF")
|
`(#:configure-flags '("-DENABLE_GTK=ON" "-DENABLE_QT=OFF")
|
||||||
#:tests? #f))))
|
#:tests? #f))))
|
||||||
|
|
||||||
|
(define-public python-astropy
|
||||||
|
(package
|
||||||
|
(name "python-astropy")
|
||||||
|
(version "4.3.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "astropy" version))
|
||||||
|
(sha256
|
||||||
|
(base32 "0lfd6n7v7kas4wvacddnwgccax3ks908735dzilg7dsf7ci52f9d"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
;; Remove Python bundles.
|
||||||
|
(with-directory-excursion "astropy/extern"
|
||||||
|
(for-each delete-file-recursively '("ply" "configobj")))
|
||||||
|
;; Remove cextern bundles and leave the wcslib bundle. Astropy
|
||||||
|
;; upgrades to different versions of wcslib every few releases
|
||||||
|
;; and tests break every upgrade.
|
||||||
|
;; TODO: unbundle wcslib.
|
||||||
|
(with-directory-excursion "cextern"
|
||||||
|
(for-each delete-file-recursively '("cfitsio" "expat")))
|
||||||
|
#t))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'preparations
|
||||||
|
(lambda _
|
||||||
|
;; Use our own libraries in place of bundles, with the
|
||||||
|
;; exception of wcslib.
|
||||||
|
(setenv "ASTROPY_USE_SYSTEM_CFITSIO" "1")
|
||||||
|
(setenv "ASTROPY_USE_SYSTEM_EXPAT" "1")
|
||||||
|
;; Some tests require a writable home.
|
||||||
|
(setenv "HOME" "/tmp")
|
||||||
|
;; Relax xfail tests.
|
||||||
|
(substitute* "setup.cfg"
|
||||||
|
(("xfail_strict = true") "xfail_strict = false"))
|
||||||
|
;; Replace all references to external ply.
|
||||||
|
(let ((ply-files '("coordinates/angle_formats.py"
|
||||||
|
"utils/parsing.py")))
|
||||||
|
(with-directory-excursion "astropy"
|
||||||
|
(map (lambda (file)
|
||||||
|
(substitute* file (("astropy.extern.ply")
|
||||||
|
"ply")))
|
||||||
|
ply-files)))
|
||||||
|
;; Replace reference to external configobj.
|
||||||
|
(with-directory-excursion "astropy/config"
|
||||||
|
(substitute* "configuration.py"
|
||||||
|
(("from astropy.extern.configobj ") "")))))
|
||||||
|
;; This file is opened in both install and check phases.
|
||||||
|
(add-before 'install 'writable-compiler
|
||||||
|
(lambda _ (make-file-writable "astropy/_compiler.c")))
|
||||||
|
(add-before 'check 'writable-compiler
|
||||||
|
(lambda _ (make-file-writable "astropy/_compiler.c")))
|
||||||
|
(replace 'check
|
||||||
|
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
|
||||||
|
(when tests?
|
||||||
|
(add-installed-pythonpath inputs outputs)
|
||||||
|
;; Extensions have to be rebuilt before running the tests.
|
||||||
|
(invoke "python" "setup.py" "build_ext" "--inplace")
|
||||||
|
(invoke "python" "-m" "pytest" "--pyargs" "astropy"
|
||||||
|
;; Skip tests that need remote data.
|
||||||
|
"-m" "not remote_data")))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("python-coverage" ,python-coverage)
|
||||||
|
("python-cython" ,python-cython)
|
||||||
|
("python-extension-helpers" ,python-extension-helpers)
|
||||||
|
("python-ipython" ,python-ipython)
|
||||||
|
("python-jplephem" ,python-jplephem)
|
||||||
|
("python-objgraph" ,python-objgraph)
|
||||||
|
("python-pytest" ,python-pytest)
|
||||||
|
("python-pytest-astropy" ,python-pytest-astropy)
|
||||||
|
("python-pytest-xdist" ,python-pytest-xdist)
|
||||||
|
("python-setuptools-scm" ,python-setuptools-scm)
|
||||||
|
("python-sgp4" ,python-sgp4)
|
||||||
|
("python-skyfield" ,python-skyfield)))
|
||||||
|
(inputs
|
||||||
|
`(("cfitsio" ,cfitsio)
|
||||||
|
("expat" ,expat)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-configobj" ,python-configobj)
|
||||||
|
("python-numpy" ,python-numpy)
|
||||||
|
("python-ply" ,python-ply)
|
||||||
|
("python-pyerfa" ,python-pyerfa)))
|
||||||
|
(home-page "https://www.astropy.org/")
|
||||||
|
(synopsis "Core package for Astronomy in Python")
|
||||||
|
(description
|
||||||
|
"Astropy is a single core package for Astronomy in Python. It contains
|
||||||
|
much of the core functionality and some common tools needed for performing
|
||||||
|
astronomy and astrophysics.")
|
||||||
|
(license license:bsd-3)))
|
||||||
|
|
||||||
(define-public libnova
|
(define-public libnova
|
||||||
(package
|
(package
|
||||||
(name "libnova")
|
(name "libnova")
|
||||||
|
|
Reference in New Issue