aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages orange)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system python)
  #:use-module (gnu packages)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages freedesktop)
  #:use-module (gnu packages graph)
  #:use-module (gnu packages machine-learning)
  #:use-module (gnu packages python-build)
  #:use-module (gnu packages python-crypto)
  #:use-module (gnu packages python-science)
  #:use-module (gnu packages python-web)
  #:use-module (gnu packages python-xyz)
  #:use-module (gnu packages qt))

(define-public python-orange-canvas-core
  (package
    (name "python-orange-canvas-core")
    (version "0.1.24")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "orange-canvas-core" version))
       (sha256
        (base32 "0m3dszdkc5bc80ahcvrqxz8jahs33js9cx1mc6rc9ihysq2ddnfz"))))
    (build-system python-build-system)
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-before 'check 'check-setup
           (lambda _
             ;; This test fails with: RuntimeError: Event loop is closed.
             (substitute* "orangecanvas/application/tests/test_mainwindow.py"
               (("test_help_requests") "_test_help_requests"))
             (setenv "HOME" "/tmp")
             (setenv "QT_QPA_PLATFORM" "offscreen"))))))
    (propagated-inputs
     (list python-anyqt
           python-cachecontrol
           python-commonmark
           python-dictdiffer
           python-docutils
           python-qasync
           python-requests))
    (home-page "https://github.com/biolab/orange-canvas-core")
    (synopsis "Core component of Orange Canvas")
    (description
     "Orange Canvas Core is a framework for building graphical user interfaces
for editing workflows.  It is a component used to build the Orange Canvas
data-mining application.")
    (license license:gpl3)))

(define-public python-orange-widget-base
  (package
    (name "python-orange-widget-base")
    (version "4.16.1")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "orange-widget-base" version))
       (sha256
        (base32 "0a0sijsvzijj71sxq8ckpgz59z1cq9sxn4fya3z23ibdzjzwrsi7"))))
    (build-system python-build-system)
    (arguments
     `(;; unittest fails to load one test, all other tests are passing:
       ;; AttributeError: module 'orangewidget' has no attribute 'version'.
       #:tests? #f
       #:phases
       (modify-phases %standard-phases
         (add-before 'check 'check-setup
           (lambda _
             (setenv "HOME" "/tmp")
             (setenv "QT_QPA_PLATFORM" "offscreen"))))))
    (propagated-inputs
     (list python-anyqt python-matplotlib python-orange-canvas-core
           python-pyqtgraph python-typing-extensions))
    (home-page "https://github.com/biolab/orange-widget-base")
    (synopsis "Base Widget for Orange Canvas")
    (description
     "Orange Widget Base provides a base widget component for a interactive
GUI based workflow.  It is primarily used in the Orange framework.")
    (license license:gpl3+)))

(define-public orange
  (package
    (name "orange")
    (version "3.32.0")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "Orange3" version))
       (sha256
        (base32 "0pxjwisc209cdgpqlqazc2vlmr0iqz8ry862w7jx95zic54d9p5l"))))
    (build-system python-build-system)
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'preparations
           (lambda _
             ;; Delete test that opens an outgoing connection.
             (delete-file "Orange/tests/test_url_reader.py")
             ;; This is a binary data file and it breaks runpath validation.
             (delete-file "Orange/tests/datasets/binary-blob.tab")
             ;; Skip the test which uses that binary file.
             (substitute* "Orange/tests/test_txt_reader.py"
               (("test_read_nonutf8_encoding") "_test_read_nonutf8_encoding"))
             ;; We use a correct version of PyQtWebEngine, but the build scripts
             ;; consider it incorrect anyways. Remove the constraint entirely to
             ;; work around this bug.
             (substitute* "requirements-pyqt.txt" (("PyQtWebEngine>=5.12") ""))))
         (add-before 'check 'pre-check
           ;; Tests need a writable home.
           (lambda _
             (setenv "HOME" "/tmp")
             (setenv "QT_QPA_PLATFORM" "offscreen")))
         (add-after 'install 'wrap-executable
           ;; Ensure that icons are found at runtime.
           (lambda* (#:key inputs outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out")))
               (wrap-program (string-append out "/bin/orange-canvas")
                 `("QT_PLUGIN_PATH" prefix
                   ,(list (string-append (assoc-ref inputs "qtsvg")
                                         "/lib/qt5/plugins/"))))))))))
    (native-inputs
     (list python-cython))
    (inputs
     (list bash-minimal
           python-anyqt
           python-baycomp
           python-bottleneck
           python-chardet
           python-httpx
           python-joblib
           python-keyring
           python-keyrings.alt
           python-louvain
           python-matplotlib
           python-networkx
           python-numpy
           python-openpyxl
           python-opentsne
           python-orange-canvas-core
           python-orange-widget-base
           python-pandas
           python-pygments
           python-pyqt
           python-pyqtgraph
           python-pyqtwebengine
           python-pyyaml
           python-qtconsole
           python-requests
           python-scikit-learn
           python-scipy
           python-serverfiles
           python-xlrd
           python-xlsxwriter
           qtbase-5
           qtsvg-5
           xdg-utils))
    (home-page "https://orangedatamining.com/")
    (synopsis "Component-based data mining framework")
    (description
     "Orange is a component-based, graphical framework for machine learning,
data analysis, data mining and data visualization.")
    (license license:gpl3+)))

