from buffer import Buffer # console is another singleton console = None class ConsoleBuffer(Buffer): btype = 'console' modename = 'ipython' def __new__(cls, *args, **kwargs): global console if console is None: b = object.__new__(ConsoleBuffer, *args, **kwargs) console = b return console def __init__(self): Buffer.__init__(self) self.clear() def clear(self): lines = ['# Python Console\n', "# Evaluate python expressions in the editor's context (self)\n", '# Press Control-] to exit\n'] console.set_data(''.join(lines), force=True) def name(self): return '*Console*' def changed(self): return False def close(self): global console console = None def readonly(self): return True