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