solvebio/utils/tabulate.py
def _format_table(fmt, headers, rows, colwidths, colaligns):
    """Produce a plain-text representation of the table."""
    lines = []
    hidden = fmt.with_header_hide if headers else fmt.without_header_hide
    pad = fmt.padding
    headerrow = fmt.headerrow if fmt.headerrow else fmt.datarow

    if fmt.lineabove and "lineabove" not in hidden:
        lines.append(_build_line(colwidths, pad, *fmt.lineabove))

    if headers:
        lines.append(_build_row(headers, pad, *headerrow))

    if fmt.linebelowheader and "linebelowheader" not in hidden:
        begin, fill, sep, end = fmt.linebelowheader
        if fmt.usecolons:
            segs = [
                _line_segment_with_colons(fmt.linebelowheader, a, w + 2 * pad)
                for w, a in zip(colwidths, colaligns)]
            lines.append(_build_row(segs, 0, begin, sep, end))
        else:
            lines.append(_build_line(colwidths, pad, *fmt.linebelowheader))

    if rows and fmt.linebetweenrows and "linebetweenrows" not in hidden:
        # initial rows with a line below
        for row in rows[:-1]:
            lines.append(_build_row(row, pad, *fmt.datarow))
            lines.append(_build_line(colwidths, pad, *fmt.linebetweenrows))
        # the last row without a line below
        lines.append(_build_row(rows[-1], pad, *fmt.datarow))
    else:
        for row in rows:
            lines.append(_build_row(row, pad, *fmt.datarow))

    if fmt.linebelow and "linebelow" not in hidden:
        lines.append(_build_line(colwidths, pad, *fmt.linebelow))

    return "\n".join(lines)
def _format_table(fmt, headers, rows, colwidths, colaligns):
    lines = []
    hidden = fmt.with_header_hide if headers else fmt.without_header_hide
    pad = fmt.padding
    headerrow = fmt.headerrow if fmt.headerrow else fmt.datarow

    if fmt.lineabove and "lineabove" not in hidden:
        lines.append(_build_line(colwidths, pad, *fmt.lineabove))

    if headers:
        lines.append(_build_row(headers, pad, *headerrow))

    if fmt.linebelowheader and "linebelowheader" not in hidden:
        begin, fill, sep, end = fmt.linebelowheader
        if fmt.usecolons:
            segs = [
                _line_segment_with_colons(fmt.linebelowheader, a, w + 2 * pad)
                for w, a in zip(colwidths, colaligns)]
            lines.append(_build_row(segs, 0, begin, sep, end))
        else:
            lines.append(_build_line(colwidths, pad, *fmt.linebelowheader))

    if rows and fmt.linebetweenrows and "linebetweenrows" not in hidden:
        # initial rows with a line below
        for row in rows[:-1]:
            lines.append(_build_row(row, pad, *fmt.datarow))
            lines.append(_build_line(colwidths, pad, *fmt.linebetweenrows))
        # the last row without a line below
        lines.append(_build_row(rows[-1], pad, *fmt.datarow))
    else:
        for row in rows:
            lines.append(_build_row(row, pad, *fmt.datarow))

    if fmt.linebelow and "linebelow" not in hidden:
        lines.append(_build_line(colwidths, pad, *fmt.linebelow))

    return "\n".join(lines)
def _format_table ( fmt , headers , rows , colwidths , colaligns ) : lines = [ ] hidden = fmt . with_header_hide if headers else fmt . without_header_hide pad = fmt . padding headerrow = fmt . headerrow if fmt . headerrow else fmt . datarow if fmt . lineabove and "lineabove" not in hidden : lines . append ( _build_line ( colwidths , pad , * fmt . lineabove ) ) if headers : lines . append ( _build_row ( headers , pad , * headerrow ) ) if fmt . linebelowheader and "linebelowheader" not in hidden : begin , fill , sep , end = fmt . linebelowheader if fmt . usecolons : segs = [ _line_segment_with_colons ( fmt . linebelowheader , a , w + 2 * pad ) for w , a in zip ( colwidths , colaligns ) ] lines . append ( _build_row ( segs , 0 , begin , sep , end ) ) else : lines . append ( _build_line ( colwidths , pad , * fmt . linebelowheader ) ) if rows and fmt . linebetweenrows and "linebetweenrows" not in hidden : # initial rows with a line below for row in rows [ : - 1 ] : lines . append ( _build_row ( row , pad , * fmt . datarow ) ) lines . append ( _build_line ( colwidths , pad , * fmt . linebetweenrows ) ) # the last row without a line below lines . append ( _build_row ( rows [ - 1 ] , pad , * fmt . datarow ) ) else : for row in rows : lines . append ( _build_row ( row , pad , * fmt . datarow ) ) if fmt . linebelow and "linebelow" not in hidden : lines . append ( _build_line ( colwidths , pad , * fmt . linebelow ) ) return "\n" . join ( lines )
Produce a plain-text representation of the table.
Produce a plain - text representation of the table .