def get_plugin(self, plugin_id, force_create=True):
        if plugin_id in self._plugins:
            return self._plugins[plugin_id]

        manifest = self._manifests.get(plugin_id)
        if manifest is None:
            msg = "plugin '%s' is not registered"
            raise ValueError(msg % plugin_id)

        if not force_create:
            return None

        plugin = manifest.factory()
        if not isinstance(plugin, Plugin):
            msg = "plugin '%s' factory created non-Plugin type '%s'"
            raise TypeError(msg % (plugin_id, type(plugin).__name__))

        self._plugins[plugin_id] = plugin
        plugin.manifest = manifest
        plugin.start()
        return plugin
Get the plugin object for a given plugin id.
dataset/ETHPy150Open nucleic/enaml/enaml/workbench/workbench.py/Workbench.get_plugin