From 8ec477bf316cc382ecfc9de91560201f7926001b Mon Sep 17 00:00:00 2001 From: PASCALE NOYRET Date: Tue, 6 Sep 2022 16:11:08 +0200 Subject: [PATCH] sauvegarde des fichiers incertains; si le jdc n est pas valide, il est possible de sauvagrader le .comm et le _UQ.comm --- InterfaceQT4/editor.py | 6 +++--- InterfaceQT4/editorSsIhm.py | 15 +++++++++++---- convert/convert_UQPython.py | 4 ++-- generator/generator_UQ.py | 25 ++++++++++++++++++++----- generator/generator_python.py | 1 + 5 files changed, 37 insertions(+), 14 deletions(-) diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py index dae0115c..82f56cb4 100755 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -900,14 +900,14 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): if self.jdc.isValid() == 0 : msgBox = QMessageBox(None) msgBox.setWindowTitle(tr("Fichier invalide / incomplet")) - msgBox.setText(tr("Le fichier .comm est invalide / incomplet")) - msgBox.addButton(tr("&Sauvegarder le .comm"),0) + msgBox.setText(tr("Le fichier .comm est invalide / incomplet \n Seuls les .comm et _UQ.comm seront sauvegardes")) + msgBox.addButton(tr("&Sauvegarder les .comm et _UQ.comm"),0) msgBox.addButton(tr("&Quitter sans sauvegarder"),1) msgBox.addButton(tr("&Annuler"),2) res=msgBox.exec_() if res == 2 : return (0, None) if res == 0 : - ret, fichier = JDCEditorSsIhm.saveFile (self,fn) + ret, fichier = JDCEditorSsIhm.saveUQFile (self,fn) if ret : self.fichier = fichier if self.salome and ret: self.appliEficas.addJdcInSalome( self.fichier) diff --git a/InterfaceQT4/editorSsIhm.py b/InterfaceQT4/editorSsIhm.py index e75c0b7e..102a7321 100755 --- a/InterfaceQT4/editorSsIhm.py +++ b/InterfaceQT4/editorSsIhm.py @@ -567,18 +567,25 @@ class JDCEditorSsIhm : #-----------------------------------# def saveUQFile(self, fichier = None): #------------------------------------# - if fichier == None : print ("nom de fichier obligatoire pour sauvegarde"); return + if fichier == None : + self.informe ("nom de fichier obligatoire pour sauvegarde"); + return 0, None self.fichier=fichier self.generator=generator.plugins['UQ']() ret = self.generator.creeNomsFichiers(fichier) + if not ret : + self.informe('Sauvegarde UQ', self.generator.commentaire) + return ret, None ret = self.generator.gener(self.jdc) if not ret : self.informe('Sauvegarde UQ', self.generator.commentaire) - return (ret, self.generator.commentaire) + return ret, None + if ret == 2 : + self.informe('Sauvegarde UQ', self.generator.commentaire, critique=False) + return 1, fichier ret = self.generator.writeUQ(fichier) if not ret : self.informe('Sauvegarde UQ', self.generator.commentaire) - print ('ok') - return ret + return ret, fichier # --------------------------------------------- # Methodes Surchargees par avecIhm diff --git a/convert/convert_UQPython.py b/convert/convert_UQPython.py index 073308c8..06cd9aad 100644 --- a/convert/convert_UQPython.py +++ b/convert/convert_UQPython.py @@ -47,7 +47,7 @@ class pythonUQParser(Pythonparser): return text def traitementApresLoad(self,jdc): - debug=1 + debug=0 if debug : print ('traitementApresLoad') etapeIncertitude=jdc.getEtapesByName('ExpressionIncertitude') if etapeIncertitude==[] : return @@ -55,7 +55,7 @@ class pythonUQParser(Pythonparser): incertitudeInput = etapeIncertitude[0].getChildOrChildInBloc('Input') self.lesVariablesInput = incertitudeInput[0].getChildOrChildInBloc('VariableProbabiliste') for mc in self.lesVariablesInput : - if debug : print (mc,'mc') + #if debug : print (mc,'mc') mcVDPath=mc.getChild('MCPath').valeur if debug : print(mcVDPath) # a modifier lorsque le MCPath comprendra le nom des OPERs diff --git a/generator/generator_UQ.py b/generator/generator_UQ.py index 40627a1d..39ae154a 100644 --- a/generator/generator_UQ.py +++ b/generator/generator_UQ.py @@ -71,10 +71,12 @@ class UQGenerator(PythonGenerator): self.indent1 = ' ' self.nomsDesVariablesInput2 = [] - #print (jdc.code) if jdc.nature != 'JDC' or not jdc.isValid(): - self.commentaire= 'il faut un JDC Valide' - return 0 + ret, commentaire = self.sauveUniquementCommEt_UQComm(jdc) + if not ret : return (ret, commentaire) + self.commentaire = 'Le JDC doit etre valide pour generer le script de lancement et le fichier à balises\n' + self.commentaire += 'Seuls les fichiers _UQ.comm et .comm ont été sauvegardés' + return 2 self.jdc=jdc ret, commentaire = self.analyseIncertitude() if not ret : @@ -87,7 +89,6 @@ class UQGenerator(PythonGenerator): return self.text def creeNomsFichiers(self,fichier): - print ('creeNomsFichiers', fichier) self.cheminFichierComm=os.path.abspath(os.path.dirname(fichier)) if fichier.endswith('.comm'): self.fichierSansSuffixe=os.path.basename(fichier[:-5]) @@ -97,16 +98,30 @@ class UQGenerator(PythonGenerator): self.fichierUQBalise = self.fichierSansSuffixe+'_UQBalise.comm' self.fichierUQExe = self.fichierSansSuffixe+'_UQ.py' self.fichierUQModule = os.path.basename(self.fichierUQExe)[:-3] + return (1, '') else: return (0, 'le fichier jeux de données |'+fichier+'| doit être suffixé par .comm') + def sauveUniquementCommEt_UQComm(self, jdc): + self.inGenerUQ=False + self.forceGenerUQ=False + self.text=PythonGenerator.gener(self,jdc,'beautifie') + fichierComm = os.path.join(self.cheminFichierComm,self.fichierSansSuffixe)+'.comm' + if not self.writeFile(fichierComm) : return (0, 'impossible de sauvegarder le .comm') + self.forceGenerUQ=True + self.text=PythonGenerator.gener(self,jdc,'beautifie') + fichierUQComm = os.path.join(self.cheminFichierComm,self.fichierUQComm) + if not self.writeFile(fichierUQComm) : return (0, 'impossible de sauvegarder le _UQ.comm') + return (1, '') + + def writeUQ(self,fichier): # il manque le checksum fichierUQComm = os.path.join(self.cheminFichierComm,self.fichierUQComm) fichierUQBalise = os.path.join(self.cheminFichierComm,self.fichierUQBalise) fichierUQExe = os.path.join(self.cheminFichierComm,self.fichierUQExe) - if not self.writeFile(fichierUQComm) : return (0, 'impossible de sauvegarder le .comm') + if not self.writeFile(fichierUQComm) : return (0, 'impossible de sauvegarder le _UQ.comm') try : with open(fichierUQBalise, "w") as fp: fp.write(self.textUQ) diff --git a/generator/generator_python.py b/generator/generator_python.py index 7d27406d..15df65ea 100644 --- a/generator/generator_python.py +++ b/generator/generator_python.py @@ -405,6 +405,7 @@ class PythonGenerator(object): Cette methode convertit une PROC etape en une liste de chaines de caracteres a la syntaxe python """ + if obj.nom == 'ExpressionIncertitude' and (not hasattr(self, 'forceGenerUQ') or not(self.forceGenerUQ)) : return '' l=[] label=obj.definition.nom+'(' l.append(label) -- 2.39.2