def __init__(self, interpreter=None, message="", log="", parent=None): """ :param interpreter : InteractiveInterpreter in which the code will be executed :param message: welcome message string :param parent: specifies the parent widget. If no parent widget has been specified, it is possible to exit the interpreter by Ctrl-D. """ if interpreter is None: from openalea.core.service.ipython import interpreter interpreter = interpreter() # Set interpreter self.interpreter = interpreter self.interpreter.widget = self # Multiple Stream Redirection GraphicalStreamRedirection.__init__(self) # Compatibility with visualea self.runsource = self.interpreter.run_cell self.runcode = self.interpreter.runcode self.loadcode = self.interpreter.loadcode # Write welcome message self.write(message) # Set kernel manager try: from IPython.qt.inprocess import QtInProcessKernelManager except ImportError: import warnings message = "You are using a deprecated version of IPython (please update)." warnings.warn(message) # DEPRECATED ! from IPython.frontend.qt.inprocess_kernelmanager import QtInProcessKernelManager km = QtInProcessKernelManager(kernel=self.interpreter) km.start_channels() self.interpreter.frontends.append(km) self.kernel_manager = km else: km = QtInProcessKernelManager() km.kernel = self.interpreter km.kernel.gui = "qt4" kernel_client = km.client() kernel_client.start_channels() self.kernel_manager = km self.kernel_client = kernel_client
def __init__(self, interpreter=None, message="", log='', parent=None): """ :param interpreter : InteractiveInterpreter in which the code will be executed :param message: welcome message string :param parent: specifies the parent widget. If no parent widget has been specified, it is possible to exit the interpreter by Ctrl-D. """ if interpreter is None: from openalea.core.service.ipython import interpreter interpreter = interpreter() # Set interpreter self.interpreter = interpreter self.interpreter.widget = self # Multiple Stream Redirection GraphicalStreamRedirection.__init__(self) # Compatibility with visualea self.runsource = self.interpreter.run_cell self.runcode = self.interpreter.runcode self.loadcode = self.interpreter.loadcode # Write welcome message self.write(message) # Set kernel manager try: from IPython.qt.inprocess import QtInProcessKernelManager except ImportError: import warnings message = "You are using a deprecated version of IPython (please update)." warnings.warn(message) # DEPRECATED ! from IPython.frontend.qt.inprocess_kernelmanager import QtInProcessKernelManager km = QtInProcessKernelManager(kernel=self.interpreter) km.start_channels() self.interpreter.frontends.append(km) self.kernel_manager = km else: km = QtInProcessKernelManager() km.kernel = self.interpreter km.kernel.gui = 'qt4' kernel_client = km.client() kernel_client.start_channels() self.kernel_manager = km self.kernel_client = kernel_client
def __init__(self, interpreter=None, message="", log='', parent=None): """ :param interpreter : InteractiveInterpreter in which the code will be executed :param message: welcome message string :param parent: specifies the parent widget. If no parent widget has been specified, it is possible to exit the interpreter by Ctrl-D. """ RichJupyterWidget.__init__(self, parent) if interpreter is None: from openalea.core.service.ipython import interpreter interpreter = interpreter() # Set interpreter self.interpreter = interpreter # Set kernel manager km = QtInProcessKernelManager() km.start_kernel(show_banner=False) self.kernel_manager = km #km.kernel = self.interpreter #km.kernel.gui = 'qt4' self.kernel = self.kernel_manager.kernel self.kernel.gui = 'qt' #self.interpreter = self.kernel self.shell = self.kernel.shell self.kernel_client = self.kernel_manager.client() self.kernel_client.start_channels() self.kernel.locals = self.kernel.shell.user_ns # For Debug Only # self.interpreter.locals['shell'] = self # Compatibility with visualea self.runsource = self.interpreter.run_cell self.runcode = self.interpreter.runcode self.loadcode = self.interpreter.loadcode # Write welcome message self.interpreter.widget = self #self.write(message) # Multiple Stream Redirection GraphicalStreamRedirection.__init__(self, self.kernel.stdout, self.kernel.stderr)
def __init__(self, parent=None): """ :param parent: specifies the parent widget. If no parent widget has been specified, it is possible to exit the interpreter by Ctrl-D. """ RichJupyterWidget.__init__(self, parent) self.kernel_manager = QtInProcessKernelManager() self.kernel_manager.start_kernel(show_banner=False) self.kernel = self.kernel_manager.kernel self.kernel.gui = 'qt4' self.shell = self.kernel.shell self.kernel_client = self.kernel_manager.client() self.kernel_client.start_channels() self.kernel.locals = self.kernel.shell.user_ns # Multiple Stream Redirection GraphicalStreamRedirection.__init__(self, self.kernel.stdout, self.kernel.stderr)
def __init__(self, interpreter, message="", log='', parent=None): """Constructor. @param interpreter : InteractiveInterpreter in which the code will be executed @param message : welcome message string @param 'log' : specifies the file in which the interpreter session is to be logged. @param 'parent' : specifies the parent widget. If no parent widget has been specified, it is possible to exit the interpreter by Ctrl-D. """ QtGui.QTextEdit.__init__(self, parent) GraphicalStreamRedirection.__init__(self) self.interpreter = interpreter self.colorizer = SyntaxColor() # session log self.log = log or '' # to exit the main interpreter by a Ctrl-D if PyCute has no parent if parent is None: self.eofKey = QtCore.Qt.Key_D else: self.eofKey = None # last line + last incomplete lines self.line = str() self.lines = [] # the cursor position in the last line self.point = 0 # flag: the interpreter needs more input to run the last lines. self.more = 0 # flag: readline() is being used for e.g. raw_input() and input() self.reading = 0 # history self.history = [] self.pointer = 0 self.cursor_pos = 0 # user interface setup # self.setTextFormat(QtCore.Qt.PlainText) self.setLineWrapMode(QtGui.QTextEdit.NoWrap) # self.setCaption('Python Shell') # # font # if os.name == 'posix': # font = QtGui.QFont("Fixed", 8) # elif os.name == 'nt' or os.name == 'dos': # font = QtGui.QFont("Courier New", 8) # else: # raise SystemExit, "FIXME for 'os2', 'mac', 'ce' or 'riscos'" # font.setFixedPitch(1) # self.setFont(font) # # geometry # height = 40*QtGui.QFontMetrics(font).lineSpacing() # request = QtCore.QSize(600, height) # if parent is not None: # request = request.boundedTo(parent.size()) # self.resize(request) # interpreter prompt. try: sys.ps1 except AttributeError: sys.ps1 = ">>> " try: sys.ps2 except AttributeError: sys.ps2 = "... " # interpreter banner self.write('The shell running Python %s on %s.\n' % (sys.version, sys.platform)) self.write('Type "copyright", "credits" or "license"' ' for more information on Python.\n') self.write(message + '\n\n') self.write('This is the standard Shell.\n' + 'Autocompletion is not available unless QScintilla is installed:\n' + 'See http://www.riverbankcomputing.co.uk/qscintilla.\n\n') self.write(sys.ps1)
def customEvent(self, event): GraphicalStreamRedirection.customEvent(self, event) QtGui.QTextEdit.customEvent(self, event)