def visit_ImportFrom(self, node): # node.module, node.names, node.level #first check if it's a ROS import if "_msgs" in node.module or "_srv" in node.module: for x in node.names: # code just import all, need to check if "*" == x.name: # TODO:test here if LINUX: msg_name_list = rosmsg.list_types( node.module.split('.')[0]) for msg_name in msg_name_list: # save mapping of name to module self.names_to_import_module[msg_name] = node.module #TODO: does it work with srv msg? elif x.name in self.names_to_import_module.keys(): # if it's different from before if self.names_to_import_module[x.name] != node.module: topics_logger.warning("This msg_type {0} currently belongs to module {1}. But we are changing it to module {2}".format(\ x.name, self.names_to_import_module[x.name], node.module)) # save mapping of name to module self.names_to_import_module[x.name] = node.module else: # save mapping of name to module self.names_to_import_module[x.name] = node.module self.generic_visit(node)
def test_list_types(self): try: l = rosmsg.list_types('rosmsg', '.foo') self.fail("should have failed on invalid mode") except ValueError: pass # test msgs l = rosmsg.list_types('rospy', mode='.msg') self.assertEquals([], l) l = rosmsg.list_types('test_ros', mode='.msg') for t in ['test_ros/RosmsgA', 'test_ros/RosmsgB', 'test_ros/RosmsgC']: assert t in l l = rosmsg.list_types('rospy', mode='.srv') self.assertEquals([], l) l = rosmsg.list_types('test_ros', mode='.srv') for t in ['test_ros/RossrvA', 'test_ros/RossrvB']: assert t in l
def test_list_types(self): try: l = rosmsg.list_types('rosmsg', '.foo') self.fail("should have failed on invalid mode") except ValueError: pass # test msgs l = rosmsg.list_types('rospy', mode='.msg') self.assertEquals([], l) l = rosmsg.list_types('test_rosmaster', mode='.msg') for t in ['test_rosmaster/RosmsgA', 'test_rosmaster/RosmsgB', 'test_rosmaster/RosmsgC']: assert t in l l = rosmsg.list_types('rospy', mode='.srv') self.assertEquals([], l) l = rosmsg.list_types('test_rosmaster', mode='.srv') for t in ['test_rosmaster/RossrvA', 'test_rosmaster/RossrvB']: assert t in l
def _list(self): """ Override Namespace._list() """ try: if not self._ns: return rosmsg.list_packages(mode=self._config.mode) else: return rosmsg.list_types(self._name, mode=self._config.mode) except: return []
def test_list_types(self): try: l = rosmsg.list_types('rosmsg', '.foo') self.fail("should have failed on invalid mode") except ValueError: pass # test msgs l = rosmsg.list_types('rospy', mode='.msg') self.assertEquals([], l) l = rosmsg.list_types('diagnostic_msgs', mode='.msg') for t in ['diagnostic_msgs/DiagnosticArray', 'diagnostic_msgs/DiagnosticStatus', 'diagnostic_msgs/KeyValue']: assert t in l l = rosmsg.list_types('rospy', mode='.srv') self.assertEquals([], l) l = rosmsg.list_types('diagnostic_msgs', mode='.srv') for t in ['diagnostic_msgs/AddDiagnostics', 'diagnostic_msgs/SelfTest']: assert t in l
]: if var in PYTHON_DEPS: return var maybe_download_python_deps() PACKAGES = set() MESSAGES = set() SERVICES = set() rospack = rospkg.RosPack() for pkg in rospack.list(): PACKAGES.add(pkg) for mode, ros_set in [('.msg', MESSAGES), ('.srv', SERVICES)]: for gen_key in list_types(pkg, mode, rospack): pkg, gen = gen_key.split('/') ros_set.add((pkg, gen)) def is_package(pkg): return pkg in PACKAGES def is_message(pkg, msg): return (pkg, msg) in MESSAGES def is_service(pkg, srv): return (pkg, srv) in SERVICES