dh-cli 0.2.7__tar.gz → 0.2.9__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 (40) hide show
  1. {dh_cli-0.2.7 → dh_cli-0.2.9}/PKG-INFO +1 -1
  2. {dh_cli-0.2.7 → dh_cli-0.2.9}/pyproject.toml +1 -1
  3. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/aws_batch.py +3 -0
  4. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/submit.py +14 -0
  5. {dh_cli-0.2.7 → dh_cli-0.2.9}/.gitignore +0 -0
  6. {dh_cli-0.2.7 → dh_cli-0.2.9}/LICENSE +0 -0
  7. {dh_cli-0.2.7 → dh_cli-0.2.9}/README.md +0 -0
  8. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/__init__.py +0 -0
  9. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/__init__.py +0 -0
  10. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/__init__.py +0 -0
  11. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/boltz.py +0 -0
  12. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/cancel.py +0 -0
  13. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/clean.py +0 -0
  14. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/embed_t5.py +0 -0
  15. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/finalize.py +0 -0
  16. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/list_jobs.py +0 -0
  17. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/local.py +0 -0
  18. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/logs.py +0 -0
  19. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/retry.py +0 -0
  20. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/status.py +0 -0
  21. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/train.py +0 -0
  22. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/commands/wait_for.py +0 -0
  23. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/fasta_utils.py +0 -0
  24. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/h5_utils.py +0 -0
  25. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/job_id.py +0 -0
  26. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/manifest.py +0 -0
  27. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/batch/s3_transport.py +0 -0
  28. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/cloud_commands.py +0 -0
  29. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/codeartifact.py +0 -0
  30. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/engines_studios/__init__.py +0 -0
  31. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/engines_studios/api_client.py +0 -0
  32. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/engines_studios/auth.py +0 -0
  33. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/engines_studios/engine_commands.py +0 -0
  34. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/engines_studios/progress.py +0 -0
  35. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/engines_studios/ssh_config.py +0 -0
  36. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/engines_studios/studio_commands.py +0 -0
  37. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/github_commands.py +0 -0
  38. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/main.py +0 -0
  39. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/utility_commands.py +0 -0
  40. {dh_cli-0.2.7 → dh_cli-0.2.9}/src/dh_cli/warehouse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dh-cli
3
- Version: 0.2.7
3
+ Version: 0.2.9
4
4
  Summary: Dayhoff Labs developer CLI
5
5
  Author-email: Dayhoff Labs <dev@dayhofflabs.com>
6
6
  License: # PolyForm Noncommercial License 1.0.0
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "dh-cli"
7
- version = "0.2.7"
7
+ version = "0.2.9"
8
8
  description = "Dayhoff Labs developer CLI"
9
9
  requires-python = ">=3.11"
10
10
  readme = "README.md"
@@ -84,6 +84,7 @@ class BatchClient:
84
84
  memory_mb: int | None = None,
85
85
  gpus: int | None = None,
86
86
  image_override: str | None = None,
87
+ command: list[str] | None = None,
87
88
  ) -> str:
88
89
  """Submit a job to AWS Batch.
89
90
 
@@ -129,6 +130,8 @@ class BatchClient:
129
130
  resource_requirements.append({"type": "GPU", "value": str(gpus)})
130
131
 
131
132
  container_overrides: dict[str, Any] = {}
133
+ if command:
134
+ container_overrides["command"] = command
132
135
  if environment:
133
136
  container_overrides["environment"] = [
134
137
  {"name": k, "value": v} for k, v in environment.items()
@@ -179,8 +179,12 @@ def submit(
179
179
  job_name=job_id,
180
180
  job_definition=DEFAULT_JOB_DEFINITION,
181
181
  job_queue=job_queue,
182
+ command=["sh", "-c", job_command],
182
183
  array_size=job_array if job_array > 1 else None,
183
184
  environment=submit_env,
185
+ vcpus=job_vcpus,
186
+ memory_mb=_parse_memory(job_memory),
187
+ gpus=job_gpus,
184
188
  timeout_seconds=timeout_seconds,
185
189
  retry_attempts=job_retry,
186
190
  depends_on=depends_on,
@@ -210,6 +214,16 @@ def submit(
210
214
  raise SystemExit(1)
211
215
 
212
216
 
217
+ def _parse_memory(value: str) -> int:
218
+ """Convert a memory string like ``30G`` or ``16384`` to MiB."""
219
+ v = value.strip().upper()
220
+ if v.endswith("G"):
221
+ return int(v[:-1]) * 1024
222
+ if v.endswith("M"):
223
+ return int(v[:-1])
224
+ return int(v)
225
+
226
+
213
227
  def _parse_timeout(timeout_str: str) -> int:
214
228
  """Parse timeout string to seconds.
215
229
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes