def __init__(self, home=None): if Collector._instance is not None: raise Exception("Called more than once") Collector._instance = self super(Collector, self).__init__() # Configuration config = Config.get_instance() self.add_manager('config', config) if home is not None: config.set_home(home) if self.conf('build_user_dir'): config.build_data_directory() # Plug-ins sys_plugin_path = config.get_appdata_path() sys_plugin_path = os.path.join(sys_plugin_path, 'user_plugins') # System plug-ins from collector.plugins import get_sys_plugins plugins = get_sys_plugins() # >= python 2.7 sys_plugins = {plugin.get_id(): plugin for plugin in plugins} plugin_manager = PluginManager.get_instance( self.conf('plugins_enabled'), sys_plugins, paths=[sys_plugin_path]) self.add_manager('plugin', plugin_manager) self.add_manager('collection', Collection.get_instance(True))