def gen_line_cells(data, widths=None, float_precision=4, minimum_cell_width=9):
    """
    Generate the content of the cells for a line in the summary file.

    See gen_line_str (above) for doc.

    Returns
    -------
    cells : List
    new_widths : List

    """
    if widths is None:
        new_widths = []
    else:
        new_widths = widths
    cells = []
    for i, entry in enumerate(data):
        if not isinstance(entry, str):
            entry = format(float(entry), '.' + str(float_precision) + 'g')
        if widths is None:
            cell_width = max(minimum_cell_width, len(entry))
            new_widths.append(cell_width)
        else:
            cell_width = widths[i]
        cell_cont = format(entry, '<' + str(cell_width))
        cells.append(cell_cont)
    return cells, new_widths
