dayhoff-tools 1.6.11__tar.gz → 1.6.13__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.6.11 → dayhoff_tools-1.6.13}/PKG-INFO +1 -1
  2. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/cli/engine_commands.py +20 -8
  3. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/pyproject.toml +1 -1
  4. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/README.md +0 -0
  5. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/__init__.py +0 -0
  6. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/chemistry/standardizer.py +0 -0
  7. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/chemistry/utils.py +0 -0
  8. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/cli/__init__.py +0 -0
  9. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/cli/cloud_commands.py +0 -0
  10. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/cli/main.py +0 -0
  11. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/cli/swarm_commands.py +0 -0
  12. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/cli/utility_commands.py +0 -0
  13. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/deployment/base.py +0 -0
  14. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/deployment/deploy_aws.py +0 -0
  15. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
  16. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/deployment/deploy_utils.py +0 -0
  17. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/deployment/job_runner.py +0 -0
  18. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/deployment/processors.py +0 -0
  19. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/deployment/swarm.py +0 -0
  20. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/embedders.py +0 -0
  21. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/fasta.py +0 -0
  22. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/file_ops.py +0 -0
  23. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/h5.py +0 -0
  24. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/intake/gcp.py +0 -0
  25. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/intake/gtdb.py +0 -0
  26. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/intake/kegg.py +0 -0
  27. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/intake/mmseqs.py +0 -0
  28. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/intake/structure.py +0 -0
  29. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/intake/uniprot.py +0 -0
  30. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/logs.py +0 -0
  31. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/sqlite.py +0 -0
  32. {dayhoff_tools-1.6.11 → dayhoff_tools-1.6.13}/dayhoff_tools/warehouse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dayhoff-tools
3
- Version: 1.6.11
3
+ Version: 1.6.13
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
@@ -1867,14 +1867,22 @@ def _attempt_studio_attach(studio, engine, target_user, public_key):
1867
1867
  # Asynchronous path – API returned 202 Accepted and operation tracking ID
1868
1868
  if response.status_code == 202:
1869
1869
  op_id = response.json().get("operation_id")
1870
- if not op_id:
1871
- return False, "Async operation started but no operation_id returned"
1872
- console.print(f"[dim]DEBUG: Got 202 - polling operation {op_id}[/dim]")
1873
- poll_ok, poll_err = _poll_operation(op_id)
1874
- console.print(f"[dim]DEBUG: Poll result: ok={poll_ok}, err={poll_err}[/dim]")
1875
- if poll_ok:
1876
- return True, None
1877
- return False, poll_err
1870
+ console.print(f"[dim]DEBUG: Got 202 - operation {op_id} started[/dim]")
1871
+
1872
+ # Instead of polling the operation status (which seems broken),
1873
+ # just wait a bit and check if the studio is actually attached
1874
+ # This is what dh studio status does and it works reliably
1875
+ time.sleep(5) # Give the async operation a moment to start
1876
+
1877
+ # Now check periodically if the studio is attached
1878
+ for check in range(20): # Check for up to 60 seconds
1879
+ if _is_studio_attached(studio["studio_id"], engine["instance_id"]):
1880
+ console.print("[dim]DEBUG: Studio attachment detected via status check[/dim]")
1881
+ return True, None
1882
+ time.sleep(3)
1883
+
1884
+ # If we get here, attachment didn't complete in reasonable time
1885
+ return False, None # Return None to trigger retry
1878
1886
 
1879
1887
  # --- determine if we should retry ---
1880
1888
  recoverable = False
@@ -1937,16 +1945,20 @@ def _poll_operation(operation_id: str, timeout: int = 600) -> Tuple[bool, str]:
1937
1945
  # ---- fetch status ---------------------------------------------------
1938
1946
  op_resp = make_api_request("GET", f"/operations/{operation_id}")
1939
1947
  if op_resp.status_code != 200:
1948
+ console.print(f"[dim]DEBUG: Operation poll failed: HTTP {op_resp.status_code}[/dim]")
1940
1949
  return False, (
1941
1950
  f"Failed to fetch operation status (HTTP {op_resp.status_code})"
1942
1951
  )
1943
1952
  data = op_resp.json()
1944
1953
  op_status = data.get("status")
1954
+ console.print(f"[dim]DEBUG: Operation status: {op_status}[/dim]")
1945
1955
 
1946
1956
  # ---- interpret state -----------------------------------------------
1947
1957
  if op_status == "COMPLETED":
1958
+ console.print("[dim]DEBUG: Operation completed successfully[/dim]")
1948
1959
  return True, ""
1949
1960
  if op_status == "FAILED":
1961
+ console.print(f"[dim]DEBUG: Operation failed: {data.get('error', 'Operation failed')}[/dim]")
1950
1962
  return False, data.get("error", "Operation failed")
1951
1963
 
1952
1964
  # Not finished yet – wait a little and poll again (no live spinner)
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
5
5
 
6
6
  [project]
7
7
  name = "dayhoff-tools"
8
- version = "1.6.11"
8
+ version = "1.6.13"
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