summary refs log tree commit diff
path: root/gnu/packages/machine-learning.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <ricardo.wurmus@mdc-berlin.de>2018-09-12 19:04:02 +0200
committerRicardo Wurmus <rekado@elephly.net>2018-09-12 19:35:02 +0200
commit4a89bdd1965f9bf4a06590bb7fde806be3e784a6 (patch)
tree95f8c89e3c23ac0ba5128074ef37ea0bde46ae51 /gnu/packages/machine-learning.scm
parentb002809f848d81dfc4640635d98d8bac3af62cee (diff)
downloadguix-4a89bdd1965f9bf4a06590bb7fde806be3e784a6.tar.gz
gnu: python-scikit-learn: Update to 0.19.2.
* gnu/packages/machine-learning.scm (python-scikit-learn): Update to 0.19.2.
[source]: Fetch from git.
[arguments]: Run tests before installation; replace "check" phase, add
"build-ext" phase; delete "reset-gzip-timestamps" phase.
[native-inputs]: Add python-pytest and python-pandas; remove python-nose.
Diffstat (limited to 'gnu/packages/machine-learning.scm')
-rw-r--r--gnu/packages/machine-learning.scm49
1 files changed, 25 insertions, 24 deletions
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 7790e78779..9aa61bd8f8 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -703,40 +703,41 @@ computing environments.")
 (define-public python-scikit-learn
   (package
     (name "python-scikit-learn")
-    (version "0.19.1")
+    (version "0.19.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/scikit-learn/scikit-learn/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/scikit-learn/scikit-learn.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "18n8775kyfwbvcjjjzda9c5sqy4737c0hrmj6qj1ps2jmlqzair9"))
+         "1dk9hdj01c0bny4ps78b7869fjw9gr6qklxf6wyql8h6nh4k19xm"))
        (patches (search-patches
-                "python-scikit-learn-fix-test-non-determinism.patch"))))
+                 "python-scikit-learn-fix-test-non-determinism.patch"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (delete 'check)
-         (add-after 'install 'check
-           ;; Running tests from the source directory requires
-           ;; an "inplace" build with paths relative to CWD.
-           ;; http://scikit-learn.org/stable/developers/advanced_installation.html#testing
-           ;; Use the installed version instead.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             ;; some tests require access to "$HOME"
-             (setenv "HOME" "/tmp")
-             ;; Step out of the source directory just to be sure.
-             (chdir "..")
-             (invoke "nosetests" "-v" "sklearn"))))))
+         (add-after 'build 'build-ext
+           (lambda _ (invoke "python" "setup.py" "build_ext" "--inplace") #t))
+         (replace 'check
+           (lambda _
+             ;; Restrict OpenBLAS threads to prevent segfaults while testing!
+             (setenv "OPENBLAS_NUM_THREADS" "1")
+             ;; Disable tests that require network access
+             (delete-file "sklearn/datasets/tests/test_mldata.py")
+             (delete-file "sklearn/datasets/tests/test_rcv1.py")
+             (invoke "pytest" "sklearn")
+             #t))
+         ;; FIXME: This fails with permission denied
+         (delete 'reset-gzip-timestamps))))
     (inputs
      `(("openblas" ,openblas)))
     (native-inputs
-     `(("python-nose" ,python-nose)
+     `(("python-pytest" ,python-pytest)
+       ("python-pandas" ,python-pandas) ;for tests
        ("python-cython" ,python-cython)))
     (propagated-inputs
      `(("python-numpy" ,python-numpy)
@@ -744,8 +745,8 @@ computing environments.")
     (home-page "http://scikit-learn.org/")
     (synopsis "Machine Learning in Python")
     (description
-     "Scikit-learn provides simple and efficient tools for data
-mining and data analysis.")
+     "Scikit-learn provides simple and efficient tools for data mining and
+data analysis.")
     (license license:bsd-3)))
 
 (define-public python2-scikit-learn