ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder

Contents

ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder#

Module Contents#

Classes#

Direction

EdgeOptions

ForwardEdge

BackwardEdge

IntermediateEdge

NodeData

EmptyNodeData

StatePathConnector

MatrixRow

ChildMatrixRow

PathJunction

StatePath

ChildStatePath

MatrixRowPort

PathPortPair

EdgePath

TikzSubMatrix

TikzMatrix

StatePathHandler

ProcessStateMatrixBuilder

GraphBuilder

Functions#

get_new_uuid(→ str)

Attributes#

document_preamble_str

document_preamble

document_postamble

ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.document_preamble_str = Multiline-String#
Show Value
"""\documentclass[tikz]{standalone}
\usepackage{graphicx} % Required for inserting images
\usepackage{tikz}
\usetikzlibrary{shadows}
\usepackage{xcolor}
\usetikzlibrary{backgrounds}

\usetikzlibrary {arrows.meta,automata,positioning,fit,calc}

\definecolor{ProcessStepBackground}{HTML}{FFFAF0}
\definecolor{IntermediateStateColour}{HTML}{949698}
\tikzstyle{InfinitesimalNode}=[circle,draw=none,inner sep=0pt,minimum size=0pt]
\tikzstyle{ProcessStepNode} =[fill=ProcessStepBackground,rounded corners]
\tikzstyle{IdleState} =[fill=yellow,rounded corners]
\tikzstyle{OutputState} =[fill=red,rounded corners]
\tikzstyle{InputState} =[fill=green,rounded corners]
\tikzstyle{IntermediateState} =[fill=IntermediateStateColour,rounded corners]
\tikzstyle{Source} =[fill=ProcessStepBackground,circle]
\tikzstyle{Sink} =[fill=ProcessStepBackground,circle]

\tikzset{
diagonal fill/.style 2 args={fill=#2, path picture={
\fill[#1, sharp corners] (path picture bounding box.south west) -|
                         (path picture bounding box.north east) -- cycle;}},
reversed diagonal fill/.style 2 args={fill=#2, path picture={
\fill[#1, sharp corners] (path picture bounding box.north west) |-
                         (path picture bounding box.south east) -- cycle;}}
}

\tikzstyle{InputAndOutputState} =[diagonal fill={red}{green},rounded corners, drop shadow,draw ]

\begin{document}
\begin{tikzpicture}[->,auto,node distance=1cm,on grid,semithick]"""
ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.document_preamble#
ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.document_postamble = Multiline-String#
Show Value
"""\end{tikzpicture}
\end{document}
"""
ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.get_new_uuid() str#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.Direction#
right: bool#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.EdgeOptions#
edge_style: str#
start_node_name: str#
target_node_name: str#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.ForwardEdge#
start_node_name: str#
target_node_name: str#
edge_style: str = '->'#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.BackwardEdge#
start_node_name: str#
target_node_name: str#
edge_style: str = '<-'#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.IntermediateEdge#
start_node_name: str#
target_node_name: str#
edge_style: str = '-'#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.NodeData#
unique_name: str#
display_name: str#
process_state_name: str#
edge_list: list[EdgeOptions]#
tikz_options: str = ''#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.EmptyNodeData#
unique_name: str#
edge_list: list[EdgeOptions]#
tikz_options: str = 'InfinitesimalNode'#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.StatePathConnector#
start_state_name: str#
target_state_name: str#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.MatrixRow#
edge_direction: Direction#
row_width: int#
path_id: uuid.uuid4#
state_path_connector: StatePathConnector#
list_of_path_node_data: list[NodeData | EmptyNodeData]#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.ChildMatrixRow#

Bases: MatrixRow

class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.PathJunction#
state_path_connector: StatePathConnector#
state_connector: ethos_penalps.process_state_switch_selector.StateConnector#
parrent_path_id: int#
parrent_state_connector: ethos_penalps.process_state_switch_selector.StateConnector#
insert_arround_center: bool#
start_switch_state: str#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.StatePath#
state_path_connector: StatePathConnector#
current_state_name: str#
list_of_nodes: list[NodeData]#
last_state_connector: ethos_penalps.process_state_switch_selector.StateConnector | None#
list_of_further_path_junctions: list[PathJunction]#
unique_id: str#
determine_number_of_unique_nodes() int#
get_invert_node_data_list() list[NodeData]#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.ChildStatePath#

Bases: StatePath

