Skip to content

Commit 8e1e84c

Browse files
committed
resolve(self, rosdep,rosdep_arg_dict) move rosdep argument after rosdep_args_dict adn add default value for backward compatibility
1 parent 6d09a34 commit 8e1e84c

File tree

9 files changed

+50
-44
lines changed

9 files changed

+50
-44
lines changed

src/rosdep2/catkin_support.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def resolve_for_os(rosdep_key, view, installer, os_name, os_version):
9090
default_os_installer = ctx.get_default_os_installer_key(os_name)
9191
inst_key, rule = d.get_rule_for_platform(os_name, os_version, os_installers, default_os_installer)
9292
assert inst_key in os_installers
93-
return installer.resolve({}, rule)
93+
return installer.resolve(rule)
9494

9595

9696
def update_rosdep():

src/rosdep2/installers.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import traceback
3535

3636
from rospkg.os_detect import OsDetect
37+
from catkin_pkg.package import Dependency
3738

3839
from .core import rd_debug, RosdepInternalError, InstallFailed, print_bold, InvalidData
3940

@@ -278,10 +279,10 @@ def get_depends(self, rosdep_args):
278279
"""
279280
return [] # Default return empty list
280281

281-
def resolve(self, rosdep, rosdep_args_dict):
282+
def resolve(self, rosdep_args_dict, rosdep=Dependency('null')):
282283
"""
283-
:param rosdep: rosdep key (catkin_pkg.package.Dependency object) to resolve
284284
:param rosdep_args_dict: argument dictionary to the rosdep rule for this package manager
285+
:param rosdep: rosdep key (catkin_pkg.package.Dependency object) to resolve
285286
:returns: [resolutions]. resolved objects should be printable to a user, but are otherwise opaque.
286287
"""
287288
raise NotImplementedError('Base class resolve', rosdep_args_dict)
@@ -337,7 +338,7 @@ def elevate_priv(self, cmd):
337338
"""
338339
return (self.sudo_command.split() if self.as_root else []) + cmd
339340

340-
def resolve(self, rosdep, rosdep_args):
341+
def resolve(self, rosdep_args, rosdep=Dependency('null')):
341342
"""
342343
See :meth:`Installer.resolve()`
343344
"""

src/rosdep2/lookup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,7 @@ def resolve(self, rosdep, resource_name, installer_context):
498498
installer = installer_context.get_installer(installer_key)
499499
except KeyError:
500500
raise ResolutionError(rosdep_key, definition.data, os_name, os_version, 'Unsupported installer [%s]' % (installer_key))
501-
resolution = installer.resolve(rosdep, rosdep_args_dict)
501+
resolution = installer.resolve(rosdep_args_dict, rosdep)
502502
dependencies = installer.get_depends(rosdep_args_dict)
503503

504504
# cache value

src/rosdep2/platforms/osx.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434

3535
from rospkg.os_detect import OS_OSX, OsDetect
3636

37+
from catkin_pkg.package import Dependency
38+
3739
from ..core import InstallFailed, RosdepInternalError, InvalidData
3840
from .pip import PIP_INSTALLER
3941
from .source import SOURCE_INSTALLER
@@ -281,7 +283,7 @@ def get_version_strings(self):
281283
except OSError:
282284
return ['Homebrew not-found']
283285

284-
def resolve(self, rosdep, rosdep_args):
286+
def resolve(self, rosdep_args, rosdep=Dependency('null')):
285287
"""
286288
See :meth:`Installer.resolve()`
287289
"""
@@ -318,7 +320,7 @@ def handle_options(options):
318320

319321
return options
320322

321-
packages = super(HomebrewInstaller, self).resolve(rosdep, rosdep_args)
323+
packages = super(HomebrewInstaller, self).resolve(rosdep_args, rosdep)
322324
resolution = []
323325
if packages:
324326
options = []

src/rosdep2/platforms/pip.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import subprocess
3535
import sys
3636

37+
from catkin_pkg.package import Dependency
38+
3739
from ..core import InstallFailed, InvalidData
3840
from ..installers import PackageManagerInstaller
3941
from ..shell_utils import read_stdout
@@ -132,7 +134,7 @@ class PipInstaller(PackageManagerInstaller):
132134
def __init__(self):
133135
super(PipInstaller, self).__init__(pip_detect, supports_depends=True)
134136

135-
def resolve(self, rosdep, rosdep_args):
137+
def resolve(self, rosdep_args, rosdep=Dependency('null')):
136138
"""
137139
See :meth:`Installer.resolve()`
138140
"""

src/rosdep2/platforms/source.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242

4343
import yaml
4444

