- # Les extensions de fichier préconisées
- extensions=('.py',)
- # Les formats de sortie supportés (eval dict ou exec)
- # Le format exec est du python executable (commande exec) converti avec PARSEUR_PYTHON
- # Le format execnoparseur est du python executable (commande exec) non converti
- formats=('exec','execnoparseur')
-
- def __init__(self,cr=None):
- # Si l'objet compte-rendu n'est pas fourni, on utilise le
- # compte-rendu standard
- self.text=''
- if cr :
- self.cr=cr
- else:
- self.cr=N_CR.CR(debut='CR convertisseur format python',
- fin='fin CR format python')
-
- def readfile(self,filename):
- self.filename=filename
- try:
- self.text=open(filename).read()
- except:
- self.cr.fatal("Impossible ouvrir fichier %s" % filename)
- return
-
- def convert(self,outformat,appli=None):
- if outformat == 'exec':
- try:
- #txt=parseur_python.PARSEUR_PYTHON(self.text).get_texte(appli)
- #print txt
- #return txt
- return parseur_python.PARSEUR_PYTHON(self.text).get_texte(appli)
- except:
- # Erreur lors de la conversion
- l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],
- sys.exc_info()[2])
- self.cr.exception("Impossible de convertir le fichier python \
- qui doit contenir des erreurs.\n \
- On retourne le fichier non converti \n \
- Prévenir la maintenance. \n" + string.join(l))
- # On retourne néanmoins le source initial non converti (au cas où)
- return self.text
- elif outformat == 'execnoparseur':
- return self.text
- else:
- raise "Format de sortie : %s, non supporté"
- return None
-
+ # We look for pattern "ModelVariable=NOMVAR,"
+ pattern_model_variable = re.compile(r'ModelVariable\s*=\s*(\w+)\s*,')
+
+ def convert(self, outformat, appli=None):
+ text = PythonParser.convert(self, outformat, appli)
+ varnames = self.pattern_model_variable.findall(text)
+ newtext = ""
+ for var in varnames:
+ newtext += "%s = None\n" % var
+ newtext += text
+ return newtext