summary refs log tree commit diff
path: root/gnu/packages/python-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r--gnu/packages/python-xyz.scm187
1 files changed, 111 insertions, 76 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 35ac4e69f5..2294b59f33 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -113,6 +113,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages qt)
@@ -434,42 +435,80 @@ concepts.")
 (define-public python2-h5py
   (package-with-python2 python-h5py))
 
+(define-public python-sh
+  (package
+    (name "python-sh")
+    (version "1.12.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sh" version))
+       (sha256
+        (base32
+         "1z2hx357xp3v4cv44xmqp7lli3frndqpyfmpbxf7n76h7s1zaaxm"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/amoffat/sh")
+    (synopsis "Python subprocess replacement")
+    (description "This package provides a replacement for Python's
+@code{subprocess} feature.")
+    (license license:expat)))
+
+(define-public python-cftime
+  (package
+    (name "python-cftime")
+    (version "1.0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cftime" version))
+       (sha256
+        (base32
+         "0362dhxbzk593walyjz30dll6y2y79wialik647cbwdsf3ad0x6x"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-numpy" ,python-numpy)))
+    (native-inputs
+     `(("python-coveralls" ,python-coveralls)
+       ("python-cython" ,python-cython)
+       ("python-pytest-cov" ,python-pytest-cov)))
+    (home-page "https://github.com/Unidata/cftime")
+    (synopsis "Library for time handling")
+    (description
+     "This package provides time-handling functionality that used to be part
+of the netcdf4 package before.")
+    ;; This package claims to include code under the GPLv3 but is released
+    ;; under ISC.
+    (license (list license:isc license:gpl3+))))
+
 (define-public python-netcdf4
   (package
     (name "python-netcdf4")
-    (version "1.2.9")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "netCDF4" version))
        (sha256
         (base32
-         "1h6jq338amlbk0ilzvjyl7cck80i0bah9a5spn9in71vy2qxm7i5"))))
+         "0c0sklgrmv15ygliin8qq0hp7vanmbi74m6zpi0r1ksr0hssyd5r"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure-locations
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "HDF5_DIR" (assoc-ref inputs "hdf5"))
+             #t)))))
     (native-inputs
      `(("python-cython" ,python-cython)))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     `(("python-numpy" ,python-numpy)
+       ("python-cftime" ,python-cftime)))
     (inputs
      `(("netcdf" ,netcdf)
        ("hdf4" ,hdf4)
        ("hdf5" ,hdf5)))
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (setenv "NO_NET" "1") ; disable opendap tests
-             (with-directory-excursion "test"
-               (setenv "PYTHONPATH" ; find and add the library we just built
-                       (string-append
-                        (car (find-files "../build" "lib.*"
-                                         #:directories? #:t
-                                         #:fail-on-error? #:t))
-                        ":" (getenv "PYTHONPATH")))
-               (zero? (system* "python" "run_all.py"))))))))
-    (home-page
-     "https://github.com/Unidata/netcdf4-python")
+    (home-page "https://github.com/Unidata/netcdf4-python")
     (synopsis "Python/numpy interface to the netCDF library")
     (description "Netcdf4-python is a Python interface to the netCDF C
 library.  netCDF version 4 has many features not found in earlier
@@ -1710,7 +1749,7 @@ version numbers.")
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (replace 'check (lambda _ (zero? (system* "nosetests")))))))
+         (replace 'check (lambda _ (invoke "nosetests"))))))
     (native-inputs
      `(("python-nose" ,python-nose)
        ("python-vcversioner" ,python-vcversioner)))
@@ -2106,7 +2145,7 @@ logic-free templating system Mustache.")
               (modify-phases %standard-phases
                 (replace 'check
                   (lambda _
-                    (zero? (system* "python" "test_pystache.py")))))))))
+                    (invoke "python" "test_pystache.py"))))))))
 
 (define-public python-joblib
   (package
@@ -2855,8 +2894,7 @@ objects.")
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (zero? (system* "nosetests" "-v")))))))
+           (lambda _ (invoke "nosetests" "-v"))))))
     (propagated-inputs
      `(("python-colormath" ,python-colormath)))
     (native-inputs
@@ -2963,12 +3001,12 @@ color scales, and color space conversion easy.  It has support for:
                (with-directory-excursion "doc"
                  (copy-recursively sphinx-theme-checkout scipy-sphinx-theme)
                  (mkdir-p html)
-                 (system* "make" "html" pyver)
-                 (system* "make" "latex" "PAPER=a4" pyver)
-                 (system* "make" "-C" "build/latex"
+                 (invoke "make" "html" pyver)
+                 (invoke "make" "latex" "PAPER=a4" pyver)
+                 (invoke "make" "-C" "build/latex"
                           "all-pdf" "PAPER=a4" pyver)
                  ;; FIXME: Generation of the info file fails.
-                 ;; (system* "make" "info" pyver)
+                 ;; (invoke "make" "info" pyver)
                  ;; (mkdir-p info)
                  ;; (copy-file "build/texinfo/numpy.info"
                  ;;            (string-append info "/numpy.info"))
@@ -3193,7 +3231,7 @@ To address this and enable easy cycling over arbitrary @code{kwargs}, the
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (zero? (system* "nosetests" "--all-modules" "-v" "colorspacious")))))))
+             (invoke "nosetests" "--all-modules" "-v" "colorspacious"))))))
     (home-page "https://github.com/njsmith/colorspacious")
     (synopsis "Python library for colorspace conversions")
     (description "@code{colorspacious} is a Python library that lets you
@@ -3376,24 +3414,25 @@ toolkits.")
 (define-public python2-pysnptools
   (package
     (name "python2-pysnptools")
-    (version "0.3.9")
+    (version "0.3.13")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "pysnptools" version ".zip"))
+       (uri (pypi-uri "pysnptools" version))
        (sha256
         (base32
-         "1wybggjzz8zw7aav4pjsg2h22xp17a1lghrprza1pxwlm7wf96y2"))))
+         "0lnis5xsl7bi0hz4f7gbicahzi5zlxkc21nk3g374xv8fb5hb3qm"))))
     (build-system python-build-system)
     (arguments
-     `(#:python ,python-2)) ; only Python 2.7 is supported
+     `(#:python ,python-2 ; only Python 2.7 is supported
+       #:tests? #f))      ; test files (e.g. examples/toydata.bim) not included
     (propagated-inputs
      `(("python2-numpy" ,python2-numpy)
        ("python2-scipy" ,python2-scipy)
        ("python2-pandas" ,python2-pandas)))
     (native-inputs
-     `(("unzip" ,unzip)))
-    (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/")
+     `(("python2-cython" ,python2-cython)))
+    (home-page "http://microsoftgenomics.github.io/PySnpTools/")
     (synopsis "Library for reading and manipulating genetic data")
     (description
      "PySnpTools is a library for reading and manipulating genetic data.  It
@@ -3603,7 +3642,8 @@ where key might be occurred more than once in the container.")
              ;; The package uses nosetest for running the tests.
              ;; Adding this initfile allows to run the test suite
              ;; without requiring nosetest.
-             (zero? (system* "touch" "tests/__init__.py")))))))
+             (with-output-to-file "tests/__init__.py" newline)
+             #t)))))
     (propagated-inputs
      `(("python-six" ,python-six)))
     (native-inputs
@@ -3803,7 +3843,8 @@ a general image processing tool.")
          (replace 'check
            (lambda _
              (with-directory-excursion "tests"
-               (zero? (system* "python" "all_tests.py")))))
+               (invoke "python" "all_tests.py"))
+             #t))
          (add-after 'install 'install-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
@@ -4145,7 +4186,7 @@ cluster without needing to write any wrapper code yourself.")
              ;; It's easier to run tests after install.
              ;; Make installed package available for running the tests
              (add-installed-pythonpath inputs outputs)
-             (zero? (system* "py.test" "-v")))))))
+             (invoke "py.test" "-v"))))))
     (home-page "https://github.com/nickstenning/honcho")
     (synopsis "Manage Procfile-based applications")
     (description
@@ -4854,7 +4895,7 @@ libxml2 and libxslt.")
          ;; For more information, see the file 'convert-py3k' in the source
          ;; distribution.
          (replace 'check
-           (lambda _ (zero? (system* "./convert-py3k")))))))
+           (lambda _ (invoke "./convert-py3k"))))))
     (home-page
      "https://www.crummy.com/software/BeautifulSoup/bs4/")
     (synopsis
@@ -5101,8 +5142,7 @@ and statistical routines from scipy and statsmodels.")
      (modify-phases %standard-phases
        (replace 'check
          (lambda _
-           (zero?
-            (system* "python" "mpmath/tests/runtests.py" "-local")))))))
+           (invoke "python" "mpmath/tests/runtests.py" "-local"))))))
   (home-page "http://mpmath.org")
   (synopsis "Arbitrary-precision floating-point arithmetic in python")
   (description
@@ -5324,7 +5364,7 @@ Python 2 and Python 3.")
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (zero? (system* "py.test" "-v")))))))
+             (invoke "py.test" "-v"))))))
     (native-inputs
      `(("python2-pytest" ,python2-pytest)))
     (home-page "https://github.com/chrippa/backports.shutil_get_terminal_size")
@@ -5668,7 +5708,7 @@ PEP8_PLUGIN('break_before_binary_operator'),"))
              (setenv "PYTHONPATH"
                      (string-append (getcwd) "/build/lib:"
                                     (getenv "PYTHONPATH")))
-             (zero? (system* "py.test" "-v")))))))
+             (invoke "py.test" "-v"))))))
     (native-inputs
      `(("python-flake8" ,python-flake8)
        ("python-mock" ,python-mock)
@@ -5754,8 +5794,7 @@ markdown_py is also provided to convert Markdown files to HTML.")
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-                  (lambda _
-                    (zero? (system* "nosetests")))))))
+           (lambda _ (invoke "nosetests"))))))
     (home-page "https://github.com/pexpect/ptyprocess")
     (synopsis "Run a subprocess in a pseudo terminal")
     (description
@@ -5809,7 +5848,7 @@ pseudo terminal (pty), and interact with both the process and its pty.")
              (add-installed-pythonpath inputs outputs)
              (setenv "PATH" (string-append (getenv "PATH") ":"
                                            (assoc-ref outputs "out") "/bin"))
-             (zero? (system* "make" "test")))))))
+             (invoke "make" "test"))))))
     (build-system python-build-system)
     (native-inputs
      `(("python-coverage" ,python-coverage)
@@ -6090,7 +6129,7 @@ and MAC network addresses.")
        (modify-phases %standard-phases
          ;; Current test in setup.py does not work as of 1.0.0, so use nose to
          ;; run tests instead for now.
-         (replace 'check (lambda _ (zero? (system* "nosetests")))))))
+         (replace 'check (lambda _ (invoke "nosetests"))))))
     (native-inputs `(("python-nose"       ,python-nose)))
     (home-page "http://www.python-excel.org/")
     (synopsis "Library for extracting data from Excel files")
