call.arguments.extend([arg]) request = KRPC.Request() request.calls.extend([call]) send_message(rpc_conn, request) # Receive the response response = recv_message(rpc_conn, KRPC.Response) # Check for an error in the response if response.HasField('error'): raise RuntimeError('ERROR: ' + str(response.error)) # Check for an error in the results assert (len(response.results) == 1) if response.results[0].HasField('error'): raise RuntimeError('ERROR: ' + str(response.error)) # Decode the return value as a Stream message stream = KRPC.Stream() stream.ParseFromString(response.results[0].value) # Repeatedly receive stream updates from the stream server while True: update = recv_message(stream_conn, KRPC.StreamUpdate) assert (len(update.results) == 1) assert (stream.id == update.results[0].id) # Decode and print the return value status = KRPC.Status() status.ParseFromString(update.results[0].result.value) print(status)