Unregister all plugins, or a specific plugin, via an instance, or file (path) containing plugin(s).
        When this method is called without any arguments then all plugins will be deactivated.
        :param plugin: Plugin to unregister.
        :param plugin_file: File containing plugin(s) to unregister.
        :return: Does not Return.

def unregister(self, plugin=None, plugin_file=None):
        """
        Unregister all plugins, or a specific plugin, via an instance, or file (path) containing plugin(s).
        When this method is called without any arguments then all plugins will be deactivated.
        :param plugin: Plugin to unregister.
        :param plugin_file: File containing plugin(s) to unregister.
        :return: Does not Return.
        """
        if plugin is None and plugin_file is None:
            for name, plugin in self.plugins.items():
                plugin.deactivate()
                del self.plugins[name]

            return

        if plugin is not None:
            if plugin.name in self.plugins:
                plugin.deactivate()
                del self.plugins[plugin.name]

        if plugin_file is not None:
            plugs_in_file = PluginManager.get_plugins_in_module(plugin_file)
            if plugs_in_file is None:
                return

            for classPlugin in plugs_in_file:
                if not self.has_plugin(classPlugin.name, classPlugin):
                    continue

                self.get_plugin(classPlugin.name).deactivate()
                del self.plugins[classPlugin.name]