diff options
Diffstat (limited to 'PC/layout/support/pip.py')
-rw-r--r-- | PC/layout/support/pip.py | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/PC/layout/support/pip.py b/PC/layout/support/pip.py deleted file mode 100644 index c54acb2..0000000 --- a/PC/layout/support/pip.py +++ /dev/null @@ -1,94 +0,0 @@ -""" -Extraction and file list generation for pip. -""" - -__author__ = "Steve Dower <steve.dower@python.org>" -__version__ = "3.8" - - -import os -import shutil -import subprocess -import sys - -from .filesets import * - -__all__ = ["extract_pip_files", "get_pip_layout"] - - -def get_pip_dir(ns): - if ns.copy: - if ns.zip_lib: - return ns.copy / "packages" - return ns.copy / "Lib" / "site-packages" - else: - return ns.temp / "packages" - - -def get_pip_layout(ns): - pip_dir = get_pip_dir(ns) - if not pip_dir.is_dir(): - log_warning("Failed to find {} - pip will not be included", pip_dir) - else: - pkg_root = "packages/{}" if ns.zip_lib else "Lib/site-packages/{}" - for dest, src in rglob(pip_dir, "**/*"): - yield pkg_root.format(dest), src - if ns.include_pip_user: - content = "\n".join( - "[{}]\nuser=yes".format(n) - for n in ["install", "uninstall", "freeze", "list"] - ) - yield "pip.ini", ("pip.ini", content.encode()) - - -def extract_pip_files(ns): - dest = get_pip_dir(ns) - try: - dest.mkdir(parents=True, exist_ok=False) - except IOError: - return - - src = ns.source / "Lib" / "ensurepip" / "_bundled" - - ns.temp.mkdir(parents=True, exist_ok=True) - wheels = [shutil.copy(whl, ns.temp) for whl in src.glob("*.whl")] - search_path = os.pathsep.join(wheels) - if os.environ.get("PYTHONPATH"): - search_path += ";" + os.environ["PYTHONPATH"] - - env = os.environ.copy() - env["PYTHONPATH"] = search_path - - output = subprocess.check_output( - [ - sys.executable, - "-m", - "pip", - "--no-color", - "install", - "pip", - "setuptools", - "--upgrade", - "--target", - str(dest), - "--no-index", - "--no-compile", - "--no-cache-dir", - "-f", - str(src), - "--only-binary", - ":all:", - ], - env=env, - ) - - try: - shutil.rmtree(dest / "bin") - except OSError: - pass - - for file in wheels: - try: - os.remove(file) - except OSError: - pass |