Пример #1
0
 def testPadFields(self):
     table = [['Name', 'Type', 'Description'],
              ['Lollypop', 'Candy', 'Yummy'],
              ['Crisps', 'Snacks', 'Even more yummy, I tell you!']]
     expected_padding = [
              [' Name     ', ' Type   ', ' Description                  '],
              [' Lollypop ', ' Candy  ', ' Yummy                        '],
              [' Crisps   ', ' Snacks ', ' Even more yummy, I tell you! ']]
     widths = get_column_widths(table)
     for input, expect in zip(table, expected_padding):
         self.assertEquals(expect, pad_fields(input, widths))
Пример #2
0
 def testPadFields(self):
     table = [['Name', 'Type', 'Description'],
              ['Lollypop', 'Candy', 'Yummy'],
              ['Crisps', 'Snacks', 'Even more yummy, I tell you!']]
     expected_padding = [
              [' Name     ', ' Type   ', ' Description                  '],
              [' Lollypop ', ' Candy  ', ' Yummy                        '],
              [' Crisps   ', ' Snacks ', ' Even more yummy, I tell you! ']]
     widths = get_column_widths(table)
     for input, expect in zip(table, expected_padding):
         self.assertEqual(expect, pad_fields(input, widths))
Пример #3
0
def draw_table(indent, table, manual_widths=None):
    if table == []:
        return []

    if manual_widths is None:
        col_widths = get_column_widths(table)
    else:
        col_widths = manual_widths

    # Reserve room for the spaces
    sep_col_widths = map(lambda x: x + 2, col_widths)
    header_line = table_line(sep_col_widths, header=True)
    normal_line = table_line(sep_col_widths, header=False)

    output = [indent+normal_line]
    first = True
    for row in table:

        if manual_widths:
            row = reflow_row_contents(row, manual_widths)

        row_lines = split_row_into_lines(row)

        # draw the lines (num_lines) for this row
        for row_line in row_lines:
            row_line = pad_fields(row_line, col_widths)
            output.append(indent+"|".join([''] + row_line + ['']))

        # then, draw the separator
        if first:
            output.append(indent+header_line)
            first = False
        else:
            output.append(indent+normal_line)

    return output
Пример #4
0
def draw_table(indent, table, manual_widths=None):
    if table == []:
        return []

    if manual_widths is None:
        col_widths = get_column_widths(table)
    else:
        col_widths = manual_widths

    # Reserve room for the spaces
    sep_col_widths = map(lambda x: x + 2, col_widths)
    header_line = table_line(sep_col_widths, header=True)
    normal_line = table_line(sep_col_widths, header=False)

    output = [indent + normal_line]
    first = True
    for row in table:

        if manual_widths:
            row = reflow_row_contents(row, manual_widths)

        row_lines = split_row_into_lines(row)

        # draw the lines (num_lines) for this row
        for row_line in row_lines:
            row_line = pad_fields(row_line, col_widths)
            output.append(indent + "|".join([''] + row_line + ['']))

        # then, draw the separator
        if first:
            output.append(indent + header_line)
            first = False
        else:
            output.append(indent + normal_line)

    return output