[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

plugin / intra process communication system

Florian Ludwig

2/13/2010 9:51:00 AM

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/ComponentAr...