[Twisted-Python] Question about plugins tutorial

Christopher Armstrong radix at twistedmatrix.com
Wed Apr 4 10:46:33 EDT 2007

On 4/4/07, Brian Costlow <brian.costlow at gmail.com> wrote:
> But I'm looking at the Plugins as a way to abstract multiple back-end
> actions taken in response to data recieved by a number of asynchronous
> events (off of LineReciever and XML-RPC). The plug-in is going to need
> to keep some intermediate state data in some cases, which won't work
> if they all get the same object. So I was thinking of something along
> these lines:
> # plugin
>   class Foo(object):
>       implements(IPlugin, imyplugins.IMyPlugIn)
>       def fooStuff(self):
>           # do foo stuff
>     def fooFactory(self):
>         return Foo()
>  f = Foo()
>   # end plugin
>   #call plugin from app
>  for n in getPlugins(imyplugins.IMyPlugIn):
>     o = n.fooFactory()
>       o.fooStuff()
> Does this make sense? Is there a better way in the twisted framework
> to handle this?

Yep: making your plugins factories is a common pattern. There's also
often a conditional checking something about 'n' before calling the
fooFactory on it (for example, is it the one the user requested by
name? etc)

Christopher Armstrong
International Man of Twistery

More information about the Twisted-Python mailing list