def convert_dependencies_to_graph(dependencies):
    graph = DependencyGraph()
    root_node = None
    assert (len(dependencies) > 0)
    #Try to find root
    for dep in dependencies:
        if dep[0] == 'root':
            root_node = Node(dep[1])
            first_real_node = Node(dep[2])
            root_edge = Edge(root_node, first_real_node, dep[0])
            root_node.edges.append(root_edge)
            graph.root_node = root_node
            graph.add_node(root_node)
            graph.add_node(first_real_node)
            graph.add_edge(root_edge)
            break
    if root_node is not None:
        _construct_subgraph(dependencies, first_real_node, graph)
    return graph
def convert_dependencies_to_graph(dependencies):
	graph = DependencyGraph()
	root_node = None
	assert(len(dependencies) > 0)
	#Try to find root
	for dep in dependencies:
		if dep[0] == 'root':
			root_node = Node(dep[1])
			first_real_node = Node(dep[2])
			root_edge = Edge(root_node, first_real_node, dep[0])
			root_node.edges.append(root_edge)
			graph.root_node = root_node
			graph.add_node(root_node)
			graph.add_node(first_real_node)
			graph.add_edge(root_edge)
			break
	if root_node is not None:
		_construct_subgraph(dependencies, first_real_node, graph)
	return graph