File tree 5 files changed +9
-5
lines changed
5 files changed +9
-5
lines changed 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 @@ -273,6 +273,7 @@ def make_resolver(
273
273
force_reinstall = force_reinstall ,
274
274
upgrade_strategy = upgrade_strategy ,
275
275
py_version_info = py_version_info ,
276
+ lazy_wheel = 'lazy-wheel' in options .features_enabled ,
276
277
)
277
278
import pip ._internal .resolution .legacy .resolver
278
279
return pip ._internal .resolution .legacy .resolver .Resolver (
Original file line number Diff line number Diff line change @@ -302,12 +302,11 @@ def __init__(
302
302
def iter_dependencies (self ):
303
303
# type: () -> Iterable[Optional[Requirement]]
304
304
dist = None # type: Optional[Distribution]
305
- preparer , req = self ._factory .preparer , self ._ireq
305
+ preparer , lazy_wheel = self ._factory .preparer , self ._factory . lazy_wheel
306
306
remote_wheel = self ._link .is_wheel and not self ._link .is_file
307
- # TODO: Opt-in as unstable feature.
308
- if remote_wheel and not preparer .require_hashes :
307
+ if lazy_wheel and remote_wheel and not preparer .require_hashes :
309
308
assert self ._name is not None
310
- logger .info ('Collecting %s' , req . req or req )
309
+ logger .info ('Collecting %s' , self . _ireq . req or self . _ireq )
311
310
# If RuntimeError is raised, fallback to self.dist.
312
311
with indent_log (), suppress (RuntimeError ):
313
312
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
@@ -93,6 +94,7 @@ def __init__(
93
94
self ._use_user_site = use_user_site
94
95
self ._force_reinstall = force_reinstall
95
96
self ._ignore_requires_python = ignore_requires_python
97
+ self .lazy_wheel = lazy_wheel
96
98
97
99
self ._link_candidate_cache = {} # type: Cache[LinkCandidate]
98
100
self ._editable_candidate_cache = {} # type: Cache[EditableCandidate]
Original file line number Diff line number Diff line change @@ -48,6 +48,7 @@ def __init__(
48
48
force_reinstall , # type: bool
49
49
upgrade_strategy , # type: str
50
50
py_version_info = None , # type: Optional[Tuple[int, ...]]
51
+ lazy_wheel = False , # type: bool
51
52
):
52
53
super (Resolver , self ).__init__ ()
53
54
@@ -63,6 +64,7 @@ def __init__(
63
64
ignore_installed = ignore_installed ,
64
65
ignore_requires_python = ignore_requires_python ,
65
66
py_version_info = py_version_info ,
67
+ lazy_wheel = lazy_wheel ,
66
68
)
67
69
self .ignore_dependencies = ignore_dependencies
68
70
self .upgrade_strategy = upgrade_strategy
You can’t perform that action at this time.
0 commit comments