"""
Module to handle plugin blacklisting operations, like setting
default plugins to be blacklisted, etc.
"""

DEFAULT_BLACKLISTED_PLUGINS = ["package_upgrade"]


class PluginBlacklister(object):
    """
    Class to handle operations regarding blacklisting of plugins.
    """

    def __init__(self, default_plugins=DEFAULT_BLACKLISTED_PLUGINS):
        self._default_plugins = default_plugins

    def update_list(self, plugin_list):
        """
        Update a plugin blacklist with the defaults ones.
        """
        if plugin_list:
            user_plugins = plugin_list.split(",")
            user_plugins = [plugin.strip() for plugin in user_plugins]
        else:
            user_plugins = []
        plugin_set = set(user_plugins + self._default_plugins)
        return ",".join(plugin_set)
