def __init__(self, layout=None, **kwds): """ tests: list of function runnable in shell (name changed to run_<funcname>) layout_file """ OALabMainWin.__init__(self, layout=layout, **kwds) self.interp = interpreter() self.interp.user_ns['mainwin'] = self self.interp.user_ns['splittable'] = self.splittable self.interp.user_ns['debug'] = self.debug self.interp.user_ns['QtCore'] = QtCore self.interp.user_ns['QtGui'] = QtGui from openalea.core.service.plugin import plugin_instance, plugin_instances def applet(name): return plugin_instance('oalab.applet', name) def applets(name): return plugin_instances('oalab.applet', name) self.interp.user_ns['applet'] = applet self.interp.user_ns['applets'] = applets for f in kwds.pop('tests', []): self.interp.user_ns['run_%s' % f.__name__] = f
def main(): import sys from openalea.oalab.shell import get_shell_class from openalea.core.service.ipython import interpreter from openalea.oalab.editor.highlight import Highlighter app = QtGui.QApplication(sys.argv) edit = TextEditor() Highlighter(edit) interp = interpreter() shell = get_shell_class()(interp) win = QtGui.QMainWindow() win.setCentralWidget(edit) dock_widget = QtGui.QDockWidget("IPython", win) interp.locals['mainwindow'] = win interp.locals['editor'] = edit interp.locals['shell'] = shell interp.locals['interpreter'] = interp dock_widget.setWidget(shell) win.addDockWidget(QtCore.Qt.BottomDockWidgetArea, dock_widget) win.show() win.raise_() app.exec_()
def __init__(self, layout=None, **kwds): """ tests: list of function runnable in shell (name changed to run_<funcname>) layout_file """ OALabMainWin.__init__(self, layout=layout, **kwds) self.interp = interpreter() self.interp.user_ns['mainwin'] = self self.interp.user_ns['splittable'] = self.splittable self.interp.user_ns['debug'] = self.debug self.interp.user_ns['QtCore'] = QtCore self.interp.user_ns['QtGui'] = QtGui from openalea.core.service.plugin import plugin_instance, plugin_instances def applet(name): return plugin_instance('oalab.applet', name) def applets(name): return plugin_instances('oalab.applet', name) self.interp.user_ns['applet'] = applet self.interp.user_ns['applets'] = applets print 'functions:' for f in kwds.pop('tests', []): self.interp.user_ns['run_%s' % f.__name__] = f print 'run_%s' % f.__name__ self.resize(QtCore.QSize(800, 600))
def instantiate_widget(self): self._widget = dataflowview.GraphicalGraph.create_view(self.model._workflow, clone=True) self._clipboard = CompositeNodeFactory("Clipboard") from openalea.core.service.ipython import interpreter interp = interpreter() GraphOperator.globalInterpreter = interp self._operator = GraphOperator(graph=self.model._workflow, graphScene=self._widget.scene(), clipboard=self._clipboard, ) self._widget.mainMenu = types.MethodType(mainMenu, self._widget) self._widget.applet = self self._widget._actions = None methods = {} methods['actions'] = actions methods['mainMenu'] = mainMenu methods['display_help'] = _display_help self._widget = adapt_widget(self._widget, methods) if not VIEWER3D_SET: _set_viewer3d() # todo: use services self.widget().scene().focusedItemChanged.connect(self.item_focus_change) return self.widget()
def initialize(self): from openalea.core.world.world import World from openalea.core.service.ipython import interpreter world = World() world.update_namespace(interpreter()) self.set_world(world)
def namespace(self, **kwargs): from openalea.core.service.ipython import interpreter project_ns = ParadigmController.namespace(self, **kwargs) interp = interpreter() shell_ns = interp.user_ns ns = {} ns.update(shell_ns) ns.update(project_ns) return ns
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, session, parent=None, args=None): super(QtGui.QMainWindow, self).__init__() self.session = session interp = interpreter() interp.locals['mainwindow'] = self self.areas = {} for area_name in ('inputs', 'outputs', 'shell'): self.areas[area_name] = QtGui.QTabWidget() self.dockWidget("Inputs", self.areas['inputs'], name="Inputs", position=QtCore.Qt.LeftDockWidgetArea) self.dockWidget("Outputs", self.areas['outputs'], name="Outputs", position=QtCore.Qt.RightDockWidgetArea) self.dockWidget("Shell", self.areas['shell'], name="Shell, log and history", position=QtCore.Qt.BottomDockWidgetArea) self.split = QtGui.QSplitter() self.setCentralWidget(self.split) menu_names = ('Project', 'Edit', 'Viewer', 'Help') # Classic menu self.menu_classic = {} menubar = QtGui.QMenuBar() for menu_name in menu_names: self.menu_classic[menu_name] = menubar.addMenu(menu_name) self.setMenuBar(menubar) # PanedMenu self.menu_paned = {} self.menu = PanedMenu() # Organize order of tabs for menu_name in menu_names: self.menu_paned[menu_name] = self.menu.addSpecialTab(menu_name) dock_menu = self.dockWidget("Menu", self.menu, position=QtCore.Qt.TopDockWidgetArea) dock_menu.setFeatures(QtGui.QDockWidget.NoDockWidgetFeatures) dock_menu.setContentsMargins(0, 0, 0, 0) widget = QtGui.QLabel() dock_menu.setTitleBarWidget(widget) size_policy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Maximum) dock_menu.setSizePolicy(size_policy) # Shell self.shell = get_shell_class()(interp) interp.locals['shell'] = self.shell self.add_applet(self.shell, 'Shell', area='shell') self.applets = self._plugins = {}
def _push_applet_to_shell(self): interp = interpreter() interp.user_ns['debug_dict'] = dict( container=self, c_applets=self._applets, c_tabwidget=self._tabwidget, frame=self._tabwidget.currentWidget(), applet_dict=self._tabwidget._applets, applet=self._tabwidget._applets[self._tabwidget.currentIndex()] ) for k, v in interp.user_ns['debug_dict'].items(): interp.user_ns['debug_%s' % k] = v
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): import traceback traceback.print_stack(file=sys.__stdout__) self._project = None self._is_proj = False self._debug = False self.gui = True self.tmpdir = path(get_openalea_tmp_dir()) self._config = MainConfig() self.extension = None self.applet = {} self.manager = {} self.package_manager = package_manager self.control_manager = ControlManager() self.project_manager = ProjectManager() self.plugin_manager = PluginManager() self.plugin_instance_manager = PluginInstanceManager() self.manager['control'] = self.control_manager self.manager['package'] = self.package_manager self.manager['project'] = self.project_manager self.manager['plugin'] = self.plugin_manager self.manager['plugin_instance'] = self.plugin_instance_manager self.world = World() self.interpreter = interpreter() # Hack if interpreter is an object from class TerminalInteractiveShell if not hasattr(self.interpreter, "shell"): self.interpreter.shell = self.interpreter if hasattr(self.interpreter.shell, "events"): self.interpreter.shell.events.register("post_execute", self.add_to_history) else: print("You need ipython >= 2.0 to use history.") # self.project_manager.set_shell(self.interpreter.shell) self.interpreter.locals['session'] = self self.old_syspath = sys.path self.load_default() self.__class__.instantiated = True
def initialize(self): from openalea.core.world.world import World from openalea.core.service.ipython import interpreter world = World() world.update_namespace(interpreter()) self.set_world(world) set_default_control(self._controls,'img_filename') set_default_control(self._controls,'cell_vertex_filename') # set_default_control(self._controls,'triangulation_filename') set_default_control(self._controls,'initialize') self._fill_manager() self._set_manager(self._manager)
def initialize(self): from openalea.core.world.world import World from openalea.core.service.ipython import interpreter world = World() world.update_namespace(interpreter()) self.set_world(world) set_default_control(self._controls, 'img_filename') set_default_control(self._controls, 'cell_vertex_filename') # set_default_control(self._controls,'triangulation_filename') set_default_control(self._controls, 'initialize') self._fill_manager() self._set_manager(self._manager)
def __init__(self, layout=None, **kwds): """ tests: list of function runnable in shell (name changed to run_<funcname>) layout_file """ OALabMainWin.__init__(self, layout=layout, **kwds) self.interp = interpreter() self.interp.user_ns['mainwin'] = self self.interp.user_ns['splittable'] = self.splittable self.interp.user_ns['debug'] = self.debug self.interp.user_ns['QtCore'] = QtCore self.interp.user_ns['QtGui'] = QtGui def applet(name): return plugin_instance('oalab.applet', name) def applets(name): return plugin_instances('oalab.applet', name) self.interp.user_ns['applet'] = applet self.interp.user_ns['applets'] = applets print 'VARIABLES AVAILABLE IN SHELL ...' print '\nAPPLICATION:' print ' - mainwin' print ' - splittable' print ' - QtCore' print ' - QtGui' print '\nAPPLETS:' for plugin in plugins('oalab.applet'): if plugin_instance_exists('oalab.applet', plugin.name): varname = camel_case_to_lower(plugin.name) self.interp.user_ns['plugin_%s' % varname] = plugin self.interp.user_ns[varname] = plugin_instance('oalab.applet', plugin.name) print ' -', varname print '\nFUNCTIONS:' for f in kwds.pop('tests', []): self.interp.user_ns['run_%s' % f.__name__] = f f.func_globals['ns'] = self.interp.user_ns print ' - run_%s' % f.__name__ self.resize(QtCore.QSize(800, 600))
def __init__(self, name=None, **kwds): from openalea.core.service.ipython import interpreter self.interp = interpreter() self.inputs_info = [] self.outputs_info = [] self.name = name self._ns = {} self._code = {} self._initial_code = '' self.outputs = [] code = kwds.pop('code', None) if code: self.set_code(code)
def __init__(self, items=None, item_proxy=None, autoload=['entry_points']): # GenericManager GenericManager.__init__(self, items, item_proxy, autoload) self.default_group = "local" # ProjectManager self.tmpdir = Path(get_openalea_tmp_dir()) self._cproject = None self._cwd = Path('.').abspath() self.old_syspath = sys.path self.cm = ControlManager() self.repositories = self.search_path() self.previous_project = "temp" self.shell = interpreter() self.cproject = None
def __init__(self): Observed.__init__(self) AbstractListener.__init__(self) self.tmpdir = Path(get_openalea_tmp_dir()) self._cproject = None self._cwd = Path('.').abspath() self.old_syspath = sys.path self.cm = ControlManager() self.projects = [] self.repositories = self.search_path() self.previous_project = "temp" self.shell = interpreter() # TODO Search in preference file if user has path to append in self.repositories self.cproject = self.default()
def main(): from openalea.vpltk.qt import QtGui import sys app = QtGui.QApplication(sys.argv) from openalea.core.service.ipython import interpreter interpreter = interpreter() interpreter.user_ns['interp'] = interpreter # Set Shell Widget shellwdgt = ShellWidget(interpreter) interpreter.user_ns['shell'] = shellwdgt mainWindow = QtGui.QMainWindow() mainWindow.setCentralWidget(shellwdgt) mainWindow.show() app.exec_()
def test_clean_ns(): from openalea.core.model import PythonModel from openalea.core.service.ipython import interpreter interp = interpreter() interp.user_ns['ipython_ns'] = 1 model = PythonModel(name='clean') model.outputs_info = [OutputObj('ns')] model.inputs_info = [InputObj('a=0'), InputObj('b')] model.set_step_code('local_to_model=1\nns = dir()') initial_ns = dict(initial_ns=1) model_local_ns = model(namespace=initial_ns, b=1) model_varname = ['a', 'b', 'local_to_model'] for varname in model_varname: assert varname in model_local_ns for varname in model_varname: assert varname not in interp.user_ns assert 'ipython_ns' in interp.user_ns
def main(): from openalea.vpltk.qt import QtGui import sys app = QtGui.QApplication(sys.argv) from openalea.core.service.ipython import interpreter interpreter = interpreter() interpreter.user_ns['interp'] = interpreter # Set Shell Widget shellwdgt = ShellWidget(interpreter=interpreter) interpreter.user_ns['shell'] = shellwdgt mainWindow = QtGui.QMainWindow() mainWindow.setCentralWidget(shellwdgt) mainWindow.show() app.exec_()
def main(): import sys from openalea.vpltk.qt import QtGui from openalea.core.service.ipython import interpreter from openalea.oalab.shell import ShellWidget # Create Window with IPython shell app = QtGui.QApplication(sys.argv) interp = interpreter() shellwdgt = ShellWidget(interp) mainWindow = QtGui.QMainWindow() mainWindow.setCentralWidget(shellwdgt) mainWindow.show() # Create Project Manager pm = ProjectManager() # Create or load project name = "project_test" pm.load(name) app.exec_()
def test_get_interpreter_twice(self): interp = interpreter() interp2 = interpreter() assert interp is not None assert interp is interp2
def setUp(self): self.ip = interpreter() self.ipy = IPythonInterpreter() if IPythonInterpreter else None self.py = PythonInterpreter()
def setUp(self): self.ip = interpreter() self.ipy = IPythonInterpreter() self.py = PythonInterpreter()
from openalea.core.service.control import new_control from openalea.core.service.data import DataFactory from openalea.core.service.model import ModelFactory from openalea.oalab.paradigm.python import PythonModelController from openalea.oalab.paradigm.visualea import VisualeaModelController from openalea.core.world.world import World from openalea.oalab.service.paradigm import paradigm_controller from openalea.vpltk.qt import QtGui from openalea.core.service.ipython import interpreter interp = interpreter() interp.user_ns['interp'] = interp pm = PackageManager() pm.init() def composite_node(): inputs = [] outputs = [] for io in list('abcd'): inputs.append({'name': io, 'desc': 'Input %s' % io.upper(), 'value': 0}) outputs.append({'name': io, 'desc': 'Input %s' % io.upper()}) sg = CompositeNode(inputs=inputs, outputs=outputs)
from openalea.vpltk.qt import QtGui from openalea.oalab.gui.container import ParadigmContainer from openalea.oalab.session.session import Session if __name__ == '__main__': instance = QtGui.QApplication.instance() if instance is None: app = QtGui.QApplication([]) else: app = instance from openalea.core.service.ipython import interpreter from openalea.oalab.shell import get_shell_class # Set interpreter interpreter = interpreter() interpreter.user_ns['interp'] = interpreter interpreter.user_ns.update(locals()) # Set Shell Widget widget = QtGui.QWidget() layout = QtGui.QHBoxLayout(widget) shellwdgt = get_shell_class()(interpreter) editor = ParadigmContainer(None, None) interpreter.user_ns['editor'] = editor session = Session() session.debug = True interpreter.user_ns['session'] = session
from openalea.core.pkgmanager import PackageManager from openalea.core.service.control import new_control from openalea.core.service.data import DataFactory from openalea.core.service.model import ModelFactory from openalea.oalab.gui.paradigm.python import PythonModelController from openalea.oalab.gui.paradigm.visualea import VisualeaModelController from openalea.oalab.world.world import World from openalea.oalab.service.paradigm import paradigm_controller from openalea.vpltk.qt import QtGui from openalea.core.service.ipython import interpreter interp = interpreter() interp.user_ns['interp'] = interp pm = PackageManager() pm.init() def composite_node(): inputs = [] outputs = [] for io in list('abcd'): inputs.append({ 'name': io, 'desc': 'Input %s' % io.upper(), 'value': 0 })
def init(): ip = interpreter() discover_projects() ip.user_ns.update(locals()) ip.user_ns.update(globals())