parrent_unique_id: uuid.uuid4#
nodes_names_of_parrent_branch: list[str]#
unique_node_list: list[NodeData]#
non_unique_node_list: list[NodeData]#
all_node_list_with_matrix_nodes: list[NodeData | EmptyNodeData]#
add_names_of_nodes_of_parrent_path(list_of_nodes_of_parrent_branch: list[NodeData])#
determine_number_of_unique_nodes()#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.MatrixRowPort#
node_data: NodeData#
node_position: int#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.PathPortPair#
left_parrent_port: MatrixRowPort#
right_parrent_port: MatrixRowPort#
parrent_inter_port_length: int#
left_child_port: MatrixRowPort#
right_child_port: MatrixRowPort#
child_inter_port_length: int#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.EdgePath#
list_of_edge_node_pairs: list[ForwardEdge | BackwardEdge | IntermediateEdge]#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.TikzSubMatrix#
process_step_name: str#
state_path_connector: StatePathConnector#
center_row: MatrixRow | None#
center_encompassing_rows_list: list[MatrixRow]#
list_of_all_rows: list[MatrixRow]#
outer_row_list: list[MatrixRow]#
edge_paths: EdgePath#
sort_matrix_rows()#
add_inner_sub_matrix_row(matrix_row: MatrixRow)#
add_outer_sub_matrix_row(matrix_row: MatrixRow)#
add_center_row(matrix_row: MatrixRow)#
determine_row_ports(parrent_path: StatePath, child_path: ChildStatePath, invert_parrent_path_direction: bool) PathPortPair#
create_matrix_child_row(parrent_path: StatePath, child_path: ChildStatePath, maximum_row_length: int, edge_direction: Direction, invert_parrent_path_direction: bool) MatrixRow#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.TikzMatrix#
process_step_name: str#
list_of_submatrices: list[TikzSubMatrix]#
determine_row_width() int#
add_sub_matrix(sub_matrix: TikzSubMatrix)#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.StatePathHandler#
list_of_initial_junction_state_connectors: list[ethos_penalps.process_state_switch_selector.StateConnector]#
dict_of_all_paths: dict[uuid.uuid4, StatePath]#
list_of_remaining_paths: list[StatePathConnector, StatePath]#
dict_of_all_juctions: dict[StatePathConnector, PathJunction]#
list_of_remaining_junctions: list[StatePathConnector, PathJunction]#
add_state_path(state_path: StatePath)#
pop_remaining_path() StatePath#
add_junction(path_junction: PathJunction)#
pop_path_junction() PathJunction#
get_state_path_by_unqiue_id(path_id: uuid.uuid4) StatePath#
determine_maximum_path_length()#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.ProcessStateMatrixBuilder(process_state_handler: ethos_penalps.process_state_handler.ProcessStateHandler, unique_process_state_names, display_names_dict)#
create_edges_in_submatrix()#
create_edge_from_node_pair(node_to_add_edge: NodeData | EmptyNodeData, start_node: NodeData | EmptyNodeData, target_node: NodeData | EmptyNodeData, direction: Direction)#
create_process_state_matrix() TikzMatrix#

Loops over all process states

create_sub_matrix_main_paths()#

Node collection starts at output stream providing state

create_paths_from_junctions(maximum_iterator: int = 100)#
create_sub_matrix_rows_from_paths() TikzSubMatrix#
determine_edge_direction(state_path_connector: StatePathConnector) Direction#
loop_over_node(terminate_at_state_connector_start: bool, state_path: StatePath, maximum_number_of_iterations: int = 100) StatePath#
switch_to_next_node(current_state_path: StatePath, switch_from_specific_state: str | None = None)#
create_process_state_node(process_state_handler: ethos_penalps.process_state_handler.ProcessStateHandler, state_path: StatePath) NodeData#
class ethos_penalps.post_processing.tikz_visualizations.process_chain_graph_builder.GraphBuilder(process_node_dict: dict[str, ethos_penalps.process_nodes.process_node.ProcessNode], enterprise_name: str, stream_handler: ethos_penalps.stream_handler.StreamHandler)#
save_tex_file(full_path: str)#
create_texfile(full_path: str)#
create_node_section()#
sort_node_dict_by_streams()#
get_source_name()#
create_stream_edge_section() str#
identify_node_types(matrix: TikzMatrix, process_state_handler: ethos_penalps.process_state_handler.ProcessStateHandler) TikzMatrix#
create_unique_node_names()#

Remove whitespaces from node names

create_display_names()#

Remove whitespaces from node names

create_title_node() str#
create_source_node(process_node: ethos_penalps.process_nodes.source.Source | ethos_penalps.process_nodes.sink.Sink, node_above: str) str#
convert_list_matrix_to_tex_string(tikz_matrix: TikzMatrix, node_above: str, process_step_name: str, first_node: bool) str#
create_state_tikz_edges(state_path_handler: StatePathHandler) str#
compile_pdf() str#
convert_pdf_to_png(path_to_pdf: str) str#
create_enterprise_graph(path_to_results_folder: str, show_graph: bool = True, output_format: str = 'pdf') str#