From: wim glenn Date: Mon, 7 Jun 2021 02:14:47 +0000 (-0500) Subject: bpo-37449: ensurepip uses importlib.resources.files() traversable APIs (#22659) X-Git-Tag: v3.11.0a1~928 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=afb2eed72b32a35b4726ff35f92e4fbf54926046;p=thirdparty%2FPython%2Fcpython.git bpo-37449: ensurepip uses importlib.resources.files() traversable APIs (#22659) * `ensurepip` now uses `importlib.resources.files()` traversable APIs * Update Lib/ensurepip/__init__.py Co-authored-by: Jason R. Coombs * Update Misc/NEWS.d/next/Library/2020-10-11-20-23-48.bpo-37449.f-t3V6.rst Co-authored-by: Jason R. Coombs Co-authored-by: Jason R. Coombs --- diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index 4c606b9f2a89..834fc6bdc64b 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -8,7 +8,6 @@ import tempfile from importlib import resources - __all__ = ["version", "bootstrap"] _PACKAGE_NAMES = ('setuptools', 'pip') _SETUPTOOLS_VERSION = "56.0.0" @@ -79,8 +78,8 @@ _PACKAGES = None def _run_pip(args, additional_paths=None): - # Run the bootstraping in a subprocess to avoid leaking any state that happens - # after pip has executed. Particulary, this avoids the case when pip holds onto + # Run the bootstrapping in a subprocess to avoid leaking any state that happens + # after pip has executed. Particularly, this avoids the case when pip holds onto # the files in *additional_paths*, preventing us to remove them at the end of the # invocation. code = f""" @@ -164,9 +163,9 @@ def _bootstrap(*, root=None, upgrade=False, user=False, for name, package in _get_packages().items(): if package.wheel_name: # Use bundled wheel package - from ensurepip import _bundled wheel_name = package.wheel_name - whl = resources.read_binary(_bundled, wheel_name) + wheel_path = resources.files("ensurepip") / "_bundled" / wheel_name + whl = wheel_path.read_bytes() else: # Use the wheel package directory with open(package.wheel_path, "rb") as fp: diff --git a/Lib/ensurepip/_bundled/__init__.py b/Lib/ensurepip/_bundled/__init__.py deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/Misc/NEWS.d/next/Library/2020-10-11-20-23-48.bpo-37449.f-t3V6.rst b/Misc/NEWS.d/next/Library/2020-10-11-20-23-48.bpo-37449.f-t3V6.rst new file mode 100644 index 000000000000..2202ae0a9ac9 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-10-11-20-23-48.bpo-37449.f-t3V6.rst @@ -0,0 +1 @@ +``ensurepip`` now uses ``importlib.resources.files()`` traversable APIs