Mise à jour du plugin
This commit is contained in:
parent
8cc8770ee4
commit
d23bda8bd2
2 changed files with 9 additions and 17 deletions
|
@ -35,6 +35,7 @@ class SafeEnvironment(dict):
|
|||
},
|
||||
# Fonction de base pour imprimer quelque chose
|
||||
"out": self.out,
|
||||
"_out": self._out,
|
||||
# Le séparateur pour la forme: variable keysep valeur
|
||||
"keysep": "=",
|
||||
# Le charactère de commentaire
|
||||
|
@ -73,12 +74,14 @@ class SafeEnvironment(dict):
|
|||
"""Quand on fait un export, on utilise defvar pour incorporer la variable
|
||||
et sa valeur dans le fichier produit"""
|
||||
# On écrit mavariable = toto, en appliquant une éventuelle conversion à toto
|
||||
self.out("%s%s%s\n" % (variable, self['keysep'], self.tostring(value)))
|
||||
self.out("%s%s%s" % (variable, self['keysep'], self.tostring(value)))
|
||||
|
||||
def out(self, string):
|
||||
"""C'est le print local. Sauf qu'on écrit dans self.stream. C'est pas
|
||||
indispensable, car l'évaluation du fichier se fait déjà à sys.stdout
|
||||
pointant vers ledit stream."""
|
||||
def out(self, string=""):
|
||||
"""C'est le print local. Sauf qu'on écrit dans self.stream"""
|
||||
self._out("%s\n" % (string,))
|
||||
|
||||
def _out(self, string=""):
|
||||
"""C'est le print local sans retour à la ligne."""
|
||||
self.stream.write(string)
|
||||
|
||||
def tostring(self, value):
|
||||
|
|
|
@ -122,13 +122,6 @@ class PythonFile(Debuggable):
|
|||
if environment is None:
|
||||
environment = PythonEnv.SafeEnvironment(additionnal, self)
|
||||
|
||||
# On ne réaffecte stdout que sur le premier élément de la pile
|
||||
have_to_get_out = False
|
||||
|
||||
if sys.stdout == sys.__stdout__:
|
||||
sys.stdout = environment.stream
|
||||
have_to_get_out = True
|
||||
|
||||
# Lors de l'exécution d'un fichier, on inclut
|
||||
# toujours common (ie on l'exécute dans l'environnement)
|
||||
environment.include("common")
|
||||
|
@ -137,12 +130,8 @@ class PythonFile(Debuggable):
|
|||
exec(self.data, environment)
|
||||
except Exception:
|
||||
sys.stderr.write('code: %r\n' % (self.data,))
|
||||
sys.stdout = sys.__stdout__
|
||||
raise
|
||||
|
||||
if sys.stdout != sys.__stdout__ and have_to_get_out:
|
||||
sys.stdout = sys.__stdout__
|
||||
have_to_get_out = False
|
||||
return environment.stream.getvalue(), environment['info']
|
||||
|
||||
#+---------------------------------------------+
|
||||
|
@ -192,7 +181,7 @@ def compileSource(source, filename="", logger=None):
|
|||
newsource.write(line)
|
||||
|
||||
# Et un superbe \n.
|
||||
newsource.write('\\n")')
|
||||
newsource.write('")')
|
||||
|
||||
# %, affectation.
|
||||
elif linetype == "%":
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue