@@ -226,10 +226,11 @@ def merge(self, update_entry, override=False, verbose=False):
226
226
db [dep_name ].reverse_merge (dep_data , update_entry .origin , verbose = verbose )
227
227
228
228
229
- def prune_catkin_packages (rosdep_keys , verbose = False ):
229
+ def prune_catkin_packages (rosdeps , verbose = False ):
230
230
workspace_pkgs = catkin_packages .get_workspace_packages ()
231
231
if not workspace_pkgs :
232
- return rosdep_keys
232
+ return rosdeps
233
+ rosdep_keys = [d .name for d in rosdeps ]
233
234
for i , rosdep_key in reversed (list (enumerate (rosdep_keys ))):
234
235
if rosdep_key in workspace_pkgs :
235
236
# If workspace packages listed (--catkin-workspace)
@@ -239,22 +240,23 @@ def prune_catkin_packages(rosdep_keys, verbose=False):
239
240
print ("rosdep key '{0}'" .format (rosdep_key ) +
240
241
' is in the catkin workspace, skipping.' ,
241
242
file = sys .stderr )
242
- del rosdep_keys [i ]
243
- return rosdep_keys
243
+ del rosdeps [i ]
244
+ return rosdeps
244
245
245
246
246
- def prune_skipped_packages (rosdep_keys , skipped_keys , verbose = False ):
247
+ def prune_skipped_packages (rosdeps , skipped_keys , verbose = False ):
247
248
if not skipped_keys :
248
- return rosdep_keys
249
+ return rosdeps
250
+ rosdep_keys = [d .name for d in rosdeps ]
249
251
for i , rosdep_key in reversed (list (enumerate (rosdep_keys ))):
250
252
if rosdep_key in skipped_keys :
251
253
# If the key is in the list of keys to explicitly skip, skip it
252
254
if verbose :
253
255
print ("rosdep key '{0}'" .format (rosdep_key ) +
254
256
' was listed in the skipped packages, skipping.' ,
255
257
file = sys .stderr )
256
- del rosdep_keys [i ]
257
- return rosdep_keys
258
+ del rosdeps [i ]
259
+ return rosdeps
258
260
259
261
260
262
class RosdepLookup (object ):
@@ -390,15 +392,16 @@ def resolve_all(self, resources, installer_context, implicit=False):
390
392
# TODO: resolutions dictionary should be replaced with resolution model instead of mapping (undefined) keys.
391
393
for resource_name in resources :
392
394
try :
393
- rosdep_keys = self .get_rosdeps (resource_name , implicit = implicit )
395
+ rosdeps = self .get_rosdeps (resource_name , implicit = implicit )
394
396
if self .verbose :
395
- print ('resolve_all: resource [%s] requires rosdep keys [%s]' % (resource_name , ', ' .join (rosdep_keys )), file = sys .stderr )
396
- rosdep_keys = prune_catkin_packages (rosdep_keys , self .verbose )
397
- rosdep_keys = prune_skipped_packages (rosdep_keys , self .skipped_keys , self .verbose )
398
- for rosdep_key in rosdep_keys :
397
+ print ('resolve_all: resource [%s] requires rosdep keys [%s]' % (resource_name , ', ' .join ([ d . name for d in rosdeps ] )), file = sys .stderr )
398
+ rosdeps = prune_catkin_packages (rosdeps , self .verbose )
399
+ rosdeps = prune_skipped_packages (rosdeps , self .skipped_keys , self .verbose )
400
+ for rosdep in rosdeps :
399
401
try :
400
402
installer_key , resolution , dependencies = \
401
- self .resolve (rosdep_key , resource_name , installer_context )
403
+ self .resolve (rosdep , resource_name , installer_context )
404
+ rosdep_key = rosdep .name
402
405
depend_graph [rosdep_key ]['installer_key' ] = installer_key
403
406
depend_graph [rosdep_key ]['install_keys' ] = list (resolution )
404
407
depend_graph [rosdep_key ]['dependencies' ] = list (dependencies )
@@ -430,13 +433,13 @@ def resolve_all(self, resources, installer_context, implicit=False):
430
433
431
434
return resolutions_flat , errors
432
435
433
- def resolve (self , rosdep_key , resource_name , installer_context ):
436
+ def resolve (self , rosdep , resource_name , installer_context ):
434
437
"""
435
438
Resolve a :class:`RosdepDefinition` for a particular
436
439
os/version spec.
437
440
438
441
:param resource_name: resource (e.g. ROS package) to resolve key within
439
- :param rosdep_key : rosdep key to resolve
442
+ :param rosdeps : rosdep key (catkin_pkg.package.Dependency object) to resolve
440
443
:param os_name: OS name to use for resolution
441
444
:param os_version: OS name to use for resolution
442
445
@@ -450,6 +453,7 @@ def resolve(self, rosdep_key, resource_name, installer_context):
450
453
:raises: :exc:`ResolutionError` If *rosdep_key* cannot be resolved for *resource_name* in *installer_context*
451
454
:raises: :exc:`rospkg.ResourceNotFound` if *resource_name* cannot be located
452
455
"""
456
+ rosdep_key = rosdep .name
453
457
os_name , os_version = installer_context .get_os_name_and_version ()
454
458
455
459
view = self .get_rosdep_view_for_resource (resource_name )
@@ -489,7 +493,7 @@ def resolve(self, rosdep_key, resource_name, installer_context):
489
493
installer = installer_context .get_installer (installer_key )
490
494
except KeyError :
491
495
raise ResolutionError (rosdep_key , definition .data , os_name , os_version , 'Unsupported installer [%s]' % (installer_key ))
492
- resolution = installer .resolve (rosdep_args_dict )
496
+ resolution = installer .resolve (rosdep , rosdep_args_dict )
493
497
dependencies = installer .get_depends (rosdep_args_dict )
494
498
495
499
# cache value
0 commit comments