diff --git a/var/spack/repos/builtin/packages/py-conda-inject/package.py b/var/spack/repos/builtin/packages/py-conda-inject/package.py new file mode 100644 index 0000000000..c8930df701 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-conda-inject/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-dpath/package.py b/var/spack/repos/builtin/packages/py-dpath/package.py index fca145be19..b6d544b544 100644 --- a/var/spack/repos/builtin/packages/py-dpath/package.py +++ b/var/spack/repos/builtin/packages/py-dpath/package.py @@ -8,16 +8,14 @@ class PyDpath(PythonPackage): - """A python library for accessing and searching dictionaries via - /slashed/paths ala xpath.""" + """Filesystem-like pathing and searching for dictionaries.""" - homepage = "https://github.com/akesterson/dpath-python" - pypi = "dpath/dpath-2.0.1.tar.gz" + homepage = "https://github.com/dpath-maintainers/dpath-python" + pypi = "dpath/dpath-2.1.6.tar.gz" license("MIT") + version("2.1.6", sha256="f1e07c72e8605c6a9e80b64bc8f42714de08a789c7de417e49c3f87a19692e47") 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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-azure-batch/package.py b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-azure-batch/package.py new file mode 100644 index 0000000000..a135613514 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-azure-batch/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-cluster-generic/package.py b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-cluster-generic/package.py new file mode 100644 index 0000000000..54e8d64dee --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-cluster-generic/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-cluster-sync/package.py b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-cluster-sync/package.py new file mode 100644 index 0000000000..afbf359c68 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-cluster-sync/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-drmaa/package.py b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-drmaa/package.py new file mode 100644 index 0000000000..c3229af554 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-drmaa/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-flux/package.py b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-flux/package.py new file mode 100644 index 0000000000..16bf81fb25 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-flux/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-googlebatch/package.py b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-googlebatch/package.py new file mode 100644 index 0000000000..eef0a4c409 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-googlebatch/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-kubernetes/package.py b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-kubernetes/package.py new file mode 100644 index 0000000000..2f390c5813 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-kubernetes/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-slurm-jobstep/package.py b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-slurm-jobstep/package.py new file mode 100644 index 0000000000..15593ccf5b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-slurm-jobstep/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-slurm/package.py b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-slurm/package.py new file mode 100644 index 0000000000..1b15b631b7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-slurm/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-tes/package.py b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-tes/package.py new file mode 100644 index 0000000000..49d5ac0ab8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-executor-plugin-tes/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-interface-common/package.py b/var/spack/repos/builtin/packages/py-snakemake-interface-common/package.py new file mode 100644 index 0000000000..017b928098 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-interface-common/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-interface-executor-plugins/package.py b/var/spack/repos/builtin/packages/py-snakemake-interface-executor-plugins/package.py new file mode 100644 index 0000000000..e0932eb1a9 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-interface-executor-plugins/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-interface-report-plugins/package.py b/var/spack/repos/builtin/packages/py-snakemake-interface-report-plugins/package.py new file mode 100644 index 0000000000..c5236c5e67 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-interface-report-plugins/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-interface-storage-plugins/package.py b/var/spack/repos/builtin/packages/py-snakemake-interface-storage-plugins/package.py new file mode 100644 index 0000000000..e9ba417de4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-interface-storage-plugins/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-azure/package.py b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-azure/package.py new file mode 100644 index 0000000000..fad1a55e89 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-azure/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-fs/package.py b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-fs/package.py new file mode 100644 index 0000000000..3ebae05239 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-fs/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-ftp/package.py b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-ftp/package.py new file mode 100644 index 0000000000..9faf36aefb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-ftp/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-gcs/package.py b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-gcs/package.py new file mode 100644 index 0000000000..406ba3dd24 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-gcs/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-http/package.py b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-http/package.py new file mode 100644 index 0000000000..aaeda6380d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-http/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-s3/package.py b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-s3/package.py new file mode 100644 index 0000000000..5eb4ca8fe1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-s3/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-sftp/package.py b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-sftp/package.py new file mode 100644 index 0000000000..93bebff2d7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-sftp/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-zenodo/package.py b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-zenodo/package.py new file mode 100644 index 0000000000..e9640a513a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snakemake-storage-plugin-zenodo/package.py @@ -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") diff --git a/var/spack/repos/builtin/packages/snakemake/package.py b/var/spack/repos/builtin/packages/snakemake/package.py index 226fdb5bae..f0f8627731 100644 --- a/var/spack/repos/builtin/packages/snakemake/package.py +++ b/var/spack/repos/builtin/packages/snakemake/package.py @@ -7,14 +7,15 @@ 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/" - pypi = "snakemake/snakemake-7.32.4.tar.gz" + homepage = "https://snakemake.readthedocs.io/en" + pypi = "snakemake/snakemake-8.4.12.tar.gz" maintainers("marcusboden") license("MIT") + version("8.5.2", sha256="cc94876263182277e4a429e5d371c867400eeddc791c114dfd090d1bb3158975") version("7.32.4", sha256="fdc3f15dd7b06fabb7da30d460e0a3b1fba08e4ea91f9c32c47a83705cdc7b6e") version("7.31.1", sha256="6fadcc9a051737aa187dccf437879b3b83ddc917fff9bd7d400e056cf17a1788") 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-appdirs", type=("build", "run")) + depends_on("py-immutables", type=("build", "run"), when="@8:") depends_on("py-configargparse", type=("build", "run")) depends_on("py-connectionpool@0.0.3:", 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-packaging", type=("build", "run"), when="@7.29.0:") 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-requests@2.8.1:2", type=("build", "run"), when="@8.4.12") depends_on("py-requests", type=("build", "run")) 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-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-tabulate", type=("build", "run")) 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", type=("build", "run"), when="@:7.23") 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", 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") with when("+reports"): depends_on("py-pygments", type=("build", "run")) - # Historical dependencies + 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-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"): 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-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"): 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-mgmt-batch", type=("build", "run")) - # Historical dependencies depends_on("py-msrest", type=("build", "run"), when="@7.28.0") depends_on("py-filelock", 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 - # needed to make certain parts of Snakemake work. - - variant("ftp", default=False, description="Enable snakemake.remote.FTP") + variant("ftp", default=False, description="Handling input and output via FTP", when="@:7") 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-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")) def test(self):