Added multilines to Python Gramplet
svn: r13097
This commit is contained in:
parent
014260e615
commit
c0f9ab2179
@ -44,6 +44,7 @@ class PythonGramplet(Gramplet):
|
|||||||
import gc
|
import gc
|
||||||
gc.set_debug(gc.DEBUG_UNCOLLECTABLE|gc.DEBUG_OBJECTS|gc.DEBUG_SAVEALL)
|
gc.set_debug(gc.DEBUG_UNCOLLECTABLE|gc.DEBUG_OBJECTS|gc.DEBUG_SAVEALL)
|
||||||
self.prompt = ">"
|
self.prompt = ">"
|
||||||
|
self.previous = ""
|
||||||
self.set_tooltip(_("Enter Python expressions"))
|
self.set_tooltip(_("Enter Python expressions"))
|
||||||
self.gc = gc
|
self.gc = gc
|
||||||
self.env = {"dbstate": self.gui.dbstate,
|
self.env = {"dbstate": self.gui.dbstate,
|
||||||
@ -70,18 +71,34 @@ class PythonGramplet(Gramplet):
|
|||||||
_retval = None
|
_retval = None
|
||||||
if "_retval" in self.env:
|
if "_retval" in self.env:
|
||||||
del self.env["_retval"]
|
del self.env["_retval"]
|
||||||
exp1 = """_retval = """ + command
|
if self.previous:
|
||||||
exp2 = command.strip()
|
if command:
|
||||||
|
self.previous += "\n" + command
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
exp = self.previous
|
||||||
|
else:
|
||||||
|
exp = command.strip()
|
||||||
try:
|
try:
|
||||||
_retval = eval(exp2, self.env)
|
_retval = eval(exp, self.env)
|
||||||
|
self.previous = ""
|
||||||
except:
|
except:
|
||||||
try:
|
try:
|
||||||
exec exp1 in self.env
|
exec exp in self.env
|
||||||
except:
|
self.previous = ""
|
||||||
try:
|
self.prompt = ">"
|
||||||
exec exp2 in self.env
|
except SyntaxError:
|
||||||
except:
|
if command:
|
||||||
|
self.previous = exp
|
||||||
|
self.prompt = "-"
|
||||||
|
else:
|
||||||
|
self.previous = ""
|
||||||
|
self.prompt = ">"
|
||||||
_retval = self.format_exception()
|
_retval = self.format_exception()
|
||||||
|
except:
|
||||||
|
self.previous = ""
|
||||||
|
self.prompt = ">"
|
||||||
|
_retval = self.format_exception()
|
||||||
if "_retval" in self.env:
|
if "_retval" in self.env:
|
||||||
_retval = self.env["_retval"]
|
_retval = self.env["_retval"]
|
||||||
return _retval
|
return _retval
|
||||||
@ -122,7 +139,7 @@ class PythonGramplet(Gramplet):
|
|||||||
line = buffer.get_text(start, end)
|
line = buffer.get_text(start, end)
|
||||||
self.append_text("\n")
|
self.append_text("\n")
|
||||||
if line.startswith(self.prompt):
|
if line.startswith(self.prompt):
|
||||||
line = line[1:].strip()
|
line = line[2:]
|
||||||
else:
|
else:
|
||||||
self.append_text("%s " % self.prompt)
|
self.append_text("%s " % self.prompt)
|
||||||
end = buffer.get_end_iter()
|
end = buffer.get_end_iter()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user