Support new graalpy asset names that include Python version. (#2863)
* Support new graalpy asset names that include Python version * Slight readability improvement for graalpy asset regex
This commit is contained in:
+14
-7
@@ -124,14 +124,22 @@ class GraalPyVersions:
|
|||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
|
|
||||||
releases = response.json()
|
releases = response.json()
|
||||||
gp_version_re = re.compile(r"-(\d+\.\d+\.\d+)$")
|
gp_asset_re = re.compile(
|
||||||
|
r"^(?P<prefix>graalpy(?P<cpython>\d+\.\d+)?-(?P<graalpy>\d+\.\d+\.\d+))-"
|
||||||
|
)
|
||||||
cp_version_re = re.compile(r"Python (\d+\.\d+(?:\.\d+)?)")
|
cp_version_re = re.compile(r"Python (\d+\.\d+(?:\.\d+)?)")
|
||||||
for release in releases:
|
for release in releases:
|
||||||
m = gp_version_re.search(release["tag_name"])
|
for asset in release["assets"]:
|
||||||
if m:
|
m = gp_asset_re.match(asset["name"])
|
||||||
release["graalpy_version"] = Version(m.group(1))
|
|
||||||
m = cp_version_re.search(release["body"])
|
|
||||||
if m:
|
if m:
|
||||||
|
release["asset_prefix"] = m.group("prefix")
|
||||||
|
release["graalpy_version"] = Version(m.group("graalpy"))
|
||||||
|
if m.group("cpython"):
|
||||||
|
release["python_version"] = Version(m.group("cpython"))
|
||||||
|
break
|
||||||
|
if "python_version" not in release and (
|
||||||
|
m := cp_version_re.search(release["body"] or "")
|
||||||
|
):
|
||||||
release["python_version"] = Version(m.group(1))
|
release["python_version"] = Version(m.group(1))
|
||||||
|
|
||||||
self.releases = [r for r in releases if "graalpy_version" in r and "python_version" in r]
|
self.releases = [r for r in releases if "graalpy_version" in r and "python_version" in r]
|
||||||
@@ -172,12 +180,11 @@ class GraalPyVersions:
|
|||||||
ext = "zip" if "win" in identifier else "tar.gz"
|
ext = "zip" if "win" in identifier else "tar.gz"
|
||||||
for release in reversed(releases):
|
for release in reversed(releases):
|
||||||
version = release["python_version"]
|
version = release["python_version"]
|
||||||
gpversion = release["graalpy_version"]
|
|
||||||
urls = [
|
urls = [
|
||||||
rf["browser_download_url"]
|
rf["browser_download_url"]
|
||||||
for rf in release["assets"]
|
for rf in release["assets"]
|
||||||
if rf["name"].endswith(f"{platform}-{arch}.{ext}")
|
if rf["name"].endswith(f"{platform}-{arch}.{ext}")
|
||||||
and rf["name"].startswith(f"graalpy-{gpversion.major}")
|
and rf["name"].startswith(release["asset_prefix"])
|
||||||
]
|
]
|
||||||
if not urls:
|
if not urls:
|
||||||
continue
|
continue
|
||||||
|
|||||||
Reference in New Issue
Block a user