def setup_terminal(qtbot_module, request): """Set up the Notebook plugin.""" class MainMock(QMainWindow): def __getattr__(self, attr): return Mock() def register_shortcut(self, *args, **kwargs): pass main = MainMock() CONF.register_plugin(TerminalPlugin) terminal = TerminalPlugin(main, CONF) terminal.update_font() qtbot_module.addWidget(terminal) qtbot_module.waitUntil(lambda: terminal.get_widget().server_is_ready(), timeout=TERM_UP) qtbot_module.wait(5000) terminal.create_new_term() terminal.get_widget().show() def teardown(): terminal.on_close() request.addfinalizer(teardown) return terminal
def _instantiate_spyder5_plugin( self, main_window: Any, PluginClass: Type[Spyder5PluginClass], external: bool) -> Spyder5PluginClass: """Instantiate and register a Spyder 5+ plugin.""" required_plugins = list(set(PluginClass.REQUIRES)) optional_plugins = list(set(PluginClass.OPTIONAL)) plugin_name = PluginClass.NAME logger.debug(f'Registering plugin {plugin_name} - {PluginClass}') if PluginClass.CONF_FILE: CONF.register_plugin(PluginClass) for plugin in list(required_plugins): if plugin == Plugins.All: required_plugins = list(set(required_plugins + ALL_PLUGINS)) for plugin in list(optional_plugins): if plugin == Plugins.All: optional_plugins = list(set(optional_plugins + ALL_PLUGINS)) # Update plugin dependency information self._update_plugin_info(plugin_name, required_plugins, optional_plugins) # Create and store plugin instance plugin_instance = PluginClass(main_window, configuration=CONF) self.plugin_registry[plugin_name] = plugin_instance # Connect plugin availability signal to notification system plugin_instance.sig_plugin_ready.connect( lambda: self.notify_plugin_availability( plugin_name, omit_conf=PluginClass.CONF_FILE)) # Initialize plugin instance plugin_instance.initialize() # Register plugins that are already available self._notify_plugin_dependencies(plugin_name) # Register the plugin name under the external or internal # plugin set if external: self.external_plugins |= {plugin_name} else: self.internal_plugins |= {plugin_name} if external: # These attributes come from spyder.app.find_plugins module = PluginClass._spyder_module_name package_name = PluginClass._spyder_package_name version = PluginClass._spyder_version description = plugin_instance.get_description() dependencies.add(module, package_name, description, version, None, kind=dependencies.PLUGIN) return plugin_instance
def _register_plugin(self): """Register plugin configuration.""" CONF.register_plugin(self)