@@ -157,7 +157,7 @@ def _populate_reverse_dependencies(self) -> None:
157157 self .distro [target_key ]["provided" ][req ["req_marker" ].split ('extra == ' )[1 ].translate (remove_list )] = None
158158 self .distro [target_key ]["reverse_dependencies" ].append (rev_dep )
159159
160- def _get_dependency_tree (self , package_name : str , extra : str = "" , version_req : str = "" , depth : int = 20 , path : Optional [List [str ]] = None , verbose : bool = False , upward : bool = False ) -> List [List [str ]]:
160+ def _get_dependency_tree (self , package_name : str , extra : str = "" , version_req : str = "" , depth : int = 20 , path : Optional [List [str ]] = None , verbose : bool = False , upward : bool = False , ppend : str = "" ) -> List [List [str ]]:
161161 """Recursive function to build dependency tree."""
162162 path = path or []
163163 extras = extra .split ("," )
@@ -199,17 +199,18 @@ def _get_dependency_tree(self, package_name: str, extra: str = "", version_req:
199199 # IA risk error: # dask[array] go upwards as dask[dataframe], so {"extra": up_req} , not {"extra": extra}
200200 #tag downward limiting dependancies
201201 wall = " " if dependency ["req_version" ][:1 ] == "~" or dependency ["req_version" ].startswith ("==" ) or "<" in dependency ["req_version" ] else ""
202- ret += self ._get_dependency_tree (
203- dependency ["req_key" ],
204- up_req ,
205- f"[requires{ wall } : { package_name } "
206- + (f"[{ dependency ['req_extra' ]} ]" if dependency ["req_extra" ] != "" else "" )
207- + f'{ dependency ["req_version" ]} ]' ,
208- depth ,
209- next_path ,
210- verbose = verbose ,
211- upward = upward ,
212- )
202+ if ppend == "" or wall == " " :
203+ ret += self ._get_dependency_tree (
204+ dependency ["req_key" ],
205+ up_req ,
206+ f"[requires: { package_name } "
207+ + (f"[{ dependency ['req_extra' ]} ]" if dependency ["req_extra" ] != "" else "" )
208+ + f'{ dependency ["req_version" ]} ]' ,
209+ depth ,
210+ next_path ,
211+ verbose = verbose ,
212+ upward = upward ,
213+ )
213214 elif not dependency .get ("req_marker" ) or Marker (dependency ["req_marker" ]).evaluate (environment = environment ):
214215 ret += self ._get_dependency_tree (
215216 dependency ["req_key" ],
@@ -252,15 +253,15 @@ def up(self, ppw: str, extra: str = "", depth: int = 20, indent: int = 5, versio
252253 if extra == "." :
253254 extras = set (self .distro [p ]["provided" ]).union (set (self .distro [p ]["provides" ]))
254255 for e in sorted (extras ):
255- a = self ._get_dependency_tree (p , e , version_req , depth , verbose = verbose , upward = True )
256+ a = self ._get_dependency_tree (p , e , version_req , depth , verbose = verbose , upward = True , ppend = ppend )
256257 results += a if (len (a [0 ])> 1 or ppend == "" ) else []
257258 else :
258- a = self ._get_dependency_tree (p , extra , version_req , depth , verbose = verbose , upward = True )
259+ a = self ._get_dependency_tree (p , extra , version_req , depth , verbose = verbose , upward = True , ppend = ppend )
259260 results += a if (len (a [0 ])> 1 or extra == "" ) else []
260261
261262 rawtext = json .dumps (results , indent = indent )
262- lines = [l [2 * indent :] for l in rawtext .split ("\n " ) if len (l .strip ()) > 2 and ( ppend == "" or not "[requires:" in l ) ]
263- return "\n " .join (filter (None , lines )).replace ('"' , "" ). replace ( '[requires :' , '[requires:' )
263+ lines = [l [2 * indent :] for l in rawtext .split ("\n " ) if len (l .strip ()) > 2 ]
264+ return "\n " .join (filter (None , lines )).replace ('"' , "" )
264265
265266 def description (self , pp : str ) -> None :
266267 """Return package description or None if not found."""
0 commit comments