Skip to content

Commit

Permalink
snakemake: new version with plugins (spack#42713)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
w8jcik and adamjstewart committed Feb 25, 2024
1 parent 07afbd5 commit 3b4a27c
Show file tree
Hide file tree
Showing 25 changed files with 653 additions and 20 deletions.
22 changes: 22 additions & 0 deletions var/spack/repos/builtin/packages/py-conda-inject/package.py
Original file line number Diff line number Diff line change
@@ -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")
10 changes: 4 additions & 6 deletions var/spack/repos/builtin/packages/py-dpath/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Original file line number Diff line number Diff line change
@@ -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")
Loading

0 comments on commit 3b4a27c

Please sign in to comment.