dayhoff-tools 1.11.8__py3-none-any.whl → 1.11.9__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.
@@ -862,6 +862,8 @@ def add_dependency(
862
862
  package_name = re.split(r"[<>=~!\[]", package)[0].strip()
863
863
  has_version_spec = any(c in package for c in ["<", ">", "=", "~", "!"])
864
864
 
865
+ added_count = 0
866
+
865
867
  for manifest_file in manifest_files:
866
868
  try:
867
869
  content = manifest_file.read_text()
@@ -939,11 +941,17 @@ def add_dependency(
939
941
 
940
942
  manifest_file.write_text(new_content)
941
943
  print(f"✅ Added '{package}' to {manifest_file}")
944
+ added_count += 1
942
945
 
943
946
  except Exception as e:
944
947
  print(f"Error updating {manifest_file}: {e}")
945
948
 
946
- print(f"\n✅ Added '{package}' to all platform manifests")
949
+ # If nothing was added, exit early
950
+ if added_count == 0:
951
+ print(f"\n⚠️ Package '{package_name}' already exists in all manifests")
952
+ return
953
+
954
+ print(f"\n✅ Added '{package}' to {added_count} platform manifest(s)")
947
955
 
948
956
  # If no version specified, resolve and add version constraint
949
957
  if not has_version_spec:
@@ -981,7 +989,7 @@ def add_dependency(
981
989
  print(f"Warning: Could not update version in {manifest_file}: {e}")
982
990
 
983
991
  print(
984
- f"\n✅ Added '{package_name}>={resolved_version}' to all platform manifests"
992
+ f"\n✅ Added '{package_name}>={resolved_version}' to {added_count} platform manifest(s)"
985
993
  )
986
994
  else:
987
995
  print(
@@ -1031,17 +1039,19 @@ def remove_dependency(
1031
1039
  content = manifest_file.read_text()
1032
1040
 
1033
1041
  # Pattern to match the dependency line (with optional version spec)
1034
- # Matches: "package...", or "package...",\n
1042
+ # Matches: "package...", or "package...",\n (including the newline)
1035
1043
  pattern = re.compile(
1036
- rf'^\s*["\']({package_esc}[<>=~!\[].+?|{package_esc})["\'],?\s*(?:#.*)?$',
1044
+ rf'^\s*["\']({package_esc}[<>=~!\[].+?|{package_esc})["\'],?\s*(?:#.*)?$\n?',
1037
1045
  re.MULTILINE,
1038
1046
  )
1039
1047
 
1040
1048
  new_content, num_removed = pattern.subn("", content)
1041
1049
 
1042
1050
  if num_removed > 0:
1043
- # Clean up any double blank lines
1051
+ # Clean up any consecutive blank lines (more than one)
1044
1052
  new_content = re.sub(r"\n\n\n+", "\n\n", new_content)
1053
+ # Also clean up trailing whitespace on lines
1054
+ new_content = re.sub(r"[ \t]+$", "", new_content, flags=re.MULTILINE)
1045
1055
  manifest_file.write_text(new_content)
1046
1056
  print(f"✅ Removed '{package}' from {manifest_file}")
1047
1057
  removed_count += 1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dayhoff-tools
3
- Version: 1.11.8
3
+ Version: 1.11.9
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 (>=0.13.2)
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"
@@ -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=iMj2Oj6Q9LcUTwwZismFqc2QTW_oSeIDR1o_eC7kj-Q,50331
15
+ dayhoff_tools/cli/utility_commands.py,sha256=e2P4dCCtoqMUGNyb0lFBZ6GZpl5Zslm1qqE5qIvsy38,50765
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.8.dist-info/METADATA,sha256=BVSPi89Q4l1JH1DPOXHcwbxq9U1jJ66KJCaqsz5Sqrg,2980
37
- dayhoff_tools-1.11.8.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
38
- dayhoff_tools-1.11.8.dist-info/entry_points.txt,sha256=iAf4jteNqW3cJm6CO6czLxjW3vxYKsyGLZ8WGmxamSc,49
39
- dayhoff_tools-1.11.8.dist-info/RECORD,,
36
+ dayhoff_tools-1.11.9.dist-info/METADATA,sha256=POBxTDcl6NafsxeUli-dgk5-CZ7SvytEjEONN8OEazA,3014
37
+ dayhoff_tools-1.11.9.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
38
+ dayhoff_tools-1.11.9.dist-info/entry_points.txt,sha256=iAf4jteNqW3cJm6CO6czLxjW3vxYKsyGLZ8WGmxamSc,49
39
+ dayhoff_tools-1.11.9.dist-info/RECORD,,