Changes between the last two releases (major or minor)
Note that this is an auto-generated diff of the ChangeLogs

2005-04-14  *** Released version 0.6.13

2005-04-08  Fernando Perez  <fperez@colorado.edu>

	* IPython/Magic.py (Magic._ofind): remove docstring evaluation
	from _ofind, which gets called on almost every input line.  Now,
	we only try to get docstrings if they are actually going to be
	used (the overhead of fetching unnecessary docstrings can be
	noticeable for certain objects, such as Pyro proxies).

	* IPython/iplib.py (MagicCompleter.python_matches): Change the API
	for completers.  For some reason I had been passing them the state
	variable, which completers never actually need, and was in
	conflict with the rlcompleter API.  Custom completers ONLY need to
	take the text parameter.

	* IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
	work correctly in pysh.  I've also moved all the logic which used
	to be in pysh.py here, which will prevent problems with future
	upgrades.  However, this time I must warn users to update their
	pysh profile to include the line

	import_all IPython.Extensions.InterpreterExec

	because otherwise things won't work for them.  They MUST also
	delete pysh.py and the line

	execfile pysh.py

	from their ipythonrc-pysh.

	* IPython/FlexCompleter.py (Completer.attr_matches): Make more
	robust in the face of objects whose dir() returns non-strings
	(which it shouldn't, but some broken libs like ITK do).  Thanks to
	a patch by John Hunter (implemented differently, though).  Also
	minor improvements by using .extend instead of + on lists.

	* pysh.py: 

2005-04-06  Fernando Perez  <fperez@colorado.edu>

	* IPython/ipmaker.py (make_IPython): Make multi_line_specials on
	by default, so that all users benefit from it.  Those who don't
	want it can still turn it off.

	* IPython/UserConfig/ipythonrc: Add multi_line_specials to the
	config file, I'd forgotten about this, so users were getting it
	off by default.

	* IPython/iplib.py (ipmagic): big overhaul of the magic system for
	consistency.  Now magics can be called in multiline statements,
	and python variables can be expanded in magic calls via $var.
	This makes the magic system behave just like aliases or !system
	calls.

2005-03-28  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (handle_auto): cleanup to use %s instead of
	expensive string additions for building command.  Add support for
	trailing ';' when autocall is used.

2005-03-26  Fernando Perez  <fperez@colorado.edu>

	* ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
	Bugfix by A. Schmolck, the ipython.el maintainer.  Also make
	ipython.el robust against prompts with any number of spaces
	(including 0) after the ':' character.

	* IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
	continuation prompt, which misled users to think the line was
	already indented.  Closes debian Bug#300847, reported to me by
	Norbert Tretkowski <tretkowski-AT-inittab.de>.

2005-03-23  Fernando Perez  <fperez@colorado.edu>

	* IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
	properly aligned if they have embedded newlines.

	* IPython/iplib.py (runlines): Add a public method to expose
	IPython's code execution machinery, so that users can run strings
	as if they had been typed at the prompt interactively.
	(InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
	methods which can call the system shell, but with python variable
	expansion.  The three such methods are: __IPYTHON__.system,
	.getoutput and .getoutputerror.  These need to be documented in a
	'public API' section (to be written) of the manual.

2005-03-20  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell.set_custom_exc): new system
	for custom exception handling.  This is quite powerful, and it
	allows for user-installable exception handlers which can trap
	custom exceptions at runtime and treat them separately from
	IPython's default mechanisms.  At the request of Frédéric
	Mantegazza <mantegazza-AT-ill.fr>.
	(InteractiveShell.set_custom_completer): public API function to
	add new completers at runtime.

2005-03-19  Fernando Perez  <fperez@colorado.edu>

	* IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
	allow objects which provide their docstrings via non-standard
	mechanisms (like Pyro proxies) to still be inspected by ipython's
	? system.

	* IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
	automatic capture system.  I tried quite hard to make it work
	reliably, and simply failed.  I tried many combinations with the
	subprocess module, but eventually nothing worked in all needed
	cases (not blocking stdin for the child, duplicating stdout
	without blocking, etc).  The new %sc/%sx still do capture to these
	magical list/string objects which make shell use much more
	conveninent, so not all is lost.

	XXX - FIX MANUAL for the change above!

	(runsource): I copied code.py's runsource() into ipython to modify
	it a bit.  Now the code object and source to be executed are
	stored in ipython.  This makes this info accessible to third-party
	tools, like custom exception handlers.  After a request by Frédéric
	Mantegazza <mantegazza-AT-ill.fr>.

	* IPython/UserConfig/ipythonrc: Add up/down arrow keys to
	history-search via readline (like C-p/C-n).  I'd wanted this for a
	long time, but only recently found out how to do it.  For users
	who already have their ipythonrc files made and want this, just
	add:

	readline_parse_and_bind "\e[A": history-search-backward
	readline_parse_and_bind "\e[B": history-search-forward

2005-03-18  Fernando Perez  <fperez@colorado.edu>

	* IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
	LSString and SList classes which allow transparent conversions
	between list mode and whitespace-separated string.
	(magic_r): Fix recursion problem in %r.

	* IPython/genutils.py (LSString): New class to be used for
	automatic storage of the results of all alias/system calls in _o
	and _e (stdout/err).  These provide a .l/.list attribute which
	does automatic splitting on newlines.  This means that for most
	uses, you'll never need to do capturing of output with %sc/%sx
	anymore, since ipython keeps this always done for you.  Note that
	only the LAST results are stored, the _o/e variables are
	overwritten on each call.  If you need to save their contents
	further, simply bind them to any other name.

2005-03-17  Fernando Perez  <fperez@colorado.edu>

	* IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
	prompt namespace handling.

2005-03-16  Fernando Perez  <fperez@colorado.edu>

	* IPython/Prompts.py (CachedOutput.__init__): Fix default and
	classic prompts to be '>>> ' (final space was missing, and it
	trips the emacs python mode).
	(BasePrompt.__str__): Added safe support for dynamic prompt
	strings.  Now you can set your prompt string to be '$x', and the
	value of x will be printed from your interactive namespace.  The
	interpolation syntax includes the full Itpl support, so
	${foo()+x+bar()} is a valid prompt string now, and the function
	calls will be made at runtime.

2005-03-15  Fernando Perez  <fperez@colorado.edu>

	* IPython/Magic.py (magic_history): renamed %hist to %history, to
	avoid name clashes in pylab.  %hist still works, it just forwards
	the call to %history.

