text: """
  Attributes
  ==========
  
  Example illustrating how attributes of nodes, edges, and graphs are handled
  during conversion to/from `~pygraphviz.AGraph`.
  """
  
  import networkx as nx
  
  G = nx.Graph()
  G.add_edge(1, 2, color="red")
  G.add_edge(2, 3, color="red")
  G.add_node(3)
  G.add_node(4)
  
  A = nx.nx_agraph.to_agraph(G)  # convert to a graphviz graph
  A.draw("attributes.png", prog="neato")  # Draw with pygraphviz
  
  # convert back to networkx Graph with attributes on edges and
  # default attributes as dictionary data
  X = nx.nx_agraph.from_agraph(A)
  print("edges")
  print(list(X.edges(data=True)))
  print("default graph attributes")
  print(X.graph)
  print("node node attributes")
  print(X.nodes.data(True))
  