def add_edge(self, fr, to):
        """ Add an edge to the graph. Multiple edges between the same vertices will quietly be ignored. N-partite graphs
        can be used to permit multiple edges by partitioning the graph into vertices and edges.

        :param fr: The name of the origin vertex.
        :param to: The name of the destination vertex.
        :return:
        """
        fr = self.add_vertex(fr)
        to = self.add_vertex(to)
        self.adjacency[fr].children.add(to)
        self.adjacency[to].parents.add(fr)
def add_edge ( self , fr , to ) : fr = self . add_vertex ( fr ) to = self . add_vertex ( to ) self . adjacency [ fr ] . children . add ( to ) self . adjacency [ to ] . parents . add ( fr )
Add an edge to the graph. Multiple edges between the same vertices will quietly be ignored. N-partite graphs
        can be used to permit multiple edges by partitioning the graph into vertices and edges.

        :param fr: The name of the origin vertex.
        :param to: The name of the destination vertex.
        :return: