[IPython-dev] New approach to loading extensions - _ip.load()

Ville M. Vainio vivainio at gmail.com
Thu Jun 14 14:14:52 EDT 2007


At this point just importing the extensions didn't scale anymore, so I
moved from the bare

ip = IPython.ipapi.get()

to introducing 'init_ipython(ip)' function that gets run when you run
_ip.load. What _ip.load is:

- It imports the module
- It runs init_ipython(ip) if the module has one. 'ip' is an ipapi instance.


IPython.ipapi.get() approach still works, of course, but some
modules/extensions *need* to be imported with _ip.load.
IPython.history is a first such extension.

Basically, modules that need to be 'load':ed are the ones that can be
imported w/o also outside IPython contex (general purpose modules), or
the ones that are imported by IPython itself before the
'configuration' phase (e.g. the ones imported ipapi.py, as opposed
ipy_system_conf.py).

New modules are recommended to be implemented using the init_ipython approach.

The following changeset should give you the idea:

http://projects.scipy.org/ipython/ipython/changeset/2434

-- 
Ville M. Vainio - vivainio.googlepages.com
blog=360.yahoo.com/villevainio - g[mail | talk]='vivainio'



More information about the IPython-dev mailing list