langchain_core.runnables.graph_png.PngDrawer

class langchain_core.runnables.graph_png.PngDrawer(fontname: Optional[str] = None, labels: Optional[LabelsDict] = None)[source]

A helper class to draw a state graph into a PNG file. Requires graphviz and pygraphviz to be installed. :param fontname: The font to use for the labels :param labels: A dictionary of label overrides. The dictionary

should have the following format: {

“nodes”: {

“node1”: “CustomLabel1”, “node2”: “CustomLabel2”, “__end__”: “End Node”

}, “edges”: {

“continue”: “ContinueLabel”, “end”: “EndLabel”

}

} The keys are the original labels, and the values are the new labels.

Usage:

drawer = PngDrawer() drawer.draw(state_graph, ‘graph.png’)

Methods

__init__([fontname, labels])

add_edge(viz, source, target[, label])

add_edges(viz, graph)

add_node(viz, node)

add_nodes(viz, graph)

draw(graph[, output_path])

Draws the given state graph into a PNG file.

get_edge_label(label)

get_node_label(label)

update_styles(viz, graph)

Parameters
  • fontname (Optional[str]) –

  • labels (Optional[LabelsDict]) –

__init__(fontname: Optional[str] = None, labels: Optional[LabelsDict] = None) None[source]
Parameters
  • fontname (Optional[str]) –

  • labels (Optional[LabelsDict]) –

Return type

None

add_edge(viz: Any, source: str, target: str, label: Optional[str] = None) None[source]
Parameters
  • viz (Any) –

  • source (str) –

  • target (str) –

  • label (Optional[str]) –

Return type

None

add_edges(viz: Any, graph: Graph) None[source]
Parameters
  • viz (Any) –

  • graph (Graph) –

Return type

None

add_node(viz: Any, node: str) None[source]
Parameters
  • viz (Any) –

  • node (str) –

Return type

None

add_nodes(viz: Any, graph: Graph) None[source]
Parameters
  • viz (Any) –

  • graph (Graph) –

Return type

None

draw(graph: Graph, output_path: Optional[str] = None) Optional[bytes][source]

Draws the given state graph into a PNG file. Requires graphviz and pygraphviz to be installed. :param graph: The graph to draw :param output_path: The path to save the PNG. If None, PNG bytes are returned.

Parameters
  • graph (Graph) –

  • output_path (Optional[str]) –

Return type

Optional[bytes]

get_edge_label(label: str) str[source]
Parameters

label (str) –

Return type

str

get_node_label(label: str) str[source]
Parameters

label (str) –

Return type

str

update_styles(viz: Any, graph: Graph) None[source]
Parameters
  • viz (Any) –

  • graph (Graph) –

Return type

None