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)
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
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
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']))
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']))
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):