45+
from catkin_pkg.package import Dependency
46+
4547
from ..core import rd_debug, InvalidData
4648
from ..installers import PackageManagerInstaller, InstallFailed
4749
from ..shell_utils import create_tempfile_from_string_and_execute
@@ -201,7 +203,7 @@ def __init__(self):
201203
super(SourceInstaller, self).__init__(source_detect, supports_depends=True)
202204
self._rdmanifest_cache = {}
203205

204-
def resolve(self, rosdep, rosdep_args):
206+
def resolve(self, rosdep_args, rosdep=Dependency('null')):
205207
"""
206208
:raises: :exc:`InvalidData` If format invalid or unable
207209
to retrieve rdmanifests.
@@ -246,7 +248,7 @@ def get_install_command(self, resolved, interactive=True, reinstall=False, quiet
246248

247249
def get_depends(self, rosdep_args):
248250
deps = rosdep_args.get('depends', [])
249-
for r in self.resolve({}, rosdep_args):
251+
for r in self.resolve(rosdep_args):
250252
deps.extend(r.dependencies)
251253
return deps
252254

test/test_rosdep_installers.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ def test_Installer_tripwire():
307307
except NotImplementedError:
308308
pass
309309
try:
310-
Installer().resolve(Dependency('null'), {})
310+
Installer().resolve({})
311311
assert False
312312
except NotImplementedError:
313313
pass
@@ -347,22 +347,22 @@ def test_PackageManagerInstaller_resolve():
347347
from rosdep2.installers import PackageManagerInstaller
348348

349349
installer = PackageManagerInstaller(detect_fn_all)
350-
assert ['baz'] == installer.resolve(Dependency('baz'), dict(depends=['foo', 'bar'], packages=['baz']))
351-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), dict(packages=['baz', 'bar']))
350+
assert ['baz'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz'))
351+
assert ['baz', 'bar'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz'))
352352

353353
# test string logic
354-
assert ['baz'] == installer.resolve(Dependency('baz'), dict(depends=['foo', 'bar'], packages='baz'))
355-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), dict(packages='baz bar'))
356-
assert ['baz'] == installer.resolve(Dependency('baz'), 'baz')
357-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), 'baz bar')
354+
assert ['baz'] == installer.resolve(dict(depends=['foo', 'bar'], packages='baz'), Dependency('baz'))
355+
assert ['baz', 'bar'] == installer.resolve(dict(packages='baz bar'), Dependency('baz'))
356+
assert ['baz'] == installer.resolve('baz', Dependency('baz'))
357+
assert ['baz', 'bar'] == installer.resolve('baz bar', Dependency('baz'))
358358

359359
# test list logic
360-
assert ['baz'] == installer.resolve(Dependency('baz'), ['baz'])
361-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), ['baz', 'bar'])
360+
assert ['baz'] == installer.resolve(['baz'], Dependency('baz'))
361+
assert ['baz', 'bar'] == installer.resolve(['baz', 'bar'], Dependency('baz'))
362362

363363
# test invalid data
364364
try:
365-
installer.resolve(Dependency('baz'), 0)
365+
installer.resolve(0, Dependency('baz'))
366366
assert False, 'should have raised'
367367
except InvalidData:
368368
pass

test/test_rosdep_pip.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -73,37 +73,37 @@ def test_PackageManagerInstaller_resolve():
7373
from catkin_pkg.package import Dependency
7474

7575
installer = PipInstaller()
76-
assert ['baz'] == installer.resolve(Dependency('baz'), dict(depends=['foo', 'bar'], packages=['baz']))
77-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), dict(packages=['baz', 'bar']))
76+
assert ['baz'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz'))
77+
assert ['baz', 'bar'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz'))
7878

7979
# test string logic
80-
assert ['baz'] == installer.resolve(Dependency('baz'), dict(depends=['foo', 'bar'], packages='baz'))
81-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), dict(packages='baz bar'))
82-
assert ['baz'] == installer.resolve(Dependency('baz'), 'baz')
83-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), 'baz bar')
80+
assert ['baz'] == installer.resolve(dict(depends=['foo', 'bar'], packages='baz'), Dependency('baz'))
81+
assert ['baz', 'bar'] == installer.resolve(dict(packages='baz bar'), Dependency('baz'))
82+
assert ['baz'] == installer.resolve('baz', Dependency('baz'))
83+
assert ['baz', 'bar'] == installer.resolve('baz bar', Dependency('baz'))
8484

8585
# test list logic
86-
assert ['baz'] == installer.resolve(Dependency('baz'), ['baz'])
87-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), ['baz', 'bar'])
86+
assert ['baz'] == installer.resolve(['baz'], Dependency('baz'))
87+
assert ['baz', 'bar'] == installer.resolve(['baz', 'bar'], Dependency('baz'))
8888

8989
# version_eq
90-
assert ['baz==1.0'] == installer.resolve(Dependency('baz', version_eq='1.0'), dict(depends=['foo', 'bar'], packages=['baz']))
91-
assert ['baz==1.0', 'bar==1.0'] == installer.resolve(Dependency('baz', version_eq='1.0'), dict(packages=['baz', 'bar']))
90+
assert ['baz==1.0'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz', version_eq='1.0'))
91+
assert ['baz==1.0', 'bar==1.0'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz', version_eq='1.0'))
9292
# version_gte
93-
assert ['baz>=1.0'] == installer.resolve(Dependency('baz', version_gte='1.0'), dict(depends=['foo', 'bar'], packages=['baz']))
94-
assert ['baz>=1.0', 'bar>=1.0'] == installer.resolve(Dependency('baz', version_gte='1.0'), dict(packages=['baz', 'bar']))
93+
assert ['baz>=1.0'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz', version_gte='1.0'))
94+
assert ['baz>=1.0', 'bar>=1.0'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz', version_gte='1.0'))
9595
# version_lte
96-
assert ['baz<=1.0'] == installer.resolve(Dependency('baz', version_lte='1.0'), dict(depends=['foo', 'bar'], packages=['baz']))
97-
assert ['baz<=1.0', 'bar<=1.0'] == installer.resolve(Dependency('baz', version_lte='1.0'), dict(packages=['baz', 'bar']))
96+
assert ['baz<=1.0'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz', version_lte='1.0'))
97+
assert ['baz<=1.0', 'bar<=1.0'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz', version_lte='1.0'))
9898
# version_gt
99-
assert ['baz>1.0'] == installer.resolve(Dependency('baz', version_gt='1.0'), dict(depends=['foo', 'bar'], packages=['baz']))
100-
assert ['baz>1.0', 'bar>1.0'] == installer.resolve(Dependency('baz', version_gt='1.0'), dict(packages=['baz', 'bar']))
99+
assert ['baz>1.0'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz', version_gt='1.0'))
100+
assert ['baz>1.0', 'bar>1.0'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz', version_gt='1.0'))
101101
# version_lt
102-
assert ['baz<1.0'] == installer.resolve(Dependency('baz', version_lt='1.0'), dict(depends=['foo', 'bar'], packages=['baz']))
103-
assert ['baz<1.0', 'bar<1.0'] == installer.resolve(Dependency('baz', version_lt='1.0'), dict(packages=['baz', 'bar']))
102+
assert ['baz<1.0'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz', version_lt='1.0'))
103+
assert ['baz<1.0', 'bar<1.0'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz', version_lt='1.0'))
104104
# test invalid data
105105
try:
106-
installer.resolve({}, 0)
106+
installer.resolve(0, {})
107107
assert False, 'should have raised'
108108
except InvalidData:
109109
pass

test/test_rosdep_source.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,6 @@ def test_SourceInstaller_get_install_command():
191191

192192

193193
def test_SourceInstaller_resolve():
194-
from catkin_pkg.package import Dependency
195194
from rosdep2.platforms.source import SourceInstaller, InvalidData
196195
test_dir = get_test_dir()
197196

@@ -201,16 +200,16 @@ def test_SourceInstaller_resolve():
201200

202201
installer = SourceInstaller()
203202
try:
204-
installer.resolve(Dependency('null'), {})
203+
installer.resolve({})
205204
assert False, 'should have raised'
206205
except InvalidData:
207206
pass
208207
try:
209-
installer.resolve(Dependency('null'), dict(uri=url, md5sum=md5sum_bad))
208+
installer.resolve(dict(uri=url, md5sum=md5sum_bad))
210209
assert False, 'should have raised'
211210
except InvalidData:
212211
pass
213-
resolved = installer.resolve(Dependency('null'), dict(uri=url, md5sum=md5sum_good))
212+
resolved = installer.resolve(dict(uri=url, md5sum=md5sum_good))
214213

215214
assert type(resolved) == list
216215
assert len(resolved) == 1
@@ -223,7 +222,7 @@ def test_SourceInstaller_resolve():
223222
assert resolved.check_presence_command == rep122_check_presence_command
224223

225224
# test again to activate caching
226-
resolved = installer.resolve(Dependency('null'), dict(uri=url, md5sum=md5sum_good))
225+
resolved = installer.resolve(dict(uri=url, md5sum=md5sum_good))
227226
assert type(resolved) == list, 'Cache should also return a list'
228227
assert len(resolved) == 1
229228
resolved = resolved[0]

0 commit comments

Comments
 (0)