From 7d8c8e4b0cc3b1003039da379836ec45aa1b916c Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Mon, 25 Apr 2016 15:04:00 +0200 Subject: [PATCH] sauve au 25/04/2016 --- Extensions/localisation.py | 7 +- InterfaceQT4/monLabelClic.py | 6 +- InterfaceQT4/monRecherche.py | 2 +- convert/convert_TELEMAC.py | 293 +++++++++++++++++++++++++-------- convert/enumTelemac.py | 11 -- generator/generator_TELEMAC.py | 82 ++++++++- generator/generator_python.py | 2 +- 7 files changed, 311 insertions(+), 92 deletions(-) delete mode 100644 convert/enumTelemac.py diff --git a/Extensions/localisation.py b/Extensions/localisation.py index 25e1e2e6..36c47f3d 100644 --- a/Extensions/localisation.py +++ b/Extensions/localisation.py @@ -20,6 +20,7 @@ and installs them to a ``QApplication``. """ +import os from determine import monEnvQT5 if monEnvQT5 : from PyQt5.QtCore import QTranslator @@ -47,10 +48,12 @@ def localise(application, locale=None ): from PyQt5.QtCore import QLibraryInfo from PyQt5.QtCore import QLocale from PyQt5.QtWidgets import QApplication + monPath=os.path.join(os.path.dirname(__file__),'..','UiQT5') else : from PyQt4.QtCore import QLibraryInfo from PyQt4.QtCore import QLocale from PyQt4.QtGui import QApplication + monPath=os.path.join(os.path.dirname(__file__),'..','UiQT4') sys_locale = QLocale.system().name() @@ -71,8 +74,8 @@ def localise(application, locale=None ): # print "Unable to load Qt base translator!" global eficas_translator - import os - monPath=os.path.join(os.path.dirname(__file__),'..','UiQT4') + if locale=="ang" : locale="en" + #print "eficas_" + locale, monPath if eficas_translator.load("eficas_" + locale, monPath): QApplication.installTranslator(eficas_translator) else: diff --git a/InterfaceQT4/monLabelClic.py b/InterfaceQT4/monLabelClic.py index e1dea24d..65eb1209 100644 --- a/InterfaceQT4/monLabelClic.py +++ b/InterfaceQT4/monLabelClic.py @@ -36,8 +36,10 @@ class MonLabelClic(QLabel) : QLabel.__init__(self,parent) # Pas propre mais impossible de faire fonctionner isinstance sur Groupe, MonWidgetCommande # PNPNPN ? a ameliorer - if isinstance (parent,QFrame): - parent=parent.parent() + if isinstance (parent,QFrame): parent=parent.parent() + while not( hasattr(parent,'traiteClicSurLabel')) : + try : parent=parent.parent() + except : print "pb avec MonLabelClic"; break self.parent=parent diff --git a/InterfaceQT4/monRecherche.py b/InterfaceQT4/monRecherche.py index a0f6a664..0f843306 100644 --- a/InterfaceQT4/monRecherche.py +++ b/InterfaceQT4/monRecherche.py @@ -24,7 +24,7 @@ from desRecherche import Ui_desRecherche from determine import monEnvQT5 if monEnvQT5: from PyQt5.QtWidgets import QDialog - from PyQt4.QtCore import Qt + from PyQt5.QtCore import Qt else : from PyQt4.QtGui import * from PyQt4.QtCore import * diff --git a/convert/convert_TELEMAC.py b/convert/convert_TELEMAC.py index cbc9e9c8..af7f42eb 100644 --- a/convert/convert_TELEMAC.py +++ b/convert/convert_TELEMAC.py @@ -27,16 +27,37 @@ from convert_python import PythonParser pattern_comment_slash = re.compile(r"^\s*/") pattern_eta = re.compile(r".*&ETA.*") pattern_fin = re.compile(r".*&FIN.*") -pattern_blanc = re.compile(r"^ *$") -pattern_OUI = re.compile(r"^ *OUI *") -pattern_oui = re.compile(r"^ *oui *") -pattern_NON = re.compile(r"^ *NON *") -pattern_non = re.compile(r"^ *non *") -pattern_vide = re.compile(r"^ *$") +pattern_oui = re.compile(r"^\s*(oui|OUI|YES|yes|TRUE|VRAI)\s*$") +pattern_non = re.compile(r"^\s*(non|NON|NO|no|FALSE|FAUX)\*s$") +pattern_blanc = re.compile(r"^\s*$") +pattern_listeVide = re.compile(r"^\s*'\s*'\s*$") -from aideAuxConvertisseurs import DicoEficasToCas, ListeSupprimeCasToEficas -from aideAuxConvertisseurs import ListeCalculCasToEficas, DicoAvecMajuscules -from enumDicoTelemac2 import DicoEnumCasEn +pattern_ligne=re.compile(r'^\s*(?P[^=:]*)\s*[:=]\s*(?P.*)$') + +# Attention aux listes de flottants +pattern_liste=re.compile(r'^\s*(?P[+-.\w]+(\s*;\s*[+-.\w]+)+)\s*(?P.*)$') +pattern_flottant=re.compile(r'^\s*(?P[+-]?((\d+(\.\d*)?)|(\.\d+))([dDeE][+-]?\d+)?)\s*(?P.*)$') +pattern_texteQuote = re.compile (r"^\s*(?P'[^']+(''[^']+)*')\s*(?P.*)$") +pattern_texteSimple = re.compile (r"(?P(^|\s)\s*[\w\.-]+)\s*(?P.*)$") +pattern_texteVide = re.compile (r"^\s*(?P'')\s*(?P.*)$") + +pattern_ContientDouble=re.compile (r"^.*''.*$") + + +# le pattern texte reconnait +#nom1 nom 2 : ou = chaine entre ' +# avec eventuellement des quotes au milieu par exemple +# TITRE = 'TELEMAC 2D : GOUTTE D''EAU DANS UN BASSIN$' +# m.group("texte") va rendre 'TELEMAC 2D : GOUTTE D''EAU DANS UN BASSIN$' + + +#Si le code n est pas Telemac +try : + from aideAuxConvertisseurs import DicoEficasToCas, ListeSupprimeCasToEficas + from aideAuxConvertisseurs import ListeCalculCasToEficas, DicoAvecMajuscules + from enumDicoTelemac2 import DicoEnumCasEn +except : + pass from Extensions import localisation @@ -75,54 +96,78 @@ class TELEMACParser(PythonParser): l_lignes = string.split(self.text,'\n') self.dictSimp={} for ligne in l_lignes : + if pattern_comment_slash.match(ligne) : continue if pattern_eta.match(ligne) : continue if pattern_fin.match(ligne) : continue if pattern_blanc.match(ligne) : continue - ligne=re.sub('\t',' ',ligne) - ligne=re.sub("'",' ',ligne) - ligne=re.sub(":",'=',ligne) - if ligne.count('=') != 1 : - print "pb avec la ligne " , ligne - continue - - motsInLigne=string.split(ligne,' ') - listeMotsSimp=() - simp="" - for mot in motsInLigne: - if mot == "" : continue - if mot == "=" : - simp=simp[0:-1] - while simp[-1] == " " : simp=simp[0:-1] - if simp.find('-') > 0 : simp=self.redecoupeSimp(simp) - break - - mot=mot.replace('_','__') - simp=simp+mot[0].upper() +mot[1:].lower()+'_' - valeur=ligne.split('=')[1] - self.dictSimp[simp]=valeur + + finLigne=ligne + while finLigne != "" : + print finLigne + valeur="" + m=pattern_ligne.match(finLigne) + if m == None : + print "________________________________________________" + print 'pb avec ****', finLigne , '**** dans ', ligne + print "________________________________________________" + break - - #print dictSimp - #print self.dicoInverseFrancais + simp=self.traiteIdent(m.group('ident')) + finLigne=m.group('reste') + + # attention, l ordre des if est important + if pattern_liste.match(finLigne) : + m=pattern_liste.match(finLigne) + elif pattern_texteQuote.match(finLigne) : + m=pattern_texteQuote.match(finLigne) + elif pattern_flottant.match(finLigne) : + m=pattern_flottant.match(finLigne) + elif pattern_texteVide.match(finLigne): + m=pattern_texteVide.match(finLigne) + elif pattern_texteSimple.match(finLigne): + m=pattern_texteSimple.match(finLigne) + else : + print "________________________________________________" + print 'pb avec ****', finLigne , '**** dans ', ligne + print "non match" + print "________________________________________________" + break + + valeur=m.group('valeur') + if pattern_blanc.match(valeur) : valeur=None - dicoParMC={} - #print ListeCalculCasToEficas + if pattern_flottant.match(finLigne) : + valeur=re.sub("d","e",valeur) + valeur=re.sub("D","E",valeur) + + if pattern_liste.match(finLigne): + valeur=valeur.split(";") - if 'Titre' not in self.dictSimp.keys(): + finLigne=m.group('reste') + #print simp + #print valeur + #print finLigne + self.dictSimp[simp]=valeur + + if 'Title' not in self.dictSimp.keys() and 'Titre' not in self.dictSimp.keys(): import os self.dictSimp['Titre']=os.path.basename(self.filename) + dicoParMC={} for simp in self.dictSimp.keys(): - if simp in ListeSupprimeCasToEficas: continue + #print simp, " : ", self.dictSimp[simp] + if simp in TELEMACParser.__dict__.keys() : apply(TELEMACParser.__dict__[simp],(self,)) for simp in self.dictSimp.keys(): + if simp in ListeSupprimeCasToEficas: continue if simp not in self.dicoInverseFrancais.keys() : print "************" - print "pb avec ", simp,'------' + print "pb avec dans dicoInverseFrancais", simp,'------' print "************" + print poum continue listeGenea=self.dicoInverseFrancais[simp] listeGeneaReverse=[] @@ -146,16 +191,48 @@ class TELEMACParser(PythonParser): #print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" listeMC=self.tri(dicoParMC.keys()) for k in listeMC : - print "----------- traitement de " , k + #print "----------- traitement de " , k self.textePy += self.dicoFrancaisAnglais[k] + "(" self.traiteMC(dicoParMC[k]) self.textePy += ");\n" - print "----------- " + #print "----------- " print self.textePy return self.textePy + #---------------------------------------- + def redecoupeSimp(self,simp): + # traite les - dans les identifants python + # les remplace par des _ + #---------------------------------------- + # replace('-','_') uniquement dans les identifiants + while simp.find('-') > 0 : + ind=simp.find('-') + if ind==len(simp)-1 : break + simp=simp[0:ind]+'_'+simp[ind+1].upper()+simp[ind+2:] + + #---------------------------------------- + def traiteIdent(self,listeIdent): + # Recree l identifiant Python + #---------------------------------------- + while listeIdent[-1] == " " or listeIdent[-1] == '\t' : listeIdent=listeIdent[0:-1] + while listeIdent[0] == " " or listeIdent[0] == '\t' : listeIdent=listeIdent[1:] + + listeIdent=re.sub("'"," ",listeIdent) + motsInIdent=string.split(listeIdent,' ') + simp="" + for mot in motsInIdent: + if re.compile(r"^\s*$").match(mot) : continue + mot=mot.replace('_','__') + simp=simp+mot[0].upper() +mot[1:].lower()+'_' + + simp=simp[0:-1] + while simp[-1] == " " : simp=simp[0:-1] + if simp.find('-') > 0 : simp=self.redecoupeSimp(simp) + return simp + + def traiteMC(self,dico) : for k in dico.keys() : valeur= dico[k] @@ -184,33 +261,74 @@ class TELEMACParser(PythonParser): def generSIMP(self,obj,nom,valeur): if nom in ("Prescribed_Flowrates", "Prescribed_Velocities", "Prescribed_Elevations" ): return + #print "___________________________" + #print nom + #print valeur + if valeur == None : print nom if obj.max==1 : if 'TXM' in obj.type : + + if pattern_ContientDouble.match(valeur): + valeur=re.sub("''","\'\'",valeur) + print str(valeur) + print valeur + print tr(valeur) + print poum valeur=str(valeur) - while valeur[-1] == " " : valeur=valeur[0:-1] - while valeur[0] == " " : valeur=valeur[1:] - valeur=valeur[0].upper()+valeur[1:].lower() - valeur=tr(valeur) + + # ceinture et bretelle si les re sont correctes -) + while valeur[-1] == " " or valeur[-1] == '\t' : valeur=valeur[0:-1] + while valeur[0] == " " or valeur[0] == '\t' : valeur=valeur[1:] + + if pattern_ContientDouble.match(valeur): + valeur=re.sub("''","\'\'",valeur) + print valeur + print tr(valeur) + print poum + + + # Pour les enum try : valeur=eval(valeur,{}) except : pass if nom in DicoEnumCasEn.keys(): + #print "est dans le dico des enum, valeur simple" try : valeur=DicoEnumCasEn[nom][valeur] except : pass + + + if obj.into != [] and obj.into != None : + for possible in obj.into : + if possible.upper() == valeur.upper(): + valeur=possible + break + v=valeur[0].upper()+valeur[1:].lower() + v2=tr(v) + if possible.upper() == v2.upper(): + valeur=possible + break + if 'Fichier' in obj.type or 'TXM' in obj.type or 'Repertoire' in obj.type : valeur=str(valeur) while valeur[-1] == " " : valeur=valeur[0:-1] while valeur[0] == " " : valeur=valeur[1:] self.textePy += nom + "= '" + str(valeur) +"' ," return + if bool in obj.type : - if pattern_OUI.match(valeur) or pattern_oui.match(valeur) : self.textePy += nom + "= True," - if pattern_NON.match(valeur) or pattern_non.match(valeur) : self.textePy += nom + "= False," + if valeur == True : self.textePy += nom + "= True," + elif valeur == False : self.textePy += nom + "= False," + elif pattern_oui.match(valeur) : self.textePy += nom + "= True," + elif pattern_non.match(valeur) : self.textePy += nom + "= False," + else : self.textePy += nom + "= None," return self.textePy += nom + "=" + str(valeur) +"," + else : - if pattern_vide.match(valeur) : return - while valeur[-1] == " " : valeur=valeur[0:-1] - while valeur[0] == " " : valeur=valeur[1:] + if pattern_listeVide.match(valeur) : + self.textePy += nom + "= None," + return + while valeur[-1] == " " or valeur[-1]=="'" : valeur=valeur[0:-1] + while valeur[0] == " " or valeur[-0]=="'" : valeur=valeur[1:] if ";" in valeur : valeur=valeur.split(';') elif "," in valeur : valeur=valeur.split(',') @@ -218,9 +336,10 @@ class TELEMACParser(PythonParser): if valeur == None : return newVal=[] for v in valeur : - try : v==eval(v,{}) + try : v=eval(v,{}) except : pass if nom in DicoEnumCasEn.keys(): + #print "est dans le dico des enum, valeurs multiples" try : v=DicoEnumCasEn[nom][v] except : pass newVal.append(v) @@ -228,7 +347,6 @@ class TELEMACParser(PythonParser): - def tri(self, listeIn): if len(listeIn) == 1 : return listeIn if self.Ordre_Des_Commandes == None : return listeIn @@ -250,33 +368,62 @@ class TELEMACParser(PythonParser): if self.dictSimp["Processeurs_Paralleles"] == 0 : del self.dictSimp["Processeurs_Paralleles"] else : self.dictSimp["Parallel_Computation"]="Parallel" + def decoupeListe(self,valeurs,label): + print "decoupeSUPG" + print valeurs + i=0 + for prefixe in ('_U_And_V','_H'): + labelComplet=label+prefixe + valeur=valeurs[i] + try : valeur=eval(valeur,{}) + except : pass + if tr(label) in DicoEnumCasEn.keys(): + try : valeur=DicoEnumCasEn[tr(label)][valeur] + except : pass + self.dictSimp[labelComplet]=valeur + i=i+1 + if len(valeurs)==2 : return + for prefixe in ('_K_And_Epsilon','_Tracers'): + labelComplet=label+prefixe + valeur=valeurs[i] + try : valeur=eval(valeur,{}) + except : pass + if tr(label) in DicoEnumCasEn.keys(): + try : valeur=DicoEnumCasEn[tr(label)][valeur] + except : pass + self.dictSimp[labelComplet]=valeur + i=i+1 def Option_De_Supg(self): - print "ds Option_De_Supg" - return + #print "ds Option_De_Supg" + self.decoupeListe( self.dictSimp["Option_De_Supg"],"Option_De_Supg") + del self.dictSimp["Option_De_Supg"] def Forme_De_La_Convection(self): - print "ds Forme_De_La_Convection" - return - - def redecoupeSimp(self,simp): - # replace('-','_') uniquement dans les identifiants - while simp.find('-') > 0 : - ind=simp.find('-') - if ind==len(simp)-1 : break - simp=simp[0:ind]+'_'+simp[ind+1].upper()+simp[ind+2:] - return simp - - + self.decoupeListe( self.dictSimp["Forme_De_La_Convection"],"Forme_De_La_Convection") + valeurs=self.dictSimp["Forme_De_La_Convection"] + del self.dictSimp["Forme_De_La_Convection"] + self.dictSimp['Convection_De_U_Et_V']=True + self.dictSimp['Convection_De_H']=True + if len(valeurs)==2 : return + self.dictSimp['Advection_Of_K_And_Epsilon']=True + self.dictSimp['Advection_Of_Tracers']=True + + def Discretisations_En_Espace(self): + self.decoupeListe( self.dictSimp["Discretisations_En_Espace"],"Discretisations_En_Espace") + del self.dictSimp["Discretisations_En_Espace"] + def Liquid_Boundaries(self): + #print 'Liquid Boundaries' texte_Boundaries="Liquid_Boundaries=( " premier=0 if 'Prescribed_Elevations' in self.dictSimp.keys(): - valeurs=self.dictSimp["Prescribed_Elevations"].split(";") + valeurs=self.dictSimp["Prescribed_Elevations"] elif 'Cotes_Imposees' in self.dictSimp.keys(): - valeurs=self.dictSimp["Cotes_Imposees"].split(";") + valeurs=self.dictSimp["Cotes_Imposees"] else : valeurs=() + #print valeurs for e in range(len(valeurs)): if valeurs[e] == "" or valeurs[e] == "\n" : continue if eval(valeurs[e],{})==0 : continue @@ -285,10 +432,11 @@ class TELEMACParser(PythonParser): texte_Boundaries += "Prescribed_Elevations = " + str(valeurs[e]) + "),\n" if 'Prescribed_Flowrates' in self.dictSimp.keys(): - valeurs=self.dictSimp["Prescribed_Flowrates"].split(";") + valeurs=self.dictSimp["Prescribed_Flowrates"] elif 'Debits_Imposes' in self.dictSimp.keys(): - valeurs=self.dictSimp["Debits_Imposes"].split(";") + valeurs=self.dictSimp["Debits_Imposes"] else : valeurs=() + #print valeurs for e in range(len(valeurs)): if valeurs[e] == "" or valeurs[e] == "\n" : continue if eval(valeurs[e],{})==0 : continue @@ -297,10 +445,11 @@ class TELEMACParser(PythonParser): texte_Boundaries += "Prescribed_Flowrates = " + str(valeurs[e]) + "),\n" if 'Prescribed_Velocity' in self.dictSimp.keys(): - valeurs=self.dictSimp["Prescribed_Velocity"].split(";") + valeurs=self.dictSimp["Prescribed_Velocity"] elif 'Vitesses_Imposees' in self.dictSimp.keys(): - valeurs=self.dictSimp["Vitesses_Imposees"].split(";") + valeurs=self.dictSimp["Vitesses_Imposees"] else : valeurs=() + #print valeurs for e in range(len(valeurs)): if valeurs[e] == "" or valeurs[e] == "\n" : continue if eval(valeurs[e],{})==0 : continue diff --git a/convert/enumTelemac.py b/convert/enumTelemac.py deleted file mode 100644 index 26a4f524..00000000 --- a/convert/enumTelemac.py +++ /dev/null @@ -1,11 +0,0 @@ -dicoEnum = { 'Type_Of_Advection' : { '1' : "'characteristics'", '2' : "'SUPG'", '3' : "'Conservative N-scheme'" ,\ - '4' : "'Conservative N-scheme'" , '5' : "'Conservative PSI-scheme'" , \ - '6' : "'Non conservative PSI scheme'" , '7' : "'Implicit non conservative N scheme'" ,\ - '13': "' Edge-based N-scheme'", '14': "'Edge-based N-scheme'"}, - 'Solver' :{ '1': "'conjugate gradient'", '2': "'conjugate residual'", '3': "'conjugate gradient on a normal equation'",\ - '4': "'minimum error'", '5' :"'conjugate gradient squared (not implemented)'",\ - '6': "'cgstab'", '7': "'gmres'" , '8': "'direct'" } , - 'Discretisations_In_Space' : { "11;11":"linear for velocity and depth", \ - "12;11" : "quasi-bubble-velocity and linear depth", \ - "13;11 ": "quadratic velocity and linear depth" }, - } diff --git a/generator/generator_TELEMAC.py b/generator/generator_TELEMAC.py index f63a6034..5af94683 100644 --- a/generator/generator_TELEMAC.py +++ b/generator/generator_TELEMAC.py @@ -30,6 +30,7 @@ extensions=('.comm',) #DicoAglomere=() #DicoEficasToCas=() from aideAuxConvertisseurs import listeSupprime, DicoAglomere, DicoEficasToCas +from enumDicoTelemac2 import DicoEnumCasEnInverse def entryPoint(): @@ -70,6 +71,12 @@ class TELEMACGenerator(PythonGenerator): def initDico(self) : + self.PE=False + self.FE=False + self.VE=False + self.textPE = 'PRESCRIBED ELEVATIONS :' + self.textFE = 'PRESCRIBED FLOWRATES :' + self.textVE = 'PRESCRIBED VELOCITY :' self.texteDico = "" @@ -88,21 +95,90 @@ class TELEMACGenerator(PythonGenerator): # analyse de chaque noeud de l'arbre #---------------------------------------------------------------------------------------- + def generPROC_ETAPE(self,obj): + self.texteDico += '/------------------------------------------------------/\n' + self.texteDico += '/\t\t\t'+obj.nom +'\n' + self.texteDico += '/------------------------------------------------------/\n' + s=PythonGenerator.generPROC_ETAPE(self,obj) + if obj.nom in TELEMACGenerator.__dict__.keys() : apply(TELEMACGenerator.__dict__[obj.nom],(self,obj)) + + return s + def generMCSIMP(self,obj) : """recuperation de l objet MCSIMP""" s=PythonGenerator.generMCSIMP(self,obj) + if obj.nom == "Title" : + print s + print str(obj.valeur) + print repr(obj.valeur) + + + # Attention pas sur --> ds certains cas non traite par MCFACT ? + # a reflechir avec Yoann + if hasattr(obj.definition,'defaut') : + if obj.definition.defaut == obj.valeur : return s + nomMajuscule=obj.nom.upper() nom=nomMajuscule.replace('_',' ') - if nom in listeSupprime : return s + if nom in listeSupprime or s == "" : return s + + sTelemac=s[0:-1] + if not( type(obj.valeur) in (types.TupleType,types.ListType) ): + if obj.nom in DicoEnumCasEnInverse.keys(): + try : sTelemac=DicoEnumCasEnInverse[obj.nom][obj.valeur] + except : print "generMCSIMP Pb avec ", obj.nom, obj.valeur + if type(obj.valeur) in (types.TupleType,types.ListType) : + if obj.nom in DicoEnumCasEnInverse.keys(): + sT = "'" + for v in obj.valeur: + try : sT +=DicoEnumCasEnInverse[obj.nom][v] +";" + except : print "generMCSIMP Pb avec ", obj.nom, v + sTelemac=sT[0:-1]+"'" + if nom in DicoEficasToCas.keys() : nom=DicoEficasToCas[nom] - self.texteDico+=nom+ ":" + s[0:-1]+ "\n" + self.texteDico+=nom+ ":" + str(sTelemac) + "\n" return s def generMCFACT(self,obj): """ - Recalule les jours et les heures """ s=PythonGenerator.generMCFACT(self,obj) + if obj.nom in TELEMACGenerator.__dict__.keys() : apply(TELEMACGenerator.__dict__[obj.nom],(self,obj)) + return s + def Liquid_Boundaries(self,obj): + #print obj.nom , dir(obj) + if 'Type_Condition' in obj.liste_mc_presents() : + objForme=obj.get_child('Type_Condition') + valForme=objForme.valeur + + nomBloc='b_'+valForme.split(" ")[1] + if nomBloc in obj.liste_mc_presents() : + objBloc=obj.get_child(nomBloc) + objValeur=objBloc.get_child(objBloc.liste_mc_presents()[0]) + valeur=objValeur.valeur + if valeur== None : valeur="0." + if valForme == 'Prescribed Elevations' : + self.PE=True + self.textPE += str(valeur) +"; " + else : self.textPE += "0.; " + if valForme == 'Prescribed Flowrates' : + self.FE=True + self.textFE += str(valeur) +"; " + else : self.textFE += "0.; " + if valForme == 'Prescribed Velocity' : + self.VE=True + self.textVE += str(valeur) +"; " + else : self.textVE += "0.; " + print self.textPE, self.textFE,self.textVE + + def BOUNDARY_CONDITIONS(self,obj): + if self.FE : self.texteDico += self.textFE[0:-1]+'\n' + if self.VE : self.texteDico += self.textVE[0:-1]+'\n' + if self.PE : self.texteDico += self.textPE[0:-1]+'\n' + + def Validation(self,obj): + self.textDico += "Validation = OUI \n" + diff --git a/generator/generator_python.py b/generator/generator_python.py index 29cf196b..5f18ef86 100644 --- a/generator/generator_python.py +++ b/generator/generator_python.py @@ -421,7 +421,7 @@ class PythonGenerator: else: # on est en presence d'un MCSIMP : on recupere une string text =self.generator(v) - l.append(v.nom+'='+text) + if v.nom != "Consigne" : l.append(v.nom+'='+text) # il faut etre plus subtil dans l'ajout de la virgule en differenciant # le cas ou elle est obligatoire (si self a des freres cadets # dans self.parent) ou non -- 2.39.2