summaryrefslogtreecommitdiff
path: root/gnu/packages/python-science.scm
diff options
context:
space:
mode:
authorNicolas Graves <ngraves@ngraves.fr>2026-08-17 21:20:27 +0200
committerSharlatan Hellseher <sharlatanus@gmail.com>2026-09-02 00:23:29 +0100
commit643e9233e1ad76031a46234a9091ef4e48de0f31 (patch)
tree5511be33775ae7a2d3eb57207a2d79a8d0bea080 /gnu/packages/python-science.scm
parent177fcb6b1277abfeda93c70f46596f80f5424e5a (diff)
gnu: snakemake: Update to 9.25.1.
* gnu/packages/python-science.scm (snakemake): Update to 9.25.1. [source]: Switch to git-fetch. [arguments]{test-flags}: Refresh them. {phases}: Add phase 'relax-requirements, drop phase 'call-wrapper-not-wrapped-snakemake, which was not effective for some time already. [propagated-inputs]: Add python-snakemake-interface-logger-plugins, python-snakemake-interface-scheduler-plugins, python-snakemake-interface-software-deployment-plugins, python-sqlmodel. [native-inputs]: Add python-pytest, python-setuptools-scm, python-snakemake-interface-software-deployment-plugin-container, spython-snakemake-interface-logger-plugin-envmodules. Relates-to: guix/guix!10625 Reviewed-by: Hugo Buddelmeijer <hugo@buddelmeijer.nl> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Diffstat (limited to 'gnu/packages/python-science.scm')
-rw-r--r--gnu/packages/python-science.scm67
1 files changed, 34 insertions, 33 deletions
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index ea8856be11b..d9ade7a7dbe 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -7084,27 +7084,39 @@ are source structure, project manager, interactive help, workspace...")
7084(define-public snakemake 7084(define-public snakemake
7085 (package 7085 (package
7086 (name "snakemake") 7086 (name "snakemake")
7087 (version "8.30.0") 7087 (version "9.25.1")
7088 (source 7088 (source
7089 (origin 7089 (origin
7090 (method url-fetch) 7090 (method git-fetch)
7091 (uri (pypi-uri "snakemake" version)) 7091 (uri (git-reference
7092 (url "https://github.com/snakemake/snakemake")
7093 (commit (string-append "v" version))))
7094 (file-name (git-file-name name version))
7092 (sha256 7095 (sha256
7093 (base32 "08k6qk886a6f79higkd0pjjrq9sn6w5gk0gdgx88rhr1aln1qk7x")))) 7096 (base32 "15xic0m0pyhakyzvi9r2hlm9rvfnws53ngxnwkp9l9x47xqfgh7v"))))
7094 (build-system pyproject-build-system) 7097 (build-system pyproject-build-system)
7095 (arguments 7098 (arguments
7096 (list 7099 (list
7097 #:test-flags 7100 #:test-flags
7098 #~(list 7101 #~(list
7102 ;; Conda is ignored, see
7103 ;; github.com/snakemake/snakemake/pull/3339#issuecomment-5241768006
7104 "--ignore=tests/test_software_directive.py"
7105 ;; These tests require snakemake-executor-plugin-cluster-generic.
7106 "--ignore=tests/test_executor_test_suite.py"
7107 "--deselect=tests/test_logging.py::test_group_job_failure_events"
7108 ;; Those require additional snakemake plugins.
7109 "--ignore=tests/test_api.py"
7099 ;; XXX: Unclear why these tests fail. 7110 ;; XXX: Unclear why these tests fail.
7111 "--ignore=tests/test_jupyter_notebook_pathlike.py"
7112 "--ignore=tests/test_persistence.py"
7113 "--deselect=tests/test_script.py::TestBashEncoder"
7114 "--deselect=tests/test_sourcecache.py::test_github_file_fetch"
7100 "--ignore=tests/test_report_href/test_script.py" 7115 "--ignore=tests/test_report_href/test_script.py"
7101 "--ignore=tests/test_script_py/scripts/test_explicit_import.py" 7116 "--ignore=tests/test_script_py/scripts/test_explicit_import.py"
7102 "--ignore=tests/test_output_index.py" 7117 "--ignore=tests/test_output_index.py"
7103 ;; We don't care about testing old python@3.7 on Guix. 7118 ;; We don't care about testing old python@3.7 on Guix.
7104 "--ignore=tests/test_conda_python_3_7_script/test_script_python_3_7.py" 7119 "--ignore=tests/test_conda_python_3_7_script/test_script_python_3_7.py"
7105 ;; Those require additional snakemake plugins.
7106 "--ignore=tests/test_api.py"
7107 "--ignore=tests/test_executor_test_suite.py"
7108 ;; We don't care about lints. 7120 ;; We don't care about lints.
7109 "--ignore=tests/test_linting.py" 7121 "--ignore=tests/test_linting.py"
7110 ;; These tests attempt to change S3 buckets on AWS and fail 7122 ;; These tests attempt to change S3 buckets on AWS and fail
@@ -7115,37 +7127,18 @@ are source structure, project manager, interactive help, workspace...")
7115 "--ignore=tests/test_google_lifesciences") 7127 "--ignore=tests/test_google_lifesciences")
7116 #:phases 7128 #:phases
7117 #~(modify-phases %standard-phases 7129 #~(modify-phases %standard-phases
7130 (add-after 'unpack 'relax-requirements
7131 (lambda _
7132 (substitute* "pyproject.toml"
7133 (("\"pip\",")
7134 "")
7135 (("\"packaging.*\",")
7136 "\"packaging\","))))
7118 (add-after 'unpack 'avoid-assets-download 7137 (add-after 'unpack 'avoid-assets-download
7119 (lambda _ 7138 (lambda _
7120 (substitute* "setup.py" 7139 (substitute* "setup.py"
7121 (("^from assets import Assets") "") 7140 (("^from assets import Assets") "")
7122 (("^Assets\\.deploy\\(\\)") "")))) 7141 (("^Assets\\.deploy\\(\\)") ""))))
7123 ;; For cluster execution Snakemake will call Python. Since there is
7124 ;; no suitable GUIX_PYTHONPATH set, cluster execution will fail. We
7125 ;; fix this by calling the snakemake wrapper instead.
7126 (add-after 'unpack 'call-wrapper-not-wrapped-snakemake
7127 (lambda _
7128 (substitute* "snakemake/executors/__init__.py"
7129 (("self\\.get_python_executable\\(\\),")
7130 "")
7131 (("\"-m snakemake\"")
7132 (string-append "\"" #$output
7133 "/bin/snakemake" "\""))
7134 ;; The snakemake command produced by format_job_exec contains
7135 ;; references to /gnu/store. Prior to patching above that's
7136 ;; just a reference to Python; after patching it's a reference
7137 ;; to the snakemake executable.
7138 ;;
7139 ;; In Tibanna execution mode Snakemake arranges for a certain
7140 ;; Docker image to be deployed to AWS. It then passes its own
7141 ;; command line to Tibanna. This is misguided because it only
7142 ;; ever works if the local Snakemake command was run inside
7143 ;; the same Docker image. In the case of using Guix this is
7144 ;; never correct, so we need to replace the store reference.
7145 (("tibanna_args.command = command")
7146 (string-append
7147 "tibanna_args.command = command.replace('"
7148 #$output "/bin/snakemake', 'python3 -m snakemake')")))))
7149 (add-before 'check 'pre-check 7142 (add-before 'check 'pre-check
7150 (lambda* (#:key tests? #:allow-other-keys) 7143 (lambda* (#:key tests? #:allow-other-keys)
7151 (when tests? 7144 (when tests?
@@ -7171,8 +7164,12 @@ are source structure, project manager, interactive help, workspace...")
7171 python-smart-open 7164 python-smart-open
7172 python-snakemake-interface-common 7165 python-snakemake-interface-common
7173 python-snakemake-interface-executor-plugins 7166 python-snakemake-interface-executor-plugins
7167 python-snakemake-interface-logger-plugins
7174 python-snakemake-interface-report-plugins 7168 python-snakemake-interface-report-plugins
7169 python-snakemake-interface-scheduler-plugins
7170 python-snakemake-interface-software-deployment-plugins
7175 python-snakemake-interface-storage-plugins 7171 python-snakemake-interface-storage-plugins
7172 python-sqlmodel
7176 python-tabulate 7173 python-tabulate
7177 python-throttler 7174 python-throttler
7178 python-wrapt 7175 python-wrapt
@@ -7181,7 +7178,11 @@ are source structure, project manager, interactive help, workspace...")
7181 (list python-docutils 7178 (list python-docutils
7182 python-numpy 7179 python-numpy
7183 python-pandas 7180 python-pandas
7181 python-pytest
7184 python-setuptools 7182 python-setuptools
7183 python-setuptools-scm
7184 python-snakemake-software-deployment-plugin-container
7185 python-snakemake-software-deployment-plugin-envmodules
7185 python-tomli)) 7186 python-tomli))
7186 (home-page "https://snakemake.readthedocs.io") 7187 (home-page "https://snakemake.readthedocs.io")
7187 (synopsis "Python-based execution environment for make-like workflows") 7188 (synopsis "Python-based execution environment for make-like workflows")