dayhoff-tools 1.11.3__tar.gz → 1.11.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.
Files changed (38) hide show
  1. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/PKG-INFO +2 -1
  2. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/utility_commands.py +58 -38
  3. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/pyproject.toml +2 -1
  4. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/README.md +0 -0
  5. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/__init__.py +0 -0
  6. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/chemistry/standardizer.py +0 -0
  7. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/chemistry/utils.py +0 -0
  8. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/__init__.py +0 -0
  9. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/cloud_commands.py +0 -0
  10. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/__init__.py +0 -0
  11. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/engine_core.py +0 -0
  12. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/engine_lifecycle.py +0 -0
  13. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/engine_maintenance.py +0 -0
  14. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/engine_management.py +0 -0
  15. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/shared.py +0 -0
  16. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/studio_commands.py +0 -0
  17. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/main.py +0 -0
  18. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/swarm_commands.py +0 -0
  19. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/base.py +0 -0
  20. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/deploy_aws.py +0 -0
  21. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
  22. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/deploy_utils.py +0 -0
  23. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/job_runner.py +0 -0
  24. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/processors.py +0 -0
  25. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/swarm.py +0 -0
  26. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/embedders.py +0 -0
  27. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/fasta.py +0 -0
  28. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/file_ops.py +0 -0
  29. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/h5.py +0 -0
  30. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/gcp.py +0 -0
  31. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/gtdb.py +0 -0
  32. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/kegg.py +0 -0
  33. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/mmseqs.py +0 -0
  34. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/structure.py +0 -0
  35. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/uniprot.py +0 -0
  36. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/logs.py +0 -0
  37. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/sqlite.py +0 -0
  38. {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/warehouse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dayhoff-tools
3
- Version: 1.11.3
3
+ Version: 1.11.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
@@ -29,6 +29,7 @@ Requires-Dist: pyyaml (>=6.0)
29
29
  Requires-Dist: questionary (>=2.0.1)
30
30
  Requires-Dist: rdkit-pypi (>=2022.9.5) ; extra == "full"
31
31
  Requires-Dist: requests (>=2.31.0)
32
+ Requires-Dist: seaborn
32
33
  Requires-Dist: sentencepiece (>=0.2.0) ; extra == "embedders"
33
34
  Requires-Dist: sentencepiece (>=0.2.0) ; extra == "full"
34
35
  Requires-Dist: sqlalchemy (>=2.0.40,<3.0.0) ; extra == "full"
@@ -219,6 +219,7 @@ def build_and_upload_wheel(bump_part: str = "patch"):
219
219
  # Build wheel and sdist
220
220
  # UV expects pyproject.toml, so temporarily copy the platform manifest
221
221
  backup_created = False
222
+ temp_pyproject_created = False
222
223
  if pyproject_path != "pyproject.toml":
223
224
  if Path("pyproject.toml").exists():
224
225
  Path("pyproject.toml").rename("pyproject.toml.build.bak")
@@ -226,48 +227,53 @@ def build_and_upload_wheel(bump_part: str = "patch"):
226
227
  Path(pyproject_path).read_text()
227
228
  with open("pyproject.toml", "w") as f:
228
229
  f.write(Path(pyproject_path).read_text())
230
+ temp_pyproject_created = True
229
231
 
230
- build_cmd = ["uv", "build"]
231
- # Print command in blue
232
- print(f"Running command: {BLUE}{' '.join(build_cmd)}{RESET}")
233
- subprocess.run(build_cmd, check=True)
234
-
235
- # Restore original state
236
- if pyproject_path != "pyproject.toml":
237
- Path("pyproject.toml").unlink()
238
- if backup_created:
239
- Path("pyproject.toml.build.bak").rename("pyproject.toml")
240
-
241
- # Upload using uv publish with explicit arguments
242
- # Print masked command in blue
243
- print(f"Running command: {BLUE}{' '.join(publish_cmd_safe_print)}{RESET}")
244
- subprocess.run(
245
- publish_cmd, # Use the actual command with token
246
- check=True,
247
- )
232
+ try:
233
+ build_cmd = ["uv", "build"]
234
+ # Print command in blue
235
+ print(f"Running command: {BLUE}{' '.join(build_cmd)}{RESET}")
236
+ subprocess.run(build_cmd, check=True)
237
+
238
+ # Upload using uv publish with explicit arguments
239
+ # Print masked command in blue
240
+ print(f"Running command: {BLUE}{' '.join(publish_cmd_safe_print)}{RESET}")
241
+ subprocess.run(
242
+ publish_cmd, # Use the actual command with token
243
+ check=True,
244
+ )
248
245
 
249
- print(f"Successfully built and uploaded version {new_version} to PyPI")
246
+ print(f"Successfully built and uploaded version {new_version} to PyPI")
250
247
 
251
- # Re-install DHT in current venv when building from DHT itself
252
- try:
253
- proj_name = None
248
+ # Re-install DHT in current venv when building from DHT itself
249
+ # (Keep temp pyproject.toml until after this step)
254
250
  try:
255
- proj_toml = toml.load(pyproject_path)
256
- proj_name = (
257
- proj_toml.get("project", {}).get("name")
258
- if isinstance(proj_toml, dict)
259
- else None
260
- )
261
- except Exception:
262
- pass
263
- if proj_name == "dayhoff-tools":
264
- print("Re-installing dayhoff-tools into the active environment…")
265
- reinstall_cmd = ["uv", "pip", "install", "-e", ".[full]"]
266
- print(f"Running command: {BLUE}{' '.join(reinstall_cmd)}{RESET}")
267
- subprocess.run(reinstall_cmd, check=True)
268
- print("dayhoff-tools reinstalled in the current environment.")
269
- except subprocess.CalledProcessError as e:
270
- print(f"Warning: Failed to reinstall dayhoff-tools locally: {e}")
251
+ proj_name = None
252
+ try:
253
+ proj_toml = toml.load(pyproject_path)
254
+ proj_name = (
255
+ proj_toml.get("project", {}).get("name")
256
+ if isinstance(proj_toml, dict)
257
+ else None
258
+ )
259
+ except Exception:
260
+ pass
261
+ if proj_name == "dayhoff-tools":
262
+ print("Re-installing dayhoff-tools into the active environment…")
263
+ reinstall_cmd = ["uv", "pip", "install", "-e", ".[full]"]
264
+ print(f"Running command: {BLUE}{' '.join(reinstall_cmd)}{RESET}")
265
+ subprocess.run(reinstall_cmd, check=True)
266
+ print("dayhoff-tools reinstalled in the current environment.")
267
+ except subprocess.CalledProcessError as e:
268
+ print(f"Warning: Failed to reinstall dayhoff-tools locally: {e}")
269
+
270
+ finally:
271
+ # Restore original state (always clean up, even if errors occurred)
272
+ if temp_pyproject_created:
273
+ if Path("pyproject.toml").exists():
274
+ Path("pyproject.toml").unlink()
275
+ if backup_created and Path("pyproject.toml.build.bak").exists():
276
+ Path("pyproject.toml.build.bak").rename("pyproject.toml")
271
277
 
272
278
  except FileNotFoundError:
273
279
  print(f"Error: {pyproject_path} not found.")
@@ -538,6 +544,10 @@ def sync_with_toml(
538
544
  mac_pyproject = mac_uv_dir / "pyproject.toml"
539
545
  mac_pyproject.write_text(mac_manifest.read_text())
540
546
 
547
+ # Copy README.md if it exists (required by some build backends)
548
+ if Path("README.md").exists():
549
+ (mac_uv_dir / "README.md").write_text(Path("README.md").read_text())
550
+
541
551
  # Ensure lock matches manifest (in mac temp dir)
542
552
  print("Ensuring lock file matches pyproject.mac.toml (Mac devcon)…")
543
553
  lock_cmd = ["uv", "lock"]
@@ -581,6 +591,10 @@ def sync_with_toml(
581
591
  aws_pyproject = aws_uv_dir / "pyproject.toml"
582
592
  aws_pyproject.write_text(aws_manifest.read_text())
583
593
 
594
+ # Copy README.md if it exists (required by some build backends)
595
+ if Path("README.md").exists():
596
+ (aws_uv_dir / "README.md").write_text(Path("README.md").read_text())
597
+
584
598
  # Ensure lock matches manifest (in aws temp dir)
585
599
  print("Ensuring lock file matches pyproject.aws.toml (AWS devcon)…")
586
600
  lock_cmd = ["uv", "lock"]
@@ -988,6 +1002,9 @@ def update_dependencies(
988
1002
  if platform == "mac" and mac_manifest.exists():
989
1003
  mac_uv_dir.mkdir(parents=True, exist_ok=True)
990
1004
  (mac_uv_dir / "pyproject.toml").write_text(mac_manifest.read_text())
1005
+ # Copy README.md if it exists (required by some build backends)
1006
+ if Path("README.md").exists():
1007
+ (mac_uv_dir / "README.md").write_text(Path("README.md").read_text())
991
1008
  uv_cwd = str(mac_uv_dir)
992
1009
  lock_file_path = mac_uv_dir / "uv.lock"
993
1010
  manifest_path_for_constraint = mac_manifest
@@ -995,6 +1012,9 @@ def update_dependencies(
995
1012
  # AWS platform (default)
996
1013
  aws_uv_dir.mkdir(parents=True, exist_ok=True)
997
1014
  (aws_uv_dir / "pyproject.toml").write_text(aws_manifest.read_text())
1015
+ # Copy README.md if it exists (required by some build backends)
1016
+ if Path("README.md").exists():
1017
+ (aws_uv_dir / "README.md").write_text(Path("README.md").read_text())
998
1018
  uv_cwd = str(aws_uv_dir)
999
1019
  lock_file_path = aws_uv_dir / "uv.lock"
1000
1020
  manifest_path_for_constraint = aws_manifest
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
5
5
 
6
6
  [project]
7
7
  name = "dayhoff-tools"
8
- version = "1.11.3"
8
+ version = "1.11.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"}
@@ -21,6 +21,7 @@ dependencies = [
21
21
  "questionary>=2.0.1",
22
22
  "tzdata>=2025.2",
23
23
  "boto3>=1.36.8",
24
+ "seaborn",
24
25
  ]
25
26
  requires-python = ">=3.10,<4.0"
26
27
 
File without changes