key=lambda callback: getattr(callback, 'priority', DEFAULT_PRIORITY)) return callbacks exp_config = LabConfig() if not exp_config.has_section('BLACS/plugins'): exp_config.add_section('BLACS/plugins') modules = {} for module_name in os.listdir(PLUGINS_DIR): if os.path.isdir(os.path.join( PLUGINS_DIR, module_name)) and module_name != '__pycache__': # is it a new plugin? # If so lets add it to the config if not module_name in [ name for name, val in exp_config.items('BLACS/plugins') ]: exp_config.set('BLACS/plugins', module_name, str(module_name in default_plugins)) # only load activated plugins if exp_config.getboolean('BLACS/plugins', module_name): try: module = importlib.import_module('blacs.plugins.' + module_name) except Exception: logger.exception('Could not import plugin \'%s\'. Skipping.' % module_name) else: modules[module_name] = module
if name in plugin_callbacks: callbacks.append(plugin_callbacks[name]) except Exception as e: logger.exception('Error getting callbacks from %s.' % str(plugin)) # Sort all callbacks by priority: callbacks.sort(key=lambda callback: getattr(callback, 'priority', DEFAULT_PRIORITY)) return callbacks exp_config = LabConfig() if not exp_config.has_section('BLACS/plugins'): exp_config.add_section('BLACS/plugins') modules = {} for module_name in os.listdir(PLUGINS_DIR): if os.path.isdir(os.path.join(PLUGINS_DIR, module_name)) and module_name != '__pycache__': # is it a new plugin? # If so lets add it to the config if not module_name in [name for name, val in exp_config.items('BLACS/plugins')]: exp_config.set('BLACS/plugins', module_name, str(module_name in default_plugins)) # only load activated plugins if exp_config.getboolean('BLACS/plugins', module_name): try: module = importlib.import_module('blacs.plugins.'+module_name) except Exception: logger.exception('Could not import plugin \'%s\'. Skipping.'%module_name) else: modules[module_name] = module