]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
mise a jour
authorpascale.noyret <pascale.noyret@edf.fr>
Thu, 8 Nov 2018 15:14:41 +0000 (16:14 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Thu, 8 Nov 2018 15:14:41 +0000 (16:14 +0100)
Efi2Xsd/AccasXsd.py
Efi2Xsd/balises.py
generator/Formatage.py

index 1b35aba0bb996c5bb2726df9a2df46db76a4b624..067aeff4dbb0e15ffff83dccf80750b5c3ed4682 100755 (executable)
@@ -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):
index f9bf0c7bdb214f75401559305f6e5e27b2de1488..a400b1c9b7088f147d5e15451238984be539d9e4 100644 (file)
@@ -2,10 +2,17 @@ texteDebut='<?xml version="1.0" encoding="UTF-8"?>\n<schema xmlns="http://www.w3
 texteFin='</schema>'
 
 # SIMP
-typeSimple    = '\t<simpleType name="{}">\n\t\t<restriction base="{}"/>\n\t</simpleType>\n'
-debutTypeSimpleWithInto  = '\t<simpleType name="{}">\n\t\t<restriction base="{}">\n'
-typeSimpleWithInto       = '\t\t\t<enumeration value="{}"/>\n'
-finTypeSimpleWithInto    = '\t\t</restriction>\n\t</simpleType>\n'
+#typeSimple    = '\t<simpleType name="{}">\n\t\t<restriction base="{}"/>\n\t</simpleType>\n'
+#debutTypeSimpleWithInto  = '\t<simpleType name="{}">\n\t\t<restriction base="{}">\n'
+#typeSimpleWithInto       = '\t\t\t<enumeration value="{}"/>\n'
+#finTypeSimpleWithInto    = '\t\t</restriction>\n\t</simpleType>\n'
+
+
+debutTypeSimple = '\t<simpleType name="{}">\n\t\t<restriction base="{}"'
+finRestriction = "/>"
+finTypeSimple = '>\n\t</simpleType>\n'
+withInto       = '\t\t\t<enumeration value="{}"/>\n'
+finWithInto = '\t\t</restriction'
 eltDsSequence = '\t\t\t<element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}"/>\n'
 
 # COMPO
index d67ca5256e16ac2bda363d4224b9902ccd4c1585..aa4dbe296f4d66d91400106350389a3ea02fca12 100644 (file)
@@ -18,9 +18,9 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-    Ce module contient la classe Formatage qui permet le formatage d'une 
-    liste de chaines de caractères dans une syntaxe représentative d'un
-    jeu de commandes en un texte présentable
+    Ce module contient la classe Formatage qui permet le formatage d'une
+    liste de chaines de caractères dans une syntaxe représentative d'un
+    jeu de commandes en un texte présentable
 """
 from __future__ import absolute_import
 from __future__ import print_function
@@ -33,8 +33,8 @@ filePattern="'[^\(\)]([^\(\)]*\([^\(\)]*\))*[^\(\)]*'"
 filePattern2='"[^\(\)]([^\(\)]*\([^\(\)]*\))*[^\(\)]*"'
 
 class Formatage (object):
-  """ 
-     Cette classe contient toutes les méthodes nécessaires au formatage
+  """
+     Cette classe contient toutes les méthodes nécessaires au formatage
      de la chaine de caracteres issue d'un generator en un fichier
      'lisible' ie avec indentations
 
@@ -50,12 +50,12 @@ class Formatage (object):
 
      La representation d'un mot cle simple est une chaine de caracteres (info=2, par exemple).
 
-     La representation d'un mot cle facteur est semblable à celle de l'étape : premier element
+     La representation d'un mot cle facteur est semblable à celle de l'étape : premier element
      caracteristique du mot cle facteur suivi d'elements representatifs des mots cles simples.
      Elle se termine avec un element de fin : ")" ou "),".
   """
   def __init__(self,l_jdc,code=None,mode=None,sep='=',l_max=72):
-    # l_jdc représente le jeu de commandes brut sous forme de liste
+    # l_jdc représente le jeu de commandes brut sous forme de liste
     self.l_jdc = l_jdc
     self.jdc_fini =''
     self.count = 0
