コード例 #1
0
    def get_paths():
        gazebo_model_path = []
        gazebo_plugin_path = []
        gazebo_media_path = []

        for package_name in get_package_names():
            package_share_path = get_package_share_directory(package_name)
            package_file_path = os.path.join(package_share_path, PACKAGE_MANIFEST_FILENAME)
            if os.path.isfile(package_file_path):
                try:
                    package = parse_package(package_file_path)
                except InvalidPackage:
                    continue
                for export in package.exports:
                    if export.tagname == 'gazebo_ros':
                        if 'gazebo_model_path' in export.attributes:
                            xml_path = export.attributes['gazebo_model_path']
                            xml_path = xml_path.replace('${prefix}', package_share_path)
                            gazebo_model_path.append(xml_path)
                        if 'plugin_path' in export.attributes:
                            xml_path = export.attributes['plugin_path']
                            xml_path = xml_path.replace('${prefix}', package_share_path)
                            gazebo_plugin_path.append(xml_path)
                        if 'gazebo_media_path' in export.attributes:
                            xml_path = export.attributes['gazebo_media_path']
                            xml_path = xml_path.replace('${prefix}', package_share_path)
                            gazebo_media_path.append(xml_path)

        gazebo_model_path = os.pathsep.join(gazebo_model_path)
        gazebo_plugin_path = os.pathsep.join(gazebo_plugin_path)
        gazebo_media_path = os.pathsep.join(gazebo_media_path)

        return gazebo_model_path, gazebo_plugin_path, gazebo_media_path
コード例 #2
0
 def main(self, *, args):
     if args.package_name is not None:
         if args.package_name not in get_package_names():
             return "Unable to find package '" + args.package_name + "'"
         print(*get_package_component_types(package_name=args.package_name),
               sep='\n')
     else:
         for package_name, component_types in get_registered_component_types(
         ):
             print(package_name)
             print(*['  ' + type_name for type_name in component_types],
                   sep='\n')
コード例 #3
0
ファイル: scanner.py プロジェクト: vmayoral/aztarna
 def get_available_rmw_implementations():
     try:
         from ros2pkg.api import get_package_names
     except ImportError or ModuleNotFoundError:
         raise Exception(
             'ROS2 needs to be installed and sourced to run ROS2 scans')
     packages = get_package_names()
     available_middlewares = []
     for pkg in packages:
         if pkg in rmw_implementations:
             available_middlewares.append(pkg)
     return available_middlewares
コード例 #4
0
ファイル: test_api.py プロジェクト: thomas-moulard/ros2cli
def test_api():
    package_names = get_package_names()
    assert isinstance(package_names, Iterable)

    # explicit dependencies of this package will for sure be available
    assert 'ros2cli' in package_names

    prefix_path = get_prefix_path('ros2cli')
    assert os.path.isdir(prefix_path)

    prefix_path = get_prefix_path('_not_existing_package_name')
    assert prefix_path is None
コード例 #5
0
ファイル: test_api.py プロジェクト: vincentrou/ros2cli
def test_api():
    package_names = get_package_names()
    assert isinstance(package_names, Iterable)

    # explicit dependencies of this package will for sure be available
    known_package_names = (
        'ament_copyright', 'ament_flake8', 'ament_pep257', 'ros2cli')
    for known_package_name in known_package_names:
        assert known_package_name in package_names

        prefix_path = get_prefix_path(known_package_name)
        assert os.path.isdir(prefix_path)

    prefix_path = get_prefix_path('_not_existing_package_name')
    assert prefix_path is None
コード例 #6
0
    def main(self, *, args):
        if args.package_name is None:
            package_names = get_package_names()
        else:
            package_names = [args.package_name]

        for package_name in sorted(package_names):
            try:
                paths = get_executable_paths(package_name=package_name)
            except PackageNotFound:
                if args.package_name is None:
                    assert False, 'This should never happen'
                raise RuntimeError(f"Package '{args.package_name}' not found")
            for path in sorted(paths):
                if args.full_path:
                    print(path)
                else:
                    print(package_name, os.path.basename(path))
コード例 #7
0
ファイル: list.py プロジェクト: yechun1/ros2cli
 def main(self, *, args):
     for pkg_name in sorted(get_package_names()):
         print(pkg_name)