snakemake-interface-software-deployment-plugins 0.18.4__tar.gz → 0.18.6__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.

Potentially problematic release.


This version of snakemake-interface-software-deployment-plugins might be problematic. Click here for more details.

Files changed (17) hide show
  1. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/CHANGELOG.md +16 -0
  2. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/PKG-INFO +1 -1
  3. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/pyproject.toml +1 -1
  4. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/snakemake_interface_software_deployment_plugins/__init__.py +14 -17
  5. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/.github/workflows/conventional-prs.yml +0 -0
  6. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/.github/workflows/release-please.yml +0 -0
  7. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/.github/workflows/test.yml +0 -0
  8. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/.gitignore +0 -0
  9. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/LICENSE +0 -0
  10. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/README.md +0 -0
  11. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/snakemake_interface_software_deployment_plugins/_common.py +0 -0
  12. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/snakemake_interface_software_deployment_plugins/registry/__init__.py +0 -0
  13. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/snakemake_interface_software_deployment_plugins/registry/plugin.py +0 -0
  14. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/snakemake_interface_software_deployment_plugins/settings.py +0 -0
  15. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/snakemake_interface_software_deployment_plugins/tests.py +0 -0
  16. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/tests/test_interface.py +0 -0
  17. {snakemake_interface_software_deployment_plugins-0.18.4 → snakemake_interface_software_deployment_plugins-0.18.6}/tests/test_py37.py +0 -0
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.18.6](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.18.5...v0.18.6) (2026-08-05)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * remove suffixes from shell executable name ([e8bdc26](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/e8bdc26a5fc7cf3d2a104ecfa1e0a21d9a3b4c2f))
9
+
10
+ ## [0.18.5](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.18.4...v0.18.5) (2026-08-05)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * apply modify func on all attributes, not only in case of source path attributes ([#62](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/issues/62)) ([fa1971d](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/fa1971dafdb952dd615bb69beda533aeecadbb89))
16
+ * close temp file after creation ([9fa7730](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/9fa7730b2a4f305a9a2ae3f667f0e673c618d336))
17
+ * do not require spec equality if env hashes are the same ([7ae9c5d](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/7ae9c5d108c90616e599d2760add6b6715a49381))
18
+
3
19
  ## [0.18.4](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.18.3...v0.18.4) (2026-07-24)
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.18.4
3
+ Version: 0.18.6
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.18.4"
9
+ version = "0.18.6"
10
10
  requires-python = ">=3.11,<4.0"
11
11
  dependencies = [
12
12
  "argparse-dataclass >=2.0.0,<3.0",
@@ -126,27 +126,28 @@ class EnvSpecBase(ABC):
126
126
  return self._modify_attributes("identity_attributes", modify_func)
127
127
 
128
128
  def _modify_attributes(self, attribute_method: str, modify_func: Callable) -> Self:
129
- if self.has_source_paths():
130
- self_or_copied = copy(self)
131
- else:
129
+ attributes = list(getattr(self, attribute_method)())
130
+ if not attributes and self.within is None and self.fallback is None:
132
131
  return self
133
- for attr_name in getattr(self_or_copied, attribute_method)():
134
- current_value = getattr(self_or_copied, attr_name)
132
+ copied = copy(self)
133
+
134
+ for attr_name in attributes:
135
+ current_value = getattr(copied, attr_name)
135
136
  if current_value is not None:
136
- setattr(self_or_copied, attr_name, modify_func(current_value))
137
+ setattr(copied, attr_name, modify_func(current_value))
137
138
 
138
- if self_or_copied.within is not None:
139
- self_or_copied.within = self_or_copied.within._modify_attributes(
139
+ if copied.within is not None:
140
+ copied.within = copied.within._modify_attributes(
140
141
  attribute_method,
141
142
  modify_func,
142
143
  )
143
144
 
144
- if self_or_copied.fallback is not None:
145
- self_or_copied.fallback = self_or_copied.fallback._modify_attributes(
145
+ if copied.fallback is not None:
146
+ copied.fallback = copied.fallback._modify_attributes(
146
147
  attribute_method,
147
148
  modify_func,
148
149
  )
149
- return self_or_copied
150
+ return copied
150
151
 
151
152
  def __or__(self, other: "EnvSpecBase") -> "EnvSpecBase":
152
153
  copied = copy(self)
@@ -186,7 +187,7 @@ class ShellExecutable:
186
187
 
187
188
  @property
188
189
  def name(self) -> str:
189
- return Path(self.executable).name
190
+ return Path(self.executable).with_suffix("").name
190
191
 
191
192
  def run(self, cmd: str, **kwargs) -> sp.CompletedProcess:
192
193
  return sp.run([self.executable] + self.args + [self.command_arg, cmd], **kwargs)
@@ -341,11 +342,7 @@ class EnvBase(ABC):
341
342
  return self._obj_hash
342
343
 
343
344
  def __eq__(self, other) -> bool:
344
- return (
345
- self.__class__ == other.__class__
346
- and self.spec == other.spec
347
- and self.hash() == other.hash()
348
- )
345
+ return self.__class__ == other.__class__ and self.hash() == other.hash()
349
346
 
350
347
 
351
348
  class PinnableEnvBase(EnvBase, ABC):