dayhoff-tools 1.11.2__py3-none-any.whl → 1.11.3__py3-none-any.whl
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/cli/utility_commands.py +116 -81
 - {dayhoff_tools-1.11.2.dist-info → dayhoff_tools-1.11.3.dist-info}/METADATA +1 -1
 - {dayhoff_tools-1.11.2.dist-info → dayhoff_tools-1.11.3.dist-info}/RECORD +5 -5
 - {dayhoff_tools-1.11.2.dist-info → dayhoff_tools-1.11.3.dist-info}/WHEEL +0 -0
 - {dayhoff_tools-1.11.2.dist-info → dayhoff_tools-1.11.3.dist-info}/entry_points.txt +0 -0
 
| 
         @@ -423,58 +423,79 @@ def sync_with_toml( 
     | 
|
| 
       423 
423 
     | 
    
         
             
                        with open("pyproject.workstation.toml", "r") as f:
         
     | 
| 
       424 
424 
     | 
    
         
             
                            content = f.read()
         
     | 
| 
       425 
425 
     | 
    
         | 
| 
       426 
     | 
    
         
            -
                        # Extract dependencies list
         
     | 
| 
       427 
     | 
    
         
            -
                         
     | 
| 
       428 
     | 
    
         
            -
                         
     | 
| 
       429 
     | 
    
         
            -
             
     | 
| 
       430 
     | 
    
         
            -
             
     | 
| 
       431 
     | 
    
         
            -
             
     | 
| 
       432 
     | 
    
         
            -
             
     | 
| 
       433 
     | 
    
         
            -
                                 
     | 
| 
       434 
     | 
    
         
            -
             
     | 
| 
       435 
     | 
    
         
            -
             
     | 
| 
       436 
     | 
    
         
            -
             
     | 
| 
       437 
     | 
    
         
            -
                                     
     | 
| 
       438 
     | 
    
         
            -
             
     | 
| 
       439 
     | 
    
         
            -
             
     | 
| 
       440 
     | 
    
         
            -
             
     | 
| 
       441 
     | 
    
         
            -
             
     | 
| 
       442 
     | 
    
         
            -
             
     | 
| 
       443 
     | 
    
         
            -
             
     | 
| 
       444 
     | 
    
         
            -
             
     | 
| 
       445 
     | 
    
         
            -
                                )
         
     | 
| 
       446 
     | 
    
         
            -
                                 
     | 
| 
       447 
     | 
    
         
            -
             
     | 
| 
       448 
     | 
    
         
            -
             
     | 
| 
       449 
     | 
    
         
            -
             
     | 
| 
      
 426 
     | 
    
         
            +
                        # Extract dependencies list using line-by-line parsing to handle [] in package names
         
     | 
| 
      
 427 
     | 
    
         
            +
                        lines = content.split("\n")
         
     | 
| 
      
 428 
     | 
    
         
            +
                        in_deps = False
         
     | 
| 
      
 429 
     | 
    
         
            +
                        deps_lines = []
         
     | 
| 
      
 430 
     | 
    
         
            +
             
     | 
| 
      
 431 
     | 
    
         
            +
                        for line in lines:
         
     | 
| 
      
 432 
     | 
    
         
            +
                            if re.match(r"\s*dependencies\s*=\s*\[", line):
         
     | 
| 
      
 433 
     | 
    
         
            +
                                in_deps = True
         
     | 
| 
      
 434 
     | 
    
         
            +
                                continue
         
     | 
| 
      
 435 
     | 
    
         
            +
                            if in_deps:
         
     | 
| 
      
 436 
     | 
    
         
            +
                                if re.match(r"^\s*\]\s*$", line):
         
     | 
| 
      
 437 
     | 
    
         
            +
                                    break
         
     | 
| 
      
 438 
     | 
    
         
            +
                                deps_lines.append(line)
         
     | 
| 
      
 439 
     | 
    
         
            +
             
     | 
| 
      
 440 
     | 
    
         
            +
                        deps = []
         
     | 
| 
      
 441 
     | 
    
         
            +
                        for line in deps_lines:
         
     | 
