From f187439565561b45952cf4d7856677645fc773df Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Thu, 8 Nov 2018 16:14:41 +0100 Subject: [PATCH] mise a jour --- Efi2Xsd/AccasXsd.py | 14 ++++--- Efi2Xsd/balises.py | 15 +++++-- generator/Formatage.py | 91 +++++++++++++++++++++--------------------- 3 files changed, 64 insertions(+), 56 deletions(-) diff --git a/Efi2Xsd/AccasXsd.py b/Efi2Xsd/AccasXsd.py index 1b35aba0..067aeff4 100755 --- a/Efi2Xsd/AccasXsd.py +++ b/Efi2Xsd/AccasXsd.py @@ -201,13 +201,15 @@ class X_SIMP (X_definition): self.nomDuTypeDeBase = self.traduitType() self.nomDuTypePyxb = self.definitNomDuTypePyxb() if self.aCreer == True : + self.texteSimple = debutTypeSimple.format (self.nomDuTypePyxb, self.nomDuTypeDeBase) if self.into != None: - self.texteSimple = debutTypeSimpleWithInto.format (self.nomDuTypePyxb, self.nomDuTypeDeBase) - for val in self.into : - self.texteSimple += typeSimpleWithInto.format(val) - self.texteSimple += finTypeSimpleWithInto + self.texteSimple = self.texteSimple + ">\n" + for val in self.into : + self.texteSimple += withInto.format(val) + self.texteSimple += finWithInto else : - self.texteSimple = typeSimple.format(self.nomDuTypePyxb, self.nomDuTypeDeBase) + self.texteSimple += finRestriction + self.texteSimple += finTypeSimple else : # le type existe deja self.texteSimple="" @@ -226,7 +228,7 @@ class X_SIMP (X_definition): # il faut gerer les types tuple et fichier if hasattr(self.type[0], 'label') and self.type[0].label == "Tuple" : return ('XXXXXXXX') - print (self.type[0]) + #print (self.type[0]) return dictNomsDesTypes[self.type[0]] def traduitValMinValMax(self): diff --git a/Efi2Xsd/balises.py b/Efi2Xsd/balises.py index f9bf0c7b..a400b1c9 100644 --- a/Efi2Xsd/balises.py +++ b/Efi2Xsd/balises.py @@ -2,10 +2,17 @@ texteDebut='\n\n\t\t\n\t\n' -debutTypeSimpleWithInto = '\t\n\t\t\n' -typeSimpleWithInto = '\t\t\t\n' -finTypeSimpleWithInto = '\t\t\n\t\n' +#typeSimple = '\t\n\t\t\n\t\n' +#debutTypeSimpleWithInto = '\t\n\t\t\n' +#typeSimpleWithInto = '\t\t\t\n' +#finTypeSimpleWithInto = '\t\t\n\t\n' + + +debutTypeSimple = '\t\n\t\t 1: @@ -177,11 +176,11 @@ class Formatage (object): def traiteMcfact(self,s_mcfact,ind) : """ - Traite une partie du jdc formaté : s_mcfact, une chaîne de caractères + Traite une partie du jdc formaté : s_mcfact, une chaîne de caractères contenant un mot-clef facteur. - L'attribut self.texte_etape est modifié (complété) par le traitement - L'attribut self.indent est modifié par le traitement - L'attribut self.indent_courant est modifié par le traitement + L'attribut self.texte_etape est modifié (complété) par le traitement + L'attribut self.indent est modifié par le traitement + L'attribut self.indent_courant est modifié par le traitement """ self.texte_etape = self.texte_etape + s_mcfact.strip() length = len(self.indent) @@ -196,9 +195,9 @@ class Formatage (object): def traiteMcsimp(self,s_mcsimp,ind) : """ - Traite une partie du jdc formaté : s_mcsimp, une chaîne de caractères + Traite une partie du jdc formaté : s_mcsimp, une chaîne de caractères contenant un mot-clef simple. - L'attribut self.texte_etape est modifié (complété) par le traitement + L'attribut self.texte_etape est modifié (complété) par le traitement """ # # Ajout PN pour defi_fonction @@ -214,14 +213,14 @@ class Formatage (object): else : txt=txt+('\n'+self.indent_courant*' '+numident*' ')*ind+l s_mcsimp = txt - else : + else : bool_fonction=0 longueur = self.longueur(self.texte_etape) increment = len((u'\n'+self.indent_courant*' ')*ind + s_mcsimp.strip()) if (bool_fonction == 1 ) : self.texte_etape = self.texte_etape+'\n'+self.indent_courant*' ' +s_mcsimp elif ( ((1-ind)*longueur+increment) <= self.l_max ) : - self.texte_etape = self.texte_etape + ('\n'+self.indent_courant*' ')*ind +s_mcsimp.strip() + self.texte_etape = self.texte_etape + ('\n'+self.indent_courant*' ')*ind +s_mcsimp.strip() else : # il faut couper ... #nom,valeur = string.split(s_mcsimp,self.sep,1) @@ -233,19 +232,19 @@ class Formatage (object): def longueur(self,texte): - """ + """ texte est une string qui peut contenir des retours chariots - Cette méthode retourne la longueur de la dernière ligne de texte + Cette méthode retourne la longueur de la dernière ligne de texte """ #liste = texte.split('\n') #return len(liste[-1]) - if texte [-1] == '\n' : return 0 + if texte [-1] == '\n' : return 0 return len(texte[texte.rfind('\n'):-1]) - + def creerChaine(self,nom,valeur,increment,ind): """ - La methode creerChaine reconstitue un objet Eficas à partir de + La methode creerChaine reconstitue un objet Eficas à partir de - son nom, - sa valeur. """ @@ -257,7 +256,7 @@ class Formatage (object): longueur = len(increment + label) if ('(' not in valeur) or (valeur[0:3]=='"""') : - # il s'agit d'une vraie chaîne de caractères + # il s'agit d'une vraie chaîne de caractères val = len(valeur) texte = (self.l_max-2-val)*' '+valeur s=s+'\n'+texte @@ -304,7 +303,7 @@ class Formatage (object): class FormatageLigne(Formatage) : def __init__(self,l_jdc,code=None,mode=None,sep='=',l_max="**"): Formatage.__init__(self,l_jdc,code=None,mode=None,sep='=',l_max="**") - + def formateJdc(self): texte1=Formatage.formateJdc(self) newText="" @@ -314,14 +313,14 @@ class FormatageLigne(Formatage) : pattern_commentaire = re.compile(r"^\s*#.*") pattern_vide=re.compile(r"\s*^$") for l in lignes : - if pattern_commentaire.match(l) or pattern_vide.match(l): + if pattern_commentaire.match(l) or pattern_vide.match(l): newText+=l+"\n" continue - if not pattern_debut_blanc.match(l) : texte=l + if not pattern_debut_blanc.match(l) : texte=l else : texte+=re.sub(r'^ \s*',' ',l) if texte[-1]==";" : newText+=texte+"\n" texte="" return newText - + -- 2.39.2