From 4c5790771b456590080b15ed85ab954f030f7408 Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Tue, 24 Mar 2020 15:39:49 +0100 Subject: [PATCH] sauvegarde --- Efi2Xsd/AccasXsd.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Efi2Xsd/AccasXsd.py b/Efi2Xsd/AccasXsd.py index dea863e6..cefeb4eb 100755 --- a/Efi2Xsd/AccasXsd.py +++ b/Efi2Xsd/AccasXsd.py @@ -164,6 +164,8 @@ class X_factCompoAmbigu(X_definition): # on ne fait rien, tout a ete fait dans le init self.texteElt=substDsSequence.format(self.code,self.nomDuTypePyxb,0,1) + def nomComplet(self) : + print (self, self.nom) # def creeTexteComplexe(self,laListe): # if (len(laListe))==1: @@ -330,22 +332,23 @@ class X_definitionComposee (X_definition): def CreeTexteComplexeVenantDesFils(self,dansFactorisation=False): texteComplexeVenantDesFils="" - fichierDejaDumpe=False + blocsDejaDumpes=set() #for nom in self.ordre_mc: # mcFils = self.entites[nom] for mcFils in self.mcXSD : - if not (isinstance(mcFils, Accas.BLOC_FICHIER)) : + if not (isinstance(mcFils, Accas.BLOC)) : mcFils.dumpXsd(dansFactorisation) self.texteComplexe += mcFils.texteElt self.texteSimple += mcFils.texteSimple texteComplexeVenantDesFils += mcFils.texteComplexe continue - elif not fichierDejaDumpe : + else : + if hasattr(mcFils,'nomXML') and mcFils.nomXML in blocsDejaDumpes: continue + if hasattr(mcFils,'nomXML') : blocsDejaDumpes.add(mcFils.nomXML) mcFils.dumpXsd(dansFactorisation) self.texteComplexe += mcFils.texteElt self.texteSimple += mcFils.texteSimple texteComplexeVenantDesFils += mcFils.texteComplexe - fichierDejaDumpe = True return texteComplexeVenantDesFils def dumpXsd(self,dansFactorisation=False): @@ -383,6 +386,7 @@ class X_definitionComposee (X_definition): def compare(self,autreMC): if self.label != autreMC.label : return False + if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML : return True for attr in ( 'regles', 'fr', 'defaut', 'min' ,'max', 'position' , 'docu' ) : val1=getattr(self,attr) val2=getattr(autreMC,attr) @@ -426,6 +430,7 @@ class X_definitionComposee (X_definition): independant=True for (bloc,indInListe) in liste : if bloc.isDisjoint(child) : continue + if bloc.estLeMemeQue(child) : continue independant=False vraimentIndependant=False if not (independant) : @@ -436,6 +441,10 @@ class X_definitionComposee (X_definition): for l in list(self.listeDesBlocsNonDisjointsAvecIndex) : if len(l) ==1 : self.listeDesBlocsNonDisjointsAvecIndex.remove(l) + def estLeMemeQue(self,autreMC): + if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML : return True + return False + def aUnPremierCommunDansLesPossibles(self, laListe) : # fonctionne avec liste de mc ou une liste(mc,index) import types @@ -602,6 +611,7 @@ class X_BLOC (X_definitionComposee): def compare(self,autreMC): if self.label != autreMC.label : return False + if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML : return True for attr in ( 'condition', 'regles', ): val1=getattr(self,attr) val2=getattr(autreMC,attr) @@ -761,6 +771,7 @@ class X_SIMP (X_definition): listeAComparer = [ 'type', 'defaut', 'min' ,'max' ,'val_min' , 'val_max' ] if self.intoXML != None : listeAComparer.append('intoXML') else : listeAComparer.append('into') + if (hasattr (self, 'nomXML')) and self.nomXML != None : nomUtil=self.nomXML for attr in listeAComparer : val1=getattr(self,attr) val2=getattr(autreMC,attr) -- 2.39.2