docs: def edge_tuple(self, vertex0_id, vertex1_id):
          """To avoid duplicate edges where the vertex ids are reversed,
          we maintain that the vertex ids are ordered so that the corresponding
          pathway names are alphabetical.
  
          Parameters
          -----------
          vertex0_id : int
            one vertex in the edge
          vertex1_id : int
            the other vertex in the edge
  
          Returns
          -----------
          tup(int, int)|None, the edge id or None if the vertices do not
          exist in the network or they map to the same pathway (there should not
          be any self-loops in the network)
          """
          pw0 = self.__getitem__(vertex0_id)
          pw1 = self.__getitem__(vertex1_id)
  
          if not pw0 or not pw1:
              return None
          if pw0 < pw1:
              return (vertex0_id, vertex1_id)
          elif pw0 > pw1:
              return (vertex1_id, vertex0_id)
          else:
              return None