def print_whole_table(db_driver, table): try: keys = db_driver.get_all_keys(table) except df_exceptions.DBKeyNotFound: print('Table not found: ' + table) return if not keys: print('Table is empty: ' + table) return raw_values = [db_driver.get_key(table, key) for key in keys] values = [jsonutils.loads(value) for value in raw_values if value] if isinstance(values[0], dict): columns = values[0].keys() labels, formatters = \ cli_utils.get_list_table_columns_and_formatters(columns, values) cli_utils.print_list(values, columns, formatters=formatters, field_labels=labels) elif isinstance(values[0], int): for l, value in enumerate(values): values[l] = {table: value} columns = [table] labels, formatters = \ cli_utils.get_list_table_columns_and_formatters(columns, values) cli_utils.print_list(values, columns, formatters=formatters, field_labels=columns)
def print_tables(): columns = ['table'] tables = [{'table': table} for table in db_tables] labels, formatters = \ cli_utils.get_list_table_columns_and_formatters(columns, tables) labels[0] = 'DB Tables' cli_utils.print_list(tables, columns, formatters=formatters, field_labels=labels)
def _print_list(columns, values, first_label=None): """ Print the given columns from the given values. You can override the label of the first column with 'first_label'. :param columns: The columns to print from values :type columns: List of strings :param values: The values to print :type values: List of dict :param first_label: The label of the first column :type first_label: String """ labels, formatters = \ cli_utils.get_list_table_columns_and_formatters(columns, values) if first_label: labels[0] = first_label cli_utils.print_list(values, columns, formatters=formatters, field_labels=labels)
def print_table(db_driver, table): try: keys = db_driver.get_all_keys(table) except df_exceptions.DBKeyNotFound: keys = [] if not keys: print('Table is empty: ' + table) return for count, key in enumerate(keys): keys[count] = {'key': key} labels, formatters = \ cli_utils.get_list_table_columns_and_formatters(['key'], keys) labels[0] = 'Keys for table' cli_utils.print_list(keys, ['key'], formatters=formatters, field_labels=labels)