dayhoff-tools 1.3.5__tar.gz → 1.3.6__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.5 → dayhoff_tools-1.3.6}/PKG-INFO +1 -1
  2. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/cli/engine_commands.py +19 -7
  3. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/pyproject.toml +1 -1
  4. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/README.md +0 -0
  5. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/__init__.py +0 -0
  6. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/chemistry/standardizer.py +0 -0
  7. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/chemistry/utils.py +0 -0
  8. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/cli/__init__.py +0 -0
  9. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/cli/cloud_commands.py +0 -0
  10. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/cli/main.py +0 -0
  11. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/cli/swarm_commands.py +0 -0
  12. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/cli/utility_commands.py +0 -0
  13. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/deployment/base.py +0 -0
  14. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/deployment/deploy_aws.py +0 -0
  15. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
  16. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/deployment/deploy_utils.py +0 -0
  17. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/deployment/job_runner.py +0 -0
  18. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/deployment/processors.py +0 -0
  19. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/deployment/swarm.py +0 -0
  20. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/embedders.py +0 -0
  21. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/fasta.py +0 -0
  22. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/file_ops.py +0 -0
  23. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/h5.py +0 -0
  24. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/intake/gcp.py +0 -0
  25. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/intake/gtdb.py +0 -0
  26. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/intake/kegg.py +0 -0
  27. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/intake/mmseqs.py +0 -0
  28. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/intake/structure.py +0 -0
  29. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/intake/uniprot.py +0 -0
  30. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/logs.py +0 -0
  31. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/dayhoff_tools/sqlite.py +0 -0
  32. {dayhoff_tools-1.3.5 → dayhoff_tools-1.3.6}/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.5
3
+ Version: 1.3.6
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
@@ -338,11 +338,10 @@ def launch_engine(
338
338
  @engine_app.command("list")
339
339
  def list_engines(
340
340
  user: Optional[str] = typer.Option(None, "--user", "-u", help="Filter by user"),
341
- all_users: bool = typer.Option(False, "--all", "-a", help="Show all users' engines"),
342
341
  running_only: bool = typer.Option(False, "--running", help="Show only running engines"),
343
342
  stopped_only: bool = typer.Option(False, "--stopped", help="Show only stopped engines"),
344
343
  ):
345
- """List all engines."""
344
+ """List engines (shows all engines by default)."""
346
345
  current_user = check_aws_sso()
347
346
 
348
347
  params = {}
@@ -618,14 +617,18 @@ def ssh_engine(
618
617
  @engine_app.command("config-ssh")
619
618
  def config_ssh(
620
619
  clean: bool = typer.Option(False, "--clean", help="Remove all managed entries"),
620
+ all_engines: bool = typer.Option(False, "--all", "-a", help="Include all engines from all users"),
621
621
  ):
622
- """Update SSH config with all available engines."""
622
+ """Update SSH config with available engines."""
623
623
  username = check_aws_sso()
624
624
 
625
625
  if clean:
626
626
  console.print("Removing all managed SSH entries...")
627
627
  else:
628
- console.print("Updating SSH config with all running engines...")
628
+ if all_engines:
629
+ console.print("Updating SSH config with all running engines...")
630
+ else:
631
+ console.print(f"Updating SSH config with running engines for [cyan]{username}[/cyan] and [cyan]shared[/cyan]...")
629
632
 
630
633
  # Get all engines
631
634
  response = make_api_request("GET", "/engines")
@@ -635,6 +638,14 @@ def config_ssh(
635
638
 
636
639
  engines = response.json().get("engines", [])
637
640
  running_engines = [e for e in engines if e["state"].lower() == "running"]
641
+
642
+ # Filter engines based on options
643
+ if not all_engines:
644
+ # Show only current user's engines and shared engines
645
+ running_engines = [
646
+ e for e in running_engines
647
+ if e["user"] == username or e["user"] == "shared"
648
+ ]
638
649
 
639
650
  # Read existing config
640
651
  config_path = Path.home() / ".ssh" / "config"
@@ -685,7 +696,8 @@ def config_ssh(
685
696
  f"[green]✓ Updated SSH config with {len(running_engines)} engines[/green]"
686
697
  )
687
698
  for engine in running_engines:
688
- console.print(f"{engine['name']} {engine['instance_id']}")
699
+ user_display = f"[dim]({engine['user']})[/dim]" if engine['user'] != username else ""
700
+ console.print(f" • {engine['name']} → {engine['instance_id']} {user_display}")
689
701
 
690
702
 
691
703
  @engine_app.command("keep-awake")
@@ -1020,7 +1032,7 @@ def studio_status():
1020
1032
  # Format status with colors
1021
1033
  status = studio['status']
1022
1034
  if status == "in-use":
1023
- status_display = "[magenta]attached[/magenta]"
1035
+ status_display = "[bright_blue]attached[/bright_blue]"
1024
1036
  elif status in ["attaching", "detaching"]:
1025
1037
  status_display = f"[yellow]{status}[/yellow]"
1026
1038
  else:
@@ -1258,7 +1270,7 @@ def list_studios(
1258
1270
  for studio in studios:
1259
1271
  # Change status display
1260
1272
  if studio["status"] == "in-use":
1261
- status_display = "[magenta]attached[/magenta]"
1273
+ status_display = "[bright_blue]attached[/bright_blue]"
1262
1274
  elif studio["status"] in ["attaching", "detaching"]:
1263
1275
  status_display = "[yellow]" + studio["status"] + "[/yellow]"
1264
1276
  else:
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
5
5
 
6
6
  [project]
7
7
  name = "dayhoff-tools"
8
- version = "1.3.5"
8
+ version = "1.3.6"
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