docs: def edge_to_string(self, e):
          '''
          API: edge_to_string(self, e)
          Description:
          Return string that represents edge e in dot language.
          Input:
              e: Edge tuple in (source,sink) format.
          Pre:
              Graph should have this edge.
          Return:
              String that represents given edge.
          '''
          edge = list()
          edge.append(quote_if_necessary(str(e[0])))
          edge.append(self.edge_connect_symbol)
          edge.append(quote_if_necessary(str(e[1])))
          # return if there is nothing in self.edge_attr[e]
          if len(self.edge_attr[e]) is 0:
              return ''.join(edge)
          edge.append('  [')
          for a in self.edge_attr[e]:
              edge.append(a)
              edge.append('=')
              edge.append(quote_if_necessary(str(self.edge_attr[e][a])))
              edge.append(', ')
          edge = edge[:-1]
          edge.append(']')
          return ''.join(edge)