Mercurial > repos > guerler > springsuite
comparison planemo/lib/python3.7/site-packages/virtualenv/seed/wheels/bundle.py @ 1:56ad4e20f292 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author | guerler |
---|---|
date | Fri, 31 Jul 2020 00:32:28 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:d30785e31577 | 1:56ad4e20f292 |
---|---|
1 from __future__ import absolute_import, unicode_literals | |
2 | |
3 from virtualenv.app_data import AppDataDiskFolder, TempAppData | |
4 | |
5 from ..wheels.embed import get_embed_wheel | |
6 from .periodic_update import periodic_update | |
7 from .util import Version, Wheel, discover_wheels | |
8 | |
9 | |
10 def from_bundle(distribution, version, for_py_version, search_dirs, app_data, do_periodic_update): | |
11 """ | |
12 Load the bundled wheel to a cache directory. | |
13 """ | |
14 of_version = Version.of_version(version) | |
15 wheel = load_embed_wheel(app_data, distribution, for_py_version, of_version) | |
16 | |
17 if version != Version.embed: | |
18 # 2. check if we have upgraded embed | |
19 if isinstance(app_data, AppDataDiskFolder) and not isinstance(app_data, TempAppData): | |
20 wheel = periodic_update(distribution, for_py_version, wheel, search_dirs, app_data, do_periodic_update) | |
21 | |
22 # 3. acquire from extra search dir | |
23 found_wheel = from_dir(distribution, of_version, for_py_version, search_dirs) | |
24 if found_wheel is not None: | |
25 if wheel is None: | |
26 wheel = found_wheel | |
27 elif found_wheel.version_tuple > wheel.version_tuple: | |
28 wheel = found_wheel | |
29 return wheel | |
30 | |
31 | |
32 def load_embed_wheel(app_data, distribution, for_py_version, version): | |
33 wheel = get_embed_wheel(distribution, for_py_version) | |
34 if wheel is not None: | |
35 version_match = version == wheel.version | |
36 if version is None or version_match: | |
37 with app_data.ensure_extracted(wheel.path, lambda: app_data.house) as wheel_path: | |
38 wheel = Wheel(wheel_path) | |
39 else: # if version does not match ignore | |
40 wheel = None | |
41 return wheel | |
42 | |
43 | |
44 def from_dir(distribution, version, for_py_version, directories): | |
45 """ | |
46 Load a compatible wheel from a given folder. | |
47 """ | |
48 for folder in directories: | |
49 for wheel in discover_wheels(folder, distribution, version, for_py_version): | |
50 return wheel | |
51 return None |