Source code for tablate.library.renderers.console.render_console_frames

from tablate.library.checkers.is_last_element import is_last_element
from tablate.library.formatters.console.row_line_divider import row_line_divider
from tablate.library.formatters.console.row_outer_border import row_outer_border
from tablate.library.renderers.console.frames.render_console_frame_grid import render_console_single_line_grid, \
    render_console_multi_line_grid
from tablate.library.renderers.console.frames.render_console_frame_table import render_console_table_frame
from tablate.type.type_store import FrameStoreList
from tablate.type.type_global import Globals


[docs] def render_console_frames(frame_list: FrameStoreList, global_options: Globals) -> str: return_string = "" for frame_index, frame_item in enumerate(frame_list): if frame_item.type == "grid" or frame_item.type == "table_header" or frame_item.type == "text": if frame_item.frame_styles.multiline is False or frame_item.frame_styles.max_lines == 1: return_string += render_console_single_line_grid(grid_frame_dict=frame_item, global_options=global_options) else: return_string += render_console_multi_line_grid(grid_frame_dict=frame_item, global_options=global_options) if frame_item.type == "table_body": return_string += render_console_table_frame(table_frame_store=frame_item, global_options=global_options) if not is_last_element(frame_index, frame_list): if frame_list[frame_index].frame_styles.frame_divider != 'none': frame_divider_inner = row_line_divider(column_list_top=frame_list[frame_index].column_list, column_list_bottom=frame_list[frame_index + 1].column_list, divider=frame_list[frame_index].frame_styles.frame_divider) return_string += row_outer_border(row_string=frame_divider_inner, global_options=global_options, row_divider=frame_item.frame_styles.frame_divider) return return_string