def del_edge(self, src_or_list, dst=None, index=None):
if isinstance( src_or_list, (list, tuple)):<EOL><INDENT>if dst is not None and isinstance(dst, int):<EOL><INDENT>index = dst<EOL><DEDENT>src, dst = src_or_list<EOL><DEDENT>else:<EOL><INDENT>src, dst = src_or_list, dst<EOL><DEDENT>if isinstance(src, Node):<EOL><INDENT>src = src.get_name()<EOL><DEDENT>if isinstance(dst, Node):<EOL><INDENT>dst = dst.get_name()<EOL><DEDENT>if (src, dst) in self.obj_dict['<STR_LIT>']:<EOL><INDENT>if index is not None and index < len(self.obj_dict['<STR_LIT>'][(src, dst)]):<EOL><INDENT>del self.obj_dict['<STR_LIT>'][(src, dst)][index]<EOL>return True<EOL><DEDENT>else:<EOL><INDENT>del self.obj_dict['<STR_LIT>'][(src, dst)]<EOL>return True<EOL><DEDENT><DEDENT>return False<EOL>
Delete an edge from the graph.

        Given an edge's (source, destination) node names all
        matching edges(s) will be deleted if 'index' is not
        specified or set to None.
        If there are several matching edges and 'index' is
        given, only the edge in that position will be deleted.

        'index' should be an integer specifying the position 
        of the edge to delete. If index is larger than the
        number of matching edges, no action is taken.

        If edges are deleted it returns True. If no action
        is taken it returns False.