MCPcopy Index your code
hub / github.com/ronreiter/interactive-tutorials / PluginContainer

Class PluginContainer

suds/plugin.py:175–207  ·  view source on GitHub ↗

Plugin container provides easy method invocation. @ivar plugins: A list of plugin objects. @type plugins: [L{Plugin},] @cvar ctxclass: A dict of plugin method / context classes. @type ctxclass: dict

Source from the content-addressed store, hash-verified

173
174
175class PluginContainer:
176 """
177 Plugin container provides easy method invocation.
178 @ivar plugins: A list of plugin objects.
179 @type plugins: [L{Plugin},]
180 @cvar ctxclass: A dict of plugin method / context classes.
181 @type ctxclass: dict
182 """
183
184 domains = {
185 'init': (InitContext, InitPlugin),
186 'document': (DocumentContext, DocumentPlugin),
187 'message': (MessageContext, MessagePlugin),
188 }
189
190 def __init__(self, plugins):
191 """
192 @param plugins: A list of plugin objects.
193 @type plugins: [L{Plugin},]
194 """
195 self.plugins = plugins
196
197 def __getattr__(self, name):
198 domain = self.domains.get(name)
199 if domain:
200 plugins = []
201 ctx, pclass = domain
202 for p in self.plugins:
203 if isinstance(p, pclass):
204 plugins.append(p)
205 return PluginDomain(ctx, plugins)
206 else:
207 raise Exception('plugin domain (%s), invalid' % name)
208
209
210class PluginDomain:

Callers 5

__init__Method · 0.90
__init__Method · 0.90
sendMethod · 0.90
succeededMethod · 0.90
get_replyMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected