From: Pascale Noyret Date: Thu, 3 Jun 2010 09:58:10 +0000 (+0000) Subject: pour Map X-Git-Tag: V2_0~68 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=9c2f33ecb09c92553a2917c3253d66820edd3025;p=tools%2Feficas.git pour Map --- diff --git a/Editeur/icons/application.gif b/Editeur/icons/application.gif new file mode 100644 index 00000000..0b05d5c1 Binary files /dev/null and b/Editeur/icons/application.gif differ diff --git a/Editeur/icons/block_node.png b/Editeur/icons/block_node.png new file mode 100644 index 00000000..94b97ba8 Binary files /dev/null and b/Editeur/icons/block_node.png differ diff --git a/Editeur/icons/map.ppm b/Editeur/icons/map.ppm new file mode 100644 index 00000000..92deac89 Binary files /dev/null and b/Editeur/icons/map.ppm differ diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py index 4de0f0ae..56253a09 100644 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -34,6 +34,7 @@ import browser import readercata import qtCommun +DictExtensions= {"Map" : ".map"} @@ -523,25 +524,50 @@ class JDCEditor(QSplitter): if generator.plugins.has_key(format): # Le generateur existe on l'utilise self.generator=generator.plugins[format]() - self.dicoRun=self.generator.generRUN(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION) - if not self.generator.cr.estvide(): - self.affiche_infos("Erreur à la generation",Qt.red) - QMessageBox.critical( self, "Erreur a la generation","EFICAS ne sait pas convertir ce JDC") - return "" - for code in self.dicoRun.keys(): - txt= apply(JDCEditor.__dict__[code],(self,)) - if txt !="" : - self.textePython=self.textePython+txt + self.textePython =self.generator.generRUN(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION) if execution=="oui" : os.system(self.textePython) else: return self.textePython + + #-----------------------------# + def runYACS(self,execution="oui"): + #-----------------------------# + format=self.appliEficas.format_fichier + self.textePython="" + if generator.plugins.has_key(format): + # Le generateur existe on l'utilise + self.generator=generator.plugins[format]() + self.textePython =self.generator.generRUNYACS(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION) + if execution=="oui" : + print "il faut faire le run dans Salome" + else: + return self.textePython + #-----------------------------# - def saveRun(self): + def saveYACS(self): #-----------------------------# - texte=self.run(execution="non") - print texte + texte=self.runYACS(execution="non") + path=self.CONFIGURATION.savedir + fn = QFileDialog.getSaveFileName( self, + self.trUtf8("sauvegarde"), path, + self.trUtf8("JDC (*.py);;" "All Files (*)"),None, + QFileDialog.DontConfirmOverwrite) + if fn.isNull(): return + ext = QFileInfo(fn).suffix() + if ext.isEmpty(): fn.append(".xml") + + if QFileInfo(fn).exists(): + abort = QMessageBox.warning(self, + self.trUtf8("Sauvegarde du Fichier"), + self.trUtf8("Le fichier %1 existe deja.").arg(fn), + self.trUtf8("&Ecraser"), + self.trUtf8("&Abandonner")) + if abort == 1 : return + + fn = unicode(QDir.convertSeparators(fn)) + self.writeFile( fn, txt = texte) #-----------------------------------------#e @@ -578,7 +604,11 @@ class JDCEditor(QSplitter): self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0] ext = QFileInfo(fn).suffix() - if ext.isEmpty(): fn.append(".comm") + if ext.isEmpty(): + if DictExtensions.has_key(self.appli.code) : + fn.append(DictExtensions[self.appli.code]) + else : + fn.append(".comm") if QFileInfo(fn).exists(): abort = QMessageBox.warning(self, @@ -624,15 +654,11 @@ class JDCEditor(QSplitter): pass try : - #if 1 : self.generator.writeCuve2DG() - #else : except : pass - try : - #if 1 : self.tubePy=self.generator.getTubePy() fileTube = fn[:fn.rfind(".")] + '.py' if self.tubePy != '' : diff --git a/InterfaceQT4/monChoixMap.py b/InterfaceQT4/monChoixMap.py index ab264ffb..701f06f1 100644 --- a/InterfaceQT4/monChoixMap.py +++ b/InterfaceQT4/monChoixMap.py @@ -32,9 +32,9 @@ labels = { "s_oxides_st_1" : "Determination de l'allure de l'interface d'un oxyde donné \npour un niveau a determiner d'irradiation" , "s_oxides_st_2" : "Estimation du champ mecanique dans une couche de zircone" , "s_oxides_mt_1" : "Estimation du champ mecanique dans une couche de zircone \nprésentant des défauts et de l'énergie élastique relaxée", -"c_scc_st_1" : "Analyse morphologique et mécanique d'une couche d'oxydes", -"c_scc_st_2" : "Analyse statistique de données locales et expérimentales \nou numériques", -"s_cc_st_3" : "taux de couverture des joints de grains par des précipités", +"s_scc_st_1" : "Analyse morphologique et mécanique d'une couche d'oxydes", +"s_scc_st_2" : "Analyse statistique de données locales et expérimentales \nou numériques", +"s_scc_st_3" : "taux de couverture des joints de grains par des précipités", "s_poly_st_1" : "Estimation numérique 3D de la diffusion effective des gaz dans les polymères chargés", } @@ -42,9 +42,9 @@ labels = { dico={"oxides" : {"irradiation" : "s_oxides_st_1", "mecanique" : "s_oxides_st_2", "mecanique avec defaut" : "s_oxides_mt_1"}, - "scc" : {"analyse morphologique" : "c_scc_st_1", - "analyse statistique" : "c_scc_st_2", - "taux de couverture" : "s_cc_st_3"}, + "scc" : {"analyse morphologique" : "s_scc_st_1", + "analyse statistique" : "s_scc_st_2", + "taux de couverture" : "s_scc_st_3"}, "concrete" : {}, "polycristals" : {}, "polymers" : {"numerique 3D" : "s_poly_st_1"}, diff --git a/InterfaceQT4/qtCommun.py b/InterfaceQT4/qtCommun.py index b8b3bacf..f1c41839 100644 --- a/InterfaceQT4/qtCommun.py +++ b/InterfaceQT4/qtCommun.py @@ -268,7 +268,35 @@ class QTPanelTBW3(QTPanel): self.LENomConcept.setText("") self.LENomConcept.setText(nomConcept) self.LENomConcept.setFocus() + if self.node.item.is_reentrant(): + self.makeConceptPage_reentrant() + else : + self.listBoxASSD.close() + + def makeConceptPage_reentrant(self): + self.bOk.close() + self.LENomConcept.close() + self.Label2.close() + self.Label3.close() + self.typeConcept.close() + self.LENomConcept.close() + self.Label1.setText(QtGui.QApplication.translate("DUnASSD", "

