From e338b6e71b31fdebc0961e4ac1ad63c6e6fdfb36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 15 Aug 2018 15:36:29 +0200 Subject: [PATCH] 00189: Instead of bundled wheels, use our RPM packaged wheels We keep them in /usr/share/python-wheels --- Lib/ensurepip/__init__.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index 386ed6c25c..19e7c8787e 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -1,19 +1,29 @@ +import distutils.version +import glob import os import os.path import sys import tempfile from importlib import resources -from . import _bundled - __all__ = ["version", "bootstrap"] +_WHEEL_DIR = "/usr/share/python-wheels/" + + +def _get_most_recent_wheel_version(pkg): + prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg)) + suffix = "-py2.py3-none-any.whl" + pattern = "{}*{}".format(prefix, suffix) + versions = (p[len(prefix):-len(suffix)] for p in glob.glob(pattern)) + return str(max(versions, key=distutils.version.LooseVersion)) + -_SETUPTOOLS_VERSION = "41.2.0" +_SETUPTOOLS_VERSION = _get_most_recent_wheel_version("setuptools") -_PIP_VERSION = "19.2.3" +_PIP_VERSION = _get_most_recent_wheel_version("pip") _PROJECTS = [ ("setuptools", _SETUPTOOLS_VERSION), @@ -99,12 +109,9 @@ def _bootstrap(*, root=None, upgrade=False, user=False, additional_paths = [] for project, version in _PROJECTS: wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version) - whl = resources.read_binary( - _bundled, - wheel_name, - ) - with open(os.path.join(tmpdir, wheel_name), "wb") as fp: - fp.write(whl) + with open(os.path.join(_WHEEL_DIR, wheel_name), "rb") as sfp: + with open(os.path.join(tmpdir, wheel_name), "wb") as fp: + fp.write(sfp.read()) additional_paths.append(os.path.join(tmpdir, wheel_name)) -- 2.24.1