2424
2525def bump_version (version_spec , version_cmd , changelog_path ):
2626 """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 (
28+ version_spec , version_cmd = version_cmd , changelog_path = changelog_path
29+ )
3030
3131 # A properly parsed version will have a "major" attribute
3232 parsed = parse_version (version )
@@ -44,6 +44,42 @@ def bump_version(version_spec, version_cmd, changelog_path):
4444 return version
4545
4646
47+ def update_dependencies (python_package , python_packages ):
48+ dep_names = [] if len (python_package ) < 3 else python_package [2 ].split ("," )
49+ python_names = [p [1 ] for p in python_packages ]
50+ prev_dir = os .getcwd ()
51+ deps = {}
52+ for dep_name in dep_names :
53+ try :
54+ i = python_names .index (dep_name )
55+ except ValueError :
56+ raise RuntimeError (
57+ 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."
58+ )
59+ dep_path = python_packages [i ][0 ]
60+ os .chdir (dep_path )
61+ deps [dep_name ] = util .get_version ()
62+ os .chdir (prev_dir )
63+ if util .PYPROJECT .exists ():
64+ os .chdir (python_package [0 ])
65+ text = util .PYPROJECT .read_text (encoding = "utf-8" )
66+ data = toml .loads (text )
67+ dependencies = data .get ("project" , {}).get ("dependencies" , [])
68+ _update_dependencies (dependencies , deps )
69+ for dependencies in data .get ("project" , {}).get ("optional-dependencies" , {}).values ():
70+ _update_dependencies (dependencies , deps )
71+ util .PYPROJECT .write_text (toml .dumps (data ))
72+ os .chdir (prev_dir )
73+
74+
75+ def _update_dependencies (dependencies , deps ):
76+ deps_no_pin = [d .split ("<" )[0 ].split ("=" )[0 ].split (">" )[0 ] for d in dependencies ]
77+ for k , v in deps .items ():
78+ if k in deps_no_pin :
79+ i = deps_no_pin .index (k )
80+ dependencies [i ] = k + " ==" + v
81+
82+
4783def check_links (ignore_glob , ignore_links , cache_file , links_expire ):
4884 """Check URLs for HTML-containing files."""
4985 cache_dir = osp .expanduser (cache_file ).replace (os .sep , "/" )
0 commit comments