snakemake-interface-software-deployment-plugins 0.17.0__tar.gz → 0.18.1__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_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/CHANGELOG.md +19 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/PKG-INFO +1 -1
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/pyproject.toml +1 -1
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/snakemake_interface_software_deployment_plugins/__init__.py +19 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/snakemake_interface_software_deployment_plugins/tests.py +13 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/.github/workflows/conventional-prs.yml +0 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/.github/workflows/release-please.yml +0 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/.github/workflows/test.yml +0 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/.gitignore +0 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/LICENSE +0 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/README.md +0 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/snakemake_interface_software_deployment_plugins/_common.py +0 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/snakemake_interface_software_deployment_plugins/registry/__init__.py +0 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/snakemake_interface_software_deployment_plugins/registry/plugin.py +0 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/snakemake_interface_software_deployment_plugins/settings.py +0 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/tests/test_interface.py +0 -0
- {snakemake_interface_software_deployment_plugins-0.17.0 → snakemake_interface_software_deployment_plugins-0.18.1}/tests/test_py37.py +0 -0
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.18.1](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.18.0...v0.18.1) (2026-06-02)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* handle suffix replacement in test suite ([8197cfa](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/8197cfa37baa10852f0ac40944963e821fc25df0))
|
|
9
|
+
|
|
10
|
+
## [0.18.0](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.17.0...v0.18.0) (2026-06-02)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* suffix replacement ([#54](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/issues/54)) ([6282e25](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/6282e25b76e389b35921971447b9fdc6af4abcd6))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* remove debug code ([ffa0804](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/ffa08047257ee3e3e90cde1fe53a5e202c18b02a))
|
|
21
|
+
|
|
3
22
|
## [0.17.0](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.16.5...v0.17.0) (2026-03-10)
|
|
4
23
|
|
|
5
24
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snakemake-interface-software-deployment-plugins
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.18.1
|
|
4
4
|
Summary: This package provides a stable interface for interactions between Snakemake and its software deployment plugins.
|
|
5
5
|
Project-URL: repository, https://github.com/snakemake/snakemake-interface-software-deployment-plugins
|
|
6
6
|
Project-URL: homepage, https://snakemake.github.io
|
|
@@ -6,7 +6,7 @@ description = "This package provides a stable interface for interactions between
|
|
|
6
6
|
license = "MIT"
|
|
7
7
|
name = "snakemake-interface-software-deployment-plugins"
|
|
8
8
|
readme = "README.md"
|
|
9
|
-
version = "0.
|
|
9
|
+
version = "0.18.1"
|
|
10
10
|
requires-python = ">=3.11,<4.0"
|
|
11
11
|
dependencies = [
|
|
12
12
|
"argparse-dataclass >=2.0.0,<3.0",
|
|
@@ -33,9 +33,16 @@ from snakemake_interface_common.exceptions import WorkflowError
|
|
|
33
33
|
from snakemake_interface_common.software import SoftwareReport
|
|
34
34
|
|
|
35
35
|
|
|
36
|
+
@dataclass
|
|
37
|
+
class SuffixReplacement:
|
|
38
|
+
old_suffixes: List[str]
|
|
39
|
+
new_suffix: str
|
|
40
|
+
|
|
41
|
+
|
|
36
42
|
@dataclass
|
|
37
43
|
class EnvSpecSourceFile:
|
|
38
44
|
path_or_uri: Union[str, Path]
|
|
45
|
+
suffix_replacement: Optional[SuffixReplacement] = None
|
|
39
46
|
cached: Optional[Path] = field(repr=False, default=None)
|
|
40
47
|
|
|
41
48
|
def __eq__(self, other) -> bool:
|
|
@@ -46,6 +53,18 @@ class EnvSpecSourceFile:
|
|
|
46
53
|
def __hash__(self) -> int:
|
|
47
54
|
return hash(self.path_or_uri)
|
|
48
55
|
|
|
56
|
+
def replace_suffix(
|
|
57
|
+
self, suffixes: List[str], new_suffix: str
|
|
58
|
+
) -> "EnvSpecSourceFile":
|
|
59
|
+
if self.suffix_replacement is not None:
|
|
60
|
+
raise ValueError("Suffix replacement already defined for this source file.")
|
|
61
|
+
return EnvSpecSourceFile(
|
|
62
|
+
path_or_uri=self.path_or_uri,
|
|
63
|
+
suffix_replacement=SuffixReplacement(
|
|
64
|
+
old_suffixes=suffixes, new_suffix=new_suffix
|
|
65
|
+
),
|
|
66
|
+
)
|
|
67
|
+
|
|
49
68
|
|
|
50
69
|
class EnvSpecBase(ABC):
|
|
51
70
|
@classmethod
|
|
@@ -165,6 +165,12 @@ class TestSoftwareDeploymentBase(ABC):
|
|
|
165
165
|
for attr in spec.source_path_attributes():
|
|
166
166
|
source_file = getattr(spec, attr)
|
|
167
167
|
if source_file is not None:
|
|
168
|
+
if source_file.suffix_replacement is not None:
|
|
169
|
+
source_file.path_or_uri = _replace_suffix(
|
|
170
|
+
source_file.path_or_uri,
|
|
171
|
+
source_file.suffix_replacement.old_suffixes,
|
|
172
|
+
source_file.suffix_replacement.new_suffix,
|
|
173
|
+
)
|
|
168
174
|
source_file.cached = source_file.path_or_uri
|
|
169
175
|
return spec
|
|
170
176
|
|
|
@@ -237,3 +243,10 @@ class TestSoftwareDeploymentBase(ABC):
|
|
|
237
243
|
assert isinstance(env, DeployableEnvBase)
|
|
238
244
|
asyncio.run(env.deploy())
|
|
239
245
|
assert any((tmp_path / env.spec.module().__name__ / "deployments").iterdir())
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
def _replace_suffix(path: str, suffix: List[str], replacement: str) -> Optional[str]:
|
|
249
|
+
for suff in suffix:
|
|
250
|
+
if path.endswith(suff):
|
|
251
|
+
return path[: -len(suff)] + replacement
|
|
252
|
+
return None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|