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.
- {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/PKG-INFO +2 -1
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/utility_commands.py +58 -38
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/pyproject.toml +2 -1
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/README.md +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/__init__.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/chemistry/standardizer.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/chemistry/utils.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/__init__.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/cloud_commands.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/__init__.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/engine_core.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/engine_lifecycle.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/engine_maintenance.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/engine_management.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/shared.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/studio_commands.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/main.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/swarm_commands.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/base.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/deploy_aws.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/deploy_utils.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/job_runner.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/processors.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/deployment/swarm.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/embedders.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/fasta.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/file_ops.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/h5.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/gcp.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/gtdb.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/kegg.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/mmseqs.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/structure.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/intake/uniprot.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/logs.py +0 -0
 - {dayhoff_tools-1.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/sqlite.py +0 -0
 - {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 
     | 
    
         
            +
            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 
     | 
    
         
            -
                     
     | 
| 
       231 
     | 
    
         
            -
             
     | 
| 
       232 
     | 
    
         
            -
             
     | 
| 
       233 
     | 
    
         
            -
             
     | 
| 
       234 
     | 
    
         
            -
             
     | 
| 
       235 
     | 
    
         
            -
             
     | 
| 
       236 
     | 
    
         
            -
             
     | 
| 
       237 
     | 
    
         
            -
                         
     | 
| 
       238 
     | 
    
         
            -
                         
     | 
| 
       239 
     | 
    
         
            -
             
     | 
| 
       240 
     | 
    
         
            -
             
     | 
| 
       241 
     | 
    
         
            -
             
     | 
| 
       242 
     | 
    
         
            -
             
     | 
| 
       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 
     | 
    
         
            -
             
     | 
| 
      
 246 
     | 
    
         
            +
                        print(f"Successfully built and uploaded version {new_version} to PyPI")
         
     | 
| 
       250 
247 
     | 
    
         | 
| 
       251 
     | 
    
         
            -
             
     | 
| 
       252 
     | 
    
         
            -
             
     | 
| 
       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 
     | 
    
         
            -
                             
     | 
| 
       256 
     | 
    
         
            -
                             
     | 
| 
       257 
     | 
    
         
            -
                                proj_toml 
     | 
| 
       258 
     | 
    
         
            -
                                 
     | 
| 
       259 
     | 
    
         
            -
             
     | 
| 
       260 
     | 
    
         
            -
             
     | 
| 
       261 
     | 
    
         
            -
             
     | 
| 
       262 
     | 
    
         
            -
             
     | 
| 
       263 
     | 
    
         
            -
             
     | 
| 
       264 
     | 
    
         
            -
             
     | 
| 
       265 
     | 
    
         
            -
                             
     | 
| 
       266 
     | 
    
         
            -
             
     | 
| 
       267 
     | 
    
         
            -
             
     | 
| 
       268 
     | 
    
         
            -
             
     | 
| 
       269 
     | 
    
         
            -
             
     | 
| 
       270 
     | 
    
         
            -
             
     | 
| 
      
 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. 
     | 
| 
      
 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
         
     | 
| 
         
            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.11.3 → dayhoff_tools-1.11.5}/dayhoff_tools/cli/engine/engine_maintenance.py
    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
         
     |