Subject: [PATCH 6/6] gnu: Add python-iris.

From: Vinicius Monego <[email-masked]>
Date: Fri, 23 Jul 2021 23:25:29 +0000

* gnu/packages/geo.scm (python-iris): New variable.
---
 gnu/packages/geo.scm | 67 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)

diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 314165062c..36c020e31d 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -92,6 +92,7 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-web)
@@ -945,6 +946,72 @@ Shapely capabilities
 Climate and Forecast (CF) metadata conventions.")
     (license license:lgpl3)))
 
+(define-public python-iris
+  (package
+    (name "python-iris")
+    (version "3.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "scitools-iris" version))
+       (sha256
+        (base32 "1zqicscnnfqpck960xdjng38qk0w0spmcysl89l3smagdsagzxkr"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Some tests require a writable home.
+             (setenv "HOME" "/tmp")
+             ;; Iris will check for "scitools-iris[test]" before running the
+             ;; tests.  The complete test set weighs 150MB.  Skip this check.
+             (substitute* "setup.py"
+               ((".*tests_require.*") ""))
+             ;; The tests below open external connections.
+             (substitute*
+                 "lib/iris/tests/integration/plot/test_vector_plots.py"
+               (("test_2d_plain_latlon") "_test_2d_plain_latlon")
+               (("test_2d_plain_latlon_on_polar_map")
+                "_test_2d_plain_latlon_on_polar_map")
+               (("test_2d_rotated_latlon") "_test_2d_rotated_latlon"))
+             (substitute*
+                 "lib/iris/tests/integration/plot/test_plot_2d_coords.py"
+               (("test_2d_coords_contour") "_test_2d_coords_contour"))
+             ;; This one fails with AssertionError.
+             (substitute* "lib/iris/tests/experimental/test_animate.py"
+               (("test_cube_animation") "_test_cube_animation"))
+             ;; Compile Pyke rules before running the tests.
+             (invoke "python" "setup.py" "pyke_rules"))))))
+    (propagated-inputs
+     `(("python-cartopy" ,python-cartopy)
+       ("python-cf-units" ,python-cf-units)
+       ("python-cftime" ,python-cftime)
+       ("python-dask" ,python-dask)
+       ("python-matplotlib" ,python-matplotlib)
+       ("python-netcdf4" ,python-netcdf4)
+       ("python-numpy" ,python-numpy)
+       ("python-scipy" ,python-scipy)
+       ("python-xxhash" ,python-xxhash)))
+    (native-inputs
+     `(("netcdf" ,netcdf)
+       ("python-black" ,python-black)
+       ("python-filelock" ,python-filelock)
+       ("python-imagehash" ,python-imagehash)
+       ("python-nose" ,python-nose)
+       ("python-pillow" ,python-pillow)
+       ("python-pyke" ,python-pyke)
+       ("python-requests" ,python-requests)
+       ("python-wheel" ,python-wheel)))
+    (home-page "https://github.com/SciTools/iris")
+    (synopsis "Library for analysing and visualising Earth science data")
+    (description "Iris is a Python library for analysing and visualising Earth
+science data.  It excels when working with multi-dimensional Earth Science
+data, where tabular representations become unwieldy and inefficient.  Iris
+implements a data model based on the CF conventions.")
+    ;; See iris/docs/src/copyright.rst.
+    (license license:lgpl3+)))
+
 (define-public postgis
   (package
     (name "postgis")
-- 
2.30.2