Source code for tablate.library.initializers.processors.process_frame
from copy import deepcopy
from typing import Union, Tuple
from tablate.library.calcs.gen_frame_name import gen_frame_name
from tablate.library.initializers.grid_init import grid_init
from tablate.library.initializers.table_init import table_init
from tablate.type.primitives import FrameType, FrameArgs, FrameName
from tablate.type.type_global import Globals
from tablate.type.type_store import GridFrameStore, TableHeaderFrameStore, TableBodyFrameStore, FrameDictList, FrameDict
[docs]
def process_frame_args(frame_args: FrameArgs,
frame_type: FrameType,
global_options: Globals) -> Union[GridFrameStore, Tuple[Union[TableHeaderFrameStore, None], TableBodyFrameStore]]:
frame_args = deepcopy(frame_args)
# if frame_type == "text":
# return text_init(**frame_args, global_options=global_options)
if frame_type == "grid" or frame_type == "text":
return grid_init(**frame_args, global_options=global_options)
if frame_type == "table":
return table_init(**frame_args, global_options=global_options)
[docs]
def process_frame(frame_name: FrameName,
frame_type: FrameType,
frame_args: FrameArgs,
frame_list: FrameDictList,
global_options: Globals) -> FrameDict:
if "self" in frame_args:
del frame_args["self"]
if "html_default_colors" in frame_args:
del frame_args["html_default_colors"]
if "container_border" in frame_args:
del frame_args["container_border"]
if "container_padding" in frame_args:
del frame_args["container_padding"]
if "container_width" in frame_args:
del frame_args["container_width"]
if "html_container_styles" in frame_args:
del frame_args["html_container_styles"]
if frame_type == "text":
frame_args["columns"] = [{"string": frame_args["text"]}]
del frame_args["text"]
frame_args["column_padding"] = frame_args["frame_padding"]
del frame_args["frame_padding"]
frame_args["column_divider"] = "thin"
if frame_type == "grid" and type(frame_args["columns"][0]) == str:
grid_columns = []
for column_item in frame_args["columns"]:
grid_columns.append({
"string": column_item
})
frame_args["columns"] = grid_columns
name = gen_frame_name(name=frame_name, type=frame_type, frame_dict=frame_list)
args = deepcopy(frame_args)
args["name"] = name
return FrameDict(name=name, type=frame_type, args=args, store=process_frame_args(frame_args=args,
frame_type=frame_type,
global_options=global_options))