@@ -63,7 +63,7 @@ class Formatage (object):
     self.l_max=l_max
     if mode == '.py':
        self.sep = '='
-       self.l_max = 132 
+       self.l_max = 132
     elif code == 'ASTER':
        self.sep = ':'
        self.l_max = 72
@@ -74,7 +74,6 @@ class Formatage (object):
     for etape in self.l_jdc:
       self.count = self.count+1
       self.texte_etape = ''
-      #if type(etape)==types.ListType:
       if type(etape)==list:
         # L'etape est sous la forme d'une liste dont le premier element est une chaine
         self.indent=[]
@@ -90,7 +89,7 @@ class Formatage (object):
 
       m=comment.match(self.texte_etape)
       # si ce n est pas la premiere ligne
-      if self.jdc_fini != ""  : 
+      if self.jdc_fini != ""  :
         # si il n y avait pas de commentaire avant on met un saut de ligne
         if commentaireavant == 0 :
            self.jdc_fini = self.jdc_fini + '\n' + self.texte_etape
@@ -98,36 +97,36 @@ class Formatage (object):
            self.jdc_fini = self.jdc_fini + self.texte_etape
       # si c est la premiere ligne
       else :
-        # on ne met pas de saut de ligne avant la premiere ligne 
+        # on ne met pas de saut de ligne avant la premiere ligne
         # si c est un commentaire on enleve le saut de ligne precedent
         if m : self.texte_etape=self.texte_etape[1:]
         self.jdc_fini = self.texte_etape
-      if m : 
-        commentaireavant=1 
+      if m :
+        commentaireavant=1
       else :
-        commentaireavant=0 
+        commentaireavant=0
 
     return self.jdc_fini
-  
-  
+
+
 
   def formateEtape(self,liste):
     """
         Enrichissement de la chaine de caracteres representant l'etape (attribut
         texte_etape de l'objet Formatage).
         Les elements a ajouter sont dans l'argument liste de la methode.
-        L'objet "liste" à traiter a été produit par le module generator. En particulier
-        les parenthèses et les virgules ont été produites par ce module
+        L'objet "liste" à traiter a été produit par le module generator. En particulier
+        les parenthèses et les virgules ont été produites par ce module
     """
     l_patterns_fin_etape = ( ');' , ');\n' )
     l_patterns_fin_mcf   = ( ')'  , '),'   )
 
     ind = 0
     for element in liste :
-      if type(element) == types.ListType:
+      if type(element)==list:
 
-        # il s'agit d'un mot-clé facteur
-        # on écrit son nom (element[0])
+        # il s'agit d'un mot-clé facteur
+        # on écrit son nom (element[0])
         longueur = self.longueur(self.texte_etape)
         try:
           increment = len(('\n'+self.indent_courant*' ')*ind + element[0])
@@ -139,7 +138,7 @@ class Formatage (object):
         length = len(self.indent)
         self.indent.insert(length,self.indent[length-1]+len(element[0]))
         self.indent_courant = self.indent[length]
-        # on écrit ses fils
+        # on écrit ses fils
         self.formateEtape(element[1:])
       #elif type(element) == types.StringType:
       #elif type(element) == bytes:
@@ -147,7 +146,7 @@ class Formatage (object):
       # on remplace par else dans if
       else :
 
-        # il s'agit d'un mot-clé simple ou de ')' ou ');' ou '),' ou ');\n'
+        # il s'agit d'un mot-clé simple ou de ')' ou ');' ou '),' ou ');\n'
 
         if element in l_patterns_fin_mcf :
               self.traiteMcfact(s_mcfact=element,ind=ind)
@@ -160,11 +159,11 @@ class Formatage (object):
 
   def traiteEtape(self,s_etape,ind) :
       """
-          Traite une partie du jdc formaté : s_etape, une chaîne de caractères
-          contenant une étape
-          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
+          Traite une partie du jdc formaté : s_etape, une chaîne de caractères
+          contenant une étape
+          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
       """
       length = len(self.indent)
       if length > 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
 
-          
+