示例#1
0
def persist_graph(request, graph_id):
    import pygraphviz as P
    import networkx as N

    graph = Graph.objects.get(pk=graph_id)
    dot_path = graph.dot_file.storage.location + '/' + graph.dot_file.name
    G = P.AGraph()  # init empty graph
    try:

        G.read(dot_path)  #read file
        nodes = G.nodes()
        edges = G.edges()
        Node.objects.filter(graph__id=graph_id).delete()
        Edge.objects.filter(graph__id=graph_id).delete()
        for node in nodes:
            new_node = Node()
            new_node.graph = graph
            new_node.name = node
            new_node.label = node.attr['label']
            new_node.save()
        for edge in edges:
            new_edge = Edge()
            new_edge.graph = graph
            new_edge.name = edge
            new_edge.save()
    except:
        return False
    return HttpResponse(pygraphviz_graph(request, G))  #response
示例#2
0
def persist_graph(request, graph_id):
    import pygraphviz as P
    import networkx as N
    
    graph = Graph.objects.get(pk=graph_id)
    dot_path = graph.dot_file.storage.location + '/' + graph.dot_file.name
    G = P.AGraph() # init empty graph
    try:
         
        G.read(dot_path) #read file      
        nodes = G.nodes()
        edges = G.edges() 
        Node.objects.filter(graph__id=graph_id).delete()
        Edge.objects.filter(graph__id=graph_id).delete()               
        for node in nodes:            
            new_node = Node()
            new_node.graph = graph
            new_node.name = node
            new_node.label = node.attr['label']
            new_node.save()
        for edge in edges:
            new_edge = Edge()
            new_edge.graph = graph
            new_edge.name = edge
            new_edge.save()
    except:
        return False
    return HttpResponse(pygraphviz_graph(request, G)) #response
示例#3
0
	def connect(cls,entity0,entity1):
		edge = Edge(entity0, entity1, name=cls.name)
		edge.save()