Esempio n. 1
0
def pmlCheck():
    #if request.method == 'POST':
        text = request.form["text"]

        if text:
            with tempfile.NamedTemporaryFile(mode='w+t', suffix='.pml', delete=False ) as file:#open(path) as file:
                name = file.name
                basename, ext = os.path.splitext(name)
                path = os.path.join(basename + '.pml')

                file.write(text)
                file.flush()
                try:
                    #check for error to avoid dot error later on
                    output_res, error = test.pmlCheckT(name)

                    if error:
                        error = error.strip().replace(name + ':', "Line number ")
                        return render_template('graph.html', result=error, output=text)

                    output_res = output_res.strip().replace(name + ':', "Line number ")#'No Errors Detected'

                    return render_template('graph2.html', result=output_res, output=text)

                except subprocess.CalledProcessError as err:
                    return err.output.decode(), 400
Esempio n. 2
0
def graphAgentColored():
    #if request.method == 'POST':
        text = request.form["text"]

        if text:
            with tempfile.NamedTemporaryFile(mode='w+t', suffix='.pml') as file:#open(path) as file:
                name = file.name
                basename, ext = os.path.splitext(name)
                path = os.path.join(basename + '.pml')

                file.write(text)
                file.flush()
                try:

                    #check for error to avoid dot error later on
                    output_res,error = test.pmlCheckT(name)

                    if error:
                        error = error.strip().replace(name + ':', "Line number ")
                        return render_template('graph.html', result=error, output=text)
                    
                    agentColored = test.traverse(pmlfile=name, flag='-f')

                    Graph2 = pgv.AGraph(agentColored)
                    filename3 = 'graph'  + time.strftime("%Y%m%d-%H%M%S") +'.svg'
                    Graph2.draw(BUCKET_PATH + filename3, prog="dot")

        
                    output_res = output_res.strip().replace(name + ':', "Line number ")

                    #return graph
                    listFiles = url_for('uploaded_file' , filename= filename3)

                    return render_template('graph2.html', result=output_res, output=text, imgpath=listFiles)

                except subprocess.CalledProcessError as err:
                    return err.output.decode()#, 400
Esempio n. 3
0
def graphAnalysisColored():
    #if request.method == 'POST':
        text = request.form["input2"]

        if text:
            with tempfile.NamedTemporaryFile(mode='w+t', suffix='.pml', delete=False ) as file:#open(path) as file:
                name = file.name
                basename, ext = os.path.splitext(name)
                path = os.path.join(basename + '.pml')

                file.write(text)
                file.flush()
                try:

                    #check for error to avoid dot error later on
                    output_res, error = test.pmlCheckT(name)

                    if error:
                        error = error.strip().replace(name + ':', "Line number ")
                        return render_template('graph.html', result=error, output=text)

                    finalgraph = test.graph_analysis(pmlfile=name, flag='-n')


                    Graph = pgv.AGraph(finalgraph)
                    filename1 = 'graph'  + time.strftime("%Y%m%d-%H%M%S") +'.svg'
                    Graph.draw(BUCKET_PATH + filename1, prog="dot")


                    output_res = output_res.strip().replace(name + ':', "Line number ")#'No Errors Detected'

                    listFiles = url_for('uploaded_file' , filename=filename1 )

                    return render_template('graph2.html', result=output_res, output=text, imgpath=listFiles, legend='static/fonts/Legends.png')

                except subprocess.CalledProcessError as err:
                    return err.output.decode(), 400