dayhoff-tools 1.3.15__py3-none-any.whl → 1.3.16__py3-none-any.whl

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.
@@ -388,6 +388,12 @@ def launch_engine(
388
388
  help="Engine type: cpu, cpumax, t4, a10g, a100",
389
389
  ),
390
390
  user: Optional[str] = typer.Option(None, "--user", "-u", help="Override username"),
391
+ boot_disk_size: Optional[int] = typer.Option(
392
+ None,
393
+ "--size",
394
+ "-s",
395
+ help="Boot disk size in GB (default: 50GB, min: 20GB, max: 1000GB)",
396
+ ),
391
397
  ):
392
398
  """Launch a new engine instance."""
393
399
  username = check_aws_sso()
@@ -401,9 +407,19 @@ def launch_engine(
401
407
  console.print(f"Valid types: {', '.join(valid_types)}")
402
408
  raise typer.Exit(1)
403
409
 
410
+ # Validate boot disk size
411
+ if boot_disk_size is not None:
412
+ if boot_disk_size < 20:
413
+ console.print("[red]❌ Boot disk size must be at least 20GB[/red]")
414
+ raise typer.Exit(1)
415
+ if boot_disk_size > 1000:
416
+ console.print("[red]❌ Boot disk size cannot exceed 1000GB[/red]")
417
+ raise typer.Exit(1)
418
+
404
419
  cost = HOURLY_COSTS.get(engine_type, 0)
420
+ disk_info = f" with {boot_disk_size}GB boot disk" if boot_disk_size else ""
405
421
  console.print(
406
- f"Launching [cyan]{name}[/cyan] ({engine_type}) for ${cost:.2f}/hour..."
422
+ f"Launching [cyan]{name}[/cyan] ({engine_type}){disk_info} for ${cost:.2f}/hour..."
407
423
  )
408
424
 
409
425
  with Progress(
@@ -413,17 +429,23 @@ def launch_engine(
413
429
  ) as progress:
414
430
  progress.add_task("Creating engine...", total=None)
415
431
 
416
- response = make_api_request(
417
- "POST",
418
- "/engines",
419
- json_data={"name": name, "user": username, "engine_type": engine_type},
420
- )
432
+ request_data = {
433
+ "name": name,
434
+ "user": username,
435
+ "engine_type": engine_type,
436
+ }
437
+ if boot_disk_size is not None:
438
+ request_data["boot_disk_size"] = boot_disk_size
439
+
440
+ response = make_api_request("POST", "/engines", json_data=request_data)
421
441
 
422
442
  if response.status_code == 201:
423
443
  data = response.json()
424
444
  console.print(f"[green]✓ Engine launched successfully![/green]")
425
445
  console.print(f"Instance ID: [cyan]{data['instance_id']}[/cyan]")
426
446
  console.print(f"Type: {data['instance_type']} (${cost:.2f}/hour)")
447
+ if boot_disk_size:
448
+ console.print(f"Boot disk: {boot_disk_size}GB")
427
449
  console.print("\nThe engine is initializing. This may take a few minutes.")
428
450
  console.print(f"Check status with: [cyan]dh engine status {name}[/cyan]")
429
451
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dayhoff-tools
3
- Version: 1.3.15
3
+ Version: 1.3.16
4
4
  Summary: Common tools for all the repos at Dayhoff Labs
5
5
  Author: Daniel Martin-Alarcon
6
6
  Author-email: dma@dayhofflabs.com
@@ -3,7 +3,7 @@ dayhoff_tools/chemistry/standardizer.py,sha256=uMn7VwHnx02nc404eO6fRuS4rsl4dvSPf
3
3
  dayhoff_tools/chemistry/utils.py,sha256=jt-7JgF-GeeVC421acX-bobKbLU_X94KNOW24p_P-_M,2257
4
4
  dayhoff_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  dayhoff_tools/cli/cloud_commands.py,sha256=33qcWLmq-FwEXMdL3F0OHm-5Stlh2r65CldyEZgQ1no,40904
6
- dayhoff_tools/cli/engine_commands.py,sha256=DPD0rsctEz4iI4KXyPdMwS5XzlXaTv0DKUiYAtlsT1w,69414
6
+ dayhoff_tools/cli/engine_commands.py,sha256=TX9IwHkpb-x3OvvydwwhsXqxCpXnZ9TCNiOvYXYGP94,70265
7
7
  dayhoff_tools/cli/main.py,sha256=rgeEHD9lJ8SBCR34BTLb7gVInHUUdmEBNXAJnq5yEU4,4795
8
8
  dayhoff_tools/cli/swarm_commands.py,sha256=5EyKj8yietvT5lfoz8Zx0iQvVaNgc3SJX1z2zQR6o6M,5614
9
9
  dayhoff_tools/cli/utility_commands.py,sha256=qs8vH9TBFHsOPC3X8cU3qZigM3dDn-2Ytq4o_F2WubU,27874
@@ -27,7 +27,7 @@ dayhoff_tools/intake/uniprot.py,sha256=BZYJQF63OtPcBBnQ7_P9gulxzJtqyorgyuDiPeOJq
27
27
  dayhoff_tools/logs.py,sha256=DKdeP0k0kliRcilwvX0mUB2eipO5BdWUeHwh-VnsICs,838
28
28
  dayhoff_tools/sqlite.py,sha256=jV55ikF8VpTfeQqqlHSbY8OgfyfHj8zgHNpZjBLos_E,18672
29
29
  dayhoff_tools/warehouse.py,sha256=8YbnQ--usrEgDQGfvpV4MrMji55A0rq2hZaOgFGh6ag,15896
30
- dayhoff_tools-1.3.15.dist-info/METADATA,sha256=2JVTqkvXrTEVUfMuItJ9WEr9xQtmd2TLqHadTZlzUgc,2825
31
- dayhoff_tools-1.3.15.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
32
- dayhoff_tools-1.3.15.dist-info/entry_points.txt,sha256=iAf4jteNqW3cJm6CO6czLxjW3vxYKsyGLZ8WGmxamSc,49
33
- dayhoff_tools-1.3.15.dist-info/RECORD,,
30
+ dayhoff_tools-1.3.16.dist-info/METADATA,sha256=Ylw3uOqRFudCtgZdphUqKDLMBn0bH7O6-Ns8ZGTQ5R4,2825
31
+ dayhoff_tools-1.3.16.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
32
+ dayhoff_tools-1.3.16.dist-info/entry_points.txt,sha256=iAf4jteNqW3cJm6CO6czLxjW3vxYKsyGLZ8WGmxamSc,49
33
+ dayhoff_tools-1.3.16.dist-info/RECORD,,