dayhoff-tools 1.13.0__tar.gz → 1.13.2__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.
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/PKG-INFO +1 -1
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/engine-studio-cli.md +8 -8
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/engine_commands.py +5 -5
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/simulators/engine_list_simulator.py +7 -7
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/simulators/studio_list_simulator.py +5 -5
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/studio_commands.py +7 -4
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/pyproject.toml +1 -1
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/README.md +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/__init__.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/chemistry/standardizer.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/chemistry/utils.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/__init__.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/cloud_commands.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engine1/__init__.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engine1/engine_core.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engine1/engine_lifecycle.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engine1/engine_maintenance.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engine1/engine_management.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engine1/shared.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engine1/studio_commands.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/__init__.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/api_client.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/auth.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/progress.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/simulators/cli-simulators.md +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/simulators/demo.sh +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/simulators/engine_status_simulator.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/simulators/idle_status_simulator.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/simulators/simulator_utils.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/simulators/studio_status_simulator.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/main.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/swarm_commands.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/utility_commands.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/deployment/base.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/deployment/deploy_aws.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/deployment/deploy_utils.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/deployment/job_runner.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/deployment/processors.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/deployment/swarm.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/embedders.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/fasta.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/file_ops.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/h5.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/intake/gcp.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/intake/gtdb.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/intake/kegg.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/intake/mmseqs.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/intake/structure.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/intake/uniprot.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/logs.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/sqlite.py +0 -0
- {dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/warehouse.py +0 -0
{dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/engine-studio-cli.md
RENAMED
|
@@ -321,17 +321,17 @@ dh engine2 list --env sand
|
|
|
321
321
|
|
|
322
322
|
**Output:**
|
|
323
323
|
```
|
|
324
|
-
Engines for AWS Account dev
|
|
325
324
|
|
|
326
|
-
|
|
325
|
+
Engines for AWS Account dev
|
|
326
|
+
╭──────────────┬─────────────┬─────────────┬─────────────┬─────────────────────╮
|
|
327
327
|
│ Name │ State │ User │ Type │ Instance ID │
|
|
328
328
|
├──────────────┼─────────────┼─────────────┼─────────────┼─────────────────────┤
|
|
329
329
|
│ alice-work │ running │ alice │ cpu │ i-0123456789abcdef0 │
|
|
330
330
|
│ bob-training │ running │ bob │ a10g │ i-0fedcba987654321 │
|
|
331
331
|
│ batch-worker │ stopped │ charlie │ cpumax │ i-0abc123def456789 │
|
|
332
|
-
|
|
333
|
-
|
|
332
|
+
╰──────────────┴─────────────┴─────────────┴─────────────┴─────────────────────╯
|
|
334
333
|
Total: 3 engine(s)
|
|
334
|
+
|
|
335
335
|
```
|
|
336
336
|
|
|
337
337
|
**Formatting:**
|
|
@@ -755,17 +755,17 @@ dh studio2 list
|
|
|
755
755
|
|
|
756
756
|
**Output:**
|
|
757
757
|
```
|
|
758
|
-
Studios for AWS Account dev
|
|
759
758
|
|
|
760
|
-
|
|
759
|
+
Studios for AWS Account dev
|
|
760
|
+
╭────────┬──────────────┬──────────────┬───────────┬───────────────────────────╮
|
|
761
761
|
│ User │ Status │ Attached To │ Size │ Studio ID │
|
|
762
762
|
├────────┼──────────────┼──────────────┼───────────┼───────────────────────────┤
|
|
763
763
|
│ alice │ attached │ alice-work │ 100GB │ vol-0123456789abcdef0 │
|
|
764
764
|
│ bob │ available │ - │ 200GB │ vol-0fedcba987654321 │
|
|
765
765
|
│ carol │ attaching │ carol-gpu │ 150GB │ vol-0abc123def456789 │
|
|
766
|
-
|
|
767
|
-
|
|
766
|
+
╰────────┴──────────────┴──────────────┴───────────┴───────────────────────────╯
|
|
768
767
|
Total: 3 studio(s)
|
|
768
|
+
|
|
769
769
|
```
|
|
770
770
|
|
|
771
771
|
**Formatting:**
|
{dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/engine_commands.py
RENAMED
|
@@ -581,10 +581,10 @@ def list_engines(env: Optional[str]):
|
|
|
581
581
|
engines = result.get("engines", [])
|
|
582
582
|
|
|
583
583
|
# Show account header with blue account name
|
|
584
|
-
click.echo(f"
|
|
584
|
+
click.echo(f"\nEngines for AWS Account \033[34m{env}\033[0m")
|
|
585
585
|
|
|
586
586
|
if not engines:
|
|
587
|
-
click.echo("No engines found")
|
|
587
|
+
click.echo("No engines found\n")
|
|
588
588
|
return
|
|
589
589
|
|
|
590
590
|
# Calculate dynamic width for Name column (longest name + 2 for padding)
|
|
@@ -601,7 +601,7 @@ def list_engines(env: Optional[str]):
|
|
|
601
601
|
total_width = name_width + state_width + user_width + type_width + id_width + 9 # +9 for separators and spaces
|
|
602
602
|
|
|
603
603
|
# Table top border
|
|
604
|
-
click.echo("
|
|
604
|
+
click.echo("╭" + "─" * (name_width + 1) + "┬" + "─" * (state_width + 1) + "┬" + "─" * (user_width + 1) + "┬" + "─" * (type_width + 1) + "┬" + "─" * (id_width + 1) + "╮")
|
|
605
605
|
|
|
606
606
|
# Table header
|
|
607
607
|
click.echo(
|
|
@@ -648,9 +648,9 @@ def list_engines(env: Optional[str]):
|
|
|
648
648
|
)
|
|
649
649
|
|
|
650
650
|
# Table bottom border
|
|
651
|
-
click.echo("
|
|
651
|
+
click.echo("╰" + "─" * (name_width + 1) + "┴" + "─" * (state_width + 1) + "┴" + "─" * (user_width + 1) + "┴" + "─" * (type_width + 1) + "┴" + "─" * (id_width + 1) + "╯")
|
|
652
652
|
|
|
653
|
-
click.echo(f"
|
|
653
|
+
click.echo(f"Total: {len(engines)} engine(s)\n")
|
|
654
654
|
|
|
655
655
|
except Exception as e:
|
|
656
656
|
click.echo(f"✗ Error: {e}", err=True)
|
|
@@ -24,10 +24,10 @@ def format_list_output(engines: list[dict[str, Any]], env: str = "dev") -> None:
|
|
|
24
24
|
"""Format and print engine list output matching the actual CLI."""
|
|
25
25
|
|
|
26
26
|
# Header with blue account name
|
|
27
|
-
print(f"
|
|
27
|
+
print(f"\nEngines for AWS Account {colorize(env, '34')}")
|
|
28
28
|
|
|
29
29
|
if not engines:
|
|
30
|
-
print("No engines found")
|
|
30
|
+
print("No engines found\n")
|
|
31
31
|
return
|
|
32
32
|
|
|
33
33
|
# Calculate dynamic width for Name column (longest name + 2 for padding)
|
|
@@ -44,7 +44,7 @@ def format_list_output(engines: list[dict[str, Any]], env: str = "dev") -> None:
|
|
|
44
44
|
|
|
45
45
|
# Table top border
|
|
46
46
|
print(
|
|
47
|
-
"
|
|
47
|
+
"╭"
|
|
48
48
|
+ "─" * (name_width + 1)
|
|
49
49
|
+ "┬"
|
|
50
50
|
+ "─" * (state_width + 1)
|
|
@@ -54,7 +54,7 @@ def format_list_output(engines: list[dict[str, Any]], env: str = "dev") -> None:
|
|
|
54
54
|
+ "─" * (type_width + 1)
|
|
55
55
|
+ "┬"
|
|
56
56
|
+ "─" * (id_width + 1)
|
|
57
|
-
+ "
|
|
57
|
+
+ "╮"
|
|
58
58
|
)
|
|
59
59
|
|
|
60
60
|
# Table header
|
|
@@ -115,7 +115,7 @@ def format_list_output(engines: list[dict[str, Any]], env: str = "dev") -> None:
|
|
|
115
115
|
|
|
116
116
|
# Table bottom border
|
|
117
117
|
print(
|
|
118
|
-
"
|
|
118
|
+
"╰"
|
|
119
119
|
+ "─" * (name_width + 1)
|
|
120
120
|
+ "┴"
|
|
121
121
|
+ "─" * (state_width + 1)
|
|
@@ -125,10 +125,10 @@ def format_list_output(engines: list[dict[str, Any]], env: str = "dev") -> None:
|
|
|
125
125
|
+ "─" * (type_width + 1)
|
|
126
126
|
+ "┴"
|
|
127
127
|
+ "─" * (id_width + 1)
|
|
128
|
-
+ "
|
|
128
|
+
+ "╯"
|
|
129
129
|
)
|
|
130
130
|
|
|
131
|
-
print(f"
|
|
131
|
+
print(f"Total: {len(engines)} engine(s)\n")
|
|
132
132
|
|
|
133
133
|
|
|
134
134
|
def generate_scenarios() -> dict[str, dict[str, Any]]:
|
|
@@ -24,10 +24,10 @@ def format_list_output(studios: list[dict[str, Any]], engines_map: dict[str, str
|
|
|
24
24
|
"""Format and print studio list output matching the actual CLI."""
|
|
25
25
|
|
|
26
26
|
# Header with blue account name
|
|
27
|
-
print(f"
|
|
27
|
+
print(f"\nStudios for AWS Account {colorize(env, '34')}")
|
|
28
28
|
|
|
29
29
|
if not studios:
|
|
30
|
-
print("No studios found")
|
|
30
|
+
print("No studios found\n")
|
|
31
31
|
return
|
|
32
32
|
|
|
33
33
|
# Calculate dynamic width for User column (longest user + 2 for padding)
|
|
@@ -49,7 +49,7 @@ def format_list_output(studios: list[dict[str, Any]], engines_map: dict[str, str
|
|
|
49
49
|
id_width = 25
|
|
50
50
|
|
|
51
51
|
# Table top border
|
|
52
|
-
print("
|
|
52
|
+
print("╭" + "─" * (user_width + 1) + "┬" + "─" * (status_width + 1) + "┬" + "─" * (attached_width + 1) + "┬" + "─" * (size_width + 1) + "┬" + "─" * (id_width + 1) + "╮")
|
|
53
53
|
|
|
54
54
|
# Table header
|
|
55
55
|
print(f"│ {'User':<{user_width}}│ {'Status':<{status_width}}│ {'Attached To':<{attached_width}}│ {'Size':<{size_width}}│ {'Studio ID':<{id_width}}│")
|
|
@@ -102,9 +102,9 @@ def format_list_output(studios: list[dict[str, Any]], engines_map: dict[str, str
|
|
|
102
102
|
print(f"│ {user_display}│ {status_display}│ {attached_display}│ {size:<{size_width}}│ {studio_id_display}│")
|
|
103
103
|
|
|
104
104
|
# Table bottom border
|
|
105
|
-
print("
|
|
105
|
+
print("╰" + "─" * (user_width + 1) + "┴" + "─" * (status_width + 1) + "┴" + "─" * (attached_width + 1) + "┴" + "─" * (size_width + 1) + "┴" + "─" * (id_width + 1) + "╯")
|
|
106
106
|
|
|
107
|
-
print(f"
|
|
107
|
+
print(f"Total: {len(studios)} studio(s)\n")
|
|
108
108
|
|
|
109
109
|
|
|
110
110
|
def generate_scenarios() -> dict[str, dict[str, Any]]:
|
{dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/studio_commands.py
RENAMED
|
@@ -258,8 +258,11 @@ def list_studios(env: Optional[str]):
|
|
|
258
258
|
result = client.list_studios()
|
|
259
259
|
studios = result.get("studios", [])
|
|
260
260
|
|
|
261
|
+
# Show account header with blue account name
|
|
262
|
+
click.echo(f"\nStudios for AWS Account \033[34m{env}\033[0m")
|
|
263
|
+
|
|
261
264
|
if not studios:
|
|
262
|
-
click.echo("No studios found")
|
|
265
|
+
click.echo("No studios found\n")
|
|
263
266
|
return
|
|
264
267
|
|
|
265
268
|
# Get all engines to map instance IDs to names
|
|
@@ -287,7 +290,7 @@ def list_studios(env: Optional[str]):
|
|
|
287
290
|
id_width = 25
|
|
288
291
|
|
|
289
292
|
# Table top border
|
|
290
|
-
click.echo("
|
|
293
|
+
click.echo("╭" + "─" * (user_width + 1) + "┬" + "─" * (status_width + 1) + "┬" + "─" * (attached_width + 1) + "┬" + "─" * (size_width + 1) + "┬" + "─" * (id_width + 1) + "╮")
|
|
291
294
|
|
|
292
295
|
# Table header - reordered to [User, Status, Attached To, Size, Studio ID]
|
|
293
296
|
click.echo(
|
|
@@ -344,9 +347,9 @@ def list_studios(env: Optional[str]):
|
|
|
344
347
|
)
|
|
345
348
|
|
|
346
349
|
# Table bottom border
|
|
347
|
-
click.echo("
|
|
350
|
+
click.echo("╰" + "─" * (user_width + 1) + "┴" + "─" * (status_width + 1) + "┴" + "─" * (attached_width + 1) + "┴" + "─" * (size_width + 1) + "┴" + "─" * (id_width + 1) + "╯")
|
|
348
351
|
|
|
349
|
-
click.echo(f"
|
|
352
|
+
click.echo(f"Total: {len(studios)} studio(s)\n")
|
|
350
353
|
|
|
351
354
|
except Exception as e:
|
|
352
355
|
click.echo(f"✗ Error: {e}", err=True)
|
|
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
5
5
|
|
|
6
6
|
[project]
|
|
7
7
|
name = "dayhoff-tools"
|
|
8
|
-
version = "1.13.
|
|
8
|
+
version = "1.13.2"
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engine1/engine_maintenance.py
RENAMED
|
File without changes
|
{dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engine1/engine_management.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/api_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dayhoff_tools-1.13.0 → dayhoff_tools-1.13.2}/dayhoff_tools/cli/engines_studios/simulators/demo.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|