(master, caller_id)
return caller_api
Get XML-RPC API of node
    :param master: XML-RPC handle to ROS Master, :class:`xmlrpclib.ServerProxy`
    :param caller_id: node name, ``str``
    :returns: XML-RPC URI of node, ``str``
    :raises: :exc:`ROSTopicIOException` If unable to communicate with master
Get XML-RPC API of node
    :param master: XML-RPC handle to ROS Master, :class:`xmlrpclib.ServerProxy`
    :param caller_id: node name, ``str``
    :returns: XML-RPC URI of node, ``str``
    :raises: :exc:`ROSTopicIOException` If unable to communicate with master
Get XML - RPC API of node : param master : XML - RPC handle to ROS Master : class : xmlrpclib . ServerProxy : param caller_id : node name str : returns : XML - RPC URI of node str : raises : : exc : ROSTopicIOException If unable to communicate with master
def get_api(master, caller_id):
    """
    Get XML-RPC API of node
    :param master: XML-RPC handle to ROS Master, :class:`xmlrpclib.ServerProxy`
    :param caller_id: node name, ``str``
    :returns: XML-RPC URI of node, ``str``
    :raises: :exc:`ROSTopicIOException` If unable to communicate with master
    """
    caller_api = _caller_apis.get(caller_id, None)
    if not caller_api:
        try:
            caller_api = master.lookupNode(caller_id)
            _caller_apis[caller_id] = caller_api
        except socket.error:
            raise ROSTopicIOException("Unable to communicate with master!")
        except rosgraph.MasterError:
            caller_api = 'unknown address %s'%caller_id

    return caller_api
def get_api ( master , caller_id ) : caller_api = _caller_apis . get ( caller_id , None ) if not caller_api : try : caller_api = master . lookupNode ( caller_id ) _caller_apis [ caller_id ] = caller_api except socket . error : raise ROSTopicIOException ( "Unable to communicate with master!" ) except rosgraph . MasterError : caller_api = 'unknown address %s' % caller_id return caller_api