snakemake-interface-software-deployment-plugins 0.10.0__tar.gz → 0.10.2__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.
Files changed (17) hide show
  1. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/CHANGELOG.md +16 -0
  2. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/PKG-INFO +1 -1
  3. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/pyproject.toml +1 -1
  4. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/snakemake_interface_software_deployment_plugins/__init__.py +7 -3
  5. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/snakemake_interface_software_deployment_plugins/tests.py +3 -3
  6. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/.github/workflows/conventional-prs.yml +0 -0
  7. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/.github/workflows/release-please.yml +0 -0
  8. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/.github/workflows/test.yml +0 -0
  9. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/.gitignore +0 -0
  10. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/LICENSE +0 -0
  11. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/README.md +0 -0
  12. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/snakemake_interface_software_deployment_plugins/_common.py +0 -0
  13. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/snakemake_interface_software_deployment_plugins/registry/__init__.py +0 -0
  14. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/snakemake_interface_software_deployment_plugins/registry/plugin.py +0 -0
  15. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/snakemake_interface_software_deployment_plugins/settings.py +0 -0
  16. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/tests/test_interface.py +0 -0
  17. {snakemake_interface_software_deployment_plugins-0.10.0 → snakemake_interface_software_deployment_plugins-0.10.2}/tests/test_py37.py +0 -0
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.10.2](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.10.1...v0.10.2) (2026-02-18)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * allow missing args argument for shell executable ([d7bca35](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/d7bca35b5f27058d3ef1011283b3752373970bef))
9
+
10
+ ## [0.10.1](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.10.0...v0.10.1) (2026-02-17)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * deployments path in test suite ([971dea2](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/971dea2f0d0ad330765b7eccb7e2eaee056aa715))
16
+ * hash building for enclosed environments and deployment test ([#38](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/issues/38)) ([89d45d8](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/89d45d8a665639848dd2e1a76f2e5b9a6ea2ff06))
17
+ * unique deployment path ([d953afe](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/d953afe4732b356d1b0f27469d4a3aaad56159b4))
18
+
3
19
  ## [0.10.0](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.9.1...v0.10.0) (2026-02-13)
4
20
 
5
21
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snakemake-interface-software-deployment-plugins
3
- Version: 0.10.0
3
+ Version: 0.10.2
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
  Author-email: Johannes Köster <johannes.koester@uni-due.de>
@@ -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.10.0"
9
+ version = "0.10.2"
10
10
  requires-python = ">=3.11,<4.0"
11
11
  dependencies = [
12
12
  "argparse-dataclass >=2.0.0,<3.0",
@@ -146,8 +146,8 @@ class EnvSpecBase(ABC):
146
146
  @dataclass
147
147
  class ShellExecutable:
148
148
  executable: str
149
- args: List[str]
150
149
  command_arg: str
150
+ args: List[str] = field(default_factory=list)
151
151
 
152
152
  @property
153
153
  def name(self) -> str:
@@ -272,14 +272,18 @@ class EnvBase(ABC):
272
272
  return self._managed_generic_hash("hash")
273
273
 
274
274
  def _managed_generic_hash(self, kind: str) -> str:
275
- store = getattr(self, f"_managed_{kind}_store")
275
+ store_attr = f"_managed_{kind}_store"
276
+ store = getattr(self, store_attr)
276
277
  if store is None:
277
278
  record_hash = f"record_{kind}"
278
279
  hash_object = hashlib.md5()
279
280
  if self.within is not None:
280
- getattr(self.within, record_hash)(hash_object)
281
+ # For within, we always take the normal hash,
282
+ # since the deployment just runs within that.
283
+ self.within.record_hash(hash_object)
281
284
  getattr(self, record_hash)(hash_object)
282
285
  store = hash_object.hexdigest()
286
+ setattr(self, store_attr, store)
283
287
  return store
284
288
 
285
289
  def __hash__(self) -> int:
@@ -92,7 +92,7 @@ class TestSoftwareDeploymentBase(ABC):
92
92
  env = self._get_env(tmp_path)
93
93
  self._deploy(env, tmp_path)
94
94
  cmd = env.managed_decorate_shellcmd(self.get_test_cmd())
95
- assert env.run_cmd(cmd).returncode == 0
95
+ assert self.shell_executable.run(cmd).returncode == 0
96
96
 
97
97
  def test_cache(self, tmp_path):
98
98
  env = self._get_env(tmp_path)
@@ -180,7 +180,7 @@ class TestSoftwareDeploymentBase(ABC):
180
180
  tmp_path,
181
181
  within: Optional[EnvBase] = None,
182
182
  ) -> EnvBase:
183
- tmp_name = env_cls.__name__
183
+ tmp_name = spec.module().__name__
184
184
 
185
185
  tempdir = tmp_path / tmp_name / "temp"
186
186
  deployment_prefix = tmp_path / tmp_name / "deployments"
@@ -211,4 +211,4 @@ class TestSoftwareDeploymentBase(ABC):
211
211
 
212
212
  assert isinstance(env, DeployableEnvBase)
213
213
  asyncio.run(env.deploy())
214
- assert any((tmp_path / "deployments").iterdir())
214
+ assert any((tmp_path / env.spec.module().__name__ / "deployments").iterdir())