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
signature.asc
Description: This is a digitally signed message part
-- http://mail.python.org/mailman/listinfo/python-list