xmanager-slurm 0.4.9__tar.gz → 0.4.11__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 xmanager-slurm might be problematic. Click here for more details.

Files changed (126) hide show
  1. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/PKG-INFO +1 -1
  2. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/pyproject.toml +1 -1
  3. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/uv.lock +1 -1
  4. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/config.py +8 -3
  5. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/packaging/docker.py +5 -8
  6. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/.devcontainer.json +0 -0
  7. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/.github/workflows/ci.yml +0 -0
  8. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/.github/workflows/deploy-docs.yml +0 -0
  9. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/.gitignore +0 -0
  10. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/.pdm-build/.gitignore +0 -0
  11. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/.pdm-build/xm_slurm-0.1+editable.dist-info/METADATA +0 -0
  12. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/.pdm-build/xm_slurm-0.1+editable.dist-info/WHEEL +0 -0
  13. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/.pdm-build/xm_slurm.pth +0 -0
  14. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/.pre-commit-config.yaml +0 -0
  15. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/.python-version +0 -0
  16. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/.vscode/settings.json +0 -0
  17. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/LICENSE.md +0 -0
  18. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/README.md +0 -0
  19. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/docs/api/executables.rst +0 -0
  20. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/docs/api/executors.rst +0 -0
  21. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/docs/api/packageables.rst +0 -0
  22. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/docs/assets/workflow-dark.svg +0 -0
  23. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/docs/assets/workflow-light.svg +0 -0
  24. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/docs/conf.py +0 -0
  25. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/docs/getting-started/xmanager.md +0 -0
  26. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/docs/guides/index.md +0 -0
  27. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/docs/guides/remote-dev.md +0 -0
  28. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/docs/index.md +0 -0
  29. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/conda/environment.yml +0 -0
  30. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/conda/launch.py +0 -0
  31. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/conda/main.py +0 -0
  32. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/conda/pyproject.toml +0 -0
  33. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/custom-dockerfile/Dockerfile +0 -0
  34. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/custom-dockerfile/launch.py +0 -0
  35. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/custom-dockerfile/pyproject.toml +0 -0
  36. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-array-sweep/launch.py +0 -0
  37. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-array-sweep/main.py +0 -0
  38. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-array-sweep/pyproject.toml +0 -0
  39. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-array-sweep/uv.lock +0 -0
  40. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-dependencies/eval.py +0 -0
  41. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-dependencies/launch.py +0 -0
  42. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-dependencies/pyproject.toml +0 -0
  43. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-dependencies/train.py +0 -0
  44. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-dependencies/uv.lock +0 -0
  45. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-group/Dockerfile +0 -0
  46. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-group/launch.py +0 -0
  47. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-group/pyproject.toml +0 -0
  48. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-group/uv.lock +0 -0
  49. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-timeout/launch.py +0 -0
  50. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-timeout/main.py +0 -0
  51. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-timeout/pyproject.toml +0 -0
  52. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/job-timeout/uv.lock +0 -0
  53. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/metadata/launch.py +0 -0
  54. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/metadata/main.py +0 -0
  55. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/metadata/pyproject.toml +0 -0
  56. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/metadata/requirements.txt +0 -0
  57. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/parameter-controller/launch.py +0 -0
  58. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/parameter-controller/main.py +0 -0
  59. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/parameter-controller/pyproject.toml +0 -0
  60. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/parameter-controller/requirements.txt +0 -0
  61. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/pip/launch.py +0 -0
  62. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/pip/main.py +0 -0
  63. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/pip/pyproject.toml +0 -0
  64. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/pip/requirements.txt +0 -0
  65. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/uv/launch.py +0 -0
  66. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/uv/pyproject.toml +0 -0
  67. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/examples/uv/uv.lock +0 -0
  68. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/conftest.py +0 -0
  69. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/Dockerfile +0 -0
  70. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/README.md +0 -0
  71. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/cgroup.conf +0 -0
  72. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/docker-compose.yml +0 -0
  73. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/docker-entrypoint.sh +0 -0
  74. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/host_ed25519 +0 -0
  75. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/host_ed25519.pub +0 -0
  76. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/id_ed25519 +0 -0
  77. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/id_ed25519.pub +0 -0
  78. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/slurm.conf +0 -0
  79. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/slurmdbd.conf +0 -0
  80. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/fixtures/slurm/sshd_config +0 -0
  81. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/integration/test_remote_execution.py +0 -0
  82. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/tests/test_dependencies.py +0 -0
  83. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/__init__.py +0 -0
  84. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/api/__init__.py +0 -0
  85. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/api/abc.py +0 -0
  86. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/api/models.py +0 -0
  87. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/api/sqlite/client.py +0 -0
  88. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/api/web/client.py +0 -0
  89. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/batching.py +0 -0
  90. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/console.py +0 -0
  91. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/constants.py +0 -0
  92. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/contrib/__init__.py +0 -0
  93. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/contrib/clusters/__init__.py +0 -0
  94. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/contrib/clusters/drac.py +0 -0
  95. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/dependencies.py +0 -0
  96. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/executables.py +0 -0
  97. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/execution.py +0 -0
  98. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/executors.py +0 -0
  99. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/experiment.py +0 -0
  100. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/experimental/parameter_controller.py +0 -0
  101. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/filesystem.py +0 -0
  102. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/job_blocks.py +0 -0
  103. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/metadata_context.py +0 -0
  104. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/packageables.py +0 -0
  105. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/packaging/__init__.py +0 -0
  106. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/packaging/registry.py +0 -0
  107. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/packaging/router.py +0 -0
  108. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/packaging/utils.py +0 -0
  109. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/resources.py +0 -0
  110. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/scripts/_cloudpickle.py +0 -0
  111. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/scripts/cli.py +0 -0
  112. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/status.py +0 -0
  113. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/docker/docker-bake.hcl.j2 +0 -0
  114. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/docker/mamba.Dockerfile +0 -0
  115. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/docker/python.Dockerfile +0 -0
  116. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/docker/uv.Dockerfile +0 -0
  117. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/slurm/entrypoint.bash.j2 +0 -0
  118. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/slurm/fragments/monitor.bash.j2 +0 -0
  119. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/slurm/fragments/proxy.bash.j2 +0 -0
  120. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/slurm/job-array.bash.j2 +0 -0
  121. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/slurm/job-group.bash.j2 +0 -0
  122. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/slurm/job.bash.j2 +0 -0
  123. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/slurm/runtimes/apptainer.bash.j2 +0 -0
  124. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/templates/slurm/runtimes/podman.bash.j2 +0 -0
  125. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/types.py +0 -0
  126. {xmanager_slurm-0.4.9 → xmanager_slurm-0.4.11}/xm_slurm/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xmanager-slurm
