#!/usr/bin/env python
#
# Autogenerated by Thrift Compiler (0.9.3)
#
# 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 TSSLSocket
from thrift.transport import THttpClient
from thrift.protocol import TBinaryProtocol

from hyperthrift.gen2 import HqlService
from hyperthrift.gen2.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]] [-s[sl]] function [arg1 [arg2...]]')
  print('')
  print('Functions:')
  print('  HqlResult hql_exec(i64 ns, string command, bool noflush, bool unbuffered)')
  print('  HqlResult hql_query(i64 ns, string command)')
  print('  HqlResultAsArrays hql_exec_as_arrays(i64 ns, string command, bool noflush, bool unbuffered)')
  print('  HqlResult2 hql_exec2(i64 ns, string command, bool noflush, bool unbuffered)')
  print('  HqlResultAsArrays hql_query_as_arrays(i64 ns, string command)')
  print('  HqlResult2 hql_query2(i64 ns, string command)')
  print('  void namespace_create(string ns)')
  print('  void create_namespace(string ns)')
  print('  void table_create(Namespace ns, string table_name, Schema schema)')
  print('  void table_alter(Namespace ns, string table_name, Schema schema)')
  print('  void refresh_table(Namespace ns, string table_name)')
  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('  Status status()')
  print('  void shutdown()')
  print('')
  sys.exit(0)

pp = pprint.PrettyPrinter(indent = 2)
host = 'localhost'
port = 9090
uri = ''
framed = False
ssl = 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

if sys.argv[argi] == '-s' or sys.argv[argi] == '-ssl':
  ssl = True
  argi += 1

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

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

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

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

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

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

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

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

elif 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 == '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],eval(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],eval(args[2]),))

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

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]),))

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

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

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

transport.close()
