X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=generator%2Fgenerator_python.py;h=e49ca579150ef653b26290e4a5b5a4ab6148c921;hb=4147504b4d035ba277d39be61779ed638405c48a;hp=8ec2dbc0b0d448878b5ea8fa9f4f44a94a2e1fbc;hpb=16d5922e798b1254eb558678612711d72ed38b32;p=tools%2Feficas.git diff --git a/generator/generator_python.py b/generator/generator_python.py index 8ec2dbc0..e49ca579 100644 --- a/generator/generator_python.py +++ b/generator/generator_python.py @@ -30,8 +30,12 @@ from Noyau.N_utils import repr_float import Accas import Extensions from Extensions.parametre import ITEM_PARAMETRE -from Formatage import Formatage +from Formatage import Formatage +from Formatage import FormatageLigne from Extensions.param2 import Formula +from Extensions.eficas_exception import EficasException +from Extensions.i18n import tr + def entryPoint(): """ @@ -82,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. @@ -100,8 +104,11 @@ class PythonGenerator: elif format == 'beautifie': jdc_formate = Formatage(liste,mode='.py') self.text=jdc_formate.formate_jdc() + elif format == 'Ligne': + jdc_formate = FormatageLigne(liste,mode='.py') + self.text=jdc_formate.formate_jdc() else: - raise "Format pas implemente : "+format + raise EficasException(tr("Format non implemente ") +format) return self.text def generator(self,obj): @@ -152,7 +159,7 @@ class PythonGenerator: elif isinstance(obj,Formula): return self.generFormula(obj) else: - raise "Type d'objet non prevu",obj + raise EficasException(tr("Type d'objet non prevu") +obj) def generJDC(self,obj): """ @@ -413,8 +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 obj.nom=="Observers": print l + 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 @@ -429,8 +435,7 @@ class PythonGenerator: """ if len(obj.data) > 1: l=['('] - for mcfact in obj.data: - l.append(self.generator(mcfact)) + for mcfact in obj.data: l.append(self.generator(mcfact)) l.append('),') else: l= self.generator(obj.data[0]) @@ -472,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): @@ -510,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 : @@ -532,16 +537,21 @@ class PythonGenerator: break if waitTuple : - s = str(obj.valeur) +',' - obj.valeurFormatee=obj.valeur + #s = str(obj.valeur) +',' + #obj.valeurFormatee=obj.valeur + s = obj.GetText() +',' + obj.valeurFormatee=obj.GetText() 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 : @@ -552,7 +562,6 @@ class PythonGenerator: def formatColonnes(self,nbrColonnes,listeValeurs,obj): #try : - print listeValeurs if 1 == 1 : indice=0 textformat="(" @@ -575,5 +584,4 @@ class PythonGenerator: #except : else : textformat=str(obj.valeur) - print textformat return textformat