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

import sys
import pprint
if sys.version_info[0] > 2:
    from urllib.parse import urlparse
else:
    from urlparse import urlparse
from thrift.transport import TTransport, TSocket, TSSLSocket, THttpClient
from thrift.protocol.TBinaryProtocol import TBinaryProtocol

from hive_metastore import ThriftHiveMetastore
from hive_metastore.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]] [-novalidate] [-ca_certs certs] [-keyfile keyfile] [-certfile certfile] function [arg1 [arg2...]]')
    print('')
    print('Functions:')
    print('  AbortCompactResponse abort_Compactions(AbortCompactionRequest rqst)')
    print('  string getMetaConf(string key)')
    print('  void setMetaConf(string key, string value)')
    print('  void create_catalog(CreateCatalogRequest catalog)')
    print('  void alter_catalog(AlterCatalogRequest rqst)')
    print('  GetCatalogResponse get_catalog(GetCatalogRequest catName)')
    print('  GetCatalogsResponse get_catalogs()')
    print('  void drop_catalog(DropCatalogRequest catName)')
    print('  void create_database(Database database)')
    print('  void create_database_req(CreateDatabaseRequest createDatabaseRequest)')
    print('  Database get_database(string name)')
    print('  Database get_database_req(GetDatabaseRequest request)')
    print('  void drop_database(string name, bool deleteData, bool cascade)')
    print('  void drop_database_req(DropDatabaseRequest req)')
    print('   get_databases(string pattern)')
    print('   get_all_databases()')
    print('  void alter_database(string dbname, Database db)')
    print('  void alter_database_req(AlterDatabaseRequest alterDbReq)')
    print('  void create_dataconnector_req(CreateDataConnectorRequest connectorReq)')
    print('  DataConnector get_dataconnector_req(GetDataConnectorRequest request)')
    print('  void drop_dataconnector_req(DropDataConnectorRequest dropDcReq)')
    print('   get_dataconnectors()')
    print('  void alter_dataconnector_req(AlterDataConnectorRequest alterReq)')
    print('  Type get_type(string name)')
    print('  bool create_type(Type type)')
    print('  bool drop_type(string type)')
    print('   get_type_all(string name)')
    print('   get_fields(string db_name, string table_name)')
    print('   get_fields_with_environment_context(string db_name, string table_name, EnvironmentContext environment_context)')
    print('  GetFieldsResponse get_fields_req(GetFieldsRequest req)')
    print('   get_schema(string db_name, string table_name)')
    print('   get_schema_with_environment_context(string db_name, string table_name, EnvironmentContext environment_context)')
    print('  GetSchemaResponse get_schema_req(GetSchemaRequest req)')
    print('  void create_table(Table tbl)')
    print('  void create_table_with_environment_context(Table tbl, EnvironmentContext environment_context)')
    print('  void create_table_with_constraints(Table tbl,  primaryKeys,  foreignKeys,  uniqueConstraints,  notNullConstraints,  defaultConstraints,  checkConstraints)')
    print('  void create_table_req(CreateTableRequest request)')
    print('  void drop_constraint(DropConstraintRequest req)')
    print('  void add_primary_key(AddPrimaryKeyRequest req)')
    print('  void add_foreign_key(AddForeignKeyRequest req)')
    print('  void add_unique_constraint(AddUniqueConstraintRequest req)')
    print('  void add_not_null_constraint(AddNotNullConstraintRequest req)')
    print('  void add_default_constraint(AddDefaultConstraintRequest req)')
    print('  void add_check_constraint(AddCheckConstraintRequest req)')
    print('  Table translate_table_dryrun(CreateTableRequest request)')
    print('  void drop_table(string dbname, string name, bool deleteData)')
    print('  void drop_table_with_environment_context(string dbname, string name, bool deleteData, EnvironmentContext environment_context)')
    print('  void drop_table_req(DropTableRequest dropTableReq)')
    print('  void truncate_table(string dbName, string tableName,  partNames)')
    print('  TruncateTableResponse truncate_table_req(TruncateTableRequest req)')
    print('   get_tables(string db_name, string pattern)')
    print('   get_tables_by_type(string db_name, string pattern, string tableType)')
    print('   get_all_materialized_view_objects_for_rewriting()')
    print('   get_materialized_views_for_rewriting(string db_name)')
    print('   get_table_meta(string db_patterns, string tbl_patterns,  tbl_types)')
    print('   get_all_tables(string db_name)')
    print('   get_tables_ext(GetTablesExtRequest req)')
    print('  GetTableResult get_table_req(GetTableRequest req)')
    print('  GetTablesResult get_table_objects_by_name_req(GetTablesRequest req)')
    print('  Materialization get_materialization_invalidation_info(CreationMetadata creation_metadata, string validTxnList)')
    print('  void update_creation_metadata(string catName, string dbname, string tbl_name, CreationMetadata creation_metadata)')
    print('   get_table_names_by_filter(string dbname, string filter, i16 max_tables)')
    print('  void alter_table(string dbname, string tbl_name, Table new_tbl)')
    print('  void alter_table_with_environment_context(string dbname, string tbl_name, Table new_tbl, EnvironmentContext environment_context)')
    print('  void alter_table_with_cascade(string dbname, string tbl_name, Table new_tbl, bool cascade)')
    print('  AlterTableResponse alter_table_req(AlterTableRequest req)')
    print('  Partition add_partition(Partition new_part)')
    print('  Partition add_partition_with_environment_context(Partition new_part, EnvironmentContext environment_context)')
    print('  i32 add_partitions( new_parts)')
    print('  i32 add_partitions_pspec( new_parts)')
    print('  Partition append_partition(string db_name, string tbl_name,  part_vals)')
    print('  AddPartitionsResult add_partitions_req(AddPartitionsRequest request)')
    print('  Partition append_partition_with_environment_context(string db_name, string tbl_name,  part_vals, EnvironmentContext environment_context)')
    print('  Partition append_partition_req(AppendPartitionsRequest appendPartitionsReq)')
    print('  Partition append_partition_by_name(string db_name, string tbl_name, string part_name)')
    print('  Partition append_partition_by_name_with_environment_context(string db_name, string tbl_name, string part_name, EnvironmentContext environment_context)')
    print('  bool drop_partition(string db_name, string tbl_name,  part_vals, bool deleteData)')
    print('  bool drop_partition_with_environment_context(string db_name, string tbl_name,  part_vals, bool deleteData, EnvironmentContext environment_context)')
    print('  bool drop_partition_req(DropPartitionRequest dropPartitionReq)')
    print('  bool drop_partition_by_name(string db_name, string tbl_name, string part_name, bool deleteData)')
    print('  bool drop_partition_by_name_with_environment_context(string db_name, string tbl_name, string part_name, bool deleteData, EnvironmentContext environment_context)')
    print('  DropPartitionsResult drop_partitions_req(DropPartitionsRequest req)')
    print('  Partition get_partition(string db_name, string tbl_name,  part_vals)')
    print('  GetPartitionResponse get_partition_req(GetPartitionRequest req)')
    print('  Partition exchange_partition( partitionSpecs, string source_db, string source_table_name, string dest_db, string dest_table_name)')
    print('   exchange_partitions( partitionSpecs, string source_db, string source_table_name, string dest_db, string dest_table_name)')
    print('  Partition get_partition_with_auth(string db_name, string tbl_name,  part_vals, string user_name,  group_names)')
    print('  Partition get_partition_by_name(string db_name, string tbl_name, string part_name)')
    print('   get_partitions(string db_name, string tbl_name, i16 max_parts)')
    print('  PartitionsResponse get_partitions_req(PartitionsRequest req)')
    print('   get_partitions_with_auth(string db_name, string tbl_name, i16 max_parts, string user_name,  group_names)')
    print('   get_partitions_pspec(string db_name, string tbl_name, i32 max_parts)')
    print('   get_partition_names(string db_name, string tbl_name, i16 max_parts)')
    print('   fetch_partition_names_req(PartitionsRequest partitionReq)')
    print('  PartitionValuesResponse get_partition_values(PartitionValuesRequest request)')
    print('   get_partitions_ps(string db_name, string tbl_name,  part_vals, i16 max_parts)')
    print('   get_partitions_ps_with_auth(string db_name, string tbl_name,  part_vals, i16 max_parts, string user_name,  group_names)')
    print('  GetPartitionsPsWithAuthResponse get_partitions_ps_with_auth_req(GetPartitionsPsWithAuthRequest req)')
    print('   get_partition_names_ps(string db_name, string tbl_name,  part_vals, i16 max_parts)')
    print('  GetPartitionNamesPsResponse get_partition_names_ps_req(GetPartitionNamesPsRequest req)')
    print('   get_partition_names_req(PartitionsByExprRequest req)')
    print('   get_partitions_by_filter(string db_name, string tbl_name, string filter, i16 max_parts)')
    print('   get_partitions_by_filter_req(GetPartitionsByFilterRequest req)')
    print('   get_part_specs_by_filter(string db_name, string tbl_name, string filter, i32 max_parts)')
    print('  PartitionsByExprResult get_partitions_by_expr(PartitionsByExprRequest req)')
    print('  PartitionsSpecByExprResult get_partitions_spec_by_expr(PartitionsByExprRequest req)')
    print('  i32 get_num_partitions_by_filter(string db_name, string tbl_name, string filter)')
    print('   get_partitions_by_names(string db_name, string tbl_name,  names)')
    print('  GetPartitionsByNamesResult get_partitions_by_names_req(GetPartitionsByNamesRequest req)')
    print('  PropertyGetResponse get_properties(PropertyGetRequest req)')
    print('  bool set_properties(PropertySetRequest req)')
    print('  void alter_partition(string db_name, string tbl_name, Partition new_part)')
    print('  void alter_partitions(string db_name, string tbl_name,  new_parts)')
    print('  void alter_partitions_with_environment_context(string db_name, string tbl_name,  new_parts, EnvironmentContext environment_context)')
    print('  AlterPartitionsResponse alter_partitions_req(AlterPartitionsRequest req)')
    print('  void alter_partition_with_environment_context(string db_name, string tbl_name, Partition new_part, EnvironmentContext environment_context)')
    print('  void rename_partition(string db_name, string tbl_name,  part_vals, Partition new_part)')
    print('  RenamePartitionResponse rename_partition_req(RenamePartitionRequest req)')
    print('  bool partition_name_has_valid_characters( part_vals, bool throw_exception)')
    print('  string get_config_value(string name, string defaultValue)')
    print('   partition_name_to_vals(string part_name)')
    print('   partition_name_to_spec(string part_name)')
    print('  void markPartitionForEvent(string db_name, string tbl_name,  part_vals, PartitionEventType eventType)')
    print('  bool isPartitionMarkedForEvent(string db_name, string tbl_name,  part_vals, PartitionEventType eventType)')
    print('  PrimaryKeysResponse get_primary_keys(PrimaryKeysRequest request)')
    print('  ForeignKeysResponse get_foreign_keys(ForeignKeysRequest request)')
    print('  UniqueConstraintsResponse get_unique_constraints(UniqueConstraintsRequest request)')
    print('  NotNullConstraintsResponse get_not_null_constraints(NotNullConstraintsRequest request)')
    print('  DefaultConstraintsResponse get_default_constraints(DefaultConstraintsRequest request)')
    print('  CheckConstraintsResponse get_check_constraints(CheckConstraintsRequest request)')
    print('  AllTableConstraintsResponse get_all_table_constraints(AllTableConstraintsRequest request)')
    print('  bool update_table_column_statistics(ColumnStatistics stats_obj)')
    print('  bool update_partition_column_statistics(ColumnStatistics stats_obj)')
    print('  SetPartitionsStatsResponse update_table_column_statistics_req(SetPartitionsStatsRequest req)')
    print('  SetPartitionsStatsResponse update_partition_column_statistics_req(SetPartitionsStatsRequest req)')
    print('  void update_transaction_statistics(UpdateTransactionalStatsRequest req)')
    print('  ColumnStatistics get_table_column_statistics(string db_name, string tbl_name, string col_name)')
    print('  ColumnStatistics get_partition_column_statistics(string db_name, string tbl_name, string part_name, string col_name)')
    print('  TableStatsResult get_table_statistics_req(TableStatsRequest request)')
    print('  PartitionsStatsResult get_partitions_statistics_req(PartitionsStatsRequest request)')
    print('  AggrStats get_aggr_stats_for(PartitionsStatsRequest request)')
    print('  bool set_aggr_stats_for(SetPartitionsStatsRequest request)')
    print('  bool delete_partition_column_statistics(string db_name, string tbl_name, string part_name, string col_name, string engine)')
    print('  bool delete_table_column_statistics(string db_name, string tbl_name, string col_name, string engine)')
    print('  void create_function(Function func)')
    print('  void drop_function(string dbName, string funcName)')
    print('  void alter_function(string dbName, string funcName, Function newFunc)')
    print('   get_functions(string dbName, string pattern)')
    print('  Function get_function(string dbName, string funcName)')
    print('  GetAllFunctionsResponse get_all_functions()')
    print('  bool create_role(Role role)')
    print('  bool drop_role(string role_name)')
    print('   get_role_names()')
    print('  bool grant_role(string role_name, string principal_name, PrincipalType principal_type, string grantor, PrincipalType grantorType, bool grant_option)')
    print('  bool revoke_role(string role_name, string principal_name, PrincipalType principal_type)')
    print('   list_roles(string principal_name, PrincipalType principal_type)')
    print('  GrantRevokeRoleResponse grant_revoke_role(GrantRevokeRoleRequest request)')
    print('  GetPrincipalsInRoleResponse get_principals_in_role(GetPrincipalsInRoleRequest request)')
    print('  GetRoleGrantsForPrincipalResponse get_role_grants_for_principal(GetRoleGrantsForPrincipalRequest request)')
    print('  PrincipalPrivilegeSet get_privilege_set(HiveObjectRef hiveObject, string user_name,  group_names)')
    print('   list_privileges(string principal_name, PrincipalType principal_type, HiveObjectRef hiveObject)')
    print('  bool grant_privileges(PrivilegeBag privileges)')
    print('  bool revoke_privileges(PrivilegeBag privileges)')
    print('  GrantRevokePrivilegeResponse grant_revoke_privileges(GrantRevokePrivilegeRequest request)')
    print('  GrantRevokePrivilegeResponse refresh_privileges(HiveObjectRef objToRefresh, string authorizer, GrantRevokePrivilegeRequest grantRequest)')
    print('   set_ugi(string user_name,  group_names)')
    print('  string get_delegation_token(string token_owner, string renewer_kerberos_principal_name)')
    print('  i64 renew_delegation_token(string token_str_form)')
    print('  void cancel_delegation_token(string token_str_form)')
    print('  bool add_token(string token_identifier, string delegation_token)')
    print('  bool remove_token(string token_identifier)')
    print('  string get_token(string token_identifier)')
    print('   get_all_token_identifiers()')
    print('  i32 add_master_key(string key)')
    print('  void update_master_key(i32 seq_number, string key)')
    print('  bool remove_master_key(i32 key_seq)')
    print('   get_master_keys()')
    print('  GetOpenTxnsResponse get_open_txns()')
    print('  GetOpenTxnsInfoResponse get_open_txns_info()')
    print('  OpenTxnsResponse open_txns(OpenTxnRequest rqst)')
    print('  void abort_txn(AbortTxnRequest rqst)')
    print('  void abort_txns(AbortTxnsRequest rqst)')
    print('  void commit_txn(CommitTxnRequest rqst)')
    print('  i64 get_latest_txnid_in_conflict(i64 txnId)')
    print('  void repl_tbl_writeid_state(ReplTblWriteIdStateRequest rqst)')
    print('  GetValidWriteIdsResponse get_valid_write_ids(GetValidWriteIdsRequest rqst)')
    print('  void add_write_ids_to_min_history(i64 txnId,  writeIds)')
    print('  AllocateTableWriteIdsResponse allocate_table_write_ids(AllocateTableWriteIdsRequest rqst)')
    print('  MaxAllocatedTableWriteIdResponse get_max_allocated_table_write_id(MaxAllocatedTableWriteIdRequest rqst)')
    print('  void seed_write_id(SeedTableWriteIdsRequest rqst)')
    print('  void seed_txn_id(SeedTxnIdRequest rqst)')
    print('  LockResponse lock(LockRequest rqst)')
    print('  LockResponse check_lock(CheckLockRequest rqst)')
    print('  void unlock(UnlockRequest rqst)')
    print('  ShowLocksResponse show_locks(ShowLocksRequest rqst)')
    print('  void heartbeat(HeartbeatRequest ids)')
    print('  HeartbeatTxnRangeResponse heartbeat_txn_range(HeartbeatTxnRangeRequest txns)')
    print('  void compact(CompactionRequest rqst)')
    print('  CompactionResponse compact2(CompactionRequest rqst)')
    print('  ShowCompactResponse show_compact(ShowCompactRequest rqst)')
    print('  bool submit_for_cleanup(CompactionRequest o1, i64 o2, i64 o3)')
    print('  void add_dynamic_partitions(AddDynamicPartitions rqst)')
    print('  OptionalCompactionInfoStruct find_next_compact(string workerId)')
    print('  OptionalCompactionInfoStruct find_next_compact2(FindNextCompactRequest rqst)')
    print('  void update_compactor_state(CompactionInfoStruct cr, i64 txn_id)')
    print('   find_columns_with_stats(CompactionInfoStruct cr)')
    print('  void mark_cleaned(CompactionInfoStruct cr)')
    print('  void mark_compacted(CompactionInfoStruct cr)')
    print('  void mark_failed(CompactionInfoStruct cr)')
    print('  void mark_refused(CompactionInfoStruct cr)')
    print('  bool update_compaction_metrics_data(CompactionMetricsDataStruct data)')
    print('  void remove_compaction_metrics_data(CompactionMetricsDataRequest request)')
    print('  void set_hadoop_jobid(string jobId, i64 cq_id)')
    print('  GetLatestCommittedCompactionInfoResponse get_latest_committed_compaction_info(GetLatestCommittedCompactionInfoRequest rqst)')
    print('  NotificationEventResponse get_next_notification(NotificationEventRequest rqst)')
    print('  CurrentNotificationEventId get_current_notificationEventId()')
    print('  NotificationEventsCountResponse get_notification_events_count(NotificationEventsCountRequest rqst)')
    print('  FireEventResponse fire_listener_event(FireEventRequest rqst)')
    print('  void flushCache()')
    print('  WriteNotificationLogResponse add_write_notification_log(WriteNotificationLogRequest rqst)')
    print('  WriteNotificationLogBatchResponse add_write_notification_log_in_batch(WriteNotificationLogBatchRequest rqst)')
    print('  CmRecycleResponse cm_recycle(CmRecycleRequest request)')
    print('  GetFileMetadataByExprResult get_file_metadata_by_expr(GetFileMetadataByExprRequest req)')
    print('  GetFileMetadataResult get_file_metadata(GetFileMetadataRequest req)')
    print('  PutFileMetadataResult put_file_metadata(PutFileMetadataRequest req)')
    print('  ClearFileMetadataResult clear_file_metadata(ClearFileMetadataRequest req)')
    print('  CacheFileMetadataResult cache_file_metadata(CacheFileMetadataRequest req)')
    print('  string get_metastore_db_uuid()')
    print('  WMCreateResourcePlanResponse create_resource_plan(WMCreateResourcePlanRequest request)')
    print('  WMGetResourcePlanResponse get_resource_plan(WMGetResourcePlanRequest request)')
    print('  WMGetActiveResourcePlanResponse get_active_resource_plan(WMGetActiveResourcePlanRequest request)')
    print('  WMGetAllResourcePlanResponse get_all_resource_plans(WMGetAllResourcePlanRequest request)')
    print('  WMAlterResourcePlanResponse alter_resource_plan(WMAlterResourcePlanRequest request)')
    print('  WMValidateResourcePlanResponse validate_resource_plan(WMValidateResourcePlanRequest request)')
    print('  WMDropResourcePlanResponse drop_resource_plan(WMDropResourcePlanRequest request)')
    print('  WMCreateTriggerResponse create_wm_trigger(WMCreateTriggerRequest request)')
    print('  WMAlterTriggerResponse alter_wm_trigger(WMAlterTriggerRequest request)')
    print('  WMDropTriggerResponse drop_wm_trigger(WMDropTriggerRequest request)')
    print('  WMGetTriggersForResourePlanResponse get_triggers_for_resourceplan(WMGetTriggersForResourePlanRequest request)')
    print('  WMCreatePoolResponse create_wm_pool(WMCreatePoolRequest request)')
    print('  WMAlterPoolResponse alter_wm_pool(WMAlterPoolRequest request)')
    print('  WMDropPoolResponse drop_wm_pool(WMDropPoolRequest request)')
    print('  WMCreateOrUpdateMappingResponse create_or_update_wm_mapping(WMCreateOrUpdateMappingRequest request)')
    print('  WMDropMappingResponse drop_wm_mapping(WMDropMappingRequest request)')
    print('  WMCreateOrDropTriggerToPoolMappingResponse create_or_drop_wm_trigger_to_pool_mapping(WMCreateOrDropTriggerToPoolMappingRequest request)')
    print('  void create_ischema(ISchema schema)')
    print('  void alter_ischema(AlterISchemaRequest rqst)')
    print('  ISchema get_ischema(ISchemaName name)')
    print('  void drop_ischema(ISchemaName name)')
    print('  void add_schema_version(SchemaVersion schemaVersion)')
    print('  SchemaVersion get_schema_version(SchemaVersionDescriptor schemaVersion)')
    print('  SchemaVersion get_schema_latest_version(ISchemaName schemaName)')
    print('   get_schema_all_versions(ISchemaName schemaName)')
    print('  void drop_schema_version(SchemaVersionDescriptor schemaVersion)')
    print('  FindSchemasByColsResp get_schemas_by_cols(FindSchemasByColsRqst rqst)')
    print('  void map_schema_version_to_serde(MapSchemaVersionToSerdeRequest rqst)')
    print('  void set_schema_version_state(SetSchemaVersionStateRequest rqst)')
    print('  void add_serde(SerDeInfo serde)')
    print('  SerDeInfo get_serde(GetSerdeRequest rqst)')
    print('  LockResponse get_lock_materialization_rebuild(string dbName, string tableName, i64 txnId)')
    print('  bool heartbeat_lock_materialization_rebuild(string dbName, string tableName, i64 txnId)')
    print('  void add_runtime_stats(RuntimeStat stat)')
    print('   get_runtime_stats(GetRuntimeStatsRequest rqst)')
    print('  GetPartitionsResponse get_partitions_with_specs(GetPartitionsRequest request)')
    print('  ScheduledQueryPollResponse scheduled_query_poll(ScheduledQueryPollRequest request)')
    print('  void scheduled_query_maintenance(ScheduledQueryMaintenanceRequest request)')
    print('  void scheduled_query_progress(ScheduledQueryProgressInfo info)')
    print('  ScheduledQuery get_scheduled_query(ScheduledQueryKey scheduleKey)')
    print('  void add_replication_metrics(ReplicationMetricList replicationMetricList)')
    print('  ReplicationMetricList get_replication_metrics(GetReplicationMetricsRequest rqst)')
    print('  GetOpenTxnsResponse get_open_txns_req(GetOpenTxnsRequest getOpenTxnsRequest)')
    print('  void create_stored_procedure(StoredProcedure proc)')
    print('  StoredProcedure get_stored_procedure(StoredProcedureRequest request)')
    print('  void drop_stored_procedure(StoredProcedureRequest request)')
    print('   get_all_stored_procedures(ListStoredProcedureRequest request)')
    print('  Package find_package(GetPackageRequest request)')
    print('  void add_package(AddPackageRequest request)')
    print('   get_all_packages(ListPackageRequest request)')
    print('  void drop_package(DropPackageRequest request)')
    print('   get_all_write_event_info(GetAllWriteEventInfoRequest request)')
    print('  string getName()')
    print('  string getVersion()')
    print('  fb_status getStatus()')
    print('  string getStatusDetails()')
    print('   getCounters()')
    print('  i64 getCounter(string key)')
    print('  void setOption(string key, string value)')
    print('  string getOption(string key)')
    print('   getOptions()')
    print('  string getCpuProfile(i32 profileDurationInSec)')
    print('  i64 aliveSince()')
    print('  void reinitialize()')
    print('  void shutdown()')
    print('')
    sys.exit(0)

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

if sys.argv[argi] == '-novalidate':
    validate = False
    argi += 1

if sys.argv[argi] == '-ca_certs':
    ca_certs = sys.argv[argi+1]
    argi += 2

if sys.argv[argi] == '-keyfile':
    keyfile = sys.argv[argi+1]
    argi += 2

if sys.argv[argi] == '-certfile':
    certfile = sys.argv[argi+1]
    argi += 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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()
