1
2 """
3
4 @author: Fabio Erculiani <lxnay@sabayonlinux.org>
5 @contact: lxnay@sabayonlinux.org
6 @copyright: Fabio Erculiani
7 @license: GPL-2
8
9 B{Entropy Source Package Manager Plugins factory module}.
10
11 """
12 from entropy.const import etpConst
13 from entropy.core import EntropyPluginFactory
14 from entropy.core.settings.base import SystemSettings
15 from entropy.i18n import _
16 from entropy.spm.plugins.skel import SpmPlugin
17 import entropy.spm.plugins.interfaces as plugs
18
19 settings = SystemSettings()
20 default_plugin = settings['system'].get('spm_backend',
21 etpConst['spm']['backend'])
22
23 FACTORY = EntropyPluginFactory(SpmPlugin, plugs,
24 default_plugin_name = default_plugin,
25 fallback_plugin_name = etpConst['spm']['backend'])
26
27 get_available_plugins = FACTORY.get_available_plugins
28 get_default_class = FACTORY.get_default_plugin
29
31 """
32 Return the currently configured Entropy SPM interface instance.
33
34 @param output_interface: Entropy Output Interface instance
35 @type output_interface: entropy.output.TextInterface based instance
36 @return: currently selected SPM interface
37 @rtype: entropy.spm.plugins.skel.SpmPlugin based instance
38 """
39 spm_class = get_default_class()
40 return spm_class(output_interface)
41