dayhoff-tools 1.3.14__tar.gz → 1.3.16__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 (32) hide show
  1. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/PKG-INFO +1 -1
  2. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/cli/engine_commands.py +31 -8
  3. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/pyproject.toml +1 -1
  4. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/README.md +0 -0
  5. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/__init__.py +0 -0
  6. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/chemistry/standardizer.py +0 -0
  7. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/chemistry/utils.py +0 -0
  8. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/cli/__init__.py +0 -0
  9. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/cli/cloud_commands.py +0 -0
  10. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/cli/main.py +0 -0
  11. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/cli/swarm_commands.py +0 -0
  12. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/cli/utility_commands.py +0 -0
  13. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/deployment/base.py +0 -0
  14. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/deployment/deploy_aws.py +0 -0
  15. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
  16. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/deployment/deploy_utils.py +0 -0
  17. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/deployment/job_runner.py +0 -0
  18. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/deployment/processors.py +0 -0
  19. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/deployment/swarm.py +0 -0
  20. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/embedders.py +0 -0
  21. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/fasta.py +0 -0
  22. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/file_ops.py +0 -0
  23. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/h5.py +0 -0
  24. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/intake/gcp.py +0 -0
  25. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/intake/gtdb.py +0 -0
  26. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/intake/kegg.py +0 -0
  27. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/intake/mmseqs.py +0 -0
  28. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/intake/structure.py +0 -0
  29. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/intake/uniprot.py +0 -0
  30. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/logs.py +0 -0
  31. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/sqlite.py +0 -0
  32. {dayhoff_tools-1.3.14 → dayhoff_tools-1.3.16}/dayhoff_tools/warehouse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dayhoff-tools
3
- Version: 1.3.14
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
@@ -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:
@@ -1104,8 +1126,9 @@ def resize_engine(
1104
1126
  elif online and engine["state"].lower() == "running":
1105
1127
  console.print("\n[yellow]⚠️ Online resize complete. You must now expand the filesystem:[/yellow]")
1106
1128
  console.print(f"1. SSH into the engine: [cyan]ssh {engine['name']}[/cyan]")
1107
- console.print("2. Run: [cyan]sudo growpart /dev/nvme0n1 1[/cyan]")
1108
- console.print("3. Run: [cyan]sudo xfs_growfs /[/cyan]")
1129
+ console.print("2. Find the root device: [cyan]lsblk[/cyan]")
1130
+ console.print("3. Expand the partition: [cyan]sudo growpart /dev/nvme0n1 1[/cyan] (adjust device name as needed)")
1131
+ console.print("4. Expand the filesystem: [cyan]sudo xfs_growfs /[/cyan]")
1109
1132
 
1110
1133
  except ClientError as e:
1111
1134
  console.print(f"[red]❌ Failed to resize engine: {e}[/red]")
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
5
5
 
6
6
  [project]
7
7
  name = "dayhoff-tools"
8
- version = "1.3.14"
8
+ version = "1.3.16"
9
9
  description = "Common tools for all the repos at Dayhoff Labs"
10
10
  authors = [
11
11
  {name = "Daniel Martin-Alarcon", email = "dma@dayhofflabs.com"}
File without changes