From f0d343fd4a29fba69d4c1f100373540df452f74a Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Mon, 17 Sep 2018 11:19:27 +0200 Subject: [PATCH] sauvegarde du 1709 --- Efi2Xsd/MCAccasXsd.py | 167 +++++++++++++++++++++++++---------- Extensions/mcnuplet.py | 24 ++--- Ihm/I_ETAPE.py | 10 +-- Ihm/I_FORM_ETAPE.py | 22 ++--- Ihm/I_MCCOMPO.py | 49 ++++++---- Ihm/I_MCSIMP.py | 3 +- Ihm/I_PROC_ETAPE.py | 4 +- InterfaceQT4/browser.py | 4 +- InterfaceQT4/compobloc.py | 2 +- InterfaceQT4/compofact.py | 2 +- InterfaceQT4/compoformule.py | 4 +- InterfaceQT4/compooper.py | 4 +- Noyau/N_BLOC.py | 7 +- Noyau/N_ENTITE.py | 1 - Noyau/N_ETAPE.py | 20 ++--- Noyau/N_MACRO_ETAPE.py | 8 +- Noyau/N_MCBLOC.py | 10 +-- Noyau/N_MCCOMPO.py | 70 +++++++-------- Noyau/N_MCFACT.py | 2 +- Noyau/N_MCLIST.py | 10 ++- Noyau/N_OBJECT.py | 19 ++-- Validation/V_ETAPE.py | 8 +- Validation/V_MACRO_ETAPE.py | 2 +- Validation/V_MCBLOC.py | 2 +- Validation/V_MCCOMPO.py | 10 +-- Validation/V_MCFACT.py | 2 +- VirtualPolymer/VP_Cata_V2.py | 6 +- VirtualPolymer/prefs_VP.py | 2 +- convert/convert_TELEMAC.py | 1 + 29 files changed, 291 insertions(+), 184 deletions(-) diff --git a/Efi2Xsd/MCAccasXsd.py b/Efi2Xsd/MCAccasXsd.py index 83a31a74..21b7f318 100755 --- a/Efi2Xsd/MCAccasXsd.py +++ b/Efi2Xsd/MCAccasXsd.py @@ -8,15 +8,34 @@ import types sys.path.insert(0,os.path.abspath(os.path.join(os.getcwd(),'..'))) import pyxb -#import pyxb.binding -#import pyxb.binding.saxer +import pyxb.binding +import pyxb.binding.basis #import pyxb.utils.utility #import pyxb.utils.domutils +class X_OBJECT: +# ------------- + def deletePyxbObject(self): + print ('----------- deletePyxbObject', self.nom) + indice = 0 + trouve = False + for i in self.perePyxb.objPyxb.orderedContent(): + if id(self.objPyxb) == id(i._Content__value) : trouve = True ;break + indice = indice + 1 + if not trouve : print ('objet pas trouve') + print (self.perePyxb.objPyxb.description) + del self.perePyxb.objPyxb.__dict__[self.nom] + print (self.perePyxb.objPyxb.__delattr__) + #delattr(self.perePyxb.objPyxb,self.nom) + # PNPN + + print ('delattr', self.perePyxb.objPyxb,self.nom) + del self.perePyxb.objPyxb.orderedContent()[indice] -class X_MCSIMP: -# ------------- + +class X_MCSIMP(X_OBJECT): +# ----------------------- def buildObjPyxb(self) : # self.valeur tient compte de la valeur par defaut @@ -30,6 +49,8 @@ class X_MCSIMP: #if self.objPyxbDeConstruction == None : print (self.nom, ' pas de pyxb') if self.objPyxbDeConstruction != None : self.objPyxb = self.objPyxbDeConstruction + self.maClasseModeleMetier =type(self.objPyxb) + #print (self.maClasseModeleMetier) self.objPyxbDeConstruction = None else : self.monNomClasseModeleMetier='T_'+self.nom @@ -40,44 +61,62 @@ class X_MCSIMP: if self.valeur != None : self.objPyxb=self.maClasseModeleMetier(self.valeur) elif self.definition.into != None and 'TXM' in self.definition.type : self.objPyxb = None else : self.objPyxb=self.maClasseModeleMetier(); - self.filsPyxb=None + #self.filsPyxb=None #print ('X_MCSIMP', self.nom, self.objPyxb) #print ('fin X_MCSIMP', self.objPyxb, self.nom,self) def setValeurObjPyxb(self,newVal): - #print ('dans setValeurObjPyxb') + print ('dans setValeurObjPyxb MCSIMP') if not self.cata.modeleMetier : return - try : - print (self.nom , ' a pour pere', self.perePyxb, self.perePyxb.nom) - except : - print ("je sors du setValeur") - return + # print (self.nom , ' a pour pere', self.perePyxb, self.perePyxb.nom, self.perePyxb.objPyxb) if newVal != None : nvlObj=self.maClasseModeleMetier(newVal) else : nvlObj=self.maClasseModeleMetier() self.val=newVal - indexOC=0 - #print ('avant',self.nom, self.perePyxb.objPyxb.orderedContent()) + setattr(self.perePyxb.objPyxb,self.nom,nvlObj) + print ('setattr', self.perePyxb.objPyxb,self.nom) + trouve=False + indice=0 for i in self.perePyxb.objPyxb.orderedContent(): - if id(i._Content__value) == id(self.objPyxb) : break - indexOC +=1 - - maSequence = getattr(self.perePyxb.objPyxb, self.nom) - if isinstance(maSequence, pyxb.binding.basis.simpleTypeDefinition): - #maSequence=nvlObj - setattr(self.perePyxb.objPyxb, self.nom, nvlObj) - self.perePyxb.objPyxb.orderedContent()[indexOC]=self.perePyxb.objPyxb.orderedContent()[-1] - del(self.perePyxb.objPyxb.orderedContent()[-1]) - else : - index=0 - for i in maSequence: - if id(i) == id(self.objPyxb) : break - index=index+1 - maSequence[index]=nvlObj - self.perePyxb.objPyxb.orderedContent()[indexOC]._Content__value=nvlObj - + if isinstance(i._Content__value, self.maClasseModeleMetier) : + self.perePyxb.objPyxb.orderedContent()[indice]=self.perePyxb.objPyxb.orderedContent()[-1] + del(self.perePyxb.objPyxb.orderedContent()[-1]) + trouve=True + break + indice+=1 + if not trouve : print ('Attention souci au changement de valeur de ', self.nom) self.objPyxb=nvlObj + print ('iiiiiiiiiiiiiiiiiiiiiiiiiiiiii', nvlObj, id(nvlObj)) + #for i in self.perePyxb.objPyxb.orderedContent(): + # print ('ds le for pour i') + # print (i._Content__value) + # print (id(i._Content__value)) + # print (type((i._Content__value))) + # if id(i._Content__value) == id(self.objPyxb) : break + # indexOC +=1 + + #maValeur = getattr(self.perePyxb.objPyxb, self.nom) + #print ('je change', indexOC) + #if isinstance(maValeur, pyxb.binding.basis.simpleTypeDefinition): + #if 1 : + # print ('jkjkljkljklj') + # setattr(self.perePyxb.objPyxb,self.nom,nvlObj) + # self.perePyxb.objPyxb.orderedContent()[indexOC]=self.perePyxb.objPyxb.orderedContent()[-1] + # del(self.perePyxb.objPyxb.orderedContent()[-1]) + #print ('apres',self.nom, self.perePyxb.objPyxb.orderedContent()) + #else : + # index=0 + # trouve=False + # try : + # for i in maValeur: + # if id(i) == id(self.objPyxb) :trouve = True ; break + # index=index+1 + # maValeur[index]=nvlObj + # self.perePyxb.objPyxb.orderedContent()[indexOC]._Content__value=nvlObj + # except : pass + # if not trouve : print (self.nom , 'pas trouve') + #print ('arret programme'); exit() #print ('id objPyxb',id(self.objPyxb)) #print ('id objPyxb[0]',id(self.objPyxb[0])) @@ -103,17 +142,55 @@ class X_MCSIMP: #print (self.perePyxb.objPyxb.orderedContent()) #print (monBinding) - def deletePyxbObject(self): - print ('je passe ds deletePyxbObject pour ', self, self.nom) + def addPyxbObject(self, indiceDsLeContenu): + if not self.cata.modeleMetier : return -class X_MCCOMPO: -# -------------- + # adherence Accas sur le parent + parent=self.parent + while (parent.isBLOC() ): parent=parent.parent + self.perePyxb=parent + + self.monNomClasseModeleMetier='T_'+self.nom + self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier) + nvlObj=self.maClasseModeleMetier() + print ('setattr', self.perePyxb.objPyxb,self.nom) + setattr(self.perePyxb.objPyxb,self.nom,nvlObj) + tampon=self.perePyxb.objPyxb.orderedContent()[-1] + self.objPyxb = nvlObj + indexOC=-1 + longueur=len(self.perePyxb.objPyxb.orderedContent()) + for i in reversed(range(longueur)): + self.perePyxb.objPyxb.orderedContent()[i]=self.perePyxb.objPyxb.orderedContent()[i-1] + if i == indiceDsLeContenu + 1 : break + self.perePyxb.objPyxb.orderedContent()[indiceDsLeContenu]=tampon + + + #for i in self.perePyxb.objPyxb.orderedContent() : + # print (i._Content__value, type(i._Content__value)) + #print ('----------------') + + #print self.perePyxb.objPyxb.orderedContent() + #for i in self.perePyxb.objPyxb.orderedContent(): + # print ('valeur de ', i) + # print (i._Content__value) + # print (type(i._Content__value)) + # if isinstance(i._Content__value, self.maClasseModeleMetier) : + # print dir(i._Content__value) + # self.objPyxb = i._Content__value + # setattr(self.perePyxb.objPyxb, self.nom, nvlObj) + # self.perePyxb.objPyxb.orderedContent()[indexOC]=self.perePyxb.objPyxb.orderedContent()[-1] + # del(self.perePyxb.objPyxb.orderedContent()[-1]) + # indexOC+=1 + #PNPNPNPNPNPNPNPNP + +class X_MCCOMPO(X_OBJECT) : +# ------------------------- # def buildObjPyxb(self,mc_list) : - if not self.cata.modeleMetier : return #print ('________________________________________________') #print ('X_MCCOMPO buildObjPyxb', self.nom, self, mc_list) + if not self.cata.modeleMetier : return self.listArg=[] for objAccas in mc_list : @@ -126,7 +203,7 @@ class X_MCCOMPO: else : self.listArg.append(objAccas.objPyxb) objAccas.perePyxb=self - #print (objAccas.nom ,' a pour pere Pyxb', self, self.nom) + print (objAccas.nom ,' a pour pere Pyxb', self, self.nom) self.monNomClasseModeleMetier='T_'+self.nom self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier) @@ -149,7 +226,7 @@ class X_MCCOMPO: def exploreBLOC(self,objAccas): laListeSsLesBlocs=[] - for fils in objAccas.mc_liste: + for fils in objAccas.mcListe: if fils.nature == 'MCBLOC' : self.exploreBLOC(fils) elif fils.nature == 'MCList' : @@ -174,7 +251,7 @@ class X_MCBLOC (X_MCCOMPO): #print ('_______________________________________') #print ('X_MCBLOC buildObjPyxb', self.nom, self, mc_list) # on rattache ses fils au bloc mais leur pere sera ensuite le MCCOMPO qui contient le bloc - # Pas sur d en avoir besoin + # Pas sur d en avoir besoin du filsPyxb self.filsPyxb=[] self.objPyxb=None for objAccas in mc_list : @@ -206,7 +283,7 @@ class X_MCLIST (X_MCCOMPO): # listArg=[] # MCList est une liste # for nbDeSequence in self : - # for objAccas in nbDeSequence.mc_liste : + # for objAccas in nbDeSequence.mcListe : #print (type (objAccas)) #print (objAccas.nom, objAccas.objPyxb, type(objAccas.objPyxb)) #print ( type (objAccas.objPyxb) == list ) @@ -281,18 +358,18 @@ class X_JDC (X_MCCOMPO): objAccasEtape=maClasseAccas(**(objEtape.dictArgs)) # attention objAccasEtape = None normal (cf buildSd) - print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh') - print (objEtape , type(objEtape)) - print (objEtape.dictPyxb) - print (maClasseAccas) - print (objAccasEtape) + #print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh') + #print (objEtape , type(objEtape)) + #print (objEtape.dictPyxb) + #print (maClasseAccas) + #print (objAccasEtape) #print (objEtape.monNomClasseAccas, type(objEtape.monNomClasseAccas)) #print (objEtape._ExpandedName, type(objEtape._ExpandedName)) #print (objEtape.dictPyxb[u'experience']) #print (objEtape.dictArgs) #print (objEtape.dictPyxb) - print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh') + #print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh') #exit() diff --git a/Extensions/mcnuplet.py b/Extensions/mcnuplet.py index 03b5c0da..81e623d3 100644 --- a/Extensions/mcnuplet.py +++ b/Extensions/mcnuplet.py @@ -57,16 +57,16 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): self.etape = None self.state = 'undetermined' self.actif=1 - self.mc_liste=self.build_mc() + self.mcListe=self.buildMc() - def build_mc(self): + def buildMc(self): """ Construit la liste des sous-entites de MCNUPLET a partir de la liste des arguments (valeur) """ args = self.valeur if args ==None : args =() - mc_liste=[] + mcListe=[] # on cree les sous entites du NUPLET a partir des valeurs initiales k=0 @@ -80,11 +80,11 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): if objet.definition.position == 'global' : self.append_mc_global(objet) #XXX et global_jdc ?? - mc_liste.append(objet) + mcListe.append(objet) k=k+1 # Un nuplet n'a pas de mots inconnus self.reste_val={} - return mc_liste + return mcListe def isValid(self,cr='non'): """ @@ -98,11 +98,11 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): old_valid = self.valid else: old_valid = None - for child in self.mc_liste : + for child in self.mcListe : if not child.isValid(): valid = 0 break - if len(self.mc_liste) != len(self.definition.entites): + if len(self.mcListe) != len(self.definition.entites): valid=0 if cr == 'oui' : self.cr.fatal(''.join(("Nuplet : ",self.nom,tr("Longueur incorrecte")))) @@ -118,7 +118,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): """ # Un nuplet est toujours une liste de mots cles simples # On retourne donc la valeur - return self.mc_liste[key].valeur + return self.mcListe[key].valeur def __str__(self): """ @@ -126,7 +126,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): de caracteres """ s='(' - for e in self.mc_liste: + for e in self.mcListe: s=s + str(e.valeur) + ',' return s + ')' @@ -136,7 +136,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): de caracteres """ s='(' - for e in self.mc_liste: + for e in self.mcListe: s=s + str(e.valeur) + ',' return s + ')' @@ -178,7 +178,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): des mots cle simples contenus. """ l=[] - for v in self.mc_liste: + for v in self.mcListe: l.append(v.valeur) return l @@ -188,7 +188,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): Elle est utilisee par la methode getMocle """ l=[] - for v in self.mc_liste: + for v in self.mcListe: l.append(v.valeur) return l diff --git a/Ihm/I_ETAPE.py b/Ihm/I_ETAPE.py index 11439079..43bbbb8f 100644 --- a/Ihm/I_ETAPE.py +++ b/Ihm/I_ETAPE.py @@ -309,7 +309,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): return def updateConcept(self,sd): - for child in self.mc_liste : + for child in self.mcListe : child.updateConcept(sd) def deleteConcept(self,sd): @@ -326,7 +326,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): if self.reuse and self.reuse == sd: self.sd=self.reuse=None self.initModif() - for child in self.mc_liste : + for child in self.mcListe : child.deleteConcept(sd) def replaceConcept(self,old_sd,sd): @@ -342,7 +342,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): if self.reuse and self.reuse == old_sd: self.sd=self.reuse=sd self.initModif() - for child in self.mc_liste : + for child in self.mcListe : child.replaceConcept(old_sd,sd) def resetContext(self): @@ -356,7 +356,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): liste_sd = self.getSd_utilisees() l_noms = [] if type(self.definition.sd_prod) == types.FunctionType: - d=self.creeDictValeurs(self.mc_liste) + d=self.creeDictValeurs(self.mcListe) try: classe_sd_prod = self.definition.sd_prod(*(), **d) except: @@ -384,7 +384,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): avant etape, sinon enleve la referea ces concepts """ #print "verifExistenceSd",self.sd - for motcle in self.mc_liste : + for motcle in self.mcListe : motcle.verifExistenceSd() def updateMcGlobal(self): diff --git a/Ihm/I_FORM_ETAPE.py b/Ihm/I_FORM_ETAPE.py index 10456f40..b97ac8f8 100644 --- a/Ihm/I_FORM_ETAPE.py +++ b/Ihm/I_FORM_ETAPE.py @@ -37,7 +37,7 @@ class FORM_ETAPE(MACRO_ETAPE): interpreteur = interpreteur_formule.Interpreteur_Formule def MCBuild(self): - self.mc_liste=self.build_mc() + self.mcListe=self.buildMc() # on cree la liste des types autorises (liste des noms de mots-cles # simples dans le catalogue de FORMULE) self.l_types_autorises = list(self.definition.entites.keys()) @@ -54,17 +54,17 @@ class FORM_ETAPE(MACRO_ETAPE): - les arguments de la FORMULE - le corps de la FORMULE, cad son expression """ - if len(self.mc_liste) == 0: + if len(self.mcListe) == 0: # pas de fils pour self --> la FORMULE est incomplete return None,None,None type_retourne="REEL" - if len(self.mc_liste) > 0: - child = self.mc_liste[0] # child est un MCSIMP + if len(self.mcListe) > 0: + child = self.mcListe[0] # child est un MCSIMP corps = child.getVal() else: corps = None - if len(self.mc_liste) > 1: - child = self.mc_liste[1] + if len(self.mcListe) > 1: + child = self.mcListe[1] l_args= child.getVal() else : l_args=None @@ -248,8 +248,8 @@ class FORM_ETAPE(MACRO_ETAPE): self.type_retourne = formule[1] self.arguments = '('+formule[2]+')' self.corps = formule[3] - # il faut ajouter le mot-cle simple correspondant dans mc_liste - # pour cela on utilise la methode generale build_mc + # il faut ajouter le mot-cle simple correspondant dans mcListe + # pour cela on utilise la methode generale buildMc # du coup on est oblige de modifier le dictionnaire valeur de self ... self.valeur = {} self.valeur[self.type_retourne] = self.arguments+' = ' + self.corps @@ -266,8 +266,8 @@ class FORM_ETAPE(MACRO_ETAPE): # corps de la fonction # il faut aussi que les arguments soient sous forme de tuple def updateFormulePython(self,formule): - self.build_mc() - self.mc_liste=[] + self.buildMc() + self.mcListe=[] if len(formule) < 4 : return 0 arguments=formule[3] @@ -288,7 +288,7 @@ class FORM_ETAPE(MACRO_ETAPE): child=self.definition.entites[k](None,nom=k,parent=self) child.valeur=mocles[k] child.state = 'modified' - self.mc_liste.append(child) + self.mcListe.append(child) self.corps = formule[2] self.type_retourne = formule[1] diff --git a/Ihm/I_MCCOMPO.py b/Ihm/I_MCCOMPO.py index e8e30416..e8079a7c 100644 --- a/Ihm/I_MCCOMPO.py +++ b/Ihm/I_MCCOMPO.py @@ -140,10 +140,10 @@ class MCCOMPO(I_OBJECT.OBJECT): def listeMcPresents(self): """ Retourne la liste des noms des mots-cles fils de self presents construite - a partir de self.mc_liste + a partir de self.mcListe """ l=[] - for v in self.mc_liste: + for v in self.mcListe: k=v.nom l.append(k) return l @@ -163,6 +163,18 @@ class MCCOMPO(I_OBJECT.OBJECT): index=index+1 return index + def findRangObjetDsArbre(self,objet) : + # uniquement pour Pyxb + # parcourt les Blocs + leRang=0 + pos=self.mcListe.index(objet) + i=0 + while (i+1) < pos : + leRang= leRang + self.mcListe[i].longueurDsArbre() + i=i+1 + return leRang + + def ordonneListeMc(self,listeMc_a_ordonner,liste_noms_mc_ordonnee): """ Retourne listeMc_a_ordonner ordonnee suivant l'ordre @@ -186,14 +198,14 @@ class MCCOMPO(I_OBJECT.OBJECT): Retourne 1 si la suppression a pu etre effectuee, Retourne 0 dans le cas contraire """ - if not objet in self.mc_liste: - # Impossible de supprimer objet. Il n'est pas dans mc_liste + if not objet in self.mcListe: + # Impossible de supprimer objet. Il n'est pas dans mcListe return 0 self.initModif() - self.mc_liste.remove(objet) - CONNECTOR.Emit(self,"supp",objet) objet.deletePyxbObject() + self.mcListe.remove(objet) + CONNECTOR.Emit(self,"supp",objet) objet.deleteMcGlobal() objet.updateConditionBloc() objet.supprime() @@ -238,11 +250,12 @@ class MCCOMPO(I_OBJECT.OBJECT): # Le mot cle n'existe pas encore. On l'ajoute a la position # demandee (pos) if pos == None : - self.mc_liste.append(objet) + self.mcListe.append(objet) else : - self.mc_liste.insert(pos,objet) + self.mcListe.insert(pos,objet) # Il ne faut pas oublier de reaffecter le parent d'obj (si copie) objet.reparent(self) + objet.addPyxbObject(self.findRangObjetDsArbre(objet)) CONNECTOR.Emit(self,"add",objet) objet.updateMcGlobal() objet.updateConditionBloc() @@ -289,7 +302,7 @@ class MCCOMPO(I_OBJECT.OBJECT): return 1 def updateConcept(self,sd): - for child in self.mc_liste : + for child in self.mcListe : child.updateConcept(sd) def deleteConcept(self,sd): @@ -302,7 +315,7 @@ class MCCOMPO(I_OBJECT.OBJECT): Seuls les mots cles simples MCSIMP font un traitement autre que de transmettre aux fils """ - for child in self.mc_liste : + for child in self.mcListe : child.deleteConcept(sd) def replaceConcept(self,old_sd,sd): @@ -314,7 +327,7 @@ class MCCOMPO(I_OBJECT.OBJECT): Mettre a jour les fils de l objet suite au remplacement du concept old_sd """ - for child in self.mc_liste : + for child in self.mcListe : child.replaceConcept(old_sd,sd) def getListeMcInconnus(self): @@ -325,7 +338,7 @@ class MCCOMPO(I_OBJECT.OBJECT): if self.reste_val != {}: for k,v in self.reste_val.items() : l_mc.append([self,k,v]) - for child in self.mc_liste : + for child in self.mcListe : if child.isValid() : continue l_child = child.getListeMcInconnus() for mc in l_child: @@ -340,7 +353,7 @@ class MCCOMPO(I_OBJECT.OBJECT): des blocs conditionnels par appel de la methode updateConditionBloc """ self._updateConditionBloc() - for mcobj in self.mc_liste: + for mcobj in self.mcListe: if hasattr(mcobj,"deepUpdateConditionBloc"): mcobj.deepUpdateConditionBloc() @@ -356,7 +369,7 @@ class MCCOMPO(I_OBJECT.OBJECT): """ Realise l'update des blocs conditionnels fils de self """ - dict = self.creeDictCondition(self.mc_liste,condition=1) + dict = self.creeDictCondition(self.mcListe,condition=1) for k,v in self.definition.entites.items(): if v.label != 'BLOC' :continue globs= self.jdc and self.jdc.condition_context or {} @@ -384,7 +397,7 @@ class MCCOMPO(I_OBJECT.OBJECT): """ liste_ajouts = [] liste_retraits = [] - dict = self.creeDictCondition(self.mc_liste,condition=1) + dict = self.creeDictCondition(self.mcListe,condition=1) for k,v in self.definition.entites.items(): if v.label=='BLOC' : globs= self.jdc and self.jdc.condition_context or {} @@ -405,7 +418,7 @@ class MCCOMPO(I_OBJECT.OBJECT): Verifie que les structures de donnees utilisees dans self existent bien dans le contexte avant etape, sinon enleve la reference a ces concepts """ - for motcle in self.mc_liste : + for motcle in self.mcListe : motcle.verifExistenceSd() def updateMcGlobal(self): @@ -415,11 +428,11 @@ class MCCOMPO(I_OBJECT.OBJECT): Un mot cle compose ne peut pas etre global. Il se contente de passer la requete a ses fils. """ - for motcle in self.mc_liste : + for motcle in self.mcListe : motcle.updateMcGlobal() def deleteMcGlobal(self): - for motcle in self.mc_liste : + for motcle in self.mcListe : motcle.deleteMcGlobal() try : motcle.updateMcGlobal() diff --git a/Ihm/I_MCSIMP.py b/Ihm/I_MCSIMP.py index 7c46b589..13888db5 100644 --- a/Ihm/I_MCSIMP.py +++ b/Ihm/I_MCSIMP.py @@ -323,10 +323,11 @@ class MCSIMP(I_OBJECT.OBJECT): self.parent.updateConditionBloc() def setValeur(self,new_valeur,evaluation='oui'): - #print "setValeur",new_valeur + print ("setValeur Ihm/IMCSIMP ",new_valeur) self.initModif() self.valeur = new_valeur self.val = new_valeur + self.setValeurObjPyxb(new_valeur) self.updateConditionBloc() self.etape.modified() self.finModif() diff --git a/Ihm/I_PROC_ETAPE.py b/Ihm/I_PROC_ETAPE.py index b1ef9173..4b46b592 100644 --- a/Ihm/I_PROC_ETAPE.py +++ b/Ihm/I_PROC_ETAPE.py @@ -58,7 +58,7 @@ class PROC_ETAPE(I_ETAPE.ETAPE): Inputs : - sd=concept detruit """ - for child in self.mc_liste : + for child in self.mcListe : child.deleteConcept(sd) def replaceConcept(self,old_sd,sd): @@ -70,7 +70,7 @@ class PROC_ETAPE(I_ETAPE.ETAPE): - old_sd=concept remplace - sd=nouveau concept """ - for child in self.mc_liste : + for child in self.mcListe : child.replaceConcept(old_sd,sd) #ATTENTION SURCHARGE: a garder en synchro ou a reintegrer dans le Noyau diff --git a/InterfaceQT4/browser.py b/InterfaceQT4/browser.py index f5e7d554..a49edc41 100644 --- a/InterfaceQT4/browser.py +++ b/InterfaceQT4/browser.py @@ -701,7 +701,7 @@ class JDCNode(QTreeWidgetItem,GereRegles): def onAdd(self,object): if self.JESUISOFF==1 : return - #print "onAdd pour ", self.item.nom, object.nom + #print ("onAdd pour ", self.item.nom, object) self.editor.initModif() self.updateNodes() # PN -- non necessaire si item=jdc @@ -709,7 +709,7 @@ class JDCNode(QTreeWidgetItem,GereRegles): def onSupp(self,object): if self.JESUISOFF==1 : return - #print "onSup pour ", self.item.nom, object.nom + #print "onSup pour ", self.item.nom, object self.editor.initModif() self.updateNodes() # PN -- non necessaire si item=jdc diff --git a/InterfaceQT4/compobloc.py b/InterfaceQT4/compobloc.py index b8bf53c0..f41f7c07 100644 --- a/InterfaceQT4/compobloc.py +++ b/InterfaceQT4/compobloc.py @@ -49,7 +49,7 @@ class BLOCTreeItem(compofact.FACTTreeItem): itemNode=Node #def get_objet(self,name) : - # for v in self.object.mc_liste: + # for v in self.object.mcListe: # if v.nom == name : return v # return None diff --git a/InterfaceQT4/compofact.py b/InterfaceQT4/compofact.py index 0f770e3e..8a9d66fb 100644 --- a/InterfaceQT4/compofact.py +++ b/InterfaceQT4/compofact.py @@ -98,7 +98,7 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem): """ Reactualise la liste des items fils stockes dans self.sublist """ - liste=self.object.mc_liste + liste=self.object.mcListe sublist=[None]*len(liste) # suppression des items lies aux objets disparus for item in self.sublist: diff --git a/InterfaceQT4/compoformule.py b/InterfaceQT4/compoformule.py index edec3844..d18af81b 100644 --- a/InterfaceQT4/compoformule.py +++ b/InterfaceQT4/compoformule.py @@ -113,7 +113,7 @@ class FORMULETreeItem(compooper.EtapeTreeItem): Retourne les arguments de la FORMULE """ args="" - for mot in self.object.mc_liste: + for mot in self.object.mcListe: if mot.nom == 'NOM_PARA': args=mot.valeur break @@ -132,7 +132,7 @@ class FORMULETreeItem(compooper.EtapeTreeItem): Retourne le corps de la FORMULE """ corps="" - for mot in self.object.mc_liste: + for mot in self.object.mcListe: if mot.nom == 'VALE': corps=mot.valeur break diff --git a/InterfaceQT4/compooper.py b/InterfaceQT4/compooper.py index 7f93cc5b..c03704bf 100644 --- a/InterfaceQT4/compooper.py +++ b/InterfaceQT4/compooper.py @@ -179,7 +179,7 @@ class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): # return self.labeltext, None, None #CS_pbruno todo #def get_objet(self,name) : - # for v in self.object.mc_liste: + # for v in self.object.mcListe: # if v.nom == name : return v # return None @@ -226,7 +226,7 @@ class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): Reactualise la liste des items fils stockes dans self.sublist """ if self.isActif(): - liste=self.object.mc_liste + liste=self.object.mcListe else: liste=[] diff --git a/Noyau/N_BLOC.py b/Noyau/N_BLOC.py index c8f64871..b1315229 100644 --- a/Noyau/N_BLOC.py +++ b/Noyau/N_BLOC.py @@ -143,7 +143,12 @@ class BLOC(N_ENTITE.ENTITE): '\n', "Erreur dans la condition : ", self.condition, ''.join(l)) else: return 0 - + + def longueurDsArbre(self): + longueur=0 + for mc in self.mcListe : + longueur = longueur + longueurDsArbre(mc) + return longueur def blocUtils(): """Définit un ensemble de fonctions utilisables pour écrire les diff --git a/Noyau/N_ENTITE.py b/Noyau/N_ENTITE.py index ca70e0a5..4735edd3 100644 --- a/Noyau/N_ENTITE.py +++ b/Noyau/N_ENTITE.py @@ -276,4 +276,3 @@ class ENTITE(object): mcs.update(liste) print (self.nom, mcs) return mcs - diff --git a/Noyau/N_ETAPE.py b/Noyau/N_ETAPE.py index a92b04f9..052bd528 100644 --- a/Noyau/N_ETAPE.py +++ b/Noyau/N_ETAPE.py @@ -120,9 +120,9 @@ class ETAPE(N_MCCOMPO.MCCOMPO): def MCBuild(self): """ Demande la construction des sous-objets et les stocke dans l'attribut - mc_liste. + mcListe. """ - self.mc_liste = self.build_mc() + self.mcListe = self.buildMc() def buildSd(self, nom): """ @@ -183,12 +183,12 @@ class ETAPE(N_MCCOMPO.MCCOMPO): on construit le sd a partir de cette classe et on le retourne - cas 2 : il s'agit d'une fonction - on l'evalue avec les mots-cles de l'etape (mc_liste) + on l'evalue avec les mots-cles de l'etape (mcListe) on construit le sd a partir de la classe obtenue et on le retourne """ if type(self.definition.sd_prod) == types.FunctionType: - d = self.creeDictValeurs(self.mc_liste) + d = self.creeDictValeurs(self.mcListe) try: sd_prod = self.definition.sd_prod(*(), **d) except EOFError: @@ -233,11 +233,11 @@ Causes possibles : il s'agit d'une sous classe de ASSD on retourne le nom de la classe - cas 2 : il s'agit d'une fonction - on l'evalue avec les mots-cles de l'etape (mc_liste) + on l'evalue avec les mots-cles de l'etape (mcListe) et on retourne son resultat """ if type(self.definition.sd_prod) == types.FunctionType: - d = self.creeDictValeurs(self.mc_liste) + d = self.creeDictValeurs(self.mcListe) sd_prod = self.definition.sd_prod(*(), **d) else: sd_prod = self.definition.sd_prod @@ -368,11 +368,11 @@ Causes possibles : etape.reuse = None etape.sdnom = None etape.etape = etape - etape.mc_liste = [] - for objet in self.mc_liste: + etape.mcListe = [] + for objet in self.mcListe: new_obj = objet.copy() new_obj.reparent(etape) - etape.mc_liste.append(new_obj) + etape.mcListe.append(new_obj) return etape def copyReuse(self, old_etape): @@ -394,7 +394,7 @@ Causes possibles : self.parent = parent self.jdc = parent.getJdcRoot() self.etape = self - for mocle in self.mc_liste: + for mocle in self.mcListe: mocle.reparent(self) if self.sd and self.reuse == None: self.sd.jdc = self.jdc diff --git a/Noyau/N_MACRO_ETAPE.py b/Noyau/N_MACRO_ETAPE.py index ac01fddf..793fe07e 100644 --- a/Noyau/N_MACRO_ETAPE.py +++ b/Noyau/N_MACRO_ETAPE.py @@ -159,7 +159,7 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): on construit le sd a partir de cette classe et on le retourne - cas 2 : sd_prod est une fonction - on l'evalue avec les mots-cles de l'etape (mc_liste) + on l'evalue avec les mots-cles de l'etape (mcListe) on construit le sd a partir de la classe obtenue et on le retourne """ @@ -167,7 +167,7 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): self.typret = None if type(self.definition.sd_prod) == types.FunctionType: - d = self.creeDictValeurs(self.mc_liste) + d = self.creeDictValeurs(self.mcListe) try: # la sd_prod d'une macro a l'objet macro_etape lui meme en premier argument # Comme sd_prod peut invoquer la methode typeSDProd qui ajoute @@ -224,14 +224,14 @@ Causes possibles : il s'agit d'une sous classe de ASSD on retourne le nom de la classe - cas 2 : il s'agit d'une fonction - on l'evalue avec les mots-cles de l'etape (mc_liste) + on l'evalue avec les mots-cles de l'etape (mcListe) et on retourne son resultat """ if not force and hasattr(self, 'typret'): return self.typret if type(self.definition.sd_prod) == types.FunctionType: - d = self.creeDictValeurs(self.mc_liste) + d = self.creeDictValeurs(self.mcListe) # Comme sd_prod peut invoquer la methode typeSDProd qui ajoute # les concepts produits dans self.sdprods, il faut le mettre a zero self.sdprods = [] diff --git a/Noyau/N_MCBLOC.py b/Noyau/N_MCBLOC.py index ec8744fa..a0305414 100644 --- a/Noyau/N_MCBLOC.py +++ b/Noyau/N_MCBLOC.py @@ -53,7 +53,7 @@ class MCBLOC(N_MCCOMPO.MCCOMPO): - parent : le créateur du bloc. Ce peut etre un mot-clé facteur ou un autre objet composite de type OBJECT. Si parent vaut None, le bloc ne possède pas de contexte englobant. - - mc_liste : liste des sous-objets du bloc construite par appel à la méthode build_mc + - mcListe : liste des sous-objets du bloc construite par appel à la méthode buildMc """ #print ('MCBLOC' , val, definition, nom, parent) @@ -73,13 +73,13 @@ class MCBLOC(N_MCCOMPO.MCCOMPO): self.jdc = None self.niveau = None self.etape = None - self.mc_liste = self.build_mc() + self.mcListe = self.buildMc() def getValeur(self): """ Retourne la "valeur" de l'objet bloc. Il s'agit d'un dictionnaire dont - les clés seront les noms des objets de self.mc_liste et les valeurs - les valeurs des objets de self.mc_liste obtenues par application de + les clés seront les noms des objets de self.mcListe et les valeurs + les valeurs des objets de self.mcListe obtenues par application de la méthode getValeur. Dans le cas particulier d'un objet bloc les éléments du dictionnaire @@ -88,7 +88,7 @@ class MCBLOC(N_MCCOMPO.MCCOMPO): """ dico = {} - for mocle in self.mc_liste: + for mocle in self.mcListe: if mocle.isBLOC(): # Si mocle est un BLOC, on inclut ses items dans le dictionnaire # représentatif de la valeur de self. Les mots-clés fils de blocs sont diff --git a/Noyau/N_MCCOMPO.py b/Noyau/N_MCCOMPO.py index c99d57d6..e0cfed83 100644 --- a/Noyau/N_MCCOMPO.py +++ b/Noyau/N_MCCOMPO.py @@ -36,7 +36,7 @@ class MCCOMPO(N_OBJECT.OBJECT): """ - def build_mc(self): + def buildMc(self): """ Construit la liste des sous-entites du MCCOMPO à partir du dictionnaire des arguments (valeur) @@ -44,10 +44,10 @@ class MCCOMPO(N_OBJECT.OBJECT): #import traceback #traceback.print_stack() - #print(("MCCOMPO.build_mc _____________________________________", self.nom)) + #print(("MCCOMPO.buildMc _____________________________________", self.nom)) #print (self.dicoPyxbDeConstruction) if CONTEXT.debug: - print(("MCCOMPO.build_mc ", self.nom)) + print(("MCCOMPO.buildMc ", self.nom)) # Dans la phase de reconstruction args peut contenir des mots-clés # qui ne sont pas dans le dictionnaire des entites de definition (self.definition.entites) # de l'objet courant (self) @@ -55,7 +55,7 @@ class MCCOMPO(N_OBJECT.OBJECT): # (petits-fils, ...) args = self.valeur if args == None: args = {} - mc_liste = [] + mcListe = [] # On recopie le dictionnaire des arguments pour protéger l'original des @@ -86,7 +86,7 @@ class MCCOMPO(N_OBJECT.OBJECT): else : objPyxbDeConstruction=None objet = v(val=args.get(k, None), nom=k, parent=self,objPyxbDeConstruction=objPyxbDeConstruction) - mc_liste.append(objet) + mcListe.append(objet) # Si l'objet a une position globale on l'ajoute aux listes # correspondantes if hasattr(objet.definition, 'position'): @@ -114,13 +114,13 @@ class MCCOMPO(N_OBJECT.OBJECT): else : dicoPyxbDeConstruction=None objet = v(val=args.get(k, None), nom=k, parent=self,dicoPyxbDeConstruction=dicoPyxbDeConstruction) - mc_liste.append(objet) + mcListe.append(objet) if k in args: del args[k] # Phase 2: # On construit les objets (en général, blocs) conditionnés par les mots-clés précédemment créés. - # A ce stade, mc_liste ne contient que les fils de l'objet courant + # A ce stade, mcListe ne contient que les fils de l'objet courant # args ne contient plus que des mots-clés qui n'ont pas été attribués car ils sont # à attribuer à des blocs du niveau inférieur ou bien sont des mots-clés erronés for k, v in list(self.definition.entites.items()): @@ -132,35 +132,35 @@ class MCCOMPO(N_OBJECT.OBJECT): #PNPN on recalcule dico_valeurs dans le for # pour les globaux imbriques (exple Telemac Advection) # avant le calcul etait avant le for - dico_valeurs = self.creeDictCondition(mc_liste, condition=1) + dico_valeurs = self.creeDictCondition(mcListe, condition=1) globs = self.jdc and self.jdc.condition_context or {} if v.verifPresence(dico_valeurs, globs): # Si le bloc existe : # 1- on le construit - # 2- on l'ajoute à mc_liste + # 2- on l'ajoute à mcListe # 3- on récupère les arguments restant - # 4- on reconstruit le dictionnaire équivalent à mc_liste + # 4- on reconstruit le dictionnaire équivalent à mcListe bloc = v(nom=k, val=args, parent=self,dicoPyxbDeConstruction=self.dicoPyxbDeConstruction) - mc_liste.append(bloc) + mcListe.append(bloc) args = bloc.reste_val # On ne recalcule pas le contexte car on ne tient pas compte des blocs # pour évaluer les conditions de présence des blocs - # dico_valeurs = self.creeDictValeurs(mc_liste) + # dico_valeurs = self.creeDictValeurs(mcListe) # On conserve les arguments superflus dans l'attribut reste_val self.reste_val = args # On ordonne la liste ainsi créée suivant l'ordre du catalogue # (utile seulement pour IHM graphique) - mc_liste = self.ordonneListe(mc_liste) + mcListe = self.ordonneListe(mcListe) # on retourne la liste ainsi construite self.cata=self.jdc.cata - self.buildObjPyxb(mc_liste) + self.buildObjPyxb(mcListe) #else : print ('pas de construction pour ', self.nom, self.objPyxbDeConstruction) #print ('buildObjPyxb : ' , self.nom) - print(("MCCOMPO.build_mc fin_____________________________________", self.nom)) - return mc_liste + #print(("MCCOMPO.buildMc fin_____________________________________", self.nom)) + return mcListe - def ordonneListe(self, mc_liste): + def ordonneListe(self, mcListe): """ Ordonne la liste suivant l'ordre du catalogue. Seulement pour IHM graphique @@ -168,9 +168,9 @@ class MCCOMPO(N_OBJECT.OBJECT): if self.jdc and self.jdc.cata_ordonne_dico != None: liste_noms_mc_ordonnee = self.getListeMcOrdonneeBrute( self.getGenealogie(), self.jdc.cata_ordonne_dico) - return self.ordonneListeMc(mc_liste, liste_noms_mc_ordonnee) + return self.ordonneListeMc(mcListe, liste_noms_mc_ordonnee) else: - return mc_liste + return mcListe def creeDictValeurs(self, liste=[], condition=0): """ @@ -194,7 +194,7 @@ class MCCOMPO(N_OBJECT.OBJECT): - ajouter tous les mots-clés globaux (attribut position = 'global' et 'global_jdc') - L'argument liste est, en général, une mc_liste en cours de + L'argument liste est, en général, une mcListe en cours de construction, contenant les mots-clés locaux et les blocs déjà créés. """ @@ -246,9 +246,9 @@ class MCCOMPO(N_OBJECT.OBJECT): return dico def creeDictToutesValeurs(self): - """Semblable à `creeDictValeurs(liste=self.mc_liste)` en supprimant les + """Semblable à `creeDictValeurs(liste=self.mcListe)` en supprimant les valeurs None.""" - dico = self.creeDictValeurs(self.mc_liste, condition=0) + dico = self.creeDictValeurs(self.mcListe, condition=0) dico = dict([(k, v) for k, v in list(dico.items()) if v is not None]) return dico @@ -310,7 +310,7 @@ class MCCOMPO(N_OBJECT.OBJECT): etre correctement détruit par le garbage collector """ N_OBJECT.OBJECT.supprime(self) - for child in self.mc_liste: + for child in self.mcListe: child.supprime() def __getitem__(self, key): @@ -327,7 +327,7 @@ class MCCOMPO(N_OBJECT.OBJECT): """ # on cherche dans les mots cles presents, le mot cle de nom key # s'il est là on retourne sa valeur (méthode getVal) - for child in self.mc_liste: + for child in self.mcListe: if child.nom == key: return child.getValeur() # Si on n a pas trouve de mot cle present on retourne le defaut @@ -352,7 +352,7 @@ class MCCOMPO(N_OBJECT.OBJECT): # Si on a toujours rien trouve, on cherche dans les blocs presents # On suppose que tous les blocs possibles ont ete crees meme ceux # induits par un mot cle simple absent avec defaut (???) - for mc in self.mc_liste: + for mc in self.mcListe: if not mc.isBLOC(): continue try: @@ -367,11 +367,11 @@ class MCCOMPO(N_OBJECT.OBJECT): def getChild(self, name, restreint='non'): """ Retourne le fils de self de nom name ou None s'il n'existe pas - Si restreint vaut oui : ne regarde que dans la mc_liste + Si restreint vaut oui : ne regarde que dans la mcListe Si restreint vaut non : regarde aussi dans les entites possibles avec defaut (Ce dernier cas n'est utilisé que dans le catalogue) """ - for v in self.mc_liste: + for v in self.mcListe: if v.nom == name: return v if restreint == 'non': @@ -412,11 +412,11 @@ class MCCOMPO(N_OBJECT.OBJECT): # est acceptee objet.valeur = copy(self.valeur) objet.val = copy(self.val) - objet.mc_liste = [] - for obj in self.mc_liste: + objet.mcListe = [] + for obj in self.mcListe: new_obj = obj.copy() new_obj.reparent(objet) - objet.mc_liste.append(new_obj) + objet.mcListe.append(new_obj) return objet def reparent(self, parent): @@ -426,7 +426,7 @@ class MCCOMPO(N_OBJECT.OBJECT): self.parent = parent self.jdc = parent.getJdcRoot() self.etape = parent.etape - for mocle in self.mc_liste: + for mocle in self.mcListe: mocle.reparent(self) def getSd_utilisees(self): @@ -435,7 +435,7 @@ class MCCOMPO(N_OBJECT.OBJECT): ( comme valorisation d'un MCS) """ l = [] - for child in self.mc_liste: + for child in self.mcListe: l.extend(child.getSd_utilisees()) return l @@ -452,7 +452,7 @@ class MCCOMPO(N_OBJECT.OBJECT): 'MODELE': [] } """ dico = {} - for child in self.mc_liste: + for child in self.mcListe: daux = child.getSd_mcs_utilisees() for cle in daux: dico[cle] = dico.get(cle, []) @@ -467,7 +467,7 @@ class MCCOMPO(N_OBJECT.OBJECT): instances de la classe CO """ l = [] - for child in self.mc_liste: + for child in self.mcListe: l.extend(child.getMcsWithCo(co)) return l @@ -476,7 +476,7 @@ class MCCOMPO(N_OBJECT.OBJECT): Cette methode retourne tous les concepts instances de CO """ l = [] - for child in self.mc_liste: + for child in self.mcListe: l.extend(child.getAllCo()) return l diff --git a/Noyau/N_MCFACT.py b/Noyau/N_MCFACT.py index dad024a4..52be4313 100644 --- a/Noyau/N_MCFACT.py +++ b/Noyau/N_MCFACT.py @@ -66,7 +66,7 @@ class MCFACT(N_MCCOMPO.MCCOMPO): self.jdc = None self.niveau = None self.etape = None - self.mc_liste = self.build_mc() + self.mcListe = self.buildMc() def GETVAL(self, val): """ diff --git a/Noyau/N_MCLIST.py b/Noyau/N_MCLIST.py index 97b5caf2..5d693ed9 100644 --- a/Noyau/N_MCLIST.py +++ b/Noyau/N_MCLIST.py @@ -98,11 +98,11 @@ class MCList(UserList): """ obj = self.data[0] # Phase 1 : on cherche dans les fils directs de obj - for child in obj.mc_liste: + for child in obj.mcListe: if child.nom == name: return child # Phase 2 : on cherche dans les blocs de self - for child in obj.mc_liste: + for child in obj.mcListe: if child.isBLOC(): resu = child.getChild(name) if resu != None: @@ -236,9 +236,13 @@ class MCList(UserList): """ dresu = [] for mcf in self: - dico = mcf.creeDictValeurs(mcf.mc_liste) + dico = mcf.creeDictValeurs(mcf.mcListe) for i in list(dico.keys()): if dico[i] == None: del dico[i] dresu.append(dico) return dresu + + def longueurDsArbre(self): + # pour Pyxb : longueur dans le orderedcontent de pyxb + return len(self) diff --git a/Noyau/N_OBJECT.py b/Noyau/N_OBJECT.py index c1fb1973..8765539f 100644 --- a/Noyau/N_OBJECT.py +++ b/Noyau/N_OBJECT.py @@ -72,11 +72,6 @@ class OBJECT(object): """ return self - def isBLOC(self): - """ - Indique si l'objet est un BLOC - """ - return 0 def getJdcRoot(self): """ @@ -105,6 +100,16 @@ class OBJECT(object): self.parent = parent self.jdc = parent.jdc + def isBLOC(self): + """ + Indique si l'objet est un BLOC + surcharge dans MCBLOC + """ + return 0 + + def longueurDsArbre(self): + return 1 + class ErrorObj(OBJECT): @@ -116,7 +121,7 @@ class ErrorObj(OBJECT): self.definition = definition self.valeur = valeur self.parent = parent - self.mc_liste = [] + self.mcListe = [] if parent: self.jdc = self.parent.jdc # self.niveau = self.parent.niveau @@ -138,3 +143,5 @@ class ErrorObj(OBJECT): self.cr.fatal(_(u"Type non autorisé pour le mot-clé %s : '%s'"), self.nom, self.valeur) return self.cr + + diff --git a/Validation/V_ETAPE.py b/Validation/V_ETAPE.py index 39337820..75479958 100644 --- a/Validation/V_ETAPE.py +++ b/Validation/V_ETAPE.py @@ -52,7 +52,7 @@ class ETAPE(V_MCCOMPO.MCCOMPO): def validChild(self): """ Cette methode teste la validite des mots cles de l'etape """ - for child in self.mc_liste: + for child in self.mcListe: if not child.isValid(): return 0 return 1 @@ -171,7 +171,7 @@ class ETAPE(V_MCCOMPO.MCCOMPO): """ sd_prod = self.definition.sd_prod if type(sd_prod) == types.FunctionType: # Type de concept retourne calcule - d = self.creeDictValeurs(self.mc_liste) + d = self.creeDictValeurs(self.mcListe) try: sd_prod = sd_prod(*(), **d) except: @@ -243,10 +243,10 @@ class ETAPE(V_MCCOMPO.MCCOMPO): traceback.print_exc() self.cr.fatal('Command : %s line : %r file : %r %s' % (tr(self.nom), self.appel[0], self.appel[1], e)) i = 0 - for child in self.mc_liste: + for child in self.mcListe: i += 1 if i > MAXSIZE: - print (MAXSIZE_MSGCHK.format(MAXSIZE, len(self.mc_liste))) + print (MAXSIZE_MSGCHK.format(MAXSIZE, len(self.mcListe))) break self.cr.add(child.report()) return self.cr diff --git a/Validation/V_MACRO_ETAPE.py b/Validation/V_MACRO_ETAPE.py index b3a20f6b..f3890555 100644 --- a/Validation/V_MACRO_ETAPE.py +++ b/Validation/V_MACRO_ETAPE.py @@ -140,7 +140,7 @@ class MACRO_ETAPE(V_ETAPE.ETAPE): self.typret = None if type(sd_prod) == types.FunctionType: # Type de concept retourne calcule - d = self.creeDictValeurs(self.mc_liste) + d = self.creeDictValeurs(self.mcListe) try: # la sd_prod d'une macro a l'objet lui meme en premier argument # contrairement a une ETAPE ou PROC_ETAPE diff --git a/Validation/V_MCBLOC.py b/Validation/V_MCBLOC.py index a77d199d..5741e579 100644 --- a/Validation/V_MCBLOC.py +++ b/Validation/V_MCBLOC.py @@ -60,7 +60,7 @@ class MCBLOC(V_MCCOMPO.MCCOMPO): old_valid = self.valid else: old_valid = None - for child in self.mc_liste: + for child in self.mcListe: if not child.isValid(): valid = 0 break diff --git a/Validation/V_MCCOMPO.py b/Validation/V_MCCOMPO.py index e943d623..d1cc1113 100644 --- a/Validation/V_MCCOMPO.py +++ b/Validation/V_MCCOMPO.py @@ -44,7 +44,7 @@ from Noyau.N_Exception import AsException class MCCOMPO(object): """ - L'attribut mc_liste a ete cree par une classe derivee de la + L'attribut mcListe a ete cree par une classe derivee de la classe MCCOMPO du Noyau """ @@ -71,10 +71,10 @@ class MCCOMPO(object): self.cr.debut = self.txt_nat + self.nom self.cr.fin = "END " + self.txt_nat + self.nom i = 0 - for child in self.mc_liste: + for child in self.mcListe: i += 1 if i > MAXSIZE: - print(MAXSIZE_MSGCHK.format(MAXSIZE, len(self.mc_liste))) + print(MAXSIZE_MSGCHK.format(MAXSIZE, len(self.mcListe))) break self.cr.add(child.report()) self.state = 'modified' @@ -111,7 +111,7 @@ class MCCOMPO(object): def dictMcPresents(self, restreint='non'): """ - Retourne le dictionnaire {mocle : objet} construit a partir de self.mc_liste + Retourne le dictionnaire {mocle : objet} construit a partir de self.mcListe Si restreint == 'non' : on ajoute tous les mots-cles simples du catalogue qui ont une valeur par defaut Si restreint == 'oui' : on ne prend que les mots-cles effectivement entres par @@ -120,7 +120,7 @@ class MCCOMPO(object): dico = {} # on ajoute les couples {nom mot-cle:objet mot-cle} effectivement # presents - for v in self.mc_liste: + for v in self.mcListe: if v == None: continue k = v.nom diff --git a/Validation/V_MCFACT.py b/Validation/V_MCFACT.py index d10945e1..97698e77 100644 --- a/Validation/V_MCFACT.py +++ b/Validation/V_MCFACT.py @@ -60,7 +60,7 @@ class MCFACT(V_MCCOMPO.MCCOMPO): old_valid = self.valid else: old_valid = None - for child in self.mc_liste: + for child in self.mcListe: if not child.isValid(): valid = 0 break diff --git a/VirtualPolymer/VP_Cata_V2.py b/VirtualPolymer/VP_Cata_V2.py index 271a46ba..d73b3192 100644 --- a/VirtualPolymer/VP_Cata_V2.py +++ b/VirtualPolymer/VP_Cata_V2.py @@ -37,7 +37,7 @@ JdC = JDC_CATA(code='VP', #--------------------------------- -Equation = PROC (nom="Equation", +DataBase = PROC (nom="DataBase", op=None, #--------------------------------- Equation_DB=SIMP(statut= 'o',typ= 'TXM', into=("Approved data base", "My data base") ), @@ -137,7 +137,7 @@ Equation = PROC (nom="Equation", ) # Fin Equation #--------------------------------- -Modele = PROC (nom="Modele", +ODE = PROC (nom="ODE", op=None, Modele_DB=SIMP(statut= 'o',typ= 'TXM', into=("Approved data base", "My data base"),siValide=lienDB.recupereDicoModele ), Modele_Type = SIMP(statut= 'o',typ= 'TXM', into=("Show modele database", "Modele creation"),siValide=lienDB.creeListeEquation), @@ -278,7 +278,7 @@ Modele = PROC (nom="Modele", Commentaire = SIMP (statut = 'f', typ = 'TXM'), ) # Fin Modele #--------------------------------- -Posttraitement = PROC (nom="Posttraitement", +AnalyticModel = PROC (nom="AnalyticModel", op=None, posttraitement_DB=SIMP(statut= 'o',typ= 'TXM', into=("Approved data base", "My data base") ), posttraitement_Type = SIMP(statut= 'o',typ= 'TXM', into=("Show post-traitement database", "post-traitement creation"),), diff --git a/VirtualPolymer/prefs_VP.py b/VirtualPolymer/prefs_VP.py index 33c5cfdc..05f4f643 100644 --- a/VirtualPolymer/prefs_VP.py +++ b/VirtualPolymer/prefs_VP.py @@ -37,7 +37,7 @@ encoding='iso-8859-1' catalogues=( ('VP','V1',os.path.join(repIni,'VP_Cata_V2.py'),'python','python'), ) -nombreDeBoutonParLigne=2 +nombreDeBoutonParLigne=3 closeFrameRechercheCommande = True closeEntete = True #closeArbre = True diff --git a/convert/convert_TELEMAC.py b/convert/convert_TELEMAC.py index 87299eb5..59cee25c 100644 --- a/convert/convert_TELEMAC.py +++ b/convert/convert_TELEMAC.py @@ -458,6 +458,7 @@ class TELEMACparser(Pythonparser): def tri(self, listeIn): + if len(listeIn) == 0 : return listeIn if len(listeIn) == 1 : return listeIn if self.Ordre_Des_Commandes == None : return listeIn listeOut=[listeIn[0],] -- 2.39.2