Subject: [bug#69736] [PATCH v2 6/6] gnu: Add python-toil.

From: Arun Isaac <[email-masked]>
Date: Wed, 3 Jul 2024 16:07:22 +0100

* gnu/packages/bioinformatics.scm (python-toil): New variable.

Change-Id: I1a6c071eaa9169c1e0cd7c74d1117490ee7bf267
---
 gnu/packages/bioinformatics.scm | 62 +++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index b83e18ea78..6d15b1a226 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -88,6 +88,7 @@ (define-module (gnu packages bioinformatics)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages dlang)
+  #:use-module (gnu packages docker)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gawk)
@@ -5828,6 +5829,67 @@ (define-public python-cwltool
      (modify-inputs (package-inputs cwltool)
        (delete "node")))))
 
+(define-public python-toil
+  (package
+    (name "python-toil")
+    (version "6.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "toil" version))
+              (sha256
+               (base32
+                "0hwaihnncsfxw0sf3iigvgw6nylrb56lpk8qjadkgazr98dsp4ha"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'disable-optional-features
+            (lambda _
+              (substitute* "requirements-cwl.txt"
+                ;; Loosen version restrictions on ruamel.yaml.
+                (("ruamel.yaml[<>=.,[:digit:]]*\n") "ruamel.yaml\n")
+                ;; Remove optional dependency on galaxy-util and
+                ;; galaxy-tool-util. TODO: Package these and restore these
+                ;; dependencies.
+                (("galaxy-util[^\n]*") "")
+                (("galaxy-tool-util[^\n]*") ""))
+              ;; Disable optional wdl, wes and mesos features. We don't yet
+              ;; have dependencies packaged for them. TODO: Package these
+              ;; dependencies and enable these features.
+              (substitute* "setup.py"
+                (("\"wdl\",") "")
+                (("toil-cwl-runner = toil.cwl.cwltoil:main \\[cwl\\]")
+                 "toil-cwl-runner = toil.cwl.cwltoil:main")
+                (("'toil-wdl-runner = toil.wdl.wdltoil:main \\[wdl\\]',") "")
+                (("'toil-wes-cwl-runner = toil.server.cli.wes_cwl_runner:main \\[server\\]',") "")
+                (("'_toil_mesos_executor = toil.batchSystems.mesos.executor:main \\[mesos\\]',") "")))))))
+    (propagated-inputs
+     (list python-addict
+           python-cachecontrol
+           python-configargparse
+           python-cwltool
+           python-dateutil
+           python-dill
+           python-docker
+           python-enlighten
+           python-psutil
+           python-pypubsub
+           python-pytz
+           python-pyyaml
+           python-requests
+           python-ruamel.yaml
+           python-typing-extensions-4.10
+           python-urllib3))
+    (home-page "https://github.com/DataBiosphere/toil")
+    (synopsis "Scalable, efficient and cross-platform workflow engine")
+    (description "Toil is a scalable, efficient, cross-platform pipeline
+management system, written entirely in Python, and designed around the
+principles of functional programming.")
+    (license (list license:asl2.0    ;; main license
+                   license:expat)))) ;; src/toil/batchSystems/lsf.py and
+                                     ;; src/toil/batchSystems/lsfHelper.py
+
 (define-public python-dendropy
   (package
     (name "python-dendropy")
-- 
2.45.2