File tree 2 files changed +11
-1
lines changed
2 files changed +11
-1
lines changed Original file line number Diff line number Diff line change
1
+ Only attempt to fetch eggs for unsatisfied requirements.
Original file line number Diff line number Diff line change 1
1
from __future__ import annotations
2
2
3
3
import glob
4
+ import itertools
4
5
import os
5
6
import subprocess
6
7
import sys
@@ -35,12 +36,20 @@ def fetch_build_egg(dist, req):
35
36
return _fetch_build_egg_no_warn (dist , req )
36
37
37
38
39
+ def _present (req ):
40
+ return any (_dist_matches_req (dist , req ) for dist in metadata .distributions ())
41
+
42
+
38
43
def _fetch_build_eggs (dist , requires : _reqs ._StrOrIter ) -> list [metadata .Distribution ]:
39
44
_DeprecatedInstaller .emit (stacklevel = 3 )
40
45
_warn_wheel_not_available (dist )
41
46
47
+ parsed_reqs = _reqs .parse (requires )
48
+
49
+ missing_reqs = itertools .filterfalse (_present , parsed_reqs )
50
+
42
51
needed_reqs = (
43
- req for req in _reqs . parse ( requires ) if not req .marker or req .marker .evaluate ()
52
+ req for req in missing_reqs if not req .marker or req .marker .evaluate ()
44
53
)
45
54
resolved_dists = [_fetch_build_egg_no_warn (dist , req ) for req in needed_reqs ]
46
55
for dist in resolved_dists :
You can’t perform that action at this time.
0 commit comments