def parse_rosrpc_uri(uri): """ utility function for parsing ROS-RPC URIs @param uri: ROSRPC URI @type uri: str @return: address, port @rtype: (str, int) @raise ParameterInvalid: if uri is not a valid ROSRPC URI """ if uri.startswith(ROSRPC): dest_addr = uri[len(ROSRPC):] else: raise ParameterInvalid("Invalid protocol for ROS service URL: %s"%uri) try: if '/' in dest_addr: dest_addr = dest_addr[:dest_addr.find('/')] dest_addr, dest_port = dest_addr.split(':') dest_port = int(dest_port) except: raise ParameterInvalid("ROS service URL is invalid: %s"%uri) return dest_addr, dest_port
def test_ParameterInvalid(self): # not really testing anything here other than typos from rospy.impl.validators import ParameterInvalid self.assert_(isinstance(ParameterInvalid('param'), Exception))
def validator(param_value, caller_id): v = valid_name_validator_resolved(param_name, param_value, caller_id) if param_value == '/': raise ParameterInvalid("ERROR: parameter [%s] cannot be the global namespace"%param_name) return v