예제 #1
0
 def testTableLine(self):
     self.assertEquals('', table_line([], True))
     self.assertEquals('++', table_line([0], True))
     self.assertEquals('+++', table_line([0, 0], True))
     self.assertEquals('++-+', table_line([0, 1]))
     self.assertEquals('+===+', table_line([3], True))
     self.assertEquals('+===+====+', table_line([3, 4], True))
     self.assertEquals('+------------------+---+--------------------+',
                       table_line([18, 3, 20]))
예제 #2
0
 def testTableLine(self):
     self.assertEquals('', table_line([], True))
     self.assertEquals('++', table_line([0], True))
     self.assertEquals('+++', table_line([0,0], True))
     self.assertEquals('++-+', table_line([0,1]))
     self.assertEquals('+===+', table_line([3], True))
     self.assertEquals('+===+====+', table_line([3,4], True))
     self.assertEquals('+------------------+---+--------------------+',
             table_line([18,3,20]))
예제 #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