def process_engine(measurement_workbench): measurement_workbench.register(LogManifest()) measurement_workbench.register(TasksManagerManifest()) plugin = measurement_workbench.get_plugin('exopy.measurement') yield plugin.create('engine', 'exopy.process_engine') plugin.processor.engine = None gc.collect()
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) self.workbench.register(AppManifest()) self.workbench.register(PreferencesManifest()) self.workbench.register(StateManifest()) self.workbench.register(LogManifest())
def content_workbench(measurement_workbench, measurement, exopy_qtbot): """Create a measurement workspace. """ measurement_workbench.register(UIManifest()) measurement_workbench.register(LogManifest()) measurement_workbench.register(TasksManagerManifest()) measurement_plugin = measurement_workbench.get_plugin('exopy.measurement') measurement_plugin.selected_engine = 'dummy' measurement_plugin.default_monitors = ['dummy'] return measurement_workbench
def workspace(exopy_qtbot, measurement_workbench, measurement): """Create a measurement workspace. """ measurement_workbench.register(UIManifest()) measurement_workbench.register(LogManifest()) measurement_workbench.register(TasksManagerManifest()) measurement_plugin = measurement_workbench.get_plugin('exopy.measurement') measurement_plugin.selected_engine = 'dummy' measurement_plugin.default_monitors = ['dummy'] core = measurement_workbench.get_plugin('enaml.workbench.core') cmd = 'enaml.workbench.ui.select_workspace' core.invoke_command(cmd, {'workspace': 'exopy.measurement.workspace'}) yield measurement_plugin.workspace cmd = 'enaml.workbench.ui.close_workspace' core.invoke_command(cmd, {'workspace': 'exopy.measurement.workspace'})
def pulses_workspace(pulses_workbench, exopy_qtbot): """Create a measure workspace. """ pulses_workbench.register(UIManifest()) pulses_workbench.register(LogManifest()) pulses_plugin = pulses_workbench.get_plugin('exopy.pulses') core = pulses_workbench.get_plugin('enaml.workbench.core') cmd = 'enaml.workbench.ui.select_workspace' core.invoke_command(cmd, {'workspace': 'exopy.pulses.workspace'}) yield pulses_plugin.workspace cmd = 'enaml.workbench.ui.close_workspace' core.invoke_command(cmd, {'workspace': 'exopy.measurement.workspace'}) for m_id in ('exopy.app.logging'): try: pulses_workbench.unregister(m_id) except ValueError: pass
def process_engine(measurement_workbench): measurement_workbench.register(LogManifest()) measurement_workbench.register(TasksManagerManifest()) plugin = measurement_workbench.get_plugin('exopy.measurement') return plugin.create('engine', 'exopy.process_engine')
def main(cmd_line_args=None): """Main entry point of the Exopy application. """ # Build parser from ArgParser and parse arguemnts parser = ArgParser() parser.add_choice('workspaces', 'exopy.measurement.workspace', 'measurement') parser.add_argument("-s", "--nocapture", help="Don't capture stdout/stderr", action='store_true') parser.add_argument("-w", "--workspace", help='Select start-up workspace', default='measurement', choices='workspaces') parser.add_argument("-r", "--reset-app-folder", help='Reset the application startup folder.', action='store_true') modifiers = [] for i, ep in enumerate(iter_entry_points('exopy_cmdline_args')): try: modifier, priority = ep.load(require=False) modifiers.append((ep, modifier, priority, i)) except Exception as e: text = 'Error loading extension %s' % ep.name content = ('The following error occurred when trying to load the ' 'entry point {} :\n {}'.format(ep.name, e)) details = format_exc() display_startup_error_dialog(text, content, details) modifiers.sort(key=itemgetter(1, 2)) try: for m in modifiers: m[1](parser) except Exception as e: text = 'Error modifying cmd line arguments' content = ('The following error occurred when the entry point {} ' 'tried to add cmd line options :\n {}'.format(ep.name, e)) details = format_exc() display_startup_error_dialog(text, content, details) try: args = parser.parse_args(cmd_line_args) except BaseException as e: if e.args == (0, ): sys.exit(0) text = 'Failed to parse cmd line arguments' content = ('The following error occurred when trying to parse the ' 'command line arguments :\n {}'.format(e)) details = format_exc() display_startup_error_dialog(text, content, details) # Patch Thread to use sys.excepthook setup_thread_excepthook() workbench = Workbench() workbench.register(CoreManifest()) workbench.register(UIManifest()) workbench.register(AppManifest()) workbench.register(StateManifest()) workbench.register(ErrorsManifest()) workbench.register(PreferencesManifest()) workbench.register(IconManagerManifest()) workbench.register(LogManifest()) workbench.register(PackagesManifest()) workbench.register(DependenciesManifest()) workbench.register(InstrumentManagerManifest()) workbench.register(TasksManagerManifest()) workbench.register(MeasureManifest()) workbench.register(TextMonitorManifest()) ui = workbench.get_plugin(u'enaml.workbench.ui') # Create the application try: app = workbench.get_plugin('exopy.app') app.run_app_startup(args) except Exception as e: text = 'Error starting plugins' content = ('The following error occurred when executing plugins ' 'application start ups :\n {}'.format(e)) details = format_exc() display_startup_error_dialog(text, content, details) core = workbench.get_plugin('enaml.workbench.core') # Install global except hook. if not args.nocapture: core.invoke_command('exopy.app.errors.install_excepthook', {}) # Select workspace core.invoke_command('enaml.workbench.ui.select_workspace', {'workspace': args.workspace}, workbench) ui = workbench.get_plugin(u'enaml.workbench.ui') ui.show_window() ui.window.maximize() ui.start_application() core.invoke_command('enaml.workbench.ui.close_workspace', {}, workbench) # Unregister all contributed packages workbench.unregister('exopy.app.packages') workbench.unregister('exopy.measurement.monitors.text_monitor') workbench.unregister('exopy.measurement') workbench.unregister('exopy.tasks') workbench.unregister('exopy.instruments') workbench.unregister('exopy.app.icons') workbench.unregister('exopy.app.preferences') workbench.unregister('exopy.app.states') workbench.unregister('exopy.app.dependencies') workbench.unregister('exopy.app.errors') workbench.unregister('exopy.app.logging') workbench.unregister('exopy.app') workbench.unregister(u'enaml.workbench.ui') workbench.unregister(u'enaml.workbench.core')