示例#1
0
    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)
示例#2
0
    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
示例#3
0
    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
示例#4
0
 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
示例#6
0
    ]:
        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