Example #1
0
def test_dot_tools(process):
    runner = fair_bpm.FlexibleJobRunner()
    job = process.createJob(111)
    runner.execute_job(job)
    tree = parse(job.to_dot())
    assert len(str(tree)) > 10
    g = SimpleGraph.build(tree.kid('Graph'))
    assert len(g.nodes) == 4
    assert len(g.edges) == 3
    assert g.nodes['id44']['state'] == 'COMPLETE'
Example #2
0
def test_run_job(process):
    ps = process

    runner = fair_bpm.FlexibleJobRunner()

    print("ps=" + str(ps))

    job = ps.createJob(111)
    runner.execute_job(job)
    tree = parse(job.to_dot())
    g = SimpleGraph.build(tree.kid('Graph'))
    for node in g.nodes:
        # print("Node -> "+str(node))
        assert g.nodes[node]['state'] == 'COMPLETE'
Example #3
0
    def parse(cls, dot):
        tree = parse(dot)
        id = tree.kid('Graph').children[1].label
        g = SimpleGraph.build(tree.kid('Graph'))
        ps = Process(id)
        for node in g.nodes:
            #print("About to parse node "+str(node))
            ps.activities.append(Activity.parse_from_dot(node, g.nodes[node]))
        for edge in g.edges:
            parent = ps.find_activity_by_id(edge[0])
            child = ps.find_activity_by_id(edge[1])
            if edge[2]:
                child.add_parent([parent.id, edge[2]])
            else:
                child.add_parent(parent.id)

        return ps
Example #4
0
    def build(type, *args, **kwargs):
        self = None
        if type == 'dot':
            self = Graph()
            sg = SimpleGraph.build(*args, **kwargs)
            self.nodes = sg.nodes
            self.edges = sg.edges
            self.index = sg.index
        elif type == 'veg':
            self = Graph.build_veg(*args, **kwargs)
        else:
            raise Exception, "Unknown graph type"

        self.eindex = dict()
        self.reindex = dict()
        for s, t, _ in self.edges:
            self.eindex[s] = targs = self.eindex.get(s, list())
            targs.append(t)
            self.reindex[t] = srcs = self.reindex.get(t, list())
            srcs.append(s)

        return self
Example #5
0
File: graph.py Project: z420/jpdg
    def build(type, *args, **kwargs):
        self = None
        if type == 'dot':
            self = Graph()
            sg = SimpleGraph.build(*args, **kwargs)
            self.nodes = sg.nodes
            self.edges = sg.edges
            self.index = sg.index
        elif type == 'veg':
            self = Graph.build_veg(*args, **kwargs)
        else:
            raise Exception, "Unknown graph type"

        self.eindex = dict()
        self.reindex = dict()
        for s, t, _ in self.edges:
            self.eindex[s] = targs = self.eindex.get(s, list())
            targs.append(t)
            self.reindex[t] = srcs = self.reindex.get(t, list())
            srcs.append(s)

        return self
from dot_tools import parse
from dot_tools.dot_graph import SimpleGraph
import pickle
import sys
import warnings
warnings.filterwarnings("ignore")

filename = sys.argv[1]

with open(filename,"r") as fin:
	dotStr = fin.read()
	tree = parse(dotStr)
	g = SimpleGraph.build(tree.kid('Graph'))
	#print g.nodes.keys()
	#print g.edges
	
	try:
		name = filename.split('/')[-1].split('.')[0]
	except:
		name = "pickle_file"
	with open(name+".pickle","wb") as fin:
		pickle.dump(g.nodes.keys(),fin)
		pickle.dump(g.edges,fin)
	
	
Example #7
0
 def parse_to_simple_graph(cls, dot):
     tree = parse(dot)
     g = SimpleGraph.build(tree.kid('Graph'))
     return g
def DOTParser(pdgfile):
    with open(pdgfile, "r") as fin:
        dotStr = fin.read()
        tree = parse(dotStr)
        graph = SimpleGraph.build(tree.kid('Graph'))
    return graph