snakemake-interface-software-deployment-plugins 0.16.1__tar.gz → 0.16.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.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/CHANGELOG.md +8 -0
  2. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/PKG-INFO +1 -1
  3. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/pyproject.toml +1 -1
  4. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/snakemake_interface_software_deployment_plugins/__init__.py +10 -2
  5. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/tests/test_interface.py +6 -0
  6. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/.github/workflows/conventional-prs.yml +0 -0
  7. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/.github/workflows/release-please.yml +0 -0
  8. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/.github/workflows/test.yml +0 -0
  9. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/.gitignore +0 -0
  10. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/LICENSE +0 -0
  11. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/README.md +0 -0
  12. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/snakemake_interface_software_deployment_plugins/_common.py +0 -0
  13. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/snakemake_interface_software_deployment_plugins/registry/__init__.py +0 -0
  14. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/snakemake_interface_software_deployment_plugins/registry/plugin.py +0 -0
  15. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/snakemake_interface_software_deployment_plugins/settings.py +0 -0
  16. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/snakemake_interface_software_deployment_plugins/tests.py +0 -0
  17. {snakemake_interface_software_deployment_plugins-0.16.1 → snakemake_interface_software_deployment_plugins-0.16.2}/tests/test_py37.py +0 -0
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.16.2](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.16.1...v0.16.2) (2026-03-09)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * call identity attribute method ([33f7a56](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/33f7a56c83d84459d5616fc3f20cb5b704f64ad0))
9
+ * make EnvSpecSourceFile hashable and comparable ([b6b6dc9](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/b6b6dc9f594e1b07818371b1df09461fdc0795e4))
10
+
3
11
  ## [0.16.1](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.16.0...v0.16.1) (2026-03-08)
4
12
 
5
13
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snakemake-interface-software-deployment-plugins
3
- Version: 0.16.1
3
+ Version: 0.16.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.16.1"
9
+ version = "0.16.2"
10
10
  requires-python = ">=3.11,<4.0"
11
11
  dependencies = [
12
12
  "argparse-dataclass >=2.0.0,<3.0",
@@ -38,6 +38,14 @@ class EnvSpecSourceFile:
38
38
  path_or_uri: Union[str, Path]
39
39
  cached: Optional[Path] = field(repr=False, default=None)
40
40
 
41
+ def __eq__(self, other) -> bool:
42
+ if not isinstance(other, EnvSpecSourceFile):
43
+ return False
44
+ return self.path_or_uri == other.path_or_uri
45
+
46
+ def __hash__(self) -> int:
47
+ return hash(self.path_or_uri)
48
+
41
49
 
42
50
  class EnvSpecBase(ABC):
43
51
  @classmethod
@@ -103,7 +111,7 @@ class EnvSpecBase(ABC):
103
111
  self_or_copied = copy(self)
104
112
  else:
105
113
  return self
106
- for attr_name in getattr(self_or_copied, attribute_method):
114
+ for attr_name in getattr(self_or_copied, attribute_method)():
107
115
  current_value = getattr(self_or_copied, attr_name)
108
116
  if current_value is not None:
109
117
  setattr(self_or_copied, attr_name, modify_func(current_value))
@@ -179,7 +187,7 @@ class EnvBase(ABC):
179
187
  cache_prefix: Path,
180
188
  deployment_prefix: Path,
181
189
  pinfile_prefix: Path,
182
- ):
190
+ ) -> None:
183
191
  # type annotation for spec and settings is left for implementing plugins
184
192
  self.spec = spec
185
193
  self.within = within
@@ -1,3 +1,5 @@
1
+ from snakemake_interface_software_deployment_plugins import EnvSpecSourceFile
2
+ from pathlib import Path
1
3
  from typing import List
2
4
  from snakemake_interface_software_deployment_plugins.registry import (
3
5
  SoftwareDeploymentPluginRegistry,
@@ -29,3 +31,7 @@ class TestRegistry(TestRegistryBase):
29
31
 
30
32
  def get_example_args(self) -> List[str]:
31
33
  return []
34
+
35
+
36
+ def test_env_spec_source_file():
37
+ EnvSpecSourceFile(path_or_uri="test.yaml", cached=Path("test.yaml"))