snakemake-software-deployment-plugin-container 0.7.2__tar.gz → 0.7.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {snakemake_software_deployment_plugin_container-0.7.2 → snakemake_software_deployment_plugin_container-0.7.4}/CHANGELOG.md +14 -0
- {snakemake_software_deployment_plugin_container-0.7.2 → snakemake_software_deployment_plugin_container-0.7.4}/PKG-INFO +1 -1
- {snakemake_software_deployment_plugin_container-0.7.2 → snakemake_software_deployment_plugin_container-0.7.4}/pyproject.toml +1 -1
- {snakemake_software_deployment_plugin_container-0.7.2 → snakemake_software_deployment_plugin_container-0.7.4}/src/snakemake_software_deployment_plugin_container/__init__.py +24 -1
- {snakemake_software_deployment_plugin_container-0.7.2 → snakemake_software_deployment_plugin_container-0.7.4}/.github/workflows/ci.yml +0 -0
- {snakemake_software_deployment_plugin_container-0.7.2 → snakemake_software_deployment_plugin_container-0.7.4}/.github/workflows/conventional-prs.yml +0 -0
- {snakemake_software_deployment_plugin_container-0.7.2 → snakemake_software_deployment_plugin_container-0.7.4}/.github/workflows/release-please.yml +0 -0
- {snakemake_software_deployment_plugin_container-0.7.2 → snakemake_software_deployment_plugin_container-0.7.4}/.gitignore +0 -0
- {snakemake_software_deployment_plugin_container-0.7.2 → snakemake_software_deployment_plugin_container-0.7.4}/LICENSE +0 -0
- {snakemake_software_deployment_plugin_container-0.7.2 → snakemake_software_deployment_plugin_container-0.7.4}/README.md +0 -0
- {snakemake_software_deployment_plugin_container-0.7.2 → snakemake_software_deployment_plugin_container-0.7.4}/tests/test_plugin.py +0 -0
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.7.4](https://github.com/snakemake/snakemake-software-deployment-plugin-container/compare/v0.7.3...v0.7.4) (2026-09-10)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* handle runtime setup (for now needed by udocker) ([78cc3ac](https://github.com/snakemake/snakemake-software-deployment-plugin-container/commit/78cc3ace79c5a6305ae2676a82d46b83f30a2347))
|
|
9
|
+
|
|
10
|
+
## [0.7.3](https://github.com/snakemake/snakemake-software-deployment-plugin-container/compare/v0.7.2...v0.7.3) (2026-09-10)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* add quiet flag to udocker execution ([fcb5780](https://github.com/snakemake/snakemake-software-deployment-plugin-container/commit/fcb57800287a59cee68c1ec87a47d17a304ce207))
|
|
16
|
+
|
|
3
17
|
## [0.7.2](https://github.com/snakemake/snakemake-software-deployment-plugin-container/compare/v0.7.1...v0.7.2) (2026-09-08)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: snakemake-software-deployment-plugin-container
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.4
|
|
4
4
|
Project-URL: repository, https://github.com/snakemake/snakemake-software-deployment-plugin-container
|
|
5
5
|
Project-URL: documentation, https://snakemake.github.io/snakemake-plugin-catalog/plugins/software-deployment/container.html
|
|
6
6
|
Author-email: Ben Carrillo <ben.uzh@pm.me>, Johannes Köster <johannes.koester@uni-due.de>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from typing import ClassVar
|
|
1
2
|
from pathlib import Path
|
|
2
3
|
from abc import abstractmethod
|
|
3
4
|
from snakemake_interface_software_deployment_plugins import DeployableEnvBase
|
|
@@ -114,6 +115,13 @@ class Env(DeployableEnvBase, EnvBase):
|
|
|
114
115
|
elif self.settings.runtime == Runtime.UDOCKER:
|
|
115
116
|
self.runtime_manager = RuntimeManagerUdocker(self)
|
|
116
117
|
|
|
118
|
+
# Handle runtime manager setup if needed.
|
|
119
|
+
# This is only done once per runtime manager type, not per environment.
|
|
120
|
+
if not self.runtime_manager.is_setup:
|
|
121
|
+
if self.runtime_manager.setup_cmd() is not None:
|
|
122
|
+
self.run_cmd(self.runtime_manager.setup_cmd(), check=True)
|
|
123
|
+
self.runtime_manager.is_setup = True
|
|
124
|
+
|
|
117
125
|
# The decorator ensures that the decorated method is only called once
|
|
118
126
|
# in case multiple environments of the same kind are created.
|
|
119
127
|
@EnvBase.once
|
|
@@ -204,6 +212,10 @@ class Env(DeployableEnvBase, EnvBase):
|
|
|
204
212
|
@dataclass
|
|
205
213
|
class RuntimeManager:
|
|
206
214
|
env: Env
|
|
215
|
+
is_setup: ClassVar[bool] = False
|
|
216
|
+
|
|
217
|
+
def setup_cmd(self) -> str | None:
|
|
218
|
+
return None
|
|
207
219
|
|
|
208
220
|
def deployed_image_name(self) -> str:
|
|
209
221
|
return (
|
|
@@ -218,6 +230,9 @@ class RuntimeManager:
|
|
|
218
230
|
@abstractmethod
|
|
219
231
|
def deploy_cmd(self) -> str | None: ...
|
|
220
232
|
|
|
233
|
+
def pre_subcommand_options(self) -> str:
|
|
234
|
+
return ""
|
|
235
|
+
|
|
221
236
|
def options(self) -> str:
|
|
222
237
|
return "--rm"
|
|
223
238
|
|
|
@@ -256,7 +271,9 @@ class RuntimeManager:
|
|
|
256
271
|
def decorate_shellcmd(self, cmd: str) -> str:
|
|
257
272
|
mountpoints = self.get_mountpoint_args()
|
|
258
273
|
return (
|
|
259
|
-
f"{self.env.settings.runtime}
|
|
274
|
+
f"{self.env.settings.runtime}"
|
|
275
|
+
f" {self.pre_subcommand_options()}"
|
|
276
|
+
f" {self.subcommand()}"
|
|
260
277
|
f" {self.options()}"
|
|
261
278
|
f" {self.workdir_option()} {getcwd()!r}" # Working directory inside container
|
|
262
279
|
f" {mountpoints}"
|
|
@@ -319,6 +336,12 @@ class RuntimeManagerDocker(RuntimeManager):
|
|
|
319
336
|
|
|
320
337
|
|
|
321
338
|
class RuntimeManagerUdocker(RuntimeManager):
|
|
339
|
+
def setup_cmd(self) -> str | None:
|
|
340
|
+
return "udocker install"
|
|
341
|
+
|
|
342
|
+
def pre_subcommand_options(self) -> str:
|
|
343
|
+
return "--quiet"
|
|
344
|
+
|
|
322
345
|
def options(self) -> str:
|
|
323
346
|
options = super().options()
|
|
324
347
|
options += " --nobanner --env TINI_SUBREAPER=1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|