dayhoff-tools 1.4.12__tar.gz → 1.4.14__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.4.12 → dayhoff_tools-1.4.14}/PKG-INFO +1 -1
  2. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/cli/engine_commands.py +16 -8
  3. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/pyproject.toml +1 -1
  4. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/README.md +0 -0
  5. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/__init__.py +0 -0
  6. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/chemistry/standardizer.py +0 -0
  7. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/chemistry/utils.py +0 -0
  8. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/cli/__init__.py +0 -0
  9. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/cli/cloud_commands.py +0 -0
  10. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/cli/main.py +0 -0
  11. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/cli/swarm_commands.py +0 -0
  12. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/cli/utility_commands.py +0 -0
  13. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/deployment/base.py +0 -0
  14. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/deployment/deploy_aws.py +0 -0
  15. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
  16. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/deployment/deploy_utils.py +0 -0
  17. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/deployment/job_runner.py +0 -0
  18. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/deployment/processors.py +0 -0
  19. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/deployment/swarm.py +0 -0
  20. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/embedders.py +0 -0
  21. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/fasta.py +0 -0
  22. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/file_ops.py +0 -0
  23. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/h5.py +0 -0
  24. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/intake/gcp.py +0 -0
  25. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/intake/gtdb.py +0 -0
  26. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/intake/kegg.py +0 -0
  27. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/intake/mmseqs.py +0 -0
  28. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/intake/structure.py +0 -0
  29. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/intake/uniprot.py +0 -0
  30. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/logs.py +0 -0
  31. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/sqlite.py +0 -0
  32. {dayhoff_tools-1.4.12 → dayhoff_tools-1.4.14}/dayhoff_tools/warehouse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dayhoff-tools
3
- Version: 1.4.12
3
+ Version: 1.4.14
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
@@ -1671,21 +1671,28 @@ def attach_studio(
1671
1671
  console.print("[yellow]Engine is still starting up – please retry in a minute.[/yellow]")
1672
1672
  return
1673
1673
  else:
1674
- # Quick path: engine is already runningtry a couple of times then fail fast
1674
+ # Give the (already-running) engine a little breathing room e.g. it may still be mounting EFS
1675
+ max_attempts = 10 # ~1 min total
1676
+ retry_delay = 6
1677
+
1675
1678
  for attempt in range(max_attempts):
1676
1679
  success, error_msg = _attempt_studio_attach(studio, engine, target_user, public_key)
1677
1680
 
1678
1681
  if success:
1679
- break # good to go
1682
+ break # attached!
1680
1683
 
1681
1684
  if error_msg:
1685
+ # Fatal – bubble up immediately
1682
1686
  console.print(f"[red]❌ Failed to attach studio: {error_msg}[/red]")
1683
1687
  return
1684
1688
 
1685
- time.sleep(retry_delay)
1689
+ # Recoverable and still not ready – short wait + optional info
1690
+ if attempt < max_attempts - 1:
1691
+ console.print("[dim]Engine not ready yet – retrying …[/dim]")
1692
+ time.sleep(retry_delay)
1686
1693
 
1687
1694
  else:
1688
- console.print("[yellow]Could not attach studio – please retry in a moment.[/yellow]")
1695
+ console.print("[yellow]Engine is busy or still initialising – please retry in about a minute.[/yellow]")
1689
1696
  return
1690
1697
 
1691
1698
  # Successful attach path
@@ -1737,13 +1744,14 @@ def _attempt_studio_attach(studio, engine, target_user, public_key):
1737
1744
  elif any(p in err_msg for p in RECOVERABLE_PATTERNS):
1738
1745
  recoverable = True
1739
1746
 
1747
+ error_text = response.json().get("error", "Unknown error")
1748
+
1740
1749
  if not recoverable:
1741
1750
  # fatal – abort immediately and show message
1742
- error = response.json().get("error", "Unknown error")
1743
- return False, error
1751
+ return False, error_text
1744
1752
 
1745
- # otherwise wait and retry
1746
- return False, None
1753
+ # otherwise wait and retry – but surface the reason so caller can display if desired
1754
+ return False, error_text
1747
1755
 
1748
1756
 
1749
1757
  @studio_app.command("detach")
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
5
5
 
6
6
  [project]
7
7
  name = "dayhoff-tools"
8
- version = "1.4.12"
8
+ version = "1.4.14"
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