|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
From a5a31b5d5c4969c8148fd44d45379140b1273f87 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
From: Lumir Balhar <lbalhar@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
Date: Tue, 19 Jan 2021 13:51:49 +0100
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
Subject: [PATCH] rpm wheels
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
---
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
src/virtualenv/run/__init__.py | 5 +++--
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
src/virtualenv/seed/embed/base_embed.py | 7 +++++-
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
src/virtualenv/seed/embed/pip_invoke.py | 1 +
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
.../seed/embed/via_app_data/via_app_data.py | 1 +
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
src/virtualenv/seed/wheels/embed/__init__.py | 3 +++
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
src/virtualenv/util/path/_system_wheels.py | 22 +++++++++++++++++++
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
6 files changed, 36 insertions(+), 3 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
create mode 100644 src/virtualenv/util/path/_system_wheels.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
diff --git a/src/virtualenv/run/__init__.py b/src/virtualenv/run/__init__.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
index e8e7ab1..617cf67 100644
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
--- a/src/virtualenv/run/__init__.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+++ b/src/virtualenv/run/__init__.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
@@ -89,8 +89,9 @@ def build_parser_only(args=None):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
def handle_extra_commands(options):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
if options.upgrade_embed_wheels:
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
- result = manual_upgrade(options.app_data, options.env)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
- raise SystemExit(result)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ # result = manual_upgrade(options.app_data, options.env)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ logging.warning("virtualenv installed from the RPM package uses wheels from RPM packages as well. Updating them via virtualenv is not possible. The RPM packaged wheels are updated together with other RPM packages of the system.")
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ raise SystemExit(1)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
def load_app_data(args, parser, options):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
diff --git a/src/virtualenv/seed/embed/base_embed.py b/src/virtualenv/seed/embed/base_embed.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
index c794e83..0867e9c 100644
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
--- a/src/virtualenv/seed/embed/base_embed.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+++ b/src/virtualenv/seed/embed/base_embed.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
@@ -6,11 +6,12 @@ from six import add_metaclass
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
from virtualenv.util.path import Path
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
from virtualenv.util.six import ensure_str, ensure_text
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+from virtualenv.util.path._system_wheels import get_system_wheels_paths
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
from ..seeder import Seeder
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
from ..wheels import Version
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
-PERIODIC_UPDATE_ON_BY_DEFAULT = True
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+PERIODIC_UPDATE_ON_BY_DEFAULT = False
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
@add_metaclass(ABCMeta)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
@@ -116,3 +117,7 @@ class BaseEmbed(Seeder):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
def __repr__(self):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
return ensure_str(self.__unicode__())
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ def insert_system_wheels_paths(self, creator):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ system_wheels_paths = get_system_wheels_paths(creator.interpreter.executable)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ self.extra_search_dir = list(system_wheels_paths) + self.extra_search_dir
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
diff --git a/src/virtualenv/seed/embed/pip_invoke.py b/src/virtualenv/seed/embed/pip_invoke.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
index c935c02..2d9d80d 100644
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
--- a/src/virtualenv/seed/embed/pip_invoke.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+++ b/src/virtualenv/seed/embed/pip_invoke.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
@@ -17,6 +17,7 @@ class PipInvoke(BaseEmbed):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
def run(self, creator):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
if not self.enabled:
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
return
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ self.insert_system_wheels_paths(creator)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
for_py_version = creator.interpreter.version_release_str
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
with self.get_pip_install_cmd(creator.exe, for_py_version) as cmd:
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
env = pip_wheel_env_run(self.extra_search_dir, self.app_data, self.env)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
diff --git a/src/virtualenv/seed/embed/via_app_data/via_app_data.py b/src/virtualenv/seed/embed/via_app_data/via_app_data.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
index 9a98a70..a0ecadf 100644
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
--- a/src/virtualenv/seed/embed/via_app_data/via_app_data.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+++ b/src/virtualenv/seed/embed/via_app_data/via_app_data.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
@@ -39,6 +39,7 @@ class FromAppData(BaseEmbed):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
def run(self, creator):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
if not self.enabled:
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
return
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ self.insert_system_wheels_paths(creator)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
with self._get_seed_wheels(creator) as name_to_whl:
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
pip_version = name_to_whl["pip"].version_tuple if "pip" in name_to_whl else None
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
installer_class = self.installer_class(pip_version)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
diff --git a/src/virtualenv/seed/wheels/embed/__init__.py b/src/virtualenv/seed/wheels/embed/__init__.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
index 672d67b..bdd8864 100644
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
--- a/src/virtualenv/seed/wheels/embed/__init__.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+++ b/src/virtualenv/seed/wheels/embed/__init__.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
@@ -48,8 +48,11 @@ BUNDLE_SUPPORT = {
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
}
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
MAX = "3.10"
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+# Redefined here because bundled wheels are removed in RPM build
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+BUNDLE_SUPPORT = None
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
def get_embed_wheel(distribution, for_py_version):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ return None # BUNDLE_SUPPORT == None anyway
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
path = BUNDLE_FOLDER / (BUNDLE_SUPPORT.get(for_py_version, {}) or BUNDLE_SUPPORT[MAX]).get(distribution)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
return Wheel.from_path(path)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
diff --git a/src/virtualenv/util/path/_system_wheels.py b/src/virtualenv/util/path/_system_wheels.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
new file mode 100644
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
index 0000000..a968dee
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
--- /dev/null
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+++ b/src/virtualenv/util/path/_system_wheels.py
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
@@ -0,0 +1,22 @@
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+from subprocess import check_output, CalledProcessError
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+from virtualenv.util.path import Path
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+def get_system_wheels_paths(executable):
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ # ensurepip wheels
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ # We need subprocess here to check ensurepip with the Python we are creating
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ # a new virtual environment for
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ try:
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ ensurepip_path = check_output((executable, "-u", "-c", 'import ensurepip; print(ensurepip.__path__[0])'), universal_newlines=True)
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ ensurepip_path = Path(ensurepip_path.strip()) / "_bundled"
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ except CalledProcessError:
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ pass
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ else:
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ if ensurepip_path.is_dir():
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ yield ensurepip_path
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ # Standard wheels path
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ wheels_dir = Path("/usr/share/python-wheels")
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ if wheels_dir.exists():
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
+ yield wheels_dir
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
--
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
2.29.2
|
|
![](https://seccdn.libravatar.org/avatar/27d986ce2ac90386c54ece8f298af68394ba0075c486ba984fb8cdabef9a5abe?s=16&d=retro) |
a53777 |
|