dayhoff-tools 1.0.17__tar.gz → 1.0.18__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 (30) hide show
  1. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/PKG-INFO +16 -18
  2. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/cli/utility_commands.py +32 -16
  3. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/pyproject.toml +25 -14
  4. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/README.md +0 -0
  5. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/__init__.py +0 -0
  6. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/chemistry/standardizer.py +0 -0
  7. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/chemistry/utils.py +0 -0
  8. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/cli/__init__.py +0 -0
  9. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/cli/cloud_commands.py +0 -0
  10. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/cli/main.py +0 -0
  11. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/cli/swarm_commands.py +0 -0
  12. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/deployment/base.py +0 -0
  13. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/deployment/deploy_aws.py +0 -0
  14. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
  15. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/deployment/deploy_utils.py +0 -0
  16. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/deployment/job_runner.py +0 -0
  17. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/deployment/processors.py +0 -0
  18. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/deployment/swarm.py +0 -0
  19. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/embedders.py +0 -0
  20. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/fasta.py +0 -0
  21. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/file_ops.py +0 -0
  22. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/gcp.py +0 -0
  23. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/h5.py +0 -0
  24. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/kegg.py +0 -0
  25. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/logs.py +0 -0
  26. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/mmseqs.py +0 -0
  27. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/sqlite.py +0 -0
  28. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/structure.py +0 -0
  29. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/uniprot.py +0 -0
  30. {dayhoff_tools-1.0.17 → dayhoff_tools-1.0.18}/dayhoff_tools/warehouse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dayhoff-tools
3
- Version: 1.0.17
3
+ Version: 1.0.18
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
@@ -10,23 +10,21 @@ Classifier: Programming Language :: Python :: 3.10
10
10
  Classifier: Programming Language :: Python :: 3.11
11
11
  Classifier: Programming Language :: Python :: 3.12
12
12
  Classifier: Programming Language :: Python :: 3.13
13
- Provides-Extra: full
14
- Requires-Dist: biopython (>=1.84) ; extra == "full"
15
- Requires-Dist: boto3 (>=1.36.8) ; extra == "full"
16
- Requires-Dist: docker (>=7.1.0) ; extra == "full"
17
- Requires-Dist: fair-esm (>=2.0.0) ; extra == "full"
18
- Requires-Dist: firebase-admin (>=6.5.0)
19
- Requires-Dist: h5py (>=3.11.0) ; extra == "full"
20
- Requires-Dist: pandas (>=2.2.3) ; extra == "full"
21
- Requires-Dist: pyyaml (>=6.0)
22
- Requires-Dist: questionary (>=2.0.1) ; extra == "full"
23
- Requires-Dist: rdkit-pypi (>=2022.9.5) ; extra == "full"
24
- Requires-Dist: requests (>=2.31.0)
25
- Requires-Dist: sqlalchemy (>=2.0.40,<3.0.0) ; extra == "full"
26
- Requires-Dist: torch (>=2.1.0) ; extra == "full"
27
- Requires-Dist: torchvision (>=0.16.0) ; extra == "full"
28
- Requires-Dist: transformers (==4.36.2) ; extra == "full"
29
- Requires-Dist: typer (>=0.9.0)
13
+ Provides-Extra: base
14
+ Requires-Dist: biopython (>=1.84)
15
+ Requires-Dist: boto3 (>=1.36.8)
16
+ Requires-Dist: docker (>=7.1.0)
17
+ Requires-Dist: fair-esm (>=2.0.0)
18
+ Requires-Dist: firebase-admin (>=6.5.0) ; extra == "base"
19
+ Requires-Dist: h5py (>=3.11.0)
20
+ Requires-Dist: pandas (>=2.2.3)
21
+ Requires-Dist: pyyaml (>=6.0) ; extra == "base"
22
+ Requires-Dist: questionary (>=2.0.1)
23
+ Requires-Dist: rdkit-pypi (>=2022.9.5)
24
+ Requires-Dist: requests (>=2.31.0) ; extra == "base"
25
+ Requires-Dist: sqlalchemy (>=2.0.40,<3.0.0)
26
+ Requires-Dist: transformers (==4.36.2)
27
+ Requires-Dist: typer (>=0.9.0) ; extra == "base"
30
28
  Description-Content-Type: text/markdown
31
29
 
32
30
  # dayhoff-tools
@@ -7,6 +7,7 @@ import subprocess
7
7
  import sys
8
8
  from pathlib import Path
9
9
 
10
+ import typer
10
11
  import yaml
11
12
 
12
13
 
@@ -211,6 +212,8 @@ def build_and_upload_wheel(bump_part: str = "patch"):
211
212
  return
212
213
 
213
214
  # Build the command with token authentication
215
+ # IMPORTANT: Mask token for printing
216
+ publish_cmd_safe_print = ["uv", "publish", "--token", "*****"]
214
217
  publish_cmd = ["uv", "publish", "--token", token]
215
218
  print("Using UV_PUBLISH_TOKEN for authentication.")
216
219
 
@@ -279,13 +282,16 @@ def build_and_upload_wheel(bump_part: str = "patch"):
279
282
  # --- End Version Bumping Logic ---
280
283
 
281
284
  # Build wheel and sdist
282
- print("Building wheel and sdist using uv build...")
283
- subprocess.run(["uv", "build"], check=True)
285
+ build_cmd = ["uv", "build"]
286
+ print(f"Running command: {' '.join(build_cmd)}")
287
+ subprocess.run(build_cmd, check=True)
284
288
 
285
289
  # Upload using uv publish with explicit arguments
