[Python-ideas] registery system in Python ?

Sebastien Binet seb.binet at gmail.com
Thu Apr 23 20:31:30 CEST 2009


hi,

> I am working on a plugin system for Distutils, inspired from what
> setuptools provides (entry_points)
> so I am trying to describe how a generic registery could work.
>
> But, as discussed with some people at Pycon, this is a general need.
> What about adding a simple generic registery system in Python stdlib ?
>
> The APIs I was thinking about would register plugins under group names
> for an easy classification:
>
> - get_plugin(group, name) : returns an object for (group, name)
> - register_plugin(group, name, object): register an object, for (group,
> name) - unregister_plugin(group, name): removes an object for (group, name)
> - list_plugins(group=None, doc=False): returns a list of all objects for
> the given group.
> - list_groups(): return a list of all groups
>
> having groups make it simpler to classify plugins. In my use case,
> group could be : 'distutils:filelist'
> to list all plugins that knows how to build a file list. (see
> http://wiki.python.org/moin/Distutils/ManifestPluginSystem)

sounds nice but what about 'discovering' new plugins ?
writting a plugin system in python isn't super hard (it is merely a glorified 
API around a dict plus some bells and whistles,) the discovering part is a bit 
more nagging though:
 - populate a "well known" (set of) directory
 - naming conventions: all files *_plugin.{ini,py} are implicit plugins 
registration files
 - ?

or is the underlying idea to write a 'filelist' plugin which will discover new 
plugins ?

cheers,
sebastien.



More information about the Python-ideas mailing list