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.