286
- print("Uploading to PyPI using uv publish...")
290
+ print(
291
+ f"Running command: {' '.join(publish_cmd_safe_print)}"
292
+ ) # Print masked command
287
293
  subprocess.run(
288
- publish_cmd, # Use the command list built earlier
294
+ publish_cmd, # Use the actual command with token
289
295
  check=True,
290
296
  )
291
297
 
@@ -364,8 +370,9 @@ def update_dayhoff_tools():
364
370
  """
365
371
  try:
366
372
  print("Attempting to update dayhoff-tools to the latest version using uv...")
367
- # Reverted to simple uv add, acknowledging limitations with top-level groups
368
- subprocess.run(["uv", "add", "dayhoff-tools@latest"], check=True)
373
+ update_cmd = ["uv", "add", "dayhoff-tools@latest"]
374
+ print(f"Running command: {' '.join(update_cmd)}")
375
+ subprocess.run(update_cmd, check=True)
369
376
  print("Update attempt complete! Check pyproject.toml and run sync if needed.")
370
377
  except subprocess.CalledProcessError as e:
371
378
  print(f"Error occurred while attempting update: {e}")
@@ -374,21 +381,30 @@ def update_dayhoff_tools():
374
381
  sys.exit(1)
375
382
 
376
383
 
377
- def sync_dependencies():
384
+ def sync_dependencies(
385
+ install_project: bool = typer.Option(
386
+ False,
387
+ "--install-project",
388
+ help="Install the local project package itself into the environment.",
389
+ )
390
+ ):
378
391
  """Update uv.lock and sync dependencies based on pyproject.toml.
379
392
 
380
- Runs `uv lock` followed by `uv sync --all-groups --no-install-project`.
381
- This ensures the lock file is up-to-date and installs all declared
382
- dependencies without building/installing the local project itself.
393
+ By default, installs all declared dependencies without building/installing
394
+ the local project itself (--no-install-project). Use --install-project to
395
+ include the local project.
383
396
  """
384
397
  try:
385
- print("Updating lock file (uv lock)...")
386
- subprocess.run(["uv", "lock"], check=True)
398
+ lock_cmd = ["uv", "lock"]
399
+ print(f"Running command: {' '.join(lock_cmd)}")
400
+ subprocess.run(lock_cmd, check=True)
387
401
 
388
- print("Syncing dependencies (uv sync --all-groups --no-install-project)...")
389
- subprocess.run(
390
- ["uv", "sync", "--all-groups", "--no-install-project"], check=True
391
- )
402
+ sync_cmd = ["uv", "sync", "--all-groups"]
403
+ if not install_project:
404
+ sync_cmd.append("--no-install-project")
405
+
406
+ print(f"Running command: {' '.join(sync_cmd)}")
407
+ subprocess.run(sync_cmd, check=True)
392
408
 
393
409
  print("Dependencies synced successfully.")
394
410
  except subprocess.CalledProcessError as e:
@@ -4,24 +4,15 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [project]
6
6
  name = "dayhoff-tools"
7
- version = "1.0.17"
7
+ version = "1.0.18"
8
8
  description = "Common tools for all the repos at Dayhoff Labs"
9
9
  authors = [
10
10
  {name = "Daniel Martin-Alarcon", email = "dma@dayhofflabs.com"}
11
11
  ]
12
12
  readme = "README.md"
13
- # Just enough deps to use the job_runner
14
- dependencies = [
15
- "firebase-admin>=6.5.0",
16
- "pyyaml>=6.0",
17
- "requests>=2.31.0",
18
- "typer>=0.9.0",
19
- ]
20
- requires-python = ">=3.10,<4.0"
21
13
 
22
- [project.optional-dependencies]
23
- # Deps we expect to need to bring to new repos
24
- full = [
14
+ # Default dependencies now include the formerly "full" set
15
+ dependencies = [
25
16
  "biopython>=1.84",
26
17
  "boto3>=1.36.8",
27
18
  "docker>=7.1.0",
@@ -32,9 +23,27 @@ full = [
32
23
  "rdkit-pypi>=2022.9.5",
33
24
  "sqlalchemy (>=2.0.40,<3.0.0)",
34
25
  "transformers==4.36.2",
35
- "torch>=2.1.0",
36
- "torchvision>=0.16.0",
37
26
  ]
27
+ requires-python = ">=3.10,<4.0"
28
+
29
+ [project.optional-dependencies]
30
+ # Minimal base dependencies
31
+ base = [
32
+ "firebase-admin>=6.5.0",
33
+ "pyyaml>=6.0",
34
+ "requests>=2.31.0",
35
+ "typer>=0.9.0",
36
+ ]
37
+
38
+ # Added UV-specific configuration for PyTorch source (for dev/test env)
39
+ [[tool.uv.index]]
40
+ name = "torch-cuda"
41
+ url = "https://download.pytorch.org/whl/cu121"
42
+ explicit = true
43
+
44
+ [tool.uv.sources]
45
+ torch = { index = "torch-cuda" }
46
+ torchvision = { index = "torch-cuda" }
38
47
 
39
48
  [dependency-groups]
40
49
  common = [
@@ -57,6 +66,8 @@ common = [
57
66
  "pytest>=8.0.2,<9",
58
67
  "pytest-cov>=4.1.0,<5",
59
68
  "pytest-mock>=3.12.0,<4",
69
+ "torch==2.4.0+cu121",
70
+ "torchvision==0.19.0+cu121",
60
71
  ]
61
72
 
62
73
  [project.scripts]
File without changes