Skip to content

Commit 3019b59

Browse files
authored
Merge pull request #1226 from stonebig/master
better display package dependencies
2 parents aa52e9c + 411645e commit 3019b59

File tree

2 files changed

+27
-18
lines changed

2 files changed

+27
-18
lines changed

winpython/data/packages.ini

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3601,3 +3601,6 @@ description = Accelerate
36013601
[spatialpandas]
36023602
description = Pandas extension arrays for spatial/geometric operations
36033603
3604+
[comm]
3605+
description = Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc.
3606+

winpython/piptree.py

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -107,27 +107,33 @@ def _downraw(self, pp, extra="", version_req="", depth=20, path=[]):
107107
"""build a nested list of needed packages with given extra and depth"""
108108
envi = {"extra": extra, **self.environment}
109109
p = normalize(pp)
110+
111+
# several extras request management: example dask[array,diagnostics]
112+
extras = extra.split(",")
113+
110114
ret_all = []
111-
if p in path:
115+
if p+"["+extra+"]" in path: # for dask[complete]->dask[array,test,..]
112116
print("cycle!", "->".join(path + [p]))
113117
elif p in self.distro and len(path) <= depth:
114-
if extra == "":
115-
ret = [f'{p}=={self.distro[p]["version"]} {version_req}']
116-
else:
117-
ret = [f'{p}[{extra}]=={self.distro[p]["version"]} {version_req}']
118-
for r in self.distro[p]["requires_dist"]:
119-
if r["req_key"] in self.distro:
120-
if "req_marker" not in r or Marker(r["req_marker"]).evaluate(
121-
environment=envi
122-
):
123-
ret += self._downraw(
124-
r["req_key"],
125-
r["req_extra"],
126-
r["req_version"],
127-
depth,
128-
path + [p],
129-
)
130-
ret_all += [ret]
118+
for extra in extras: # several extras request management
119+
envi = {"extra": extra, **self.environment}
120+
if extra == "":
121+
ret = [f'{p}=={self.distro[p]["version"]} {version_req}']
122+
else:
123+
ret = [f'{p}[{extra}]=={self.distro[p]["version"]} {version_req}']
124+
for r in self.distro[p]["requires_dist"]:
125+
if r["req_key"] in self.distro:
126+
if "req_marker" not in r or Marker(r["req_marker"]).evaluate(
127+
environment=envi
128+
):
129+
ret += self._downraw(
130+
r["req_key"],
131+
r["req_extra"],
132+
r["req_version"],
133+
depth,
134+
path + [p+"["+extra+"]"],
135+
)
136+
ret_all += [ret]
131137
return ret_all
132138

133139
def _upraw(self, pp, extra="", version_req="", depth=20, path=[]):

0 commit comments

Comments
 (0)