ci: fix auto-update by blocking PyPy 7.3.4 (#660)

This commit is contained in:
Henry Schreiner
2021-05-08 00:41:42 -04:00
committed by GitHub
parent daf850a7fc
commit 32b25ebb5f
+18 -9
View File
@@ -6,7 +6,7 @@ import copy
import difflib import difflib
import logging import logging
from pathlib import Path from pathlib import Path
from typing import Union from typing import Any, Union
import click import click
import requests import requests
@@ -114,30 +114,39 @@ class PyPyVersions:
self.releases = [ self.releases = [
r r
for r in releases for r in releases
if not r["pypy_version"].is_prerelease and not r["pypy_version"].is_devrelease if not r["pypy_version"].is_prerelease
and not r["pypy_version"].is_devrelease
and not r["pypy_version"] == Version("7.3.4")
] ]
self.arch = arch_str self.arch = arch_str
def update_version_windows(self, spec: Specifier) -> ConfigWinCP: def get_arch_file(self, release: dict[str, Any]) -> str:
if self.arch != "32": urls = [
raise RuntimeError("64 bit releases not supported yet on Windows") rf["download_url"]
for rf in release["files"]
if "" in rf["platform"] == f"win{self.arch}"
]
return urls[0] if urls else ""
def update_version_windows(self, spec: Specifier) -> ConfigWinCP:
releases = [r for r in self.releases if spec.contains(r["python_version"])] releases = [r for r in self.releases if spec.contains(r["python_version"])]
releases = sorted(releases, key=lambda r: r["pypy_version"]) releases = sorted(releases, key=lambda r: r["pypy_version"])
releases = [r for r in releases if self.get_arch_file(r)]
if not releases: if not releases:
raise RuntimeError(f"PyPy Win {self.arch} not found for {spec}! {self.releases}") raise RuntimeError(f"PyPy Win {self.arch} not found for {spec}! {self.releases}")
version_arch = "win32" if self.arch == "32" else "win_amd64"
release = releases[-1] release = releases[-1]
version = release["python_version"] version = release["python_version"]
identifier = f"pp{version.major}{version.minor}-win32" identifier = f"pp{version.major}{version.minor}-{version_arch}"
url = self.get_arch_file(release)
(url,) = [rf["download_url"] for rf in release["files"] if "" in rf["platform"] == "win32"]
return ConfigWinPP( return ConfigWinPP(
identifier=identifier, identifier=identifier,
version=f"{version.major}.{version.minor}", version=f"{version.major}.{version.minor}",
arch="32", arch=self.arch,
url=url, url=url,
) )