Skip to content

Commit eff0592

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 409c435 commit eff0592

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
@@ -508,7 +508,7 @@ def resolve(self, rosdep, resource_name, installer_context):
508508
installer = installer_context.get_installer(installer_key)
509509
except KeyError:
510510
raise ResolutionError(rosdep_key, definition.data, os_name, os_version, 'Unsupported installer [%s]' % (installer_key))
511-
resolution = installer.resolve(rosdep, rosdep_args_dict)
511+
resolution = installer.resolve(rosdep_args_dict, rosdep)
512512
dependencies = installer.get_depends(rosdep_args_dict)
513513

514514
# 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
@@ -133,7 +135,7 @@ class PipInstaller(PackageManagerInstaller):
133135
def __init__(self):
134136
super(PipInstaller, self).__init__(pip_detect, supports_depends=True)
135137

136-
def resolve(self, rosdep, rosdep_args):
138+
def resolve(self, rosdep_args, rosdep=Dependency('null')):
137139
"""
138140
See :meth:`Installer.resolve()`
139141
"""

src/rosdep2/platforms/source.py

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

3939
import yaml
4040

41+
from catkin_pkg.package import Dependency
42+
4143
from ..core import rd_debug, InvalidData
4244
from ..installers import PackageManagerInstaller, InstallFailed
4345
from ..shell_utils import create_tempfile_from_string_and_execute
@@ -198,7 +200,7 @@ def __init__(self):
198200
super(SourceInstaller, self).__init__(source_detect, supports_depends=True)
199201
self._rdmanifest_cache = {}
200202