@@ -6166,14 +6205,14 @@ printing of sub-tables by specifying a row range.")
              #t))
          (replace 'build
            (lambda* (#:key inputs #:allow-other-keys)
-             (zero? (system* "python" "setup.py" "build"
-                             (string-append "--hdf5="
-                                            (assoc-ref inputs "hdf5"))))))
+             (invoke "python" "setup.py" "build"
+                     (string-append "--hdf5="
+                                    (assoc-ref inputs "hdf5")))))
          (replace 'check
            (lambda* (#:key inputs #:allow-other-keys)
-             (zero? (system* "python" "setup.py" "check"
-                             (string-append "--hdf5="
-                                            (assoc-ref inputs "hdf5")))))))))
+             (invoke "python" "setup.py" "check"
+                     (string-append "--hdf5="
+                                    (assoc-ref inputs "hdf5"))))))))
     (propagated-inputs
      `(("python-numexpr" ,python-numexpr)
        ("python-numpy" ,python-numpy)))
@@ -6278,8 +6317,7 @@ implementations of ASN.1-based codecs and protocols.")
        #:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda* _
-             (zero? (system* "python" "ipaddr_test.py")))))))
+           (lambda _ (invoke "python" "ipaddr_test.py"))))))
     (home-page "https://github.com/google/ipaddr-py")
     (synopsis "IP address manipulation library")
     (description
@@ -8489,7 +8527,7 @@ module, adding support for Unicode strings.")
        (modify-phases %standard-phases
          (replace 'check
            ;; Many tests fail, but the installation proceeds.
-           (lambda _ (zero? (system* "make" "-C" "test" "test")))))))
+           (lambda _ (invoke "make" "-C" "test" "test"))))))
     (native-inputs
      `(("which" ,which))) ; required for tests
     (propagated-inputs
@@ -9497,8 +9535,7 @@ parsing UK postcodes.")
    '(#:phases
      (modify-phases %standard-phases
        (replace 'check
-         (lambda _
-           (zero? (system* "python" "-m" "unittest" "-v" "tests")))))))
+         (lambda _ (invoke "python" "-m" "unittest" "-v" "tests"))))))
   (native-inputs
    `(;; For testing
      ("python-email-validator" ,python-email-validator)
@@ -9634,17 +9671,17 @@ characters, mouse support, and auto suggestions.")
 (define-public python-jedi
   (package
     (name "python-jedi")
-    (version "0.13.1")
+    (version "0.13.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "jedi" version))
        (sha256
         (base32
-         "0j11q42g5vjkyhhjpyy8nb0gdxs78m3rpjai7p1hvgpyl9rkyjdp"))))
+         "1za944msp0f8x36qa8l309jhv0kzlsdh7r9nj3z12y8npnsh45sp"))))
     (build-system python-build-system)
     (arguments
-     `( ;; Many tests are failing with Python 3.7.x as of version 0.13.1 (see:
+     `( ;; Many tests are failing with Python 3.7.x as of version 0.13.2 (see:
         ;; https://github.com/davidhalter/jedi/issues/1263)
        #:tests? #f
        #:phases
@@ -9991,9 +10028,9 @@ discovery, monitoring and configuration.")
            ;; The test runner invokes python2 and python3 for test*.py.
            ;; To avoid having both in inputs, we replicate it here.
            (lambda _
-             (every (lambda (test-file)
-                      (zero? (system* "python" test-file)))
-                    (find-files "tests" "^test.*\\.py$")))))))
+             (for-each (lambda (test-file) (invoke "python" test-file))
+                       (find-files "tests" "^test.*\\.py$"))
+             #t)))))
     (build-system python-build-system)
     (home-page "https://github.com/eea/odfpy")
     (synopsis "Python API and tools to manipulate OpenDocument files")
@@ -10392,7 +10429,7 @@ is used by PostgreSQL and the OpenSSH Server for example.")
              (setenv "PYTHONPATH"
                      (string-append (getcwd) "/build/lib:"
                                     (getenv "PYTHONPATH")))
-             (zero? (system* "py.test" "-vv" )))))))
+             (invoke "py.test" "-vv" ))))))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (home-page
@@ -10512,7 +10549,7 @@ PNG, JPEG, JPEG2000 and GIF files in pure Python.")
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (zero? (system* "python" "test3.py")))))))
+             (invoke "python" "test3.py"))))))
     (home-page "https://github.com/gfxmonk/termstyle")
     (synopsis "Console text coloring for Python")
     (description "This package provides console text coloring for Python.")
@@ -10720,7 +10757,7 @@ protocols written in pure Python.")
              (setenv "PYTHONPATH"
                      (string-append (getcwd) "/build/lib:"
                                     (getenv "PYTHONPATH")))
-             (zero? (system* "python" "test/test_pbkdf2.py")))))))
+             (invoke "python" "test/test_pbkdf2.py"))))))
     (propagated-inputs
      `(("python-pycrypto" ,python-pycrypto)))  ; optional
     (home-page "https://www.dlitz.net/software/python-pbkdf2/")
@@ -10928,7 +10965,7 @@ Problem} (SAT) solver.")
          (add-after 'install 'check
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (add-installed-pythonpath inputs outputs)
-             (zero? (system* "python" "test/testordereddict.py")))))))
+             (invoke "python" "test/testordereddict.py"))))))
     (home-page "https://bitbucket.org/ruamel/ordereddict")
     (synopsis "Version of dict that keeps keys in insertion order")
     (description
@@ -11185,7 +11222,7 @@ protocols.")
              ;; Disable python3 tests
              (substitute* "check"
                (("python3") "# python3"))
-             (zero? (system* "./check")))))))
+             (invoke "./check"))))))
     (native-inputs
      `(("python2-coverage-test-runner" ,python2-coverage-test-runner)
        ("python2-pep8" ,python2-pep8)))
@@ -11225,8 +11262,7 @@ iterating over input files.")
          ;; and fails.
          (delete 'check)
          (add-before 'build 'check
-           (lambda _
-             (zero? (system* "make" "check")))))))
+           (lambda _ (invoke "make" "check"))))))
     (home-page "https://liw.fi/ttystatus/")
     (synopsis "Python library for showing progress reporting and
 status updates on terminals")
@@ -11288,8 +11324,7 @@ happens using the @code{logging} library.")
          ;; and fails.
          (delete 'check)
          (add-before 'build 'check
-           (lambda _
-             (zero? (system* "make" "check")))))))
+           (lambda _ (invoke "make" "check"))))))
     (native-inputs
      `(("cmdtest" ,cmdtest)
        ("python2-coverage-test-runner" ,python2-coverage-test-runner)))
@@ -12303,7 +12338,7 @@ Swagger 2.0).")
              (setenv "PYTHONPATH" (string-append (getcwd)
                                                  ":"
                                                  (getenv "PYTHONPATH")))
-             (zero? (system* "py.test")))))))
+             (invoke "py.test"))))))
     (propagated-inputs
      `(("python-flask" ,python-flask)
        ("python-pyyaml" ,python-pyyaml)
@@ -13149,9 +13184,9 @@ is the new Pyro version that is actively developed.")
        (modify-phases %standard-phases
          (replace 'build
            (lambda* (#:key inputs #:allow-other-keys)
-             (zero? (system* "python" "setup.py" "build"
-                             (string-append "--netcdf_prefix="
-                                            (assoc-ref inputs "netcdf")))))))))
+             (invoke "python" "setup.py" "build"
+                     (string-append "--netcdf_prefix="
+                                    (assoc-ref inputs "netcdf"))))))))
     (home-page "https://bitbucket.org/khinsen/scientificpython")
     (synopsis "Python modules for scientific computing")
     (description "ScientificPython is a collection of Python modules that are