| 
      
 442 
     | 
    
         
            +
                            line = line.strip()
         
     | 
| 
      
 443 
     | 
    
         
            +
                            if line.startswith('"') or line.startswith("'"):
         
     | 
| 
      
 444 
     | 
    
         
            +
                                dep = re.sub(r'["\']', "", line)
         
     | 
| 
      
 445 
     | 
    
         
            +
                                dep = re.sub(r",?\s*#.*$", "", dep)
         
     | 
| 
      
 446 
     | 
    
         
            +
                                dep = dep.strip().rstrip(",")
         
     | 
| 
      
 447 
     | 
    
         
            +
                                if dep:
         
     | 
| 
      
 448 
     | 
    
         
            +
                                    deps.append(dep)
         
     | 
| 
      
 449 
     | 
    
         
            +
             
     | 
| 
      
 450 
     | 
    
         
            +
                        if deps:
         
     | 
| 
      
 451 
     | 
    
         
            +
                            pip_cmd = (
         
     | 
| 
      
 452 
     | 
    
         
            +
                                [sys.executable, "-m", "pip", "install"]
         
     | 
| 
      
 453 
     | 
    
         
            +
                                + deps
         
     | 
| 
      
 454 
     | 
    
         
            +
                                + ["-c", "constraints.txt"]
         
     | 
| 
      
 455 
     | 
    
         
            +
                            )
         
     | 
| 
      
 456 
     | 
    
         
            +
                            print(
         
     | 
| 
      
 457 
     | 
    
         
            +
                                f"Running command: {BLUE}{' '.join(pip_cmd[:5])} ... -c constraints.txt{RESET}"
         
     | 
| 
      
 458 
     | 
    
         
            +
                            )
         
     | 
| 
      
 459 
     | 
    
         
            +
                            subprocess.run(pip_cmd, check=True)
         
     | 
| 
       450 
460 
     | 
    
         | 
| 
       451 
     | 
    
         
            -
                        # Install dev dependencies
         
     | 
| 
       452 
     | 
    
         
            -
                         
     | 
| 
       453 
     | 
    
         
            -
             
     | 
| 
       454 
     | 
    
         
            -
                         
     | 
| 
       455 
     | 
    
         
            -
             
     | 
| 
       456 
     | 
    
         
            -
             
     | 
| 
       457 
     | 
    
         
            -
                             
     | 
| 
       458 
     | 
    
         
            -
             
     | 
| 
       459 
     | 
    
         
            -
                                 
     | 
| 
       460 
     | 
    
         
            -
             
     | 
| 
       461 
     | 
    
         
            -
             
     | 
| 
       462 
     | 
    
         
            -
             
     | 
| 
       463 
     | 
    
         
            -
             
     | 
| 
       464 
     | 
    
         
            -
             
     | 
| 
       465 
     | 
    
         
            -
             
     | 
| 
       466 
     | 
    
         
            -
             
     | 
| 
       467 
     | 
    
         
            -
             
     | 
| 
       468 
     | 
    
         
            -
             
     | 
| 
       469 
     | 
    
         
            -
             
     | 
| 
       470 
     | 
    
         
            -
             
     | 
| 
       471 
     | 
    
         
            -
             
     | 
| 
       472 
     | 
    
         
            -
             
     | 
| 
       473 
     | 
    
         
            -
                                )
         
     | 
| 
       474 
     | 
    
         
            -
                                 
     | 
| 
       475 
     | 
    
         
            -
             
     | 
| 
       476 
     | 
    
         
            -
             
     | 
| 
       477 
     | 
    
         
            -
             
     | 
| 
      
 461 
     | 
    
         
            +
                        # Install dev dependencies using line-by-line parsing
         
     | 
| 
      
 462 
     | 
    
         
            +
                        in_dev_groups = False
         
     | 
| 
      
 463 
     | 
    
         
            +
                        in_dev_list = False
         
     | 
| 
      
 464 
     | 
    
         
            +
                        dev_lines = []
         
     | 
