Go to the latest version of this document.

# ``twisted`.`conch`.`manhole`.`ManholeInterpreter``

class documentation

`class ManholeInterpreter(code.InteractiveInterpreter): (source)`

Constructor: `ManholeInterpreter(handler, locals, filename)`

View In Hierarchy

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.

Method | `__init__` | Undocumented
Method | `displayhook` | Undocumented
Method | `excepthook` | Format exception tracebacks and write them to the output handler.
Method | `push` | Push a line to the interpreter.
Method | `resetBuffer` | Reset the input buffer.
Method | `runcode` | Undocumented
Method | `write` | Undocumented
Class Variable | `numDeferreds` | Undocumented
Instance Variable | `buffer` | Undocumented
Instance Variable | `filename` | Undocumented
Instance Variable | `handler` | Undocumented
Instance Variable | `monkeyPatcher` | Undocumented
Method | `_cbDisplayDeferred` | Undocumented
Method | `_ebDisplayDeferred` | Undocumented
Instance Variable | `_pendingDeferreds` | Undocumented

def __init__(self, handler, locals=None, filename='<console>'): (source)

Undocumented

def displayhook(self, obj): (source)

Undocumented

def excepthook(self, excType: `type[BaseException]`, excValue: `BaseException`, excTraceback: `TracebackType`): (source)

Format exception tracebacks and write them to the output handler.

def push(self, line): (source)

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()).

Parameters
line:`bytes` | line of text

Returns
`bool` from `code.InteractiveInterpreter.runsource`

def resetBuffer(self): (source)

Reset the input buffer.

def runcode(self, *a, **kw): (source)

Undocumented

def write(self, data, isAsync=None): (source)

Undocumented

numDeferreds: `int` = (source)

Undocumented

buffer: `list` = (source)

Undocumented

filename = (source)

Undocumented

handler = (source)

Undocumented

monkeyPatcher = (source)

Undocumented

def _cbDisplayDeferred(self, result, k, obj): (source)

Undocumented

def _ebDisplayDeferred(self, failure, k, obj): (source)

Undocumented

_pendingDeferreds: `dict` = (source)

Undocumented