Structures de données à enrichir\n" +" par l\'operateur courant :

", None, QtGui.QApplication.CodecForTr)) + listeNomsSD = self.node.item.get_noms_sd_oper_reentrant() + for aSD in listeNomsSD: + self.listBoxASSD.addItem( aSD) + QObject.connect(self.listBoxASSD, SIGNAL("itemDoubleClicked(QListWidgetItem*)" ), self.ClicASSD ) + + def ClicASSD(self): + if self.listBoxASSD.currentItem()== None : return + val=self.listBoxASSD.currentItem().text() + nom=str(val) + nom = string.strip(nom) + test,mess = self.node.item.nomme_sd(nom) + if (test== 0): + self.editor.affiche_infos(mess,Qt.red) + def LENomConceptReturnPressed(self): """ Nomme le concept SD retourne par l'etape diff --git a/InterfaceQT4/qtEficas.py b/InterfaceQT4/qtEficas.py index 849abee9..c1827f9e 100644 --- a/InterfaceQT4/qtEficas.py +++ b/InterfaceQT4/qtEficas.py @@ -94,6 +94,9 @@ class Appli(Ui_Eficas,QMainWindow): self.connect(self.actionTraduitV8V9,SIGNAL("activated()"),self.traductionV8V9) + def Map(self): + self.MAP() + def MAP(self): self.actionExecution = QAction(self) icon6 = QIcon(self.RepIcon+"/compute.png") @@ -103,12 +106,28 @@ class Appli(Ui_Eficas,QMainWindow): self.toolBar.addAction(self.actionExecution) self.actionExecution.setText(QApplication.translate("Eficas", "Execution", None, QApplication.UnicodeUTF8)) self.connect(self.actionExecution,SIGNAL("activated()"),self.run) + self.actionEnregistrer_Python = QAction(self) self.actionEnregistrer_Python.setObjectName("actionEnregistrer_Python") self.menuFichier.addAction(self.actionEnregistrer_Python) self.actionEnregistrer_Python.setText(QApplication.translate("Eficas", "Sauve Python", None,QApplication.UnicodeUTF8)) self.connect(self.actionEnregistrer_Python,SIGNAL("activated()"),self.saveRun) + self.actionEnregistrerYACS = QAction(self) + self.actionEnregistrerYACS.setObjectName("actionEnregistrerYACS") + self.menuFichier.addAction(self.actionEnregistrerYACS) + self.actionEnregistrerYACS.setText(QApplication.translate("Eficas", "Sauve Schema YACS", None,QApplication.UnicodeUTF8)) + self.connect(self.actionEnregistrerYACS,SIGNAL("activated()"),self.saveYACS) + + self.actionExecutionYACS = QAction(self) + icon7 = QIcon(self.RepIcon+"/application.gif") + self.actionExecutionYACS.setIcon(icon7) + self.actionExecutionYACS.setObjectName("actionExecutionYACS") + self.menuJdC.addAction(self.actionExecutionYACS) + self.toolBar.addAction(self.actionExecutionYACS) + self.actionExecutionYACS.setText(QApplication.translate("Eficas", "Execution YACS", None, QApplication.UnicodeUTF8)) + self.connect(self.actionExecutionYACS,SIGNAL("activated()"),self.runYACS) + def ajoutIcones(self) : # Pour pallier les soucis de repertoire d icone icon = QIcon(self.RepIcon+"/New24.png") @@ -350,6 +369,12 @@ class Appli(Ui_Eficas,QMainWindow): def saveRun(self): self.viewmanager.saveRun() + def runYACS(self): + self.viewmanager.runYACS() + + def saveYACS(self): + self.viewmanager.saveYACS() + def supprimer(self): self.viewmanager.handleSupprimer() diff --git a/InterfaceQT4/readercata.py b/InterfaceQT4/readercata.py index 076b7225..6d01db18 100644 --- a/InterfaceQT4/readercata.py +++ b/InterfaceQT4/readercata.py @@ -258,9 +258,10 @@ class READERCATA: def traite_clefs_documentaires(self): try: self.fic_cata_clef=os.path.splitext(self.fic_cata_c)[0]+'_clefs_docu' + print self.fic_cata_clef f=open(self.fic_cata_clef) except: - #print "Pas de fichier associé contenant des clefs documentaires" + print "Pas de fichier associé contenant des clefs documentaires" return dict_clef_docu={} diff --git a/InterfaceQT4/typeNode.py b/InterfaceQT4/typeNode.py index 49f9c458..5d1fbe6d 100644 --- a/InterfaceQT4/typeNode.py +++ b/InterfaceQT4/typeNode.py @@ -41,6 +41,7 @@ class PopUpMenuNodeMinimal : def viewDoc(self): self.node=self.tree.currentItem() cle_doc = self.node.item.get_docu() + print self.node.item.get_docu if cle_doc == None : QMessageBox.information( self.editor, "Documentation Vide", \ "Aucune documentation Aster n'est associée à ce noeud") diff --git a/InterfaceQT4/viewManager.py b/InterfaceQT4/viewManager.py index 94f037bc..e99828f1 100644 --- a/InterfaceQT4/viewManager.py +++ b/InterfaceQT4/viewManager.py @@ -85,6 +85,18 @@ class MyTabview: editor=self.dict_editors[index] editor.saveRun() + def runYACS(self): + index=self.myQtab.currentIndex() + if index < 0 : return + editor=self.dict_editors[index] + editor.runYACS() + + def saveYACS(self): + index=self.myQtab.currentIndex() + if index < 0 : return + editor=self.dict_editors[index] + editor.saveYACS() + def handleCloseAll(self): res=0 self.appliEficas.sauveRecents() diff --git a/UiQT4/desCommande.ui b/UiQT4/desCommande.ui index 72b3a67f..1f615e55 100644 --- a/UiQT4/desCommande.ui +++ b/UiQT4/desCommande.ui @@ -24,100 +24,11 @@ DComm - - - - - - 793 - 20 - - - - QFrame::NoFrame - - - QFrame::Plain - - - - - - false - - - - - - - - - Qt::Horizontal - - - - 263 - 27 - - - - - - - - - 0 - 0 - - - - - 160 - 30 - - - - - 16777215 - 30 - - - - validation de la saisie - - - &Valider - - - Shift+A, Alt+A, Alt+A, Alt+A - - - true - - - true - - - - - - - Qt::Horizontal - - - - 254 - 27 - - - - - - + - 0 + 1 @@ -172,25 +83,20 @@ Concept - + - - - Qt::Horizontal - - - - <u>Nom du concept :</u> - - - false - - - - - - - + + + + + <u>Nom du concept :</u> + + + false + + + + @@ -200,7 +106,7 @@ - + Qt::Horizontal @@ -215,56 +121,12 @@ - - - - Qt::Vertical - - - - 20 - 51 - - - - - - - - - - - - <u>Type du concept :</u> - - - false - - - - - - - L'opérateur retourne un concept de type : - - - false - - - - - - - TypeDuConcept - - - false - - - - + + + + - + Qt::Vertical @@ -272,13 +134,47 @@ 20 - 338 + 168 + + + + + + <u>Type du concept :</u> + + + false + + + + + + + L'opérateur retourne un concept de type : + + + false + + + + + + + TypeDuConcept + + + false + + + + + @@ -422,6 +318,95 @@ + + + + + 793 + 20 + + + + QFrame::NoFrame + + + QFrame::Plain + + + + + + false + + + + + + + + + Qt::Horizontal + + + + 263 + 27 + + + + + + + + + 0 + 0 + + + + + 160 + 30 + + + + + 16777215 + 30 + + + + validation de la saisie + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + + + + + Qt::Horizontal + + + + 254 + 27 + + + + + + diff --git a/convert/convert_s_poly_st_1.py b/convert/convert_s_poly_st_1.py new file mode 100644 index 00000000..22d39ba4 --- /dev/null +++ b/convert/convert_s_poly_st_1.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +""" +""" + +import parseur_python +from convert_python import * + +def entryPoint(): + """ + Retourne les informations nécessaires pour le chargeur de plugins + Ces informations sont retournées dans un dictionnaire + """ + return { + # Le nom du plugin + 'name' : 's_poly_st_1', + # La factory pour créer une instance du plugin + 'factory' : PythonParser, + } + + diff --git a/convert/convert_s_scc_st_2.py b/convert/convert_s_scc_st_2.py new file mode 100644 index 00000000..8b634a56 --- /dev/null +++ b/convert/convert_s_scc_st_2.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +""" +""" + +import parseur_python +from convert_python import * + +def entryPoint(): + """ + Retourne les informations nécessaires pour le chargeur de plugins + Ces informations sont retournées dans un dictionnaire + """ + return { + # Le nom du plugin + 'name' : 's_scc_st_2', + # La factory pour créer une instance du plugin + 'factory' : PythonParser, + } + + diff --git a/generator/generator_map.py b/generator/generator_map.py index 854bc374..76646cf6 100644 --- a/generator/generator_map.py +++ b/generator/generator_map.py @@ -57,7 +57,6 @@ class MapGenerator(PythonGenerator): print 'generation dans generator_map' self.config=config self.dictMCVal={} - self.listeTemp=[] self.text=PythonGenerator.gener(self,obj,format) self.generePythonMap() return self.text @@ -66,17 +65,27 @@ class MapGenerator(PythonGenerator): print 'generRUN dans generator_map' self.config=config self.dictMCVal={} - self.listeTemp=[] - self.text=PythonGenerator.gener(self,obj,format) - dicoRun={} + text=PythonGenerator.gener(self,obj,format) + self.texteExecution="" for code in self.dictMCVal.keys(): if code in self.__class__.__dict__.keys(): - listeTexte=apply(self.__class__.__dict__[code],(self,)) - dicoRun[code]=listeTexte - else : - dicoRun[code]="" - return dicoRun + texteCode=apply(self.__class__.__dict__[code],(self,"oui")) + self.texteExecution=self.texteExecution+texteCode + return self.texteExecution + + def generRUNYACS(self,obj,format='brut',config=None,): + print 'generRUNYACS dans generator_map' + self.config=config + self.dictMCVal={} + text=PythonGenerator.gener(self,obj,format) + self.texteExecution="" + for code in self.dictMCVal.keys(): + if code in self.__class__.__dict__.keys(): + codeYACS=str(code)+"YACS" + texteCode=apply(self.__class__.__dict__[codeYACS],(self,)) + self.texteExecution=self.texteExecution+texteCode + return self.texteExecution def generePythonMap(self) : ''' @@ -87,7 +96,7 @@ class MapGenerator(PythonGenerator): ''' for code in self.dictMCVal.keys(): if code in self.__class__.__dict__.keys(): - self.texte=apply(self.__class__.__dict__[code],(self,)) + texte=apply(self.__class__.__dict__[code],(self,"non")) def generPROC_ETAPE(self,obj): #print "PN: generPROC_ETAPE dans generatorMap" @@ -95,6 +104,15 @@ class MapGenerator(PythonGenerator): if not( self.dictMCVal.has_key(self.clefDico)): self.dictMCVal[self.clefDico]={} self.DictTemp=self.dictMCVal[self.clefDico] + else: + tempo=self.dictMCVal[self.clefDico] + self.DictTemp={} + import types + if type(tempo) == types.TupleType: + tempo.append(self.DictTemp) + self.dictMCVal[self.clefDico]=tempo + else: + self.dictMCVal[self.clefDico]=[tempo,self.DictTemp] s=PythonGenerator.generPROC_ETAPE(self,obj) return s diff --git a/generator/generator_map_OT.py b/generator/generator_map_OT.py deleted file mode 100644 index 73b5fd02..00000000 --- a/generator/generator_map_OT.py +++ /dev/null @@ -1,112 +0,0 @@ -# -*- coding: utf-8 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -""" - Ce module contient le plugin generateur de fichier au format - SEP pour EFICAS. - -""" -import traceback -import types,string,re,os - -from generator_python import PythonGenerator - - -CONFIGliste=() -MOTCLEFListe=("_CODE_NOMCODE",) - -def entryPoint(): - """ - Retourne les informations necessaires pour le chargeur de plugins - - Ces informations sont retournees dans un dictionnaire - """ - return { - # Le nom du plugin - 'name' : 'map_OT', - # La factory pour creer une instance du plugin - 'factory' : MapGenerator, - } - - -class MapGenerator(PythonGenerator): - """ - Ce generateur parcourt un objet de type JDC et produit - un texte au format eficas et - un texte au format py - - """ - # Les extensions de fichier permis? - extensions=('.comm',) - - def gener(self,obj,format='brut',config=None): - self.config=config - self.dictMCVal={} - self.text=PythonGenerator.gener(self,obj,format) - self.generePythonOT() - return self.text - - - def generePythonOT(self) : - ''' - self.dictMCVal est un dictionnaire. - ce dictionnaire a pour clef la genealogie du MCSimp suivi de sa valeur - - ''' - f = file(self.config.repIni+"/schema-openturns-template.xml","r") - chaine = f.read() - f.close() - chaine2=self.remplaceCONFIG(chaine) - chaine=self.remplaceDICO(chaine2,MOTCLEFListe) - f=open("/tmp/nouveau_scema.xml",'wb') - f.write(chaine) - f.close() - - - def generMCSIMP(self,obj) : - """ - Convertit un objet MCSIMP en texte python - Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable - """ - s=PythonGenerator.generMCSIMP(self,obj) - clef="" - for i in obj.get_genealogie() : - clef=clef+"_"+i - self.dictMCVal[clef]=obj.valeur - return s - - - def remplaceCONFIG(self,chaine) : - for mot in CONFIGliste : - rplact="%_"+mot+"%" - result=chaine.replace(rplact,self.config.__dict__[mot]) - chaine=result - return chaine - - def remplaceDICO(self,chaine,dico) : - for mot in MOTCLEFListe : - rplact="%"+mot+"%" - try : - result=chaine.replace(rplact,str(self.dictMCVal[mot])) - except : - result=chaine - chaine=result - return chaine - diff --git a/generator/generator_s_poly_st_1.py b/generator/generator_s_poly_st_1.py index 5eab6344..bc1b191d 100644 --- a/generator/generator_s_poly_st_1.py +++ b/generator/generator_s_poly_st_1.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- +# -* coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -84,8 +84,7 @@ class s_poly_st_1Generator(MapGenerator): """ - def PYGMEE(self) : - print "Generation de PYGMEE" + def PYGMEE(self,execution) : dicoPygmee=self.dictMCVal["PYGMEE"] monFichier=self.config.PATH_PYGMEE+"/pygmee_input.txt" @@ -97,22 +96,26 @@ class s_poly_st_1Generator(MapGenerator): chaine=self.remplaceDICO(chaine2,dicoPygmee) if os.path.isfile(monFichier) : - #print "je detruis pygmee_input.txt" + print "je detruis pygmee_input.txt" commande="rm -rf " + monFichier os.system (commande) f=open(monFichier,'wb') f.write(chaine) f.close() + if execution=="non" : return "" + if ('_PYGMEE_LANCEMENT' in dicoPygmee.keys()) and dicoPygmee['_PYGMEE_LANCEMENT'] == 'oui': - commande="cd "+self.config.PATH_PYGMEE+";" - commande=commande + "python "+self.config.PATH_PYGMEE+"/pygmee_v1.py" - #print commande - os.system(commande) + commande="echo '__________________';\n" + commande=commande + "echo 'execution de PYGMEE';\n" + commande=commande + "cd "+self.config.PATH_PYGMEE+";\n" + commande=commande + "python "+self.config.PATH_PYGMEE+"/pygmee_v1.py;\n" + commande=commande + "echo 'fin execution de PYGMEE';\n" + commande=commande + "echo '_____________________';\n\n\n" + return commande else: - return "" + return "" - def BENHUR(self) : - print "Generation de BENHUR" + def BENHUR(self,execution) : dicoBenhur=self.dictMCVal["BENHUR"] if ("PYGMEE" in self.dictMCVal.keys()) and '_PYGMEE_TAILLE' in self.dictMCVal['PYGMEE']: dicoBenhur["_PYGMEE_TAILLE"]=self.dictMCVal["PYGMEE"]['_PYGMEE_TAILLE'] @@ -121,7 +124,7 @@ class s_poly_st_1Generator(MapGenerator): print "Attention la variable Taille_VER non definie" finesse=str(dicoBenhur["_BENHUR_FINESSE"]) - nom_fichier_BHR=self.config.PATH_STUDY+"/"+self.config.NAME_SCHEME+"_benhur_"+finesse+".bhr" + nom_fichier_BHR=self.config.PATH_STUDY+"/"+self.config.NAME_SCHEME+"_benhur_"+finesse+".bhr" nom_BHR_Files=self.config.PATH_BENHUR+"/BHR_files.txt" #Lecture du fichier a trous @@ -129,11 +132,13 @@ class s_poly_st_1Generator(MapGenerator): chaine = f.read() f.close() chaine2=self.remplaceCONFIG(chaine,CONFIGliste) - print "chaine2 =", chaine2 chaine=self.remplaceDICO(chaine2,dicoBenhur) - print "chaine =", chaine - f=open(nom_fichier_BHR,'wb') + try : + f=open(nom_fichier_BHR,'wb') + except : + print "Pb de Generation de BENHUR" + return "" f.write(chaine) f.close() @@ -142,15 +147,26 @@ class s_poly_st_1Generator(MapGenerator): f.write("\n\n\n") f.close() + if execution=="non" : return "" if ('_BENHUR_LANCEMENT' in dicoBenhur.keys()) and dicoBenhur['_BENHUR_LANCEMENT'] == 'oui': - commande="cd "+self.config.PATH_BENHUR+";" - commande=commande + "./benhur" - print commande - os.system(commande) + commande="echo '__________________';\n" + commande=commande + "echo 'execution de BENHUR';\n" + commande=commande + "cd "+self.config.PATH_BENHUR+";\n" + commande=commande + "./benhur;\n" + commande=commande + "echo 'fin execution de BENHUR';\n" + commande=commande + "echo '________________________';\n\n\n" + return commande else: return "" + def BENHURYACS(self) : + print "dans BENHURYACS" + return "" + + def PYGMEEYACS(self) : + print "dans PYGMEEYACS" + return "" def ASTER(self) : print "Generation de ASTER" @@ -174,7 +190,6 @@ class s_poly_st_1Generator(MapGenerator): commande="cd "+self.config.PATH_MODULE+";" commande=commande + self.config.PATH_ASTER + "/as_run "+self.config.PATH_MODULE commande=commande + "/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME+"_aster.export" - print commande os.system(commande) else: return "" @@ -188,3 +203,6 @@ class s_poly_st_1Generator(MapGenerator): os.system(commande) else: return "" + + + diff --git a/generator/generator_s_scc_st_2.py b/generator/generator_s_scc_st_2.py new file mode 100644 index 00000000..01dd7d9e --- /dev/null +++ b/generator/generator_s_scc_st_2.py @@ -0,0 +1,71 @@ +# -* coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +""" + Ce module contient le plugin generateur de fichier au format + SEP pour EFICAS. + +""" +import traceback +import types,string,re,os + +from generator_map import MapGenerator + +#____________________________________________________________________________________ +# PYGMEEDict contient une equivalence entre le catalogue Map et les lignes generees +# comme entete (commentaire ?) dans le fichier d'input de pygmee +# + +CONFIGliste=('NAME_SCHEME', 'PATH_ASTER', 'PATH_BENHUR', 'PATH_MODULE', 'PATH_PYGMEE', 'PATH_STUDY', 'repIni') + + +def entryPoint(): + """ + Retourne les informations necessaires pour le chargeur de plugins + + Ces informations sont retournees dans un dictionnaire + """ + return { + # Le nom du plugin + 'name' : 's_scc_st_2', + # La factory pour creer une instance du plugin + 'factory' : s_scc_st_2Generator, + } + + +class s_scc_st_2Generator(MapGenerator): + """ + Ce generateur parcourt un objet de type JDC et produit + un texte au format eficas et + un texte au format py + + """ + + + def TABLEAU(self,execution): + dico=self.dictMCVal["TABLEAU"] + try : + a=dico['_TABLEAU_FICHIER'] + commande='echo '+a+';' + return commande + except : + print "aie aie aie" + +