24
24
25
25
def bump_version (version_spec , version_cmd , changelog_path ):
26
26
"""Bump the version and verify new version"""
27
- util .bump_version (version_spec , version_cmd = version_cmd , changelog_path = changelog_path )
28
-
29
- version = util .get_version ()
27
+ version = util .bump_version (version_spec , version_cmd = version_cmd , changelog_path = changelog_path )
30
28
31
29
# A properly parsed version will have a "major" attribute
32
30
parsed = parse_version (version )
@@ -44,6 +42,40 @@ def bump_version(version_spec, version_cmd, changelog_path):
44
42
return version
45
43
46
44
45
+ def update_dependencies (python_package , python_packages ):
46
+ dep_names = [] if len (python_package ) < 3 else python_package [2 ].split ("," )
47
+ python_names = [p [1 ] for p in python_packages ]
48
+ prev_dir = os .getcwd ()
49
+ deps = {}
50
+ for dep_name in dep_names :
51
+ try :
52
+ i = python_names .index (dep_name )
53
+ except ValueError :
54
+ raise RuntimeError (f"Package { python_package [1 ]} depends on { dep_name } , which has not been released yet. Please put the dependency before this package in the python_packages list." )
55
+ dep_path = python_packages [i ][0 ]
56
+ os .chdir (dep_path )
57
+ deps [dep_name ] = util .get_version ()
58
+ os .chdir (prev_dir )
59
+ os .chdir (python_package [0 ])
60
+ text = util .PYPROJECT .read_text (encoding = "utf-8" )
61
+ data = toml .loads (text )
62
+ dependencies = data .get ("project" , {}).get ("dependencies" , [])
63
+ _update_dependencies (dependencies , deps )
64
+ for dependencies in data .get ("project" , {}).get ("optional-dependencies" , {}).values ():
65
+ _update_dependencies (dependencies , deps )
66
+ util .PYPROJECT .write_text (toml .dumps (data ))
67
+ os .chdir (prev_dir )
68
+
69
+
70
+ def _update_dependencies (dependencies , deps ):
71
+ deps_no_pin = [d .split ("<" )[0 ].split ("=" )[0 ].split (">" )[0 ] for d in dependencies ]
72
+ for k , v in deps .items ():
73
+ if k in deps_no_pin :
74
+ i = deps_no_pin .index (k )
75
+ dependencies [i ] = k + " ==" + v
76
+
77
+
78
+
47
79
def check_links (ignore_glob , ignore_links , cache_file , links_expire ):
48
80
"""Check URLs for HTML-containing files."""
49
81
cache_dir = osp .expanduser (cache_file ).replace (os .sep , "/" )
0 commit comments