File tree 6 files changed +12
-5
lines changed
6 files changed +12
-5
lines changed Original file line number Diff line number Diff line change
1
+ Allow the new resolver to obtain dependency information through wheels
2
+ lazily downloaded using HTTP range requests. To enable this feature,
3
+ invoke ``pip`` with ``--use-feature=lazy-wheel``.
Original file line number Diff line number Diff line change @@ -916,7 +916,7 @@ def check_list_path_option(options):
916
916
metavar = 'feature' ,
917
917
action = 'append' ,
918
918
default = [],
919
- choices = ['2020-resolver' ],
919
+ choices = ['2020-resolver' , 'lazy-wheel' ],
920
920
help = 'Enable new functionality, that may be backward incompatible.' ,
921
921
) # type: Callable[..., Option]
922
922
Original file line number Diff line number Diff line change @@ -271,6 +271,7 @@ def make_resolver(
271
271
force_reinstall = force_reinstall ,
272
272
upgrade_strategy = upgrade_strategy ,
273
273
py_version_info = py_version_info ,
274
+ lazy_wheel = 'lazy-wheel' in options .features_enabled ,
274
275
)
275
276
import pip ._internal .resolution .legacy .resolver
276
277
return pip ._internal .resolution .legacy .resolver .Resolver (
Original file line number Diff line number Diff line change @@ -304,12 +304,11 @@ def __init__(
304
304
def iter_dependencies (self ):
305
305
# type: () -> Iterable[Optional[Requirement]]
306
306
dist = None # type: Optional[Distribution]
307
- preparer , req = self ._factory .preparer , self ._ireq
307
+ preparer , lazy_wheel = self ._factory .preparer , self ._factory . lazy_wheel
308
308
remote_wheel = self ._link .is_wheel and not self ._link .is_file
309
- # TODO: Opt-in as unstable feature.
310
- if remote_wheel and not preparer .require_hashes :
309
+ if lazy_wheel and remote_wheel and not preparer .require_hashes :
311
310
assert self ._name is not None
312
- logger .info ('Collecting %s' , req . req or req )
311
+ logger .info ('Collecting %s' , self . _ireq . req or self . _ireq )
313
312
# If RuntimeError is raised, fallback to self.dist.
314
313
with indent_log (), suppress (RuntimeError ):
315
314
logger .info (
Original file line number Diff line number Diff line change @@ -82,6 +82,7 @@ def __init__(
82
82
ignore_installed , # type: bool
83
83
ignore_requires_python , # type: bool
84
84
py_version_info = None , # type: Optional[Tuple[int, ...]]
85
+ lazy_wheel = False , # type: bool
85
86
):
86
87
# type: (...) -> None
87
88
self ._finder = finder
@@ -92,6 +93,7 @@ def __init__(
92
93
self ._use_user_site = use_user_site
93
94
self ._force_reinstall = force_reinstall
94
95
self ._ignore_requires_python = ignore_requires_python
96
+ self .lazy_wheel = lazy_wheel
95
97
96
98
self ._link_candidate_cache = {} # type: Cache[LinkCandidate]
97
99
self ._editable_candidate_cache = {} # type: Cache[EditableCandidate]
Original file line number Diff line number Diff line change @@ -49,6 +49,7 @@ def __init__(
49
49
force_reinstall , # type: bool
50
50
upgrade_strategy , # type: str
51
51
py_version_info = None , # type: Optional[Tuple[int, ...]]
52
+ lazy_wheel = False , # type: bool
52
53
):
53
54
super (Resolver , self ).__init__ ()
54
55
@@ -64,6 +65,7 @@ def __init__(
64
65
ignore_installed = ignore_installed ,
65
66
ignore_requires_python = ignore_requires_python ,
66
67
py_version_info = py_version_info ,
68
+ lazy_wheel = lazy_wheel ,
67
69
)
68
70
self .ignore_dependencies = ignore_dependencies
69
71
self .upgrade_strategy = upgrade_strategy
You can’t perform that action at this time.
0 commit comments