Merge pull request #8147 from Rylan12/bump-formula-pr-pypi-version

bump-formula-pr: handle pypi url version changes
This commit is contained in:
Rylan Polster 2020-07-31 11:55:50 -04:00 committed by GitHub
commit 8e370b35fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View File

@ -183,6 +183,7 @@ module Homebrew
elsif !new_url && !new_version
odie "#{formula}: no --url= or --version= argument specified!"
else
new_url ||= PyPI.update_pypi_url(old_url, new_version)
new_url ||= old_url.gsub(old_version, new_version)
if new_url == old_url
odie <<~EOS

View File

@ -7,6 +7,20 @@ module PyPI
@pipgrip_installed = nil
def url_to_pypi_package_name(url)
return unless url.start_with? PYTHONHOSTED_URL_PREFIX
File.basename(url).match(/^(.+)-[a-z\d.]+$/)[1]
end
def update_pypi_url(url, version)
package = url_to_pypi_package_name url
return if package.nil?
_, url = get_pypi_info(package, version)
url
end
# Get name, url, and version for a given pypi package
def get_pypi_info(package, version)
metadata_url = "https://pypi.org/pypi/#{package}/#{version}/json"
@ -32,7 +46,7 @@ module PyPI
# PyPI package name isn't always the same as the formula name. Try to infer from the URL.
pypi_name = if formula.stable.url.start_with?(PYTHONHOSTED_URL_PREFIX)
File.basename(formula.stable.url).match(/^(.+)-[a-z\d.]+$/)[1]
url_to_pypi_package_name formula.stable.url
else
formula.name
end