|
Server : LiteSpeed System : Linux srv104790275 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64 User : dewac4139 ( 1077) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/lib/python3/dist-packages/virtualenv/seed/wheels/ |
Upload File : |
from __future__ import absolute_import, unicode_literals
from ..wheels.embed import get_embed_wheel
from .periodic_update import periodic_update
from .util import Version, Wheel, discover_wheels
def from_bundle(distribution, version, for_py_version, search_dirs, app_data, do_periodic_update, env):
"""
Load the bundled wheel to a cache directory.
"""
of_version = Version.of_version(version)
wheel = load_embed_wheel(app_data, distribution, for_py_version, of_version)
if version != Version.embed:
# 2. check if we have upgraded embed
if app_data.can_update:
wheel = periodic_update(
distribution, of_version, for_py_version, wheel, search_dirs, app_data, do_periodic_update, env
)
# 3. acquire from extra search dir
found_wheel = from_dir(distribution, of_version, for_py_version, search_dirs)
if found_wheel is not None:
if wheel is None:
wheel = found_wheel
elif found_wheel.version_tuple > wheel.version_tuple:
wheel = found_wheel
return wheel
def load_embed_wheel(app_data, distribution, for_py_version, version):
wheel = get_embed_wheel(distribution, for_py_version)
if wheel is not None:
version_match = version == wheel.version
if version is None or version_match:
with app_data.ensure_extracted(wheel.path, lambda: app_data.house) as wheel_path:
wheel = Wheel(wheel_path)
else: # if version does not match ignore
wheel = None
return wheel
def from_dir(distribution, version, for_py_version, directories):
"""
Load a compatible wheel from a given folder.
"""
for folder in directories:
for wheel in discover_wheels(folder, distribution, version, for_py_version):
return wheel
return None