Skip to content

Commit 5429245

Browse files
committed
fix: contract the deps correctly
1 parent 5f5d16a commit 5429245

File tree

1 file changed

+17
-10
lines changed
  • python/pip_install/tools/wheel_installer

1 file changed

+17
-10
lines changed

python/pip_install/tools/wheel_installer/wheel.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,22 @@ def add(self, dep: str, platform: Platform | None = None):
172172
for p, deps in self.select.items():
173173
self.select[p] = deps - {dep}
174174

175+
def build(self, all_platforms: list[Platform]) -> Deps:
176+
# Move deps to common deps if they are present for all platforms
177+
common_deps = None
178+
for plat in all_platforms:
179+
deps = self.select.get(plat, set())
180+
common_deps = deps if common_deps is None else common_deps & deps
181+
182+
if common_deps:
183+
for d in common_deps:
184+
self.add(d)
185+
186+
return Deps(
187+
deps=self.deps,
188+
select={p: deps for p, deps in self.select.items() if deps},
189+
)
190+
175191

176192
class Wheel:
177193
"""Representation of the compressed .whl file"""
@@ -275,16 +291,7 @@ def dependencies(
275291
# TODO @aignas 2023-12-04: allow to resolve for extras separately
276292
break
277293

278-
# Move deps to common deps if they are present for all platforms
279-
common_deps = None
280-
for plat, deps in dependency_set.select.items():
281-
common_deps = deps if common_deps is None else common_deps & deps
282-
283-
if common_deps:
284-
for d in common_deps:
285-
dependency_set.add(d)
286-
287-
return dependency_set
294+
return dependency_set.build(plat_markers.keys())
288295

289296
def unzip(self, directory: str) -> None:
290297
installation_schemes = {

0 commit comments

Comments
 (0)