##// END OF EJS Templates
Fix profiler stats problem with python2.5
Fix profiler stats problem with python2.5

File last commit:

Show More
6336 lines | 248.9 KiB | text/plain | TextLexer
2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_prun): Fix saving of profile info for
Python 2.5, where the stats object API changed a little. Thanks
to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
* IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
Pernetty's patch to improve support for (X)Emacs under Win32.
2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (hijack_wx): ipmort WX with current semantics
to quiet a deprecation warning that fires with Wx 2.8. Thanks to
a report by Nik Tautenhahn.
2007-03-16 Walter Doerwald <walter@livinglogic.de>
* setup.py: Add the igrid help files to the list of data files
to be installed alongside igrid.
* IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
Show the input object of the igrid browser as the window tile.
Show the object the cursor is on in the statusbar.
2007-03-15 Ville Vainio <vivainio@gmail.com>
* Extensions/ipy_stock_completers.py: Fixed exception
on mismatching quotes in %run completer. Patch by
J�rgen Stenarson. Closes #127.
2007-03-14 Ville Vainio <vivainio@gmail.com>
* Extensions/ext_rehashdir.py: Do not do auto_alias
in %rehashdir, it clobbers %store'd aliases.
* UserConfig/ipy_profile_sh.py: envpersist.py extension
(beefed up %env) imported for sh profile.
2007-03-10 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
as the default browser.
* IPython/Extensions/igrid.py: Make a few igrid attributes private.
As igrid displays all attributes it ever encounters, fetch() (which has
been renamed to _fetch()) doesn't have to recalculate the display attributes
every time a new item is fetched. This should speed up scrolling.
2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (InteractiveShell.__init__): fix for Alex
Schmolck's recently reported tab-completion bug (my previous one
had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
2007-03-09 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
Close help window if exiting igrid.
2007-03-02 J�rgen Stenarson <jorgen.stenarson@bostream.nu>
* IPython/Extensions/ipy_defaults.py: Check if readline is available
before calling functions from readline.
2007-03-02 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
igrid is a wxPython-based display object for ipipe. If your system has
wx installed igrid will be the default display. Without wx ipipe falls
back to ibrowse (which needs curses). If no curses is installed ipipe
falls back to idump.
2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (split_user_inputBROKEN): temporarily disable
my changes from yesterday, they introduced bugs. Will reactivate
once I get a correct solution, which will be much easier thanks to
Dan Milstein's new prefilter test suite.
2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (split_user_input): fix input splitting so we
don't attempt attribute accesses on things that can't possibly be
valid Python attributes. After a bug report by Alex Schmolck.
(InteractiveShell.__init__): brown-paper bag fix; regexp broke
%magic with explicit % prefix.
2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
avoid a DeprecationWarning from GTK.
2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/genutils.py (clock): I modified clock() to return total
time, user+system. This is a more commonly needed metric. I also
introduced the new clocku/clocks to get only user/system time if
one wants those instead.
***WARNING: API CHANGE*** clock() used to return only user time,
so if you want exactly the same results as before, use clocku
2007-02-22 Ville Vainio <vivainio@gmail.com>
* IPython/Extensions/ipy_p4.py: Extension for improved
p4 (perforce version control system) experience.
Adds %p4 magic with p4 command completion and
automatic -G argument (marshall output as python dict)
2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/demo.py (Demo.re_stop): make dashes optional in demo
stop marks.
(ClearingMixin): a simple mixin to easily make a Demo class clear
the screen in between blocks and have empty marquees. The
ClearDemo and ClearIPDemo classes that use it are included.
2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
protect against exceptions at Python shutdown time. Patch
sumbmitted to upstream.
2007-02-14 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py: If entering the first object level
(i.e. the object for which the browser has been started) fails,
now the error is raised directly (aborting the browser) instead of
running into an empty levels list later.
2007-02-03 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py: Add an xrepr implementation
for the noitem object.
2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/completer.py (Completer.attr_matches): Fix small
tab-completion bug with Enthought Traits objects with units.
Thanks to a bug report by Tom Denniston
2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
bug where only .ipy or .py would be completed. Once the first
argument to %run has been given, all completions are valid because
they are the arguments to the script, which may well be non-python
* IPython/irunner.py (InteractiveRunner.run_source): major updates
to irunner to allow it to correctly support real doctesting of
out-of-process ipython code.
* IPython/Magic.py (magic_cd): Make the setting of the terminal
title an option (-noterm_title) because it completely breaks
* IPython/demo.py: fix IPythonDemo class that was not actually working.
2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/irunner.py (main): fix small bug where extensions were
not being correctly recognized.
2007-01-23 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py (xiter): Make sure that iterating
a string containing a single line yields the string itself as the
only item.
* IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
object if it's the same as the one on the last level (This avoids
infinite recursion for one line strings).
2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
all output streams before printing tracebacks. This ensures that
user output doesn't end up interleaved with traceback output.
2007-01-10 Ville Vainio <vivainio@gmail.com>
* Extensions/envpersist.py: Turbocharged %env that remembers
env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
"%env VISUAL=jed".
2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (showtraceback): ensure that we correctly call
custom handlers in all cases (some with pdb were slipping through,
but I'm not exactly sure why).
* IPython/Debugger.py (Tracer.__init__): added new class to
support set_trace-like usage of IPython's enhanced debugger.
2006-12-24 Ville Vainio <vivainio@gmail.com>
* ipmaker.py: more informative message when ipy_user_conf
import fails (suggest running %upgrade).
* tools/run_ipy_in_profiler.py: Utility to see where
the time during IPython startup is spent.
2006-12-20 Ville Vainio <vivainio@gmail.com>
* 0.7.3 is out - merge all from 0.7.3 branch to trunk
* ipapi.py: Add new ipapi method, expand_alias.
* Release.py: Bump up version to 0.7.4.svn
2006-12-17 Ville Vainio <vivainio@gmail.com>
* Extensions/jobctrl.py: Fixed &cmd arg arg...
to work properly on posix too
* Release.py: Update revnum (version is still just 0.7.3).
2006-12-15 Ville Vainio <vivainio@gmail.com>
* scripts/ipython_win_post_install: create ipython.py in
prefix + "/scripts".
* Release.py: Update version to 0.7.3.
2006-12-14 Ville Vainio <vivainio@gmail.com>
* scripts/ipython_win_post_install: Overwrite old shortcuts
if they already exist
* Release.py: release 0.7.3rc2
2006-12-13 Ville Vainio <vivainio@gmail.com>
* Branch and update Release.py for 0.7.3rc1
2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (IPShellWX): update for current WX naming
conventions, to avoid a deprecation warning with current WX
versions. Thanks to a report by Danny Shevitz.
2006-12-12 Ville Vainio <vivainio@gmail.com>
* ipmaker.py: apply david cournapeau's patch to make
import_some work properly even when ipythonrc does
import_some on empty list (it was an old bug!).
* UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
Add deprecation note to ipythonrc and a url to wiki
in ipy_user_conf.py
* Magic.py (%run): %run myscript.ipy now runs myscript.ipy
as if it was typed on IPython command prompt, i.e.
as IPython script.
* example-magic.py, magic_grepl.py: remove outdated examples
2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (debugger): prevent a nasty traceback if %debug
is called before any exception has occurred.
2006-12-08 Ville Vainio <vivainio@gmail.com>
* Extensions/ipy_stock_completers.py: fix cd completer
to translate /'s to \'s again.
* completer.py: prevent traceback on file completions w/
* Release.py: Update release number to 0.7.3b3 for release
2006-12-07 Ville Vainio <vivainio@gmail.com>
* Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
while executing external code. Provides more shell-like behaviour
and overall better response to ctrl + C / ctrl + break.
* tools/make_tarball.py: new script to create tarball straight from svn
(setup.py sdist doesn't work on win32).
* Extensions/ipy_stock_completers.py: fix cd completer to give up
on dirnames with spaces and use the default completer instead.
* Revision.py: Change version to 0.7.3b2 for release.
2006-12-05 Ville Vainio <vivainio@gmail.com>
* Magic.py, iplib.py, completer.py: Apply R. Bernstein's
pydb patch 4 (rm debug printing, py 2.5 checking)
2006-11-30 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
"refresh" (mapped to "r") refreshes the screen by restarting the iterator.
"refreshfind" (mapped to "R") does the same but tries to go back to the same
object the cursor was on before the refresh. The command "markrange" is
mapped to "%" now.
* IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_debug): new %debug magic to activate the
interactive debugger on the last traceback, without having to call
%pdb and rerun your code. Made minor changes in various modules,
should automatically recognize pydb if available.
2006-11-28 Ville Vainio <vivainio@gmail.com>
* completer.py: If the text start with !, show file completions
properly. This helps when trying to complete command name
for shell escapes.
2006-11-27 Ville Vainio <vivainio@gmail.com>
* ipy_stock_completers.py: bzr completer submitted by Stefan van
der Walt. Clean up svn and hg completers by using a common
2006-11-26 Ville Vainio <vivainio@gmail.com>
* Remove ipconfig and %config; you should use _ip.options structure
directly instead!
* genutils.py: add wrap_deprecated function for deprecating callables
* iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
_ip.system instead. ipalias is redundant.
* Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
win32, but just 'cmdname'. Other extensions (non-'exe') are still made
* ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
completer. Try it by entering 'hg ' and pressing tab.
* macro.py: Give Macro a useful __repr__ method
* Magic.py: %whos abbreviates the typename of Macro for brevity.
2006-11-24 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
we don't get a duplicate ipipe module, where registration of the xrepr
implementation for Text is useless.
* IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
* IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
2006-11-24 Ville Vainio <vivainio@gmail.com>
* Magic.py, manual_base.lyx: Kirill Smelkov patch:
try to use "cProfile" instead of the slower pure python
2006-11-23 Ville Vainio <vivainio@gmail.com>
* manual_base.lyx: Kirill Smelkov patch: Fix wrong
Qt+IPython+Designer link in documentation.
* Extensions/ipy_pydb.py: R. Bernstein's patch for passing
correct Pdb object to %pydb.
2006-11-22 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/astyle.py: Text needs it's own implemenation of the
generic xrepr(), otherwise the list implementation would kick in.
2006-11-21 Ville Vainio <vivainio@gmail.com>
* upgrade_dir.py: Now actually overwrites a nonmodified user file
with one from UserConfig.
* ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
it was missing which broke the sh profile.
* completer.py: file completer now uses explicit '/' instead
of os.path.join, expansion of 'foo' was broken on win32
if there was one directory with name 'foobar'.
* A bunch of patches from Kirill Smelkov:
* [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
* [patch 7/9] Implement %page -r (page in raw mode) -
* [patch 5/9] ScientificPython webpage has moved
* [patch 4/9] The manual mentions %ds, should be %dhist
* [patch 3/9] Kill old bits from %prun doc.
* [patch 1/9] Fix typos here and there.
2006-11-08 Ville Vainio <vivainio@gmail.com>
* completer.py (attr_matches): catch all exceptions raised
by eval of expr with dots.
2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
input if it starts with whitespace. This allows you to paste
indented input from any editor without manually having to type in
the 'if 1:', which is convenient when working interactively.
Slightly modifed version of a patch by Bo Peng
2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/irunner.py (main): modified irunner so it automatically
recognizes the right runner to use based on the extension (.py for
python, .ipy for ipython and .sage for sage).
* IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
visible in ipapi as ip.config(), to programatically control the
internal rc object. There's an accompanying %config magic for
interactive use, which has been enhanced to match the
funtionality in ipconfig.
* IPython/Magic.py (magic_system_verbose): Change %system_verbose
so it's not just a toggle, it now takes an argument. Add support
for a customizable header when making system calls, as the new
system_header variable in the ipythonrc file.
2006-11-03 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
generic functions (using Philip J. Eby's simplegeneric package).
This makes it possible to customize the display of third-party classes
without having to monkeypatch them. xiter() no longer supports a mode
argument and the XMode class has been removed. The same functionality can
be implemented via IterAttributeDescriptor and IterMethodDescriptor.
One consequence of the switch to generic functions is that xrepr() and
xattrs() implementation must define the default value for the mode
argument themselves and xattrs() implementations must return real
* IPython/external: This new subpackage will contain all third-party
packages that are bundled with IPython. (The first one is simplegeneric).
* IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
directory which as been dropped in r1703.
* IPython/Extensions/ipipe.py (iless): Fixed.
* IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (InteractiveShell.var_expand): fix stack
handling in variable expansion so that shells and magics recognize
function local scopes correctly. Bug reported by Brian.
* scripts/ipython: remove the very first entry in sys.path which
Python auto-inserts for scripts, so that sys.path under IPython is
as similar as possible to that under plain Python.
* IPython/completer.py (IPCompleter.file_matches): Fix
tab-completion so that quotes are not closed unless the completion
is unambiguous. After a request by Stefan. Minor cleanups in
2006-11-02 Ville Vainio <vivainio@gmail.com>
* ipy_stock_completers.py: Add %run and %cd completers.
* completer.py: Try running custom completer for both
"foo" and "%foo" if the command is just "foo". Ignore case
when filtering possible completions.
* UserConfig/ipy_user_conf.py: install stock completers as default
* iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
simplified readline history save / restore through a wrapper
2006-10-31 Ville Vainio <vivainio@gmail.com>
* strdispatch.py, completer.py, ipy_stock_completers.py:
Allow str_key ("command") in completer hooks. Implement
trivial completer for 'import' (stdlib modules only). Rename
ipy_linux_package_managers.py to ipy_stock_completers.py.
SVN completer.
* Extensions/ledit.py: %magic line editor for easily and
incrementally manipulating lists of strings. The magic command
name is %led.
2006-10-30 Ville Vainio <vivainio@gmail.com>
* Debugger.py, iplib.py (debugger()): Add last set of Rocky
Bernsteins's patches for pydb integration.
* strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
Extensions/ipy_linux_package_managers.py, hooks.py: Implement
custom completer hook to allow the users to implement their own
completers. See ipy_linux_package_managers.py for example. The
hook name is 'complete_command'.
2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
Numeric leftovers.
* ipython.el (py-execute-region): apply Stefan's patch to fix
garbled results if the python shell hasn't been previously started.
* IPython/genutils.py (arg_split): moved to genutils, since it's a
pretty generic function and useful for other things.
* IPython/OInspect.py (getsource): Add customizable source
extractor. After a request/patch form W. Stein (SAGE).
* IPython/irunner.py (InteractiveRunner.run_source): reset tty
window size to a more reasonable value from what pexpect does,
since their choice causes wrapping bugs with long input lines.
2006-10-28 Ville Vainio <vivainio@gmail.com>
* Magic.py (%run): Save and restore the readline history from
file around %run commands to prevent side effects from
%runned programs that might use readline (e.g. pydb).
* extensions/ipy_pydb.py: Adds %pydb magic when imported, for
invoking the pydb enhanced debugger.
2006-10-23 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py (ifile): Remove all methods that
call the base class method and propagate the return value to
ifile. This is now done by path itself.
2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/ipapi.py (IPApi.__init__): Added new entry to public
api: set_crash_handler(), to expose the ability to change the
internal crash handler.
* IPython/CrashHandler.py (CrashHandler.__init__): abstract out
the various parameters of the crash handler so that apps using
IPython as their engine can customize crash handling. Ipmlemented
at the request of SAGE.
2006-10-14 Ville Vainio <vivainio@gmail.com>
* Magic.py, ipython.el: applied first "safe" part of Rocky
Bernstein's patch set for pydb integration.
* Magic.py (%unalias, %alias): %store'd aliases can now be
removed with '%unalias'. %alias w/o args now shows most
interesting (stored / manually defined) aliases last
where they catch the eye w/o scrolling.
* Magic.py (%rehashx), ext_rehashdir.py: files with
'py' extension are always considered executable, even
when not in PATHEXT environment variable.
2006-10-12 Ville Vainio <vivainio@gmail.com>
* jobctrl.py: Add new "jobctrl" extension for spawning background
processes with "&find /". 'import jobctrl' to try it out. Requires
'subprocess' module, standard in python 2.4+.
* iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
so if foo -> bar and bar -> baz, then foo -> baz.
2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (Magic.parse_options): add a new posix option
to allow parsing of input args in magics that doesn't strip quotes
(if posix=False). This also closes %timeit bug reported by
2006-10-03 Ville Vainio <vivainio@gmail.com>
* iplib.py (raw_input, interact): Return ValueError catching for
raw_input. Fixes infinite loop for sys.stdin.close() or
2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/irunner.py (InteractiveRunner.run_source): small fixes
to help in handling doctests. irunner is now pretty useful for
running standalone scripts and simulate a full interactive session
in a format that can be then pasted as a doctest.
* IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
on top of the default (useless) ones. This also fixes the nasty
way in which 2.5's Quitter() exits (reverted [1785]).
* IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
* IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
color scheme is updated as well when color scheme is changed
2006-09-27 Ville Vainio <vivainio@gmail.com>
* iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
infinite loop and just exit. It's a hack, but will do for a while.
2006-08-25 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
the constructor, this makes it possible to get a list of only directories
or only files.
2006-08-12 Ville Vainio <vivainio@gmail.com>
* Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
they broke unittest
2006-08-11 Ville Vainio <vivainio@gmail.com>
* Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
by resolving issue properly, i.e. by inheriting FakeModule
from types.ModuleType. Pickling ipython interactive data
should still work as usual (testing appreciated).
2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/OInspect.py: monkeypatch inspect from the stdlib if
running under python 2.3 with code from 2.4 to fix a bug with
help(). Reported by the Debian maintainers, Norbert Tretkowski
<norbert-AT-tretkowski.de> and Alexandre Fayolle
2006-08-04 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py: Fixed the help message in the footer
(which was displaying "quit" twice).
2006-07-28 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
the mode argument).
2006-07-27 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py: Fix getglobals() if we're
not running under IPython.
* IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
and make it iterable (iterating over the attribute itself). Add two new
magic strings for __xattrs__(): If the string starts with "-", the attribute
will not be displayed in ibrowse's detail view (but it can still be
iterated over). This makes it possible to add attributes that are large
lists or generator methods to the detail view. Replace magic attribute names
and _attrname() and _getattr() with "descriptors": For each type of magic
attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
"foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
"-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
are still supported.
* IPython/Extensions/ibrowse.py: If fetching the next row from the input
fails in ibrowse.fetch(), the exception object is added as the last item
and item fetching is canceled. This prevents ibrowse from aborting if e.g.
a generator throws an exception midway through execution.
* IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
encoding into methods.
2006-07-26 Ville Vainio <vivainio@gmail.com>
* iplib.py: history now stores multiline input as single
history entries. Patch by Jorgen Cederlof.
2006-07-18 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py: Make cursor visible over
non existing attributes.
2006-07-14 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
error output of the running command doesn't mess up the screen.
2006-07-13 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py (isort): Make isort usable without
argument. This sorts the items themselves.
2006-07-12 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
Compile expression strings into code objects. This should speed
up ifilter and friends somewhat.
2006-07-08 Ville Vainio <vivainio@gmail.com>
* Magic.py: %cpaste now strips > from the beginning of lines
to ease pasting quoted code from emails. Contributed by
Stefan van der Walt.
2006-06-29 Ville Vainio <vivainio@gmail.com>
* ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
mode, patch contributed by Darren Dale. NEEDS TESTING!
2006-06-28 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
a blue background. Fix fetching new display rows when the browser
scrolls more than a screenful (e.g. by using the goto command).
2006-06-27 Ville Vainio <vivainio@gmail.com>
* Magic.py (_inspect, _ofind) Apply David Huard's
patch for displaying the correct docstring for 'property'
2006-06-23 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
commands into the methods implementing them.
2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
* ipython.el (ipython-indentation-hook): cleanup patch, submitted
by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
autoindent support was authored by Jin Liu.
2006-06-22 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
for keymaps with a custom class that simplifies handling.
2006-06-19 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
resizing. This requires Python 2.5 to work.
2006-06-16 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py: Add two new commands to
ibrowse: "hideattr" (mapped to "h") hides the attribute under
the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
attributes again. Remapped the help command to "?". Display
keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
as keys for the "home" and "end" commands. Add three new commands
to the input mode for "find" and friends: "delend" (CTRL-K)
deletes to the end of line. "incsearchup" searches upwards in the
command history for an input that starts with the text before the cursor.
"incsearchdown" does the same downwards. Removed a bogus mapping of
the x key to "delete".
2006-06-15 Ville Vainio <vivainio@gmail.com>
* iplib.py, hooks.py: Added new generate_prompt hook that can be
used to create prompts dynamically, instead of the "old" way of
assigning "magic" strings to prompt_in1 and prompt_in2. The old
way still works (it's invoked by the default hook), of course.
* Prompts.py: added generate_output_prompt hook for altering output
* Release.py: Changed version string to 0.7.3.svn.
2006-06-15 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
the call to fetch() always tries to fetch enough data for at least one
full screen. This makes it possible to simply call moveto(0,0,True) in
the constructor. Fix typos and removed the obsolete goto attribute.
2006-06-12 Ville Vainio <vivainio@gmail.com>
* ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
allowing $variable interpolation within multiline statements,
though so far only with "sh" profile for a testing period.
The patch also enables splitting long commands with \ but it
doesn't work properly yet.
2006-06-12 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
input history and the position of the cursor in the input history for
the find, findbackwards and goto command.
2006-06-10 Walter Doerwald <walter@livinglogic.de>
* IPython/Extensions/ibrowse.py: Add a class _CommandInput that
implements the basic functionality of browser commands that require
input. Reimplement the goto, find and findbackwards commands as
subclasses of _CommandInput. Add an input history and keymaps to those
commands. Add "\r" as a keyboard shortcut for the enterdefault and
execute commands.
2006-06-07 Ville Vainio <vivainio@gmail.com>
* iplib.py: ipython mybatch.ipy exits ipython immediately after
running the batch files instead of leaving the session open.
2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
the original fix was incomplete. Patch submitted by W. Maier.
2006-06-07 Ville Vainio <vivainio@gmail.com>
* iplib.py,Magic.py, ipmaker.py (magic_rehashx):
Confirmation prompts can be supressed by 'quiet' option.
_ip.options.quiet = 1 means "assume yes for all yes/no queries".
2006-06-06 *** Released version 0.7.2
2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Release.py (version): Made 0.7.2 final for release.
Repo tagged and release cut.
2006-06-05 Ville Vainio <vivainio@gmail.com>
* Magic.py (magic_rehashx): Honor no_alias list earlier in
%rehashx, to avoid clobbering builtins in ipy_profile_sh.py
* upgrade_dir.py: try import 'path' module a bit harder
(for %upgrade)
2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/genutils.py (ask_yes_no): treat EOF as a default answer
instead of looping 20 times.
* IPython/ipmaker.py (make_IPython): honor -ipythondir flag
correctly at initialization time. Bug reported by Krishna Mohan
Gundu <gkmohan-AT-gmail.com> on the user list.
* IPython/Release.py (version): Mark 0.7.2 version to start
testing for release on 06/06.
2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
* scripts/irunner: thin script interface so users don't have to
find the module and call it as an executable, since modules rarely
live in people's PATH.
* IPython/irunner.py (InteractiveRunner.__init__): added
delaybeforesend attribute to control delays with newer versions of
pexpect. Thanks to detailed help from pexpect's author, Noah
Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
correctly (it works in NoColor mode).
* IPython/iplib.py (handle_normal): fix nasty crash reported on
SAGE list, from improper log() calls.
2006-05-31 Ville Vainio <vivainio@gmail.com>
* upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
with args in parens to work correctly with dirs that have spaces.
2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Logger.py (Logger.logstart): add option to log raw input
instead of the processed one. A -r flag was added to the
%logstart magic used for controlling logging.
2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (InteractiveShell.__init__): add check for the
*BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
recognize the option. After a bug report by Will Maier. This
closes #64 (will do it after confirmation from W. Maier).
* IPython/irunner.py: New module to run scripts as if manually
typed into an interactive environment, based on pexpect. After a
submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
ipython-user list. Simple unittests in the tests/ directory.
* tools/release: add Will Maier, OpenBSD port maintainer, to
recepients list. We are now officially part of the OpenBSD ports:
http://www.openbsd.org/ports.html ! Many thanks to Will for the
2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
so that it doesn't break tkinter apps.
* IPython/iplib.py (_prefilter): fix bug where aliases would
shadow variables when autocall was fully off. Reported by SAGE
author William Stein.
* IPython/OInspect.py (Inspector.__init__): add a flag to control
at what detail level strings are computed when foo? is requested.
This allows users to ask for example that the string form of an
object is only computed when foo?? is called, or even never, by
setting the object_info_string_level >= 2 in the configuration
file. This new option has been added and documented. After a
request by SAGE to be able to control the printing of very large
objects more easily.
2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/ipmaker.py (make_IPython): remove the ipython call path
from sys.argv, to be 100% consistent with how Python itself works
(as seen for example with python -i file.py). After a bug report
by Jeffrey Collins.
* IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
nasty bug which was preventing custom namespaces with -pylab,
reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
compatibility (long gone from mpl).
* IPython/ipapi.py (make_session): name change: create->make. We
use make in other places (ipmaker,...), it's shorter and easier to
type and say, etc. I'm trying to clean things before 0.7.2 so
that I can keep things stable wrt to ipapi in the chainsaw branch.
* ipython.el: fix the py-pdbtrack-input-prompt variable so that
python-mode recognizes our debugger mode. Add support for
autoindent inside (X)emacs. After a patch sent in by Jin Liu
<m.liu.jin-AT-gmail.com> originally written by
doxgen-AT-newsmth.net (with minor modifications for xemacs
* IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
tracebacks when walking the stack so that the stack tracking system
in emacs' python-mode can identify the frames correctly.
* IPython/ipmaker.py (make_IPython): make the internal (and
default config) autoedit_syntax value false by default. Too many
users have complained to me (both on and off-list) about problems
with this option being on by default, so I'm making it default to
off. It can still be enabled by anyone via the usual mechanisms.
* IPython/completer.py (Completer.attr_matches): add support for
PyCrust-style _getAttributeNames magic method. Patch contributed
by <mscott-AT-goldenspud.com>. Closes #50.
* IPython/iplib.py (InteractiveShell.__init__): remove the
deletion of exit/quit from __builtin__, which can break
third-party tools like the Zope debugging console. The
%exit/%quit magics remain. In general, it's probably a good idea
not to delete anything from __builtin__, since we never know what
that will break. In any case, python now (for 2.5) will support
'real' exit/quit, so this issue is moot. Closes #55.
* IPython/genutils.py (with_obj): rename the 'with' function to
'withobj' to avoid incompatibilities with Python 2.5, where 'with'
becomes a language keyword. Closes #53.
* IPython/FakeModule.py (FakeModule.__init__): add a proper
__file__ attribute to this so it fools more things into thinking
it is a real module. Closes #59.
* IPython/Magic.py (magic_edit): add -n option to open the editor
at a specific line number. After a patch by Stefan van der Walt.
2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (edit_syntax_error): fix crash when for some
reason the file could not be opened. After automatic crash
reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
(_should_recompile): Don't fire editor if using %bg, since there
is no file in the first place. From the same report as above.
(raw_input): protect against faulty third-party prefilters. After
an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
while running under SAGE.
2006-05-23 Ville Vainio <vivainio@gmail.com>
* ipapi.py: Stripped down ip.to_user_ns() to work only as
ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
now returns None (again), unless dummy is specifically allowed by
2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython: remove all 2.2-compatibility objects and hacks from
everywhere, since we only support 2.3 at this point. Docs
* IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
Anything requiring extra validation can be turned into a Python
property in the future. I used a property for the db one b/c
there was a nasty circularity problem with the initialization
order, which right now I don't have time to clean up.
* IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
another locking bug reported by Jorgen. I'm not 100% sure though,
so more testing is needed...
2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/ipapi.py (IPApi.to_user_ns): New function to inject
local variables from any routine in user code (typically executed
with %run) directly into the interactive namespace. Very useful
when doing complex debugging.
(IPythonNotRunning): Changed the default None object to a dummy
whose attributes can be queried as well as called without
exploding, to ease writing code which works transparently both in
and out of ipython and uses some of this API.
2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/hooks.py (result_display): Fix the fact that our display
hook was using str() instead of repr(), as the default python
console does. This had gone unnoticed b/c it only happened if
%Pprint was off, but the inconsistency was there.
2006-05-15 Ville Vainio <vivainio@gmail.com>
* Oinspect.py: Only show docstring for nonexisting/binary files
when doing object??, closing ticket #62
2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
was being released in a routine which hadn't checked if it had
been the one to acquire it.
2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2006-04-11 Ville Vainio <vivainio@gmail.com>
* iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
prefilters, allowing stuff like magics and aliases in the file.
* Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
added. Supported now are "%clear in" and "%clear out" (clear input and
output history, respectively). Also fixed CachedOutput.flush to
properly flush the output cache.
* Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
half-success (and fail explicitly).
2006-03-28 Ville Vainio <vivainio@gmail.com>
* iplib.py: Fix quoting of aliases so that only argless ones
are quoted
2006-03-28 Ville Vainio <vivainio@gmail.com>
* iplib.py: Quote aliases with spaces in the name.
"c:\program files\blah\bin" is now legal alias target.
* ext_rehashdir.py: Space no longer allowed as arg
separator, since space is legal in path names.
2006-03-16 Ville Vainio <vivainio@gmail.com>
* upgrade_dir.py: Take path.py from Extensions, correcting
%upgrade magic
* ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
* hooks.py: Only enclose editor binary in quotes if legal and
necessary (space in the name, and is an existing file). Fixes a bug
reported by Zachary Pincus.
2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
* Manual: thanks to a tip on proper color handling for Emacs, by
Eric J Haywiser <ejh1-AT-MIT.EDU>.
* ipython.el: close http://www.scipy.net/roundup/ipython/issue57
by applying the provided patch. Thanks to Liu Jin
<m.liu.jin-AT-gmail.com> for the contribution. No problems under
XEmacs/Linux, I'm trusting the submitter that it actually helps
under win32/GNU Emacs. Will revisit if any problems are reported.
2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2006-03-12 Ville Vainio <vivainio@gmail.com>
* Magic.py (magic_timeit): Added %timeit magic, contributed by
Torsten Marek.
2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
line ranges works again.
2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (showtraceback): add back sys.last_traceback
and friends, after a discussion with Zach Pincus on ipython-user.
I'm not 100% sure, but after thinking about it quite a bit, it may
be OK. Testing with the multithreaded shells didn't reveal any
problems, but let's keep an eye out.
In the process, I fixed a few things which were calling
self.InteractiveTB() directly (like safe_execfile), which is a
mistake: ALL exception reporting should be done by calling
self.showtraceback(), which handles state and tab-completion and
2006-03-01 Ville Vainio <vivainio@gmail.com>
* Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
To use, do "from ipipe import *".
2006-02-24 Ville Vainio <vivainio@gmail.com>
* Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
"cleanly" and safely than the older upgrade mechanism.
2006-02-21 Ville Vainio <vivainio@gmail.com>
* Magic.py: %save works again.
2006-02-15 Ville Vainio <vivainio@gmail.com>
* Magic.py: %Pprint works again
* Extensions/ipy_sane_defaults.py: Provide everything provided
in default ipythonrc, to make it possible to have a completely empty
ipythonrc (and thus completely rc-file free configuration)
2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/hooks.py (editor): quote the call to the editor command,
to allow commands with spaces in them. Problem noted by watching
Ian Oswald's video about textpad under win32 at
* IPython/UserConfig/ipythonrc: Replace @ signs with % when
describing magics (we haven't used @ for a loong time).
* IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
contributed by marienz to close
2006-02-10 Ville Vainio <vivainio@gmail.com>
* genutils.py: getoutput now works in win32 too
* completer.py: alias and magic completion only invoked
at the first "item" in the line, to avoid "cd %store"
2006-02-09 Ville Vainio <vivainio@gmail.com>
* test/*: Added a unit testing framework (finally).
'%run runtests.py' to run test_*.
* ipapi.py: Exposed runlines and set_custom_exc
2006-02-07 Ville Vainio <vivainio@gmail.com>
* iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
instead use "f(1 2)" as before.
2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/demo.py (IPythonDemo): Add new classes to the demo
facilities, for demos processed by the IPython input filter
(IPythonDemo), and for running a script one-line-at-a-time as a
demo, both for pure Python (LineDemo) and for IPython-processed
input (IPythonLineDemo). After a request by Dave Kohel, from the
SAGE team.
(Demo.edit): added an edit() method to the demo objects, to edit
the in-memory copy of the last executed block.
* IPython/Magic.py (magic_edit): add '-r' option for 'raw'
processing to %edit, %macro and %save. These commands can now be
invoked on the unprocessed input as it was typed by the user
(without any prefilters applied). After requests by the SAGE team
at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2006-02-01 Ville Vainio <vivainio@gmail.com>
* setup.py, eggsetup.py: easy_install ipython==dev works
correctly now (on Linux)
* ipy_user_conf,ipmaker: user config changes, removed spurious
* iplib: if rc.banner is string, use it as is.
* Magic: %pycat accepts a string argument and pages it's contents.
2006-01-30 Ville Vainio <vivainio@gmail.com>
* pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
Now %store and bookmarks work through PickleShare, meaning that
concurrent access is possible and all ipython sessions see the
same database situation all the time, instead of snapshot of
the situation when the session was started. Hence, %bookmark
results are immediately accessible from othes sessions. The database
is also available for use by user extensions. See:
* hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
* aliases can now be %store'd
* path.py moved to Extensions so that pickleshare does not need
IPython-specific import. Extensions added to pythonpath right
at __init__.
* iplib.py: ipalias deprecated/redundant; aliases are converted and
called with _ip.system and the pre-transformed command string.
2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (interact): Fix that we were not catching
KeyboardInterrupt exceptions properly. I'm not quite sure why the
logic here had to change, but it's fixed now.
2006-01-29 Ville Vainio <vivainio@gmail.com>
* iplib.py: Try to import pyreadline on Windows.
2006-01-27 Ville Vainio <vivainio@gmail.com>
* iplib.py: Expose ipapi as _ip in builtin namespace.
Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
and ip_set_hook (-> _ip.set_hook) redundant. % and !
syntax now produce _ip.* variant of the commands.
* "_ip.options().autoedit_syntax = 2" automatically throws
user to editor for syntax error correction without prompting.
2006-01-27 Ville Vainio <vivainio@gmail.com>
* ipmaker.py: Give "realistic" sys.argv for scripts (without
'ipython' at argv[0]) executed through command line.
NOTE: this DEPRECATES calling ipython with multiple scripts
("ipython a.py b.py c.py")
* iplib.py, hooks.py: Added configurable input prefilter,
named 'input_prefilter'. See ext_rescapture.py for example
* ext_rescapture.py, Magic.py: Better system command output capture
through 'var = !ls' (deprecates user-visible %sc). Same notation
applies for magics, 'var = %alias' assigns alias list to var.
* ipapi.py: added meta() for accessing extension-usable data store.
* iplib.py: added InteractiveShell.getapi(). New magics should be
written doing self.getapi() instead of using the shell directly.
* Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
%store foo >> ~/myfoo.txt to store variables to files (in clean
textual form, not a restorable pickle).
* ipmaker.py: now import ipy_profile_PROFILENAME automatically
* usage.py, Magic.py: added %quickref
* iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
* GetoptErrors when invoking magics etc. with wrong args
are now more helpful:
GetoptError: option -l not recognized (allowed: "qb" )
2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/demo.py (Demo.show): Flush stdout after each block, so
computationally intensive blocks don't appear to stall the demo.
2006-01-24 Ville Vainio <vivainio@gmail.com>
* iplib.py, hooks.py: 'result_display' hook can return a non-None
value to manipulate resulting history entry.
* ipapi.py: Moved TryNext here from hooks.py. Moved functions
to instance methods of IPApi class, to make extending an embedded
IPython feasible. See ext_rehashdir.py for example usage.
* Merged 1071-1076 from branches/0.7.1
2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
* tools/release (daystamp): Fix build tools to use the new
eggsetup.py script to build lightweight eggs.
* Applied changesets 1062 and 1064 before 0.7.1 release.
* IPython/Magic.py (magic_history): Add '-r' option to %hist, to
see the raw input history (without conversions like %ls ->
ipmagic("ls")). After a request from W. Stein, SAGE
(http://modular.ucsd.edu/sage) developer. This information is
stored in the input_hist_raw attribute of the IPython instance, so
developers can access it if needed (it's an InputList instance).
* Versionstring = 0.7.2.svn
* eggsetup.py: A separate script for constructing eggs, creates
proper launch scripts even on Windows (an .exe file in
* ipapi.py: launch_new_instance, launch entry point needed for the
2006-01-23 Ville Vainio <vivainio@gmail.com>
* Added %cpaste magic for pasting python code
2006-01-22 Ville Vainio <vivainio@gmail.com>
* Merge from branches/0.7.1 into trunk, revs 1052-1057
* Versionstring = 0.7.2.svn
* eggsetup.py: A separate script for constructing eggs, creates
proper launch scripts even on Windows (an .exe file in
* ipapi.py: launch_new_instance, launch entry point needed for the
2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
%pfile foo would print the file for foo even if it was a binary.
Now, extensions '.so' and '.dll' are skipped.
* IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
bug, where macros would fail in all threaded modes. I'm not 100%
sure, so I'm going to put out an rc instead of making a release
today, and wait for feedback for at least a few days.
* IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
it...) the handling of pasting external code with autoindent on.
To get out of a multiline input, the rule will appear for most
users unchanged: two blank lines or change the indent level
proposed by IPython. But there is a twist now: you can
add/subtract only *one or two spaces*. If you add/subtract three
or more (unless you completely delete the line), IPython will
accept that line, and you'll need to enter a second one of pure
whitespace. I know it sounds complicated, but I can't find a
different solution that covers all the cases, with the right
heuristics. Hopefully in actual use, nobody will really notice
all these strange rules and things will 'just work'.
2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (interact): catch exceptions which can be
triggered asynchronously by signal handlers. Thanks to an
automatic crash report, submitted by Colin Kingsley
2006-01-20 Ville Vainio <vivainio@gmail.com>
* Ipython/Extensions/ext_rehashdir.py: Created a usable example
(%rehashdir, very useful, try it out) of how to extend ipython
with new magics. Also added Extensions dir to pythonpath to make
importing extensions easy.
* %store now complains when trying to store interactively declared
classes / instances of those classes.
* Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
if they exist, and ipy_user_conf.py with some defaults is created for
the user.
* Startup rehashing done by the config file, not InterpreterExec.
This means system commands are available even without selecting the
pysh profile. It's the sensible default after all.
2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (raw_input): I _think_ I got the pasting of
multiline code with autoindent on working. But I am really not
sure, so this needs more testing. Will commit a debug-enabled
version for now, while I test it some more, so that Ville and
others may also catch any problems. Also made
self.indent_current_str() a method, to ensure that there's no
chance of the indent space count and the corresponding string
falling out of sync. All code needing the string should just call
the method.
2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_edit): fix check for when users don't
save their output files, the try/except was in the wrong section.
2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_run): fix __file__ global missing from
script's namespace when executed via %run. After a report by
* IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
when using python 2.4. The parent constructor changed in 2.4, and
we need to track it directly (we can't call it, as it messes up
readline and tab-completion inside our pdb would stop working).
After a bug report by R. Bernstein <rocky-AT-panix.com>.
2006-01-16 Ville Vainio <vivainio@gmail.com>
* Ipython/magic.py: Reverted back to old %edit functionality
that returns file contents on exit.
* IPython/path.py: 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
* Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
now work again without considering the exclusion regexp -
hence, things like ',foo my/path' turn to 'foo("my/path")'
instead of syntax error.
2006-01-14 Ville Vainio <vivainio@gmail.com>
* IPython/ipapi.py (ashook, asmagic, options): Added convenience
ipapi decorators for python 2.4 users, options() provides access to rc
* IPython/Magic.py (magic_cd): %cd now accepts backslashes
as path separators (even on Linux ;-). Space character after
backslash (as yielded by tab completer) is still space;
"%cd long\ name" works as expected.
* IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
as "chain of command", with priority. API stays the same,
TryNext exception raised by a hook function signals that
current hook failed and next hook should try handling it, as
suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
requested configurable display hook, which is now implemented.
2006-01-13 Ville Vainio <vivainio@gmail.com>
* IPython/platutils*.py: platform specific utility functions,
so far only set_term_title is implemented (change terminal
label in windowing systems). %cd now changes the title to
current dir.
* IPython/Release.py: Added myself to "authors" list,
had to create new files.
* IPython/iplib.py (handle_shell_escape): fixed logical flaw in
shell escape; not a known bug but had potential to be one in the
* IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
extension API for IPython! See the module for usage example. Fix
OInspect for docstring-less magic functions.
2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (raw_input): temporarily deactivate all
attempts at allowing pasting of code with autoindent on. It
introduced bugs (reported by Prabhu) and I can't seem to find a
robust combination which works in all cases. Will have to revisit
* IPython/genutils.py: remove isspace() function. We've dropped
2.2 compatibility, so it's OK to use the string method.
2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (InteractiveShell.__init__): fix regexp
matching what NOT to autocall on, to include all python binary
operators (including things like 'and', 'or', 'is' and 'in').
Prompted by a bug report on 'foo & bar', but I realized we had
many more potential bug cases with other operators. The regexp is
self.re_exclude_auto, it's fairly commented.
2006-01-12 Ville Vainio <vivainio@gmail.com>
* IPython/iplib.py (make_quoted_expr,handle_shell_escape):
Prettified and hardened string/backslash quoting with ipsystem(),
ipalias() and ipmagic(). Now even \ characters are passed to
%magics, !shell escapes and aliases exactly as they are in the
ipython command line. Should improve backslash experience,
particularly in Windows (path delimiter for some commands that
won't understand '/'), but Unix benefits as well (regexps). %cd
magic still doesn't support backslash path delimiters, though. Also
deleted all pretense of supporting multiline command strings in
!system or %magic commands. Thanks to Jerry McRae for suggestions.
* doc/build_doc_instructions.txt added. Documentation on how to
use doc/update_manual.py, added yesterday. Both files contributed
by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
doc/*.sh for deprecation at a later date.
* /ipython.py Added ipython.py to root directory for
zero-installation (tar xzvf ipython.tgz; cd ipython; python
ipython.py) and development convenience (no need to keep doing
"setup.py install" between changes).
* Made ! and !! shell escapes work (again) in multiline expressions:
if 1:
2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/ipstruct.py (Struct): Rename IPython.Struct to
IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
module in case-insensitive installation. Was causing crashes
under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
* IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
<marienz-AT-gentoo.org>, closes
2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
problem of excessive CPU usage under *nix and keyboard lag under
2006-01-10 *** Released version 0.7.0
2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Release.py (revision): tag version number to 0.7.0,
ready for release.
* IPython/Magic.py (magic_edit): Add print statement to %edit so
it informs the user of the name of the temp. file used. This can
help if you decide later to reuse that same file, so you know
where to copy the info from.
2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
* setup_bdist_egg.py: little script to build an egg. Added
support in the release tools as well.
2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (IPShellWX.__init__): add support for WXPython
version selection (new -wxversion command line and ipythonrc
parameter). Patch contributed by Arnd Baecker
* IPython/iplib.py (embed_mainloop): fix tab-completion in
embedded instances, for variables defined at the interactive
prompt of the embedded ipython. Reported by Arnd.
* IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
it can be used as a (stateful) toggle, or with a direct parameter.
* IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
could be triggered in certain cases and cause the traceback
printer not to work.
2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (_should_recompile): Small fix, closes
http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
Moad for help with tracking it down.
* IPython/iplib.py (handle_auto): fix autocall handling for
objects which support BOTH __getitem__ and __call__ (so that f [x]
is left alone, instead of becoming f([x]) automatically).
* IPython/Magic.py (magic_cd): fix crash when cd -b was used.
Ville's patch.
2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (handle_auto): changed autocall semantics to
include 'smart' mode, where the autocall transformation is NOT
applied if there are no arguments on the line. This allows you to
just type 'foo' if foo is a callable to see its internal form,
instead of having it called with no arguments (typically a
mistake). The old 'full' autocall still exists: for that, you
need to set the 'autocall' parameter to 2 in your ipythonrc file.
* IPython/completer.py (Completer.attr_matches): add
tab-completion support for Enthoughts' traits. After a report by
Arnd and a patch by Prabhu.
2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/ultraTB.py (_fixed_getinnerframes): added Alex
Schmolck's patch to fix inspect.getinnerframes().
* IPython/iplib.py (InteractiveShell.__init__): significant fixes
for embedded instances, regarding handling of namespaces and items
added to the __builtin__ one. Multiple embedded instances and
recursive embeddings should work better now (though I'm not sure
I've got all the corner cases fixed, that code is a bit of a brain
* IPython/Magic.py (magic_edit): added support to edit in-memory
macros (automatically creates the necessary temp files). %edit
also doesn't return the file contents anymore, it's just noise.
* IPython/completer.py (Completer.attr_matches): revert change to
complete only on attributes listed in __all__. I realized it
cripples the tab-completion system as a tool for exploring the
internals of unknown libraries (it renders any non-__all__
attribute off-limits). I got bit by this when trying to see
something inside the dis module.
2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (InteractiveShell.__init__): add .meta
namespace for users and extension writers to hold data in. This
follows the discussion in
* IPython/completer.py (IPCompleter.complete): small patch to help
tab-completion under Emacs, after a suggestion by John Barnard
* IPython/Magic.py (Magic.extract_input_slices): added support for
the slice notation in magics to use N-M to represent numbers N...M
(closed endpoints). This is used by %macro and %save.
* IPython/completer.py (Completer.attr_matches): for modules which
define __all__, complete only on those. After a patch by Jeffrey
Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
speed up this routine.
* IPython/Logger.py (Logger.log): fix a history handling bug. I
don't know if this is the end of it, but the behavior now is
certainly much more correct. Note that coupled with macros,
slightly surprising (at first) behavior may occur: a macro will in
general expand to multiple lines of input, so upon exiting, the
in/out counters will both be bumped by the corresponding amount
(as if the macro's contents had been typed interactively). Typing
%hist will reveal the intermediate (silently processed) lines.
* IPython/Magic.py (magic_run): fix a subtle bug which could cause
pickle to fail (%run was overwriting __main__ and not restoring
it, but pickle relies on __main__ to operate).
* IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
using properties, but forgot to make the main InteractiveShell
class a new-style class. Properties fail silently, and
mysteriously, with old-style class (getters work, but
setters don't do anything).
2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_history): fix history reporting bug (I
know some nasties are still there, I just can't seem to find a
reproducible test case to track them down; the input history is
falling out of sync...)
* IPython/iplib.py (handle_shell_escape): fix bug where both
aliases and system accesses where broken for indented code (such
as loops).
* IPython/genutils.py (shell): fix small but critical bug for
win32 system access.
2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (showtraceback): remove use of the
sys.last_{type/value/traceback} structures, which are non
(_prefilter): change control flow to ensure that we NEVER
introspect objects when autocall is off. This will guarantee that
having an input line of the form 'x.y', where access to attribute
'y' has side effects, doesn't trigger the side effect TWICE. It
is important to note that, with autocall on, these side effects
can still happen.
(ipsystem): new builtin, to complete the ip{magic/alias/system}
trio. IPython offers these three kinds of special calls which are
not python code, and it's a good thing to have their call method
be accessible as pure python functions (not just special syntax at
the command line). It gives us a better internal implementation
structure, as well as exposing these for user scripting more
* IPython/macro.py (Macro.__init__): moved macros to a standalone
file. Now that they'll be more likely to be used with the
persistance system (%store), I want to make sure their module path
doesn't change in the future, so that we don't break things for
users' persisted data.
* IPython/iplib.py (autoindent_update): move indentation
management into the _text_ processing loop, not the keyboard
interactive one. This is necessary to correctly process non-typed
multiline input (such as macros).
* IPython/Magic.py (Magic.format_latex): patch by Stefan van der
Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
which was producing problems in the resulting manual.
(magic_whos): improve reporting of instances (show their class,
instead of simply printing 'instance' which isn't terribly
* IPython/genutils.py (shell): commit Jorgen Stenarson's patch
(minor mods) to support network shares under win32.
* IPython/winconsole.py (get_console_size): add new winconsole
module and fixes to page_dumb() to improve its behavior under
win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
* IPython/Magic.py (Macro): simplified Macro class to just
subclass list. We've had only 2.2 compatibility for a very long
time, yet I was still avoiding subclassing the builtin types. No
more (I'm also starting to use properties, though I won't shift to
2.3-specific features quite yet).
(magic_store): added Ville's patch for lightweight variable
persistence, after a request on the user list by Matt Wilkie
<maphew-AT-gmail.com>. The new %store magic's docstring has full
* IPython/iplib.py (InteractiveShell.post_config_initialization):
changed the default logfile name from 'ipython.log' to
'ipython_log.py'. These logs are real python files, and now that
we have much better multiline support, people are more likely to
want to use them as such. Might as well name them correctly.
* IPython/Magic.py: substantial cleanup. While we can't stop
using magics as mixins, due to the existing customizations 'out
there' which rely on the mixin naming conventions, at least I
cleaned out all cross-class name usage. So once we are OK with
breaking compatibility, the two systems can be separated.
* IPython/Logger.py: major cleanup. This one is NOT a mixin
anymore, and the class is a fair bit less hideous as well. New
features were also introduced: timestamping of input, and logging
of output results. These are user-visible with the -t and -o
options to %logstart. Closes
http://www.scipy.net/roundup/ipython/issue11 and a request by
William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (handle_shell_escape): add Ville's patch to
better handle backslashes in paths. See the thread 'More Windows
questions part 2 - \/ characters revisited' on the iypthon user
(InteractiveShell.__init__): fix tab-completion bug in threaded shells.
(InteractiveShell.__init__): change threaded shells to not use the
ipython crash handler. This was causing more problems than not,
as exceptions in the main thread (GUI code, typically) would
always show up as a 'crash', when they really weren't.
The colors and exception mode commands (%colors/%xmode) have been
synchronized to also take this into account, so users can get
verbose exceptions for their threaded code as well. I also added
support for activating pdb inside this exception handler as well,
so now GUI authors can use IPython's enhanced pdb at runtime.
* IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
true by default, and add it to the shipped ipythonrc file. Since
this asks the user before proceeding, I think it's OK to make it
true by default.
* IPython/Magic.py (magic_exit): make new exit/quit magics instead
of the previous special-casing of input in the eval loop. I think
this is cleaner, as they really are commands and shouldn't have
a special role in the middle of the core code.
2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (edit_syntax_error): added support for
automatically reopening the editor if the file had a syntax error
in it. Thanks to scottt who provided the patch at:
http://www.scipy.net/roundup/ipython/issue36 (slightly modified
version committed).
* IPython/iplib.py (handle_normal): add suport for multi-line
input with emtpy lines. This fixes
http://www.scipy.net/roundup/ipython/issue43 and a similar
discussion on the user list.
WARNING: a behavior change is necessarily introduced to support
blank lines: now a single blank line with whitespace does NOT
break the input loop, which means that when autoindent is on, by
default hitting return on the next (indented) line does NOT exit.
Instead, to exit a multiline input you can either have:
- TWO whitespace lines (just hit return again), or
- a single whitespace line of a different length than provided
by the autoindent (add or remove a space).
* IPython/completer.py (MagicCompleter.__init__): new 'completer'
module to better organize all readline-related functionality.
I've deleted FlexCompleter and put all completion clases here.
* IPython/iplib.py (raw_input): improve indentation management.
It is now possible to paste indented code with autoindent on, and
the code is interpreted correctly (though it still looks bad on
screen, due to the line-oriented nature of ipython).
(MagicCompleter.complete): change behavior so that a TAB key on an
otherwise empty line actually inserts a tab, instead of completing
on the entire global namespace. This makes it easier to use the
TAB key for indentation. After a request by Hans Meine
(_prefilter): add support so that typing plain 'exit' or 'quit'
does a sensible thing. Originally I tried to deviate as little as
possible from the default python behavior, but even that one may
change in this direction (thread on python-dev to that effect).
Regardless, ipython should do the right thing even if CPython's
'>>>' prompt doesn't.
(InteractiveShell): removed subclassing code.InteractiveConsole
class. By now we'd overridden just about all of its methods: I've
copied the remaining two over, and now ipython is a standalone
class. This will provide a clearer picture for the chainsaw
branch refactoring.
2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/ultraTB.py (VerboseTB.text): harden reporting against
failures for objects which break when dir() is called on them.
* IPython/FlexCompleter.py (Completer.__init__): Added support for
distinct local and global namespaces in the completer API. This
change allows us to properly handle completion with distinct
scopes, including in embedded instances (this had never really
worked correctly).
Note: this introduces a change in the constructor for
MagicCompleter, as a new global_namespace parameter is now the
second argument (the others were bumped one position).
2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (embed_mainloop): fix tab-completion in
embedded instances (which can be done now thanks to Vivian's
frame-handling fixes for pdb).
(InteractiveShell.__init__): Fix namespace handling problem in
embedded instances. We were overwriting __main__ unconditionally,
and this should only be done for 'full' (non-embedded) IPython;
embedded instances must respect the caller's __main__. Thanks to
a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
* setup.py: added download_url to setup(). This registers the
download address at PyPI, which is not only useful to humans
browsing the site, but is also picked up by setuptools (the Eggs
machinery). Thanks to Ville and R. Kern for the info/discussion
on this.
2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
This brings a lot of nice functionality to the pdb mode, which now
has tab-completion, syntax highlighting, and better stack handling
than before. Many thanks to Vivian De Smedt
<vivian-AT-vdesmedt.com> for the original patches.
2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
sequence to consistently accept the banner argument. The
inconsistency was tripping SAGE, thanks to Gary Zablackis
<gzabl-AT-yahoo.com> for the report.
2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (InteractiveShell.post_config_initialization):
Fix bug where a naked 'alias' call in the ipythonrc file would
cause a crash. Bug reported by Jorgen Stenarson.
2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/ipmaker.py (make_IPython): cleanups which should improve
startup time.
* IPython/iplib.py (runcode): my globals 'fix' for embedded
instances had introduced a bug with globals in normal code. Now
it's working in all cases.
* IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
API changes. A new ipytonrc option, 'wildcards_case_sensitive'
has been introduced to set the default case sensitivity of the
searches. Users can still select either mode at runtime on a
per-search basis.
2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/wildcard.py (NameSpace.__init__): fix resolution of
attributes in wildcard searches for subclasses. Modified version
of a patch by Jorgen.
2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (embed_mainloop): Fix handling of globals for
embedded instances. I added a user_global_ns attribute to the
InteractiveShell class to handle this.
2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
idle_add, which fixes horrible keyboard lag problems under gtk 2.6
(reported under win32, but may happen also in other platforms).
Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Magic.py (magic_psearch): new support for wildcard
patterns. Now, typing ?a*b will list all names which begin with a
and end in b, for example. The %psearch magic has full
docstrings. Many thanks to Jörgen Stenarson
<jorgen.stenarson-AT-bostream.nu>, author of the patches
implementing this functionality.
2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
* Manual: fixed long-standing annoyance of double-dashes (as in
--prefix=~, for example) being stripped in the HTML version. This
is a latex2html bug, but a workaround was provided. Many thanks
to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
rolling. This seemingly small issue had tripped a number of users
when first installing, so I'm glad to see it gone.
2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Extensions/numeric_formats.py: fix missing import,
reported by Stephen Walton.
2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/demo.py: finish demo module, fully documented now.
* IPython/genutils.py (file_read): simple little utility to read a
file and ensure it's closed afterwards.
2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/demo.py (Demo.__init__): added support for individually
tagging blocks for automatic execution.
* IPython/Magic.py (magic_pycat): new %pycat magic for showing
syntax-highlighted python sources, requested by John.
2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/demo.py (Demo.again): fix bug where again() blocks after
* IPython/genutils.py (shlex_split): moved from Magic to here,
where all 2.2 compatibility stuff lives. I needed it for demo.py.
* IPython/demo.py (Demo.__init__): added support for silent
blocks, improved marks as regexps, docstrings written.
(Demo.__init__): better docstring, added support for sys.argv.
* IPython/genutils.py (marquee): little utility used by the demo
code, handy in general.
* IPython/demo.py (Demo.__init__): new class for interactive
demos. Not documented yet, I just wrote it in a hurry for
scipy'05. Will docstring later.
2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (sigint_handler): Drastic simplification which
also seems to make Ctrl-C work correctly across threads! This is
so simple, that I can't beleive I'd missed it before. Needs more
testing, though.
(KBINT): Never mind, revert changes. I'm sure I'd tried something
like this before...
* IPython/genutils.py (get_home_dir): add protection against
non-dirs in win32 registry.
* IPython/iplib.py (InteractiveShell.alias_table_validate): fix
bug where dict was mutated while iterating (pysh crash).
2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (handle_auto): Fix inconsistency arising from
spurious newlines added by this routine. After a report by
F. Mantegazza.
2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
calls. These were a leftover from the GTK 1.x days, and can cause
problems in certain cases (after a report by John Hunter).
* IPython/iplib.py (InteractiveShell.__init__): Trap exception if
os.getcwd() fails at init time. Thanks to patch from David Remahl
(InteractiveShell.__init__): prevent certain special magics from
being shadowed by aliases. Closes
2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/iplib.py (InteractiveShell.complete): Added new
top-level completion method to expose the completion mechanism
beyond readline-based environments.
2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
* tools/ipsvnc (svnversion): fix svnversion capture.
* IPython/iplib.py (InteractiveShell.__init__): Add has_readline
attribute to self, which was missing. Before, it was set by a
routine which in certain cases wasn't being called, so the
instance could end up missing the attribute. This caused a crash.
Closes http://www.scipy.net/roundup/ipython/issue40.
2005-08-16 Fernando Perez <fperez@colorado.edu>
* IPython/ultraTB.py (VerboseTB.text): don't crash if object
contains non-string attribute. Closes
2005-08-14 Fernando Perez <fperez@colorado.edu>
* tools/ipsvnc: Minor improvements, to add changeset info.
2005-08-12 Fernando Perez <fperez@colorado.edu>
* IPython/iplib.py (runsource): remove self.code_to_run_src
attribute. I realized this is nothing more than
'\n'.join(self.buffer), and having the same data in two different
places is just asking for synchronization bugs. This may impact
people who have custom exception handlers, so I need to warn
ipython-dev about it (F. Mantegazza may use them).
2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
* IPython/genutils.py: fix 2.2 compatibility (generators)
2005-07-18 Fernando Perez <fperez@colorado.edu>
* IPython/genutils.py (get_home_dir): fix to help users with
invalid $HOME under win32.
2005-07-17 Fernando Perez <fperez@colorado.edu>
* IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
some old hacks and clean up a bit other routines; code should be
simpler and a bit faster.
* IPython/iplib.py (interact): removed some last-resort attempts
to survive broken stdout/stderr. That code was only making it
harder to abstract out the i/o (necessary for gui integration),
and the crashes it could prevent were extremely rare in practice
(besides being fully user-induced in a pretty violent manner).
* IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
Nothing major yet, but the code is simpler to read; this should