docs: def remove_duplicate_edges_directed(dg):
      """Removes duplicate edges from a directed graph."""
      # With directed edges, we can just hash the to and from node id tuples and if
      # a node happens to conflict with one that already exists, we delete it
  
      # --For aesthetic, we sort the edge ids so that lower edge ids are kept
      lookup = {}
      edges = sorted(dg.get_all_edge_ids())
      for edge_id in edges:
          e = dg.get_edge(edge_id)
          tpl = e['vertices']
          if tpl in lookup:
              dg.delete_edge_by_id(edge_id)
          else:
              lookup[tpl] = edge_id