[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
This commit is contained in:
pre-commit-ci[bot] 2024-04-13 00:00:18 +00:00
parent 72ad6dc953
commit f4cd1ba0d6
813 changed files with 66015 additions and 58839 deletions

View file

@ -1,5 +1,6 @@
"""Build Environment used for isolation during sdist building
"""
from __future__ import annotations
import contextlib
import logging
@ -11,18 +12,27 @@ import zipfile
from collections import OrderedDict
from sysconfig import get_paths
from types import TracebackType
from typing import TYPE_CHECKING, Iterable, Iterator, List, Optional, Set, Tuple, Type
from pip._vendor.certifi import where
from pip._vendor.packaging.requirements import Requirement
from pip._vendor.packaging.version import Version
from typing import Iterable
from typing import Iterator
from typing import List
from typing import Optional
from typing import Set
from typing import Tuple
from typing import Type
from typing import TYPE_CHECKING
from pip import __file__ as pip_location
from pip._internal.cli.spinners import open_spinner
from pip._internal.locations import get_platlib, get_prefixed_libs, get_purelib
from pip._internal.locations import get_platlib
from pip._internal.locations import get_prefixed_libs
from pip._internal.locations import get_purelib
from pip._internal.metadata import get_environment
from pip._internal.utils.subprocess import call_subprocess
from pip._internal.utils.temp_dir import TempDirectory, tempdir_kinds
from pip._internal.utils.temp_dir import tempdir_kinds
from pip._internal.utils.temp_dir import TempDirectory
from pip._vendor.certifi import where
from pip._vendor.packaging.requirements import Requirement
from pip._vendor.packaging.version import Version
if TYPE_CHECKING:
from pip._internal.index.package_finder import PackageFinder
@ -35,9 +45,9 @@ class _Prefix:
self.path = path
self.setup = False
self.bin_dir = get_paths(
"nt" if os.name == "nt" else "posix_prefix",
vars={"base": path, "platbase": path},
)["scripts"]
'nt' if os.name == 'nt' else 'posix_prefix',
vars={'base': path, 'platbase': path},
)['scripts']
self.lib_dirs = get_prefixed_libs(path)
@ -56,15 +66,14 @@ def _create_standalone_pip() -> Iterator[str]:
yield str(source)
return
with TempDirectory(kind="standalone-pip") as tmp_dir:
pip_zip = os.path.join(tmp_dir.path, "__env_pip__.zip")
with TempDirectory(kind='standalone-pip') as tmp_dir:
pip_zip = os.path.join(tmp_dir.path, '__env_pip__.zip')
kwargs = {}
if sys.version_info >= (3, 8):
kwargs["strict_timestamps"] = False
with zipfile.ZipFile(pip_zip, "w", **kwargs) as zf:
for child in source.rglob("*"):
kwargs['strict_timestamps'] = False
with zipfile.ZipFile(pip_zip, 'w', **kwargs) as zf:
for child in source.rglob('*'):
zf.write(child, child.relative_to(source.parent).as_posix())
yield os.path.join(pip_zip, "pip")
yield os.path.join(pip_zip, 'pip')
class BuildEnvironment:
@ -75,11 +84,11 @@ class BuildEnvironment:
self._prefixes = OrderedDict(
(name, _Prefix(os.path.join(temp_dir.path, name)))
for name in ("normal", "overlay")
for name in ('normal', 'overlay')
)
self._bin_dirs: List[str] = []
self._lib_dirs: List[str] = []
self._bin_dirs: list[str] = []
self._lib_dirs: list[str] = []
for prefix in reversed(list(self._prefixes.values())):
self._bin_dirs.append(prefix.bin_dir)
self._lib_dirs.extend(prefix.lib_dirs)
@ -90,11 +99,11 @@ class BuildEnvironment:
system_sites = {
os.path.normcase(site) for site in (get_purelib(), get_platlib())
}
self._site_dir = os.path.join(temp_dir.path, "site")
self._site_dir = os.path.join(temp_dir.path, 'site')
if not os.path.exists(self._site_dir):
os.mkdir(self._site_dir)
with open(
os.path.join(self._site_dir, "sitecustomize.py"), "w", encoding="utf-8"
os.path.join(self._site_dir, 'sitecustomize.py'), 'w', encoding='utf-8',
) as fp:
fp.write(
textwrap.dedent(
@ -121,18 +130,18 @@ class BuildEnvironment:
for path in {lib_dirs!r}:
assert not path in sys.path
site.addsitedir(path)
"""
).format(system_sites=system_sites, lib_dirs=self._lib_dirs)
""",
).format(system_sites=system_sites, lib_dirs=self._lib_dirs),
)
def __enter__(self) -> None:
self._save_env = {
name: os.environ.get(name, None)
for name in ("PATH", "PYTHONNOUSERSITE", "PYTHONPATH")
for name in ('PATH', 'PYTHONNOUSERSITE', 'PYTHONPATH')
}
path = self._bin_dirs[:]
old_path = self._save_env["PATH"]
old_path = self._save_env['PATH']
if old_path:
path.extend(old_path.split(os.pathsep))
@ -140,17 +149,17 @@ class BuildEnvironment:
os.environ.update(
{
"PATH": os.pathsep.join(path),
"PYTHONNOUSERSITE": "1",
"PYTHONPATH": os.pathsep.join(pythonpath),
}
'PATH': os.pathsep.join(path),
'PYTHONNOUSERSITE': '1',
'PYTHONPATH': os.pathsep.join(pythonpath),
},
)
def __exit__(
self,
exc_type: Optional[Type[BaseException]],
exc_val: Optional[BaseException],
exc_tb: Optional[TracebackType],
exc_type: type[BaseException] | None,
exc_val: BaseException | None,
exc_tb: TracebackType | None,
) -> None:
for varname, old_value in self._save_env.items():
if old_value is None:
@ -159,8 +168,8 @@ class BuildEnvironment:
os.environ[varname] = old_value
def check_requirements(
self, reqs: Iterable[str]
) -> Tuple[Set[Tuple[str, str]], Set[str]]:
self, reqs: Iterable[str],
) -> tuple[set[tuple[str, str]], set[str]]:
"""Return 2 sets:
- conflicting requirements: set of (installed, wanted) reqs tuples
- missing requirements: set of reqs
@ -176,9 +185,9 @@ class BuildEnvironment:
missing.add(req_str)
continue
if isinstance(dist.version, Version):
installed_req_str = f"{req.name}=={dist.version}"
installed_req_str = f'{req.name}=={dist.version}'
else:
installed_req_str = f"{req.name}==={dist.version}"
installed_req_str = f'{req.name}==={dist.version}'
if dist.version not in req.specifier:
conflicting.add((installed_req_str, req_str))
# FIXME: Consider direct URL?
@ -186,7 +195,7 @@ class BuildEnvironment:
def install_requirements(
self,
finder: "PackageFinder",
finder: PackageFinder,
requirements: Iterable[str],
prefix_as_string: str,
*,
@ -210,56 +219,56 @@ class BuildEnvironment:
@staticmethod
def _install_requirements(
pip_runnable: str,
finder: "PackageFinder",
finder: PackageFinder,
requirements: Iterable[str],
prefix: _Prefix,
*,
kind: str,
) -> None:
args: List[str] = [
args: list[str] = [
sys.executable,
pip_runnable,
"install",
"--ignore-installed",
"--no-user",
"--prefix",
'install',
'--ignore-installed',
'--no-user',
'--prefix',
prefix.path,
"--no-warn-script-location",
'--no-warn-script-location',
]
if logger.getEffectiveLevel() <= logging.DEBUG:
args.append("-v")
for format_control in ("no_binary", "only_binary"):
args.append('-v')
for format_control in ('no_binary', 'only_binary'):
formats = getattr(finder.format_control, format_control)
args.extend(
(
"--" + format_control.replace("_", "-"),
",".join(sorted(formats or {":none:"})),
)
'--' + format_control.replace('_', '-'),
','.join(sorted(formats or {':none:'})),
),
)
index_urls = finder.index_urls
if index_urls:
args.extend(["-i", index_urls[0]])
args.extend(['-i', index_urls[0]])
for extra_index in index_urls[1:]:
args.extend(["--extra-index-url", extra_index])
args.extend(['--extra-index-url', extra_index])
else:
args.append("--no-index")
args.append('--no-index')
for link in finder.find_links:
args.extend(["--find-links", link])
args.extend(['--find-links', link])
for host in finder.trusted_hosts:
args.extend(["--trusted-host", host])
args.extend(['--trusted-host', host])
if finder.allow_all_prereleases:
args.append("--pre")
args.append('--pre')
if finder.prefer_binary:
args.append("--prefer-binary")
args.append("--")
args.append('--prefer-binary')
args.append('--')
args.extend(requirements)
extra_environ = {"_PIP_STANDALONE_CERT": where()}
with open_spinner(f"Installing {kind}") as spinner:
extra_environ = {'_PIP_STANDALONE_CERT': where()}
with open_spinner(f'Installing {kind}') as spinner:
call_subprocess(
args,
command_desc=f"pip subprocess to install {kind}",
command_desc=f'pip subprocess to install {kind}',
spinner=spinner,
extra_environ=extra_environ,
)
@ -276,9 +285,9 @@ class NoOpBuildEnvironment(BuildEnvironment):
def __exit__(
self,
exc_type: Optional[Type[BaseException]],
exc_val: Optional[BaseException],
exc_tb: Optional[TracebackType],
exc_type: type[BaseException] | None,
exc_val: BaseException | None,
exc_tb: TracebackType | None,
) -> None:
pass
@ -287,7 +296,7 @@ class NoOpBuildEnvironment(BuildEnvironment):
def install_requirements(
self,
finder: "PackageFinder",
finder: PackageFinder,
requirements: Iterable[str],
prefix_as_string: str,
*,