#!/usr/bin/env python
#
# Autogenerated by Thrift Compiler (0.8.0)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
#  options string: py:new_style
#

import sys
import pprint
from urlparse import urlparse
from thrift.transport import TTransport
from thrift.transport import TSocket
from thrift.transport import THttpClient
from thrift.protocol import TBinaryProtocol

import ClientService
from ttypes import *

if len(sys.argv) <= 1 or sys.argv[1] == '--help':
  print ''
  print 'Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] function [arg1 [arg2...]]'
  print ''
  print 'Functions:'
  print '  void namespace_create(string ns)'
  print '  void create_namespace(string ns)'
  print '  void create_table(Namespace ns, string table_name, string schema)'
  print '  void table_create(Namespace ns, string table_name, string schema)'
  print '  void alter_table(Namespace ns, string table_name, string schema)'
  print '  void table_alter(Namespace ns, string table_name, string schema)'
  print '  Namespace namespace_open(string ns)'
  print '  Namespace open_namespace(string ns)'
  print '  void namespace_close(Namespace ns)'
  print '  void close_namespace(Namespace ns)'
  print '  Future future_open(i32 capacity)'
  print '  Future open_future(i32 capacity)'
  print '  void future_cancel(Future ff)'
  print '  void cancel_future(Future ff)'
  print '  Result future_get_result(Future ff, i32 timeout_millis)'
  print '  Result get_future_result(Future ff, i32 timeout_millis)'
  print '  ResultAsArrays future_get_result_as_arrays(Future ff, i32 timeout_millis)'
  print '  ResultAsArrays get_future_result_as_arrays(Future ff, i32 timeout_millis)'
  print '  ResultSerialized future_get_result_serialized(Future ff, i32 timeout_millis)'
  print '  ResultSerialized get_future_result_serialized(Future ff, i32 timeout_millis)'
  print '  bool future_is_empty(Future ff)'
  print '  bool future_is_full(Future ff)'
  print '  bool future_is_cancelled(Future ff)'
  print '  bool future_has_outstanding(Future ff)'
  print '  void future_close(Future ff)'
  print '  void close_future(Future ff)'
  print '  Scanner scanner_open(Namespace ns, string table_name, ScanSpec scan_spec)'
  print '  Scanner open_scanner(Namespace ns, string table_name, ScanSpec scan_spec)'
  print '  ScannerAsync async_scanner_open(Namespace ns, string table_name, Future future, ScanSpec scan_spec)'
  print '  ScannerAsync open_scanner_async(Namespace ns, string table_name, Future future, ScanSpec scan_spec)'
  print '  void scanner_close(Scanner scanner)'
  print '  void close_scanner(Scanner scanner)'
  print '  void async_scanner_cancel(ScannerAsync scanner)'
  print '  void cancel_scanner_async(ScannerAsync scanner)'
  print '  void async_scanner_close(ScannerAsync scanner)'
  print '  void close_scanner_async(ScannerAsync scanner)'
  print '   scanner_get_cells(Scanner scanner)'
  print '   next_cells(Scanner scanner)'
  print '   scanner_get_cells_as_arrays(Scanner scanner)'
  print '   next_cells_as_arrays(Scanner scanner)'
  print '  CellsSerialized scanner_get_cells_serialized(Scanner scanner)'
  print '  CellsSerialized next_cells_serialized(Scanner scanner)'
  print '   scanner_get_row(Scanner scanner)'
  print '   next_row(Scanner scanner)'
  print '   scanner_get_row_as_arrays(Scanner scanner)'
  print '   next_row_as_arrays(Scanner scanner)'
  print '  CellsSerialized scanner_get_row_serialized(Scanner scanner)'
  print '  CellsSerialized next_row_serialized(Scanner scanner)'
  print '   get_row(Namespace ns, string table_name, string row)'
  print '   get_row_as_arrays(Namespace ns, string name, string row)'
  print '  CellsSerialized get_row_serialized(Namespace ns, string table_name, string row)'
  print '  Value get_cell(Namespace ns, string table_name, string row, string column)'
  print '   get_cells(Namespace ns, string table_name, ScanSpec scan_spec)'
  print '   get_cells_as_arrays(Namespace ns, string name, ScanSpec scan_spec)'
  print '  CellsSerialized get_cells_serialized(Namespace ns, string name, ScanSpec scan_spec)'
  print '  void shared_mutator_refresh(Namespace ns, string table_name, MutateSpec mutate_spec)'
  print '  void refresh_shared_mutator(Namespace ns, string table_name, MutateSpec mutate_spec)'
  print '  void shared_mutator_set_cells(Namespace ns, string table_name, MutateSpec mutate_spec,  cells)'
  print '  void offer_cells(Namespace ns, string table_name, MutateSpec mutate_spec,  cells)'
  print '  void shared_mutator_set_cells_as_arrays(Namespace ns, string table_name, MutateSpec mutate_spec,  cells)'
  print '  void offer_cells_as_arrays(Namespace ns, string table_name, MutateSpec mutate_spec,  cells)'
  print '  void shared_mutator_set_cell(Namespace ns, string table_name, MutateSpec mutate_spec, Cell cell)'
  print '  void offer_cell(Namespace ns, string table_name, MutateSpec mutate_spec, Cell cell)'
  print '  void shared_mutator_set_cell_as_array(Namespace ns, string table_name, MutateSpec mutate_spec, CellAsArray cell)'
  print '  void offer_cell_as_array(Namespace ns, string table_name, MutateSpec mutate_spec, CellAsArray cell)'
  print '  Mutator mutator_open(Namespace ns, string table_name, i32 flags, i32 flush_interval)'
  print '  Mutator open_mutator(Namespace ns, string table_name, i32 flags, i32 flush_interval)'
  print '  MutatorAsync async_mutator_open(Namespace ns, string table_name, Future future, i32 flags)'
  print '  MutatorAsync open_mutator_async(Namespace ns, string table_name, Future future, i32 flags)'
  print '  void mutator_close(Mutator mutator)'
  print '  void close_mutator(Mutator mutator)'
  print '  void async_mutator_cancel(MutatorAsync mutator)'
  print '  void cancel_mutator_async(MutatorAsync mutator)'
  print '  void async_mutator_close(MutatorAsync mutator)'
  print '  void close_mutator_async(MutatorAsync mutator)'
  print '  void mutator_set_cell(Mutator mutator, Cell cell)'
  print '  void set_cell(Namespace ns, string table_name, Cell cell)'
  print '  void mutator_set_cell_as_array(Mutator mutator, CellAsArray cell)'
  print '  void set_cell_as_array(Namespace ns, string table_name, CellAsArray cell)'
  print '  void mutator_set_cells(Mutator mutator,  cells)'
  print '  void set_cells(Namespace ns, string table_name,  cells)'
  print '  void mutator_set_cells_as_arrays(Mutator mutator,  cells)'
  print '  void set_cells_as_arrays(Namespace ns, string table_name,  cells)'
  print '  void mutator_set_cells_serialized(Mutator mutator, CellsSerialized cells, bool flush)'
  print '  void set_cells_serialized(Namespace ns, string table_name, CellsSerialized cells)'
  print '  void mutator_flush(Mutator mutator)'
  print '  void flush_mutator(Mutator mutator)'
  print '  void async_mutator_set_cell(MutatorAsync mutator, Cell cell)'
  print '  void set_cell_async(MutatorAsync mutator, Cell cell)'
  print '  void async_mutator_set_cell_as_array(MutatorAsync mutator, CellAsArray cell)'
  print '  void set_cell_as_array_async(MutatorAsync mutator, CellAsArray cell)'
  print '  void async_mutator_set_cells(MutatorAsync mutator,  cells)'
  print '  void set_cells_async(MutatorAsync mutator,  cells)'
  print '  void async_mutator_set_cells_as_arrays(MutatorAsync mutator,  cells)'
  print '  void set_cells_as_arrays_async(MutatorAsync mutator,  cells)'
  print '  void async_mutator_set_cells_serialized(MutatorAsync mutator, CellsSerialized cells, bool flush)'
  print '  void set_cells_serialized_async(MutatorAsync mutator, CellsSerialized cells, bool flush)'
  print '  void async_mutator_flush(MutatorAsync mutator)'
  print '  void flush_mutator_async(MutatorAsync mutator)'
  print '  bool namespace_exists(string ns)'
  print '  bool exists_namespace(string ns)'
  print '  bool exists_table(Namespace ns, string name)'
  print '  bool table_exists(Namespace ns, string name)'
  print '  string table_get_id(Namespace ns, string table_name)'
  print '  string get_table_id(Namespace ns, string table_name)'
  print '  string table_get_schema_str(Namespace ns, string table_name)'
  print '  string get_schema_str(Namespace ns, string table_name)'
  print '  string table_get_schema_str_with_ids(Namespace ns, string table_name)'
  print '  string get_schema_str_with_ids(Namespace ns, string table_name)'
  print '  Schema table_get_schema(Namespace ns, string table_name)'
  print '  Schema get_schema(Namespace ns, string table_name)'
  print '   get_tables(Namespace ns)'
  print '   namespace_get_listing(Namespace ns)'
  print '   get_listing(Namespace ns)'
  print '   table_get_splits(Namespace ns, string table_name)'
  print '   get_table_splits(Namespace ns, string table_name)'
  print '  void namespace_drop(string ns, bool if_exists)'
  print '  void drop_namespace(string ns, bool if_exists)'
  print '  void rename_table(Namespace ns, string name, string new_name)'
  print '  void table_rename(Namespace ns, string name, string new_name)'
  print '  void drop_table(Namespace ns, string name, bool if_exists)'
  print '  void table_drop(Namespace ns, string name, bool if_exists)'
  print '  string generate_guid()'
  print '  string create_cell_unique(Namespace ns, string table_name, Key key, string value)'
  print '  string error_get_text(i32 error_code)'
  print ''
  sys.exit(0)

