dayhoff-tools 1.11.9__tar.gz → 1.11.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.
- {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/PKG-INFO +1 -2
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/cloud_commands.py +8 -4
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/deployment/base.py +8 -2
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/deployment/deploy_utils.py +20 -7
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/pyproject.toml +1 -2
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/README.md +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/__init__.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/chemistry/standardizer.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/chemistry/utils.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/__init__.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/engine/__init__.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/engine/engine_core.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/engine/engine_lifecycle.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/engine/engine_maintenance.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/engine/engine_management.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/engine/shared.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/engine/studio_commands.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/main.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/swarm_commands.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/utility_commands.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/deployment/deploy_aws.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/deployment/deploy_gcp.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/deployment/job_runner.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/deployment/processors.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/deployment/swarm.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/embedders.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/fasta.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/file_ops.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/h5.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/intake/gcp.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/intake/gtdb.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/intake/kegg.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/intake/mmseqs.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/intake/structure.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/intake/uniprot.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/logs.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/sqlite.py +0 -0
 - {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.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.11. 
     | 
| 
      
 3 
     | 
    
         
            +
            Version: 1.11.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
         
     | 
| 
         @@ -29,7 +29,6 @@ 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 (>=0.13.2)
         
     | 
| 
       33 
32 
     | 
    
         
             
            Requires-Dist: sentencepiece (>=0.2.0) ; extra == "embedders"
         
     | 
| 
       34 
33 
     | 
    
         
             
            Requires-Dist: sentencepiece (>=0.2.0) ; extra == "full"
         
     | 
| 
       35 
34 
     | 
    
         
             
            Requires-Dist: sqlalchemy (>=2.0.40,<3.0.0) ; extra == "full"
         
     | 
| 
         @@ -485,10 +485,14 @@ def _get_current_aws_profile() -> str: 
     | 
|
| 
       485 
485 
     | 
    
         
             
                    cmd = [aws_path, "configure", "list", "--no-cli-pager"]
         
     | 
| 
       486 
486 
     | 
    
         
             
                    _, stdout, _ = _run_command(cmd, capture=True, check=False)
         
     | 
| 
       487 
487 
     | 
    
         | 
| 
       488 
     | 
    
         
            -
                    # Extract profile from output
         
     | 
| 
       489 
     | 
    
         
            -
                     
     | 
| 
       490 
     | 
    
         
            -
                     
     | 
| 
       491 
     | 
    
         
            -
             
     | 
| 
      
 488 
     | 
    
         
            +
                    # Extract profile from output (format: "profile    : <value>    : <type>    : <location>")
         
     | 
| 
      
 489 
     | 
    
         
            +
                    # Match the line starting with "profile" and capture the value after the first colon
         
     | 
| 
      
 490 
     | 
    
         
            +
                    profile_match = re.search(r"^profile\s+:\s+(\S+)", stdout, re.MULTILINE)
         
     | 
| 
      
 491 
     | 
    
         
            +
                    if profile_match:
         
     | 
| 
      
 492 
     | 
    
         
            +
                        profile_value = profile_match.group(1)
         
     | 
| 
      
 493 
     | 
    
         
            +
                        # Check if the profile is actually set (not "<not" or "not")
         
     | 
| 
      
 494 
     | 
    
         
            +
                        if profile_value not in ("<not", "not"):
         
     | 
| 
      
 495 
     | 
    
         
            +
                            return profile_value
         
     | 
| 
       492 
496 
     | 
    
         
             
                except:
         
     | 
| 
       493 
497 
     | 
    
         
             
                    pass
         
     | 
| 
       494 
498 
     | 
    
         | 
| 
         @@ -128,8 +128,9 @@ def build_job_image(config: dict) -> str: 
     | 
|
| 
       128 
128 
     | 
    
         | 
| 
       129 
129 
     | 
    
         
             
                This function handles the complete image building process:
         
     | 
| 
       130 
130 
     | 
    
         
             
                1. Ensures we're in the repo root
         
     | 
| 
       131 
     | 
    
         
            -
                2.  
     | 
| 
       132 
     | 
    
         
            -
                3.  
     | 
| 
      
 131 
     | 
    
         
            +
                2. Cleans Docker config to avoid credential helper conflicts
         
     | 
| 
      
 132 
     | 
    
         
            +
                3. Constructs the image URI based on config
         
     | 
| 
      
 133 
     | 
    
         
            +
                4. Builds the image using docker build
         
     | 
| 
       133 
134 
     | 
    
         | 
| 
       134 
135 
     | 
    
         
             
                Args:
         
     | 
| 
       135 
136 
     | 
    
         
             
                    config: Dictionary containing the configuration loaded from YAML.
         
     | 
| 
         @@ -146,6 +147,11 @@ def build_job_image(config: dict) -> str: 
     | 
|
| 
       146 
147 
     | 
    
         
             
                """
         
     | 
| 
       147 
148 
     | 
    
         
             
                move_to_repo_root()
         
     | 
| 
       148 
149 
     | 
    
         | 
| 
      
 150 
     | 
    
         
            +
                # Clean Docker config to avoid VS Code dev container credential helper conflicts
         
     | 
| 
      
 151 
     | 
    
         
            +
                from dayhoff_tools.deployment.deploy_utils import clean_docker_config
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
                clean_docker_config()
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
       149 
155 
     | 
    
         
             
                # Get image URI
         
     | 
| 
       150 
156 
     | 
    
         
             
                image_uri = _build_image_uri(config)
         
     | 
| 
       151 
157 
     | 
    
         
             
                docker_config = config["docker"]
         
     | 
| 
         @@ -614,6 +614,24 @@ def setup_rxnfp() -> None: 
     | 
|
| 
       614 
614 
     | 
    
         
             
                )
         
     | 
| 
       615 
615 
     | 
    
         | 
| 
       616 
616 
     | 
    
         | 
| 
      
 617 
     | 
    
         
            +
            def clean_docker_config() -> None:
         
     | 
| 
      
 618 
     | 
    
         
            +
                """Clean Docker configuration to avoid credential helper conflicts.
         
     | 
| 
      
 619 
     | 
    
         
            +
             
     | 
| 
      
 620 
     | 
    
         
            +
                VS Code dev containers can set up credential helpers that interfere with
         
     | 
| 
      
 621 
     | 
    
         
            +
                Docker builds and registry operations. This function creates a clean
         
     | 
| 
      
 622 
     | 
    
         
            +
                configuration that disables problematic credential helpers.
         
     | 
| 
      
 623 
     | 
    
         
            +
             
     | 
| 
      
 624 
     | 
    
         
            +
                This is automatically called before Docker builds and registry operations
         
     | 
| 
      
 625 
     | 
    
         
            +
                to prevent authentication failures.
         
     | 
| 
      
 626 
     | 
    
         
            +
                """
         
     | 
| 
      
 627 
     | 
    
         
            +
                docker_config_dir = os.path.expanduser("~/.docker")
         
     | 
| 
      
 628 
     | 
    
         
            +
                os.makedirs(docker_config_dir, exist_ok=True)
         
     | 
| 
      
 629 
     | 
    
         
            +
             
     | 
| 
      
 630 
     | 
    
         
            +
                # Write a minimal config file that disables credential helpers
         
     | 
| 
      
 631 
     | 
    
         
            +
                with open(os.path.join(docker_config_dir, "config.json"), "w") as f:
         
     | 
| 
      
 632 
     | 
    
         
            +
                    json.dump({"auths": {}, "credsStore": ""}, f)
         
     | 
| 
      
 633 
     | 
    
         
            +
             
     | 
| 
      
 634 
     | 
    
         
            +
             
     | 
| 
       617 
635 
     | 
    
         
             
            def docker_login(registry: str, username: str, password: str) -> None:
         
     | 
| 
       618 
636 
     | 
    
         
             
                """Login to a Docker registry using provided credentials.
         
     | 
| 
       619 
637 
     | 
    
         | 
| 
         @@ -625,13 +643,8 @@ def docker_login(registry: str, username: str, password: str) -> None: 
     | 
|
| 
       625 
643 
     | 
    
         
             
                Raises:
         
     | 
| 
       626 
644 
     | 
    
         
             
                    subprocess.CalledProcessError: If Docker login fails
         
     | 
| 
       627 
645 
     | 
    
         
             
                """
         
     | 
| 
       628 
     | 
    
         
            -
                #  
     | 
| 
       629 
     | 
    
         
            -
                 
     | 
| 
       630 
     | 
    
         
            -
                os.makedirs(docker_config_dir, exist_ok=True)
         
     | 
| 
       631 
     | 
    
         
            -
             
     | 
| 
       632 
     | 
    
         
            -
                # Write a minimal config file that disables credential helpers
         
     | 
| 
       633 
     | 
    
         
            -
                with open(os.path.join(docker_config_dir, "config.json"), "w") as f:
         
     | 
| 
       634 
     | 
    
         
            -
                    json.dump({"auths": {}, "credsStore": ""}, f)
         
     | 
| 
      
 646 
     | 
    
         
            +
                # Clean Docker config to avoid credential helper conflicts
         
     | 
| 
      
 647 
     | 
    
         
            +
                clean_docker_config()
         
     | 
| 
       635 
648 
     | 
    
         | 
| 
       636 
649 
     | 
    
         
             
                # Login to Docker using the credentials
         
     | 
| 
       637 
650 
     | 
    
         
             
                login_process = subprocess.run(
         
     | 
| 
         @@ -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.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"}
         
     | 
| 
         @@ -21,7 +21,6 @@ dependencies = [ 
     | 
|
| 
       21 
21 
     | 
    
         
             
                "questionary>=2.0.1",
         
     | 
| 
       22 
22 
     | 
    
         
             
                "tzdata>=2025.2",
         
     | 
| 
       23 
23 
     | 
    
         
             
                "boto3>=1.36.8",
         
     | 
| 
       24 
     | 
    
         
            -
                "seaborn>=0.13.2",
         
     | 
| 
       25 
24 
     | 
    
         
             
            ]
         
     | 
| 
       26 
25 
     | 
    
         
             
            requires-python = ">=3.10,<4.0"
         
     | 
| 
       27 
26 
     | 
    
         | 
| 
         
            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.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/engine/engine_maintenance.py
    RENAMED
    
    | 
         
            File without changes
         
     | 
    
        {dayhoff_tools-1.11.9 → dayhoff_tools-1.11.11}/dayhoff_tools/cli/engine/engine_management.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
         
     |