snakemake: new version with plugins (#42713)

* snakemake: add Snakemake 8 with dependencies

* snakemake: add missing description

* Whitespace

* Whitespace

* Whitespace

* Whitespace

* py-conda-inject: add constraint for Python

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake-executor-plugin-azure-batch: add constraint for Python

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake-executor-plugin-cluster-generic: add constraint for Python

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake: add upper bound for Python

* py-snakemake-executor-plugin-drmaa: specify dependency type

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake-executor-plugin-googlebatch: correct dependency version

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake-executor-plugin-tes: correct dependency version

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake-storage-plugin-s3: reorder

* snakemake: remove newly added variants

* snakemake: remove newly added variants

* snakemake: remove newly added variant

* snakemake: update version

* snakemake: update version

* snakemake: whitespace

* py-snakemake-storage-plugin-s3: update version

* snakemake: use newer version

* snakemake: whitespace

* snakemake: update interfaces

* py-snakemake-storage-plugin-gcs: link issue

* snakemake: update versions

---------

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
This commit is contained in:
Maciej Wójcik 2024-02-25 11:47:38 +01:00 committed by GitHub
parent 07afbd5619
commit 3b4a27ce7b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
25 changed files with 653 additions and 20 deletions

View file

@ -0,0 +1,22 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyCondaInject(PythonPackage):
"""Helper functions for injecting a conda environment into the current python environment."""
pypi = "conda_inject/conda_inject-1.3.1.tar.gz"
license("MIT")
version("1.3.1", sha256="9e8d902230261beba74083aae12c2c5a395e29b408469fefadc8aaf51ee441e5")
depends_on("py-pyyaml@6", type=("build", "run"))
depends_on("python@3.9:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -8,16 +8,14 @@
class PyDpath(PythonPackage): class PyDpath(PythonPackage):
"""A python library for accessing and searching dictionaries via """Filesystem-like pathing and searching for dictionaries."""
/slashed/paths ala xpath."""
homepage = "https://github.com/akesterson/dpath-python" homepage = "https://github.com/dpath-maintainers/dpath-python"
pypi = "dpath/dpath-2.0.1.tar.gz" pypi = "dpath/dpath-2.1.6.tar.gz"
license("MIT") license("MIT")
version("2.1.6", sha256="f1e07c72e8605c6a9e80b64bc8f42714de08a789c7de417e49c3f87a19692e47")
version("2.0.1", sha256="bea06b5f4ff620a28dfc9848cf4d6b2bfeed34238edeb8ebe815c433b54eb1fa") version("2.0.1", sha256="bea06b5f4ff620a28dfc9848cf4d6b2bfeed34238edeb8ebe815c433b54eb1fa")
depends_on("python@2.7:", type=("build", "run"))
# pip silently replaces distutils with setuptools
depends_on("py-setuptools", type="build") depends_on("py-setuptools", type="build")

View file

@ -0,0 +1,32 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeExecutorPluginAzureBatch(PythonPackage):
"""A Snakemake executor plugin for submitting jobs to Microsoft Azure Batch."""
homepage = "https://github.com/snakemake/snakemake-executor-plugin-azure-batch"
pypi = (
"snakemake_executor_plugin_azure_batch/snakemake_executor_plugin_azure_batch-0.1.3.tar.gz"
)
license("MIT")
version("0.1.3", sha256="7883ecdc3983eb73ea0e1ae10010eeff1626510c7e99176203ee2050031f86e3")
depends_on("py-snakemake-interface-common@1.15:1", type=("build", "run"))
depends_on("py-snakemake-interface-executor-plugins@8.1.1:8", type=("build", "run"))
depends_on("py-azure-storage-blob@12.17:12", type=("build", "run"))
depends_on("py-azure-batch@14", type=("build", "run"))
depends_on("py-azure-mgmt-batch@17", type=("build", "run"))
depends_on("py-azure-identity@1.14:1", type=("build", "run"))
depends_on("py-msrest@0.7.1:0.7", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,27 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeExecutorPluginClusterGeneric(PythonPackage):
"""A Snakemake executor plugin for submitting jobs to a cluster."""
homepage = "https://github.com/snakemake/snakemake-executor-plugin-cluster-generic"
pypi = (
"snakemake_executor_plugin_cluster_generic/"
"snakemake_executor_plugin_cluster_generic-1.0.7.tar.gz"
)
license("MIT")
version("1.0.7", sha256="093808e63cc48294a9d1eb0b620cdff8cc970806294a2f6ba127a49f8a81d473")
depends_on("py-snakemake-interface-common@1.13:1", type=("build", "run"))
depends_on("py-snakemake-interface-executor-plugins@8.1:8", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,27 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeExecutorPluginClusterSync(PythonPackage):
"""A Snakemake executor plugin for cluster jobs that are executed synchronously."""
homepage = "https://github.com/snakemake/snakemake-executor-plugin-cluster-sync"
pypi = (
"snakemake_executor_plugin_cluster_sync/"
"snakemake_executor_plugin_cluster_sync-0.1.3.tar.gz"
)
license("MIT")
version("0.1.3", sha256="c30fca6ccb98a3f7ca52ca8a95414c71360a3d4a835bd4a097a13445d6fce2ac")
depends_on("py-snakemake-interface-common@1.14:1", type=("build", "run"))
depends_on("py-snakemake-interface-executor-plugins@8.1:8", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,25 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeExecutorPluginDrmaa(PythonPackage):
"""A snakemake executor plugin for submission of jobs via DRMAA."""
homepage = "https://github.com/snakemake/snakemake-executor-plugin-drmaa"
pypi = "snakemake_executor_plugin_drmaa/snakemake_executor_plugin_drmaa-0.1.3.tar.gz"
license("MIT")
version("0.1.3", sha256="1250d0f307bf3db3aa3f26f85ea5ecc7ae00b2598ea1e1afceab7a457042fa12")
depends_on("py-snakemake-interface-common@1.13:1", type=("build", "run"))
depends_on("py-snakemake-interface-executor-plugins@8.1:8", type=("build", "run"))
depends_on("py-drmaa@0.7.9:0.7", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,24 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeExecutorPluginFlux(PythonPackage):
"""A Snakemake executor plugin for the Flux scheduler."""
homepage = "https://github.com/snakemake/snakemake-executor-plugin-flux"
pypi = "snakemake_executor_plugin_flux/snakemake_executor_plugin_flux-0.1.0.tar.gz"
license("MIT")
version("0.1.0", sha256="92b1944dcf9ea163519a8879d4d638df2b3d0cd83ea6e8397d26046897811214")
depends_on("py-snakemake-interface-common@1.14:1", type=("build", "run"))
depends_on("py-snakemake-interface-executor-plugins@8.1.1:8", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,33 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeExecutorPluginGooglebatch(PythonPackage):
"""A Snakemake executor plugin."""
homepage = "https://github.com/snakemake/snakemake-executor-plugin-googlebatch"
pypi = (
"snakemake_executor_plugin_googlebatch/snakemake_executor_plugin_googlebatch-0.3.0.tar.gz"
)
license("MIT")
version("0.3.0", sha256="b143fcaeffceec682bc0f7e3f13eece3596a5d6faaf41fab94977f4a93948c16")
depends_on("py-google-cloud-batch@0.17.1:0.17", type=("build", "run"))
depends_on("py-requests@2.31:2", type=("build", "run"))
depends_on("py-google-api-core@2.12:2", type=("build", "run"))
depends_on("py-google-cloud-storage@2.12:2", type=("build", "run"))
depends_on("py-jinja2@3.1.2:3", type=("build", "run"))
depends_on("py-google-cloud-logging@3.8:3", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.14:1", type=("build", "run"))
depends_on("py-snakemake-interface-executor-plugins@8.1.1:8", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,26 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeExecutorPluginKubernetes(PythonPackage):
"""A Snakemake executor plugin for submission of jobs to Kubernetes."""
homepage = "https://github.com/snakemake/snakemake-executor-plugin-kubernetes"
pypi = "snakemake_executor_plugin_kubernetes/snakemake_executor_plugin_kubernetes-0.1.4.tar.gz"
license("MIT")
version("0.1.4", sha256="c3aeac87939ec5d038efdc3ba7dbbef5eeb3171c1b718b8af850b6287b9c54ff")
depends_on("py-kubernetes@27.2:27", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.14.1:1", type=("build", "run"))
depends_on("py-snakemake-interface-executor-plugins@8.0.2:8", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,28 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeExecutorPluginSlurmJobstep(PythonPackage):
"""A Snakemake executor plugin for running srun jobs inside of SLURM jobs
(meant for internal use by snakemake-executor-plugin-slurm)."""
homepage = "https://github.com/snakemake/snakemake-executor-plugin-slurm-jobstep"
pypi = (
"snakemake_executor_plugin_slurm_jobstep/"
"snakemake_executor_plugin_slurm_jobstep-0.1.9.tar.gz"
)
license("MIT")
version("0.1.10", sha256="321b6bdf7883a8fb40ff4aeeb88633502e4db8394e40b6628db41a430c2eae2b")
depends_on("py-snakemake-interface-common@1.13:1", type=("build", "run"))
depends_on("py-snakemake-interface-executor-plugins@8.2:8", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,27 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeExecutorPluginSlurm(PythonPackage):
"""A Snakemake executor plugin for submitting jobs to a SLURM cluster."""
homepage = "https://github.com/snakemake/snakemake-executor-plugin-slurm"
pypi = "snakemake_executor_plugin_slurm/snakemake_executor_plugin_slurm-0.3.1.tar.gz"
license("MIT")
version("0.3.2", sha256="3912f2895eab1270d7a42959a2e221ce53428dfffb847e03ec6bc4eead88e30b")
depends_on("py-throttler@1.2.2:1", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.13:1", type=("build", "run"))
depends_on("py-snakemake-interface-executor-plugins@8.2:8", type=("build", "run"))
depends_on("py-snakemake-executor-plugin-slurm-jobstep@0.1.10:0.1", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,26 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeExecutorPluginTes(PythonPackage):
"""A Snakemake executor plugin for submitting jobs via GA4GH TES."""
homepage = "https://github.com/snakemake/snakemake-executor-plugin-tes"
pypi = "snakemake_executor_plugin_tes/snakemake_executor_plugin_tes-0.1.2.tar.gz"
license("MIT")
version("0.1.2", sha256="bec01801ae3f158cfe7ca406a513455bcffa36fa7f83e35b2c7cb93bec9b00e9")
depends_on("py-py-tes@0.4.2:0.4", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.14:1", type=("build", "run"))
depends_on("py-snakemake-interface-executor-plugins@8.1.1:8", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,24 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeInterfaceCommon(PythonPackage):
"""Common functions and classes for Snakemake and its plugins."""
homepage = "https://github.com/snakemake/snakemake-interface-common"
pypi = "snakemake_interface_common/snakemake_interface_common-1.17.1.tar.gz"
license("MIT")
version("1.17.1", sha256="555c8218d9b68ddc1046f94a517e7d0f22e15bdc839d6ce149608d8ec137b9ae")
depends_on("py-argparse-dataclass@2", type=("build", "run"))
depends_on("py-configargparse@1.7:1", type=("build", "run"))
depends_on("python@:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,27 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeInterfaceExecutorPlugins(PythonPackage):
"""This package provides a stable interface for interactions between Snakemake and its
executor plugins."""
homepage = "https://github.com/snakemake/snakemake-interface-executor-plugins"
pypi = "snakemake_interface_executor_plugins/snakemake_interface_executor_plugins-8.2.0.tar.gz"
license("MIT")
version("8.2.0", sha256="4c74e3e1751bab6b266baf8688e854b8b4c5c5e10f5e34c581f42d69af4ff13b")
depends_on("py-argparse-dataclass@2", type=("build", "run"))
depends_on("py-throttler@1.2.2:1", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.12:1", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,23 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeInterfaceReportPlugins(PythonPackage):
"""The interface for Snakemake report plugins."""
homepage = "https://github.com/snakemake/snakemake-interface-report-plugins"
pypi = "snakemake_interface_report_plugins/snakemake_interface_report_plugins-1.0.0.tar.gz"
license("MIT")
version("1.0.0", sha256="02311cdc4bebab2a1c28469b5e6d5c6ac6e9c66998ad4e4b3229f1472127490f")
depends_on("py-snakemake-interface-common@1.16:1", type=("build", "run"))
depends_on("python@:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,28 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeInterfaceStoragePlugins(PythonPackage):
"""This package provides a stable interface for interactions between Snakemake and its storage
plugins."""
homepage = "https://github.com/snakemake/snakemake-interface-storage-plugins"
pypi = "snakemake_interface_storage_plugins/snakemake_interface_storage_plugins-3.1.0.tar.gz"
license("MIT")
version("3.1.0", sha256="26e95be235ef2a9716b890ea96c3a9a2e62061c5d72fbb89c2fad2afada87304")
depends_on("py-wrapt@1.15:1", type=("build", "run"))
depends_on("py-reretry@0.11.8:0.11", type=("build", "run"))
depends_on("py-throttler@1.2.2:1", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.12:1", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,28 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeStoragePluginAzure(PythonPackage):
"""A Snakemake storage plugin to read and write from Azure Blob Storage."""
homepage = "https://github.com/snakemake/snakemake-storage-plugin-azure"
pypi = "snakemake_storage_plugin_azure/snakemake_storage_plugin_azure-0.1.4.tar.gz"
license("MIT")
version("0.1.4", sha256="dcfcf285c9f1b1aa89db359afbf02b28d9e57a97ddac66747d3e46832e7ddbff")
depends_on("py-azure-storage-blob@12.19:12", type=("build", "run"))
depends_on("py-azure-core@1.29.5:1", type=("build", "run"))
depends_on("py-azure-identity@1.15:1", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.15:1", type=("build", "run"))
depends_on("py-snakemake-interface-storage-plugins@3", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,28 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeStoragePluginFs(PythonPackage):
"""A Snakemake storage plugin that reads and writes from a locally mounted filesystem
using rsync."""
homepage = "https://github.com/snakemake/snakemake-storage-plugin-fs"
pypi = "snakemake_storage_plugin_fs/snakemake_storage_plugin_fs-0.1.5.tar.gz"
license("MIT")
version("0.2.0", sha256="cad1859036cbf429ea6fdb97f242567ec54a36d0b6ff900ce0d3ecfb6a824ae7")
depends_on("py-sysrsync@1.1.1:1", type=("build", "run"))
depends_on("py-reretry@0.11.8:0.11", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.17:1", type=("build", "run"))
depends_on("py-snakemake-interface-storage-plugins@3.1:3", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,26 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeStoragePluginFtp(PythonPackage):
"""A Snakemake plugin for handling input and output via FTP."""
homepage = "https://github.com/snakemake/snakemake-storage-plugin-ftp"
pypi = "snakemake_storage_plugin_ftp/snakemake_storage_plugin_ftp-0.1.2.tar.gz"
license("MIT")
version("0.1.2", sha256="e3097e19dbe9ed4c8cf794e1d4594c3032ee7f7a9f7797dfb0d2556f0aafe07c")
depends_on("py-ftputil@5.0.4:5", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.15.1:1", type=("build", "run"))
depends_on("py-snakemake-interface-storage-plugins@3", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,29 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeStoragePluginGcs(PythonPackage):
"""A Snakemake storage plugin for Google Cloud Storage."""
homepage = "https://github.com/snakemake/snakemake-storage-plugin-gcs"
pypi = "snakemake_storage_plugin_gcs/snakemake_storage_plugin_gcs-0.1.3.tar.gz"
license("MIT")
version("0.1.3", sha256="f0315596120160656b8c8afec66e3b31b4a2889b9d0cead2102f9d924ec0b326")
depends_on("py-google-cloud-storage@2.12:2", type=("build", "run"))
depends_on("py-google-crc32c@1.1.2:1", type=("build", "run"))
# This is not in the package definition, but I am pretty sure that it is needed
# https://github.com/snakemake/snakemake-storage-plugin-gcs/issues/19
depends_on("py-snakemake-interface-common@1", type=("build", "run"))
depends_on("py-snakemake-interface-storage-plugins@3", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,27 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeStoragePluginHttp(PythonPackage):
"""Snakemake storage plugin for downloading input files from HTTP(s)."""
homepage = "https://github.com/snakemake/snakemake-storage-plugin-http"
pypi = "snakemake_storage_plugin_http/snakemake_storage_plugin_http-0.2.3.tar.gz"
license("MIT")
version("0.2.3", sha256="e4944a7c134e98515d9473c867c4ce071e3b625a5a9002a00da6ac917bc0c0ad")
depends_on("py-requests@2.31:2", type=("build", "run"))
depends_on("py-requests-oauthlib@1.3.1:1", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.14:1", type=("build", "run"))
depends_on("py-snakemake-interface-storage-plugins@3", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,28 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeStoragePluginS3(PythonPackage):
"""A Snakemake storage plugin for S3 API storage (AWS S3, MinIO, etc.)."""
homepage = "https://github.com/snakemake/snakemake-storage-plugin-s3"
pypi = "snakemake_storage_plugin_s3/snakemake_storage_plugin_s3-0.2.9.tar.gz"
license("MIT")
version("0.2.10", sha256="a4554d170b5621751aba20ee08e6357090471a0a68b173525b118580c287a12e")
depends_on("py-boto3@1.33:1", type=("build", "run"))
depends_on("py-botocore@1.33:1", type=("build", "run"))
depends_on("py-urllib3@2:2.1", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.14:1", type=("build", "run"))
depends_on("py-snakemake-interface-storage-plugins@3", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,26 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeStoragePluginSftp(PythonPackage):
"""A Snakemake storage plugin that handles files on an SFTP server."""
homepage = "https://github.com/snakemake/snakemake-storage-plugin-sftp"
pypi = "snakemake_storage_plugin_sftp/snakemake_storage_plugin_sftp-0.1.2.tar.gz"
license("MIT")
version("0.1.2", sha256="1b5f99a6baf334d74e209d6ec8a59e495e56098cf6e9a19954e472ba1501525c")
depends_on("py-pysftp@0.2.9:0.2", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.14.3:1", type=("build", "run"))
depends_on("py-snakemake-interface-storage-plugins@3", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -0,0 +1,26 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PySnakemakeStoragePluginZenodo(PythonPackage):
"""A Snakemake storage plugin for reading from and writing to zenodo.org."""
homepage = "https://github.com/snakemake/snakemake-storage-plugin-zenodo"
pypi = "snakemake_storage_plugin_zenodo/snakemake_storage_plugin_zenodo-0.1.2.tar.gz"
license("MIT")
version("0.1.2", sha256="3675e76ae5dc930664bbcc1132a957c6490199c366e4e1e607d1491a7a46cf3d")
depends_on("py-requests@2.31:2", type=("build", "run"))
depends_on("py-snakemake-interface-common@1.14.4:1", type=("build", "run"))
depends_on("py-snakemake-interface-storage-plugins@3", type=("build", "run"))
depends_on("python@3.11:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")

View file

@ -7,14 +7,15 @@
class Snakemake(PythonPackage): class Snakemake(PythonPackage):
"""Snakemake is an MIT-licensed workflow management system.""" """Workflow management system to create reproducible and scalable data analyses."""
homepage = "https://snakemake.readthedocs.io/en/stable/" homepage = "https://snakemake.readthedocs.io/en"
pypi = "snakemake/snakemake-7.32.4.tar.gz" pypi = "snakemake/snakemake-8.4.12.tar.gz"
maintainers("marcusboden") maintainers("marcusboden")
license("MIT") license("MIT")
version("8.5.2", sha256="cc94876263182277e4a429e5d371c867400eeddc791c114dfd090d1bb3158975")
version("7.32.4", sha256="fdc3f15dd7b06fabb7da30d460e0a3b1fba08e4ea91f9c32c47a83705cdc7b6e") version("7.32.4", sha256="fdc3f15dd7b06fabb7da30d460e0a3b1fba08e4ea91f9c32c47a83705cdc7b6e")
version("7.31.1", sha256="6fadcc9a051737aa187dccf437879b3b83ddc917fff9bd7d400e056cf17a1788") version("7.31.1", sha256="6fadcc9a051737aa187dccf437879b3b83ddc917fff9bd7d400e056cf17a1788")
version("7.30.2", sha256="0cb86cf9b43b9f2f45d5685cd932595131031c7087690f64c5bc7eaec88df029") version("7.30.2", sha256="0cb86cf9b43b9f2f45d5685cd932595131031c7087690f64c5bc7eaec88df029")
@ -43,6 +44,7 @@ class Snakemake(PythonPackage):
depends_on("py-tomli", type=("build"), when="@7.20.0: ^python@:3.10") depends_on("py-tomli", type=("build"), when="@7.20.0: ^python@:3.10")
depends_on("py-appdirs", type=("build", "run")) depends_on("py-appdirs", type=("build", "run"))
depends_on("py-immutables", type=("build", "run"), when="@8:")
depends_on("py-configargparse", type=("build", "run")) depends_on("py-configargparse", type=("build", "run"))
depends_on("py-connectionpool@0.0.3:", type=("build", "run")) depends_on("py-connectionpool@0.0.3:", type=("build", "run"))
depends_on("py-datrie", type=("build", "run")) depends_on("py-datrie", type=("build", "run"))
@ -54,30 +56,46 @@ class Snakemake(PythonPackage):
depends_on("py-nbformat", type=("build", "run")) depends_on("py-nbformat", type=("build", "run"))
depends_on("py-packaging", type=("build", "run"), when="@7.29.0:") depends_on("py-packaging", type=("build", "run"), when="@7.29.0:")
depends_on("py-psutil", type=("build", "run")) depends_on("py-psutil", type=("build", "run"))
depends_on("py-pulp@2:", type=("build", "run")) depends_on("py-pulp@2.3.1:2.8", type=("build", "run"), when="@8.1.2:")
depends_on("py-pulp@2:", type=("build", "run"), when="@:8.1.1")
depends_on("py-pyyaml", type=("build", "run")) depends_on("py-pyyaml", type=("build", "run"))
depends_on("py-requests@2.8.1:2", type=("build", "run"), when="@8.4.12")
depends_on("py-requests", type=("build", "run")) depends_on("py-requests", type=("build", "run"))
depends_on("py-reretry", type=("build", "run"), when="@7:") depends_on("py-reretry", type=("build", "run"), when="@7:")
depends_on("py-smart-open@3:6", type=("build", "run"), when="@8.4.12:")
depends_on("py-smart-open@3:", type=("build", "run")) depends_on("py-smart-open@3:", type=("build", "run"))
depends_on(
"py-snakemake-interface-executor-plugins@8.1.3:8", type=("build", "run"), when="@8:"
)
depends_on("py-snakemake-interface-common@1.17:1", type=("build", "run"), when="@8.4.10:")
depends_on("py-snakemake-interface-common@1.15:1", type=("build", "run"), when="@8:")
depends_on(
"py-snakemake-interface-storage-plugins@3.1:3", type=("build", "run"), when="@8.4.10:"
)
depends_on("py-snakemake-interface-storage-plugins@3", type=("build", "run"), when="@8:")
depends_on("py-snakemake-interface-report-plugins@1", type=("build", "run"), when="@8.5:")
depends_on("py-stopit", type=("build", "run")) depends_on("py-stopit", type=("build", "run"))
depends_on("py-tabulate", type=("build", "run")) depends_on("py-tabulate", type=("build", "run"))
depends_on("py-throttler", type=("build", "run"), when="@7:") depends_on("py-throttler", type=("build", "run"), when="@7:")
depends_on("py-toposort@1.10:1", type=("build", "run"), when="@8.4.12:")
depends_on("py-toposort@1.10:", type=("build", "run"), when="@7.24.0:") depends_on("py-toposort@1.10:", type=("build", "run"), when="@7.24.0:")
depends_on("py-toposort", type=("build", "run"), when="@:7.23") depends_on("py-toposort", type=("build", "run"), when="@:7.23")
depends_on("py-wrapt", type=("build", "run")) depends_on("py-wrapt", type=("build", "run"))
depends_on("py-yte@1.5.1:1", type=("build", "run"), when="@7.28.1:") depends_on("py-yte@1.5.1:1", type=("build", "run"), when="@7.28.1:")
depends_on("py-yte@1", type=("build", "run"), when="@7:7.28.0") depends_on("py-yte@1", type=("build", "run"), when="@7:7.28.0")
depends_on("py-dpath@2.1.6:2", type=("build", "run"), when="@8.3:")
depends_on("py-conda-inject@1.3.1:1", type=("build", "run"), when="@8:")
variant("reports", default=False, description="Generate self-contained HTML reports") variant("reports", default=False, description="Generate self-contained HTML reports")
with when("+reports"): with when("+reports"):
depends_on("py-pygments", type=("build", "run")) depends_on("py-pygments", type=("build", "run"))
# Historical dependencies
depends_on("py-jinja2", type=("build", "run"), when="@:7.19.1") depends_on("py-jinja2", type=("build", "run"), when="@:7.19.1")
depends_on("py-networkx", type=("build", "run"), when="@:7.1.1") depends_on("py-networkx", type=("build", "run"), when="@:7.1.1")
depends_on("py-pygraphviz", type=("build", "run"), when="@:7.1.1") depends_on("py-pygraphviz", type=("build", "run"), when="@:7.1.1")
variant("google-cloud", default=False, description="Enable Google Cloud execution") variant("google-cloud", default=False, description="Enable Google Cloud execution", when="@:7")
with when("+google-cloud"): with when("+google-cloud"):
depends_on("py-google-api-python-client", type=("build", "run")) depends_on("py-google-api-python-client", type=("build", "run"))
@ -85,7 +103,7 @@ class Snakemake(PythonPackage):
depends_on("py-google-crc32c", type=("build", "run")) depends_on("py-google-crc32c", type=("build", "run"))
depends_on("py-oauth2client", type=("build", "run")) depends_on("py-oauth2client", type=("build", "run"))
variant("azure", default=False, description="Enable Azure execution", when="@7.28.0:") variant("azure", default=False, description="Enable Azure execution", when="@7.28.0:7")
with when("+azure"): with when("+azure"):
depends_on("py-azure-storage-blob", type=("build", "run")) depends_on("py-azure-storage-blob", type=("build", "run"))
@ -94,22 +112,22 @@ class Snakemake(PythonPackage):
depends_on("py-azure-identity", type=("build", "run")) depends_on("py-azure-identity", type=("build", "run"))
depends_on("py-azure-mgmt-batch", type=("build", "run")) depends_on("py-azure-mgmt-batch", type=("build", "run"))
# Historical dependencies
depends_on("py-msrest", type=("build", "run"), when="@7.28.0") depends_on("py-msrest", type=("build", "run"), when="@7.28.0")
depends_on("py-filelock", type=("build", "run"), when="@:6") depends_on("py-filelock", type=("build", "run"), when="@:6")
depends_on("py-ratelimiter", type=("build", "run"), when="@:6") depends_on("py-ratelimiter", type=("build", "run"), when="@:6")
# These variants are not in PyPI/pip, but they are undocumented dependencies variant("ftp", default=False, description="Handling input and output via FTP", when="@:7")
# needed to make certain parts of Snakemake work.
variant("ftp", default=False, description="Enable snakemake.remote.FTP")
depends_on("py-ftputil", when="+ftp", type=("build", "run")) depends_on("py-ftputil", when="+ftp", type=("build", "run"))
variant("s3", default=False, description="Enable snakemake.remote.S3") variant(
"s3", default=False, description="Amazon S3 API storage (AWS S3, MinIO, etc.)", when="@:7"
)
depends_on("py-boto3", when="+s3", type=("build", "run")) depends_on("py-boto3", when="+s3", type=("build", "run"))
depends_on("py-botocore", when="+s3", type=("build", "run")) depends_on("py-botocore", when="+s3", type=("build", "run"))
variant("http", default=False, description="Enable snakemake.remote.HTTP") variant(
"http", default=False, description="Downloading of input files from HTTP(s)", when="@:7"
)
depends_on("py-requests", when="+http", type=("build", "run")) depends_on("py-requests", when="+http", type=("build", "run"))
def test(self): def test(self):