201-
def resolve(self, rosdep, rosdep_args):
203+
def resolve(self, rosdep_args, rosdep=Dependency('null')):
202204
"""
203205
:raises: :exc:`InvalidData` If format invalid or unable
204206
to retrieve rdmanifests.
@@ -243,7 +245,7 @@ def get_install_command(self, resolved, interactive=True, reinstall=False, quiet
243245

244246
def get_depends(self, rosdep_args):
245247
deps = rosdep_args.get('depends', [])
246-
for r in self.resolve({}, rosdep_args):
248+
for r in self.resolve(rosdep_args):
247249
deps.extend(r.dependencies)
248250
return deps
249251

test/test_rosdep_installers.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ def test_Installer_tripwire():
309309
except NotImplementedError:
310310
pass
311311
try:
312-
Installer().resolve(Dependency('null'), {})
312+
Installer().resolve({})
313313
assert False
314314
except NotImplementedError:
315315
pass
@@ -349,22 +349,22 @@ def test_PackageManagerInstaller_resolve():
349349
from rosdep2.installers import PackageManagerInstaller
350350

351351
installer = PackageManagerInstaller(detect_fn_all)
352-
assert ['baz'] == installer.resolve(Dependency('baz'), dict(depends=['foo', 'bar'], packages=['baz']))
353-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), dict(packages=['baz', 'bar']))
352+
assert ['baz'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz'))
353+
assert ['baz', 'bar'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz'))
354354

355355
# test string logic
356-
assert ['baz'] == installer.resolve(Dependency('baz'), dict(depends=['foo', 'bar'], packages='baz'))
357-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), dict(packages='baz bar'))
358-
assert ['baz'] == installer.resolve(Dependency('baz'), 'baz')
359-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), 'baz bar')
356+
assert ['baz'] == installer.resolve(dict(depends=['foo', 'bar'], packages='baz'), Dependency('baz'))
357+
assert ['baz', 'bar'] == installer.resolve(dict(packages='baz bar'), Dependency('baz'))
358+
assert ['baz'] == installer.resolve('baz', Dependency('baz'))
359+
assert ['baz', 'bar'] == installer.resolve('baz bar', Dependency('baz'))
360360

361361
# test list logic
362-
assert ['baz'] == installer.resolve(Dependency('baz'), ['baz'])
363-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), ['baz', 'bar'])
362+
assert ['baz'] == installer.resolve(['baz'], Dependency('baz'))
363+
assert ['baz', 'bar'] == installer.resolve(['baz', 'bar'], Dependency('baz'))
364364

365365
# test invalid data
366366
try:
367-
installer.resolve(Dependency('baz'), 0)
367+
installer.resolve(0, Dependency('baz'))
368368
assert False, 'should have raised'
369369
except InvalidData:
370370
pass

test/test_rosdep_pip.py

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

7878
installer = PipInstaller()
79-
assert ['baz'] == installer.resolve(Dependency('baz'), dict(depends=['foo', 'bar'], packages=['baz']))
80-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), dict(packages=['baz', 'bar']))
79+
assert ['baz'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz'))
80+
assert ['baz', 'bar'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz'))
8181

8282
# test string logic
83-
assert ['baz'] == installer.resolve(Dependency('baz'), dict(depends=['foo', 'bar'], packages='baz'))
84-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), dict(packages='baz bar'))
85-
assert ['baz'] == installer.resolve(Dependency('baz'), 'baz')
86-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), 'baz bar')
83+
assert ['baz'] == installer.resolve(dict(depends=['foo', 'bar'], packages='baz'), Dependency('baz'))
84+
assert ['baz', 'bar'] == installer.resolve(dict(packages='baz bar'), Dependency('baz'))
85+
assert ['baz'] == installer.resolve('baz', Dependency('baz'))
86+
assert ['baz', 'bar'] == installer.resolve('baz bar', Dependency('baz'))
8787

8888
# test list logic
89-
assert ['baz'] == installer.resolve(Dependency('baz'), ['baz'])
90-
assert ['baz', 'bar'] == installer.resolve(Dependency('baz'), ['baz', 'bar'])
89+
assert ['baz'] == installer.resolve(['baz'], Dependency('baz'))
90+
assert ['baz', 'bar'] == installer.resolve(['baz', 'bar'], Dependency('baz'))
9191

9292
# version_eq
93-
assert ['baz==1.0'] == installer.resolve(Dependency('baz', version_eq='1.0'), dict(depends=['foo', 'bar'], packages=['baz']))
94-
assert ['baz==1.0', 'bar==1.0'] == installer.resolve(Dependency('baz', version_eq='1.0'), dict(packages=['baz', 'bar']))
93+
assert ['baz==1.0'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz', version_eq='1.0'))
94+
assert ['baz==1.0', 'bar==1.0'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz', version_eq='1.0'))
9595
# version_gte
96-
assert ['baz>=1.0'] == installer.resolve(Dependency('baz', version_gte='1.0'), dict(depends=['foo', 'bar'], packages=['baz']))
97-
assert ['baz>=1.0', 'bar>=1.0'] == installer.resolve(Dependency('baz', version_gte='1.0'), dict(packages=['baz', 'bar']))
96+
assert ['baz>=1.0'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz', version_gte='1.0'))
97+
assert ['baz>=1.0', 'bar>=1.0'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz', version_gte='1.0'))
9898
# version_lte
99-
assert ['baz<=1.0'] == installer.resolve(Dependency('baz', version_lte='1.0'), dict(depends=['foo', 'bar'], packages=['baz']))
100-
assert ['baz<=1.0', 'bar<=1.0'] == installer.resolve(Dependency('baz', version_lte='1.0'), dict(packages=['baz', 'bar']))
99+
assert ['baz<=1.0'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz', version_lte='1.0'))
100+
assert ['baz<=1.0', 'bar<=1.0'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz', version_lte='1.0'))
101101
# version_gt
102-
assert ['baz>1.0'] == installer.resolve(Dependency('baz', version_gt='1.0'), dict(depends=['foo', 'bar'], packages=['baz']))
103-
assert ['baz>1.0', 'bar>1.0'] == installer.resolve(Dependency('baz', version_gt='1.0'), dict(packages=['baz', 'bar']))
102+
assert ['baz>1.0'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz', version_gt='1.0'))
103+
assert ['baz>1.0', 'bar>1.0'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz', version_gt='1.0'))
104104
# version_lt
105-
assert ['baz<1.0'] == installer.resolve(Dependency('baz', version_lt='1.0'), dict(depends=['foo', 'bar'], packages=['baz']))
106-
assert ['baz<1.0', 'bar<1.0'] == installer.resolve(Dependency('baz', version_lt='1.0'), dict(packages=['baz', 'bar']))
105+
assert ['baz<1.0'] == installer.resolve(dict(depends=['foo', 'bar'], packages=['baz']), Dependency('baz', version_lt='1.0'))
106+
assert ['baz<1.0', 'bar<1.0'] == installer.resolve(dict(packages=['baz', 'bar']), Dependency('baz', version_lt='1.0'))
107107
# test invalid data
108108
try:
109-
installer.resolve({}, 0)
109+
installer.resolve(0, {})
110110
assert False, 'should have raised'
111111
except InvalidData:
112112
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)