3
- Version: 0.4.9
3
+ Version: 0.4.11
4
4
  Summary: Slurm backend for XManager.
5
5
  Project-URL: GitHub, https://github.com/jessefarebro/xm-slurm
6
6
  Author-email: Jesse Farebrother <jfarebro@cs.mcgill.ca>
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
5
5
  [project]
6
6
  name = "xmanager-slurm"
7
7
  description = "Slurm backend for XManager."
8
- version = "0.4.9"
8
+ version = "0.4.11"
9
9
  # readme = "README.md"
10
10
  requires-python = ">=3.10"
11
11
  license = { text = "MIT" }
@@ -2251,7 +2251,7 @@ wheels = [
2251
2251
 
2252
2252
  [[package]]
2253
2253
  name = "xmanager-slurm"
2254
- version = "0.4.9"
2254
+ version = "0.4.11"
2255
2255
  source = { editable = "." }
2256
2256
  dependencies = [
2257
2257
  { name = "aiofile" },
@@ -62,9 +62,14 @@ class SlurmSSHConfig:
62
62
  if self.host_public_key is None:
63
63
  return None
64
64
 
65
- return asyncssh.import_known_hosts(
66
- f"[{self.host}]:{self.port} {self.host_public_key.algorithm} {self.host_public_key.key}"
65
+ hostname = f"{self.host}"
66
+ if self.port is not None and self.port != asyncssh.DEFAULT_PORT:
67
+ hostname = f"[{hostname}]:{self.port}"
68
+
69
+ known_hosts = asyncssh.import_known_hosts(
70
+ f"{hostname} {self.host_public_key.algorithm} {self.host_public_key.key}"
67
71
  )
72
+ return known_hosts
68
73
 
69
74
  @functools.cached_property
70
75
  def config(self) -> asyncssh.config.SSHConfig:
@@ -117,9 +122,9 @@ class SlurmSSHConfig:
117
122
  def connection_options(self) -> asyncssh.SSHClientConnectionOptions:
118
123
  options = asyncssh.SSHClientConnectionOptions(
119
124
  config=None,
120
- kbdint_auth=False,
121
125
  disable_trivial_auth=True,
122
126
  known_hosts=self.known_hosts,
127
+ server_host_key_algs=self.host_public_key.algorithm if self.host_public_key else None,
123
128
  )
124
129
  options.prepare(last_config=self.config)
125
130
  return options
@@ -139,15 +139,12 @@ class DockerClient:
139
139
  )
140
140
  return _parse_credentials_from_config(podman_config_path)
141
141
 
142
- def inspect(
143
- self, image: ImageURI, element: str | None = None, type: tp.Literal["image"] = "image"
144
- ) -> dict[str, tp.Any]:
142
+ def inspect(self, image: ImageURI, element: str) -> dict[str, tp.Any]:
145
143
  output = utils.run_command(
146
144
  xm.merge_args(
147
145
  self._client_call,
148
- ["inspect"],
149
- ["--format", f"{{{{json .{element}}}}}"] if element else [],
150
- ["--type", type] if type else [],
146
+ ["buildx", "imagetools", "inspect"],
147
+ ["--format", f"{{{{json .{element}}}}}"],
151
148
  [str(image)],
152
149
  ),
153
150
  check=True,
@@ -259,7 +256,7 @@ class DockerClient:
259
256
  uri = ImageURI(target.value.executor_spec.tag).with_digest(
260
257
  executable_metadata["containerimage.digest"]
261
258
  )
262
- config = self.inspect(uri, "Config")
259
+ config = self.inspect(uri, "Image.Config")
263
260
  if "WorkingDir" not in config:
264
261
  raise ValueError(
265
262
  "Docker image does not have a working directory. "
@@ -320,7 +317,7 @@ def _(
320
317
 
321
318
  uri = ImageURI(target.value.executable_spec.image)
322
319
 
323
- config = client.inspect(uri, "Config")
320
+ config = client.inspect(uri, "Image.Config")
324
321
  if "WorkingDir" not in config:
325
322
  raise ValueError(
326
323
  "Docker image does not have a working directory. "