コード例 #1
0
ファイル: refining_test.py プロジェクト: PYLRR/Cyclos
 def test_refining_first_criteria(self):
     t = os.getcwd().split('/')
     if t[len(t) - 1] == "Cyclos":
         res = parseFromFile("./src/tests/parser/protocolForTests")
     else:
         res = parseFromFile("../parser/protocolForTests")
     marking = res.marking_first_criteria([])
コード例 #2
0
ファイル: refining_test.py プロジェクト: PYLRR/Cyclos
    def initProtocol(self, name):
        t = os.getcwd().split('/')
        if t[len(t) - 1] == "Cyclos":
            res = parseFromFile("./src/tests/parser/" + name)
        else:
            res = parseFromFile("../parser/" + name)

        matrices = res.refining()
        return matrices
コード例 #3
0
    def graph_generation(self):  #tester avec ../tests/parser/protocolForTests
        self.model.removeRows(0, self.model.rowCount())
        print(self.chemin.text())
        protocol = parseFromFile(self.chemin.text())
        self.ficherEnregistrementProtocol = open(protocol.name + " parsé.txt",
                                                 "w")

        print("\n\nVARIABLES FOUND :")
        for var in protocol.listVar:
            if (not (var.isDeclaredOnTheFly())):
                print(var)
                self.ficherEnregistrementProtocol.write(
                    var.toStringOnVarDeclaration() + "\n")
                item = QtGui.QStandardItem(var.toStringOnVarDeclaration())
                self.model.appendRow(item)
        self.ficherEnregistrementProtocol.write("\n\n")
        self.model.appendRow("")
        self.model.appendRow("")
        print("\n\nTRANSACTIONS FOUND :")
        for trans in protocol.listTransactions:
            self.ficherEnregistrementProtocol.write(trans.label + "\n")
            print(trans.label)
            item = QtGui.QStandardItem(trans.label)
            self.model.appendRow(item)
            for action in trans.actions:
                act = action.__str__()
                print("-" + act)
                self.ficherEnregistrementProtocol.write(act + "\n")
                item = QtGui.QStandardItem(act)
                self.model.appendRow(item)
            self.ficherEnregistrementProtocol.write("\n")
            self.model.appendRow("")
        # Apply the model to the list view
        self.protocol.setModel(self.model)
        print("\n\nTYPES FOUND :")
        for type in protocol.listTypes:
            print(type)
        self.ficherEnregistrementProtocol.close()
        nxgraph = getnxFromDependencies(protocol,
                                        protocol.build_dependencies())
        self.figure.clf()
        self.canvas.draw_idle()
        savenxGraph(nxgraph, self.chemin.text() + "-graph.png")
        protocol.reset()
コード例 #4
0
 def setUp(self):
     t = os.getcwd().split('/')
     if t[len(t) - 1] == "Cyclos":
         self.res = parseFromFile("./src/tests/parser/protocolForTests")
     else:
         self.res = parseFromFile("./protocolForTests")
コード例 #5
0
ファイル: Cyclos.py プロジェクト: PYLRR/Cyclos
    def graph_generation(self):  # tester avec ../tests/parser/protocolForTests
        self.errortext.hide()
        print(self.chemin.text())
        self.model.removeRows(0, self.model.rowCount())
        self.protocole = Protocol()
        self.errortext.setText("")
        self.graphReset()
        try:
            # parse protocol file
            self.protocole = parseFromFile(self.chemin.text())
            # save the parse protocol in files and print in the list
            self.ficherEnregistrementProtocol = open(
                os.path.splitext(self.chemin.text())[0] + " parsed.txt",
                "w",
                encoding="utf-8",
                errors='ignore')
            # Public variables
            self.model.appendRow(QtGui.QStandardItem("public:"))
            self.ficherEnregistrementProtocol.write("public:\n")
            for var in self.protocole.listVar:
                if not var.isDeclaredOnTheFly() and var.public:
                    self.ficherEnregistrementProtocol.write(
                        var.toStringOnVarDeclaration() + "\n")
                    item = QtGui.QStandardItem(var.toStringOnVarDeclaration())
                    self.model.appendRow(item)
            self.ficherEnregistrementProtocol.write("\n\n")
            self.model.appendRow("")

            # Private variables
            self.model.appendRow(QtGui.QStandardItem("private:"))
            self.ficherEnregistrementProtocol.write("private:\n")
            for var in self.protocole.listVar:
                if not var.isDeclaredOnTheFly() and not var.public:
                    self.ficherEnregistrementProtocol.write(
                        var.toStringOnVarDeclaration() + "\n")
                    item = QtGui.QStandardItem(var.toStringOnVarDeclaration())
                    self.model.appendRow(item)
            self.ficherEnregistrementProtocol.write("\n\n")
            self.model.appendRow("")

            # Transactions
            for trans in self.protocole.listTransactions:
                self.model.appendRow("")
                for action in trans.actions:
                    act = action.__str__()
                    self.ficherEnregistrementProtocol.write(act + "\n")
                    item = QtGui.QStandardItem(act)
                    self.model.appendRow(item)
                self.ficherEnregistrementProtocol.write("\n")

            # Apply the model to the list view
            self.protocolListView.setModel(self.model)
            self.ficherEnregistrementProtocol.close()
            # Test typeCompliance
            # self.protocole.testTypeCompliance()
            if self.refiningswitchbutton.check:
                print("Refining ON")
            else:
                print("Refining OFF")
            # Display of the graph
            self.oldgraph = self.nxgraph
            if self.refiningswitchbutton.check:
                self.nxgraph = getnxFromDependencies(self.protocole,
                                                     self.protocole.refining())
            else:
                self.nxgraph = getnxFromDependencies(
                    self.protocole, self.protocole.build_dependencies())
            self.nxgraph.setOldAttributesDraw(self.oldgraph)
            self.drawGraph()
            if self.nxgraph.isAcyclic():
                self.acyclicity.setText("The dependency graph is acyclic")
            else:
                self.acyclicity.setText("The dependency graph is cyclic")

                self.__showCyclesPosition()  # prints for ex. 1/3

                self.layoutAcyclicity.addWidget(self.cycle)
            # self.nxgraph.saveGraph(os.path.splitext(self.chemin.text())[0]
            #                       + ('', ' Sequences')[self.nxgraph.drawSeq]
            #                       + ('', ' Data')[self.nxgraph.drawData]
            #                       + ('', ' Key')[self.nxgraph.drawKey]
            #                       + ('', ' refined')[self.refiningswitchbutton.check] + " graph.png")
            self.generated = True
        except FileNotFoundError as err:
            print(err)
            self.graphReset()
            self.errortext.setText("Protocole file Not found: {0}".format(err))
            self.errortext.show()
        except ProtocolError as err:
            print(err)
            self.graphReset()
            self.errortext.setText(
                "Error in the protocole description: {0}".format(err))
            self.errortext.show()
コード例 #6
0
def getnxFromProtocolFile(protocol_path):
    res = parseFromFile(protocol_path)
    return getnxFromDependencies(res, res.build_dependencies())