At 04:37 PM 7/30/2010 +0200, Tarek Ziadé wrote:
On Fri, Jul 30, 2010 at 4:04 PM, Barry Warsaw <ba...@python.org> wrote:
..
> * Registration - How do third party plugins declare themselves to exist, and
>  be enabled?  Part of this seems to me to include interface declarations
> too. Is installation of the plugin enough to register it? How do end users
>  enable and disable plugins that me be registered on their system?  How do
>  plugins describe themselves (provide short and log descriptions, declare
>  options, hook into command line interfaces, etc.)?
>
> * Installation - How are plugins installed on the system?  Do they have to
>  appear in a special directory on the file system?  Do they need special
> setup.py magic to write extra files? Do they need to live in a pre-defined
>  namespace?

FWIW We are thinking about adding in distutils2 a system quite similar
to the entry points
setuptools has, but with extra abilities for the end user :

- activate / deactivate plugins without having to remove the project
that added them
- configure globally if plugins are implicitely activated or not --
and maybe allow the distutils2 installer to ask the user
  when a plugin is detected if he wants it activate or not
- provide a tool to browse them

Note, by the way, that none of these are mutually exclusive to the entry point mechanism; it is simply up to an application developer to decide which of those features he/she wishes to provide. A library that provides common implementations of such features on top of entry points would be a good idea.

pkg_resources already supplies one such tool, btw: the "find_plugins()" API for locating projects in one or more "plugin directories" that *could* be added to sys.path to provide plugins for an application. It's then up to the application to filter this list further (e.g. via its own configuration).

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to