plugin / intra process communication system

Florian Ludwig dino at phidev.org
Sat Feb 13 10:50:43 CET 2010


Hi,

I'm looking for a module/plugin/intra-process-communication/hook system
for python. Maybe someone here could point me to some project I missed
or might have some good ideas if I end up implementing it myself.

Most systems I have found are "one to many" communications but I would
like "many to many", to clarify what I mean an *example* use-case:

        Lets say you program a wiki and like to allow different kind of
        authentications. So you create two plugins (for example one for
        OpenID and one for Shibboleth).
        
        Some time later you feel like reinventing the wheel again and
        you program a blog. Again you like to allow different ways of
        authentication and you already wrote plugins for exactly the
        same for your wiki, right?
        
With most systems now some trouble begins - the blog software would need
to have the interface/extention-points/however-you-name-it that the wiki
software defined.

The plugins you wrote probably import them from the wiki module directly
which means your blog would depend on the wiki. (?!) So where to put the
interface/[...] definition that is imported by those plugins? Create a
package/module just containing the interface? This really get
troublesome if different people wrote the wiki, the blog and another
third one a plugin.

Also it will probably break if you try to create a program that includes
(imports and uses) the wiki and the blog at the same time.

While looking for existing solutions I came across several different
implementations and approaches with different advantages and
disadvantages. To not list them all, here one representative
implementation: trac's component architecture [0] as its well but still
short documented, shares several concepts with other implementations and
I failed to see how to solve the problem described above with it.

So, what's your solution?

Thanks for reading my long mail!

Really hoping for an constructive discussion,
Florian

[0] http://trac.edgewall.org/wiki/TracDev/ComponentArchitecture
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://mail.python.org/pipermail/python-list/attachments/20100213/4494e8ba/attachment.pgp>


More information about the Python-list mailing list