Beispiel #1
0
def reload_mappings(argv):
    """
    Re-initialize the name remapping table.

    @param argv: Command line arguments to this program. ROS reads
        these arguments to find renaming params. 
    @type  argv: [str]
    """
    global _mappings
    _mappings = load_mappings(argv)
Beispiel #2
0
def reload_mappings(argv):
    """
    Re-initialize the name remapping table.

    @param argv: Command line arguments to this program. ROS reads
        these arguments to find renaming params. 
    @type  argv: [str]
    """
    global _mappings
    _mappings = load_mappings(argv)
Beispiel #3
0
def load_sysargs_into_context(context, argv):
    """
    Load in ROS remapping arguments as arg assignments for context.

    @param context: context to load into. context's resolve_dict for 'arg' will be reinitialized with values.
    @type  context: L{LoaderContext{
    @param argv: command-line arguments
    @type  argv: [str]
    """
    # we use same command-line spec as ROS nodes
    mappings = load_mappings(argv)
    context.resolve_dict['arg'] = mappings
Beispiel #4
0
def load_sysargs_into_context(context, argv):
    """
    Load in ROS remapping arguments as arg assignments for context.

    @param context: context to load into. context's resolve_dict for 'arg' will be reinitialized with values.
    @type  context: L{LoaderContext{
    @param argv: command-line arguments
    @type  argv: [str]
    """
    # we use same command-line spec as ROS nodes
    mappings = load_mappings(argv)
    context.resolve_dict["arg"] = mappings
Beispiel #5
0
    def test_load_mappings(self):
        from roslib.names import load_mappings
        self.assertEquals({}, load_mappings([]))
        self.assertEquals({}, load_mappings(['foo']))
        self.assertEquals({}, load_mappings([':=']))
        self.assertEquals({}, load_mappings([':=:=']))
        self.assertEquals({}, load_mappings(['f:=']))
        self.assertEquals({}, load_mappings([':=b']))
        self.assertEquals({}, load_mappings(['foo:=bar:=baz']))
        # should ignore node param assignments
        self.assertEquals({}, load_mappings(['_foo:=bar']))

        self.assertEquals({'foo': 'bar'}, load_mappings(['foo:=bar']))
        # should allow double-underscore names
        self.assertEquals({'__foo': 'bar'}, load_mappings(['__foo:=bar']))
        self.assertEquals({'foo': 'bar'},
                          load_mappings(['./f', '-x', '--blah', 'foo:=bar']))
        self.assertEquals({
            'a': '1',
            'b': '2',
            'c': '3'
        }, load_mappings(['c:=3', 'c:=', ':=3', 'a:=1', 'b:=2']))
Beispiel #6
0
 def test_load_mappings(self):
   from roslib.names import load_mappings
   self.assertEquals({}, load_mappings([]))
   self.assertEquals({}, load_mappings(['foo']))
   self.assertEquals({}, load_mappings([':=']))
   self.assertEquals({}, load_mappings([':=:=']))
   self.assertEquals({}, load_mappings(['f:=']))
   self.assertEquals({}, load_mappings([':=b']))
   self.assertEquals({}, load_mappings(['foo:=bar:=baz']))
   # should ignore node param assignments
   self.assertEquals({}, load_mappings(['_foo:=bar']))        
   
   self.assertEquals({'foo': 'bar'}, load_mappings(['foo:=bar']))
   # should allow double-underscore names
   self.assertEquals({'__foo': 'bar'}, load_mappings(['__foo:=bar']))
   self.assertEquals({'foo': 'bar'}, load_mappings(['./f', '-x', '--blah', 'foo:=bar']))
   self.assertEquals({'a': '1', 'b': '2', 'c': '3'}, load_mappings(['c:=3', 'c:=', ':=3', 'a:=1', 'b:=2']))
Beispiel #7
0
    if not name or name == SEP:
        return name
    elif name[0] == SEP:
        return '/' + '/'.join([x for x in name.split(SEP) if x])
    else:
        return '/'.join([x for x in name.split(SEP) if x])        
    ##if len(name) > 1 and name[-1] == SEP:
    ##    return name[:-1]
    ##return name

# Mappings override name resolution by substituting fully-qualified
# names in for local name references. They override any name
# reference, with exception of '.local' names. We load remapping args
# as soon as client API is referenced so that they are initialized
# before Topic constructors are invoked.
_mappings = load_mappings(sys.argv)
_resolved_mappings = {}

def reload_mappings(argv):
    """
    Re-initialize the name remapping table.

    @param argv: Command line arguments to this program. ROS reads
        these arguments to find renaming params. 
    @type  argv: [str]
    """
    global _mappings
    _mappings = load_mappings(argv)

# #1810
def initialize_mappings(node_name):
Beispiel #8
0
    if not name or name == SEP:
        return name
    elif name[0] == SEP:
        return '/' + '/'.join([x for x in name.split(SEP) if x])
    else:
        return '/'.join([x for x in name.split(SEP) if x])        
    ##if len(name) > 1 and name[-1] == SEP:
    ##    return name[:-1]
    ##return name

# Mappings override name resolution by substituting fully-qualified
# names in for local name references. They override any name
# reference, with exception of '.local' names. We load remapping args
# as soon as client API is referenced so that they are initialized
# before Topic constructors are invoked.
_mappings = load_mappings(sys.argv)
_resolved_mappings = {}

def reload_mappings(argv):
    """
    Re-initialize the name remapping table.

    @param argv: Command line arguments to this program. ROS reads
        these arguments to find renaming params. 
    @type  argv: [str]
    """
    global _mappings
    _mappings = load_mappings(argv)

# #1810
def initialize_mappings(node_name):