def checkActivation(self, plugins):
     missing = {}
     for pluginInfo in plugins:
         if pluginInfo.details.has_option("Requirements", "pip"):
             from lunchinator.utilities import checkRequirements
             checkRequirements(pluginInfo.details.get("Requirements", "pip").split(";;"),
                               (pluginInfo.name, pluginInfo.category),
                               pluginInfo.plugin_object.get_displayed_name(),
                               missing)
     return missing
def installCoreDependencies():
    requirements = getCoreDependencies()
    missing = checkRequirements(requirements, u"Lunchinator", u"Lunchinator")
    result = handleMissingDependencies(missing, optionalCallback=lambda req: not "yapsy" in req.lower())
    if result == INSTALL_CANCEL:
        return False

    try:
        import yapsy

        if lunchinator_has_gui():
            from PyQt4.QtGui import QMessageBox

            if result == INSTALL_SUCCESS:
                QMessageBox.information(
                    None,
                    "Success",
                    "Dependencies were installed successfully.",
                    buttons=QMessageBox.Ok,
                    defaultButton=QMessageBox.Ok,
                )
            elif result == INSTALL_FAIL:
                QMessageBox.warning(
                    None,
                    "Errors during installation",
                    "There were errors during installation, but Lunchinator might work anyways. If you experience problems with some plugins, try to install the required libraries manually using pip.",
                )
            return True
        getCoreLogger().info("yapsy is working after dependency installation")
        # without gui there are enough messages on the screen already
    except:
        if lunchinator_has_gui():
            try:
                from PyQt4.QtGui import QMessageBox

                QMessageBox.critical(
                    None,
                    "Error installing dependencies",
                    "There was an error, the dependencies could not be installed. Continuing without plugins.",
                )
            except:
                getCoreLogger().error(
                    "There was an error, the dependencies could not be installed. Continuing without plugins."
                )
        getCoreLogger().error(
            "Lunchinator is running without plugins because of missing dependencies. \
                Try executing 'lunchinator --install-dependencies' to install them automatically."
        )
        return False