ANN: IPython 0.6.1

Fernando Perez fperez528 at
Mon Jul 26 21:15:37 EDT 2004

Announcing an update to IPython, an enhanced interactive Python shell. 

I've just uplodaded officially IPython 0.6.1.  Many thanks to all who 
contributed comments, bug reports, ideas and patches.  I'd like in particular 
to thank Ville Vainio, who helped a lot with many of the features for pysh, 
and was willing to put code in front of his ideas.

As always, a big Thank You goes to Enthought and the SciPy crowd for hosting 
ipython and all its attending support services (bug tracker, mailing lists, 
website and downloads, etc).

* WHAT is IPython? IPython tries to:

1. Provide an interactive shell superior to Python's default. IPython has many 
features for object introspection, system shell access, and its own special 
command system for adding functionality when working interactively.

2. Serve as an embeddable, ready to use interpreter for your own programs. 
IPython can be started with a single call from inside another program, 
providing access to the current namespace.

3. Offer a flexible framework which can be used as the base environment for 
other systems with Python as the underlying language.

* WHERE to find it:

It's been a while (over a year) since I've announced an ipython release here. 
But there has been a steady stream of development, so if you haven't upgraded
in a while, you should.

* NEW since last public release (ChangeLog included with full details, I only
give highlights here because there have been too many changes).

- BACKWARDS-INCOMPATIBLE CHANGE:  Users will need to update their ipythonrc 
files and replace '%n' with '\D' in their prompt_in2 settings everywhere. 
Sorry, but there's otherwise no clean way to get all prompts to properly 
align.  The ipythonrc shipped with IPython has been updated.

- 'pysh' profile, which allows you to use ipython as a system shell.  This 
includes mechanisms for easily capturing shell output into python strings and 
lists, and for expanding python variables back to the shell.  It is started, 
like all profiles, with 'ipython -p pysh'.  The following is a brief example 
of the possibilities:

planck[~/test]|3> $$a=ls *.py
planck[~/test]|4> type(a)
               <4> <type 'list'>
planck[~/test]|5> for f in a:
               |.>     if f.startswith('e'):
               |.>         wc -l $f

You can get the necessary profile into your ~/.ipython directory by running 
'ipython -upgrade', or by copying it from the IPython/UserConfig directory 
(ipythonrc-pysh).  Note that running -upgrade will rename your existing config 
files to prevent clobbering them with new ones.

This feature had been long requested by many users, and it's at last 
officially part of ipython.

- Improved the @alias mechanism.  It is now based on a fast, lightweight 
dictionary implementation, which was a requirement for making the pysh 
functionality possible.  A new pair of magics, @rehash and @rehashx, allow you 
to load ALL of your $PATH into ipython as aliases at runtime.

- New plot2 function added to the Gnuplot support module, to plot dictionaries 
and lists/tuples of arrays.  Also added automatic EPS generation to hardcopy().

- History is now profile-specific.

- New @bookmark magic to keep a list of directory bookmarks for quick

- New mechanism for profile-specific persistent data storage.  Currently only 
the new @bookmark system uses it, but it can be extended to hold arbitrary 
picklable data in the future.

- New @system_verbose magic to view all system calls made by ipython.

- For Windows users:  all this functionality now works under Windows, but some 
external libraries are required.  Details here:

- Fix bugs with '_' conflicting with the gettext library.

- Many, many other bugfixes and minor enhancements.  See the NEWS file linked 
above for the full details.

Enjoy, and please report any problems.


Fernando Perez.

More information about the Python-list mailing list