dayhoff-tools 1.5.3__tar.gz → 1.5.5__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.

Potentially problematic release.


This version of dayhoff-tools might be problematic. Click here for more details.

Files changed (32) hide show
  1. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/PKG-INFO +4 -2
  2. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/README.md +3 -1
  3. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/cli/engine_commands.py +16 -6
  4. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/pyproject.toml +1 -1
  5. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/__init__.py +0 -0
  6. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/chemistry/standardizer.py +0 -0
  7. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/chemistry/utils.py +0 -0
  8. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/cli/__init__.py +0 -0
  9. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/cli/cloud_commands.py +0 -0
  10. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/cli/main.py +0 -0
  11. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/cli/swarm_commands.py +0 -0
  12. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/cli/utility_commands.py +0 -0
  13. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/deployment/base.py +0 -0
  14. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/deployment/deploy_aws.py +0 -0
  15. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
  16. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/deployment/deploy_utils.py +0 -0
  17. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/deployment/job_runner.py +0 -0
  18. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/deployment/processors.py +0 -0
  19. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/deployment/swarm.py +0 -0
  20. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/embedders.py +0 -0
  21. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/fasta.py +0 -0
  22. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/file_ops.py +0 -0
  23. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/h5.py +0 -0
  24. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/intake/gcp.py +0 -0
  25. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/intake/gtdb.py +0 -0
  26. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/intake/kegg.py +0 -0
  27. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/intake/mmseqs.py +0 -0
  28. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/intake/structure.py +0 -0
  29. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/intake/uniprot.py +0 -0
  30. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/logs.py +0 -0
  31. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/sqlite.py +0 -0
  32. {dayhoff_tools-1.5.3 → dayhoff_tools-1.5.5}/dayhoff_tools/warehouse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dayhoff-tools
3
- Version: 1.5.3
3
+ Version: 1.5.5
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
@@ -52,7 +52,9 @@ The base package includes minimal dependencies required for core CLI functionali
52
52
  ```bash
53
53
  pip install dayhoff-tools
54
54
  # or
55
- poetry add dayhoff-tools
55
+ uv add dayhoff-tools
56
+ # or, for the special case of installing it in the DHT repo itself,
57
+ uv pip install -e .[full]
56
58
  ```
57
59
 
58
60
  ### Optional Dependencies
@@ -9,7 +9,9 @@ The base package includes minimal dependencies required for core CLI functionali
9
9
  ```bash
10
10
  pip install dayhoff-tools
11
11
  # or
12
- poetry add dayhoff-tools
12
+ uv add dayhoff-tools
13
+ # or, for the special case of installing it in the DHT repo itself,
14
+ uv pip install -e .[full]
13
15
  ```
14
16
 
15
17
  ### Optional Dependencies
@@ -391,8 +391,15 @@ def check_session_manager_plugin():
391
391
  return True
392
392
 
393
393
 
394
- def update_ssh_config_entry(engine_name: str, instance_id: str, ssh_user: str):
395
- """Add or update a single SSH config entry for the given SSH user."""
394
+ def update_ssh_config_entry(engine_name: str, instance_id: str, ssh_user: str, idle_timeout: int = 600):
395
+ """Add or update a single SSH config entry for the given SSH user.
396
+
397
+ Args:
398
+ engine_name: Host alias to write into ~/.ssh/config
399
+ instance_id: EC2 instance-id (used by the proxy command)
400
+ ssh_user: Username to place into the SSH stanza
401
+ idle_timeout: Idle timeout **in seconds** to pass to the SSM port-forward. 600 = 10 min.
402
+ """
396
403
  config_path = Path.home() / ".ssh" / "config"
397
404
  config_path.parent.mkdir(mode=0o700, exist_ok=True)
398
405
 
@@ -408,7 +415,7 @@ def update_ssh_config_entry(engine_name: str, instance_id: str, ssh_user: str):
408
415
  Host {engine_name} {SSH_MANAGED_COMMENT}
409
416
  HostName {instance_id}
410
417
  User {ssh_user}
411
- ProxyCommand sh -c \"AWS_SSM_IDLE_TIMEOUT=600 aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'\"\n"""
418
+ ProxyCommand sh -c \"AWS_SSM_IDLE_TIMEOUT={idle_timeout} aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p,idleTimeout={idle_timeout}'\"\n"""
412
419
 
413
420
  # Check if entry already exists
414
421
  host_line = f"Host {engine_name} {SSH_MANAGED_COMMENT}"
@@ -511,7 +518,7 @@ def launch_engine(
511
518
  "engine_type": engine_type,
512
519
  }
513
520
  if boot_disk_size is not None:
514
- request_data["boot_disk_size"] = str(boot_disk_size)
521
+ request_data["boot_disk_size"] = boot_disk_size
515
522
  if availability_zone:
516
523
  request_data["availability_zone"] = availability_zone
517
524
 
@@ -899,6 +906,9 @@ def ssh_engine(
899
906
  admin: bool = typer.Option(
900
907
  False, "--admin", help="Connect as ec2-user instead of the engine owner user"
901
908
  ),
909
+ idle_timeout: int = typer.Option(
910
+ 600, "--idle-timeout", help="Idle timeout (seconds) for the SSM port-forward (0 = disable)"
911
+ ),
902
912
  ):
903
913
  """Connect to an engine via SSH.
904
914
 
@@ -931,7 +941,7 @@ def ssh_engine(
931
941
  console.print(
932
942
  f"Updating SSH config for [cyan]{engine['name']}[/cyan] (user: {ssh_user})..."
933
943
  )
934
- update_ssh_config_entry(engine["name"], engine["instance_id"], ssh_user)
944
+ update_ssh_config_entry(engine["name"], engine["instance_id"], ssh_user, idle_timeout)
935
945
 
936
946
  # Connect
937
947
  console.print(f"[green]✓ Connecting to {engine['name']}...[/green]")
@@ -1019,7 +1029,7 @@ def config_ssh(
1019
1029
  f"Host {engine['name']} {SSH_MANAGED_COMMENT}",
1020
1030
  f" HostName {engine['instance_id']}",
1021
1031
  f" User {ssh_user}",
1022
- f" ProxyCommand sh -c \"AWS_SSM_IDLE_TIMEOUT=600 aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'\"",
1032
+ f" ProxyCommand sh -c \"AWS_SSM_IDLE_TIMEOUT=600 aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p,idleTimeout=600'\"",
1023
1033
  ]
1024
1034
  )
1025
1035
 
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
5
5
 
6
6
  [project]
7
7
  name = "dayhoff-tools"
8
- version = "1.5.3"
8
+ version = "1.5.5"
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"}