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
|