pp = pprint.PrettyPrinter(indent = 2)
host = 'localhost'
port = 9090
uri = ''
framed = False
http = False
argi = 1

if sys.argv[argi] == '-h':
  parts = sys.argv[argi+1].split(':')
  host = parts[0]
  if len(parts) > 1:
    port = int(parts[1])
  argi += 2

if sys.argv[argi] == '-u':
  url = urlparse(sys.argv[argi+1])
  parts = url[1].split(':')
  host = parts[0]
  if len(parts) > 1:
    port = int(parts[1])
  else:
    port = 80
  uri = url[2]
  if url[4]:
    uri += '?%s' % url[4]
  http = True
  argi += 2

if sys.argv[argi] == '-f' or sys.argv[argi] == '-framed':
  framed = True
  argi += 1

cmd = sys.argv[argi]
args = sys.argv[argi+1:]

if http:
  transport = THttpClient.THttpClient(host, port, uri)
else:
  socket = TSocket.TSocket(host, port)
  if framed:
    transport = TTransport.TFramedTransport(socket)
  else:
    transport = TTransport.TBufferedTransport(socket)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = ClientService.Client(protocol)
transport.open()

if cmd == 'namespace_create':
  if len(args) != 1:
    print 'namespace_create requires 1 args'
    sys.exit(1)
  pp.pprint(client.namespace_create(args[0],))

