Drop Python 3.5
This commit is contained in:
@@ -7,8 +7,6 @@ from pathlib import Path
|
||||
from typing import Dict, List, NamedTuple, Optional, Sequence, Set
|
||||
from zipfile import ZipFile
|
||||
|
||||
import toml
|
||||
|
||||
from .architecture import Architecture
|
||||
from .environment import ParsedEnvironment
|
||||
from .logger import log
|
||||
@@ -219,34 +217,6 @@ def setup_python(
|
||||
return env
|
||||
|
||||
|
||||
def pep_518_cp35_workaround(package_dir: Path, env: Dict[str, str]) -> None:
|
||||
"""
|
||||
Python 3.5 PEP 518 hack (see https://github.com/pypa/pip/issues/8392#issuecomment-639563494)
|
||||
Basically, nuget's Python is an embedded Python distribution, which is not supported by pip.
|
||||
Before version 3.6, there was no way to disable the "embedded" behavior, including the ignoring
|
||||
of environment variables, including the ones pip uses to setup PEP 518 builds.
|
||||
|
||||
The fix here is as suggested in that issue; we manually setup the PEP 518 requirements. Since we
|
||||
are in a fresh environment (except for pinned cibuildweel dependencies), the build is already
|
||||
mostly "isolated".
|
||||
"""
|
||||
|
||||
pyproject_path = package_dir / "pyproject.toml"
|
||||
|
||||
if pyproject_path.exists():
|
||||
data = toml.load(pyproject_path)
|
||||
requirements = data["build-system"].get("requires", []) if "build-system" in data else []
|
||||
|
||||
if requirements:
|
||||
log.step("Performing PEP518 workaround...")
|
||||
with tempfile.TemporaryDirectory() as d:
|
||||
reqfile = Path(d) / "requirements.txt"
|
||||
with reqfile.open("w") as f:
|
||||
for r in requirements:
|
||||
print(r, file=f)
|
||||
call(["pip", "install", "-r", reqfile], env=env)
|
||||
|
||||
|
||||
def build(options: BuildOptions) -> None:
|
||||
temp_dir = Path(tempfile.mkdtemp(prefix="cibuildwheel"))
|
||||
built_wheel_dir = temp_dir / "built_wheel"
|
||||
@@ -286,11 +256,6 @@ def build(options: BuildOptions) -> None:
|
||||
)
|
||||
shell(before_build_prepared, env=env)
|
||||
|
||||
# activate the PEP 518 patch if on Windows Python 3.5
|
||||
# (will only have an effect if PEP 517 builds are used):
|
||||
if config.version.startswith("3.5"):
|
||||
pep_518_cp35_workaround(options.package_dir, env)
|
||||
|
||||
log.step("Building wheel...")
|
||||
if built_wheel_dir.exists():
|
||||
shutil.rmtree(built_wheel_dir)
|
||||
|
||||
Reference in New Issue
Block a user