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([])
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
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()
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")
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()
def getnxFromProtocolFile(protocol_path): res = parseFromFile(protocol_path) return getnxFromDependencies(res, res.build_dependencies())