Package flumotion :: Package extern :: Package command :: Package command :: Module manholecmd :: Class ManholeInterpreter
[hide private]

Class ManholeInterpreter

source code

                 object --+    
                          |    
                Interpreter --+
                              |
code.InteractiveInterpreter --+
                              |
                             ManholeInterpreter

Interactive Interpreter with special output and Deferred support.

Aside from the features provided by code.InteractiveInterpreter, this class captures sys.stdout output and redirects it to the appropriate location (the Manhole protocol instance). It also treats Deferreds which reach the top-level specially: each is formatted to the user with a unique identifier and a new callback and errback added to it, each of which will format the unique identifier and the result with which the Deferred fires and then pass it on to the next participant in the callback chain.

Instance Methods [hide private]
 
__init__(self, handler, locals=None, filename="<console>")
x.__init__(...) initializes x; see help(type(x)) for signature
source code
 
runcode(self, *a, **kw) source code
 
write(self, data, async=False) source code
 
resetBuffer(self)
Reset the input buffer.
source code
 
push(self, line)
Push a line to the interpreter.
source code
 
displayhook(self, obj) source code
 
_cbDisplayDeferred(self, result, k, obj) source code
 
_ebDisplayDeferred(self, failure, k, obj) source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  numDeferreds = 0
  buffer = None
hash(x)
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, handler, locals=None, filename="<console>")
(Constructor)

source code 

x.__init__(...) initializes x; see help(type(x)) for signature

Overrides: object.__init__
(inherited documentation)

push(self, line)

source code 

Push a line to the interpreter.

The line should not have a trailing newline; it may have internal newlines. The line is appended to a buffer and the interpreter's runsource() method is called with the concatenated contents of the buffer as source. If this indicates that the command was executed or invalid, the buffer is reset; otherwise, the command is incomplete, and the buffer is left as it was after the line was appended. The return value is 1 if more input is required, 0 if the line was dealt with in some way (this is the same as runsource()).

Overrides: Interpreter.push