Salome HOME
menage
[tools/eficas.git] / generator / generator_python.py
index 29cf196b803e42bad3bc11c592ce45cb47b0be0d..e49ca579150ef653b26290e4a5b5a4ab6148c921 100644 (file)
@@ -86,7 +86,7 @@ class PythonGenerator:
       fp.write(self.text)
       fp.close()
 
-   def gener(self,obj,format='brut',config=None):
+   def gener(self,obj,format='brut',config=None,appli=None):
       """
           Retourne une representation du JDC obj sous une
           forme qui est parametree par format.
@@ -96,7 +96,6 @@ class PythonGenerator:
       """
       self.appli=obj.get_jdc_root().appli
       #self.appli=obj.appli
-      print format
       liste= self.generator(obj)
       if format == 'brut':
          self.text=liste
@@ -421,7 +420,7 @@ class PythonGenerator:
          else:
            # on est en presence d'un MCSIMP : on recupere une string
            text =self.generator(v)
-           l.append(v.nom+'='+text)
+           if v.nom != "Consigne" :  l.append(v.nom+'='+text)
       # il faut etre plus subtil dans l'ajout de la virgule en differenciant 
       # le cas ou elle est obligatoire (si self a des freres cadets 
       # dans self.parent) ou non
@@ -478,12 +477,13 @@ class PythonGenerator:
       return l
 
 
-   def format_item(self,valeur,etape,obj):
+   def format_item(self,valeur,etape,obj,vientDeListe=0):
       if (type(valeur) == types.FloatType or 'R' in obj.definition.type) and not(isinstance(valeur,Accas.PARAMETRE)) :
-         # Pour un flottant on utilise str
+         # Pour un flottant on utilise str ou repr si on vient d une liste
          # ou la notation scientifique
          # On ajoute un . si il n y en a pas dans la valeur
          s = str(valeur)
+         if vientDeListe and repr(valeur) != str(valeur) : s=repr(valeur)
          if (s.find('.')== -1 and s.find('e')== -1 and s.find('E')==-1) : s=s+'.0'
          clefobj=etape.get_sdname()
          if self.appli.appliEficas and self.appli.appliEficas.dict_reels.has_key(clefobj):
@@ -516,7 +516,6 @@ class PythonGenerator:
             # mais seulement le nom dans le cas d'un parametre
       #      s = valeur.nom
       #   else:
-      #      print valeur
       #      s = self.generator(valeur)
 
       else :
@@ -545,11 +544,14 @@ class PythonGenerator:
          else :
             obj.valeurFormatee=[]
             for val in obj.valeur :
-               s =s +self.format_item(val,obj.etape,obj) + ','
-               obj.valeurFormatee.append(self.format_item(val,obj.etape,obj))
-            if len(obj.valeur) > 1:
+               s =s +self.format_item(val,obj.etape,obj,1) + ','
+               if obj.wait_TXM() :
+                  obj.valeurFormatee.append(val)
+               else :
+                 obj.valeurFormatee.append(self.format_item(val,obj.etape,obj))
+            if len(obj.valeur) >= 1:
                s = '(' + s + '),'
-            if obj.valeur==[] : s="(),"
+            if obj.valeur==[] or obj.valeur==() : s="(),"
          if obj.nbrColonnes() :
             s=self.formatColonnes(obj.nbrColonnes(),obj.valeur,obj)
       else :
@@ -560,7 +562,6 @@ class PythonGenerator:
 
    def formatColonnes(self,nbrColonnes,listeValeurs,obj):
       #try :
-      print listeValeurs
       if 1 == 1 :
         indice=0
         textformat="("
@@ -583,5 +584,4 @@ class PythonGenerator:
       #except :
       else :
          textformat=str(obj.valeur)
-      print textformat
       return textformat