dayhoff-tools 1.3.26__tar.gz → 1.3.28__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.26 → dayhoff_tools-1.3.28}/PKG-INFO +1 -1
  2. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/cli/engine_commands.py +25 -6
  3. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/pyproject.toml +1 -1
  4. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/README.md +0 -0
  5. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/__init__.py +0 -0
  6. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/chemistry/standardizer.py +0 -0
  7. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/chemistry/utils.py +0 -0
  8. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/cli/__init__.py +0 -0
  9. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/cli/cloud_commands.py +0 -0
  10. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/cli/main.py +0 -0
  11. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/cli/swarm_commands.py +0 -0
  12. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/cli/utility_commands.py +0 -0
  13. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/deployment/base.py +0 -0
  14. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/deployment/deploy_aws.py +0 -0
  15. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
  16. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/deployment/deploy_utils.py +0 -0
  17. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/deployment/job_runner.py +0 -0
  18. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/deployment/processors.py +0 -0
  19. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/deployment/swarm.py +0 -0
  20. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/embedders.py +0 -0
  21. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/fasta.py +0 -0
  22. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/file_ops.py +0 -0
  23. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/h5.py +0 -0
  24. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/intake/gcp.py +0 -0
  25. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/intake/gtdb.py +0 -0
  26. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/intake/kegg.py +0 -0
  27. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/intake/mmseqs.py +0 -0
  28. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/intake/structure.py +0 -0
  29. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/intake/uniprot.py +0 -0
  30. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/logs.py +0 -0
  31. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/dayhoff_tools/sqlite.py +0 -0
  32. {dayhoff_tools-1.3.26 → dayhoff_tools-1.3.28}/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.26
3
+ Version: 1.3.28
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
@@ -15,7 +15,7 @@ from botocore.exceptions import ClientError, NoCredentialsError
15
15
  from rich import box
16
16
  from rich.console import Console
17
17
  from rich.panel import Panel
18
- from rich.progress import Progress, SpinnerColumn, TextColumn
18
+ from rich.progress import Progress, SpinnerColumn, TextColumn, TimeElapsedColumn
19
19
  from rich.prompt import Confirm, IntPrompt, Prompt
20
20
  from rich.table import Table
21
21
  import re
@@ -663,7 +663,7 @@ def engine_status(
663
663
 
664
664
  # Coffee lock
665
665
  if idle_detector.get("coffee_lock"):
666
- status_lines.append(f" • [cyan]☕ Coffee lock active for {idle_detector['coffee_lock']}[/cyan]")
666
+ status_lines.append(f" • [cyan]☕ Caffeinated for another {idle_detector['coffee_lock']}[/cyan]")
667
667
 
668
668
  # SSH sessions
669
669
  ssh_sessions = idle_detector.get("ssh_sessions", [])
@@ -675,7 +675,7 @@ def engine_status(
675
675
  # IDE connections
676
676
  ide_conn = idle_detector.get("ide_connections")
677
677
  if ide_conn:
678
- status_lines.append(f" • [magenta]🖥 {ide_conn['ide']} connected ({ide_conn['connection_count']} connections)[/magenta]")
678
+ status_lines.append(f" • [magenta]🖥 IDE connected ({ide_conn['connection_count']} connections)[/magenta]")
679
679
 
680
680
  if attached_studios:
681
681
  status_lines.append("")
@@ -1594,9 +1594,28 @@ def attach_studio(
1594
1594
  raise typer.Exit(1)
1595
1595
  console.print("[green]✓ Engine started[/green]")
1596
1596
  console.print("Waiting for engine to be ready...")
1597
- import time
1598
-
1599
- time.sleep(10)
1597
+ # Wait until the engine is fully running & marked ready (max 5 min)
1598
+ console.print("Waiting for engine to be ready (this can take a couple of minutes)…")
1599
+ from rich.progress import Progress, SpinnerColumn, TimeElapsedColumn
1600
+
1601
+ with Progress(SpinnerColumn(), TimeElapsedColumn(), TextColumn("[progress.description]{task.description}"), transient=True) as prog:
1602
+ prog.add_task("Awaiting engine readiness…", total=None)
1603
+ max_attempts = 30 # 30 × 10 s ≈ 5 min
1604
+ for _ in range(max_attempts):
1605
+ time.sleep(10)
1606
+
1607
+ status_resp = make_api_request("GET", f"/engines/{engine['instance_id']}")
1608
+ if status_resp.status_code != 200:
1609
+ continue
1610
+
1611
+ detailed = status_resp.json().get("engine", {})
1612
+ state_ok = detailed.get("state", "").lower() == "running"
1613
+ ready_ok = detailed.get("ready") is True
1614
+
1615
+ if state_ok and ready_ok:
1616
+ break
1617
+ else:
1618
+ console.print("[yellow]Engine is still starting up. If attachment fails, wait a little longer and retry.[/yellow]")
1600
1619
  else:
1601
1620
  raise typer.Exit(1)
1602
1621
 
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
5
5
 
6
6
  [project]
7
7
  name = "dayhoff-tools"
8
- version = "1.3.26"
8
+ version = "1.3.28"
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