elif cmd == 'create_namespace':
  if len(args) != 1:
    print 'create_namespace requires 1 args'
    sys.exit(1)
  pp.pprint(client.create_namespace(args[0],))

elif cmd == 'create_table':
  if len(args) != 3:
    print 'create_table requires 3 args'
    sys.exit(1)
  pp.pprint(client.create_table(eval(args[0]),args[1],args[2],))

elif cmd == 'table_create':
  if len(args) != 3:
    print 'table_create requires 3 args'
    sys.exit(1)
  pp.pprint(client.table_create(eval(args[0]),args[1],args[2],))

elif cmd == 'alter_table':
  if len(args) != 3:
    print 'alter_table requires 3 args'
    sys.exit(1)
  pp.pprint(client.alter_table(eval(args[0]),args[1],args[2],))

elif cmd == 'table_alter':
  if len(args) != 3:
    print 'table_alter requires 3 args'
    sys.exit(1)
  pp.pprint(client.table_alter(eval(args[0]),args[1],args[2],))

elif cmd == 'namespace_open':
  if len(args) != 1:
    print 'namespace_open requires 1 args'
    sys.exit(1)
  pp.pprint(client.namespace_open(args[0],))

elif cmd == 'open_namespace':
  if len(args) != 1:
    print 'open_namespace requires 1 args'
    sys.exit(1)
  pp.pprint(client.open_namespace(args[0],))

elif cmd == 'namespace_close':
  if len(args) != 1:
    print 'namespace_close requires 1 args'
    sys.exit(1)
  pp.pprint(client.namespace_close(eval(args[0]),))

elif cmd == 'close_namespace':
  if len(args) != 1:
    print 'close_namespace requires 1 args'
    sys.exit(1)
  pp.pprint(client.close_namespace(eval(args[0]),))

elif cmd == 'future_open':
  if len(args) != 1:
    print 'future_open requires 1 args'
    sys.exit(1)
  pp.pprint(client.future_open(eval(args[0]),))

elif cmd == 'open_future':
  if len(args) != 1:
    print 'open_future requires 1 args'
    sys.exit(1)
  pp.pprint(client.open_future(eval(args[0]),))

elif cmd == 'future_cancel':
  if len(args) != 1:
    print 'future_cancel requires 1 args'
    sys.exit(1)
  pp.pprint(client.future_cancel(eval(args[0]),))

elif cmd == 'cancel_future':
  if len(args) != 1:
    print 'cancel_future requires 1 args'
    sys.exit(1)
  pp.pprint(client.cancel_future(eval(args[0]),))

elif cmd == 'future_get_result':
  if len(args) != 2:
    print 'future_get_result requires 2 args'
    sys.exit(1)
  pp.pprint(client.future_get_result(eval(args[0]),eval(args[1]),))

