本文整理汇总了Python中twisted.plugin.getPlugins函数的典型用法代码示例。如果您正苦于以下问题:Python getPlugins函数的具体用法?Python getPlugins怎么用?Python getPlugins使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了getPlugins函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: write
def write(self):
self.file.write('#compdef mktap\n')
self.file.write('_mktap_subcmds=(\n')
from twisted import plugin as newplugin
from twisted.scripts.mktap import IServiceMaker
plugins = newplugin.getPlugins(IServiceMaker)
for p in plugins:
self.file.write('"%s:%s"\n' % (p.tapname, p.description))
self.file.write(")\n\n")
self.optionsClass.zsh_extras = ['*::subcmd:->subcmd']
gen = ArgumentsGenerator(self.cmd_name, self.optionsClass, self.file)
gen.write()
self.file.write("""if (( CURRENT == 1 )); then
_describe "tap to build" _mktap_subcmds && ret=0
fi
(( ret )) || return 0
service="$words[1]"
case $service in\n""")
plugins = newplugin.getPlugins(IServiceMaker)
for p in plugins:
self.file.write(p.tapname + ")\n")
gen = ArgumentsGenerator(p.tapname, p.options, self.file)
gen.write()
self.file.write(";;\n")
self.file.write("""*) _message "don't know how to complete $service";;\nesac""")
示例2: test_detectFilesChanged
def test_detectFilesChanged(self):
"""
Check that if the content of a plugin change, L{plugin.getPlugins} is
able to detect the new plugins added.
"""
FilePath(__file__).sibling('plugin_extra1.py'
).copyTo(self.package.child('pluginextra.py'))
try:
plgs = list(plugin.getPlugins(ITestPlugin, self.module))
# Sanity check
self.assertEquals(len(plgs), 2)
FilePath(__file__).sibling('plugin_extra2.py'
).copyTo(self.package.child('pluginextra.py'))
# Fake out Python.
self._unimportPythonModule(sys.modules['mypackage.pluginextra'])
# Make sure additions are noticed
plgs = list(plugin.getPlugins(ITestPlugin, self.module))
self.assertEquals(len(plgs), 3)
names = ['TestPlugin', 'FourthTestPlugin', 'FifthTestPlugin']
for p in plgs:
names.remove(p.__name__)
p.test1()
finally:
self._unimportPythonModule(
sys.modules['mypackage.pluginextra'],
True)
示例3: write
def write(self):
"""
Write the completion function to the file given to __init__
@return: C{None}
"""
self.file.write('#compdef %s\n' % (self.cmd_name,))
self.file.write('local _zsh_subcmds_array\n_zsh_subcmds_array=(\n')
from twisted import plugin as newplugin
plugins = newplugin.getPlugins(self.interface)
for p in plugins:
self.file.write('"%s:%s"\n' % (p.tapname, p.description))
self.file.write(")\n\n")
self.options.__class__.zsh_extras = ['*::subcmd:->subcmd']
gen = ArgumentsGenerator(self.cmd_name, self.options, self.file)
gen.write()
self.file.write("""if (( CURRENT == 1 )); then
_describe "%s" _zsh_subcmds_array && ret=0
fi
(( ret )) || return 0
service="$words[1]"
case $service in\n""" % (self.subcmdLabel,))
plugins = newplugin.getPlugins(self.interface)
for p in plugins:
self.file.write(p.tapname + ")\n")
gen = ArgumentsGenerator(p.tapname, p.options(), self.file)
gen.write()
self.file.write(";;\n")
self.file.write("*) _message \"don't know how to" \
" complete $service\";;\nesac")
示例4: fromPlugins
def fromPlugins(cls, clock):
"""
Create a :obj:`MimicCore` from all :obj:`IAPIMock` and
:obj:`IAPIDomainMock` plugins.
"""
service_catalog_plugins = getPlugins(IAPIMock, plugins)
domain_plugins = getPlugins(IAPIDomainMock, plugins)
return cls(clock, service_catalog_plugins, domain_plugins)
示例5: test_detectFilesRemoved
def test_detectFilesRemoved(self):
"""
Check that when a dropin file is removed, L{plugin.getPlugins} doesn't
return it anymore.
"""
FilePath(__file__).sibling("plugin_extra1.py").copyTo(self.package.child("pluginextra.py"))
try:
# Generate a cache with pluginextra in it.
list(plugin.getPlugins(ITestPlugin, self.module))
finally:
self._unimportPythonModule(sys.modules["mypackage.pluginextra"], True)
plgs = list(plugin.getPlugins(ITestPlugin, self.module))
self.assertEqual(1, len(plgs))
示例6: _init_faf_events
def _init_faf_events(self):
"""
Generate classes and initializes listeners for 'system events'.
Please use global registration as last resort.
"""
for klass_name in events_lst + [evname for elst in getPlugins(IEventList, events) for evname in elst]:
self.registerEventFromName(klass_name, Evt)
# Register Listeners
for event_handler in getPlugins(IEventListener, events):
if not isinstance(event_handler.__class__.EVENT, list):
self.addListener(event_handler.__class__.EVENT, event_handler)
else:
for event_name in event_handler.__class__.EVENT:
self.addListener(event_name, event_handler)
示例7: _init_resp_events
def _init_resp_events(self):
full_lst = responding_events + [
evname for elst in getPlugins(IRespondingEventList,
events) for evname in elst
]
for klass_name in full_lst:
self.registerEventFromName(klass_name, RespondingEvt)
for event_handler in getPlugins(IEventResponder):
if not isinstance(event_handler.__class__.RESPEVENT, list):
self.addResponder(event_handler.__class__.RESPEVENT, event_handler.respond)
else:
for event_name in event_handler.__class__.RESPEVENT:
self.addResponder(event_name, event_handler.respond)
示例8: handlePlugins
def handlePlugins(self, info):
"""Give control to plugins.
@param info: C{(proxy, equipment)} tuple
"""
proxy, equipment = info
proxy.version = 2 # Switch to version 2. Plugins should
# switch back to version 1 if needed.
# Filter out plugins that do not handle our equipment
plugins = [ plugin for plugin
in getPlugins(ICollector,
wiremaps.collector.equipment)
if plugin.handleEquipment(str(equipment.oid)) ]
if not plugins:
print "No plugin found for OID %s, using generic one" % str(equipment.oid)
plugins = [generic]
print "Using %s to collect data from %s" % ([str(plugin.__class__)
for plugin in plugins],
proxy.ip)
d = defer.succeed(None)
# Run each plugin to complete C{equipment}
for plugin in plugins:
plugin.config = self.config
d.addCallback(lambda x: plugin.collectData(equipment, proxy))
# At the end, write C{equipment} to the database
d.addCallback(lambda _: DatabaseWriter(equipment, self.config).write(self.dbpool))
return d
示例9: subCommands
def subCommands(self):
from twisted import plugin
plugins = plugin.getPlugins(service.IServiceMaker)
self.loadedPlugins = {}
for plug in plugins:
self.loadedPlugins[plug.tapname] = plug
yield (plug.tapname, None, lambda: plug.options(), plug.description)
示例10: loadApps
def loadApps():
"""
Read the IResource plugins
"""
import goonsite.plugins
plugins = getPlugins(IAppFactory, goonsite.plugins)
return dict([(p.name, p) for p in plugins])
示例11: test_detectNewFiles
def test_detectNewFiles(self):
"""
Check that L{plugin.getPlugins} is able to detect plugins added at
runtime.
"""
FilePath(__file__).sibling('plugin_extra1.py'
).copyTo(self.package.child('pluginextra.py'))
try:
# Check that the current situation is clean
self.failIfIn('mypackage.pluginextra', sys.modules)
self.failIf(hasattr(sys.modules['mypackage'], 'pluginextra'),
"mypackage still has pluginextra module")
plgs = list(plugin.getPlugins(ITestPlugin, self.module))
# We should find 2 plugins: the one in testplugin, and the one in
# pluginextra
self.assertEquals(len(plgs), 2)
names = ['TestPlugin', 'FourthTestPlugin']
for p in plgs:
names.remove(p.__name__)
p.test1()
finally:
self._unimportPythonModule(
sys.modules['mypackage.pluginextra'],
True)
示例12: __init__
def __init__(self, config):
self.channels = config['channels']
self.nickname = config['nickname']
self.history = {}
self.loader = PluginLoader()
self.loader.config = config
if 'db' in config:
print('Loading db from config: ' + config['db'])
db_engine = sqlalchemy.create_engine(config['db'])
else:
print('Using in-memory db')
db_engine = sqlalchemy.create_engine('sqlite:///:memory:')
DBSession = orm.sessionmaker(db_engine)
session = DBSession()
self.loader.db = DB(db_engine, session)
# Load all plugins mentioned in the configuration. Allow globbing.
config_matches = set()
for plugin in getPlugins(BaseInterface, package=plugins):
for pattern in config['plugins']:
if fnmatch(plugin.name, pattern):
self.loader.registerPlugin(plugin)
config_matches.add(pattern)
break
for pattern in config['plugins']:
if pattern not in config_matches:
log.warning('No plugin matched pattern "%s"', pattern)
示例13: loadModule
def loadModule(self, name):
for module in getPlugins(IBotModule, heufybot.modules):
if module.name and module.name.lower() == name.lower():
rebuild(importlib.import_module(module.__module__))
self._loadModuleData(module)
return module.name
raise ModuleLoaderError(name, "The module could not be found.", ModuleLoadType.LOAD)
示例14: _scan_sites
def _scan_sites(env):
"""
Search for available site configuration objects.
Register any found objects with the internal structures.
"""
global host_tree, debug_site_scan
import modu.sites
reload(modu.sites)
plugins = plugin.getPlugins(ISite, modu.sites)
for site_plugin in plugins:
if(debug_site_scan):
env['wsgi.errors'].write('Found %r\n' % (site_plugin,))
site = site_plugin()
app = Application(site)
root = app.tree.get_data_at('/')
webroot = os.path.join(app.approot, app.webroot)
app.tree.register('/', (static.FileResource, (webroot, root), {}), clobber=True)
domain = app.base_domain
if(domain.find(':') == -1):
domain += ':' + env['SERVER_PORT']
host_node = host_tree.setdefault(domain, url.URLNode())
base_path = app.base_path
if not(base_path):
base_path = '/'
if(debug_site_scan):
env['wsgi.errors'].write('Loaded %r for %r\n' % (site_plugin, domain))
host_node.register(base_path, app, clobber=True)
示例15: activate
def activate(self):
self.installable = []
self.uninstallable = []
installed = {}
available = {}
for i in self.store.query(InstalledPlugin):
installed[i.path] = i.version
for a in getPlugins(isqueal.ISquealPlugin, plugins):
path = a.__name__ + "." + a.__module__
available[path] = a
for path, plugin in available.items():
if path in installed:
self.uninstallable.append({
'plugin': plugin,
'version': a.version,
'path': path
})
if plugin.version > installed[path]:
log.warning("Plugin %s has been upgraded" % path)
elif plugin.version < installed[path]:
log.warning("Plugin %s has been downgraded" % path)
else:
self.installable.append({
'plugin': plugin,
'version': a.version,
'path': path
})
for path, version in installed.items():
if path not in available:
print "Plugin", path, "has been removed"