本文整理汇总了Python中yapsy.PluginManager.PluginManager.setCategoriesFilter方法的典型用法代码示例。如果您正苦于以下问题:Python PluginManager.setCategoriesFilter方法的具体用法?Python PluginManager.setCategoriesFilter怎么用?Python PluginManager.setCategoriesFilter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yapsy.PluginManager.PluginManager
的用法示例。
在下文中一共展示了PluginManager.setCategoriesFilter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: collect_data
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
def collect_data(self, **kwargs):
self.logger.info("Begin collect_data")
simplePluginManager = PluginManager()
logging.getLogger('yapsy').setLevel(logging.DEBUG)
simplePluginManager.setCategoriesFilter({
"DataCollector": data_collector_plugin
})
# Tell it the default place(s) where to find plugins
self.logger.debug("Plugin directories: %s" % (kwargs['data_collector_plugin_directories']))
simplePluginManager.setPluginPlaces(kwargs['data_collector_plugin_directories'])
simplePluginManager.collectPlugins()
plugin_cnt = 0
plugin_start_time = time.time()
for plugin in simplePluginManager.getAllPlugins():
self.logger.info("Starting plugin: %s" % (plugin.name))
if plugin.plugin_object.initialize_plugin(details=plugin.details):
plugin.plugin_object.start()
else:
self.logger.error("Failed to initialize plugin: %s" % (plugin.name))
plugin_cnt += 1
#Wait for the plugings to finish up.
self.logger.info("Waiting for %d plugins to complete." % (plugin_cnt))
for plugin in simplePluginManager.getAllPlugins():
plugin.plugin_object.join()
self.logger.info("%d Plugins completed in %f seconds" % (plugin_cnt, time.time() - plugin_start_time))
示例2: run_output_plugins
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
def run_output_plugins(**kwargs):
logger = logging.getLogger(__name__)
logger.info("Begin run_output_plugins")
simplePluginManager = PluginManager()
logging.getLogger('yapsy').setLevel(logging.DEBUG)
simplePluginManager.setCategoriesFilter({
"OutputResults": output_plugin
})
# Tell it the default place(s) where to find plugins
if logger:
logger.debug("Plugin directories: %s" % (kwargs['output_plugin_directories']))
simplePluginManager.setPluginPlaces(kwargs['output_plugin_directories'])
simplePluginManager.collectPlugins()
plugin_cnt = 0
plugin_start_time = time.time()
for plugin in simplePluginManager.getAllPlugins():
if logger:
logger.info("Starting plugin: %s" % (plugin.name))
if plugin.plugin_object.initialize_plugin(details=plugin.details):
plugin.plugin_object.emit(prediction_date=kwargs['prediction_date'].astimezone(timezone("US/Eastern")).strftime("%Y-%m-%d %H:%M:%S"),
execution_date=kwargs['prediction_run_date'].strftime("%Y-%m-%d %H:%M:%S"),
ensemble_tests=kwargs['site_model_ensemble'])
plugin_cnt += 1
else:
logger.error("Failed to initialize plugin: %s" % (plugin.name))
logger.debug("%d output plugins run in %f seconds" % (plugin_cnt, time.time() - plugin_start_time))
logger.info("Finished run_output_plugins")
示例3: loadPlugins
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
def loadPlugins(root_folder, plugin_name, categories_filter):
from yapsy.PluginManager import PluginManager
plugin_dirs = []
plugin_dirs.append(configuration.fabfile_basedir + '/.fabalicious/plugins')
plugin_dirs.append(expanduser("~") + '/.fabalicious/plugins')
plugin_dirs.append(root_folder + '/plugins')
log.debug("Looking for %s-plugins in %s" % (plugin_name, ", ".join(plugin_dirs)))
manager = PluginManager()
manager.setPluginPlaces(plugin_dirs)
manager.setCategoriesFilter(categories_filter)
manager.collectPlugins()
# Activate all loaded plugins
for pluginInfo in manager.getAllPlugins():
manager.activatePluginByName(pluginInfo.name)
result = {}
for plugin in manager.getAllPlugins():
if hasattr(plugin.plugin_object, 'aliases') and isinstance(plugin.plugin_object.aliases, list):
for alias in plugin.plugin_object.aliases:
result[alias] = plugin.plugin_object
elif hasattr(plugin.plugin_object, 'alias'):
result[plugin.plugin_object.alias] = plugin.plugin_object
else:
result[plugin.name] = plugin.plugin_object
return result
示例4: Plugins
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
class Plugins():
'''
Plugins
'''
def __init__(self):
'''
Constructor
'''
super(Plugins, self).__init__()
self.write_tab_dock_plugin_dict = {}
self.write_panel_dock_plugin_dict = {}
# Build the manager
self._plugin_manager = PluginManager()
# List all sub-directories of "plugins"
plugin_path = os.path.sep.join([os.getcwd(), "plugins"])
plugin_places = [plugin_path]
for dirname, dirnames, filenames in os.walk(plugin_path):
# print path to all subdirectories first.
for subdirname in dirnames:
plugin_places.append(os.path.join(dirname, subdirname))
# Tell it the default place(s) where to find plugins
self._plugin_manager.setPluginPlaces(plugin_places)
sys.path.append(plugin_path)
# Define the various categories corresponding to the different
# kinds of plugins you have defined
self._plugin_manager.setCategoriesFilter({
"GuiWriteTabDockPlugin": GuiWriteTabDockPlugin,
"GuiWritePanelDockPlugin": GuiWritePanelDockPlugin
})
self._plugin_manager.collectPlugins()
self.load_plugins(
["GuiWriteTabDockPlugin", "GuiWritePanelDockPlugin"])
def load_plugins(self, categories):
'''
function:: load_plugins(categories)
:param categories: list
'''
for category in categories:
for pluginInfo in self._plugin_manager.getPluginsOfCategory(category):
setattr(self, pluginInfo.plugin_object.gui_class(
).__name__, pluginInfo.plugin_object.gui_class())
if category is "GuiWriteTabDockPlugin":
self.write_tab_dock_plugin_dict[pluginInfo.plugin_object.gui_class().dock_name] \
= pluginInfo.plugin_object.gui_class()
if category is "GuiWritePanelDockPlugin":
self.write_panel_dock_plugin_dict[pluginInfo.plugin_object.gui_class().dock_name] \
= pluginInfo.plugin_object.gui_class()
示例5: __init__
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
class PluginHandler:
def __init__(self):
self._plugin_manager = PluginManager()
self._category_active = {"Modifier": False, "Analyzer": False, "Comparator": False}
self._plugin_from_category = {"Modifier": [], "Analyzer": [], "Comparator": []}
self._modifier_plugins = []
self._analyzer_plugins = []
self._collect_all_plugins()
def _collect_all_plugins(self):
self._plugin_manager.setPluginPlaces(
["hugin/analyze/modifier", "hugin/analyze/analyzer", "hugin/analyze/comparator"]
)
# setting filter categories for pluginmanager
self._plugin_manager.setCategoriesFilter(
{
# movie metadata provider
"Modifier": IModifier,
# movie metadata provider
"Comparator": IComparator,
# sub metadata provider
"Analyzer": IAnalyzer,
}
)
self._plugin_manager.collectPlugins()
def activate_plugins_by_category(self, category):
self._toggle_activate_plugins_by_category(category)
def deactivate_plugins_by_category(self, category):
self._toggle_activate_plugins_by_category(category)
def _toggle_activate_plugins_by_category(self, category):
plugins = self._plugin_manager.getPluginsOfCategory(category)
is_active = self._category_active[category]
for pluginInfo in plugins:
if is_active:
self._plugin_manager.deactivatePluginByName(name=pluginInfo.name, category=category)
self._plugin_from_category[category].remove(pluginInfo)
else:
self._plugin_manager.activatePluginByName(name=pluginInfo.name, category=category)
self._plugin_from_category[category].append(pluginInfo)
self._category_active[category] = not is_active
def get_plugins_from_category(self, category):
plugins = []
for plugin in self._plugin_from_category[category]:
plugin.plugin_object.name = plugin.name
plugin.plugin_object.description = plugin.description
plugins.append(plugin.plugin_object)
return plugins
def is_activated(self, category):
""" True if category is activated. """
return self._category_active[category]
示例6: ConfigurePluginManager
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
def ConfigurePluginManager(categories=None, pluginLocation=None):
if categories is None:
categories = dict(Test=ITestPlugin, DAQ=IDAQPlugin, App=IAppPlugin, Decoder=IDecoderPlugin)
if pluginLocation is None:
pluginLocation = ["plugins"]
manager = PluginManager()
# todo: plugin directory and categories should be set some other way (command line arg parsing?)
manager.setPluginPlaces(pluginLocation)
manager.setCategoriesFilter(categories)
manager.collectPlugins()
return manager
示例7: loadPlugins
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
def loadPlugins():
# Find all plugin directories (xxx.plugin)
dirs = [f for f in os.listdir('.') if f.endswith('.plugin')]
# Load the plugins from the plugin directory.
manager = PluginManager()
manager.setPluginPlaces(dirs)
manager.setCategoriesFilter({"plugin" : IInfoBoxPlugin})
manager.collectPlugins()
return manager
示例8: MUCBot
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
class MUCBot(sleekxmpp.ClientXMPP):
def __init__(self, jid, password, room, nick):
sleekxmpp.ClientXMPP.__init__(self, jid, password)
self.room = room
self.nick = nick
# Load plugins
self.plugin_manager = PluginManager()
self.plugin_manager.setPluginPlaces(["plugins_enabled"])
self.plugin_manager.setCategoriesFilter({
"Message" : MessagePlugin,
"Presence": PresencePlugin
})
self.plugin_manager.collectPlugins()
# Activate all loaded plugins
for pluginInfo in self.plugin_manager.getAllPlugins():
self.plugin_manager.activatePluginByName(pluginInfo.name)
self.add_event_handler("session_start", self.start)
self.add_event_handler("message", self.message)
self.add_event_handler("groupchat_message", self.muc_message)
self.add_event_handler("muc::%s::got_online" % self.room, self.muc_online)
self.add_event_handler("muc::%s::got_offline" % self.room, self.muc_offline)
def start(self, event):
self.get_roster()
self.send_presence()
if self.room and len(self.room) > 0:
self.plugin['xep_0045'].joinMUC(self.room,
self.nick,
wait=True)
def message(self, msg):
if msg['type'] in ('chat', 'normal'):
for pluginInfo in self.plugin_manager.getPluginsOfCategory("Message"):
pluginInfo.plugin_object.message_received(msg)
def muc_message(self, msg):
if msg['mucnick'] != self.nick:
for pluginInfo in self.plugin_manager.getPluginsOfCategory("Message"):
pluginInfo.plugin_object.message_received(msg, nick=self.nick)
def muc_online(self, presence):
if presence['muc']['nick'] != self.nick:
for pluginInfo in self.plugin_manager.getPluginsOfCategory("Presence"):
pluginInfo.plugin_object.got_online(self, presence)
def muc_offline(self, presence):
if presence['muc']['nick'] != self.nick:
for pluginInfo in self.plugin_manager.getPluginsOfCategory("Presence"):
pluginInfo.plugin_object.got_offline(self, presence)
示例9: modelBehaviorImplementations
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
def modelBehaviorImplementations(paths):
"""
Return an iterable of plugin-info for every locatable implementation of this interface on a given path.
PyDev for Eclipse reports a compilation error here on a line that is actually legal Python due to
the schedule upon which module resolution and imports happen.
"""
manager = PluginManager()
manager.setPluginPlaces(paths)
from fakeDataGenerator.model import IModelBehavior as foreignModelBehavior
# hey PyDev: the previous line is weird, but is actually legal
manager.setCategoriesFilter({"ModelBehavior": foreignModelBehavior})
manager.collectPlugins()
return manager.getPluginsOfCategory("ModelBehavior")
示例10: create_plugin_manager
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
def create_plugin_manager(category_filter, plugin_place):
""" Creates a PluginManager object from the given folder according to the given filter
:param category_filter:
:param plugin_place:
:return:
:rtype: PluginManager
"""
plugin_manager = PluginManager()
plugin_manager.setCategoriesFilter(category_filter)
plugin_manager.setPluginPlaces([plugin_place])
plugin_manager.collectPlugins()
return plugin_manager
示例11: initialize_plugins
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
def initialize_plugins(self):
self.__log.info("Collecting and loading plugins")
try:
plugin_manager = PluginManager()
# TODO: change plugin descriptor extensions, plugin_manager.setPluginInfoExtension(AGENT_PLUGIN_EXT)
plugin_manager.setCategoriesFilter({
CARTRIDGE_AGENT_PLUGIN: ICartridgeAgentPlugin,
ARTIFACT_MGT_PLUGIN: IArtifactManagementPlugin
})
plugin_manager.setPluginPlaces([self.__config.read_property(constants.PLUGINS_DIR)])
plugin_manager.collectPlugins()
# activate cartridge agent plugins
plugins = plugin_manager.getPluginsOfCategory(CARTRIDGE_AGENT_PLUGIN)
grouped_plugins = {}
for plugin_info in plugins:
self.__log.debug("Found plugin [%s] at [%s]" % (plugin_info.name, plugin_info.path))
plugin_manager.activatePluginByName(plugin_info.name)
self.__log.info("Activated plugin [%s]" % plugin_info.name)
mapped_events = plugin_info.description.split(",")
for mapped_event in mapped_events:
if mapped_event.strip() != "":
if grouped_plugins.get(mapped_event) is None:
grouped_plugins[mapped_event] = []
grouped_plugins[mapped_event].append(plugin_info)
# activate artifact management plugins
artifact_mgt_plugins = plugin_manager.getPluginsOfCategory(ARTIFACT_MGT_PLUGIN)
for plugin_info in artifact_mgt_plugins:
self.__log.debug("Found artifact management plugin [%s] at [%s]" % (plugin_info.name, plugin_info.path))
plugin_manager.activatePluginByName(plugin_info.name)
self.__log.info("Activated artifact management plugin [%s]" % plugin_info.name)
return plugin_manager, grouped_plugins, artifact_mgt_plugins
except ParameterNotFoundException as e:
self.__log.exception("Could not load plugins. Plugins directory not set: %s" % e)
return None, None, None
except Exception as e:
self.__log.exception("Error while loading plugin: %s" % e)
return None, None, None
示例12: load_env_plugin
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
def load_env_plugin(plugin_places=[misc.execution_path('plugins')],
environment='cloudsight'):
pm = PluginManager(plugin_info_ext='plugin')
# Normalize the paths to the location of this file.
# XXX-ricarkol: there has to be a better way to do this.
plugin_places = [misc.execution_path(x) for x in plugin_places]
pm.setPluginPlaces(plugin_places)
pm.setCategoriesFilter({"RuntimeEnvironment" : IRuntimeEnvironment})
pm.collectPlugins()
for env_plugin in pm.getAllPlugins():
# There should be only one plugin of the given category and type;
# but in case there are more, pick the first one.
if env_plugin.plugin_object.get_environment_name() == environment:
return env_plugin.plugin_object
raise RuntimeEnvironmentPluginNotFound('Could not find a valid runtime '
'environment plugin at %s' % plugin_places)
示例13: __init__
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
def __init__(self):
self.ver = "0.0.1"
wx.Frame.__init__(self, None, -1, "xshock v" + self.ver, size = (1000, 700))
plugin_mger = PluginManager(categories_filter={"toolbar":IToolBarPlugin})
plugin_mger.setPluginPlaces(["plugins"])
plugin_mger.setCategoriesFilter({
"all":IPlugin,
"toolbar":IToolBarPlugin,
"Win":IWinPlugin,
})
plugin_mger.collectPlugins()
tbs = []
nbs = []
#tb_plugin_objs = plugin_mger.getPluginsOfCategory("all")
tb_plugin_objs = plugin_mger.getAllPlugins()
for obj in tb_plugin_objs:
if isinstance (obj.plugin_object,IToolBarPlugin):
tbs.append(obj)
elif isinstance (obj.plugin_object,IWinPlugin):
nbs.append(obj)
self.tm = ECG_Timer()
vbox = wx.BoxSizer(wx.VERTICAL)
self.tb = self.createToolBar(tbs)
vbox.Add(self.tb, 0 , wx.EXPAND)
self.splitter = wx.SplitterWindow(self, -1, style = wx.SP_LIVE_UPDATE)
self.ann_tree = LogTree(self.splitter)
self.ecg_notebook = Notebook_div(self.splitter,nbs)
self.splitter.SplitVertically(self.ann_tree, self.ecg_notebook, 200)
vbox.Add(self.splitter, 2, wx.EXPAND)
self.SetSizer(vbox)
示例14: ExtensionLoader
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
class ExtensionLoader(object):
def __init__(self, core_config):
default_dir = os.path.join(os.path.expanduser("~"), "epops")
self.plugin_path = core_config.get('plugin_dir', [default_dir])
self.simple_plugin_manager = PluginManager()
self.simple_plugin_manager.setPluginPlaces(self.plugin_path)
self.simple_plugin_manager.setPluginInfoExtension('plugin-meta')
self.simple_plugin_manager.setCategoriesFilter({"Extension": IExtension})
self.pluginManager = AutoInstallPluginManager(self.plugin_path[0], self.simple_plugin_manager)
def ext_init(self):
self.simple_plugin_manager.collectPlugins()
return self.simple_plugin_manager.getAllPlugins()
def ext_load_new(self, filename):
zip_path = os.path.join(self.plugin_path[0], filename)
self.pluginManager.installFromZIP(zip_path)
self.simple_plugin_manager.collectPlugins()
return self.simple_plugin_manager.getAllPlugins()
示例15: testChangingCategoriesFilter
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import setCategoriesFilter [as 别名]
def testChangingCategoriesFilter(self):
"""
Test the effect of setting a new category filer.
"""
spm = PluginManager(directories_list=[
os.path.join(
os.path.dirname(os.path.abspath(__file__)),"plugins")])
# load the plugins that may be found
spm.collectPlugins()
newCategory = "Mouf"
# Pre-requisite for the test
previousCategories = spm.getCategories()
self.assertTrue(len(previousCategories) >= 1)
self.assertTrue(newCategory not in previousCategories)
# change the category and see what's happening
spm.setCategoriesFilter({newCategory: IPlugin})
spm.collectPlugins()
for categoryName in previousCategories:
self.assertRaises(KeyError, spm.getPluginsOfCategory, categoryName)
self.assertTrue(len(spm.getPluginsOfCategory(newCategory)) >= 1)