def do_analysis_helper(labels, element_lists, w): """ Chop up the rows of data. Yield lines of text to be displayed in an html pre tag. @param labels: row labels to be left justified @param element_lists: data rows where each element is a letter or a span @param w: the width; the number of elements allowed per page row """ if len(set(len(element_list) for element_list in element_lists)) != 1: msg = 'each element list should have the same nonzero length' raise ValueError(msg) label_width = max(len(label) for label in labels) + 1 chopped_element_lists = [list(iterutils.chopped(element_list, w)) for element_list in element_lists] page_rows = zip(*chopped_element_lists) for i, page_row in enumerate(page_rows): header = '' header += ' ' * label_width header += Monospace.get_ruler_line(i*w + 1, i*w + len(page_row[0])) yield header for label, element_list in zip(labels, page_row): justified_label = label.ljust(label_width) yield ''.join([justified_label] + list(element_list)) if i < len(page_rows) - 1: yield ''
def do_analysis_helper(labels, element_lists, w): """ Chop up the rows of data. Yield lines of text to be displayed in an html pre tag. @param labels: row labels to be left justified @param element_lists: data rows where each element is a letter or a span @param w: the width; the number of elements allowed per page row """ if len(set(len(element_list) for element_list in element_lists)) != 1: msg = 'each element list should have the same nonzero length' raise ValueError(msg) label_width = max(len(label) for label in labels) + 1 chopped_element_lists = [ list(iterutils.chopped(element_list, w)) for element_list in element_lists ] page_rows = zip(*chopped_element_lists) for i, page_row in enumerate(page_rows): header = '' header += ' ' * label_width header += Monospace.get_ruler_line(i * w + 1, i * w + len(page_row[0])) yield header for label, element_list in zip(labels, page_row): justified_label = label.ljust(label_width) yield ''.join([justified_label] + list(element_list)) if i < len(page_rows) - 1: yield ''