From e8c29fa77c2d08ecbc93754b681f2902b53bef79 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Mon, 16 Sep 2019 17:34:15 -0500 Subject: update-python-libraries: use version key for latest release (#68857) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From warehouse API reference [1]: GET /pypi//json Returns metadata (info) about an individual project at the latest version […] [1] https://warehouse.pypa.io/api-reference/json/#project --- .../update-python-libraries.py | 37 ++-------------------- 1 file changed, 2 insertions(+), 35 deletions(-) (limited to 'pkgs/development/interpreters') diff --git a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py index 9292a9307030..2315e53220b9 100755 --- a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py +++ b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py @@ -116,45 +116,11 @@ SEMVER = { } -def _determine_latest_version(current_version, target, versions): - """Determine latest version, given `target`. - """ - current_version = Version(current_version) - - def _parse_versions(versions): - for v in versions: - try: - yield Version(v) - except InvalidVersion: - pass - - versions = _parse_versions(versions) - - index = SEMVER[target] - - ceiling = list(current_version[0:index]) - if len(ceiling) == 0: - ceiling = None - else: - ceiling[-1]+=1 - ceiling = Version(".".join(map(str, ceiling))) - - # We do not want prereleases - versions = SpecifierSet(prereleases=PRERELEASES).filter(versions) - - if ceiling is not None: - versions = SpecifierSet(f"<{ceiling}").filter(versions) - - return (max(sorted(versions))).raw_version - - def _get_latest_version_pypi(package, extension, current_version, target): """Get latest version and hash from PyPI.""" url = "{}/{}/json".format(INDEX, package) json = _fetch_page(url) - - versions = json['releases'].keys() - version = _determine_latest_version(current_version, target, versions) + version = json['info']['version'] try: releases = json['releases'][version] @@ -166,6 +132,7 @@ def _get_latest_version_pypi(package, extension, current_version, target): sha256 = release['digests']['sha256'] break else: + logging.error("Release not found for extension: {}".format(extension)) sha256 = None return version, sha256 -- cgit 1.4.1