snakemake-interface-software-deployment-plugins 0.16.0__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.0 → snakemake_interface_software_deployment_plugins-0.16.2}/CHANGELOG.md +15 -0
  2. {snakemake_interface_software_deployment_plugins-0.16.0 → snakemake_interface_software_deployment_plugins-0.16.2}/PKG-INFO +2 -2
  3. {snakemake_interface_software_deployment_plugins-0.16.0 → snakemake_interface_software_deployment_plugins-0.16.2}/pyproject.toml +6 -8
  4. {snakemake_interface_software_deployment_plugins-0.16.0 → snakemake_interface_software_deployment_plugins-0.16.2}/snakemake_interface_software_deployment_plugins/__init__.py +11 -9
  5. {snakemake_interface_software_deployment_plugins-0.16.0 → snakemake_interface_software_deployment_plugins-0.16.2}/tests/test_interface.py +6 -0
  6. {snakemake_interface_software_deployment_plugins-0.16.0 → snakemake_interface_software_deployment_plugins-0.16.2}/.github/workflows/conventional-prs.yml +0 -0
  7. {snakemake_interface_software_deployment_plugins-0.16.0 → snakemake_interface_software_deployment_plugins-0.16.2}/.github/workflows/release-please.yml +0 -0
  8. {snakemake_interface_software_deployment_plugins-0.16.0 → snakemake_interface_software_deployment_plugins-0.16.2}/.github/workflows/test.yml +0 -0
  9. {snakemake_interface_software_deployment_plugins-0.16.0 → snakemake_interface_software_deployment_plugins-0.16.2}/.gitignore +0 -0
  10. {snakemake_interface_software_deployment_plugins-0.16.0 → snakemake_interface_software_deployment_plugins-0.16.2}/LICENSE +0 -0
  11. {snakemake_interface_software_deployment_plugins-0.16.0 → snakemake_interface_software_deployment_plugins-0.16.2}/README.md +0 -0
  12. {snakemake_interface_software_deployment_plugins-0.16.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → snakemake_interface_software_deployment_plugins-0.16.2}/tests/test_py37.py +0 -0
@@ -1,5 +1,20 @@
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
+
11
+ ## [0.16.1](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.16.0...v0.16.1) (2026-03-08)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * use SoftwareReport from snakemake-interface-common ([09d79f0](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/commit/09d79f0aface540b53378e1c29a62700e74b312f))
17
+
3
18
  ## [0.16.0](https://github.com/snakemake/snakemake-interface-software-deployment-plugins/compare/v0.15.0...v0.16.0) (2026-03-08)
4
19
 
5
20
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snakemake-interface-software-deployment-plugins
3
- Version: 0.16.0
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>
@@ -8,7 +8,7 @@ License-Expression: MIT
8
8
  License-File: LICENSE
9
9
  Requires-Python: <4.0,>=3.11
10
10
  Requires-Dist: argparse-dataclass<3.0,>=2.0.0
11
- Requires-Dist: snakemake-interface-common<2.0.0,>=1.17.4
11
+ Requires-Dist: snakemake-interface-common<2.0.0,>=1.23.0
12
12
  Description-Content-Type: text/markdown
13
13
 
14
14
  # Stable interfaces and functionality for Snakemake software deployment plugins
@@ -6,11 +6,11 @@ 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.0"
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",
13
- "snakemake-interface-common >=1.17.4,<2.0.0"
13
+ "snakemake-interface-common >=1.23.0,<2.0.0"
14
14
  ]
15
15
 
16
16
  [project.urls]
@@ -31,13 +31,11 @@ platforms = ["osx-arm64", "linux-64"]
31
31
  dev = { features = ["dev"] }
32
32
  publish = { features = ["publish"] }
33
33
 
34
- [tool.pixi.feature.dev.dependencies]
34
+ [tool.pixi.feature.dev.pypi-dependencies]
35
35
  pytest = ">=8.3.5,<9"
36
36
  ruff = ">=0.10.0,<0.11"
37
37
  pytest-cov = ">=6.0.0,<7"
38
38
  pyrefly = ">=0.52.0,<0.53"
39
-
40
- [tool.pixi.feature.dev.pypi-dependencies]
41
39
  snakemake-software-deployment-plugin-envmodules = ">=0.1.2,<1.0"
42
40
 
43
41
  [tool.pixi.feature.dev.tasks]
@@ -58,11 +56,11 @@ cmd = [
58
56
 
59
57
  [tool.coverage.report]
60
58
  exclude_lines = ["pass", "\\.\\.\\."]
61
- fail_under = 63.0
59
+ fail_under = 61.0
62
60
 
63
- [tool.pixi.feature.publish.dependencies]
61
+ [tool.pixi.feature.publish.pypi-dependencies]
64
62
  twine = ">=6.1.0,<7"
65
- python-build = ">=1.2.2,<2"
63
+ build = ">=1.2.2,<2"
66
64
 
67
65
 
68
66
  [tool.pixi.feature.publish.tasks]
@@ -30,13 +30,7 @@ from typing import (
30
30
  import subprocess as sp
31
31
 
32
32
  from snakemake_interface_common.exceptions import WorkflowError
33
-
34
-
35
- @dataclass
36
- class SoftwareReport:
37
- name: str
38
- version: Optional[str] = None
39
- is_secondary: bool = False
33
+ from snakemake_interface_common.software import SoftwareReport
40
34
 
41
35
 
42
36
  @dataclass
@@ -44,6 +38,14 @@ class EnvSpecSourceFile:
44
38
  path_or_uri: Union[str, Path]
45
39
  cached: Optional[Path] = field(repr=False, default=None)
46
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
+
47
49
 
48
50
  class EnvSpecBase(ABC):
49
51
  @classmethod
@@ -109,7 +111,7 @@ class EnvSpecBase(ABC):
109
111
  self_or_copied = copy(self)
110
112
  else:
111
113
  return self
112
- for attr_name in getattr(self_or_copied, attribute_method):
114
+ for attr_name in getattr(self_or_copied, attribute_method)():
113
115
  current_value = getattr(self_or_copied, attr_name)
114
116
  if current_value is not None:
115
117
  setattr(self_or_copied, attr_name, modify_func(current_value))
@@ -185,7 +187,7 @@ class EnvBase(ABC):
185
187
  cache_prefix: Path,
186
188
  deployment_prefix: Path,
187
189
  pinfile_prefix: Path,
188
- ):
190
+ ) -> None:
189
191
  # type annotation for spec and settings is left for implementing plugins
190
192
  self.spec = spec
191
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"))