~ruther/guix-local

9371cf2138711ea7305951d82c5cf0b36ac4d6f1 — Sharlatan Hellseher 4 years ago a168679
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>
1 files changed, 95 insertions(+), 0 deletions(-)

M gnu/packages/astronomy.scm
M gnu/packages/astronomy.scm => gnu/packages/astronomy.scm +95 -0
@@ 57,6 57,7 @@
  #:use-module (gnu packages version-control)
  #:use-module (gnu packages video)
  #:use-module (gnu packages xiph)
  #:use-module (gnu packages xml)
  #:use-module (gnu packages xorg)
  #:use-module (guix build-system cmake)
  #: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")
       #: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
  (package
    (name "libnova")