def call(self, plugin_name, command_name, args):
        """ Encapsulate the call into a context already loaded. """
        try:
            plugin = self.load_plugin(plugin_name)
        except KeyError:
            # Plugin not found, pring generic help
            self.help_all()
        if not command_name:
            self.help(plugin)
        else:
            try:
                command = plugin._commands()[command_name]
            except __HOLE__:
                # Command not found in plugin. Print only plugin help
                self.help(plugin)
            with opencontext(plugin):
                return command(args)
dataset/ETHPy150Open nacx/kahuna/kahuna/pluginmanager.py/PluginManager.call