"""This file generates a pyvis graph locally given a networkx graph
"""
import networkx as nx

from pyvis import Network


class ImportsGraphVisualizer:
    @classmethod
    def visualize(
        cls,
        imports_graph: nx.Graph,
        heading: str = "",
        directed: bool = True,
        layout: bool = False,  # Use hierarchical if True
        neighborhood_highlight: bool = True,
        select_menu: bool = True,
        width: int = 100,
        height: int = 800,
        show_buttons: bool = False,
        display_html_name: str = "nx.html",
    ):
        _pyvis_network = Network(
            width=f"{width}%",
            height=f"{height}px",
            directed=directed,
            layout=layout,
            heading=heading,
            neighborhood_highlight=neighborhood_highlight,
            select_menu=select_menu,
        )
        _pyvis_network.toggle_hide_edges_on_drag(True)

        _pyvis_network.from_nx(imports_graph)
        if show_buttons:
            _pyvis_network.show_buttons()
        _pyvis_network.show(display_html_name)