[Chicago] Python Plugins

Jordan Sherer jordan at widefido.com
Sun Sep 14 03:16:28 CEST 2008


Rob:
Thanks for sending this my way. You've 1) turned me on to a new and  
interesting podcast :) and 2) helped me wrap my head around some  
things I hadn't thought about.

All:
For those of you without 50 minutes to spare, I've typed up a few of  
the points that I found particularly interesting:

---

A plugin architecture has 4 important roles:
1. Finding plugins and loading plugins
2. Keeping track of loaded plugins and their extension points
3. Managing inter-plugin dependencies.
4. Providing a communication layer between application to plugin, or  
plugin to plugin

There are different "flavors" of plugin architectures.
1. An application that is useful in and of itself, which defines  
extension points for "add-ons", or additional functionality   (An add- 
on plugin system)
2. An application built entirely of plugins, where plugins can extend  
existing extension points and provide new extension points for other  
plugins. (A pure-plugin system, similar to Eclipse)

In both cases, an application must not depend on a particular plugin.

It may not make sense to use a plugin framework for tiny applications.  
But anything with more than a few classes could benefit.  And,  
applications that DO use a plugin system, allow for future growth. (In  
the podcast, they were describing cases where DECADES could go by  
using the same code-base with a plugin system...interesting)

---

Overall, this was a pretty interesting podcast. Here's a link if  
anybody wants to listen:
http://www.se-radio.net/podcast/2008-07/episode-104-plugin-architectures

Update on my Python Plugin System:
After searching, researching, and checking out existing plugin systems  
for Python (Twisted, setuptools, Sprinkltes, etc), I decided that none  
really fit the bill of simplicity that I am looking for. So, I  
finished writing one. With a few tweaks and code refactoring, this  
could be incredibly useful tool for others. I'll probably be setting  
up it up as an open-source project in the near future. If anybody is  
interested in the meantime, feel free to email me.

Thanks again for all of your help!

Best,
Jordan




On Sep 13, 2008, at Sep 13   6:57 PM, Rob Kapteyn wrote:

> Jordan:
> I like listening to podcasts while I exercise, and I just listened  
> to a good one on this subject:
> "Software Engineering Radio - the podcast for professional software  
> developers"
> "Episode 104: Plugin Architectures"  dated 7/20/08.
>
> I don't think it deals with python at all, but it did bring up a  
> number of issues I might not have considered.
> It might be worth a listen.
> -Rob
>
> On Sep 12, 2008, at 2:10 PM, Dan Krol wrote:
>
>> Perhaps this won't end up applying to you, but you should check into
>> Swig and Pyrex. They make interfacing C with Python a lot simpler.
>>
>> On 9/12/08, Jordan Sherer <jordan at widefido.com> wrote:
>>>
>>>> My understanding is that setuptools includes a simple framework for
>>>> this, which Trac (among other projects) uses for its plugins; I
>>>> tried googling a bit to throw you a link, though, and couldn't find
>>>> anything really definitive.
>>>
>>> Thanks for the effort :) That is what I've heard as well, but  
>>> haven't
>>> found anything definitive there.
>>>
>>> The library I have written so far *has* proved to be somewhat useful
>>> (although buggy at the moment). I am just wondering if there is an
>>> existing and/or better way to accomplish this.
>>>
>>> If not, maybe I can work on my code a little bit more, extending it,
>>> and then open source it for all. If I go this route, does anybody  
>>> have
>>> any suggestions for specific functionality of a plugin framework?
>>>
>>> Thanks for your help.
>>>
>>> Best,
>>> Jordan
>>>
>>>
>>> _______________________________________________
>>> Chicago mailing list
>>> Chicago at python.org
>>> http://mail.python.org/mailman/listinfo/chicago
>>>
>> _______________________________________________
>> Chicago mailing list
>> Chicago at python.org
>> http://mail.python.org/mailman/listinfo/chicago
>
> _______________________________________________
> Chicago mailing list
> Chicago at python.org
> http://mail.python.org/mailman/listinfo/chicago

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/chicago/attachments/20080913/470e56e7/attachment.htm>


More information about the Chicago mailing list