dh-cli 0.2.7__tar.gz → 0.2.8__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.8}/PKG-INFO +1 -1
  2. {dh_cli-0.2.7 → dh_cli-0.2.8}/pyproject.toml +1 -1
  3. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/aws_batch.py +3 -0
  4. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/submit.py +15 -0
  5. {dh_cli-0.2.7 → dh_cli-0.2.8}/.gitignore +0 -0
  6. {dh_cli-0.2.7 → dh_cli-0.2.8}/LICENSE +0 -0
  7. {dh_cli-0.2.7 → dh_cli-0.2.8}/README.md +0 -0
  8. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/__init__.py +0 -0
  9. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/__init__.py +0 -0
  10. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/__init__.py +0 -0
  11. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/boltz.py +0 -0
  12. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/cancel.py +0 -0
  13. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/clean.py +0 -0
  14. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/embed_t5.py +0 -0
  15. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/finalize.py +0 -0
  16. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/list_jobs.py +0 -0
  17. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/local.py +0 -0
  18. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/logs.py +0 -0
  19. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/retry.py +0 -0
  20. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/status.py +0 -0
  21. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/train.py +0 -0
  22. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/commands/wait_for.py +0 -0
  23. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/fasta_utils.py +0 -0
  24. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/h5_utils.py +0 -0
  25. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/job_id.py +0 -0
  26. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/manifest.py +0 -0
  27. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/batch/s3_transport.py +0 -0
  28. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/cloud_commands.py +0 -0
  29. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/codeartifact.py +0 -0
  30. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/engines_studios/__init__.py +0 -0
  31. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/engines_studios/api_client.py +0 -0
  32. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/engines_studios/auth.py +0 -0
  33. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/engines_studios/engine_commands.py +0 -0
  34. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/engines_studios/progress.py +0 -0
  35. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/engines_studios/ssh_config.py +0 -0
  36. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/engines_studios/studio_commands.py +0 -0
  37. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/github_commands.py +0 -0
  38. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/main.py +0 -0
  39. {dh_cli-0.2.7 → dh_cli-0.2.8}/src/dh_cli/utility_commands.py +0 -0
  40. {dh_cli-0.2.7 → dh_cli-0.2.8}/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.8
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.8"
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()
@@ -1,6 +1,7 @@
1
1
  """Submit command for generic batch jobs."""
2
2
 
3
3
  import os
4
+ import shlex
4
5
  from pathlib import Path
5
6
 
6
7
  import click
@@ -179,8 +180,12 @@ def submit(
179
180
  job_name=job_id,
180
181
  job_definition=DEFAULT_JOB_DEFINITION,
181
182
  job_queue=job_queue,
183
+ command=shlex.split(job_command),
182
184
  array_size=job_array if job_array > 1 else None,
183
185
  environment=submit_env,
186
+ vcpus=job_vcpus,
187
+ memory_mb=_parse_memory(job_memory),
188
+ gpus=job_gpus,
184
189
  timeout_seconds=timeout_seconds,
185
190
  retry_attempts=job_retry,
186
191
  depends_on=depends_on,
@@ -210,6 +215,16 @@ def submit(
210
215
  raise SystemExit(1)
211
216
 
212
217
 
218
+ def _parse_memory(value: str) -> int:
219
+ """Convert a memory string like ``30G`` or ``16384`` to MiB."""
220
+ v = value.strip().upper()
221
+ if v.endswith("G"):
222
+ return int(v[:-1]) * 1024
223
+ if v.endswith("M"):
224
+ return int(v[:-1])
225
+ return int(v)
226
+
227
+
213
228
  def _parse_timeout(timeout_str: str) -> int:
214
229
  """Parse timeout string to seconds.
215
230
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes