nx_pydot ======== >>> from networkx import * >>> from networkx.drawing import * >>> import os >>> import sys Undirected ---------- >>> H=Graph() >>> H.add_edge('A','B') >>> H.add_edge('A','C') >>> H.add_edge('B','C') >>> H.add_edge('A','D') >>> H.add_node('E') >>> P=pydot_from_networkx(H) >>> N=networkx_from_pydot(P) >>> sorted(N.nodes())==sorted(H.nodes()) True >>> sorted(N.edges())==sorted(H.edges()) True >>> import tempfile >>> fname=tempfile.mktemp() >>> P.write_raw(fname) True >>> Pin=pydot.graph_from_dot_file(fname) >>> sorted([p.name for p in P.node_list])==sorted([p.name for p in Pin.node_list]) True >>> e1=[(e.src,e.dst) for e in P.edge_list] >>> e2=[(e.src,e.dst) for e in Pin.edge_list] >>> sorted(e1)==sorted(e2) True >>> Hin=read_dot(fname) >>> os.unlink(fname) Directed -------- >>> H=DiGraph() >>> H.add_edge('A','B') >>> H.add_edge('A','C') >>> H.add_edge('B','C') >>> H.add_edge('A','D') >>> H.add_node('E') >>> P=pydot_from_networkx(H) >>> N=networkx_from_pydot(P) >>> sorted(N.nodes())==sorted(H.nodes()) True >>> sorted(N.edges())==sorted(H.edges()) True >>> import tempfile >>> fname=tempfile.mktemp() >>> P.write_raw(fname) True >>> Pin=pydot.graph_from_dot_file(fname) >>> sorted([p.name for p in P.node_list])==sorted([p.name for p in Pin.node_list]) True >>> e1=[(e.src,e.dst) for e in P.edge_list] >>> e2=[(e.src,e.dst) for e in Pin.edge_list] >>> sorted(e1)==sorted(e2) True >>> Hin=read_dot(fname) >>> sorted(H.nodes())==sorted(Hin.nodes()) True >>> sorted(H.edges())==sorted(Hin.edges()) True >>> os.unlink(fname) >>> fname=tempfile.mktemp() >>> write_dot(H,fname) >>> H1=read_dot(fname) >>> sorted(H.nodes())==sorted(Hin.nodes()) True >>> sorted(H.edges())==sorted(Hin.edges()) True >>> os.unlink(fname)