dayhoff-tools 1.13.9__tar.gz → 1.13.11__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 (53) hide show
  1. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/PKG-INFO +1 -1
  2. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/studio_commands.py +6 -4
  3. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/deployment/deploy_aws.py +49 -40
  4. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/pyproject.toml +1 -1
  5. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/README.md +0 -0
  6. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/__init__.py +0 -0
  7. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/chemistry/standardizer.py +0 -0
  8. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/chemistry/utils.py +0 -0
  9. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/__init__.py +0 -0
  10. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/cloud_commands.py +0 -0
  11. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engine1/__init__.py +0 -0
  12. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engine1/engine_core.py +0 -0
  13. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engine1/engine_lifecycle.py +0 -0
  14. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engine1/engine_maintenance.py +0 -0
  15. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engine1/engine_management.py +0 -0
  16. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engine1/shared.py +0 -0
  17. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engine1/studio_commands.py +0 -0
  18. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/__init__.py +0 -0
  19. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/api_client.py +0 -0
  20. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/auth.py +0 -0
  21. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/engine-studio-cli.md +0 -0
  22. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/engine_commands.py +0 -0
  23. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/progress.py +0 -0
  24. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/simulators/cli-simulators.md +0 -0
  25. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/simulators/demo.sh +0 -0
  26. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/simulators/engine_list_simulator.py +0 -0
  27. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/simulators/engine_status_simulator.py +0 -0
  28. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/simulators/idle_status_simulator.py +0 -0
  29. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/simulators/simulator_utils.py +0 -0
  30. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/simulators/studio_list_simulator.py +0 -0
  31. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/engines_studios/simulators/studio_status_simulator.py +0 -0
  32. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/main.py +0 -0
  33. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/swarm_commands.py +0 -0
  34. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/cli/utility_commands.py +0 -0
  35. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/deployment/base.py +0 -0
  36. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
  37. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/deployment/deploy_utils.py +0 -0
  38. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/deployment/job_runner.py +0 -0
  39. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/deployment/processors.py +0 -0
  40. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/deployment/swarm.py +0 -0
  41. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/embedders.py +0 -0
  42. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/fasta.py +0 -0
  43. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/file_ops.py +0 -0
  44. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/h5.py +0 -0
  45. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/intake/gcp.py +0 -0
  46. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/intake/gtdb.py +0 -0
  47. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/intake/kegg.py +0 -0
  48. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/intake/mmseqs.py +0 -0
  49. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/intake/structure.py +0 -0
  50. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/intake/uniprot.py +0 -0
  51. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/logs.py +0 -0
  52. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/sqlite.py +0 -0
  53. {dayhoff_tools-1.13.9 → dayhoff_tools-1.13.11}/dayhoff_tools/warehouse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dayhoff-tools
3
- Version: 1.13.9
3
+ Version: 1.13.11
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
@@ -225,12 +225,14 @@ def studio_status(user: Optional[str], env: Optional[str]):
225
225
  # Attached to in blue (if present) - resolve instance ID to engine name
226
226
  if studio.get("attached_to"):
227
227
  instance_id = studio["attached_to"]
228
- # Try to resolve instance ID to engine name
228
+ # Try to resolve instance ID to engine name by searching engines list
229
229
  engine_name = instance_id # Default to instance ID if not found
230
230
  try:
231
- engine = client.get_engine_by_name(instance_id)
232
- if engine:
233
- engine_name = engine.get("name", instance_id)
231
+ engines_result = client.list_engines()
232
+ for engine in engines_result.get("engines", []):
233
+ if engine.get("instance_id") == instance_id:
234
+ engine_name = engine.get("name", instance_id)
235
+ break
234
236
  except Exception:
235
237
  pass # Fall back to instance ID
236
238
  click.echo(f"Attached to: \033[34m{engine_name}\033[0m")
@@ -344,46 +344,55 @@ def create_or_update_job_definition(
344
344
  f"Adding mount points to job definition: {batch_job_config['mountPoints']}"
345
345
  )
346
346
 
347
- # Auto-mount Primordial Drive if available
348
- # This ensures all batch jobs have access to shared datasets at /primordial/
349
- primordial_fs_id = get_primordial_fs_id(session)
350
- if primordial_fs_id:
351
- print(f"Adding Primordial Drive configuration (fs_id: {primordial_fs_id})")
352
-
353
- # Add volume configuration
354
- efs_volume = {
355
- "name": "primordial",
356
- "efsVolumeConfiguration": {
357
- "fileSystemId": primordial_fs_id,
358
- "rootDirectory": "/",
359
- },
360
- }
361
-
362
- if "volumes" not in container_properties:
363
- container_properties["volumes"] = []
364
-
365
- # Check if already added to avoid duplicates
366
- if not any(
367
- v.get("name") == "primordial" for v in container_properties["volumes"]
368
- ):
369
- container_properties["volumes"].append(efs_volume)
370
-
371
- # Add mount point
372
- mount_point = {
373
- "sourceVolume": "primordial",
374
- "containerPath": "/primordial",
375
- "readOnly": False,
376
- }
377
-
378
- if "mountPoints" not in container_properties:
379
- container_properties["mountPoints"] = []
380
-
381
- # Check if already added
382
- if not any(
383
- mp.get("containerPath") == "/primordial"
384
- for mp in container_properties["mountPoints"]
385
- ):
386
- container_properties["mountPoints"].append(mount_point)
347
+ # Mount Primordial Drive if explicitly enabled via feature flag
348
+ # Add 'mount_primordial_drive' to features list to mount shared EFS at /primordial/
349
+ features = config.get("features", []) or []
350
+ features_set = {f if isinstance(f, str) else next(iter(f)) for f in features}
351
+ mount_primordial = "mount_primordial_drive" in features_set
352
+
353
+ if mount_primordial:
354
+ primordial_fs_id = get_primordial_fs_id(session)
355
+ if primordial_fs_id:
356
+ print(f"Adding Primordial Drive configuration (fs_id: {primordial_fs_id})")
357
+
358
+ # Add volume configuration
359
+ efs_volume = {
360
+ "name": "primordial",
361
+ "efsVolumeConfiguration": {
362
+ "fileSystemId": primordial_fs_id,
363
+ "rootDirectory": "/",
364
+ },
365
+ }
366
+
367
+ if "volumes" not in container_properties:
368
+ container_properties["volumes"] = []
369
+
370
+ # Check if already added to avoid duplicates
371
+ if not any(
372
+ v.get("name") == "primordial" for v in container_properties["volumes"]
373
+ ):
374
+ container_properties["volumes"].append(efs_volume)
375
+
376
+ # Add mount point
377
+ mount_point = {
378
+ "sourceVolume": "primordial",
379
+ "containerPath": "/primordial",
380
+ "readOnly": False,
381
+ }
382
+
383
+ if "mountPoints" not in container_properties:
384
+ container_properties["mountPoints"] = []
385
+
386
+ # Check if already added
387
+ if not any(
388
+ mp.get("containerPath") == "/primordial"
389
+ for mp in container_properties["mountPoints"]
390
+ ):
391
+ container_properties["mountPoints"].append(mount_point)
392
+ else:
393
+ print(
394
+ "Warning: mount_primordial_drive enabled but Primordial Drive not found in this environment"
395
+ )
387
396
 
388
397
  # Check if job definition already exists using the session client
389
398
  try:
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
5
5
 
6
6
  [project]
7
7
  name = "dayhoff-tools"
8
- version = "1.13.9"
8
+ version = "1.13.11"
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"}