docs: def hide_edge(self, edge):
          """
          Hides an edge from the graph. The edge may be unhidden at some later
          time.
          """
          try:
              head_id, tail_id, edge_data = self.hidden_edges[edge] = self.edges[edge]
              self.nodes[tail_id][0].remove(edge)
              self.nodes[head_id][1].remove(edge)
              del self.edges[edge]
          except KeyError:
              raise GraphError('Invalid edge %s' % edge)