from buffer import Buffer, ACT_NORM from buffer.colors import ColorDataBuffer # console is another singleton console = None class ConsoleBuffer(Buffer): btype = 'console' #modename = 'ipython' modename = 'console' bannerlines = [ '# Python Console\n', "# Evaluate python expressions in the editor's context (self)\n", '# Press Control-] to exit\n', ] banner = ''.join(bannerlines) 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.set_data(self.banner, force=True) def clear(self): console.set_data(self.banner, force=True) def name(self): return '*Console*' def changed(self): return False def close(self): global console; console = None def readonly(self): return True