elif cmd == 'get_future_result':
  if len(args) != 2:
    print 'get_future_result requires 2 args'
    sys.exit(1)
  pp.pprint(client.get_future_result(eval(args[0]),eval(args[1]),))

elif cmd == 'future_get_result_as_arrays':
  if len(args) != 2:
    print 'future_get_result_as_arrays requires 2 args'
    sys.exit(1)
  pp.pprint(client.future_get_result_as_arrays(eval(args[0]),eval(args[1]),))

elif cmd == 'get_future_result_as_arrays':
  if len(args) != 2:
    print 'get_future_result_as_arrays requires 2 args'
    sys.exit(1)
  pp.pprint(client.get_future_result_as_arrays(eval(args[0]),eval(args[1]),))

elif cmd == 'future_get_result_serialized':
  if len(args) != 2:
    print 'future_get_result_serialized requires 2 args'
    sys.exit(1)
  pp.pprint(client.future_get_result_serialized(eval(args[0]),eval(args[1]),))

elif cmd == 'get_future_result_serialized':
  if len(args) != 2:
    print 'get_future_result_serialized requires 2 args'
    sys.exit(1)
  pp.pprint(client.get_future_result_serialized(eval(args[0]),eval(args[1]),))

elif cmd == 'future_is_empty':
  if len(args) != 1:
    print 'future_is_empty requires 1 args'
    sys.exit(1)
  pp.pprint(client.future_is_empty(eval(args[0]),))

elif cmd == 'future_is_full':
  if len(args) != 1:
    print 'future_is_full requires 1 args'
    sys.exit(1)
  pp.pprint(client.future_is_full(eval(args[0]),))

elif cmd == 'future_is_cancelled':
  if len(args) != 1:
    print 'future_is_cancelled requires 1 args'
    sys.exit(1)
  pp.pprint(client.future_is_cancelled(eval(args[0]),))

elif cmd == 'future_has_outstanding':
  if len(args) != 1:
    print 'future_has_outstanding requires 1 args'
    sys.exit(1)
  pp.pprint(client.future_has_outstanding(eval(args[0]),))

elif cmd == 'future_close':
  if len(args) != 1:
    print 'future_close requires 1 args'
    sys.exit(1)
  pp.pprint(client.future_close(eval(args[0]),))

elif cmd == 'close_future':
  if len(args) != 1:
    print 'close_future requires 1 args'
    sys.exit(1)
  pp.pprint(client.close_future(eval(args[0]),))

