From: pascale.noyret Date: Fri, 18 Sep 2020 10:16:28 +0000 (+0200) Subject: correction partielle union de type X-Git-Tag: MDM_V0~24 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=f34a56074d1e9993f305b69f8015cb9371c119ab;p=tools%2Feficas.git correction partielle union de type --- diff --git a/Efi2Xsd/AccasXsd.py b/Efi2Xsd/AccasXsd.py index c213061f..9e62c82b 100755 --- a/Efi2Xsd/AccasXsd.py +++ b/Efi2Xsd/AccasXsd.py @@ -173,6 +173,8 @@ class X_compoFactoriseAmbigu(X_definition): self.mcXSD.append(mc) self.ordre_mc.append(mc.nom) + print (self.mcXSD) + print (self.ordre_mc) self.construitEntites(self.mcXSD) self.constructionArbrePossibles() lesPossibles=deepcopy(self.arbrePossibles) @@ -292,6 +294,7 @@ class X_compoFactoriseAmbigu(X_definition): def factoriseEtCreeDump(self, laListe, indent=2 ,nomAppel=None): #print ('_______________________________ factoriseEtCreeDump') #print(self.nom, laListe, indent, nomAppel) + import traceback; traceback.print_stack() maListeRetour=[] aReduire={} @@ -359,7 +362,7 @@ class X_compoFactoriseAmbigu(X_definition): def ajouteAuxTextes(self,nomMC,indent) : #print ('ajouteAuxTextes', nomMC, self.nom, self.entites) - #print ('ajouteAuxTextes', nomMC) + print ('ajouteAuxTextes', nomMC, self.entites[nomMC]) #for i in self.entites.keys() : print (self.entites[i][0].nom) if (indent > 3) : indent = indent - 3 else : indent = 0 @@ -382,12 +385,13 @@ class X_compoFactoriseAmbigu(X_definition): # cette boucle ne fonctionne que pour des SIMP resteATraiter=copy(self.entites[nomMC]) - #print ('________resteATraiter', resteATraiter) + print ('________resteATraiter', resteATraiter) listePourUnion=[] first=1 while resteATraiter != [] : nvlListeATraiter=[] mc=resteATraiter[0] + #print (mc) listePourUnion.append(mc) for autre in resteATraiter[1:]: if not (mc.compare(autre)) : nvlListeATraiter.append(autre) @@ -416,16 +420,24 @@ class X_compoFactoriseAmbigu(X_definition): self.texteSimple += mc.texteSimple self.mcDejaDumpe.add(mc.nomDuTypePyxb) else : + # PN --> faire tous les cas tests for e in listePourUnion : + #print ( 'dans le else ', e) e.dumpXsd(dansFactorisation=True,multiple=True,first=first) if first and (e.nomDuTypePyxb not in self.mcDejaDumpe) : + #print ('first -------- ',e.texteSimple) self.texteComplexeVenantDesFils += e.texteComplexe self.mcDejaDumpe.add(e.nomDuTypePyxb) texteSimpleUnion += '\t'*(indent)+e.texteSimple first=first * 0 + else : + texteSimpleUnion += '\t'*(indent)+e.texteSimple + #print ('non first -------- ',e.texteSimple) + # print (e.texteSimple) texteSimpleUnion += finUnion texteSimpleUnion+=fermeSimpleType self.texteSimple += texteSimpleUnion + #print ('self.texteSimple', self.texteSimple)