[IPython-dev] Configuration, hooks and plugins

Robert Kern robert.kern at gmail.com
Tue Jun 30 18:54:42 EDT 2009

On 2009-06-30 17:44, Brian Granger wrote:
>> I like Mercurial's approach. Plugins are just Python packages/modules
>> exposing a
>> particular API. Having those packages installed *does not* enable them. To
>> enable them, you list the ones you want in the configuration file. Truth be
>> told, that's fairly similar to the current situation: you just import the
>> appropriate things in your ipy_user_conf.py and maybe activate them, except
>> that
>> there is no standardized plugin API.
> I too like this approach and a definitely think installing and
> enabling should be two different steps.
> How does Mercurial declare/discover plugins?  Does it use setuptools?

No. It reads the configuration files (~/.hgrc and the current repo's .hg/hgrc, 
if any) for a section that looks like this:


The "foo=" lines are those plugins which are distributed with Mercurial itself, 
so there is a standard place to look for them. You can specify a particular path 
if it is not one of the standard plugins like the ones that I have commented out.

> I will look at this.  Because IPython plugin's are often extremely
> lightweight, it would be nice if users could simply drop them into
> .ipython/plugins for installation.

We already add ~/.ipython to the sys.path. If you want to to stop doing that, 
and only add ~/.ipython/plugins to the sys.path, that might be cleaner.

Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco

More information about the IPython-dev mailing list