| 
      
 465 
     | 
    
         
            +
             
     | 
| 
      
 466 
     | 
    
         
            +
                        for line in lines:
         
     | 
| 
      
 467 
     | 
    
         
            +
                            if re.match(r"\s*\[dependency-groups\]", line):
         
     | 
| 
      
 468 
     | 
    
         
            +
                                in_dev_groups = True
         
     | 
| 
      
 469 
     | 
    
         
            +
                                continue
         
     | 
| 
      
 470 
     | 
    
         
            +
                            if in_dev_groups and re.match(r"\s*dev\s*=\s*\[", line):
         
     | 
| 
      
 471 
     | 
    
         
            +
                                in_dev_list = True
         
     | 
| 
      
 472 
     | 
    
         
            +
                                continue
         
     | 
| 
      
 473 
     | 
    
         
            +
                            if in_dev_list:
         
     | 
| 
      
 474 
     | 
    
         
            +
                                if re.match(r"^\s*\]\s*$", line):
         
     | 
| 
      
 475 
     | 
    
         
            +
                                    break
         
     | 
| 
      
 476 
     | 
    
         
            +
                                dev_lines.append(line)
         
     | 
| 
      
 477 
     | 
    
         
            +
             
     | 
| 
      
 478 
     | 
    
         
            +
                        dev_deps = []
         
     | 
| 
      
 479 
     | 
    
         
            +
                        for line in dev_lines:
         
     | 
| 
      
 480 
     | 
    
         
            +
                            line = line.strip()
         
     | 
| 
      
 481 
     | 
    
         
            +
                            if line.startswith('"') or line.startswith("'"):
         
     | 
| 
      
 482 
     | 
    
         
            +
                                dep = re.sub(r'["\']', "", line)
         
     | 
| 
      
 483 
     | 
    
         
            +
                                dep = re.sub(r",?\s*#.*$", "", dep)
         
     | 
| 
      
 484 
     | 
    
         
            +
                                dep = dep.strip().rstrip(",")
         
     | 
| 
      
 485 
     | 
    
         
            +
                                if dep:
         
     | 
| 
      
 486 
     | 
    
         
            +
                                    dev_deps.append(dep)
         
     | 
| 
      
 487 
     | 
    
         
            +
             
     | 
| 
      
 488 
     | 
    
         
            +
                        if dev_deps:
         
     | 
| 
      
 489 
     | 
    
         
            +
                            print("Installing dev dependencies...")
         
     | 
| 
      
 490 
     | 
    
         
            +
                            pip_cmd = (
         
     | 
| 
      
 491 
     | 
    
         
            +
                                [sys.executable, "-m", "pip", "install"]
         
     | 
| 
      
 492 
     | 
    
         
            +
                                + dev_deps
         
     | 
| 
      
 493 
     | 
    
         
            +
                                + ["-c", "constraints.txt"]
         
     | 
| 
      
 494 
     | 
    
         
            +
                            )
         
     | 
| 
      
 495 
     | 
    
         
            +
                            print(
         
     | 
| 
      
 496 
     | 
    
         
            +
                                f"Running command: {BLUE}{' '.join(pip_cmd[:5])} ... -c constraints.txt{RESET}"
         
     | 
| 
      
 497 
     | 
    
         
            +
                            )
         
     | 
| 
      
 498 
     | 
    
         
            +
                            subprocess.run(pip_cmd, check=True)
         
     | 
| 
       478 
499 
     | 
    
         | 
| 
       479 
500 
     | 
    
         
             
                        # Install project if requested
         
     | 
| 
       480 
501 
     | 
    
         
             
                        if install_project:
         
     | 
