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
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')
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
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
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
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))
def main(self, *, args): for pkg_name in sorted(get_package_names()): print(pkg_name)