elif cmd == 'scanner_open':
  if len(args) != 3:
    print 'scanner_open requires 3 args'
    sys.exit(1)
  pp.pprint(client.scanner_open(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'open_scanner':
  if len(args) != 3:
    print 'open_scanner requires 3 args'
    sys.exit(1)
  pp.pprint(client.open_scanner(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'async_scanner_open':
  if len(args) != 4:
    print 'async_scanner_open requires 4 args'
    sys.exit(1)
  pp.pprint(client.async_scanner_open(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'open_scanner_async':
  if len(args) != 4:
    print 'open_scanner_async requires 4 args'
    sys.exit(1)
  pp.pprint(client.open_scanner_async(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'scanner_close':
  if len(args) != 1:
    print 'scanner_close requires 1 args'
    sys.exit(1)
  pp.pprint(client.scanner_close(eval(args[0]),))

elif cmd == 'close_scanner':
  if len(args) != 1:
    print 'close_scanner requires 1 args'
    sys.exit(1)
  pp.pprint(client.close_scanner(eval(args[0]),))

elif cmd == 'async_scanner_cancel':
  if len(args) != 1:
    print 'async_scanner_cancel requires 1 args'
    sys.exit(1)
  pp.pprint(client.async_scanner_cancel(eval(args[0]),))

elif cmd == 'cancel_scanner_async':
  if len(args) != 1:
    print 'cancel_scanner_async requires 1 args'
    sys.exit(1)
  pp.pprint(client.cancel_scanner_async(eval(args[0]),))

elif cmd == 'async_scanner_close':
  if len(args) != 1:
    print 'async_scanner_close requires 1 args'
    sys.exit(1)
  pp.pprint(client.async_scanner_close(eval(args[0]),))

elif cmd == 'close_scanner_async':
  if len(args) != 1:
    print 'close_scanner_async requires 1 args'
    sys.exit(1)
  pp.pprint(client.close_scanner_async(eval(args[0]),))

elif cmd == 'scanner_get_cells':
  if len(args) != 1:
    print 'scanner_get_cells requires 1 args'
    sys.exit(1)
  pp.pprint(client.scanner_get_cells(eval(args[0]),))

elif cmd == 'next_cells':
  if len(args) != 1:
    print 'next_cells requires 1 args'
    sys.exit(1)
  pp.pprint(client.next_cells(eval(args[0]),))

elif cmd == 'scanner_get_cells_as_arrays':
  if len(args) != 1:
    print 'scanner_get_cells_as_arrays requires 1 args'
    sys.exit(1)
  pp.pprint(client.scanner_get_cells_as_arrays(eval(args[0]),))

elif cmd == 'next_cells_as_arrays':
  if len(args) != 1:
    print 'next_cells_as_arrays requires 1 args'
    sys.exit(1)
  pp.pprint(client.next_cells_as_arrays(eval(args[0]),))

elif cmd == 'scanner_get_cells_serialized':
  if len(args) != 1:
    print 'scanner_get_cells_serialized requires 1 args'
    sys.exit(1)
  pp.pprint(client.scanner_get_cells_serialized(eval(args[0]),))

elif cmd == 'next_cells_serialized':
  if len(args) != 1:
    print 'next_cells_serialized requires 1 args'
    sys.exit(1)
  pp.pprint(client.next_cells_serialized(eval(args[0]),))

elif cmd == 'scanner_get_row':
  if len(args) != 1:
    print 'scanner_get_row requires 1 args'
    sys.exit(1)
  pp.pprint(client.scanner_get_row(eval(args[0]),))

elif cmd == 'next_row':
  if len(args) != 1:
    print 'next_row requires 1 args'
    sys.exit(1)
  pp.pprint(client.next_row(eval(args[0]),))

elif cmd == 'scanner_get_row_as_arrays':
  if len(args) != 1:
    print 'scanner_get_row_as_arrays requires 1 args'
    sys.exit(1)
  pp.pprint(client.scanner_get_row_as_arrays(eval(args[0]),))

elif cmd == 'next_row_as_arrays':
  if len(args) != 1:
    print 'next_row_as_arrays requires 1 args'
    sys.exit(1)
  pp.pprint(client.next_row_as_arrays(eval(args[0]),))

elif cmd == 'scanner_get_row_serialized':
  if len(args) != 1:
    print 'scanner_get_row_serialized requires 1 args'
    sys.exit(1)
  pp.pprint(client.scanner_get_row_serialized(eval(args[0]),))

elif cmd == 'next_row_serialized':
  if len(args) != 1:
    print 'next_row_serialized requires 1 args'
    sys.exit(1)
  pp.pprint(client.next_row_serialized(eval(args[0]),))

elif cmd == 'get_row':
  if len(args) != 3:
    print 'get_row requires 3 args'
    sys.exit(1)
  pp.pprint(client.get_row(eval(args[0]),args[1],args[2],))

elif cmd == 'get_row_as_arrays':
  if len(args) != 3:
    print 'get_row_as_arrays requires 3 args'
    sys.exit(1)
  pp.pprint(client.get_row_as_arrays(eval(args[0]),args[1],args[2],))

elif cmd == 'get_row_serialized':
  if len(args) != 3:
    print 'get_row_serialized requires 3 args'
    sys.exit(1)
  pp.pprint(client.get_row_serialized(eval(args[0]),args[1],args[2],))

elif cmd == 'get_cell':
  if len(args) != 4:
    print 'get_cell requires 4 args'
    sys.exit(1)
  pp.pprint(client.get_cell(eval(args[0]),args[1],args[2],args[3],))

elif cmd == 'get_cells':
  if len(args) != 3:
    print 'get_cells requires 3 args'
    sys.exit(1)
  pp.pprint(client.get_cells(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'get_cells_as_arrays':
  if len(args) != 3:
    print 'get_cells_as_arrays requires 3 args'
    sys.exit(1)
  pp.pprint(client.get_cells_as_arrays(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'get_cells_serialized':
  if len(args) != 3:
    print 'get_cells_serialized requires 3 args'
    sys.exit(1)
  pp.pprint(client.get_cells_serialized(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'shared_mutator_refresh':
  if len(args) != 3:
    print 'shared_mutator_refresh requires 3 args'
    sys.exit(1)
  pp.pprint(client.shared_mutator_refresh(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'refresh_shared_mutator':
  if len(args) != 3:
    print 'refresh_shared_mutator requires 3 args'
    sys.exit(1)
  pp.pprint(client.refresh_shared_mutator(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'shared_mutator_set_cells':
  if len(args) != 4:
    print 'shared_mutator_set_cells requires 4 args'
    sys.exit(1)
  pp.pprint(client.shared_mutator_set_cells(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'offer_cells':
  if len(args) != 4:
    print 'offer_cells requires 4 args'
    sys.exit(1)
  pp.pprint(client.offer_cells(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'shared_mutator_set_cells_as_arrays':
  if len(args) != 4:
    print 'shared_mutator_set_cells_as_arrays requires 4 args'
    sys.exit(1)
  pp.pprint(client.shared_mutator_set_cells_as_arrays(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'offer_cells_as_arrays':
  if len(args) != 4:
    print 'offer_cells_as_arrays requires 4 args'
    sys.exit(1)
  pp.pprint(client.offer_cells_as_arrays(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'shared_mutator_set_cell':
  if len(args) != 4:
    print 'shared_mutator_set_cell requires 4 args'
    sys.exit(1)
  pp.pprint(client.shared_mutator_set_cell(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'offer_cell':
  if len(args) != 4:
    print 'offer_cell requires 4 args'
    sys.exit(1)
  pp.pprint(client.offer_cell(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'shared_mutator_set_cell_as_array':
  if len(args) != 4:
    print 'shared_mutator_set_cell_as_array requires 4 args'
    sys.exit(1)
  pp.pprint(client.shared_mutator_set_cell_as_array(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'offer_cell_as_array':
  if len(args) != 4:
    print 'offer_cell_as_array requires 4 args'
    sys.exit(1)
  pp.pprint(client.offer_cell_as_array(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'mutator_open':
  if len(args) != 4:
    print 'mutator_open requires 4 args'
    sys.exit(1)
  pp.pprint(client.mutator_open(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'open_mutator':
  if len(args) != 4:
    print 'open_mutator requires 4 args'
    sys.exit(1)
  pp.pprint(client.open_mutator(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'async_mutator_open':
  if len(args) != 4:
    print 'async_mutator_open requires 4 args'
    sys.exit(1)
  pp.pprint(client.async_mutator_open(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'open_mutator_async':
  if len(args) != 4:
    print 'open_mutator_async requires 4 args'
    sys.exit(1)
  pp.pprint(client.open_mutator_async(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))

elif cmd == 'mutator_close':
  if len(args) != 1:
    print 'mutator_close requires 1 args'
    sys.exit(1)
  pp.pprint(client.mutator_close(eval(args[0]),))

elif cmd == 'close_mutator':
  if len(args) != 1:
    print 'close_mutator requires 1 args'
    sys.exit(1)
  pp.pprint(client.close_mutator(eval(args[0]),))

elif cmd == 'async_mutator_cancel':
  if len(args) != 1:
    print 'async_mutator_cancel requires 1 args'
    sys.exit(1)
  pp.pprint(client.async_mutator_cancel(eval(args[0]),))

elif cmd == 'cancel_mutator_async':
  if len(args) != 1:
    print 'cancel_mutator_async requires 1 args'
    sys.exit(1)
  pp.pprint(client.cancel_mutator_async(eval(args[0]),))

elif cmd == 'async_mutator_close':
  if len(args) != 1:
    print 'async_mutator_close requires 1 args'
    sys.exit(1)
  pp.pprint(client.async_mutator_close(eval(args[0]),))

elif cmd == 'close_mutator_async':
  if len(args) != 1:
    print 'close_mutator_async requires 1 args'
    sys.exit(1)
  pp.pprint(client.close_mutator_async(eval(args[0]),))

elif cmd == 'mutator_set_cell':
  if len(args) != 2:
    print 'mutator_set_cell requires 2 args'
    sys.exit(1)
  pp.pprint(client.mutator_set_cell(eval(args[0]),eval(args[1]),))

elif cmd == 'set_cell':
  if len(args) != 3:
    print 'set_cell requires 3 args'
    sys.exit(1)
  pp.pprint(client.set_cell(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'mutator_set_cell_as_array':
  if len(args) != 2:
    print 'mutator_set_cell_as_array requires 2 args'
    sys.exit(1)
  pp.pprint(client.mutator_set_cell_as_array(eval(args[0]),eval(args[1]),))

elif cmd == 'set_cell_as_array':
  if len(args) != 3:
    print 'set_cell_as_array requires 3 args'
    sys.exit(1)
  pp.pprint(client.set_cell_as_array(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'mutator_set_cells':
  if len(args) != 2:
    print 'mutator_set_cells requires 2 args'
    sys.exit(1)
  pp.pprint(client.mutator_set_cells(eval(args[0]),eval(args[1]),))

elif cmd == 'set_cells':
  if len(args) != 3:
    print 'set_cells requires 3 args'
    sys.exit(1)
  pp.pprint(client.set_cells(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'mutator_set_cells_as_arrays':
  if len(args) != 2:
    print 'mutator_set_cells_as_arrays requires 2 args'
    sys.exit(1)
  pp.pprint(client.mutator_set_cells_as_arrays(eval(args[0]),eval(args[1]),))

elif cmd == 'set_cells_as_arrays':
  if len(args) != 3:
    print 'set_cells_as_arrays requires 3 args'
    sys.exit(1)
  pp.pprint(client.set_cells_as_arrays(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'mutator_set_cells_serialized':
  if len(args) != 3:
    print 'mutator_set_cells_serialized requires 3 args'
    sys.exit(1)
  pp.pprint(client.mutator_set_cells_serialized(eval(args[0]),eval(args[1]),eval(args[2]),))

elif cmd == 'set_cells_serialized':
  if len(args) != 3:
    print 'set_cells_serialized requires 3 args'
    sys.exit(1)
  pp.pprint(client.set_cells_serialized(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'mutator_flush':
  if len(args) != 1:
    print 'mutator_flush requires 1 args'
    sys.exit(1)
  pp.pprint(client.mutator_flush(eval(args[0]),))

elif cmd == 'flush_mutator':
  if len(args) != 1:
    print 'flush_mutator requires 1 args'
    sys.exit(1)
  pp.pprint(client.flush_mutator(eval(args[0]),))

elif cmd == 'async_mutator_set_cell':
  if len(args) != 2:
    print 'async_mutator_set_cell requires 2 args'
    sys.exit(1)
  pp.pprint(client.async_mutator_set_cell(eval(args[0]),eval(args[1]),))

elif cmd == 'set_cell_async':
  if len(args) != 2:
    print 'set_cell_async requires 2 args'
    sys.exit(1)
  pp.pprint(client.set_cell_async(eval(args[0]),eval(args[1]),))

elif cmd == 'async_mutator_set_cell_as_array':
  if len(args) != 2:
    print 'async_mutator_set_cell_as_array requires 2 args'
    sys.exit(1)
  pp.pprint(client.async_mutator_set_cell_as_array(eval(args[0]),eval(args[1]),))

elif cmd == 'set_cell_as_array_async':
  if len(args) != 2:
    print 'set_cell_as_array_async requires 2 args'
    sys.exit(1)
  pp.pprint(client.set_cell_as_array_async(eval(args[0]),eval(args[1]),))

elif cmd == 'async_mutator_set_cells':
  if len(args) != 2:
    print 'async_mutator_set_cells requires 2 args'
    sys.exit(1)
  pp.pprint(client.async_mutator_set_cells(eval(args[0]),eval(args[1]),))

elif cmd == 'set_cells_async':
  if len(args) != 2:
    print 'set_cells_async requires 2 args'
    sys.exit(1)
  pp.pprint(client.set_cells_async(eval(args[0]),eval(args[1]),))

elif cmd == 'async_mutator_set_cells_as_arrays':
  if len(args) != 2:
    print 'async_mutator_set_cells_as_arrays requires 2 args'
    sys.exit(1)
  pp.pprint(client.async_mutator_set_cells_as_arrays(eval(args[0]),eval(args[1]),))

elif cmd == 'set_cells_as_arrays_async':
  if len(args) != 2:
    print 'set_cells_as_arrays_async requires 2 args'
    sys.exit(1)
  pp.pprint(client.set_cells_as_arrays_async(eval(args[0]),eval(args[1]),))

elif cmd == 'async_mutator_set_cells_serialized':
  if len(args) != 3:
    print 'async_mutator_set_cells_serialized requires 3 args'
    sys.exit(1)
  pp.pprint(client.async_mutator_set_cells_serialized(eval(args[0]),eval(args[1]),eval(args[2]),))

elif cmd == 'set_cells_serialized_async':
  if len(args) != 3:
    print 'set_cells_serialized_async requires 3 args'
    sys.exit(1)
  pp.pprint(client.set_cells_serialized_async(eval(args[0]),eval(args[1]),eval(args[2]),))

elif cmd == 'async_mutator_flush':
  if len(args) != 1:
    print 'async_mutator_flush requires 1 args'
    sys.exit(1)
  pp.pprint(client.async_mutator_flush(eval(args[0]),))

elif cmd == 'flush_mutator_async':
  if len(args) != 1:
    print 'flush_mutator_async requires 1 args'
    sys.exit(1)
  pp.pprint(client.flush_mutator_async(eval(args[0]),))

elif cmd == 'namespace_exists':
  if len(args) != 1:
    print 'namespace_exists requires 1 args'
    sys.exit(1)
  pp.pprint(client.namespace_exists(args[0],))

elif cmd == 'exists_namespace':
  if len(args) != 1:
    print 'exists_namespace requires 1 args'
    sys.exit(1)
  pp.pprint(client.exists_namespace(args[0],))

elif cmd == 'exists_table':
  if len(args) != 2:
    print 'exists_table requires 2 args'
    sys.exit(1)
  pp.pprint(client.exists_table(eval(args[0]),args[1],))

elif cmd == 'table_exists':
  if len(args) != 2:
    print 'table_exists requires 2 args'
    sys.exit(1)
  pp.pprint(client.table_exists(eval(args[0]),args[1],))

elif cmd == 'table_get_id':
  if len(args) != 2:
    print 'table_get_id requires 2 args'
    sys.exit(1)
  pp.pprint(client.table_get_id(eval(args[0]),args[1],))

elif cmd == 'get_table_id':
  if len(args) != 2:
    print 'get_table_id requires 2 args'
    sys.exit(1)
  pp.pprint(client.get_table_id(eval(args[0]),args[1],))

elif cmd == 'table_get_schema_str':
  if len(args) != 2:
    print 'table_get_schema_str requires 2 args'
    sys.exit(1)
  pp.pprint(client.table_get_schema_str(eval(args[0]),args[1],))

elif cmd == 'get_schema_str':
  if len(args) != 2:
    print 'get_schema_str requires 2 args'
    sys.exit(1)
  pp.pprint(client.get_schema_str(eval(args[0]),args[1],))

elif cmd == 'table_get_schema_str_with_ids':
  if len(args) != 2:
    print 'table_get_schema_str_with_ids requires 2 args'
    sys.exit(1)
  pp.pprint(client.table_get_schema_str_with_ids(eval(args[0]),args[1],))

elif cmd == 'get_schema_str_with_ids':
  if len(args) != 2:
    print 'get_schema_str_with_ids requires 2 args'
    sys.exit(1)
  pp.pprint(client.get_schema_str_with_ids(eval(args[0]),args[1],))

elif cmd == 'table_get_schema':
  if len(args) != 2:
    print 'table_get_schema requires 2 args'
    sys.exit(1)
  pp.pprint(client.table_get_schema(eval(args[0]),args[1],))

elif cmd == 'get_schema':
  if len(args) != 2:
    print 'get_schema requires 2 args'
    sys.exit(1)
  pp.pprint(client.get_schema(eval(args[0]),args[1],))

elif cmd == 'get_tables':
  if len(args) != 1:
    print 'get_tables requires 1 args'
    sys.exit(1)
  pp.pprint(client.get_tables(eval(args[0]),))

elif cmd == 'namespace_get_listing':
  if len(args) != 1:
    print 'namespace_get_listing requires 1 args'
    sys.exit(1)
  pp.pprint(client.namespace_get_listing(eval(args[0]),))

elif cmd == 'get_listing':
  if len(args) != 1:
    print 'get_listing requires 1 args'
    sys.exit(1)
  pp.pprint(client.get_listing(eval(args[0]),))

elif cmd == 'table_get_splits':
  if len(args) != 2:
    print 'table_get_splits requires 2 args'
    sys.exit(1)
  pp.pprint(client.table_get_splits(eval(args[0]),args[1],))

elif cmd == 'get_table_splits':
  if len(args) != 2:
    print 'get_table_splits requires 2 args'
    sys.exit(1)
  pp.pprint(client.get_table_splits(eval(args[0]),args[1],))

elif cmd == 'namespace_drop':
  if len(args) != 2:
    print 'namespace_drop requires 2 args'
    sys.exit(1)
  pp.pprint(client.namespace_drop(args[0],eval(args[1]),))

elif cmd == 'drop_namespace':
  if len(args) != 2:
    print 'drop_namespace requires 2 args'
    sys.exit(1)
  pp.pprint(client.drop_namespace(args[0],eval(args[1]),))

elif cmd == 'rename_table':
  if len(args) != 3:
    print 'rename_table requires 3 args'
    sys.exit(1)
  pp.pprint(client.rename_table(eval(args[0]),args[1],args[2],))

elif cmd == 'table_rename':
  if len(args) != 3:
    print 'table_rename requires 3 args'
    sys.exit(1)
  pp.pprint(client.table_rename(eval(args[0]),args[1],args[2],))

elif cmd == 'drop_table':
  if len(args) != 3:
    print 'drop_table requires 3 args'
    sys.exit(1)
  pp.pprint(client.drop_table(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'table_drop':
  if len(args) != 3:
    print 'table_drop requires 3 args'
    sys.exit(1)
  pp.pprint(client.table_drop(eval(args[0]),args[1],eval(args[2]),))

elif cmd == 'generate_guid':
  if len(args) != 0:
    print 'generate_guid requires 0 args'
    sys.exit(1)
  pp.pprint(client.generate_guid())

elif cmd == 'create_cell_unique':
  if len(args) != 4:
    print 'create_cell_unique requires 4 args'
    sys.exit(1)
  pp.pprint(client.create_cell_unique(eval(args[0]),args[1],eval(args[2]),args[3],))

elif cmd == 'error_get_text':
  if len(args) != 1:
    print 'error_get_text requires 1 args'
    sys.exit(1)
  pp.pprint(client.error_get_text(eval(args[0]),))

else:
  print 'Unrecognized method %s' % cmd
  sys.exit(1)

transport.close()
