Delete an edge from the graph.

        Args:
            ind_node (str): The independent node to delete an edge from.
            dep_node (str): The dependent node that has a dependency on the
                            ind_node.

        Raises:
            KeyError: Raised when the edge doesn't already exist.

def delete_edge(self, ind_node, dep_node):
        """ Delete an edge from the graph.

        Args:
            ind_node (str): The independent node to delete an edge from.
            dep_node (str): The dependent node that has a dependency on the
                            ind_node.

        Raises:
            KeyError: Raised when the edge doesn't already exist.
        """
        graph = self.graph
        if dep_node not in graph.get(ind_node, []):
            raise KeyError(
                "No edge exists between %s and %s." % (ind_node, dep_node)
            )
        graph[ind_node].remove(dep_node)