]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
correction de bug. a tester
authorPASCALE NOYRET <pascale.noyret@edf.fr>
Wed, 27 Apr 2022 16:53:35 +0000 (18:53 +0200)
committerYohann Pipeau <yohann.pipeau@edf.fr>
Tue, 10 May 2022 14:21:07 +0000 (16:21 +0200)
Efi2Xsd/AccasXsd.py

index 522709809c23c5f82e5af7b8fe7802451ec3f23b..c13c5227790374658fd1dd36341c7dccaba18519 100755 (executable)
@@ -152,6 +152,7 @@ class X_definition:
             self.nomDuTypePyxb=nom
             return nom
 
+        if debug : print ('definitNomDuTypePyxb deja traite ',  self.nom , ' suite de l algo' )
         if nom == 'T_Consigne' : return nom
 
         if debug : print ('forceACreer : ', forceACreer)
@@ -162,7 +163,7 @@ class X_definition:
             indice=0
             while (indice < len(listePossible)) :
                 objAComparer=listePossible[indice]
-                if debug : print (self.compare)
+                if debug : print (self.compare(objAComparer))
                 if self.compare(objAComparer) :
                     self.nomDuTypePyxb=objAComparer.nomDuTypePyxb
                     if debug : print (self, objAComparer)
@@ -181,6 +182,7 @@ class X_definition:
         if (hasattr (self, 'nomXML')) and self.nomXML != None :
             nomAlter='T_'+self.nomXML+'_'+str(indice)
         self.nomDuTypePyxb=nomAlter
+        if debug : print ('self.nomDuTypePyxb : ', nomAlter)
         return nomAlter
 
 
@@ -332,7 +334,7 @@ class X_compoFactoriseAmbigu(X_definition):
 
 
     def factoriseEtCreeDump(self, laListe, indent=2 ,nomAppel=None, debug=False):
-        if debug : print(self.nom, laListe, indent, nomAppel)
+        if debug : print('______________ debut factoriseetCreeDump',self.nom, laListe, indent, nomAppel)
         maListeRetour=[]
         aReduire={}
 
@@ -345,7 +347,6 @@ class X_compoFactoriseAmbigu(X_definition):
             #min=1
         
 
-
         for ligne in laListe :
             if ligne[0] in aReduire.keys():
                 if len(ligne) == 1 :aReduire[ligne[0]].append([])
@@ -356,7 +357,7 @@ class X_compoFactoriseAmbigu(X_definition):
 
 
         if debug : print ('la Liste', laListe, declencheChoiceAvecSeqVid)
-        if debug : print (aReduire)
+        if debug : print ('aReduire',aReduire, 'keys', aReduire.keys())
         if len(aReduire.keys()) == 1 :
             if declencheChoiceAvecSeqVid == False :
                 creeChoice=False
@@ -375,7 +376,7 @@ class X_compoFactoriseAmbigu(X_definition):
             creeChoice=True
             creeSequence=False
 
-        if debug : print ('creeSequence', creeSequence, aReduire)
+        if debug : print ('creeSequence', creeSequence,'creechoice', creeChoice)
         for nomMC in aReduire.keys():
             if debug : print ('--------------------------------------------- boucle for', nomMC, aReduire[nomMC])
             listeSuivante=aReduire[nomMC]
@@ -385,14 +386,18 @@ class X_compoFactoriseAmbigu(X_definition):
             if listeSuivante == [[]] : continue # Est-ce toujours vrai ?
             if debug : print ('listeSuivante', listeSuivante)
             aTraiter=listeSuivante
-            while len(aTraiter) == 1 and isinstance(aTraiter[0],list): aTraiter=aTraiter[0]
             if debug : print ('aTraiter', aTraiter)
-            if len(aTraiter) == 1 :
-                self.ajouteAuxTextes(aTraiter[0],indent)
-            else : 
-                for mc in aTraiter : self.ajouteAuxTextes(mc, indent)
+            if debug : print ('aTraiter', aTraiter)
+            if len(aTraiter) == 1 : 
+                 if not(isinstance(aTraiter[0],list)) : self.ajouteAuxTextes(aTraiter[0],indent )
+                 while len(aTraiter) == 1 and isinstance(aTraiter[0],list):  aTraiter=aTraiter[0]
+                 for mc in aTraiter : self.ajouteAuxTextes(mc, indent)
+            else :
+                 self.factoriseEtCreeDump(aTraiter, indent+int(creeSequence),nomMC)
             if creeChoice   : indent=indent -1 ; self.texteComplexe += '\t'*(indent) + finSequenceDsBloc
             if debug : print ('--------------------------------------------- fin boucle for', nomMC)
+            #if nomMC=='A' : self.texteComplexe=''
+            #if nomMC=='B' : break
 
         if declencheChoiceAvecSeqVid :
             self.texteComplexe +=  '\t'*indent +  debSequenceDsBloc
@@ -400,12 +405,12 @@ class X_compoFactoriseAmbigu(X_definition):
         if creeChoice   : indent=indent -1 ; self.texteComplexe += '\t'*indent + finChoiceDsBloc
         if creeSequence : indent=indent -1 ; self.texteComplexe += '\t'*(indent) + finSequenceDsBloc
 
-        debug=False
-        if debug : print (self.texteSimple)
+        ##if debug : print (self.texteSimple)
         if debug : print ('______',' self.texteComplexe')
         if debug : print (self.texteComplexe)
-        if debug : print ('_____', 'self.texteComplexeVenantDesFils')
-        if debug : print (self.texteComplexeVenantDesFils)
+        #if debug : print ('_____', 'self.texteComplexeVenantDesFils')
+        #if debug : print (self.texteComplexeVenantDesFils)
+        if debug : print ('ma Liste Retour', maListeRetour)
         if debug : print ('fin pour _______________________________', self.nom)
         return (maListeRetour)
 
@@ -422,8 +427,10 @@ class X_compoFactoriseAmbigu(X_definition):
         # PN change le 17 fevrier . Est-ce normal  d arriver la ?
         # if faut traiter les Blocs exclusifs qui donnent des choices de sequences
         # mais celles-ci risquent d etre ambigues
-        while (isinstance(nomMC,list)) :
-            nomMC=nomMC[0]
+        while (isinstance(nomMC,list)) : 
+              if nomMC == [] : return # on garde les [] dans les choix sinon souci sur les sequences/choix
+              nomMC=nomMC[0]
+              
 
         if nomMC == 'Consigne' or nomMC == 'blocConsigne' : return
         #if debug : print (nomMC, 'dans ajoute vraiment aux textes', self.entites )
@@ -625,7 +632,6 @@ class X_compoFactoriseAmbigu(X_definition):
 
 
     def fusionneDesMatricesDeMemeType(self,nomMC,nbColsMin,nbColsMax,nbLigsMin,nbLigsMax,debug=False):
-        #if nomMC == 'BU_map' : debug=True
         if debug : print ('fusionneDesMatricesDeMemeType', nomMC,nbColsMin,nbColsMax,nbLigsMin,nbLigsMax)
         elt=self.entites[nomMC][0]
         typeDeMatrice =elt.type[0]