def task_workbench(monkeypatch, app_dir): """Setup the workbench in such a way that the task manager can be tested. """ def exit_err(self): if self._delayed: raise Exception('Unexpected exceptions occured :\n' + pformat(self._delayed)) monkeypatch.setattr(ErrorsPlugin, 'exit_error_gathering', exit_err) workbench = Workbench() workbench.register(CoreManifest()) workbench.register(AppManifest()) workbench.register(PreferencesManifest()) workbench.register(ErrorsManifest()) workbench.register(DependenciesManifest()) workbench.register(TasksManagerManifest()) yield workbench for m_id in ('ecpy.tasks', 'ecpy.app.dependencies', 'ecpy.app.errors', 'ecpy.app.preferences', 'ecpy.app'): try: workbench.unregister(m_id) except ValueError: pass
def initialize_default(extra_manifests, workspace='psi.experiment.workspace'): with enaml.imports(): from enaml.workbench.core.core_manifest import CoreManifest from enaml.workbench.ui.ui_manifest import UIManifest from psi.context.manifest import ContextManifest from psi.data.manifest import DataManifest from psi.experiment.manifest import ExperimentManifest with warnings.catch_warnings(): warnings.simplefilter('ignore') workbench = Workbench() workbench.register(CoreManifest()) workbench.register(UIManifest()) workbench.register(ContextManifest()) workbench.register(DataManifest()) workbench.register(ExperimentManifest()) for manifest in extra_manifests: workbench.register(manifest()) core = workbench.get_plugin('enaml.workbench.core') ui = workbench.get_plugin('enaml.workbench.ui') ui.show_window() core.invoke_command('enaml.workbench.ui.select_workspace', {'workspace': workspace}) experiment = workbench.get_plugin('psi.experiment') return workbench
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) self.workbench.register(StateManifest()) self.workbench.register(PreferencesManifest()) self.workbench.register(DependenciesManifest())
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 measure_workbench(monkeypatch, app_dir): """Setup the workbench in such a way that the measure plugin can be tested. """ def exit_err(self): self._gathering_counter -= 1 if self._gathering_counter < 1: self._gathering_counter = 0 if self._delayed: msg = 'Unexpected exceptions occured :\n' raise ErrorDialogException(msg + pformat(self._delayed)) monkeypatch.setattr(ErrorsPlugin, 'exit_error_gathering', exit_err) workbench = Workbench() workbench.register(CoreManifest()) workbench.register(AppManifest()) workbench.register(PreferencesManifest()) workbench.register(ErrorsManifest()) workbench.register(DependenciesManifest()) workbench.register(MeasureManifest()) yield workbench for m_id in ('ecpy.measure', 'ecpy.app.dependencies', 'ecpy.app.errors', 'ecpy.app.preferences', 'ecpy.app'): try: workbench.unregister(m_id) except ValueError: pass
def workbench(): """Create a workbench and register basic manifests. """ workbench = Workbench() workbench.register(CoreManifest()) workbench.register(ErrorsManifest()) workbench.register(PackagesManifest()) return workbench
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) self.workbench.register(StateManifest()) self.workbench.register(PreferencesManifest()) self.workbench.register(TaskManagerManifest()) self.root = RootTask(should_stop=Event(), should_pause=Event()) self.task = self.excep_class(task_name='Test', condition='rr') self.root.children_task.append(self.task)
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) self.workbench.register(StateManifest()) self.workbench.register(PreferencesManifest()) self.workbench.register(TaskManagerManifest()) self.root = RootTask(should_stop=Event(), should_pause=Event()) self.task = SaveArrayTask(task_name='Test') self.root.children_task.append(self.task)
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) self.workbench.register(StateManifest()) self.workbench.register(PreferencesManifest()) self.workbench.register(DependenciesManifest()) self.workbench.register(TaskManagerManifest()) self.workbench.register(MeasureManifest()) self.workbench.register(TestSuiteManifest())
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) self.workbench.register(UIManifest()) self.workbench.register(StateManifest()) self.workbench.register(PreferencesManifest()) self.workbench.register(LogManifest()) self.workbench.register(MeasureManifest()) # Needed otherwise the monitor manifest is not registered. self.workbench.get_plugin(u'hqc_meas.measure')
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) self.workbench.register(StateManifest()) self.workbench.register(PreferencesManifest()) self.workbench.register(InstrManagerManifest()) self.workbench.register(TaskManagerManifest()) self.root = RootTask(should_stop=Event(), should_pause=Event()) self.task = MeasDCVoltageTask(task_name='Test') self.root.children_task.append(self.task) self.root.run_time['drivers'] = {'Test': InstrHelper}
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) self.workbench.register(UIManifest()) self.workbench.register(HqcAppManifest()) self.workbench.register(StateManifest()) self.workbench.register(PreferencesManifest()) self.workbench.register(LogManifest()) self.workbench.register(TaskManagerManifest()) self.workbench.register(InstrManagerManifest()) self.workbench.register(MeasureManifest()) self.workbench.register(TestSuiteManifest())
def workbench(): workbench = Workbench() workbench.register(CoreManifest()) workbench.register(ContextManifest()) workbench.register(TestManifest()) context = workbench.get_plugin('psi.context') print context.selectors['default'].order print context.selectors['default'].parameters print context.context_items['repetitions'].rove for r in (20, 15, 10, 2): context.selectors['default'].add_setting(dict(repetitions=r)) return workbench
def dep_workbench(): """Setup the workbench to test dependencies related capabilities. """ workbench = Workbench() workbench.register(CoreManifest()) workbench.register(DependenciesManifest()) workbench.register(BuildDep()) workbench.register(RuntimeDep()) yield workbench workbench.unregister('ecpy.app.dependencies') workbench.unregister('enaml.workbench.core')
def test_registration(windows): """Test that the manifest is properly regsistered. """ w = Workbench() w.register(CoreManifest()) w.register(ErrorsManifest()) w.register(PackagesManifest()) with signal_error_raise(): w.get_plugin('exopy.app.packages').collect_and_register() # Edit the name of the package assert w.get_plugin('exopy_ext_demo')
def workbench(app): workbench = Workbench() workbench.register(CoreManifest()) workbench.register(ContextManifest()) workbench.register(DataManifest()) workbench.register(TokenManifest()) workbench.register(ExperimentManifest()) workbench.register(HelperManifest()) context = workbench.get_plugin('psi.context') item = context.context_items['repetitions'] item.rove = True for r in (20, 15, 10, 2, 20): context.selectors['default'].add_setting({'repetitions': r}) return workbench
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) self.workbench.register(UIManifest()) self.workbench.register(HqcAppManifest()) self.workbench.register(StateManifest()) self.workbench.register(PreferencesManifest()) self.workbench.register(LogManifest()) self.workbench.register(DependenciesManifest()) self.workbench.register(TaskManagerManifest()) self.workbench.register(InstrManagerManifest()) self.workbench.register(MeasureManifest()) self.workbench.register(TestSuiteManifest()) # Adding by hand the false instr task. plugin = self.workbench.get_plugin('hqc_meas.task_manager') plugin._py_tasks['False instr'] = FalseInstrTask
def pulses_workbench(monkeypatch, app_dir): """Setup the workbench in such a way that the pulses manager can be tested. """ monkeypatch.setattr(ErrorsPlugin, 'exit_error_gathering', exit_on_err) workbench = Workbench() workbench.register(CoreManifest()) workbench.register(AppManifest()) workbench.register(PreferencesManifest()) workbench.register(ErrorsManifest()) workbench.register(StateManifest()) workbench.register(DependenciesManifest()) workbench.register(MeasureManifest()) workbench.register(PulsesManagerManifest()) yield workbench for m_id in ('exopy.pulses', 'exopy.app.dependencies', 'exopy.app.errors', 'exopy.app.preferences', 'exopy.app'): try: workbench.unregister(m_id) except Exception: pass
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) # Creating an empty config file. ConfigObj(os.path.join(self.test_dir, 'default_test.ini')).write()
from enaml.workbench.api import Workbench if __name__ == '__main__': with enaml.imports(): from enaml.workbench.core.core_manifest import CoreManifest from enaml.workbench.ui.ui_manifest import UIManifest from psi.setting.manifest import SettingManifest from psi.data.manifest import DataManifest from psi.controller.manifest import ControllerManifest from psi.experiment.manifest import ExperimentManifest with warnings.catch_warnings(): warnings.simplefilter('ignore') workbench = Workbench() workbench.register(CoreManifest()) workbench.register(UIManifest()) workbench.register(SettingManifest()) workbench.register(DataManifest()) workbench.register(ControllerManifest()) workbench.register(ExperimentManifest()) core = workbench.get_plugin('enaml.workbench.core') ui = workbench.get_plugin('enaml.workbench.ui') parameters = core.invoke_command('psi.setting.get_parameters') parameters[0].rove = True name = parameters[0].name
def workbench(): """Create a workbench instance. """ workbench = Workbench() return workbench
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) self.workbench.register(ErrorsManifest()) self.workbench.register(DeclaratorManifest())
def setup(self): self.workbench = Workbench() self.workbench.register(CoreManifest()) self.workbench.register(StateManifest()) self.workbench.register(StateContributor())
def main(cmd_line_args=None): """Main entry point of the Oculy application.""" # Build parser from ArgParser and parse arguments parser = ArgParser() parser.add_choice("workspaces", "oculy.simple_viewer", "simple") parser.add_argument( "-d", "--debug", help= "Don't capture stdout/stderr, and do not catch top level exceptions", action="store_true", ) parser.add_argument( "-w", "--workspace", help="Select start-up workspace", default="simple", choices="workspaces", ) parser.add_argument( "-r", "--reset-app-folder", help="Reset the application startup folder.", action="store_true", ) extend_parser( parser, "oculy_cmdline_args", lambda title, content, details, exception: display_startup_error_dialog(title, content, details), ) try: args = parser.parse_args(cmd_line_args) except BaseException as e: if self.debug: raise 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 if not args.debug: setup_thread_excepthook() workbench = Workbench() workbench.register(CoreManifest()) workbench.register(UIManifest()) workbench.register(LifecycleManifest()) workbench.register(StateManifest()) workbench.register(ErrorsManifest()) workbench.register(PreferencesManifest(application_name="oculy")) workbench.register(IconManagerManifest()) workbench.register(LogManifest(no_capture=args.debug)) workbench.register(PackagesManifest()) workbench.register(OculyManifest()) workbench.register(DataStorageManifest()) workbench.register(IOManifest()) workbench.register(PlottingManifest()) workbench.register(DataTransformerManifest()) workbench.register(SimpleViewerManifest()) ui = workbench.get_plugin(u"enaml.workbench.ui") # Create the application try: app = workbench.get_plugin("glaze.lifecycle") app.run_app_startup(args) except Exception as e: if args.debug: raise 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.debug: core.invoke_command("glaze.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("oculy.workspaces.simple_viewer") workbench.unregister("oculy.data") workbench.unregister("oculy.io") workbench.unregister("oculy.plotting") workbench.unregister("oculy.transformers") workbench.unregister("glaze.packages") workbench.unregister("glaze.icons") workbench.unregister("glaze.states") workbench.unregister("glaze.errors") workbench.unregister("glaze.logging") workbench.unregister("oculy") workbench.unregister("glaze.preferences") workbench.unregister("glaze.lifecycle") workbench.unregister("enaml.workbench.ui") workbench.unregister("enaml.workbench.core")
def setup(self): self.workbench = Workbench() self.workbench.register(AppManifest()) self.workbench.register(CoreManifest()) self.workbench.register(ErrorsManifest())
def setup(self): self.workbench = Workbench()
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')