Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)