| 
         @@ -728,48 +749,62 @@ def add_dependency( 
     | 
|
| 
       728 
749 
     | 
    
         | 
| 
       729 
750 
     | 
    
         
             
                        if dev:
         
     | 
| 
       730 
751 
     | 
    
         
             
                            # Add to [dependency-groups] dev section
         
     | 
| 
       731 
     | 
    
         
            -
                            #  
     | 
| 
       732 
     | 
    
         
            -
                             
     | 
| 
       733 
     | 
    
         
            -
             
     | 
| 
       734 
     | 
    
         
            -
             
     | 
| 
       735 
     | 
    
         
            -
             
     | 
| 
       736 
     | 
    
         
            -
                             
     | 
| 
       737 
     | 
    
         
            -
             
     | 
| 
      
 752 
     | 
    
         
            +
                            # Use line-by-line parsing to handle [] in dependency names like dayhoff-tools[full]
         
     | 
| 
      
 753 
     | 
    
         
            +
                            lines = content.split("\n")
         
     | 
| 
      
 754 
     | 
    
         
            +
                            in_dev_groups = False
         
     | 
| 
      
 755 
     | 
    
         
            +
                            in_dev_list = False
         
     | 
| 
      
 756 
     | 
    
         
            +
                            dev_start_idx = None
         
     | 
| 
      
 757 
     | 
    
         
            +
                            dev_end_idx = None
         
     | 
| 
      
 758 
     | 
    
         
            +
             
     | 
| 
      
 759 
     | 
    
         
            +
                            for idx, line in enumerate(lines):
         
     | 
| 
      
 760 
     | 
    
         
            +
                                if re.match(r"\s*\[dependency-groups\]", line):
         
     | 
| 
      
 761 
     | 
    
         
            +
                                    in_dev_groups = True
         
     | 
| 
      
 762 
     | 
    
         
            +
                                    continue
         
     | 
| 
      
 763 
     | 
    
         
            +
                                if in_dev_groups and re.match(r"\s*dev\s*=\s*\[", line):
         
     | 
| 
      
 764 
     | 
    
         
            +
                                    in_dev_list = True
         
     | 
| 
      
 765 
     | 
    
         
            +
                                    dev_start_idx = idx
         
     | 
| 
      
 766 
     | 
    
         
            +
                                    continue
         
     | 
| 
      
 767 
     | 
    
         
            +
                                if in_dev_list and re.match(r"^\s*\]\s*$", line):
         
     | 
| 
      
 768 
     | 
    
         
            +
                                    dev_end_idx = idx
         
     | 
| 
      
 769 
     | 
    
         
            +
                                    break
         
     | 
| 
      
 770 
     | 
    
         
            +
             
     | 
| 
      
 771 
     | 
    
         
            +
                            if dev_start_idx is None or dev_end_idx is None:
         
     | 
| 
       738 
772 
     | 
    
         
             
                                print(
         
     | 
| 
       739 
773 
     | 
    
         
             
                                    f"Warning: Could not find [dependency-groups] dev section in {manifest_file}"
         
     | 
| 
       740 
774 
     | 
    
         
             
                                )
         
     | 
| 
       741 
775 
     | 
    
         
             
                                continue
         
     | 
| 
       742 
776 
     | 
    
         | 
| 
       743 
     | 
    
         
            -
                            # Insert new dependency  
     | 
| 
       744 
     | 
    
         
            -
                             
     | 
| 
       745 
     | 
    
         
            -
                             
     | 
| 
       746 
     | 
    
         
            -
                             
     | 
| 
       747 
     | 
    
         
            -
             
     | 
| 
       748 
     | 
    
         
            -
                            # Add with proper indentation
         
     | 
| 
       749 
     | 
    
         
            -
                            new_dep = f'    "{package}",\n'
         
     | 
| 
       750 
     | 
    
         
            -
                            new_content = content.replace(
         
     | 
| 
       751 
     | 
    
         
            -
                                dev_match.group(0), f"{before}{deps_block}{new_dep}{after}"
         
     | 
| 
       752 
     | 
    
         
            -
                            )
         
     | 
| 
      
 777 
     | 
    
         
            +
                            # Insert new dependency before the closing ]
         
     | 
| 
      
 778 
     | 
    
         
            +
                            new_dep = f'    "{package}",'
         
     | 
| 
      
 779 
     | 
    
         
            +
                            lines.insert(dev_end_idx, new_dep)
         
     | 
| 
      
 780 
     | 
    
         
            +
                            new_content = "\n".join(lines)
         
     | 
| 
       753 
781 
     | 
    
         
             
                        else:
         
     | 
| 
       754 
782 
     | 
    
         
             
                            # Add to [project] dependencies section
         
     | 
| 
       755 
     | 
    
         
            -
                             
     | 
| 
       756 
     | 
    
         
            -
             
     | 
| 
       757 
     | 
    
         
            -
                             
     | 
| 
       758 
     | 
    
         
            -
                             
     | 
| 
      
 783 
     | 
    
         
            +
                            # Use line-by-line parsing to handle [] in dependency names like dayhoff-tools[full]
         
     | 
| 
      
 784 
     | 
    
         
            +
                            lines = content.split("\n")
         
     | 
| 
      
 785 
     | 
    
         
            +
                            in_deps = False
         
     | 
| 
      
 786 
     | 
    
         
            +
                            deps_start_idx = None
         
     | 
| 
      
 787 
     | 
    
         
            +
                            deps_end_idx = None
         
     | 
| 
      
 788 
     | 
    
         
            +
             
     | 
| 
      
 789 
     | 
    
         
            +
                            for idx, line in enumerate(lines):
         
     | 
| 
      
 790 
     | 
    
         
            +
                                if re.match(r"\s*dependencies\s*=\s*\[", line):
         
     | 
| 
      
 791 
     | 
    
         
            +
                                    in_deps = True
         
     | 
| 
      
 792 
     | 
    
         
            +
                                    deps_start_idx = idx
         
     | 
| 
      
 793 
     | 
    
         
            +
                                    continue
         
     | 
| 
      
 794 
     | 
    
         
            +
                                if in_deps and re.match(r"^\s*\]\s*$", line):
         
     | 
| 
      
 795 
     | 
    
         
            +
                                    deps_end_idx = idx
         
     | 
| 
      
 796 
     | 
    
         
            +
                                    break
         
     | 
| 
      
 797 
     | 
    
         
            +
             
     | 
| 
      
 798 
     | 
    
         
            +
                            if deps_start_idx is None or deps_end_idx is None:
         
     | 
| 
       759 
799 
     | 
    
         
             
                                print(
         
     | 
| 
       760 
800 
     | 
    
         
             
                                    f"Warning: Could not find dependencies section in {manifest_file}"
         
     | 
| 
       761 
801 
     | 
    
         
             
                                )
         
     | 
| 
       762 
802 
     | 
    
         
             
                                continue
         
     | 
| 
       763 
803 
     | 
    
         | 
| 
       764 
     | 
    
         
            -
                            before  
     | 
| 
       765 
     | 
    
         
            -
                             
     | 
| 
       766 
     | 
    
         
            -
                             
     | 
| 
       767 
     | 
    
         
            -
             
     | 
| 
       768 
     | 
    
         
            -
                            # Add with proper indentation
         
     | 
| 
       769 
     | 
    
         
            -
                            new_dep = f'    "{package}",\n'
         
     | 
| 
       770 
     | 
    
         
            -
                            new_content = content.replace(
         
     | 
| 
       771 
     | 
    
         
            -
                                deps_match.group(0), f"{before}{deps_block}{new_dep}{after}"
         
     | 
| 
       772 
     | 
    
         
            -
                            )
         
     | 
| 
      
 804 
     | 
    
         
            +
                            # Insert new dependency before the closing ]
         
     | 
| 
      
 805 
     | 
    
         
            +
                            new_dep = f'    "{package}",'
         
     | 
| 
      
 806 
     | 
    
         
            +
                            lines.insert(deps_end_idx, new_dep)
         
     | 
| 
      
 807 
     | 
    
         
            +
                            new_content = "\n".join(lines)
         
     | 
| 
       773 
808 
     | 
    
         | 
| 
       774 
809 
     | 
    
         
             
                        manifest_file.write_text(new_content)
         
     | 
| 
       775 
810 
     | 
    
         
             
                        print(f"✅ Added '{package}' to {manifest_file}")
         
     | 
| 
         @@ -12,7 +12,7 @@ dayhoff_tools/cli/engine/shared.py,sha256=Ecx6I1jtzmxQDn3BezKpgpQ4SJeZf4SZjUCLg- 
     | 
|
| 
       12 
12 
     | 
    
         
             
            dayhoff_tools/cli/engine/studio_commands.py,sha256=VwTQujz32-uMcYusDRE73SdzRpgvIkv7ZAF4zRv6AzA,30266
         
     | 
| 
       13 
13 
     | 
    
         
             
            dayhoff_tools/cli/main.py,sha256=Ii5boey--93yGthB_eS2LC7ZR3WHGsJXDHY7uElEtso,6169
         
     | 
| 
       14 
14 
     | 
    
         
             
            dayhoff_tools/cli/swarm_commands.py,sha256=5EyKj8yietvT5lfoz8Zx0iQvVaNgc3SJX1z2zQR6o6M,5614
         
     | 
| 
       15 
     | 
    
         
            -
            dayhoff_tools/cli/utility_commands.py,sha256= 
     | 
| 
      
 15 
     | 
    
         
            +
            dayhoff_tools/cli/utility_commands.py,sha256=Yk2s09Dqkmv1CWJhhMV07Gy0-hZpQhkfiTSmOlykAa8,42185
         
     | 
| 
       16 
16 
     | 
    
         
             
            dayhoff_tools/deployment/base.py,sha256=48KE76QlWMeIZJefcBOZVbyChS2V_mgs7IQ31odPV2o,17806
         
     | 
| 
       17 
17 
     | 
    
         
             
            dayhoff_tools/deployment/deploy_aws.py,sha256=gfqh09hGbz0q3oPqVm0imd_CEjKF2k8moGNRIL26qqE,18614
         
     | 
| 
       18 
18 
     | 
    
         
             
            dayhoff_tools/deployment/deploy_gcp.py,sha256=xgaOVsUDmP6wSEMYNkm1yRNcVskfdz80qJtCulkBIAM,8860
         
     | 
| 
         @@ -33,7 +33,7 @@ dayhoff_tools/intake/uniprot.py,sha256=BZYJQF63OtPcBBnQ7_P9gulxzJtqyorgyuDiPeOJq 
     | 
|
| 
       33 
33 
     | 
    
         
             
            dayhoff_tools/logs.py,sha256=DKdeP0k0kliRcilwvX0mUB2eipO5BdWUeHwh-VnsICs,838
         
     | 
| 
       34 
34 
     | 
    
         
             
            dayhoff_tools/sqlite.py,sha256=jV55ikF8VpTfeQqqlHSbY8OgfyfHj8zgHNpZjBLos_E,18672
         
     | 
| 
       35 
35 
     | 
    
         
             
            dayhoff_tools/warehouse.py,sha256=UETBtZD3r7WgvURqfGbyHlT7cxoiVq8isjzMuerKw8I,24475
         
     | 
| 
       36 
     | 
    
         
            -
            dayhoff_tools-1.11. 
     | 
| 
       37 
     | 
    
         
            -
            dayhoff_tools-1.11. 
     | 
| 
       38 
     | 
    
         
            -
            dayhoff_tools-1.11. 
     | 
| 
       39 
     | 
    
         
            -
            dayhoff_tools-1.11. 
     | 
| 
      
 36 
     | 
    
         
            +
            dayhoff_tools-1.11.3.dist-info/METADATA,sha256=tESeKSHZIZHMi5ekLoJRkRTyBTON40yJ0oegecixNnY,2980
         
     | 
| 
      
 37 
     | 
    
         
            +
            dayhoff_tools-1.11.3.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
         
     | 
| 
      
 38 
     | 
    
         
            +
            dayhoff_tools-1.11.3.dist-info/entry_points.txt,sha256=iAf4jteNqW3cJm6CO6czLxjW3vxYKsyGLZ8WGmxamSc,49
         
     | 
| 
      
 39 
     | 
    
         
            +
            dayhoff_tools-1.11.3.dist-info/RECORD,,
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     |