New features in 0.8.2

This does not list bugfixes, enhanced internals or api additions.

  • “Shadow history” remembers everything you’ve entered, forever. Remember that arcane command line you entered three weeks ago? Just grep the shadow history with “%hist -g”! See cookbook for details.

  • %rep is a new magic function that allows you to fetch command lines from history for editing. Do “%rep?” for details.

  • System command aliases (created by %rehashx) are lower case in win32.

  • Macros can now take arguments. See cookbook.

  • %macro without arguments lists available macros.

  • Directory history (the easiest way to see it is by doing ‘cd -<TAB>’) is now persistent across sessions.

  • ipython -i -c <cmd>: -i (interact) prevents IPython session from exiting after executing <cmd>. <cmd> can now contain IPython syntax (!foo, %magic etc).

  • new profiles: doctest, zope. scipy is now in ipy_profile_scipy.py instead of ipythonrc-scipy.

  • new extensions:

    • ipy_traits_completer.py: complete Traits attributes

    • ipy_legacy.py: enable deprecated features

    • mglob.py: enhanced globbing - %mglob !.svn/ rec:*.py

    • ipy_exportdb.py: create a portable .py file from your %store’d macros, aliases, strings and bookmarks for distribution. See cookbook .

    • ipy_render.py: win32: render templates using Itpl format to clipboard (e.g. render ‘hello $a’). See cookbook.

    • ipy_editors.py: Bunch of popular editors readily configured for IPython. See ipy_user_conf.py for instructions on how to enable them.

    • ipy_fsops.py: Has useful shell utils for plain (non-cygwin enabled) win32 installations: icp, imv, imkdir, igrep, irm, collect (collect is useful for others as well).

  • py2exe version supported (ipykit)

  • The title bar of IPython window shows the currently executing system command.

  • Prompt on win32 in pysh (‘-p sh’ profile) now has the drive letter for enhanced location awareness, and uses / instead of .

  • Errors from misusing magics are much less verbose now (due to UserError exception).

  • String Lists provide a convenient way to manipulate command output. See Cookbook.

  • Directory stack (%pushd, %popd, %dirs) works more predictably now.

  • %time allows IPython expressions (which includes system commands - e.g. try “%time !ls”)

  • Callable aliases can be used to extend IPython (provide new commands) in a more elegant manner than magic commands. Also, no % is necessary/allowed. See ipy_fsops.py for examples.

  • Improved Leopard support for tab-completion, though a few issues remain.

Known issues

  • We still get crashes from KeyboardInterrupt occasionally (caused by pressing ctrl+C or ctrl+break)

  • Unicode support is not yet perfect, so expect problems on Unicode input/output.

  • The manual is hopelessly out of date. This is something we will look into during 0.8.3 cycle; in the meantime, see the documentation page on the wiki [superseded], and the user-maintained cookbook.

  • Under OSX Leopard, we are seeing some readline-related problems with history recall. It is not clear yet whether the issue is with IPython or Leopard’s readline support itself. We’re investigating the issue.