Hi all, After a long hiatus (0.6.15 was out in June of 2005), I'm glad to announce the release of IPython 0.7.0, with lots of new features.
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: http://ipython.scipy.org and downloads are at: http://ipython.scipy.org/dist I've provided: - 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 (many thanks to Jack Moffit, Norbert Tretkowski, Andrea Riciputi and Dryice Liu) have the time to follow their packaging procedures. A lot of new features have gone into this release, the bulk of which were driven by user feedback and requests, and more importantly by patches from IPython users. I greatly appreciate these contributions, and hope they will continue in the future. In particular, thanks to Vivian de Smedt, Jorgen Stenarsson and Ville Vainio, who contributed large patches with much of the new significant functionality. I've tried to provide credit in the notes below and the project's ChangeLog, please let me know if I've accidentally ommitted you. Many thanks to Enthought for their continued hosting support for IPython. Release notes ------------- *** WARNING: compatibility changes *** - IPython now requires at least Python 2.3. If you can't upgrade from 2.2, you'll need to continue using IPython 0.6.15. *** End warning. As always, the NEWS file can be found at http://ipython.scipy.org/NEWS, and the full ChangeLog at http://ipython.scipy.org/ChangeLog. The highlights of this release follow. - Wildcard patterns in searches, supported by the %psearch magic, as well as the '?' operator. Type psearch? for the full details. Extremely useful, thanks to Jörgen Stenarson. - Major improvements to the pdb mode. It now has tab-completion, syntax highlighting and better stack handling. Thanks to Vivian De Smedt for this work (double-points given that pdb has a well-deserved reputation for being very unpleasant to work with). - 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. - 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. - TAB on an otherwise empty line actually inserts a tab. Convenient for indenting (for those who don't use autoindent). - Significant improvements for all multithreaded versions of ipython. Now, if your threaded code raises exceptions, instead of seeing a crash report, a normal (colored, verbose, etc.) exception is printed. Additionally, if you have pdb on, it will activate in your threaded code. Very nice for interactively debugging GUI programs. - Many fixes to embedded ipython, including proper handling of globals and tab completion. - New -t and -o options to %logstart, to respectively put timestamps in your logs, and to also log all output (tagged as #[Out]#). The default log name is now ipython_log.py, to better reflect that logs remain valid Python source. - Lightweight persistence mechanism via %store. IPython had always had %save, to write out a group of input lines directly to a file. Now, its %store companion stores persistently (associated with your profile, and auto-loaded at startup) not just source, but any python variable which can be pickled. Thanks to Matt Wilkie for the request, and ville for the patches. - Macros (created with %macro) can now be edited with %edit (just say '%edit macroname'). This, coupled with the ability to store them persistently, makes the macro system much more useful. - New guarantee that, if you disable autocalling, ipython will never call getattr() on your objects. This solves problems with code that has side-effects on attribute access. Note that TAB-completion inevitably does call getattr(), so not all forms of side-effects can be eliminated. - Unicode support for prompts. - Improvements to path handling under win32. Thanks to Ville and Jorgen for the patches. - Improvements to pager under win32. Contributed by Alexander Belchenko. - Demo class for interactive demos using ipython. - %pycat magic for showing syntax-highlighted python sources - support for download_url in setup.py, so PyPI (and setuptools) work transparently with ipython. - New exit/quit magics to exit, conditionally asking (%Exit/%Quit don't) - Automatically reopen the editor if your file has a syntax error in it (when using the %edit system). - New notation N-M for indicating the range of lines N,...,M (including both endpoints), in magic commands such as %macro, %save and %edit. - The IPython instance has a new attribute, .meta, which is an empty namespace (an instance of 'class Bunch:pass'). This is meant to provide extension writers with a safe namespace to store metadata of any kind, without the risk of name clashes with IPython's internals. - Added tab-completion support for objects with Traits, a sophisticated type definition system for Python: http://code.enthought.com/traits. - Several patches related to Emacs support. Thanks to Alex Schmolck and John Barnard. - New 'smart' autocall mode, which avoids autocalling if a function with no arguments is the input. The old 'full' mode can be obtained by setting the autocall parameter in the ipythonrc to 2, or via the %autocall magic. - A large amount of internal reorganization and cleanup, to allow the code to be more readily moved over to the chainsaw branch (see below). - Many other small fixes and enhancements. The changelog has full details. Enjoy, and as usual please report any problems on the IPython lists. Regards, Fernando. -- http://mail.python.org/mailman/listinfo/python-list