Merge remote-tracking branch 'origin/main' into fmtpass-alt

This commit is contained in:
Joe Rickerby
2021-11-14 13:39:59 +00:00
47 changed files with 453 additions and 301 deletions
+1 -1
View File
@@ -1 +1 @@
__version__ = "2.2.0b1"
__version__ = "2.2.2"
+5 -4
View File
@@ -57,14 +57,15 @@ def main() -> None:
parser.add_argument(
"--output-dir",
help="Destination folder for the wheels.",
help="Destination folder for the wheels. Default: wheelhouse.",
)
parser.add_argument(
"--config-file",
default="",
help="""
TOML config file for cibuildwheel. Defaults to pyproject.toml, but
can be overridden with this option.
TOML config file. Default: "", meaning {package}/pyproject.toml,
if it exists.
""",
)
@@ -162,7 +163,7 @@ def main() -> None:
os.environ["CIBUILDWHEEL"] = "1"
# Python is buffering by default when running on the CI platforms, giving problems interleaving subprocess call output with unflushed calls to 'print'
sys.stdout = Unbuffered(sys.stdout) # type: ignore[no-untyped-call,assignment]
sys.stdout = Unbuffered(sys.stdout) # type: ignore[assignment]
print_preamble(platform=platform, options=options, identifiers=identifiers)
+3 -4
View File
@@ -1,15 +1,14 @@
import subprocess
import sys
import textwrap
from collections import OrderedDict
from pathlib import Path, PurePath
from typing import Iterator, List, NamedTuple, Set
from typing import Iterator, List, NamedTuple, Set, Tuple
from .architecture import Architecture
from .docker_container import DockerContainer
from .logger import log
from .options import Options
from .typing import PathOrStr, assert_never
from .typing import OrderedDict, PathOrStr, assert_never
from .util import (
BuildSelector,
NonPlatformWheelError,
@@ -80,7 +79,7 @@ def get_build_steps(
Groups PythonConfigurations into BuildSteps. Each BuildStep represents a
separate Docker container.
"""
steps: OrderedDict[tuple, BuildStep] = OrderedDict() # type: ignore[type-arg]
steps = OrderedDict[Tuple[str, str, str], BuildStep]()
for config in python_configurations:
_, platform_tag = config.identifier.split("-", 1)
+3 -2
View File
@@ -42,7 +42,7 @@ class CommandLineArguments:
platform: Literal["auto", "linux", "macos", "windows"]
archs: Optional[str]
output_dir: Optional[str]
config_file: Optional[str]
config_file: str
package_dir: str
print_build_identifiers: bool
allow_empty: bool
@@ -335,8 +335,9 @@ class Options:
def config_file_path(self) -> Optional[Path]:
args = self.command_line_arguments
if args.config_file is not None:
if args.config_file:
return Path(args.config_file.format(package=args.package_dir))
# return pyproject.toml, if it's available
pyproject_toml_path = Path(args.package_dir) / "pyproject.toml"
if pyproject_toml_path.exists():
+15 -10
View File
@@ -11,6 +11,7 @@ python_configurations = [
{ identifier = "cp39-manylinux_i686", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-manylinux_i686", version = "3.10", path_str = "/opt/python/cp310-cp310" },
{ identifier = "pp37-manylinux_x86_64", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" },
{ identifier = "pp38-manylinux_x86_64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
{ identifier = "cp36-manylinux_aarch64", version = "3.6", path_str = "/opt/python/cp36-cp36m" },
{ identifier = "cp37-manylinux_aarch64", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
{ identifier = "cp38-manylinux_aarch64", version = "3.8", path_str = "/opt/python/cp38-cp38" },
@@ -27,7 +28,9 @@ python_configurations = [
{ identifier = "cp39-manylinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-manylinux_s390x", version = "3.10", path_str = "/opt/python/cp310-cp310" },
{ identifier = "pp37-manylinux_aarch64", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" },
{ identifier = "pp38-manylinux_aarch64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
{ identifier = "pp37-manylinux_i686", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" },
{ identifier = "pp38-manylinux_i686", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
{ identifier = "cp36-musllinux_x86_64", version = "3.6", path_str = "/opt/python/cp36-cp36m" },
{ identifier = "cp37-musllinux_x86_64", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
{ identifier = "cp38-musllinux_x86_64", version = "3.8", path_str = "/opt/python/cp38-cp38" },
@@ -62,13 +65,14 @@ python_configurations = [
{ identifier = "cp38-macosx_x86_64", version = "3.8", url = "https://www.python.org/ftp/python/3.8.10/python-3.8.10-macosx10.9.pkg" },
{ identifier = "cp38-macosx_arm64", version = "3.8", url = "https://www.python.org/ftp/python/3.8.10/python-3.8.10-macosx10.9.pkg" },
{ identifier = "cp38-macosx_universal2", version = "3.8", url = "https://www.python.org/ftp/python/3.8.10/python-3.8.10-macosx10.9.pkg" },
{ identifier = "cp39-macosx_x86_64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.7/python-3.9.7-macos11.pkg" },
{ identifier = "cp39-macosx_arm64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.7/python-3.9.7-macos11.pkg" },
{ identifier = "cp39-macosx_universal2", version = "3.9", url = "https://www.python.org/ftp/python/3.9.7/python-3.9.7-macos11.pkg" },
{ identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0-macos11.pkg" },
{ identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0-macos11.pkg" },
{ identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0-macos11.pkg" },
{ identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5-osx64.tar.bz2" },
{ identifier = "cp39-macosx_x86_64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.8/python-3.9.8-macos11.pkg" },
{ identifier = "cp39-macosx_arm64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.8/python-3.9.8-macos11.pkg" },
{ identifier = "cp39-macosx_universal2", version = "3.9", url = "https://www.python.org/ftp/python/3.9.8/python-3.9.8-macos11.pkg" },
{ identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0post2-macos11.pkg" },
{ identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0post2-macos11.pkg" },
{ identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0post2-macos11.pkg" },
{ identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.7-osx64.tar.bz2" },
{ identifier = "pp38-macosx_x86_64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.7-osx64.tar.bz2" },
]
[windows]
@@ -79,9 +83,10 @@ python_configurations = [
{ identifier = "cp37-win_amd64", version = "3.7.9", arch = "64" },
{ identifier = "cp38-win32", version = "3.8.10", arch = "32" },
{ identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" },
{ identifier = "cp39-win32", version = "3.9.7", arch = "32" },
{ identifier = "cp39-win_amd64", version = "3.9.7", arch = "64" },
{ identifier = "cp39-win32", version = "3.9.8", arch = "32" },
{ identifier = "cp39-win_amd64", version = "3.9.8", arch = "64" },
{ identifier = "cp310-win32", version = "3.10.0", arch = "32" },
{ identifier = "cp310-win_amd64", version = "3.10.0", arch = "64" },
{ identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5-win64.zip" },
{ identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.7-win64.zip" },
{ identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.7-win64.zip" },
]
@@ -4,19 +4,19 @@
#
# bin/update_dependencies.py
#
backports.entry-points-selectable==1.1.0
backports.entry-points-selectable==1.1.1
# via virtualenv
delocate==0.10.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.3
# via virtualenv
filelock==3.3.0
filelock==3.3.2
# via virtualenv
importlib-metadata==4.8.1
importlib-metadata==4.8.2
# via
# backports.entry-points-selectable
# virtualenv
importlib-resources==5.2.2
importlib-resources==5.4.0
# via virtualenv
platformdirs==2.4.0
# via virtualenv
@@ -26,7 +26,7 @@ typing-extensions==3.10.0.2
# via
# delocate
# importlib-metadata
virtualenv==20.8.1
virtualenv==20.10.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.0
# via
@@ -38,7 +38,7 @@ zipp==3.6.0
# importlib-resources
# The following packages are considered to be unsafe in a requirements file:
pip==21.2.4
pip==21.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==58.2.0
setuptools==58.5.3
# via -r cibuildwheel/resources/constraints.in
@@ -4,15 +4,15 @@
#
# bin/update_dependencies.py
#
backports.entry-points-selectable==1.1.0
backports.entry-points-selectable==1.1.1
# via virtualenv
delocate==0.10.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.3
# via virtualenv
filelock==3.3.0
filelock==3.3.2
# via virtualenv
importlib-metadata==4.8.1
importlib-metadata==4.8.2
# via
# backports.entry-points-selectable
# virtualenv
@@ -24,7 +24,7 @@ typing-extensions==3.10.0.2
# via
# delocate
# importlib-metadata
virtualenv==20.8.1
virtualenv==20.10.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.0
# via
@@ -34,7 +34,7 @@ zipp==3.6.0
# via importlib-metadata
# The following packages are considered to be unsafe in a requirements file:
pip==21.2.4
pip==21.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==58.2.0
setuptools==58.5.3
# via -r cibuildwheel/resources/constraints.in
@@ -4,13 +4,13 @@
#
# bin/update_dependencies.py
#
backports.entry-points-selectable==1.1.0
backports.entry-points-selectable==1.1.1
# via virtualenv
delocate==0.10.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.3
# via virtualenv
filelock==3.3.0
filelock==3.3.2
# via virtualenv
platformdirs==2.4.0
# via virtualenv
@@ -18,7 +18,7 @@ six==1.16.0
# via virtualenv
typing-extensions==3.10.0.2
# via delocate
virtualenv==20.8.1
virtualenv==20.10.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.0
# via
@@ -26,7 +26,7 @@ wheel==0.37.0
# delocate
# The following packages are considered to be unsafe in a requirements file:
pip==21.2.4
pip==21.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==58.2.0
setuptools==58.5.3
# via -r cibuildwheel/resources/constraints.in
@@ -4,13 +4,13 @@
#
# bin/update_dependencies.py
#
backports.entry-points-selectable==1.1.0
backports.entry-points-selectable==1.1.1
# via virtualenv
delocate==0.10.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.3
# via virtualenv
filelock==3.3.0
filelock==3.3.2
# via virtualenv
platformdirs==2.4.0
# via virtualenv
@@ -18,7 +18,7 @@ six==1.16.0
# via virtualenv
typing-extensions==3.10.0.2
# via delocate
virtualenv==20.8.1
virtualenv==20.10.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.0
# via
@@ -26,7 +26,7 @@ wheel==0.37.0
# delocate
# The following packages are considered to be unsafe in a requirements file:
pip==21.2.4
pip==21.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==58.2.0
setuptools==58.5.3
# via -r cibuildwheel/resources/constraints.in
+5 -5
View File
@@ -4,13 +4,13 @@
#
# bin/update_dependencies.py
#
backports.entry-points-selectable==1.1.0
backports.entry-points-selectable==1.1.1
# via virtualenv
delocate==0.10.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.3
# via virtualenv
filelock==3.3.0
filelock==3.3.2
# via virtualenv
platformdirs==2.4.0
# via virtualenv
@@ -18,7 +18,7 @@ six==1.16.0
# via virtualenv
typing-extensions==3.10.0.2
# via delocate
virtualenv==20.8.1
virtualenv==20.10.0
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.0
# via
@@ -26,7 +26,7 @@ wheel==0.37.0
# delocate
# The following packages are considered to be unsafe in a requirements file:
pip==21.2.4
pip==21.3.1
# via -r cibuildwheel/resources/constraints.in
setuptools==58.2.0
setuptools==58.5.3
# via -r cibuildwheel/resources/constraints.in
+27 -27
View File
@@ -1,43 +1,43 @@
[x86_64]
manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-10-10-fee0ae1
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-10-10-790306f
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-10-10-790306f
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-10-10-790306f
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2021-10-10-790306f
manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-11-07-f38ff36
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-11-07-28723f3
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-11-07-28723f3
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-11-07-28723f3
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2021-11-07-28723f3
[i686]
manylinux1 = quay.io/pypa/manylinux1_i686:2021-10-10-fee0ae1
manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-10-10-790306f
manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-10-10-790306f
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-10-10-790306f
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2021-10-10-790306f
manylinux1 = quay.io/pypa/manylinux1_i686:2021-11-07-f38ff36
manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-11-07-28723f3
manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-11-07-28723f3
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-11-07-28723f3
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2021-11-07-28723f3
[pypy_x86_64]
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-10-10-790306f
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-10-10-790306f
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-10-10-790306f
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-11-07-28723f3
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-11-07-28723f3
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-11-07-28723f3
[pypy_i686]
manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-10-10-790306f
manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-10-10-790306f
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-10-10-790306f
manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-11-07-28723f3
manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-11-07-28723f3
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-11-07-28723f3
[aarch64]
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-10-10-790306f
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-10-10-790306f
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2021-10-10-790306f
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-11-07-28723f3
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-11-07-28723f3
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2021-11-07-28723f3
[ppc64le]
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-10-10-790306f
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-10-10-790306f
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2021-10-10-790306f
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-11-07-28723f3
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-11-07-28723f3
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2021-11-07-28723f3
[s390x]
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-10-10-790306f
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-10-10-790306f
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2021-10-10-790306f
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-11-07-28723f3
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-11-07-28723f3
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2021-11-07-28723f3
[pypy_aarch64]
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-10-10-790306f
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-10-10-790306f
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-11-07-28723f3
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-11-07-28723f3
+8 -8
View File
@@ -12,7 +12,7 @@ import urllib.request
from enum import Enum
from pathlib import Path
from time import sleep
from typing import Any, Dict, Iterator, List, Optional
from typing import Any, Dict, Iterable, Iterator, List, Optional, TextIO
import bracex
import certifi
@@ -126,9 +126,9 @@ def selector_matches(patterns: str, string: str) -> bool:
expansion. For example, 'cp{36,37}-*' would match either of 'cp36-*' or
'cp37-*'.
"""
patterns_list: List[str] = patterns.split()
patterns_list = itertools.chain.from_iterable(bracex.expand(p) for p in patterns_list) # type: ignore[assignment]
return any(fnmatch.fnmatch(string, pat) for pat in patterns_list)
patterns_list = patterns.split()
expanded_patterns = itertools.chain.from_iterable(bracex.expand(p) for p in patterns_list)
return any(fnmatch.fnmatch(string, pat) for pat in expanded_patterns)
class IdentifierSelector:
@@ -203,18 +203,18 @@ class TestSelector(IdentifierSelector):
# Taken from https://stackoverflow.com/a/107717
class Unbuffered:
def __init__(self, stream): # type: ignore[no-untyped-def]
def __init__(self, stream: TextIO) -> None:
self.stream = stream
def write(self, data): # type: ignore[no-untyped-def]
def write(self, data: str) -> None:
self.stream.write(data)
self.stream.flush()
def writelines(self, data): # type: ignore[no-untyped-def]
def writelines(self, data: Iterable[str]) -> None:
self.stream.writelines(data)
self.stream.flush()
def __getattr__(self, attr): # type: ignore[no-untyped-def]
def __getattr__(self, attr: str) -> Any:
return getattr(self.stream, attr)
-1
View File
@@ -112,7 +112,6 @@ def install_pypy(version: str, arch: str, url: str) -> Path:
download(url, pypy_zip)
# Extract to the parent directory because the zip file still contains a directory
extract_zip(pypy_zip, installation_path.parent)
(installation_path / "python.exe").symlink_to(installation_path / "pypy3.exe")
return installation_path