本文整理汇总了Python中yapsy.PluginManager.PluginManager.getAllPlugins方法的典型用法代码示例。如果您正苦于以下问题:Python PluginManager.getAllPlugins方法的具体用法?Python PluginManager.getAllPlugins怎么用?Python PluginManager.getAllPlugins使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yapsy.PluginManager.PluginManager
的用法示例。
在下文中一共展示了PluginManager.getAllPlugins方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: loadPlugins
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [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
示例2: ProfilesManager
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
class ProfilesManager(object):
def __init__(self):
self.plugin_location = [PROFILE_MODULE_DIR]
self.pluginManager = PluginManager(plugin_info_ext="plugin")
self.pluginManager.setPluginPlaces(self.plugin_location)
self.pluginManager.collectPlugins()
def modules_info(self):
"""
Get information with regards to each modules loaded. It includes author, category, copyright, description,
details, name, version and website.
:return: information of all modules loaded
"""
modules_info = {}
for pluginInfo in self.pluginManager.getAllPlugins():
modules_info[pluginInfo.name] = pluginInfo
return modules_info
def configForms(self, device_serial, module_name=""):
"""
Get the configuration views of each modules to be displayed on web interface
:return: dictionary of pluginInfo as key and form as value
"""
if module_name:
plugin = self.pluginManager.getPluginByName(name=module_name)
configForms = plugin.plugin_object.get_view()
else:
configForms = {}
for pluginInfo in self.pluginManager.getAllPlugins():
form = pluginInfo.plugin_object.get_view()
configForms[pluginInfo] = form
return configForms
def run_simulation(self,option, profile_name, duration, device_serial, package_name, session):
"""
Run profile simulation script
:return:
"""
plugin = self.pluginManager.getPluginByName(name=profile_name)
if option == RANDOM_INTERACTION:
plugin.plugin_object.runSimulation(duration,package_name, random=True, device_serial=device_serial, session=session)
elif option == SCRIPTED_PROFILE_INTERACTION:
plugin.plugin_object.runSimulation(duration,package_name, random=False, device_serial=device_serial, session=session)
def setup_device(self,module, params, device_serial):
"""
install profile apk and profile app data onto device
:return:
"""
pluginInfo = self.pluginManager.getPluginByName(name=module)
if pluginInfo.name == module:
pluginInfo.plugin_object.prepare(params, device_serial)
return True
示例3: loadPlugins
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
def loadPlugins(pluginfldr,hivesdict):
"""
Enumerate plugins in the specified directory and return the populated
plugin manager and a list of the compatible plugins. Compatibility is
determined by checking if the required hives were loaded sucessfully.
"""
pluginmanager = PluginManager()
pluginmanager.setPluginPlaces([pluginfldr])
pluginmanager.collectPlugins()
print ""
logging.info("[PLUGINS IDENTIFIED: %s]" % len(pluginmanager.getAllPlugins()))
compat_plugins = list()
incompat_plugins = list()
for plugin in pluginmanager.getAllPlugins():
compat = 1
for req in plugin.plugin_object.getRequirements():
if (hivesdict[req][0] <> 1):
compat = 0
break
if compat:
compat_plugins.append(plugin.name)
else:
incompat_plugins.append(plugin.name)
logging.info(" [%s] Compatible Plugins:" % len(compat_plugins))
for plugin in compat_plugins:
logging.info(" - %s" % plugin)
logging.info(" [%s] Incompatible Plugins:" % len(incompat_plugins))
for plugin in incompat_plugins:
logging.info(" - %s" % plugin)
return pluginmanager, compat_plugins
示例4: AlgorithmManager
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
class AlgorithmManager():
def __init__(self):
self._pluginManager = PluginManager()
self._pluginManager.setPluginPlaces(config.PLUGIN_DIR)
self._pluginManager.collectPlugins()
for pluginInfo in self._pluginManager.getAllPlugins():
self._pluginManager.activatePluginByName(pluginInfo.name)
def get_alg_names(self):
for plugin in self._pluginManager.getAllPlugins():
plugin.plugin_object.print_name()
def execute_calc(self, data):
run = []
if not self.__is_sequence(data):
raise Exception('Data is no array!')
for alg in self._pluginManager.getAllPlugins():
result, prop = alg.plugin_object.calc(data)
run.append({alg.name : (result, prop)})
return run
def __is_sequence(self, arg):
return (not hasattr(arg, "strip") and
hasattr(arg, "__getitem__") or
hasattr(arg, "__iter__"))
示例5: collect_data
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [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))
示例6: test_plugin_locator_with_manager
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
def test_plugin_locator_with_manager(self):
"""Test cases for plugin locator.
Uses custom PluginLocator inside PluginManager.
"""
from drop.plugins import DropPluginLocator
from yapsy.PluginManager import PluginManager
pm = PluginManager(plugin_locator=DropPluginLocator())
# TODO: Create some dummy plugins to be found
pm.collectPlugins()
pm.getAllPlugins()
示例7: disabled_plugins
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
def disabled_plugins(plugin_kind='main'):
enabled_plugins = Plugin.objects.all()
# Build the manager
manager = PluginManager()
# Tell it the default place(s) where to find plugins
manager.setPluginPlaces([settings.PLUGIN_DIR, os.path.join(settings.PROJECT_DIR, 'server/plugins')])
# Load all plugins
manager.collectPlugins()
output = []
if plugin_kind == 'main':
for plugin in manager.getAllPlugins():
try:
plugin_type = plugin.plugin_object.plugin_type()
except:
plugin_type = 'builtin'
if plugin_type != 'report':
try:
item = Plugin.objects.get(name=plugin.name)
except Plugin.DoesNotExist:
output.append(plugin.name)
if plugin_kind == 'report':
for plugin in manager.getAllPlugins():
try:
plugin_type = plugin.plugin_object.plugin_type()
except:
plugin_type = 'builtin'
if plugin_type == 'report':
try:
item = Report.objects.get(name=plugin.name)
except Report.DoesNotExist:
output.append(plugin.name)
if plugin_kind == 'machine_detail':
for plugin in manager.getAllPlugins():
try:
plugin_type = plugin.plugin_object.plugin_type()
except:
plugin_type = 'builtin'
if plugin_type == 'machine_detail':
try:
item = MachineDetailPlugin.objects.get(name=plugin.name)
except MachineDetailPlugin.DoesNotExist:
output.append(plugin.name)
return output
示例8: run
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
def run():
logging.basicConfig(level=logging.INFO)
os.chdir('/home/mjolnir/git/PURIKURA')
# H A N D L E P L U G I N S
pm = PluginManager()
pm.setPluginPlaces(['./pyrikura/plugins'])
pm.collectPlugins()
for pi in pm.getAllPlugins():
logging.info('loading plugin %s', pi.name)
pm.activatePluginByName(pi.name)
brokers = {}
nodes = build()
head = nodes[0]
for node in nodes:
brokers[node] = node.load(pm)
for node, broker in brokers.items():
for other in node._listening:
broker.subscribe(brokers[other])
start = time.time()
last_time = 0
shots = 0
last_trigger = 0
for broker in itertools.cycle(brokers.values()):
broker.update()
示例9: get_plugins
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
def get_plugins():
plugin_analyzer = PluginFileAnalyzerWithInfoFile(name="torrentstausanalyzer", extensions="plugin-manifest")
plugin_locator = PluginFileLocator(analyzers=[plugin_analyzer])
extra_plugins_dir = config.getSettingsAsDict()["extra_plugins_dir"]
plugin_extras = os.path.join(get_config_dir(), extra_plugins_dir)
directories = [os.path.join(os.path.dirname(os.path.realpath(__file__)), "plugins")]
##
## Allow user defined plugins
## These plugins should be named as
## name.function.{py, plugin-manifest}
## Example:
## MyPlugin.onstart.py
## MyPlguin.onstart.plugin-manifest
##
if os.path.exists(plugin_extras):
directories.append(plugin_extras)
manager = PluginManager(directories_list=directories, plugin_locator=plugin_locator)
manager.collectPlugins()
plugins = manager.getAllPlugins()
# Activate all loaded plugins
for pluginInfo in plugins:
manager.activatePluginByName(pluginInfo.name)
return plugins
示例10: __run_reporting_generator
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
def __run_reporting_generator(self):
# options
options = dict()
# Build the PluginManager
reportingPluginManager = PluginManager()
reportingPluginManager.setPluginPlaces(["reporting"])
reportingPluginManager.collectPlugins()
# Trigger run from the "Reporting" plugins
for pluginInfo in sorted(reportingPluginManager.getAllPlugins(), key=lambda PluginInfo: PluginInfo.name):
reportingModulG = pluginInfo.plugin_object
reportingModulG.set_task(self.task)
# Give it the the relevant reporting.conf section.
try:
options = self.cfgReporting.get(pluginInfo.name)
reportingModulG.set_options(options)
except Exception:
log.error("Reporting module %s not found in configuration file", pluginInfo.name)
# If the processing module is disabled in the config, skip it.
if not options.enabled:
continue
log.debug("Run Reporting: " + pluginInfo.name)
yield reportingModulG
示例11: _run_reporting
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
def _run_reporting(self, results, objfile):
#options
options = dict()
# Build the PluginManager
reportingPluginManager = PluginManager()
reportingPluginManager.setPluginPlaces(["reporting"])
reportingPluginManager.collectPlugins()
# Trigger run from the "Reporting" plugins
for pluginInfo in reportingPluginManager.getAllPlugins():
reportingModul = pluginInfo.plugin_object
reportingModul.set_task(self.task)
# Give it the the relevant reporting.conf section.
try:
options = self.cfgReporting.get(pluginInfo.name)
reportingModul.set_options(options)
except Exception:
log.error("Reporting module %s not found in configuration file", pluginInfo.name)
# If the processing module is disabled in the config, skip it.
if not options.enabled:
continue
log.debug("Run Reporting: " + pluginInfo.name)
try:
# Run the Reporting module
reportingModul.run(results, objfile)
except Exception as e:
log.exception("Failed to run the reporting module \"%s\":",
reportingModul.__class__.__name__)
示例12: runCrawler
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
def runCrawler():
mapURL = {}
cfgCrawler = Config(os.path.join(RAGPICKER_ROOT, 'config', 'crawler.conf'))
# Build the PluginManager
crawlerPluginManager = PluginManager()
crawlerPluginManager.setPluginPlaces(["crawler"])
crawlerPluginManager.collectPlugins()
# Trigger run from the "Crawler" plugins
for pluginInfo in sorted(crawlerPluginManager.getAllPlugins(), key=lambda PluginInfo: PluginInfo.name):
crawlerModul = pluginInfo.plugin_object
# Config for crawler module
try:
options = cfgCrawler.get(pluginInfo.name)
crawlerModul.set_options(options)
except Exception:
log.error("Crawler module %s not found in configuration file", pluginInfo.name)
# If the crawler module is disabled in the config, skip it.
if not options.enabled:
continue
try:
log.debug("Run Crawler: " + pluginInfo.name)
returnMap = crawlerModul.run()
mapURL.update(returnMap)
except Exception as e:
log.error('Error (%s) in %s', e, pluginInfo.name)
return mapURL
示例13: group_dashboard
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
def group_dashboard(request, group_id):
# check user is allowed to access this
user = request.user
config_installed = 'config' in settings.INSTALLED_APPS
user_level = user.userprofile.level
machine_group = get_object_or_404(MachineGroup, pk=group_id)
business_unit = machine_group.business_unit
if business_unit not in user.businessunit_set.all():
if user_level != 'GA':
return redirect(index)
if user_level == 'GA' or user_level == 'RW':
is_editor = True
else:
is_editor = False
machines = machine_group.machine_set.all()
# Build the manager
manager = PluginManager()
# Tell it the default place(s) where to find plugins
manager.setPluginPlaces([settings.PLUGIN_DIR, os.path.join(settings.PROJECT_DIR, 'server/plugins')])
# Load all plugins
manager.collectPlugins()
output = []
for plugin in manager.getAllPlugins():
data = {}
data['name'] = plugin.name
(data['html'], data['width']) = plugin.plugin_object.show_widget('group_dashboard', machines, machine_group.id)
output.append(data)
output = utils.orderPluginOutput(output, 'group_dashboard', machine_group.id)
c = {'user': request.user, 'machine_group': machine_group, 'user_level': user_level, 'is_editor': is_editor, 'business_unit': business_unit, 'output':output, 'config_installed':config_installed, 'request':request}
return render_to_response('server/group_dashboard.html', c, context_instance=RequestContext(request))
示例14: FurnivallApplication
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
class FurnivallApplication(tornado.web.Application):
def __init__(self):
"""
Sets up the Tornado web server and loads all the init data
"""
# Init mongodb database
self.dbconnection = Connection()
self.db = self.dbconnection['furnivall']
# Init plugins
self.plugin_manager = PluginManager()
self.plugin_manager.setPluginPlaces(["./plugins"])
self.plugin_manager.collectPlugins()
print "Loaded plugins:"
for plugin_info in self.plugin_manager.getAllPlugins():
print ' * ' + plugin_info.name
# Init routes
urls = [
] + Route.routes()
settings = dict(
static_path = os.path.join(data_dir, "static"),
template_path = os.path.join(data_dir, "templates"),
xsrf_cookies = False,
cookie_secret = "11oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1ao/Vo=",
)
tornado.web.Application.__init__(self, urls, **settings)
示例15: main
# 需要导入模块: from yapsy.PluginManager import PluginManager [as 别名]
# 或者: from yapsy.PluginManager.PluginManager import getAllPlugins [as 别名]
def main():
parser = argparse.ArgumentParser(description='Validates file format')
parser.add_argument('files', nargs='+',
help='files to be validated')
parser.add_argument('--verbose', action='store_true',
default=False,
help='Shows help about validation')
args = parser.parse_args()
simplePluginManager = PluginManager()
simplePluginManager.setPluginPlaces(["plugins"])
simplePluginManager.collectPlugins()
for filename in args.files:
supported = False
for plugin in simplePluginManager.getAllPlugins():
methods = plugin.plugin_object
if methods.should_manage(filename):
supported = True
try:
plugin.plugin_object.validate(filename)
print('%s sintax ok for %s' % (filename, plugin.name))
break
except Exception as e:
print('Invalid file %s for %s' % (filename, plugin.name))
if args.verbose:
print(e)
if not supported:
print('%s cannot be validated' % filename)