Source code for salbpone.slide_generator

"""
Модуль формування візуалізації.
"""
from pyvis.network import Network
import networkx as nx

from .data_types import GraphDict, OperationsCosts


[docs]def save_procedure_graph(procedure_graph: GraphDict, t: OperationsCosts, file_name: str) -> None: """ Збереження інтерактивного графа послідовностей операцій. Зберігається у форматі html, має можливість переміщення нод. :param procedure_graph: :param t: :param file_name: :return: """ # Створення направленого графу G = nx.DiGraph() # Додавання вузлів і ребер до графа for node, dependencies in procedure_graph.items(): for dep in dependencies: G.add_edge(dep, node) # Створення об'єкту Network для інтерактивного графу net = Network(notebook=True, directed=True, cdn_resources='in_line') # Додавання вузлів і ребер до Network for node in G.nodes: label = f"t{node}={t[node-1]}" net.add_node(node, label=label) for edge in G.edges: net.add_edge(edge[0], edge[1]) # Налаштування фізичних параметрів для збереження положень нод та прямих ліній net.set_options(""" var options = { "physics": { "enabled": false }, "edges": { "smooth": { "type": "continuous", "forceDirection": "none", "roundness": 0 } } } """) # Запис HTML-файлу з кодуванням utf-8 with open(file_name, 'w', encoding='utf-8') as f: f.write(net.generate_html())