I have released IPython 0.7.1, which is mainly a bugfix release over 0.7.0. As expected in that release, given the large changes made, some problems inevitably appeared. I believe all regressions and known bugs have been fixed, along with some useful new features.
This release marks the end of my tenure on the stable branch of ipython. Ville Vainio will continue as maintainer of the ipython trunk/, while I will continue working on the development branch of IPython (chainsaw). I will remain available on the list as usual, both to assist Ville as needed, and to discuss withe anyone interested. But I'll try to limit my time and effort spent on trunk to a minimum, so we can really advance the (fairly ambitious) chainsaw project.
WHAT is IPython? ----------------
1. 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. 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. A flexible framework which can be used as the base environment for other systems with Python as the underlying language.
4. A shell for interactive usage of threaded graphical toolkits. IPython has support for interactive, non-blocking control of GTK, Qt and WX applications via special threading flags. The normal Python shell can only do this for Tkinter applications.
Where to get it ---------------
IPython's homepage is at:
and downloads are at:
- source downloads (.tar.gz) - RPMs (for Python 2.3 and 2.4, built under Fedora Core 3). - Python Eggs (http://peak.telecommunity.com/DevCenter/PythonEggs). - a native win32 installer for both Python 2.3 and 2.4.
Fedora users should note that IPython is now officially part of the Extras repository, so they can get the update from there as well (though it may lag by a few days).
Debian, Fink and BSD packages for this version should be coming soon, as the respective maintainers have the time to follow their packaging procedures. Many thanks to Jack Moffit, Norbert Tretkowski, Andrea Riciputi and Dryice Liu).
The eggs included now are lighter, as they don't include documentation and other ancillary data. If you want a full ipython installation, use the source tarball or your distribution's favorite system.
Many thanks to Enthought for their continued hosting support for IPython.
Release notes -------------
As always, the full ChangeLog is at http://ipython.scipy.org/ChangeLog. The highlights of this release follow.
- *FIXED: this wasn't really working right in 0.7.0* Support for input with empty lines. If you have auto-indent on, this means that you need to either hit enter _twice_, or add/remove a space to your last blank line, to indicate you're done entering input. These changes also allow us to provide copy/paste of code with blank lines.
- *FIXED: this wasn't really working right in 0.7.0* Support for pasting multiline input even with autoindent on. The code will look wrong on screen, but it will be stored and executed correctly internally. Note that if you have blank lines in your code, these need to be indented like their surroundings (pure empty lines will make ipython assume you are finished with your input). This is a limitation also of the plain python interpreter, and can't really be fixed in a line-oriented system like ipython.
- Fixed bug where macros were not working correctly in threaded shells.
- Catch exceptions which can be triggered asynchronously by signal handlers. This fixes a rare and obscure problem, but which could crash ipython; reported by Colin Kingsley <tercel-AT-gentoo.org>.
- Added new '-r' option to %hist, to see the raw input history (without conversions like %ls -> ipmagic("ls")).
- Fix problems with GTK under win32 (excessive keyboard lag and cpu usage).
- Added ipython.py script to root directory of download. This allows you to unpack ipython and execute it in-place, without needing to install it at all.
- Improved handling of backslashes () in magics. This improves the usability of ipython especially under win32, which uses \ as a path separator (though it also benefits Unix for escaping characters in shell usage).
- More autocall fixes (rare, but critical).
- New IPython.ipapi module to begin exposing 'officially' IPython's public API. This should ease the task of those building systems on top of ipython.
- New IPython.platutils module, exposing various platform-dependent utilities (such as terminal title control).
- Implemented exception-based 'chain of command' for IPython's hooks.
- Added Jason Orendorff's "path" module to IPython tree, http://www.jorendorff.com/articles/python/path/. You can get path objects conveniently through %sc, and !!, e.g.: sc files=ls for p in files.paths: # or files.p print p,p.mtime
- Fix '%run -d' with Python 2.4 (pdb changed in Python 2.4).
- Various other small fixes and enhancements.
Enjoy, and as usual please report any problems.
Regards, and thanks for all this time using IPython!