From a9ac4cbb57acf8788f3edcc2c2d718463198af72 Mon Sep 17 00:00:00 2001 From: PASCALE NOYRET Date: Wed, 27 Apr 2022 18:53:35 +0200 Subject: [PATCH] correction de bug. a tester --- Efi2Xsd/AccasXsd.py | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/Efi2Xsd/AccasXsd.py b/Efi2Xsd/AccasXsd.py index 52270980..c13c5227 100755 --- a/Efi2Xsd/AccasXsd.py +++ b/Efi2Xsd/AccasXsd.py @@ -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] -- 2.39.2