]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
bug divers
authorpascale.noyret <pascale.noyret@edf.fr>
Tue, 23 Feb 2021 16:18:39 +0000 (17:18 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Tue, 23 Feb 2021 16:18:39 +0000 (17:18 +0100)
Efi2Xsd/AccasXsd.py

index b5daa9c05e50d83d76e50d49ce8a8c78a3c0c7ac..1f1ab2082eb196b5489ce71f8fe11611785165bf 100755 (executable)
@@ -31,6 +31,7 @@ from .mapDesTypes import Tuple
 PourTraduction = False
 
 from .balisesXSD import *
+
 # -----------------
 class X_definition:
 # -----------------
@@ -62,17 +63,6 @@ class X_definition:
               if newListe not in listeFinale : listeFinale.append(newListe)
        return listeFinale
 
-   #def remplaceNomListeParContenu(self, liste1, liste2):
-       #print ('remplaceNomListeParContenu', liste1, liste2)
-   #    listeFinale=[]
-   #    for elt1 in liste1 :
-   #      for eltListe in liste2:
-   #           if eltListe == [] : continue
-   #           newListe=deepcopy(elt1)
-   #           if eltListe!=[] :newListe+=eltListe
-   #           listeFinale.append(newListe)
-       #print ('listeFinale', listeFinale)
-   #    return listeFinale
 
    def fusionne2Listes(self, liste1, liste2):
        #print ('fusionne2Liste', liste1, liste2)
@@ -180,7 +170,7 @@ class X_compoFactoriseAmbigu(X_definition):
 # ----------------------------------------
 
    def __init__(self,nom,listeDeCreation,pere, debug=False):
-       #if nom == 'blocSteady_blocSimulatedRijDefinition' : 
+       #if nom == 'blocFormatFichierMed_blocFormatFichierAll' : debug = True 
        #   import traceback
        #   traceback.print_stack()
        if debug : 
@@ -388,6 +378,7 @@ class X_compoFactoriseAmbigu(X_definition):
        
        
    def ajouteAuxTextes(self,nomMC,indent,debug=False) :
+       if nomMC == 'FileName' : debug=True
        if debug : print ('ajouteAuxTextes', nomMC, self.nom, self.entites[nomMC])
        #if debug : 
        #   traceback.print_stack() 
@@ -395,11 +386,10 @@ class X_compoFactoriseAmbigu(X_definition):
        if (indent  > 3) : indent = indent - 3 
        
        # PN change le 17 fevrier . Est-ce normal  d arriver la ?
-       # il faut comprendre le cas de 
        # if faut traiter les Blocs exclusifs qui donnent des choices de sequences
        # mais celles-ci risquent d etre ambigues
        while (isinstance(nomMC,list)) : 
-          print ('nomMC anormal', nomMC)
+          print ('nomMC anormal (ou pas ? a traiter avec cata_Particle', nomMC)
           if len(nomMC) > 1 : print ('monMC vraiment anormal', monMC); exit()
           nomMC=nomMC[0]
           
@@ -435,7 +425,7 @@ class X_compoFactoriseAmbigu(X_definition):
        if len(listePourUnion) == 1:
            mc=listePourUnion[0]
            mc.dumpXsd(dansFactorisation=True,multiple=False,first=first)
-           if mc.aCreer : self.texteComplexe += '\t'*(indent) + mc.texteElt
+           self.texteComplexe += '\t'*(indent) + mc.texteElt
            if mc.aCreer : self.texteComplexeVenantDesFils += mc.texteComplexe
            if mc.aCreer : self.texteSimple   += mc.texteSimple
            for mcIdent in self.entites[nomMC][1:]: mcIdent.metAJourPyxb(mc.nomDuTypePyxb) 
@@ -453,27 +443,26 @@ class X_compoFactoriseAmbigu(X_definition):
        nomTypePyxbUnion=self.entites[nomMC][0].nomDuTypePyxb
        texteSimpleUnion=debutSimpleType.format(nomTypePyxbUnion)
        texteSimpleUnion+=debutUnion
-       if nomMC == 'ParticleName' : print (texteSimpleUnion)
-       if len(listePourUnion) == 1 :
+       #if len(listePourUnion) == 1 :
        #PN  29 septembre 20. Est ce que ce if a un sens
        # si len(listePourUnion==1) on est deja sorti non ?
-           mc=self.entites[nomMC][0]
-           mc.dumpXsd(dansFactorisation=True,multiple=True,first=first)
+       #    mc=self.entites[nomMC][0]
+       #    mc.dumpXsd(dansFactorisation=True,multiple=True,first=first)
            # inutile - deja fait plus haut
-           if mc.aCreer : self.texteComplexeVenantDesFils += mc.texteComplexe
-           if mc.aCreer : self.texteSimple   += mc.texteSimple
-       else :
-           texteSimpleUnion += '\t'*(indent)+self.entites[nomMC][0].texteSimplePart2
-           texteSimplePart1= self.entites[nomMC][0].texteSimplePart1
-           for e in listePourUnion[1:] :
-               e.dumpXsd(dansFactorisation=True,multiple=True,first=False)
-               # si on ext un mc simple la ligne suivante est inutile
-               # en revanche on ajoute le texte a tous les coups
-               #self.texteComplexeVenantDesFils += e.texteComplexe
-               e.metAJourPyxb(nomTypePyxbUnion) 
-               texteSimpleUnion += '\t'*(indent) + e.texteSimplePart2
-               texteSimplePart1 += e.texteSimplePart1
-           texteSimpleUnion += finUnion
+       #    if mc.aCreer : self.texteComplexeVenantDesFils += mc.texteComplexe
+       #    if mc.aCreer : self.texteSimple   += mc.texteSimple
+       #else :
+       texteSimpleUnion += '\t'*(indent)+self.entites[nomMC][0].texteSimplePart2
+       texteSimplePart1= self.entites[nomMC][0].texteSimplePart1
+       for e in listePourUnion[1:] :
+           e.dumpXsd(dansFactorisation=True,multiple=True,first=False)
+           # si on ext un mc simple la ligne suivante est inutile
+           # en revanche on ajoute le texte a tous les coups
+           #self.texteComplexeVenantDesFils += e.texteComplexe
+           e.metAJourPyxb(nomTypePyxbUnion) 
+           texteSimpleUnion += '\t'*(indent) + e.texteSimplePart2
+           texteSimplePart1 += e.texteSimplePart1
+       texteSimpleUnion += finUnion
        texteSimpleUnion+=fermeSimpleType
        self.texteSimple   += texteSimplePart1 + texteSimpleUnion
        #print ('self.texteSimple', self.texteSimple)
@@ -798,7 +787,7 @@ class X_SIMP (X_definition):
 
        #  --> homonymie on peut utiliser genealogie ?
        self.nomDuTypeDeBase = self.traduitType()
-       #if self.nom == 'SubgridScaleModel' : debug =1
+       if self.nom == 'FileName' : debug =1
        if debug : print ('nomDuTypeDeBase', self.nomDuTypeDeBase)
        if debug : print ('multiple', multiple, 'first', first)
        if not multiple : 
@@ -1103,30 +1092,6 @@ class X_JDC_CATA :
 
 
         #if not PourTraduction : print (self.texteXSD)
-        # PN : version 0 de la construction des types a remplacer
-        #import pprint
-        #pprint.pprint(cata.dictTypesXSD)
-        #dicoARemplacer={}
-        #for  k in list(cata.dictTypesXSD.keys()):
-        #   if len(cata.dictTypesXSD[k])==1 : continue
-        #   listeDesFacts=[]
-        #   listeDesBlocs=[]
-        #   listeDesBlocsAmbigus=[]
-        #   for definition in cata.dictTypesXSD[k] : 
-        #       if definition.label == 'SIMP' : continue
-        #       if definition.label == 'FACT' : listeDesFacts.append(definition)
-        #       if definition.label == 'BLOC' : listeDesBlocs.append(definition)
-        #       if definition.label == 'BlocAmbigu': listeDesBlocsAmbigus.append(definition)
-        #   print (k,listeDesFacts,listeDesBlocs,listeDesBlocsAmbigus)
-        #   for listeTraitee in listeDesFacts,listeDesBlocs,listeDesBlocsAmbigus:
-        #       if len(listeTraitee) < 2 : continue
-        #       dicoParTypePyxb={}
-        #       for MC in listeTraitee : 
-        #           if MC.nomDuTypePyxb in list(dicoParTypePyxb.keys()): dicoParTypePyxb[MC.nomDuTypePyxb].append(MC)
-        #           else : dicoParTypePyxb[MC.nomDuTypePyxb]=[MC,]
-        #       for k in dicoParTypePyxb.keys() :
-        #           if len(dicoParTypePyxb[k]) < 1 :
-        #              dicoARemplacer[k]=dicoParTypePyxb[k][1:]
                    
         import pprint
         #pprint.pprint (cata.dictTypesXSDJumeaux)
@@ -1142,13 +1107,11 @@ class X_JDC_CATA :
         dico = {}
         for  k in list(cata.dictTypesXSD.keys()):
              dico[k]={}
+             different=False
              for definition in cata.dictTypesXSD[k] : 
                  if definition.label  == 'BLOC' or  definition.label == 'BlocAmbigu':continue
-                 if definition.nomDuTypePyxb == 'T_'+definition.nom : continue
+                 if definition.nomDuTypePyxb != 'T_'+definition.nom : different=True 
                  listeATraiter=[definition.geneaCompleteSousFormeDeListe(),]
-                 #print ('je traite', k, '____________________________' )
-                 #print (definition)
-                 #print (definition.nomDuTypePyxb)
                  while listeATraiter != [] :
                      listeGenea=listeATraiter[0]
                      listeATraiter=listeATraiter[1:]
@@ -1157,14 +1120,13 @@ class X_JDC_CATA :
                      for MC in listeGenea:
                          txtNomComplet=txtNomComplet+'_'+MC.nom
                          if MC in list(cata.dictTypesXSDJumeaux.keys()) :
-                            #print ("aCrrer", indexMC)
                             for MCJumeau in cata.dictTypesXSDJumeaux[MC]:
                                 # attention nvlleGenalogie n a pas de sens en Accas
                                 nvlleGenalogie=listeGenea[:indexMC]+MCJumeau.geneaCompleteSousFormeDeListe()
                                 listeATraiter.append(nvlleGenalogie)
                          indexMC=indexMC+1
                      dico[k][txtNomComplet]=definition.nomDuTypePyxb
-             if dico[k]== {} : del dico[k]
+             if dico[k]== {} or (not different) : del dico[k]
         import pprint
         #pprint.pprint(dico)
         if dico != {} : self.texteXSD += texteAnnotation.format(self.nomDuCodeDumpe,str(dico))