(define-public python-serverfiles
  (package
    (name "python-serverfiles")
    (version "0.3.1")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "serverfiles" version))
       (sha256
        (base32 "1qgbzgnaxj4wsp2rdas53qxsh0j7xpibq25w6lviwyaqwwrgq42y"))))
    (build-system python-build-system)
    (propagated-inputs
     (list python-requests))
    (home-page "https://github.com/biolab/serverfiles")
    (synopsis "Utility to access files on a HTTP server and store them locally")
    (description
     "This package provides an utility that accesses files on a HTTP server
and stores them locally for reuse.  It is primarily used by the Orange
framework.")
    (license license:gpl3+)))
. * gnu/packages/music.scm (fmit)[native-inputs]: Likewise. * gnu/packages/package-management.scm (flatpak)[native-inputs]: Likewise. * gnu/packages/patchutils.scm (quilt)[native-inputs]: Likewise. * gnu/packages/photo.scm (hugin)[native-inputs]: Likewise. * gnu/packages/security-token.scm (eid-mw)[native-inputs]: Likewise. * gnu/packages/telephony.scm (jami)[native-inputs]: Likewise. * gnu/packages/texinfo.scm (pinfo)[native-inputs]: Likewise. * gnu/packages/vulkan.scm (vkd3d)[native-inputs]: Likewise. * gnu/packages/web.scm (cadaver)[native-inputs]: Likewise. Marius Bakke 2020-02-03Merge branch 'staging' into core-updatesMarius Bakke 2020-01-24gnu: pinfo: Fix spelling of "additionally"....* gnu/packages/texinfo (pinfo)[description]: Fix typo. Vagrant Cascadian 2020-01-21gnu: Remove texinfo@6.6...* gnu/packages/texinfo.scm (texinfo): Update to 6.7. (texinfo-6.7): Remove variable. Marius Bakke 2019-12-31Merge remote-tracking branch 'master' into core-updates.Mathieu Othacehe 2019-12-17gnu: pinfo: Use a source file name....* gnu/packages/texinfo.scm (pinfo)[source]: Add 'file-name'. Efraim Flashner 2019-12-16Revert "gnu: info-reader: Fix cross-compilation."...This reverts commit 614a1e3fa2d731d4719f03912b1b87fb4fd309cb. This is broken on master with the following error: output (`/gnu/store/6rnhfi8zrdajbahbq9ii8bpj7mwfcjba-info-reader-6.6') is not allowed to refer to path `/gnu/store/ziinjmbnq004866mwjrczsk12wf35qb8-perl-5.30.0' build of /gnu/store/nnfvr10713khxp1bkbpwi5wxbj8cm4wb-info-reader-6.6.drv failed View build log at '/var/log/guix/drvs/nn/fvr10713khxp1bkbpwi5wxbj8cm4wb-info-reader-6.6.drv.bz2'. Mathieu Othacehe 2019-12-15gnu: Add pinfo....* gnu/packages/texinfo.scm (pinfo): New variable. Ricardo Wurmus 2019-12-15gnu: texinfo: Add missing include....* gnu/packages/texinfo.scm (info-reader): Fix missing include, introduced by f5d670606354728a453b8cc962c4f85516007d13. Mathieu Othacehe 2019-12-15gnu: info-reader: Fix cross-compilation....* gnu/packages/texinfo.scm (info-reader)[arguments]: Add keep-only-info-reader phase to inherited texinfo package phases, so that fix-cross-configure phase is preserved. Mathieu Othacehe 2019-12-14gnu: info-reader: Fix cross-compilation....* gnu/packages/texinfo.scm (info-reader)[arguments]: Add keep-only-info-reader phase to inherited texinfo package phases, so that fix-cross-configure phase is preserved. Mathieu Othacehe