ChangeLog
7635 lines
| 295.9 KiB
| text/plain
|
TextLexer
/ doc / ChangeLog
Ville M. Vainio
|
r1212 | 2008-05-30 Ville Vainio <vivainio@gmail.com> | ||
* shell.py: disable -twisted on non-win32 platforms. | ||||
import sets module on python 2.3. | ||||
* Release.py: update version to 0.8.4 for quick point fix | ||||
Fernando Perez
|
r1208 | 2008-05-28 *** Released version 0.8.3 | ||
Fernando Perez
|
r1207 | 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu> | ||
* ../win32_manual_post_install.py (run): Fix the windows installer | ||||
so the links to the docs are correct. | ||||
* IPython/ultraTB.py: flush stderr after writing to it to fix | ||||
problems with exception traceback ordering in some platforms. | ||||
Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>. | ||||
* IPython/Magic.py (magic_cpaste): add stripping of continuation | ||||
prompts, feature requested by Stefan vdW. | ||||
* ../setup.py: updates to build and release tools in preparation | ||||
for 0.8.3 release. | ||||
vivainio2
|
r1198 | 2008-05-27 Ville Vainio <vivainio@gmail.com> | ||
* iplib.py, ipmaker.py: survive lack of doctest and site._Helper | ||||
for minimal environments (e.g. Maemo sdk python) | ||||
vivainio2
|
r1201 | * Magic.py: cpaste strips whitespace before >>> (allow pasting | ||
doctests) | ||||
vivainio2
|
r1200 | |||
Ville M. Vainio
|
r1202 | * ipy_completers.py: cd completer now does recursive path expand | ||
(old behaviour is buggy on some readline versions) | ||||
Ville M. Vainio
|
r1183 | 2008-05-14 Ville Vainio <vivainio@gmail.com> | ||
* Extensions/ipy_greedycompleter.py: | ||||
New extension that enables a bit more "relaxed" tab | ||||
completer that evaluates code without safety checks | ||||
(i.e. there can be side effects like function calls) | ||||
Ville M. Vainio
|
r1164 | 2008-04-20 Ville Vainio <vivainio@gmail.com> | ||
* Extensions/ipy_lookfor.py: add %lookfor magic command | ||||
(search docstrings for words) by Pauli Virtanen. Close #245. | ||||
Ville M. Vainio
|
r1165 | * Extension/ipy_jot.py: %jot and %read magics, analogous | ||
to %store but you can specify some notes. Not read | ||||
in automatically on startup, you need %read. | ||||
Contributed by Yichun Wei. | ||||
Fernando Perez
|
r1157 | 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu> | ||
* IPython/genutils.py (page): apply workaround to curses bug that | ||||
can leave terminal corrupted after a call to initscr(). | ||||
Ville M. Vainio
|
r1154 | 2008-04-15 Ville Vainio <vivainio@gmail.com> | ||
* genutils.py: SList.grep supports 'field' argument | ||||
Ville M. Vainio
|
r1155 | * ipy_completers.py: module completer looks inside | ||
.egg zip files (patch by mc). Close #196. | ||||
Ville M. Vainio
|
r1142 | 2008-04-09 Ville Vainio <vivainio@gmail.com> | ||
* deep_reload.py: do not crash on from __future__ import | ||||
absolute_import. Close #244. | ||||
Ville M. Vainio
|
r1139 | 2008-04-02 Ville Vainio <vivainio@gmail.com> | ||
* ipy_winpdb.py: New extension for winpdb integration. %wdb | ||||
test.py is winpdb equivalent of %run -d test.py. winpdb is a | ||||
crossplatform remote GUI debugger based on wxpython. | ||||
2008-03-29 Ville Vainio <vivainio@gmail.com> | ||||
* ipython.rst, do_sphinx.py: New documentation base, based on | ||||
reStucturedText and Sphinx (html/pdf generation). The old Lyx | ||||
based documentation will not be updated anymore. | ||||
* jobctrl.py: Use shell in Popen for 'start' command (in windows). | ||||
2008-03-24 Ville Vainio <vivainio@gmail.com> | ||||
* ipython.rst, do_sphinx.py: New documentation base, based on | ||||
reStucturedText and Sphinx (html/pdf generation). The old Lyx | ||||
based documentation will not be updated anymore. | ||||
ipython.rst has up to date documentation on matters that were not | ||||
documented at all, and it also removes various | ||||
misdocumented/deprecated features. | ||||
2008-03-22 Ville Vainio <vivainio@gmail.com> | ||||
* Shell.py: Merge mtexp branch: | ||||
https://code.launchpad.net/~ipython/ipython/mtexp | ||||
Privides simpler and more robust MTInteractiveShell that won't | ||||
deadlock, even when the worker thread (GUI) stops doing runcode() | ||||
regularly. r71. | ||||
2008-03-20 Ville Vainio <vivainio@gmail.com> | ||||
* twshell.py: New shell that runs IPython code in Twisted reactor. | ||||
Launch by doing ipython -twisted. r67. | ||||
2008-03-19 Ville Vainio <vivainio@gmail.com> | ||||
* Magic.py: %rehashx works correctly when shadowed system commands | ||||
have upper case characters (e.g. Print.exe). r64. | ||||
* ipy_bzr.py, ipy_app_completers.py: new bzr completer that also | ||||
knows options to commands, based on bzrtools. Uses bzrlib | ||||
directly. r66. | ||||
2008-03-16 Ville Vainio <vivainio@gmail.com> | ||||
* make_tarball.py: Fixed for bzr. | ||||
* ipapi.py: Better _ip.runlines() script cleanup. r56,r79. | ||||
* ipy_vimserver.py, ipy.vim: New extension for vim server mode, | ||||
by Erich Heine. | ||||
2008-03-12 Ville Vainio <vivainio@gmail.com> | ||||
* ipmaker.py: Force (reload?) import of ipy_user_conf and | ||||
ipy_profile_foo, so that embedded instances can be relaunched and | ||||
configuration is still done. r50 | ||||
* ipapi.py, test_embed.py: Allow specifying shell class in | ||||
launch_new_instance & make_new instance. Use this in | ||||
test_embed.py. r51. | ||||
test_embed.py is also a good and simple demo of embedding IPython. | ||||
2008-03-10 Ville Vainio <vivainio@gmail.com> | ||||
* tool/update_revnum.py: Change to bzr revisioning scheme in | ||||
revision numbers. | ||||
* Shell.py: Threading improvements: | ||||
In multithreaded shells, do not hang on macros and o.autoexec | ||||
commands (or anything executed with _ip.runlines()) anymore. Allow | ||||
recursive execution of IPython code in | ||||
MTInteractiveShell.runsource by checking if we are already in | ||||
worker thread, and execute code directly if we are. r48. | ||||
MTInteractiveShell.runsource: execute code directly if worker | ||||
thread is not running yet (this is the case in config files). r49. | ||||
2008-03-09 Ville Vainio <vivainio@gmail.com> | ||||
* ipy_profile_sh.py: You can now use $LA or LA() to refer to last | ||||
argument of previous command in sh profile. Similar to bash '!$'. | ||||
LA(3) or $LA(3) stands for last argument of input history command | ||||
3. | ||||
* Shell.py: -pylab names don't clutter %whos listing. | ||||
2008-03-07 Ville Vainio <vivainio@gmail.com> | ||||
* ipy_autoreload.py: new extension (by Pauli Virtanen) for | ||||
autoreloading modules; try %autoreload and %aimport. Close #154. | ||||
Uses the new pre_runcode_hook. | ||||
2008-02-24 Ville Vainio <vivainio@gmail.com> | ||||
* platutils_posix.py: freeze_term_title works | ||||
2008-02-21 Ville Vainio <vivainio@gmail.com> | ||||
* Magic.py: %quickref does not crash with empty docstring | ||||
Ville M. Vainio
|
r1032 | 2008-02-20 Ville Vainio <vivainio@gmail.com> | ||
Ville M. Vainio
|
r1139 | * completer.py: do not treat [](){} as protectable chars anymore, | ||
close #233. | ||||
Ville M. Vainio
|
r1032 | * completer.py: do not treat [](){} as protectable chars anymore | ||
* magic.py, test_cpaste.py: Allow different prefix for pasting | ||||
from email | ||||
2008-02-17 Ville Vainio <vivainio@gmail.com> | ||||
* Switched over to Launchpad/bzr as primary VCS. | ||||
2008-02-14 Ville Vainio <vivainio@gmail.com> | ||||
* ipapi.py: _ip.runlines() is now much more liberal about | ||||
indentation - it cleans up the scripts it gets | ||||
2008-02-14 Ville Vainio <vivainio@gmail.com> | ||||
* Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge. | ||||
Changes to it (later on) are too numerous to list in ChangeLog | ||||
until it stabilizes | ||||
2008-02-07 Darren Dale <darren.dale@cornell.edu> | ||||
* IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating | ||||
an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve | ||||
interaction in the interpreter (like Tkinter does), but it seems to | ||||
partially interfere with the IPython implementation and exec_() | ||||
still seems to block. So we disable the PyQt implementation and | ||||
stick with the IPython one for now. | ||||
2008-02-02 Walter Doerwald <walter@livinglogic.de> | ||||
* ipipe.py: A new ipipe table has been added: ialias produces all | ||||
entries from IPython's alias table. | ||||
2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Shell.py (MTInteractiveShell.runcode): Improve handling | ||||
of KBINT in threaded shells. After code provided by Marc in #212. | ||||
2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock | ||||
that could occur due to a race condition in threaded shells. | ||||
Thanks to code provided by Marc, as #210. | ||||
2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Magic.py (magic_doctest_mode): respect the user's | ||||
settings for input separators rather than overriding them. After | ||||
a report by Jeff Kowalczyk <jtk-AT-yahoo.com> | ||||
* IPython/history.py (magic_history): Add support for declaring an | ||||
output file directly from the history command. | ||||
2008-01-21 Walter Doerwald <walter@livinglogic.de> | ||||
* ipipe.py: Register ipipe's displayhooks via the generic function | ||||
generics.result_display() instead of using ipapi.set_hook(). | ||||
2008-01-19 Walter Doerwald <walter@livinglogic.de> | ||||
* ibrowse.py, igrid.py, ipipe.py: | ||||
The input object can now be passed to the constructor of the display classes. | ||||
This makes it possible to use them with objects that implement __or__. | ||||
Use this constructor in the displayhook instead of piping. | ||||
* ipipe.py: Importing astyle.py is done as late as possible to | ||||
avoid problems with circular imports. | ||||
2008-01-19 Ville Vainio <vivainio@gmail.com> | ||||
* hooks.py, iplib.py: Added 'shell_hook' to customize how | ||||
IPython calls shell. | ||||
* hooks.py, iplib.py: Added 'show_in_pager' hook to specify | ||||
how IPython pages text (%page, %pycat, %pdoc etc.) | ||||
* Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks' | ||||
and '%kill' to kill hanging processes that won't obey ctrl+C. | ||||
2008-01-16 Ville Vainio <vivainio@gmail.com> | ||||
* ipy_completers.py: pyw extension support for %run completer. | ||||
2008-01-11 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py, ipmaker.py: new rc option - autoexec. It's a list | ||||
of ipython commands to be run when IPython has started up | ||||
(just before running the scripts and -c arg on command line). | ||||
* ipy_user_conf.py: Added an example on how to change term | ||||
colors in config file (through using autoexec). | ||||
* completer.py, test_completer.py: Ability to specify custom | ||||
get_endidx to replace readline.get_endidx. For emacs users. | ||||
2008-01-10 Ville Vainio <vivainio@gmail.com> | ||||
* Prompts.py (set_p_str): do not crash on illegal prompt strings | ||||
2008-01-08 Ville Vainio <vivainio@gmail.com> | ||||
* '%macro -r' (raw mode) is now default in sh profile. | ||||
2007-12-31 Ville Vainio <vivainio@gmail.com> | ||||
* completer.py: custom completer matching is now case sensitive | ||||
(#207). | ||||
* ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in | ||||
an attempt to prevent occasional crashes. | ||||
* CrashHandler.py: Crash log dump now asks user to press enter | ||||
before exiting. | ||||
* Store _ip in user_ns instead of __builtin__, enabling safer | ||||
coexistence of multiple IPython instances in the same python | ||||
interpreter (#197). | ||||
* Debugger.py, ipmaker.py: Need to add '-pydb' command line | ||||
switch to enable pydb in post-mortem debugging and %run -d. | ||||
2007-12-28 Ville Vainio <vivainio@gmail.com> | ||||
* ipy_server.py: TCP socket server for "remote control" of an IPython | ||||
instance. | ||||
* Debugger.py: Change to PSF license | ||||
* simplegeneric.py: Add license & author notes. | ||||
* ipy_fsops.py: Added PathObj and FileObj, an object-oriented way | ||||
to navigate file system with a custom completer. Run | ||||
ipy_fsops.test_pathobj() to play with it. | ||||
2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/dtutils.py: Add utilities for interactively running | ||||
doctests. Still needs work to more easily handle the namespace of | ||||
the package one may be working on, but the basics are in place. | ||||
2007-12-27 Ville Vainio <vivainio@gmail.com> | ||||
* ipy_completers.py: Applied arno's patch to get proper list of | ||||
packages in import completer. Closes #196. | ||||
2007-12-20 Ville Vainio <vivainio@gmail.com> | ||||
* completer.py, generics.py(complete_object): Allow | ||||
custom complers based on python objects via simplegeneric. | ||||
See generics.py / my_demo_complete_object | ||||
2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean | ||||
behavior to prompt objects, useful for display hooks to adjust | ||||
themselves depending on whether prompts will be there or not. | ||||
2007-12-13 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py(raw_input): unix readline does not allow unicode in | ||||
history, encode to normal string. After patch by Tiago. | ||||
Close #201 | ||||
2007-12-12 Ville Vainio <vivainio@gmail.com> | ||||
* genutils.py (abbrev_cwd): Terminal title now shows 2 levels of | ||||
current directory. | ||||
2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Shell.py (_select_shell): add support for controlling | ||||
the pylab threading mode directly at the command line, without | ||||
having to modify MPL config files. Added unit tests for this | ||||
feature, though manual/docs update is still pending, will do later. | ||||
2007-12-11 Ville Vainio <vivainio@gmail.com> | ||||
* ext_rescapture.py: var = !cmd is no longer verbose (to facilitate | ||||
use in scripts) | ||||
2007-12-07 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py, ipy_profile_sh.py: Do not escape # on command lines | ||||
anymore (to \#) - even if it is a comment char that is implicitly | ||||
escaped in some unix shells in interactive mode, it is ok to leave | ||||
it in IPython as such. | ||||
2007-12-01 Robert Kern <robert.kern@gmail.com> | ||||
* IPython/ultraTB.py (findsource): Improve the monkeypatch to | ||||
inspect.findsource(). It can now find source lines inside zipped | ||||
packages. | ||||
* IPython/ultraTB.py: When constructing tracebacks, try to use __file__ | ||||
in the frame's namespace before trusting the filename in the code object | ||||
which created the frame. | ||||
2007-11-29 *** Released version 0.8.2 | ||||
2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Logger.py (Logger.logstop): add a proper logstop() | ||||
method to fully stop the logger, along with a corresponding | ||||
%logstop magic for interactive use. | ||||
* IPython/Extensions/ipy_host_completers.py: added new host | ||||
completers functionality, contributed by Gael Pasgrimaud | ||||
<gawel-AT-afpy.org>. | ||||
2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller | ||||
<gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in | ||||
options handling. Unicode fix in %whos (committed a while ago) | ||||
was also contributed by Paul. | ||||
2007-11-23 Darren Dale <darren.dale@cornell.edu> | ||||
* ipy_traits_completer.py: let traits_completer respect the user's | ||||
readline_omit__names setting. | ||||
2007-11-08 Ville Vainio <vivainio@gmail.com> | ||||
* ipy_completers.py (import completer): assume 'xml' module exists. | ||||
Do not add every module twice anymore. Closes #196. | ||||
* ipy_completers.py, ipy_app_completers.py: Add proper apt-get | ||||
completer that uses apt-cache to search for existing packages. | ||||
2007-11-06 Ville Vainio <vivainio@gmail.com> | ||||
* Prompts.py: Do not update _oh and _123 when do_full_cache is not | ||||
true. Closes #194. | ||||
2007-11-01 Brian Granger <ellisonbg@gmail.com> | ||||
* iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython | ||||
working with OS X 10.5 libedit implementation of readline. | ||||
2007-10-24 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py(user_setup): To route around buggy installations where | ||||
UserConfig is not available, create a minimal _ipython. | ||||
* iplib.py: Unicode fixes from Jorgen. | ||||
* genutils.py: Slist now has new method 'fields()' for extraction of | ||||
whitespace-separated fields from line-oriented data. | ||||
2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/OInspect.py (Inspector.pinfo): fix bug that could arise | ||||
when querying objects with no __class__ attribute (such as | ||||
f2py-generated modules). | ||||
2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Magic.py (magic_time): track compilation time and report | ||||
it if longer than 0.1s (fix done to %time and %timeit). After a | ||||
SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632. | ||||
2007-09-18 Ville Vainio <vivainio@gmail.com> | ||||
* genutils.py(make_quoted_expr): Do not use Itpl, it does | ||||
not support unicode at the moment. Fixes (many) magic calls with | ||||
special characters. | ||||
2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/genutils.py (doctest_reload): expose the doctest | ||||
reloader to the user so that people can easily reset doctest while | ||||
using it interactively. Fixes a problem reported by Jorgen. | ||||
* IPython/iplib.py (InteractiveShell.__init__): protect the | ||||
FakeModule instances used for __main__ in %run calls from | ||||
deletion, so that user code defined in them isn't left with | ||||
dangling references due to the Python module deletion machinery. | ||||
This should fix the problems reported by Darren. | ||||
2007-09-10 Darren Dale <dd55@cornell.edu> | ||||
* Cleanup of IPShellQt and IPShellQt4 | ||||
2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/FakeModule.py (FakeModule.__init__): further fixes for | ||||
doctest support. | ||||
* IPython/iplib.py (safe_execfile): minor docstring improvements. | ||||
2007-09-08 Ville Vainio <vivainio@gmail.com> | ||||
* Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current* | ||||
directory, not the target directory. | ||||
* ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight | ||||
exception that won't print the tracebacks. Switched many magics to | ||||
raise them on error situations, also GetoptError is not printed | ||||
anymore. | ||||
2007-09-07 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py: do not auto-alias "dir", it screws up other dir auto | ||||
aliases. | ||||
* genutils.py: SList.grep() implemented. | ||||
* ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors | ||||
for easy "out of the box" setup of several common editors, so that | ||||
e.g. '%edit os.path.isfile' will jump to the correct line | ||||
automatically. Contributions for command lines of your favourite | ||||
editors welcome. | ||||
2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/OInspect.py (Inspector.pinfo): fixed bug that was | ||||
preventing source display in certain cases. In reality I think | ||||
the problem is with Ubuntu's Python build, but this change works | ||||
around the issue in some cases (not in all, unfortunately). I'd | ||||
filed a Python bug on this with more details, but in the change of | ||||
bug trackers it seems to have been lost. | ||||
* IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is | ||||
not the same, it's not self-documenting, doesn't allow range | ||||
selection, and sorts alphabetically instead of numerically. | ||||
(magic_r): restore %r. No, "up + enter. One char magic" is not | ||||
the same thing, since %r takes parameters to allow fast retrieval | ||||
of old commands. I've received emails from users who use this a | ||||
LOT, so it stays. | ||||
(magic_automagic): restore %automagic. "use _ip.option.automagic" | ||||
is not a valid replacement b/c it doesn't provide an complete | ||||
explanation (which the automagic docstring does). | ||||
(magic_autocall): restore %autocall, with improved docstring. | ||||
Same argument as for others, "use _ip.options.autocall" is not a | ||||
valid replacement. | ||||
(magic_pdef): restore %pdef & friends. Used widely, mentioned in | ||||
tutorials and online docs. | ||||
2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/usage.py (quick_reference): mention magics in quickref, | ||||
modified main banner to mention %quickref. | ||||
* IPython/FakeModule.py (FakeModule): fixes for doctest compatibility. | ||||
2007-09-06 Ville Vainio <vivainio@gmail.com> | ||||
* ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py: | ||||
Callable aliases now pass the _ip as first arg. This breaks | ||||
compatibility with earlier 0.8.2.svn series! (though they should | ||||
not have been in use yet outside these few extensions) | ||||
2007-09-05 Ville Vainio <vivainio@gmail.com> | ||||
* external/mglob.py: expand('dirname') => ['dirname'], instead | ||||
of ['dirname/foo','dirname/bar', ...]. | ||||
* Extensions/ipy_fsops.py: added, has usefull shell utils for plain | ||||
win32 installations: icp, imv, imkdir, igrep, irm, collect (collect | ||||
is useful for others as well). | ||||
* iplib.py: on callable aliases (as opposed to old style aliases), | ||||
do var_expand() immediately, and use make_quoted_expr instead | ||||
of hardcoded r""" | ||||
* Extensions/ipy_profile_sh.py: Try to detect cygwin on win32, | ||||
if not available load ipy_fsops.py for cp, mv, etc. replacements | ||||
* OInspect.py, ipy_which.py: improve %which and obj? for callable | ||||
aliases | ||||
2007-09-04 Ville Vainio <vivainio@gmail.com> | ||||
* ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer. | ||||
Relicensed under BSD with the authors approval. | ||||
* ipmaker.py, usage.py: Remove %magic from default banner, improve | ||||
%quickref | ||||
2007-09-03 Ville Vainio <vivainio@gmail.com> | ||||
* Magic.py: %time now passes expression through prefilter, | ||||
allowing IPython syntax. | ||||
2007-09-01 Ville Vainio <vivainio@gmail.com> | ||||
* ipmaker.py: Always show full traceback when newstyle config fails | ||||
2007-08-27 Ville Vainio <vivainio@gmail.com> | ||||
* Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180 | ||||
2007-08-26 Ville Vainio <vivainio@gmail.com> | ||||
* ipmaker.py: Command line args have the highest priority again | ||||
* iplib.py, ipmaker.py: -i command line argument now behaves as in | ||||
normal python, i.e. leaves the IPython session running after -c | ||||
command or running a batch file from command line. | ||||
2007-08-22 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py: no extra empty (last) line in raw hist w/ multiline | ||||
statements | ||||
* logger.py: Fix bug where blank lines in history were not | ||||
added until AFTER adding the current line; translated and raw | ||||
history should finally be in sync with prompt now. | ||||
* ipy_completers.py: quick_completer now makes it easy to create | ||||
trivial custom completers | ||||
* clearcmd.py: shadow history compression & erasing, fixed input hist | ||||
clearing. | ||||
* envpersist.py, history.py: %env (sh profile only), %hist completers | ||||
* genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and | ||||
term title now include the drive letter, and always use / instead of | ||||
os.sep (as per recommended approach for win32 ipython in general). | ||||
* ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running | ||||
plain python scripts from ipykit command line by running | ||||
"py myscript.py", even w/o installed python. | ||||
2007-08-21 Ville Vainio <vivainio@gmail.com> | ||||
* ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF. | ||||
(for backwards compatibility) | ||||
* history.py: switch back to %hist -t from %hist -r as default. | ||||
At least until raw history is fixed for good. | ||||
2007-08-20 Ville Vainio <vivainio@gmail.com> | ||||
* ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch & | ||||
locate alias redeclarations etc. Also, avoid handling | ||||
_ip.IP.alias_table directly, prefer using _ip.defalias. | ||||
2007-08-15 Ville Vainio <vivainio@gmail.com> | ||||
* prefilter.py: ! is now always served first | ||||
2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/iplib.py (safe_execfile): fix the SystemExit | ||||
auto-suppression code to work in Python2.4 (the internal structure | ||||
of that exception changed and I'd only tested the code with 2.5). | ||||
Bug reported by a SciPy attendee. | ||||
2007-08-13 Ville Vainio <vivainio@gmail.com> | ||||
* prefilter.py: reverted !c:/bin/foo fix, made % in | ||||
multiline specials work again | ||||
2007-08-13 Ville Vainio <vivainio@gmail.com> | ||||
* prefilter.py: Take more care to special-case !, so that | ||||
!c:/bin/foo.exe works. | ||||
* setup.py: if we are building eggs, strip all docs and | ||||
examples (it doesn't make sense to bytecompile examples, | ||||
and docs would be in an awkward place anyway). | ||||
* Ryan Krauss' patch fixes start menu shortcuts when IPython | ||||
is installed into a directory that has spaces in the name. | ||||
2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Magic.py (magic_doctest_mode): fix prompt separators in | ||||
doctest profile and %doctest_mode, so they actually generate the | ||||
blank lines needed by doctest to separate individual tests. | ||||
* IPython/iplib.py (safe_execfile): modify so that running code | ||||
which calls sys.exit(0) (or equivalently, raise SystemExit(0)) | ||||
doesn't get a printed traceback. Any other value in sys.exit(), | ||||
including the empty call, still generates a traceback. This | ||||
enables use of %run without having to pass '-e' for codes that | ||||
correctly set the exit status flag. | ||||
2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.post_config_initialization): | ||||
fix problems with doctests failing when run inside IPython due to | ||||
IPython's modifications of sys.displayhook. | ||||
2007-8-9 Fernando Perez <fperez@planck.colorado.edu> | ||||
* IPython/ipapi.py (to_user_ns): update to accept a dict as well as | ||||
a string with names. | ||||
2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Magic.py (magic_doctest_mode): added new %doctest_mode | ||||
magic to toggle on/off the doctest pasting support without having | ||||
to leave a session to switch to a separate profile. | ||||
2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to | ||||
introduce a blank line between inputs, to conform to doctest | ||||
requirements. | ||||
* IPython/OInspect.py (Inspector.pinfo): fix another part where | ||||
auto-generated docstrings for new-style classes were showing up. | ||||
2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* api_changes: Add new file to track backward-incompatible | ||||
user-visible changes. | ||||
2007-08-06 Ville Vainio <vivainio@gmail.com> | ||||
* ipmaker.py: fix bug where user_config_ns didn't exist at all | ||||
before all the config files were handled. | ||||
2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/irunner.py (RunnerFactory): Add new factory class for | ||||
creating reusable runners based on filenames. | ||||
* IPython/Extensions/ipy_profile_doctest.py: New profile for | ||||
doctest support. It sets prompts/exceptions as similar to | ||||
standard Python as possible, so that ipython sessions in this | ||||
profile can be easily pasted as doctests with minimal | ||||
modifications. It also enables pasting of doctests from external | ||||
sources (even if they have leading whitespace), so that you can | ||||
rerun doctests from existing sources. | ||||
* IPython/iplib.py (_prefilter): fix a buglet where after entering | ||||
some whitespace, the prompt would become a continuation prompt | ||||
with no way of exiting it other than Ctrl-C. This fix brings us | ||||
into conformity with how the default python prompt works. | ||||
* IPython/Extensions/InterpreterPasteInput.py (prefilter_paste): | ||||
Add support for pasting not only lines that start with '>>>', but | ||||
also with ' >>>'. That is, arbitrary whitespace can now precede | ||||
the prompts. This makes the system useful for pasting doctests | ||||
from docstrings back into a normal session. | ||||
2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in | ||||
r1357, which had killed multiple invocations of an embedded | ||||
ipython (this means that example-embed has been broken for over 1 | ||||
year!!!). Rather than possibly breaking the batch stuff for which | ||||
the code in iplib.py/interact was introduced, I worked around the | ||||
problem in the embedding class in Shell.py. We really need a | ||||
bloody test suite for this code, I'm sick of finding stuff that | ||||
used to work breaking left and right every time I use an old | ||||
feature I hadn't touched in a few months. | ||||
(kill_embedded): Add a new magic that only shows up in embedded | ||||
mode, to allow users to permanently deactivate an embedded instance. | ||||
2007-08-01 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw | ||||
history gets out of sync on runlines (e.g. when running macros). | ||||
2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Magic.py (magic_colors): fix win32-related error message | ||||
that could appear under *nix when readline was missing. Patch by | ||||
Scott Jackson, closes #175. | ||||
2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Extensions/ipy_traits_completer.py: Add a new custom | ||||
completer that it traits-aware, so that traits objects don't show | ||||
all of their internal attributes all the time. | ||||
* IPython/genutils.py (dir2): moved this code from inside | ||||
completer.py to expose it publicly, so I could use it in the | ||||
wildcards bugfix. | ||||
* IPython/wildcard.py (NameSpace.__init__): fix a bug reported by | ||||
Stefan with Traits. | ||||
* IPython/completer.py (Completer.attr_matches): change internal | ||||
var name from 'object' to 'obj', since 'object' is now a builtin | ||||
and this can lead to weird bugs if reusing this code elsewhere. | ||||
2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/OInspect.py (Inspector.pinfo): fix small glitches in | ||||
'foo?' and update the code to prevent printing of default | ||||
docstrings that started appearing after I added support for | ||||
new-style classes. The approach I'm using isn't ideal (I just | ||||
special-case those strings) but I'm not sure how to more robustly | ||||
differentiate between truly user-written strings and Python's | ||||
automatic ones. | ||||
2007-07-09 Ville Vainio <vivainio@gmail.com> | ||||
* completer.py: Applied Matthew Neeley's patch: | ||||
Dynamic attributes from trait_names and _getAttributeNames are added | ||||
to the list of tab completions, but when this happens, the attribute | ||||
list is turned into a set, so the attributes are unordered when | ||||
printed, which makes it hard to find the right completion. This patch | ||||
turns this set back into a list and sort it. | ||||
2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/OInspect.py (Inspector.pinfo): Add support for new-style | ||||
classes in various inspector functions. | ||||
2007-06-28 Ville Vainio <vivainio@gmail.com> | ||||
* shadowns.py, iplib.py, ipapi.py, OInspect.py: | ||||
Implement "shadow" namespace, and callable aliases that reside there. | ||||
Use them by: | ||||
_ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc | ||||
foo hello world | ||||
(gets translated to:) | ||||
_sh.foo(r"""hello world""") | ||||
In practice, this kind of alias can take the role of a magic function | ||||
* New generic inspect_object, called on obj? and obj?? | ||||
2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/ultraTB.py (findsource): fix a problem with | ||||
inspect.getfile that can cause crashes during traceback construction. | ||||
2007-06-14 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py (handle_auto): Try to use ascii for printing "--->" | ||||
autocall rewrite indication, becausesometimes unicode fails to print | ||||
properly (and you get ' - - - '). Use plain uncoloured ---> for | ||||
unicode. | ||||
* shadow history. Usable through "%hist -g <pat>" and "%rep 0123". | ||||
. pickleshare 'hash' commands (hget, hset, hcompress, | ||||
hdict) for efficient shadow history storage. | ||||
2007-06-13 Ville Vainio <vivainio@gmail.com> | ||||
* ipapi.py: _ip.to_user_ns(vars, interactive = True). | ||||
Added kw arg 'interactive', tell whether vars should be visible | ||||
with %whos. | ||||
2007-06-11 Ville Vainio <vivainio@gmail.com> | ||||
* pspersistence.py, Magic.py, iplib.py: directory history now saved | ||||
to db | ||||
* iplib.py: "ipython -c <cmd>" now passes the command through prefilter. | ||||
Also, it exits IPython immediately after evaluating the command (just like | ||||
std python) | ||||
2007-06-05 Walter Doerwald <walter@livinglogic.de> | ||||
* IPython/Extensions/ipipe.py: Added a new table icap, which executes a | ||||
Python string and captures the output. (Idea and original patch by | ||||
Stefan van der Walt) | ||||
2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.text): update printing of | ||||
exception types for Python 2.5 (now all exceptions in the stdlib | ||||
are new-style classes). | ||||
2007-05-31 Walter Doerwald <walter@livinglogic.de> | ||||
* IPython/Extensions/igrid.py: Add new commands refresh and | ||||
refresh_timer (mapped to "R"/"F5" and to the menu) which restarts | ||||
the iterator once (refresh) or after every x seconds (refresh_timer). | ||||
Add a working implementation of "searchexpression", where the text | ||||
entered is not the text to search for, but an expression that must | ||||
be true. Added display of shortcuts to the menu. Added commands "pickinput" | ||||
and "pickinputattr" that put the object or attribute under the cursor | ||||
in the input line. Split the statusbar to be able to display the currently | ||||
active refresh interval. (Patch by Nik Tautenhahn) | ||||
2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu> | ||||
* fixing set_term_title to use ctypes as default | ||||
* fixing set_term_title fallback to work when curent dir | ||||
is on a windows network share | ||||
2007-05-28 Ville Vainio <vivainio@gmail.com> | ||||
* %cpaste: strip + with > from left (diffs). | ||||
* iplib.py: Fix crash when readline not installed | ||||
2007-05-26 Ville Vainio <vivainio@gmail.com> | ||||
* generics.py: introduce easy to extend result_display generic | ||||
function (using simplegeneric.py). | ||||
* Fixed the append functionality of %set. | ||||
2007-05-25 Ville Vainio <vivainio@gmail.com> | ||||
* New magic: %rep (fetch / run old commands from history) | ||||
* New extension: mglob (%mglob magic), for powerful glob / find /filter | ||||
like functionality | ||||
% maghistory.py: %hist -g PATTERM greps the history for pattern | ||||
2007-05-24 Walter Doerwald <walter@livinglogic.de> | ||||
* IPython/Extensions/ipipe.py: Added a Table ihist that can be used to | ||||
browse the IPython input history | ||||
* IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput | ||||
(mapped to "i") can be used to put the object under the curser in the input | ||||
line. pickinputattr (mapped to "I") does the same for the attribute under | ||||
the cursor. | ||||
2007-05-24 Ville Vainio <vivainio@gmail.com> | ||||
* Grand magic cleansing (changeset [2380]): | ||||
* Introduce ipy_legacy.py where the following magics were | ||||
moved: | ||||
pdef pdoc psource pfile rehash dhist Quit p r automagic autocall | ||||
If you need them, either use default profile or "import ipy_legacy" | ||||
in your ipy_user_conf.py | ||||
* Move sh and scipy profile to Extensions from UserConfig. this implies | ||||
you should not edit them, but you don't need to run %upgrade when | ||||
upgrading IPython anymore. | ||||
* %hist/%history now operates in "raw" mode by default. To get the old | ||||
behaviour, run '%hist -n' (native mode). | ||||
* split ipy_stock_completers.py to ipy_stock_completers.py and | ||||
ipy_app_completers.py. Stock completers (%cd, import, %run) are now | ||||
installed as default. | ||||
* sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c | ||||
handling. | ||||
* iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default") | ||||
input if readline is available. | ||||
2007-05-23 Ville Vainio <vivainio@gmail.com> | ||||
* macro.py: %store uses __getstate__ properly | ||||
* exesetup.py: added new setup script for creating | ||||
standalone IPython executables with py2exe (i.e. | ||||
no python installation required). | ||||
* Removed ipythonrc-scipy, ipy_profile_scipy.py takes | ||||
its place. | ||||
* rlineimpl.py, genutils.py (get_home_dir): py2exe support | ||||
2007-05-21 Ville Vainio <vivainio@gmail.com> | ||||
* platutil_win32.py (set_term_title): handle | ||||
failure of 'title' system call properly. | ||||
2007-05-17 Walter Doerwald <walter@livinglogic.de> | ||||
* IPython/Extensions/ipipe.py: Fix xrepr for ifiles. | ||||
(Bug detected by Paul Mueller). | ||||
2007-05-16 Ville Vainio <vivainio@gmail.com> | ||||
* ipy_profile_sci.py, ipython_win_post_install.py: Create | ||||
new "sci" profile, effectively a modern version of the old | ||||
"scipy" profile (which is now slated for deprecation). | ||||
2007-05-15 Ville Vainio <vivainio@gmail.com> | ||||
* pycolorize.py, pycolor.1: Paul Mueller's patches that | ||||
make pycolorize read input from stdin when run without arguments. | ||||
* Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155 | ||||
* ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import | ||||
it in sh profile (instead of ipy_system_conf.py). | ||||
* Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command | ||||
aliases are now lower case on windows (MyCommand.exe => mycommand). | ||||
* macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul. | ||||
Macros are now callable objects that inherit from ipapi.IPyAutocall, | ||||
i.e. get autocalled regardless of system autocall setting. | ||||
2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/rlineimpl.py: check for clear_history in readline and | ||||
make it a dummy no-op if not available. This function isn't | ||||
guaranteed to be in the API and appeared in Python 2.4, so we need | ||||
to check it ourselves. Also, clean up this file quite a bit. | ||||
* ipython.1: update man page and full manual with information | ||||
about threads (remove outdated warning). Closes #151. | ||||
2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Extensions/ipy_constants.py: Add Gael's constants module | ||||
in trunk (note that this made it into the 0.8.1 release already, | ||||
but the changelogs didn't get coordinated). Many thanks to Gael | ||||
Varoquaux <gael.varoquaux-AT-normalesup.org> | ||||
2007-05-09 *** Released version 0.8.1 | ||||
2007-05-10 Walter Doerwald <walter@livinglogic.de> | ||||
* IPython/Extensions/igrid.py: Incorporate html help into | ||||
the module, so we don't have to search for the file. | ||||
2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* test/test_irunner.py (RunnerTestCase._test_runner): Close #147. | ||||
2007-04-30 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the | ||||
user has illegal (non-ascii) home directory name | ||||
2007-04-27 Ville Vainio <vivainio@gmail.com> | ||||
* platutils_win32.py: implement set_term_title for windows | ||||
* Update version number | ||||
* ipy_profile_sh.py: more informative prompt (2 dir levels) | ||||
2007-04-26 Walter Doerwald <walter@livinglogic.de> | ||||
* IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced | ||||
when the igrid input raised an exception. (Patch by Nik Tautenhahn, | ||||
bug discovered by Ville). | ||||
2007-04-26 Ville Vainio <vivainio@gmail.com> | ||||
* Extensions/ipy_completers.py: Olivier's module completer now | ||||
saves the list of root modules if it takes > 4 secs on the first run. | ||||
* Magic.py (%rehashx): %rehashx now clears the completer cache | ||||
2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* ipython.el: fix incorrect color scheme, reported by Stefan. | ||||
Closes #149. | ||||
* IPython/PyColorize.py (Parser.format2): fix state-handling | ||||
logic. I still don't like how that code handles state, but at | ||||
least now it should be correct, if inelegant. Closes #146. | ||||
2007-04-25 Ville Vainio <vivainio@gmail.com> | ||||
* Extensions/ipy_which.py: added extension for %which magic, works | ||||
a lot like unix 'which' but also finds and expands aliases, and | ||||
allows wildcards. | ||||
* ipapi.py (expand_alias): Now actually *return* the expanded alias, | ||||
as opposed to returning nothing. | ||||
* UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import | ||||
ipy_stock_completers on default profile, do import on sh profile. | ||||
2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu> | ||||
* Fix bug in iplib.py/safe_execfile when launching ipython with a script | ||||
like ipython.py foo.py which raised a IndexError. | ||||
2007-04-21 Ville Vainio <vivainio@gmail.com> | ||||
* Extensions/ipy_extutil.py: added extension to manage other ipython | ||||
extensions. Now only supports 'ls' == list extensions. | ||||
2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Debugger.py (BdbQuit_excepthook): fix small bug that | ||||
would prevent use of the exception system outside of a running | ||||
IPython instance. | ||||
2007-04-20 Ville Vainio <vivainio@gmail.com> | ||||
* Extensions/ipy_render.py: added extension for easy | ||||
interactive text template rendering (to clipboard). Uses Ka-Ping Yee's | ||||
'Iptl' template notation, | ||||
* Extensions/ipy_completers.py: introduced Olivier Lauzanne's | ||||
safer & faster 'import' completer. | ||||
* ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value) | ||||
and _ip.defalias(name, command). | ||||
* Extensions/ipy_exportdb.py: New extension for exporting all the | ||||
%store'd data in a portable format (normal ipapi calls like | ||||
defmacro() etc.) | ||||
2007-04-19 Ville Vainio <vivainio@gmail.com> | ||||
* upgrade_dir.py: skip junk files like *.pyc | ||||
* Release.py: version number to 0.8.1 | ||||
2007-04-18 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1 | ||||
and later on win32. | ||||
2007-04-16 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py (showtraceback): Do not crash when running w/o readline. | ||||
2007-04-12 Walter Doerwald <walter@livinglogic.de> | ||||
* IPython/Extensions/ipipe.py: (ils) Directoy listings are now | ||||
sorted (case sensitive with files and dirs mixed). | ||||
2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Release.py (version): Open trunk for 0.8.1 development. | ||||
2007-04-10 *** Released version 0.8.0 | ||||
2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* Tag 0.8.0 for release. | ||||
* IPython/iplib.py (reloadhist): add API function to cleanly | ||||
reload the readline history, which was growing inappropriately on | ||||
every %run call. | ||||
* win32_manual_post_install.py (run): apply last part of Nicolas | ||||
Pernetty's patch (I'd accidentally applied it in a different | ||||
directory and this particular file didn't get patched). | ||||
2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to | ||||
find the main thread id and use the proper API call. Thanks to | ||||
Stefan for the fix. | ||||
* test/test_prefilter.py (esc_handler_tests): udpate one of Dan's | ||||
unit tests to reflect fixed ticket #52, and add more tests sent by | ||||
him. | ||||
* IPython/iplib.py (raw_input): restore the readline completer | ||||
state on every input, in case third-party code messed it up. | ||||
(_prefilter): revert recent addition of early-escape checks which | ||||
prevent many valid alias calls from working. | ||||
* IPython/Shell.py (MTInteractiveShell.runcode): add a tracking | ||||
flag for sigint handler so we don't run a full signal() call on | ||||
each runcode access. | ||||
* IPython/Magic.py (magic_whos): small improvement to diagnostic | ||||
message. | ||||
2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Shell.py (sigint_handler): I *THINK* I finally got | ||||
asynchronous exceptions working, i.e., Ctrl-C can actually | ||||
interrupt long-running code in the multithreaded shells. | ||||
This is using Tomer Filiba's great ctypes-based trick: | ||||
http://sebulba.wikispaces.com/recipe+thread2. I'd already tried | ||||
this in the past, but hadn't been able to make it work before. So | ||||
far it looks like it's actually running, but this needs more | ||||
testing. If it really works, I'll be *very* happy, and we'll owe | ||||
a huge thank you to Tomer. My current implementation is ugly, | ||||
hackish and uses nasty globals, but I don't want to try and clean | ||||
anything up until we know if it actually works. | ||||
NOTE: this feature needs ctypes to work. ctypes is included in | ||||
Python2.5, but 2.4 users will need to manually install it. This | ||||
feature makes multi-threaded shells so much more usable that it's | ||||
a minor price to pay (ctypes is very easy to install, already a | ||||
requirement for win32 and available in major linux distros). | ||||
2007-04-04 Ville Vainio <vivainio@gmail.com> | ||||
* Extensions/ipy_completers.py, ipy_stock_completers.py: | ||||
Moved implementations of 'bundled' completers to ipy_completers.py, | ||||
they are only enabled in ipy_stock_completers.py. | ||||
2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/PyColorize.py (Parser.format2): Fix identation of | ||||
colorzied output and return early if color scheme is NoColor, to | ||||
avoid unnecessary and expensive tokenization. Closes #131. | ||||
2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Debugger.py: disable the use of pydb version 1.17. It | ||||
has a critical bug (a missing import that makes post-mortem not | ||||
work at all). Unfortunately as of this time, this is the version | ||||
shipped with Ubuntu Edgy, so quite a few people have this one. I | ||||
hope Edgy will update to a more recent package. | ||||
2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/iplib.py (_prefilter): close #52, second part of a patch | ||||
set by Stefan (only the first part had been applied before). | ||||
* IPython/Extensions/ipy_stock_completers.py (module_completer): | ||||
remove usage of the dangerous pkgutil.walk_packages(). See | ||||
details in comments left in the code. | ||||
* IPython/Magic.py (magic_whos): add support for numpy arrays | ||||
similar to what we had for Numeric. | ||||
* IPython/completer.py (IPCompleter.complete): extend the | ||||
complete() call API to support completions by other mechanisms | ||||
than readline. Closes #109. | ||||
* IPython/iplib.py (safe_execfile): add a safeguard under Win32 to | ||||
protect against a bug in Python's execfile(). Closes #123. | ||||
2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/iplib.py (split_user_input): ensure that when splitting | ||||
user input, the part that can be treated as a python name is pure | ||||
ascii (Python identifiers MUST be pure ascii). Part of the | ||||
ongoing Unicode support work. | ||||
* IPython/Prompts.py (prompt_specials_color): Add \N for the | ||||
actual prompt number, without any coloring. This allows users to | ||||
produce numbered prompts with their own colors. Added after a | ||||
report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>. | ||||
2007-03-31 Walter Doerwald <walter@livinglogic.de> | ||||
* IPython/Extensions/igrid.py: Map the return key | ||||
to enter() and shift-return to enterattr(). | ||||
2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Magic.py (magic_psearch): add unicode support by | ||||
encoding to ascii the input, since this routine also only deals | ||||
with valid Python names. Fixes a bug reported by Stefan. | ||||
2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/Magic.py (_inspect): convert unicode input into ascii | ||||
before trying to evaluate it as a Python identifier. This fixes a | ||||
problem that the new unicode support had introduced when analyzing | ||||
long definition lines for functions. | ||||
2007-03-24 Walter Doerwald <walter@livinglogic.de> | ||||
* IPython/Extensions/igrid.py: Fix picking. Using | ||||
igrid with wxPython 2.6 and -wthread should work now. | ||||
igrid.display() simply tries to create a frame without | ||||
an application. Only if this fails an application is created. | ||||
2007-03-23 Walter Doerwald <walter@livinglogic.de> | ||||
* IPython/Extensions/path.py: Updated to version 2.2. | ||||
2007-03-23 Ville Vainio <vivainio@gmail.com> | ||||
* iplib.py: recursive alias expansion now works better, so that | ||||
cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top' | ||||
doesn't trip up the process, if 'd' has been aliased to 'ls'. | ||||
* Extensions/ipy_gnuglobal.py added, provides %global magic | ||||
for users of http://www.gnu.org/software/global | ||||
* iplib.py: '!command /?' now doesn't invoke IPython's help system. | ||||
Closes #52. Patch by Stefan van der Walt. | ||||
2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/FakeModule.py (FakeModule.__init__): Small fix to | ||||
respect the __file__ attribute when using %run. Thanks to a bug | ||||
report by Sebastian Rooks <sebastian.rooks-AT-free.fr>. | ||||
2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/iplib.py (raw_input): Fix mishandling of unicode at | ||||
input. Patch sent by Stefan. | ||||
2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu> | ||||
* IPython/Extensions/ipy_stock_completer.py | ||||
shlex_split, fix bug in shlex_split. len function | ||||
call was missing an if statement. Caused shlex_split to | ||||
sometimes return "" as last element. | ||||
2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/completer.py | ||||
(IPCompleter.file_matches.single_dir_expand): fix a problem | ||||
reported by Stefan, where directories containign a single subdir | ||||
would be completed too early. | ||||
* IPython/Shell.py (_load_pylab): Make the execution of 'from | ||||
pylab import *' when -pylab is given be optional. A new flag, | ||||
pylab_import_all controls this behavior, the default is True for | ||||
backwards compatibility. | ||||
* IPython/ultraTB.py (_formatTracebackLines): Added (slightly | ||||
modified) R. Bernstein's patch for fully syntax highlighted | ||||
tracebacks. The functionality is also available under ultraTB for | ||||
non-ipython users (someone using ultraTB but outside an ipython | ||||
session). They can select the color scheme by setting the | ||||
module-level global DEFAULT_SCHEME. The highlight functionality | ||||
also works when debugging. | ||||
* IPython/genutils.py (IOStream.close): small patch by | ||||
R. Bernstein for improved pydb support. | ||||
* IPython/Debugger.py (Pdb.format_stack_entry): Added patch by | ||||
DaveS <davls@telus.net> to improve support of debugging under | ||||
NTEmacs, including improved pydb behavior. | ||||
* 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 | ||||
Jorgen 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 Jorgen 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 | ||||
instead. | ||||
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 | ||||
<tom.denniston-AT-alum.dartmouth.org>. | ||||
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 | ||||
filenames. | ||||
* 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 | ||||
doctesting. | ||||
* 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/ | ||||
backslash. | ||||
* 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 | ||||
vcs_completer. | ||||
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 | ||||
explicit. | ||||
* 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 | ||||
"profile" | ||||
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 | ||||
<bpeng-AT-rice.edu>. | ||||
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 | ||||
descriptors. | ||||
* 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 | ||||
ipy_stock_completers. | ||||
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 | ||||
function | ||||
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. | ||||
http://bashdb.sourceforge.net/pydb/ | ||||
* 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 | ||||
Stefan. | ||||
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 | ||||
sys.stdout.close(). | ||||
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 | ||||
2.5. | ||||
* IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb | ||||
color scheme is updated as well when color scheme is changed | ||||
interactively. | ||||
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 | ||||
<afayolle-AT-debian.org>. | ||||
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' | ||||
attributes. | ||||
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 | ||||
prompt | ||||
* 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 | ||||
work. | ||||
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 | ||||
compatibility) | ||||
* 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 | ||||
ipapi.get(allow_dummy=True). | ||||
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 | ||||
updated. | ||||
* 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 | ||||
more. | ||||
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 | ||||
http://showmedo.com/videoListPage?listKey=PythonIPythonSeries | ||||
* 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 | ||||
http://www.scipy.net/roundup/ipython/issue53. | ||||
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" | ||||
nonsense. | ||||
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 | ||||
warnings | ||||
* 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: | ||||
http://www.python.org/pypi/pickleshare | ||||
* 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 | ||||
usage. | ||||
* 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 | ||||
\python24\scripts). | ||||
* ipapi.py: launch_new_instance, launch entry point needed for the | ||||
egg. | ||||
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 | ||||
\python24\scripts). | ||||
* ipapi.py: launch_new_instance, launch entry point needed for the | ||||
egg. | ||||
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 | ||||
<tercel-AT-gentoo.org>. | ||||
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 | ||||
Vivian. | ||||
* 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 | ||||
data. | ||||
* 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 | ||||
future. | ||||
* 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 | ||||
later. | ||||
* 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: | ||||
!ls | ||||
!!ls | ||||
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 | ||||
http://www.scipy.net/roundup/ipython/issue51. | ||||
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 | ||||
win32. | ||||
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 | ||||
<arnd.baecker-AT-web.de>. | ||||
* 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 | ||||
twister). | ||||
* 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 | ||||
http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython. | ||||
* IPython/completer.py (IPCompleter.complete): small patch to help | ||||
tab-completion under Emacs, after a suggestion by John Barnard | ||||
<barnarj-AT-ccf.org>. | ||||
* 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 | ||||
thread-safe. | ||||
(_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 | ||||
cleanly. | ||||
* 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 | ||||
informative). | ||||
* 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 | ||||
details. | ||||
* 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 | ||||
list: | ||||
http://scipy.net/pipermail/ipython-user/2005-June/000907.html | ||||
(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 | ||||
<hans_meine-AT-gmx.net> | ||||
(_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 | ||||
finishing. | ||||
* 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 | ||||
<chmod007-AT-mac.com>. | ||||
(InteractiveShell.__init__): prevent certain special magics from | ||||
being shadowed by aliases. Closes | ||||
http://www.scipy.net/roundup/ipython/issue41. | ||||
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 | ||||
http://www.scipy.net/roundup/ipython/issue38. | ||||
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 | ||||
make it easier to do more serious modifications in the future. | ||||
* IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh, | ||||
which broke in .15 (thanks to a report by Ville). | ||||
* IPython/Itpl.py (Itpl.__init__): add unicode support (it may not | ||||
be quite correct, I know next to nothing about unicode). This | ||||
will allow unicode strings to be used in prompts, amongst other | ||||
cases. It also will prevent ipython from crashing when unicode | ||||
shows up unexpectedly in many places. If ascii encoding fails, we | ||||
assume utf_8. Currently the encoding is not a user-visible | ||||
setting, though it could be made so if there is demand for it. | ||||
* IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack. | ||||
* IPython/Struct.py (Struct.merge): switch keys() to iterator. | ||||
* IPython/background_jobs.py: moved 2.2 compatibility to genutils. | ||||
* IPython/genutils.py: Add 2.2 compatibility here, so all other | ||||
code can work transparently for 2.2/2.3. | ||||
2005-07-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (ExceptionColors): Make a global variable | ||||
out of the color scheme table used for coloring exception | ||||
tracebacks. This allows user code to add new schemes at runtime. | ||||
This is a minimally modified version of the patch at | ||||
http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw | ||||
for the contribution. | ||||
* IPython/FlexCompleter.py (Completer.attr_matches): Add a | ||||
slightly modified version of the patch in | ||||
http://www.scipy.net/roundup/ipython/issue34, which also allows me | ||||
to remove the previous try/except solution (which was costlier). | ||||
Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix. | ||||
2005-06-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (write/write_err): Add methods to abstract all | ||||
I/O a bit more. | ||||
* IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation | ||||
warning, reported by Aric Hagberg, fix by JD Hunter. | ||||
2005-06-02 *** Released version 0.6.15 | ||||
2005-06-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (MagicCompleter.file_matches): Fix | ||||
tab-completion of filenames within open-quoted strings. Note that | ||||
this requires that in ~/.ipython/ipythonrc, users change the | ||||
readline delimiters configuration to read: | ||||
readline_remove_delims -/~ | ||||
2005-05-31 *** Released version 0.6.14 | ||||
2005-05-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks | ||||
with files not on the filesystem. Reported by Eliyahu Sandler | ||||
<eli@gondolin.net> | ||||
2005-05-22 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py: Fix a few crashes in the --upgrade option. | ||||
After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>. | ||||
2005-05-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (safe_execfile): close a file which could be | ||||
left open (causing problems in win32, which locks open files). | ||||
Thanks to a bug report by D Brown <dbrown2@yahoo.com>. | ||||
2005-05-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all | ||||
keyword arguments correctly to safe_execfile(). | ||||
2005-05-13 Fernando Perez <fperez@colorado.edu> | ||||
* ipython.1: Added info about Qt to manpage, and threads warning | ||||
to usage page (invoked with --help). | ||||
* IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added | ||||
new matcher (it goes at the end of the priority list) to do | ||||
tab-completion on named function arguments. Submitted by George | ||||
Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at | ||||
http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html | ||||
for more details. | ||||
* IPython/Magic.py (magic_run): Added new -e flag to ignore | ||||
SystemExit exceptions in the script being run. Thanks to a report | ||||
by danny shevitz <danny_shevitz-AT-yahoo.com>, about this | ||||
producing very annoying behavior when running unit tests. | ||||
2005-05-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (handle_auto): fixed auto-quoting and parens, | ||||
which I'd broken (again) due to a changed regexp. In the process, | ||||
added ';' as an escape to auto-quote the whole line without | ||||
splitting its arguments. Thanks to a report by Jerry McRae | ||||
<qrs0xyc02-AT-sneakemail.com>. | ||||
* IPython/ultraTB.py (VerboseTB.text): protect against rare but | ||||
possible crashes caused by a TokenError. Reported by Ed Schofield | ||||
<schofield-AT-ftw.at>. | ||||
2005-05-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6. | ||||
2005-04-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellQt): Thanks to Denis Rivière | ||||
<nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin | ||||
Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option | ||||
which provides support for Qt interactive usage (similar to the | ||||
existing one for WX and GTK). This had been often requested. | ||||
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. | ||||
2005-03-02 *** Released version 0.6.12 | ||||
2005-03-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (handle_magic): log magic calls properly as | ||||
ipmagic() function calls. | ||||
* IPython/Magic.py (magic_time): Improved %time to support | ||||
statements and provide wall-clock as well as CPU time. | ||||
2005-02-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/hooks.py: New hooks module, to expose user-modifiable | ||||
IPython functionality in a clean manner. For now only the editor | ||||
hook is actually written, and other thigns which I intend to turn | ||||
into proper hooks aren't yet there. The display and prefilter | ||||
stuff, for example, should be hooks. But at least now the | ||||
framework is in place, and the rest can be moved here with more | ||||
time later. IPython had had a .hooks variable for a long time for | ||||
this purpose, but I'd never actually used it for anything. | ||||
2005-02-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): make the default ipython | ||||
directory be called _ipython under win32, to follow more the | ||||
naming peculiarities of that platform (where buggy software like | ||||
Visual Sourcesafe breaks with .named directories). Reported by | ||||
Ville Vainio. | ||||
2005-02-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): removed a few | ||||
auto_aliases for win32 which were causing problems. Users can | ||||
define the ones they personally like. | ||||
2005-02-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (magic_time): new magic to time execution of | ||||
expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>. | ||||
2005-02-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings | ||||
into keys (for prompts, for example). | ||||
* IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty | ||||
prompts in case users want them. This introduces a small behavior | ||||
change: ipython does not automatically add a space to all prompts | ||||
anymore. To get the old prompts with a space, users should add it | ||||
manually to their ipythonrc file, so for example prompt_in1 should | ||||
now read 'In [\#]: ' instead of 'In [\#]:'. | ||||
(BasePrompt.__init__): New option prompts_pad_left (only in rc | ||||
file) to control left-padding of secondary prompts. | ||||
* IPython/Magic.py (Magic.profile_missing_notice): Don't crash if | ||||
the profiler can't be imported. Fix for Debian, which removed | ||||
profile.py because of License issues. I applied a slightly | ||||
modified version of the original Debian patch at | ||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500. | ||||
2005-02-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (native_line_ends): Fix bug which would | ||||
cause improper line-ends under win32 b/c I was not opening files | ||||
in binary mode. Bug report and fix thanks to Ville. | ||||
* IPython/iplib.py (handle_auto): Fix bug which I introduced when | ||||
trying to catch spurious foo[1] autocalls. My fix actually broke | ||||
',/' autoquote/call with explicit escape (bad regexp). | ||||
2005-02-15 *** Released version 0.6.11 | ||||
2005-02-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/background_jobs.py: New background job management | ||||
subsystem. This is implemented via a new set of classes, and | ||||
IPython now provides a builtin 'jobs' object for background job | ||||
execution. A convenience %bg magic serves as a lightweight | ||||
frontend for starting the more common type of calls. This was | ||||
inspired by discussions with B. Granger and the BackgroundCommand | ||||
class described in the book Python Scripting for Computational | ||||
Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting | ||||
(although ultimately no code from this text was used, as IPython's | ||||
system is a separate implementation). | ||||
* IPython/iplib.py (MagicCompleter.python_matches): add new option | ||||
to control the completion of single/double underscore names | ||||
separately. As documented in the example ipytonrc file, the | ||||
readline_omit__names variable can now be set to 2, to omit even | ||||
single underscore names. Thanks to a patch by Brian Wong | ||||
<BrianWong-AT-AirgoNetworks.Com>. | ||||
(InteractiveShell.__init__): Fix bug which would cause foo[1] to | ||||
be autocalled as foo([1]) if foo were callable. A problem for | ||||
things which are both callable and implement __getitem__. | ||||
(init_readline): Fix autoindentation for win32. Thanks to a patch | ||||
by Vivian De Smedt <vivian-AT-vdesmedt.com>. | ||||
2005-02-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): Disabled the stout traps | ||||
which I had written long ago to sort out user error messages which | ||||
may occur during startup. This seemed like a good idea initially, | ||||
but it has proven a disaster in retrospect. I don't want to | ||||
change much code for now, so my fix is to set the internal 'debug' | ||||
flag to true everywhere, whose only job was precisely to control | ||||
this subsystem. This closes issue 28 (as well as avoiding all | ||||
sorts of strange hangups which occur from time to time). | ||||
2005-02-07 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the | ||||
previous call produced a syntax error. | ||||
* IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting | ||||
classes without constructor. | ||||
2005-02-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (MagicCompleter.complete): Extend the list of | ||||
completions with the results of each matcher, so we return results | ||||
to the user from all namespaces. This breaks with ipython | ||||
tradition, but I think it's a nicer behavior. Now you get all | ||||
possible completions listed, from all possible namespaces (python, | ||||
filesystem, magics...) After a request by John Hunter | ||||
<jdhunter-AT-nitace.bsd.uchicago.edu>. | ||||
2005-02-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (magic_prun): Fix bug where prun would fail if | ||||
the call had quote characters in it (the quotes were stripped). | ||||
2005-01-31 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): reduce reliance on | ||||
Itpl.itpl() to make the code more robust against psyco | ||||
optimizations. | ||||
* IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead | ||||
of causing an exception. Quicker, cleaner. | ||||
2005-01-28 Fernando Perez <fperez@colorado.edu> | ||||
* scripts/ipython_win_post_install.py (install): hardcode | ||||
sys.prefix+'python.exe' as the executable path. It turns out that | ||||
during the post-installation run, sys.executable resolves to the | ||||
name of the binary installer! I should report this as a distutils | ||||
bug, I think. I updated the .10 release with this tiny fix, to | ||||
avoid annoying the lists further. | ||||
2005-01-27 *** Released version 0.6.10 | ||||
2005-01-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (norm): Added 'inf' as optional name for | ||||
L-infinity norm, included references to mathworld.com for vector | ||||
norm definitions. | ||||
(amin/amax): added amin/amax for array min/max. Similar to what | ||||
pylab ships with after the recent reorganization of names. | ||||
(spike/spike_odd): removed deprecated spike/spike_odd functions. | ||||
* ipython.el: committed Alex's recent fixes and improvements. | ||||
Tested with python-mode from CVS, and it looks excellent. Since | ||||
python-mode hasn't released anything in a while, I'm temporarily | ||||
putting a copy of today's CVS (v 4.70) of python-mode in: | ||||
http://ipython.scipy.org/tmp/python-mode.el | ||||
* scripts/ipython_win_post_install.py (install): Win32 fix to use | ||||
sys.executable for the executable name, instead of assuming it's | ||||
called 'python.exe' (the post-installer would have produced broken | ||||
setups on systems with a differently named python binary). | ||||
* IPython/PyColorize.py (Parser.__call__): change explicit '\n' | ||||
references to os.linesep, to make the code more | ||||
platform-independent. This is also part of the win32 coloring | ||||
fixes. | ||||
* IPython/genutils.py (page_dumb): Remove attempts to chop long | ||||
lines, which actually cause coloring bugs because the length of | ||||
the line is very difficult to correctly compute with embedded | ||||
escapes. This was the source of all the coloring problems under | ||||
Win32. I think that _finally_, Win32 users have a properly | ||||
working ipython in all respects. This would never have happened | ||||
if not for Gary Bishop and Viktor Ransmayr's great help and work. | ||||
2005-01-26 *** Released version 0.6.9 | ||||
2005-01-25 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py: finally, we have a true Windows installer, thanks to | ||||
the excellent work of Viktor Ransmayr | ||||
<viktor.ransmayr-AT-t-online.de>. The docs have been updated for | ||||
Windows users. The setup routine is quite a bit cleaner thanks to | ||||
this, and the post-install script uses the proper functions to | ||||
allow a clean de-installation using the standard Windows Control | ||||
Panel. | ||||
* IPython/genutils.py (get_home_dir): changed to use the $HOME | ||||
environment variable under all OSes (including win32) if | ||||
available. This will give consistency to win32 users who have set | ||||
this variable for any reason. If os.environ['HOME'] fails, the | ||||
previous policy of using HOMEDRIVE\HOMEPATH kicks in. | ||||
2005-01-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (empty_like): add empty_like(), similar to | ||||
zeros_like() but taking advantage of the new empty() Numeric routine. | ||||
2005-01-23 *** Released version 0.6.8 | ||||
2005-01-22 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the | ||||
automatic show() calls. After discussing things with JDH, it | ||||
turns out there are too many corner cases where this can go wrong. | ||||
It's best not to try to be 'too smart', and simply have ipython | ||||
reproduce as much as possible the default behavior of a normal | ||||
python shell. | ||||
* IPython/iplib.py (InteractiveShell.__init__): Modified the | ||||
line-splitting regexp and _prefilter() to avoid calling getattr() | ||||
on assignments. This closes | ||||
http://www.scipy.net/roundup/ipython/issue24. Note that Python's | ||||
readline uses getattr(), so a simple <TAB> keypress is still | ||||
enough to trigger getattr() calls on an object. | ||||
2005-01-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run | ||||
docstring under pylab so it doesn't mask the original. | ||||
2005-01-21 *** Released version 0.6.7 | ||||
2005-01-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with | ||||
signal handling for win32 users in multithreaded mode. | ||||
2005-01-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting | ||||
instances with no __init__. After a crash report by Norbert Nemec | ||||
<Norbert-AT-nemec-online.de>. | ||||
2005-01-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of | ||||
names for verbose exceptions, when multiple dotted names and the | ||||
'parent' object were present on the same line. | ||||
2005-01-11 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (flag_calls): new utility to trap and flag | ||||
calls in functions. I need it to clean up matplotlib support. | ||||
Also removed some deprecated code in genutils. | ||||
* IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so | ||||
that matplotlib scripts called with %run, which don't call show() | ||||
themselves, still have their plotting windows open. | ||||
2005-01-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw | ||||
<astraw-AT-caltech.edu>, to fix gtk deprecation warnings. | ||||
2004-12-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MTInteractiveShell.runcode): Get rid of | ||||
parent_runcode, which was an eyesore. The same result can be | ||||
obtained with Python's regular superclass mechanisms. | ||||
2004-12-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem | ||||
reported by Prabhu. | ||||
(Magic.magic_sx): direct all errors to Term.cerr (defaults to | ||||
sys.stderr) instead of explicitly calling sys.stderr. This helps | ||||
maintain our I/O abstractions clean, for future GUI embeddings. | ||||
* IPython/genutils.py (info): added new utility for sys.stderr | ||||
unified info message handling (thin wrapper around warn()). | ||||
* IPython/ultraTB.py (VerboseTB.text): Fix misreported global | ||||
composite (dotted) names on verbose exceptions. | ||||
(VerboseTB.nullrepr): harden against another kind of errors which | ||||
Python's inspect module can trigger, and which were crashing | ||||
IPython. Thanks to a report by Marco Lombardi | ||||
<mlombard-AT-ma010192.hq.eso.org>. | ||||
2004-12-13 *** Released version 0.6.6 | ||||
2004-12-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors | ||||
generated by pygtk upon initialization if it was built without | ||||
threads (for matplotlib users). After a crash reported by | ||||
Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>. | ||||
* IPython/ipmaker.py (make_IPython): fix small bug in the | ||||
import_some parameter for multiple imports. | ||||
* IPython/iplib.py (ipmagic): simplified the interface of | ||||
ipmagic() to take a single string argument, just as it would be | ||||
typed at the IPython cmd line. | ||||
(ipalias): Added new ipalias() with an interface identical to | ||||
ipmagic(). This completes exposing a pure python interface to the | ||||
alias and magic system, which can be used in loops or more complex | ||||
code where IPython's automatic line mangling is not active. | ||||
* IPython/genutils.py (timing): changed interface of timing to | ||||
simply run code once, which is the most common case. timings() | ||||
remains unchanged, for the cases where you want multiple runs. | ||||
* IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a | ||||
bug where Python2.2 crashes with exec'ing code which does not end | ||||
in a single newline. Python 2.3 is OK, so I hadn't noticed this | ||||
before. | ||||
2004-12-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_prun): changed name of option from | ||||
-t to -T, to accomodate the new -t flag in %run (the %run and | ||||
%prun options are kind of intermixed, and it's not easy to change | ||||
this with the limitations of python's getopt). | ||||
* IPython/Magic.py (Magic.magic_run): Added new -t option to time | ||||
the execution of scripts. It's not as fine-tuned as timeit.py, | ||||
but it works from inside ipython (and under 2.2, which lacks | ||||
timeit.py). Optionally a number of runs > 1 can be given for | ||||
timing very short-running code. | ||||
* IPython/genutils.py (uniq_stable): new routine which returns a | ||||
list of unique elements in any iterable, but in stable order of | ||||
appearance. I needed this for the ultraTB fixes, and it's a handy | ||||
utility. | ||||
* IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of | ||||
dotted names in Verbose exceptions. This had been broken since | ||||
the very start, now x.y will properly be printed in a Verbose | ||||
traceback, instead of x being shown and y appearing always as an | ||||
'undefined global'. Getting this to work was a bit tricky, | ||||
because by default python tokenizers are stateless. Saved by | ||||
python's ability to easily add a bit of state to an arbitrary | ||||
function (without needing to build a full-blown callable object). | ||||
Also big cleanup of this code, which had horrendous runtime | ||||
lookups of zillions of attributes for colorization. Moved all | ||||
this code into a few templates, which make it cleaner and quicker. | ||||
Printout quality was also improved for Verbose exceptions: one | ||||
variable per line, and memory addresses are printed (this can be | ||||
quite handy in nasty debugging situations, which is what Verbose | ||||
is for). | ||||
* IPython/ipmaker.py (make_IPython): Do NOT execute files named in | ||||
the command line as scripts to be loaded by embedded instances. | ||||
Doing so has the potential for an infinite recursion if there are | ||||
exceptions thrown in the process. This fixes a strange crash | ||||
reported by Philippe MULLER <muller-AT-irit.fr>. | ||||
2004-12-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.use): Change pylab support | ||||
to reflect new names in matplotlib, which now expose the | ||||
matlab-compatible interface via a pylab module instead of the | ||||
'matlab' name. The new code is backwards compatible, so users of | ||||
all matplotlib versions are OK. Patch by J. Hunter. | ||||
* IPython/OInspect.py (Inspector.pinfo): Add to object? printing | ||||
of __init__ docstrings for instances (class docstrings are already | ||||
automatically printed). Instances with customized docstrings | ||||
(indep. of the class) are also recognized and all 3 separate | ||||
docstrings are printed (instance, class, constructor). After some | ||||
comments/suggestions by J. Hunter. | ||||
2004-12-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (MagicCompleter.complete): Remove annoying | ||||
warnings when tab-completion fails and triggers an exception. | ||||
2004-12-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (magic_prun): Fix bug where an exception would | ||||
be triggered when using 'run -p'. An incorrect option flag was | ||||
being set ('d' instead of 'D'). | ||||
(manpage): fix missing escaped \- sign. | ||||
2004-11-30 *** Released version 0.6.5 | ||||
2004-11-30 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint | ||||
setting with -d option. | ||||
* setup.py (docfiles): Fix problem where the doc glob I was using | ||||
was COMPLETELY BROKEN. It was giving the right files by pure | ||||
accident, but failed once I tried to include ipython.el. Note: | ||||
glob() does NOT allow you to do exclusion on multiple endings! | ||||
2004-11-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/usage.py (__doc__): cleaned up usage docstring, by using | ||||
the manpage as the source. Better formatting & consistency. | ||||
* IPython/Magic.py (magic_run): Added new -d option, to run | ||||
scripts under the control of the python pdb debugger. Note that | ||||
this required changing the %prun option -d to -D, to avoid a clash | ||||
(since %run must pass options to %prun, and getopt is too dumb to | ||||
handle options with string values with embedded spaces). Thanks | ||||
to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>. | ||||
(magic_who_ls): added type matching to %who and %whos, so that one | ||||
can filter their output to only include variables of certain | ||||
types. Another suggestion by Matthew. | ||||
(magic_whos): Added memory summaries in kb and Mb for arrays. | ||||
(magic_who): Improve formatting (break lines every 9 vars). | ||||
2004-11-28 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.log): Fix bug in syncing the input | ||||
cache when empty lines were present. | ||||
2004-11-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/usage.py (__doc__): document the re-activated threading | ||||
options for WX and GTK. | ||||
2004-11-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (start): Added Prabhu's big patch to reactivate | ||||
the -wthread and -gthread options, along with a new -tk one to try | ||||
and coordinate Tk threading with wx/gtk. The tk support is very | ||||
platform dependent, since it seems to require Tcl and Tk to be | ||||
built with threads (Fedora1/2 appears NOT to have it, but in | ||||
Prabhu's Debian boxes it works OK). But even with some Tk | ||||
limitations, this is a great improvement. | ||||
* IPython/Prompts.py (prompt_specials_color): Added \t for time | ||||
info in user prompts. Patch by Prabhu. | ||||
2004-11-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (ask_yes_no): Add check for a max of 20 | ||||
EOFErrors and bail, to avoid infinite loops if a non-terminating | ||||
file is fed into ipython. Patch submitted in issue 19 by user, | ||||
many thanks. | ||||
* IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger | ||||
autoquote/parens in continuation prompts, which can cause lots of | ||||
problems. Closes roundup issue 20. | ||||
2004-11-17 Fernando Perez <fperez@colorado.edu> | ||||
* debian/control (Build-Depends-Indep): Fix dpatch dependency, | ||||
reported as debian bug #280505. I'm not sure my local changelog | ||||
entry has the proper debian format (Jack?). | ||||
2004-11-08 *** Released version 0.6.4 | ||||
2004-11-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (init_readline): Fix exit message for Windows | ||||
when readline is active. Thanks to a report by Eric Jones | ||||
<eric-AT-enthought.com>. | ||||
2004-11-07 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page): Add a trap for OSError exceptions, | ||||
sometimes seen by win2k/cygwin users. | ||||
2004-11-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (interact): Change the handling of %Exit from | ||||
trying to propagate a SystemExit to an internal ipython flag. | ||||
This is less elegant than using Python's exception mechanism, but | ||||
I can't get that to work reliably with threads, so under -pylab | ||||
%Exit was hanging IPython. Cross-thread exception handling is | ||||
really a bitch. Thaks to a bug report by Stephen Walton | ||||
<stephen.walton-AT-csun.edu>. | ||||
2004-11-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (raw_input_original): store a pointer to the | ||||
true raw_input to harden against code which can modify it | ||||
(wx.py.PyShell does this and would otherwise crash ipython). | ||||
Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>. | ||||
* IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for | ||||
Ctrl-C problem, which does not mess up the input line. | ||||
2004-11-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Release.py: Changed licensing to BSD, in all files. | ||||
(name): lowercase name for tarball/RPM release. | ||||
* IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for | ||||
use throughout ipython. | ||||
* IPython/Magic.py (Magic._ofind): Switch to using the new | ||||
OInspect.getdoc() function. | ||||
* IPython/Shell.py (sigint_handler): Hack to ignore the execution | ||||
of the line currently being canceled via Ctrl-C. It's extremely | ||||
ugly, but I don't know how to do it better (the problem is one of | ||||
handling cross-thread exceptions). | ||||
2004-10-28 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (signal_handler): add signal handlers to trap | ||||
SIGINT and SIGSEGV in threaded code properly. Thanks to a bug | ||||
report by Francesc Alted. | ||||
2004-10-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @ | ||||
to % for pysh syntax extensions. | ||||
2004-10-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_whos): modify output of Numeric | ||||
arrays to print a more useful summary, without calling str(arr). | ||||
This avoids the problem of extremely lengthy computations which | ||||
occur if arr is large, and appear to the user as a system lockup | ||||
with 100% cpu activity. After a suggestion by Kristian Sandberg | ||||
<Kristian.Sandberg@colorado.edu>. | ||||
(Magic.__init__): fix bug in global magic escapes not being | ||||
correctly set. | ||||
2004-10-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (__license__): change to absolute imports of | ||||
ipython's own internal packages, to start adapting to the absolute | ||||
import requirement of PEP-328. | ||||
* IPython/genutils.py (__author__): Fix coding to utf-8 on all | ||||
files, and standardize author/license marks through the Release | ||||
module instead of having per/file stuff (except for files with | ||||
particular licenses, like the MIT/PSF-licensed codes). | ||||
* IPython/Debugger.py: remove dead code for python 2.1 | ||||
2004-10-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (ipmagic): New function for accessing magics | ||||
via a normal python function call. | ||||
* IPython/Magic.py (Magic.magic_magic): Change the magic escape | ||||
from '@' to '%', to accomodate the new @decorator syntax of python | ||||
2.4. | ||||
2004-09-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to | ||||
matplotlib.use to prevent running scripts which try to switch | ||||
interactive backends from within ipython. This will just crash | ||||
the python interpreter, so we can't allow it (but a detailed error | ||||
is given to the user). | ||||
2004-09-28 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.mplot_exec): | ||||
matplotlib-related fixes so that using @run with non-matplotlib | ||||
scripts doesn't pop up spurious plot windows. This requires | ||||
matplotlib >= 0.63, where I had to make some changes as well. | ||||
* IPython/ipmaker.py (make_IPython): update version requirement to | ||||
python 2.2. | ||||
* IPython/iplib.py (InteractiveShell.mainloop): Add an optional | ||||
banner arg for embedded customization. | ||||
* IPython/Magic.py (Magic.__init__): big cleanup to remove all | ||||
explicit uses of __IP as the IPython's instance name. Now things | ||||
are properly handled via the shell.name value. The actual code | ||||
is a bit ugly b/c I'm doing it via a global in Magic.py, but this | ||||
is much better than before. I'll clean things completely when the | ||||
magic stuff gets a real overhaul. | ||||
* ipython.1: small fixes, sent in by Jack Moffit. He also sent in | ||||
minor changes to debian dir. | ||||
* IPython/iplib.py (InteractiveShell.__init__): Fix adding a | ||||
pointer to the shell itself in the interactive namespace even when | ||||
a user-supplied dict is provided. This is needed for embedding | ||||
purposes (found by tests with Michel Sanner). | ||||
2004-09-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/ipythonrc: remove []{} from | ||||
readline_remove_delims, so that things like [modname.<TAB> do | ||||
proper completion. This disables [].TAB, but that's a less common | ||||
case than module names in list comprehensions, for example. | ||||
Thanks to a report by Andrea Riciputi. | ||||
2004-09-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid | ||||
blocking problems in win32 and osx. Fix by John. | ||||
2004-09-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug | ||||
for Win32 and OSX. Fix by John Hunter. | ||||
2004-08-30 *** Released version 0.6.3 | ||||
2004-08-30 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (isfile): Add manpages to list of dependent files to be | ||||
updated. | ||||
2004-08-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (start): I've disabled -wthread and -gthread | ||||
for now. They don't really work with standalone WX/GTK code | ||||
(though matplotlib IS working fine with both of those backends). | ||||
This will neeed much more testing. I disabled most things with | ||||
comments, so turning it back on later should be pretty easy. | ||||
* IPython/iplib.py (InteractiveShell.__init__): Fix accidental | ||||
autocalling of expressions like r'foo', by modifying the line | ||||
split regexp. Closes | ||||
http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas | ||||
Riley <ipythonbugs-AT-sabi.net>. | ||||
(InteractiveShell.mainloop): honor --nobanner with banner | ||||
extensions. | ||||
* IPython/Shell.py: Significant refactoring of all classes, so | ||||
that we can really support ALL matplotlib backends and threading | ||||
models (John spotted a bug with Tk which required this). Now we | ||||
should support single-threaded, WX-threads and GTK-threads, both | ||||
for generic code and for matplotlib. | ||||
* IPython/ipmaker.py (__call__): Changed -mpthread option to | ||||
-pylab, to simplify things for users. Will also remove the pylab | ||||
profile, since now all of matplotlib configuration is directly | ||||
handled here. This also reduces startup time. | ||||
* IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of | ||||
shell wasn't being correctly called. Also in IPShellWX. | ||||
* IPython/iplib.py (InteractiveShell.__init__): Added option to | ||||
fine-tune banner. | ||||
* IPython/numutils.py (spike): Deprecate these spike functions, | ||||
delete (long deprecated) gnuplot_exec handler. | ||||
2004-08-26 Fernando Perez <fperez@colorado.edu> | ||||
* ipython.1: Update for threading options, plus some others which | ||||
were missing. | ||||
* IPython/ipmaker.py (__call__): Added -wthread option for | ||||
wxpython thread handling. Make sure threading options are only | ||||
valid at the command line. | ||||
* scripts/ipython: moved shell selection into a factory function | ||||
in Shell.py, to keep the starter script to a minimum. | ||||
2004-08-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by | ||||
John. Along with some recent changes he made to matplotlib, the | ||||
next versions of both systems should work very well together. | ||||
2004-08-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I | ||||
tried to switch the profiling to using hotshot, but I'm getting | ||||
strange errors from prof.runctx() there. I may be misreading the | ||||
docs, but it looks weird. For now the profiling code will | ||||
continue to use the standard profiler. | ||||
2004-08-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellWX.__init__): Improvements to the WX | ||||
threaded shell, by John Hunter. It's not quite ready yet, but | ||||
close. | ||||
2004-08-22 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): tab cleanups, also | ||||
in Magic and ultraTB. | ||||
* ipython.1: document threading options in manpage. | ||||
* scripts/ipython: Changed name of -thread option to -gthread, | ||||
since this is GTK specific. I want to leave the door open for a | ||||
-wthread option for WX, which will most likely be necessary. This | ||||
change affects usage and ipmaker as well. | ||||
* IPython/Shell.py (matplotlib_shell): Add a factory function to | ||||
handle the matplotlib shell issues. Code by John Hunter | ||||
<jdhunter-AT-nitace.bsd.uchicago.edu>. | ||||
(IPShellMatplotlibWX.__init__): Rudimentary WX support. It's | ||||
broken (and disabled for end users) for now, but it puts the | ||||
infrastructure in place. | ||||
2004-08-21 Fernando Perez <fperez@colorado.edu> | ||||
* ipythonrc-pylab: Add matplotlib support. | ||||
* matplotlib_config.py: new files for matplotlib support, part of | ||||
the pylab profile. | ||||
* IPython/usage.py (__doc__): documented the threading options. | ||||
2004-08-20 Fernando Perez <fperez@colorado.edu> | ||||
* ipython: Modified the main calling routine to handle the -thread | ||||
and -mpthread options. This needs to be done as a top-level hack, | ||||
because it determines which class to instantiate for IPython | ||||
itself. | ||||
* IPython/Shell.py (MTInteractiveShell.__init__): New set of | ||||
classes to support multithreaded GTK operation without blocking, | ||||
and matplotlib with all backends. This is a lot of still very | ||||
experimental code, and threads are tricky. So it may still have a | ||||
few rough edges... This code owes a lot to | ||||
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by | ||||
Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and | ||||
to John Hunter for all the matplotlib work. | ||||
* IPython/ipmaker.py (__call__): Added -thread and -mpthread | ||||
options for gtk thread and matplotlib support. | ||||
2004-08-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): don't trigger | ||||
autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug | ||||
reported by Stephen Walton <stephen.walton-AT-csun.edu>. | ||||
2004-08-11 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (isfile): Fix build so documentation gets updated for | ||||
rpms (it was only done for .tgz builds). | ||||
2004-08-10 Fernando Perez <fperez@colorado.edu> | ||||
* genutils.py (Term): Fix misspell of stdin stream (sin->cin). | ||||
* iplib.py : Silence syntax error exceptions in tab-completion. | ||||
2004-08-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set | ||||
'color off' mark for continuation prompts. This was causing long | ||||
continuation lines to mis-wrap. | ||||
2004-08-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): Allow the shell class used | ||||
for building ipython to be a parameter. All this is necessary | ||||
right now to have a multithreaded version, but this insane | ||||
non-design will be cleaned up soon. For now, it's a hack that | ||||
works. | ||||
* IPython/Shell.py (IPShell.__init__): Stop using mutable default | ||||
args in various places. No bugs so far, but it's a dangerous | ||||
practice. | ||||
2004-07-31 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (complete): ignore SyntaxError exceptions to | ||||
fix completion of files with dots in their names under most | ||||
profiles (pysh was OK because the completion order is different). | ||||
2004-07-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): build dict of | ||||
keywords manually, b/c the one in keyword.py was removed in python | ||||
2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>. | ||||
This is NOT a bug under python 2.3 and earlier. | ||||
2004-07-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.text): Add another | ||||
linecache.checkcache() call to try to prevent inspect.py from | ||||
crashing under python 2.3. I think this fixes | ||||
http://www.scipy.net/roundup/ipython/issue17. | ||||
2004-07-26 *** Released version 0.6.2 | ||||
2004-07-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would | ||||
fail for any number. | ||||
(Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for | ||||
empty bookmarks. | ||||
2004-07-26 *** Released version 0.6.1 | ||||
2004-07-26 Fernando Perez <fperez@colorado.edu> | ||||
* ipython_win_post_install.py (run): Added pysh shortcut for Windows. | ||||
* IPython/iplib.py (protect_filename): Applied Ville's patch for | ||||
escaping '()[]{}' in filenames. | ||||
* IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for | ||||
Python 2.2 users who lack a proper shlex.split. | ||||
2004-07-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.init_readline): Add support | ||||
for reading readline's init file. I follow the normal chain: | ||||
$INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a | ||||
report by Mike Heeter. This closes | ||||
http://www.scipy.net/roundup/ipython/issue16. | ||||
2004-07-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (__init__): Add better handling of '\' under | ||||
Win32 for filenames. After a patch by Ville. | ||||
2004-07-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): fix bug where | ||||
autocalling would be triggered for 'foo is bar' if foo is | ||||
callable. I also cleaned up the autocall detection code to use a | ||||
regexp, which is faster. Bug reported by Alexander Schmolck. | ||||
* IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with | ||||
'?' in them would confuse the help system. Reported by Alex | ||||
Schmolck. | ||||
2004-07-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/GnuplotInteractive.py (__all__): added plot2. | ||||
* IPython/Gnuplot2.py (Gnuplot.plot2): added new function for | ||||
plotting dictionaries, lists or tuples of 1d arrays. | ||||
* IPython/Magic.py (Magic.magic_hist): small clenaups and | ||||
optimizations. | ||||
* IPython/iplib.py:Remove old Changelog info for cleanup. This is | ||||
the information which was there from Janko's original IPP code: | ||||
03.05.99 20:53 porto.ifm.uni-kiel.de | ||||
--Started changelog. | ||||
--make clear do what it say it does | ||||
--added pretty output of lines from inputcache | ||||
--Made Logger a mixin class, simplifies handling of switches | ||||
--Added own completer class. .string<TAB> expands to last history | ||||
line which starts with string. The new expansion is also present | ||||
with Ctrl-r from the readline library. But this shows, who this | ||||
can be done for other cases. | ||||
--Added convention that all shell functions should accept a | ||||
parameter_string This opens the door for different behaviour for | ||||
each function. @cd is a good example of this. | ||||
04.05.99 12:12 porto.ifm.uni-kiel.de | ||||
--added logfile rotation | ||||
--added new mainloop method which freezes first the namespace | ||||
07.05.99 21:24 porto.ifm.uni-kiel.de | ||||
--added the docreader classes. Now there is a help system. | ||||
-This is only a first try. Currently it's not easy to put new | ||||
stuff in the indices. But this is the way to go. Info would be | ||||
better, but HTML is every where and not everybody has an info | ||||
system installed and it's not so easy to change html-docs to info. | ||||
--added global logfile option | ||||
--there is now a hook for object inspection method pinfo needs to | ||||
be provided for this. Can be reached by two '??'. | ||||
08.05.99 20:51 porto.ifm.uni-kiel.de | ||||
--added a README | ||||
--bug in rc file. Something has changed so functions in the rc | ||||
file need to reference the shell and not self. Not clear if it's a | ||||
bug or feature. | ||||
--changed rc file for new behavior | ||||
2004-07-15 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.log): fixed recent bug where the input | ||||
cache was falling out of sync in bizarre manners when multi-line | ||||
input was present. Minor optimizations and cleanup. | ||||
(Logger): Remove old Changelog info for cleanup. This is the | ||||
information which was there from Janko's original code: | ||||
Changes to Logger: - made the default log filename a parameter | ||||
- put a check for lines beginning with !@? in log(). Needed | ||||
(even if the handlers properly log their lines) for mid-session | ||||
logging activation to work properly. Without this, lines logged | ||||
in mid session, which get read from the cache, would end up | ||||
'bare' (with !@? in the open) in the log. Now they are caught | ||||
and prepended with a #. | ||||
* IPython/iplib.py (InteractiveShell.init_readline): added check | ||||
in case MagicCompleter fails to be defined, so we don't crash. | ||||
2004-07-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation | ||||
of EPS if the requested filename ends in '.eps'. | ||||
2004-07-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix | ||||
escaping of quotes when calling the shell. | ||||
2004-07-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (CachedOutput.update): Fix problem with | ||||
gettext not working because we were clobbering '_'. Fixes | ||||
http://www.scipy.net/roundup/ipython/issue6. | ||||
2004-07-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_cd): integrated bookmark handling | ||||
into @cd. Patch by Ville. | ||||
* IPython/iplib.py (InteractiveShell.post_config_initialization): | ||||
new function to store things after ipmaker runs. Patch by Ville. | ||||
Eventually this will go away once ipmaker is removed and the class | ||||
gets cleaned up, but for now it's ok. Key functionality here is | ||||
the addition of the persistent storage mechanism, a dict for | ||||
keeping data across sessions (for now just bookmarks, but more can | ||||
be implemented later). | ||||
* IPython/Magic.py (Magic.magic_bookmark): New bookmark system, | ||||
persistent across sections. Patch by Ville, I modified it | ||||
soemwhat to allow bookmarking arbitrary dirs other than CWD. Also | ||||
added a '-l' option to list all bookmarks. | ||||
* IPython/iplib.py (InteractiveShell.atexit_operations): new | ||||
center for cleanup. Registered with atexit.register(). I moved | ||||
here the old exit_cleanup(). After a patch by Ville. | ||||
* IPython/Magic.py (get_py_filename): added '~' to the accepted | ||||
characters in the hacked shlex_split for python 2.2. | ||||
* IPython/iplib.py (file_matches): more fixes to filenames with | ||||
whitespace in them. It's not perfect, but limitations in python's | ||||
readline make it impossible to go further. | ||||
2004-06-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (file_matches): escape whitespace correctly in | ||||
filename completions. Bug reported by Ville. | ||||
2004-06-28 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (__call__): Added per-profile histories. Now | ||||
the history file will be called 'history-PROFNAME' (or just | ||||
'history' if no profile is loaded). I was getting annoyed at | ||||
getting my Numerical work history clobbered by pysh sessions. | ||||
* IPython/iplib.py (InteractiveShell.__init__): Internal | ||||
getoutputerror() function so that we can honor the system_verbose | ||||
flag for _all_ system calls. I also added escaping of # | ||||
characters here to avoid confusing Itpl. | ||||
* IPython/Magic.py (shlex_split): removed call to shell in | ||||
parse_options and replaced it with shlex.split(). The annoying | ||||
part was that in Python 2.2, shlex.split() doesn't exist, so I had | ||||
to backport it from 2.3, with several frail hacks (the shlex | ||||
module is rather limited in 2.2). Thanks to a suggestion by Ville | ||||
Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no | ||||
problem. | ||||
(Magic.magic_system_verbose): new toggle to print the actual | ||||
system calls made by ipython. Mainly for debugging purposes. | ||||
* IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which | ||||
doesn't support persistence. Reported (and fix suggested) by | ||||
Travis Caldwell <travis_caldwell2000@yahoo.com>. | ||||
2004-06-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.log): fix to handle correctly empty | ||||
continue prompts. | ||||
* IPython/Extensions/InterpreterExec.py (pysh): moved the pysh() | ||||
function (basically a big docstring) and a few more things here to | ||||
speedup startup. pysh.py is now very lightweight. We want because | ||||
it gets execfile'd, while InterpreterExec gets imported, so | ||||
byte-compilation saves time. | ||||
2004-06-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd | ||||
-NUM', which was recently broken. | ||||
* IPython/iplib.py (InteractiveShell.handle_shell_escape): allow ! | ||||
in multi-line input (but not !!, which doesn't make sense there). | ||||
* IPython/UserConfig/ipythonrc: made autoindent on by default. | ||||
It's just too useful, and people can turn it off in the less | ||||
common cases where it's a problem. | ||||
2004-06-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): big change - | ||||
special syntaxes (like alias calling) is now allied in multi-line | ||||
input. This is still _very_ experimental, but it's necessary for | ||||
efficient shell usage combining python looping syntax with system | ||||
calls. For now it's restricted to aliases, I don't think it | ||||
really even makes sense to have this for magics. | ||||
2004-06-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Extensions/InterpreterExec.py (prefilter_shell): Added | ||||
$var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd. | ||||
* IPython/Magic.py (Magic.magic_rehashx): modified to handle | ||||
extensions under Windows (after code sent by Gary Bishop). The | ||||
extensions considered 'executable' are stored in IPython's rc | ||||
structure as win_exec_ext. | ||||
* IPython/genutils.py (shell): new function, like system() but | ||||
without return value. Very useful for interactive shell work. | ||||
* IPython/Magic.py (Magic.magic_unalias): New @unalias function to | ||||
delete aliases. | ||||
* IPython/iplib.py (InteractiveShell.alias_table_update): make | ||||
sure that the alias table doesn't contain python keywords. | ||||
2004-06-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_rehash): Fix crash when | ||||
non-existent items are found in $PATH. Reported by Thorsten. | ||||
2004-06-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (complete): modified the completer so that the | ||||
order of priorities can be easily changed at runtime. | ||||
* IPython/Extensions/InterpreterExec.py (prefilter_shell): | ||||
Modified to auto-execute all lines beginning with '~', '/' or '.'. | ||||
* IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to | ||||
expand Python variables prepended with $ in all system calls. The | ||||
same was done to InteractiveShell.handle_shell_escape. Now all | ||||
system access mechanisms (!, !!, @sc, @sx and aliases) allow the | ||||
expansion of python variables and expressions according to the | ||||
syntax of PEP-215 - http://www.python.org/peps/pep-0215.html. | ||||
Though PEP-215 has been rejected, a similar (but simpler) one | ||||
seems like it will go into Python 2.4, PEP-292 - | ||||
http://www.python.org/peps/pep-0292.html. | ||||
I'll keep the full syntax of PEP-215, since IPython has since the | ||||
start used Ka-Ping Yee's reference implementation discussed there | ||||
(Itpl), and I actually like the powerful semantics it offers. | ||||
In order to access normal shell variables, the $ has to be escaped | ||||
via an extra $. For example: | ||||
In [7]: PATH='a python variable' | ||||
In [8]: !echo $PATH | ||||
a python variable | ||||
In [9]: !echo $$PATH | ||||
/usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:... | ||||
(Magic.parse_options): escape $ so the shell doesn't evaluate | ||||
things prematurely. | ||||
* IPython/iplib.py (InteractiveShell.call_alias): added the | ||||
ability for aliases to expand python variables via $. | ||||
* IPython/Magic.py (Magic.magic_rehash): based on the new alias | ||||
system, now there's a @rehash/@rehashx pair of magics. These work | ||||
like the csh rehash command, and can be invoked at any time. They | ||||
build a table of aliases to everything in the user's $PATH | ||||
(@rehash uses everything, @rehashx is slower but only adds | ||||
executable files). With this, the pysh.py-based shell profile can | ||||
now simply call rehash upon startup, and full access to all | ||||
programs in the user's path is obtained. | ||||
* IPython/iplib.py (InteractiveShell.call_alias): The new alias | ||||
functionality is now fully in place. I removed the old dynamic | ||||
code generation based approach, in favor of a much lighter one | ||||
based on a simple dict. The advantage is that this allows me to | ||||
now have thousands of aliases with negligible cost (unthinkable | ||||
with the old system). | ||||
2004-06-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (__init__): extended MagicCompleter class to | ||||
also complete (last in priority) on user aliases. | ||||
* IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in | ||||
call to eval. | ||||
(ItplNS.__init__): Added a new class which functions like Itpl, | ||||
but allows configuring the namespace for the evaluation to occur | ||||
in. | ||||
2004-06-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.runcode): modify to print a | ||||
better message when 'exit' or 'quit' are typed (a common newbie | ||||
confusion). | ||||
* IPython/Magic.py (Magic.magic_colors): Added the runtime color | ||||
check for Windows users. | ||||
* IPython/iplib.py (InteractiveShell.user_setup): removed | ||||
disabling of colors for Windows. I'll test at runtime and issue a | ||||
warning if Gary's readline isn't found, as to nudge users to | ||||
download it. | ||||
2004-06-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (Stream.__init__): changed to print errors | ||||
to sys.stderr. I had a circular dependency here. Now it's | ||||
possible to run ipython as IDLE's shell (consider this pre-alpha, | ||||
since true stdout things end up in the starting terminal instead | ||||
of IDLE's out). | ||||
* IPython/Prompts.py (Prompt2.set_colors): prevent crashes for | ||||
users who haven't # updated their prompt_in2 definitions. Remove | ||||
eventually. | ||||
(multiple_replace): added credit to original ASPN recipe. | ||||
2004-06-15 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the | ||||
list of auto-defined aliases. | ||||
2004-06-13 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (scriptfiles): Don't trigger win_post_install unless an | ||||
install was really requested (so setup.py can be used for other | ||||
things under Windows). | ||||
2004-06-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.create_log): Manually remove any old | ||||
backup, since os.remove may fail under Windows. Fixes bug | ||||
reported by Thorsten. | ||||
2004-06-09 Fernando Perez <fperez@colorado.edu> | ||||
* examples/example-embed.py: fixed all references to %n (replaced | ||||
with \\# for ps1/out prompts and with \\D for ps2 prompts). Done | ||||
for all examples and the manual as well. | ||||
2004-06-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt | ||||
alignment and color management. All 3 prompt subsystems now | ||||
inherit from BasePrompt. | ||||
* tools/release: updates for windows installer build and tag rpms | ||||
with python version (since paths are fixed). | ||||
* IPython/UserConfig/ipythonrc: modified to use \# instead of %n, | ||||
which will become eventually obsolete. Also fixed the default | ||||
prompt_in2 to use \D, so at least new users start with the correct | ||||
defaults. | ||||
WARNING: Users with existing ipythonrc files will need to apply | ||||
this fix manually! | ||||
* setup.py: make windows installer (.exe). This is finally the | ||||
integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>, | ||||
which I hadn't included because it required Python 2.3 (or recent | ||||
distutils). | ||||
* IPython/usage.py (__doc__): update docs (and manpage) to reflect | ||||
usage of new '\D' escape. | ||||
* IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which | ||||
lacks os.getuid()) | ||||
(CachedOutput.set_colors): Added the ability to turn coloring | ||||
on/off with @colors even for manually defined prompt colors. It | ||||
uses a nasty global, but it works safely and via the generic color | ||||
handling mechanism. | ||||
(Prompt2.__init__): Introduced new escape '\D' for continuation | ||||
prompts. It represents the counter ('\#') as dots. | ||||
*** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will | ||||
need to update their ipythonrc files and replace '%n' with '\D' in | ||||
their prompt_in2 settings everywhere. Sorry, but there's | ||||
otherwise no clean way to get all prompts to properly align. The | ||||
ipythonrc shipped with IPython has been updated. | ||||
2004-06-07 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (isfile): Pass local_icons option to latex2html, so the | ||||
resulting HTML file is self-contained. Thanks to | ||||
dryice-AT-liu.com.cn for the tip. | ||||
* pysh.py: I created a new profile 'shell', which implements a | ||||
_rudimentary_ IPython-based shell. This is in NO WAY a realy | ||||
system shell, nor will it become one anytime soon. It's mainly | ||||
meant to illustrate the use of the new flexible bash-like prompts. | ||||
I guess it could be used by hardy souls for true shell management, | ||||
but it's no tcsh/bash... pysh.py is loaded by the 'shell' | ||||
profile. This uses the InterpreterExec extension provided by | ||||
W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl> | ||||
* IPython/Prompts.py (PromptOut.__str__): now it will correctly | ||||
auto-align itself with the length of the previous input prompt | ||||
(taking into account the invisible color escapes). | ||||
(CachedOutput.__init__): Large restructuring of this class. Now | ||||
all three prompts (primary1, primary2, output) are proper objects, | ||||
managed by the 'parent' CachedOutput class. The code is still a | ||||
bit hackish (all prompts share state via a pointer to the cache), | ||||
but it's overall far cleaner than before. | ||||
* IPython/genutils.py (getoutputerror): modified to add verbose, | ||||
debug and header options. This makes the interface of all getout* | ||||
functions uniform. | ||||
(SystemExec.getoutputerror): added getoutputerror to SystemExec. | ||||
* IPython/Magic.py (Magic.default_option): added a function to | ||||
allow registering default options for any magic command. This | ||||
makes it easy to have profiles which customize the magics globally | ||||
for a certain use. The values set through this function are | ||||
picked up by the parse_options() method, which all magics should | ||||
use to parse their options. | ||||
* IPython/genutils.py (warn): modified the warnings framework to | ||||
use the Term I/O class. I'm trying to slowly unify all of | ||||
IPython's I/O operations to pass through Term. | ||||
* IPython/Prompts.py (Prompt2._str_other): Added functionality in | ||||
the secondary prompt to correctly match the length of the primary | ||||
one for any prompt. Now multi-line code will properly line up | ||||
even for path dependent prompts, such as the new ones available | ||||
via the prompt_specials. | ||||
2004-06-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (prompt_specials): Added the ability to have | ||||
bash-like special sequences in the prompts, which get | ||||
automatically expanded. Things like hostname, current working | ||||
directory and username are implemented already, but it's easy to | ||||
add more in the future. Thanks to a patch by W.J. van der Laan | ||||
<gnufnork-AT-hetdigitalegat.nl> | ||||
(prompt_specials): Added color support for prompt strings, so | ||||
users can define arbitrary color setups for their prompts. | ||||
2004-06-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (Term.reopen_all): Added Windows-specific | ||||
code to load Gary Bishop's readline and configure it | ||||
automatically. Thanks to Gary for help on this. | ||||
2004-06-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.create_log): fix bug for logging | ||||
with no filename (previous fix was incomplete). | ||||
2004-05-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.parse_options): fix bug where naked | ||||
parens would get passed to the shell. | ||||
2004-05-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_prun): changed default profile | ||||
sort order to 'time' (the more common profiling need). | ||||
* IPython/OInspect.py (Inspector.pinfo): flush the inspect cache | ||||
so that source code shown is guaranteed in sync with the file on | ||||
disk (also changed in psource). Similar fix to the one for | ||||
ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du | ||||
<yann.ledu-AT-noos.fr>. | ||||
* IPython/Magic.py (Magic.parse_options): Fixed bug where commands | ||||
with a single option would not be correctly parsed. Closes | ||||
http://www.scipy.net/roundup/ipython/issue14. This bug had been | ||||
introduced in 0.6.0 (on 2004-05-06). | ||||
2004-05-13 *** Released version 0.6.0 | ||||
2004-05-13 Fernando Perez <fperez@colorado.edu> | ||||
* debian/: Added debian/ directory to CVS, so that debian support | ||||
is publicly accessible. The debian package is maintained by Jack | ||||
Moffit <jack-AT-xiph.org>. | ||||
* Documentation: included the notes about an ipython-based system | ||||
shell (the hypothetical 'pysh') into the new_design.pdf document, | ||||
so that these ideas get distributed to users along with the | ||||
official documentation. | ||||
2004-05-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.create_log): fix recently introduced | ||||
bug (misindented line) where logstart would fail when not given an | ||||
explicit filename. | ||||
2004-05-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.parse_options): skip system call when | ||||
there are no options to look for. Faster, cleaner for the common | ||||
case. | ||||
* Documentation: many updates to the manual: describing Windows | ||||
support better, Gnuplot updates, credits, misc small stuff. Also | ||||
updated the new_design doc a bit. | ||||
2004-05-06 *** Released version 0.6.0.rc1 | ||||
2004-05-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (ListTB.text): modified a ton of string += | ||||
operations to use the vastly more efficient list/''.join() method. | ||||
(FormattedTB.text): Fix | ||||
http://www.scipy.net/roundup/ipython/issue12 - exception source | ||||
extract not updated after reload. Thanks to Mike Salib | ||||
<msalib-AT-mit.edu> for pinning the source of the problem. | ||||
Fortunately, the solution works inside ipython and doesn't require | ||||
any changes to python proper. | ||||
* IPython/Magic.py (Magic.parse_options): Improved to process the | ||||
argument list as a true shell would (by actually using the | ||||
underlying system shell). This way, all @magics automatically get | ||||
shell expansion for variables. Thanks to a comment by Alex | ||||
Schmolck. | ||||
2004-04-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): Added a special | ||||
trap for a debugger quit exception, which is basically impossible | ||||
to handle by normal mechanisms, given what pdb does to the stack. | ||||
This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>. | ||||
2004-04-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (Term): Standardized the names of the Term | ||||
class streams to cin/cout/cerr, following C++ naming conventions | ||||
(I can't use in/out/err because 'in' is not a valid attribute | ||||
name). | ||||
* IPython/iplib.py (InteractiveShell.interact): don't increment | ||||
the prompt if there's no user input. By Daniel 'Dang' Griffith | ||||
<pythondev-dang-AT-lazytwinacres.net>, after a suggestion from | ||||
Francois Pinard. | ||||
2004-04-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (Stream.__init__): Modified to survive at | ||||
least importing in contexts where stdin/out/err aren't true file | ||||
objects, such as PyCrust (they lack fileno() and mode). However, | ||||
the recovery facilities which rely on these things existing will | ||||
not work. | ||||
2004-04-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to | ||||
use the new getoutputerror() function, so it properly | ||||
distinguishes stdout/err. | ||||
* IPython/genutils.py (getoutputerror): added a function to | ||||
capture separately the standard output and error of a command. | ||||
After a comment from dang on the mailing lists. This code is | ||||
basically a modified version of commands.getstatusoutput(), from | ||||
the standard library. | ||||
* IPython/iplib.py (InteractiveShell.handle_shell_escape): added | ||||
'!!' as a special syntax (shorthand) to access @sx. | ||||
* IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell | ||||
command and return its output as a list split on '\n'. | ||||
2004-03-31 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/FakeModule.py (FakeModule.__init__): added __nonzero__ | ||||
method to dictionaries used as FakeModule instances if they lack | ||||
it. At least pydoc in python2.3 breaks for runtime-defined | ||||
functions without this hack. At some point I need to _really_ | ||||
understand what FakeModule is doing, because it's a gross hack. | ||||
But it solves Arnd's problem for now... | ||||
2004-02-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.create_log): Fix bug where 'rotate' | ||||
mode would behave erratically. Also increased the number of | ||||
possible logs in rotate mod to 999. Thanks to Rod Holland | ||||
<rhh@StructureLABS.com> for the report and fixes. | ||||
2004-02-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page): Check that the curses module really | ||||
has the initscr attribute before trying to use it. For some | ||||
reason, the Solaris curses module is missing this. I think this | ||||
should be considered a Solaris python bug, but I'm not sure. | ||||
2004-01-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (Stream.__init__): Changes to try to make | ||||
ipython robust against stdin/out/err being closed by the user. | ||||
This is 'user error' (and blocks a normal python session, at least | ||||
the stdout case). However, Ipython should be able to survive such | ||||
instances of abuse as gracefully as possible. To simplify the | ||||
coding and maintain compatibility with Gary Bishop's Term | ||||
contributions, I've made use of classmethods for this. I think | ||||
this introduces a dependency on python 2.2. | ||||
2004-01-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (exp_safe): simplified the code a bit and | ||||
removed the need for importing the kinds module altogether. | ||||
2004-01-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_sc): Made the shell capture system | ||||
a magic function instead, after some community feedback. No | ||||
special syntax will exist for it, but its name is deliberately | ||||
very short. | ||||
2003-12-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.handle_shell_assign): Added | ||||
new functionality, to automagically assign the result of a shell | ||||
command to a variable. I'll solicit some community feedback on | ||||
this before making it permanent. | ||||
* IPython/OInspect.py (Inspector.pinfo): Fix crash when info was | ||||
requested about callables for which inspect couldn't obtain a | ||||
proper argspec. Thanks to a crash report sent by Etienne | ||||
Posthumus <etienne-AT-apple01.cs.vu.nl>. | ||||
2003-12-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page): patch for the pager to work across | ||||
various versions of Windows. By Gary Bishop. | ||||
2003-12-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Gnuplot2.py (PlotItems): Fixes for working with | ||||
Gnuplot.py version 1.7, whose internal names changed quite a bit. | ||||
While I tested this and it looks ok, there may still be corner | ||||
cases I've missed. | ||||
2003-12-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug | ||||
where a line like 'p,q=1,2' would fail because the automagic | ||||
system would be triggered for @p. | ||||
* IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related | ||||
cleanups, code unmodified. | ||||
* IPython/genutils.py (Term): added a class for IPython to handle | ||||
output. In most cases it will just be a proxy for stdout/err, but | ||||
having this allows modifications to be made for some platforms, | ||||
such as handling color escapes under Windows. All of this code | ||||
was contributed by Gary Bishop, with minor modifications by me. | ||||
The actual changes affect many files. | ||||
2003-11-30 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (file_matches): new completion code, courtesy | ||||
of Jeff Collins. This enables filename completion again under | ||||
python 2.3, which disabled it at the C level. | ||||
2003-11-11 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (amap): Added amap() fn. Simple shorthand | ||||
for Numeric.array(map(...)), but often convenient. | ||||
2003-11-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (frange): Changed a call from int() to | ||||
int(round()) to prevent a problem reported with arange() in the | ||||
numpy list. | ||||
2003-10-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to | ||||
prevent crashes if sys lacks an argv attribute (it happens with | ||||
embedded interpreters which build a bare-bones sys module). | ||||
Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>. | ||||
2003-09-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic._ofind): blanket except around getattr() | ||||
to protect against poorly written user objects where __getattr__ | ||||
raises exceptions other than AttributeError. Thanks to a bug | ||||
report by Oliver Sander <osander-AT-gmx.de>. | ||||
* IPython/FakeModule.py (FakeModule.__repr__): this method was | ||||
missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>. | ||||
2003-09-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): fix bug where | ||||
unpacking a list whith a callable as first element would | ||||
mistakenly trigger autocalling. Thanks to a bug report by Jeffery | ||||
Collins. | ||||
2003-08-25 *** Released version 0.5.0 | ||||
2003-08-22 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.linereader): Improved handling of | ||||
improperly defined user exceptions. Thanks to feedback from Mark | ||||
Russell <mrussell-AT-verio.net>. | ||||
2003-08-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/OInspect.py (Inspector.pinfo): changed String Form | ||||
printing so that it would print multi-line string forms starting | ||||
with a new line. This way the formatting is better respected for | ||||
objects which work hard to make nice string forms. | ||||
* IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where | ||||
autocall would overtake data access for objects with both | ||||
__getitem__ and __call__. | ||||
2003-08-19 *** Released version 0.5.0-rc1 | ||||
2003-08-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/deep_reload.py (load_tail): single tiny change here | ||||
seems to fix the long-standing bug of dreload() failing to work | ||||
for dotted names. But this module is pretty tricky, so I may have | ||||
missed some subtlety. Needs more testing!. | ||||
* IPython/ultraTB.py (VerboseTB.linereader): harden against user | ||||
exceptions which have badly implemented __str__ methods. | ||||
(VerboseTB.text): harden against inspect.getinnerframes crashing, | ||||
which I've been getting reports about from Python 2.3 users. I | ||||
wish I had a simple test case to reproduce the problem, so I could | ||||
either write a cleaner workaround or file a bug report if | ||||
necessary. | ||||
* IPython/Magic.py (Magic.magic_edit): fixed bug where after | ||||
making a class 'foo', file 'foo.py' couldn't be edited. Thanks to | ||||
a bug report by Tjabo Kloppenburg. | ||||
* IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb | ||||
crashes. Wrapped the pdb call in a blanket try/except, since pdb | ||||
seems rather unstable. Thanks to a bug report by Tjabo | ||||
Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>. | ||||
* IPython/Release.py (version): release 0.5.0-rc1. I want to put | ||||
this out soon because of the critical fixes in the inner loop for | ||||
generators. | ||||
* IPython/Magic.py (Magic.getargspec): removed. This (and | ||||
_get_def) have been obsoleted by OInspect for a long time, I | ||||
hadn't noticed that they were dead code. | ||||
(Magic._ofind): restored _ofind functionality for a few literals | ||||
(those in ["''",'""','[]','{}','()']). But it won't work anymore | ||||
for things like "hello".capitalize?, since that would require a | ||||
potentially dangerous eval() again. | ||||
* IPython/iplib.py (InteractiveShell._prefilter): reorganized the | ||||
logic a bit more to clean up the escapes handling and minimize the | ||||
use of _ofind to only necessary cases. The interactive 'feel' of | ||||
IPython should have improved quite a bit with the changes in | ||||
_prefilter and _ofind (besides being far safer than before). | ||||
* IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather | ||||
obscure, never reported). Edit would fail to find the object to | ||||
edit under some circumstances. | ||||
(Magic._ofind): CRITICAL FIX. Finally removed the eval() calls | ||||
which were causing double-calling of generators. Those eval calls | ||||
were _very_ dangerous, since code with side effects could be | ||||
triggered. As they say, 'eval is evil'... These were the | ||||
nastiest evals in IPython. Besides, _ofind is now far simpler, | ||||
and it should also be quite a bit faster. Its use of inspect is | ||||
also safer, so perhaps some of the inspect-related crashes I've | ||||
seen lately with Python 2.3 might be taken care of. That will | ||||
need more testing. | ||||
2003-08-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): significant | ||||
simplifications to the logic for handling user escapes. Faster | ||||
and simpler code. | ||||
2003-08-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (sum_flat): rewrote to be non-recursive. | ||||
Now it requires O(N) storage (N=size(a)) for non-contiguous input, | ||||
but it should be quite a bit faster. And the recursive version | ||||
generated O(log N) intermediate storage for all rank>1 arrays, | ||||
even if they were contiguous. | ||||
(l1norm): Added this function. | ||||
(norm): Added this function for arbitrary norms (including | ||||
l-infinity). l1 and l2 are still special cases for convenience | ||||
and speed. | ||||
2003-08-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_edit): Removed all remaining string | ||||
exceptions, which now raise PendingDeprecationWarnings in Python | ||||
2.3. There were some in Magic and some in Gnuplot2. | ||||
2003-06-30 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page): modified to call curses only for | ||||
terminals where TERM=='xterm'. After problems under many other | ||||
terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>. | ||||
* IPython/iplib.py (complete): removed spurious 'print "IE"' which | ||||
would be triggered when readline was absent. This was just an old | ||||
debugging statement I'd forgotten to take out. | ||||
2003-06-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (clock): modified to return only user time | ||||
(not counting system time), after a discussion on scipy. While | ||||
system time may be a useful quantity occasionally, it may much | ||||
more easily be skewed by occasional swapping or other similar | ||||
activity. | ||||
2003-06-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (identity): new function, for building | ||||
arbitrary rank Kronecker deltas (mostly backwards compatible with | ||||
Numeric.identity) | ||||
2003-06-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.handle_magic): protect | ||||
arguments passed to magics with spaces, to allow trailing '\' to | ||||
work normally (mainly for Windows users). | ||||
2003-05-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): Load site._Helper() as help | ||||
instead of pydoc.help. This fixes a bizarre behavior where | ||||
printing '%s' % locals() would trigger the help system. Now | ||||
ipython behaves like normal python does. | ||||
Note that if one does 'from pydoc import help', the bizarre | ||||
behavior returns, but this will also happen in normal python, so | ||||
it's not an ipython bug anymore (it has to do with how pydoc.help | ||||
is implemented). | ||||
2003-05-22 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/FlexCompleter.py (Completer.attr_matches): fixed to | ||||
return [] instead of None when nothing matches, also match to end | ||||
of line. Patch by Gary Bishop. | ||||
* IPython/ipmaker.py (make_IPython): Added same sys.excepthook | ||||
protection as before, for files passed on the command line. This | ||||
prevents the CrashHandler from kicking in if user files call into | ||||
sys.excepthook (such as PyQt and WxWindows have a nasty habit of | ||||
doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr> | ||||
2003-05-20 *** Released version 0.4.0 | ||||
2003-05-20 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py: added support for manpages. It's a bit hackish b/c of | ||||
a bug in the way the bdist_rpm distutils target handles gzipped | ||||
manpages, but it works. After a patch by Jack. | ||||
2003-05-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py: added a mockup of the kinds module, since | ||||
it was recently removed from Numeric. This way, numutils will | ||||
work for all users even if they are missing kinds. | ||||
* IPython/Magic.py (Magic._ofind): Harden against an inspect | ||||
failure, which can occur with SWIG-wrapped extensions. After a | ||||
crash report from Prabhu. | ||||
2003-05-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.excepthook): New method to | ||||
protect ipython from user code which may call directly | ||||
sys.excepthook (this looks like an ipython crash to the user, even | ||||
when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>. | ||||
This is especially important to help users of WxWindows, but may | ||||
also be useful in other cases. | ||||
* IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow | ||||
an optional tb_offset to be specified, and to preserve exception | ||||
info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>. | ||||
* ipython.1 (Default): Thanks to Jack's work, we now have manpages! | ||||
2003-05-15 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.user_setup): Fix crash when | ||||
installing for a new user under Windows. | ||||
2003-05-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.handle_emacs): New line | ||||
handler for Emacs comint-based lines. Currently it doesn't do | ||||
much (but importantly, it doesn't update the history cache). In | ||||
the future it may be expanded if Alex needs more functionality | ||||
there. | ||||
* IPython/CrashHandler.py (CrashHandler.__call__): Added platform | ||||
info to crash reports. | ||||
* IPython/iplib.py (InteractiveShell.mainloop): Added -c option, | ||||
just like Python's -c. Also fixed crash with invalid -color | ||||
option value at startup. Thanks to Will French | ||||
<wfrench-AT-bestweb.net> for the bug report. | ||||
2003-05-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString | ||||
to EvalDict (it's a mapping, after all) and simplified its code | ||||
quite a bit, after a nice discussion on c.l.py where Gustavo | ||||
Córdova <gcordova-AT-sismex.com> suggested the new version. | ||||
2003-04-30 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (timings_out): modified it to reduce its | ||||
overhead in the common reps==1 case. | ||||
2003-04-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (timings_out): Modified to use the resource | ||||
module, which avoids the wraparound problems of time.clock(). | ||||
2003-04-17 *** Released version 0.2.15pre4 | ||||
2003-04-17 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (scriptfiles): Split windows-specific stuff over to a | ||||
separate file, in an attempt to have a Windows GUI installer. | ||||
That didn't work, but part of the groundwork is done. | ||||
* IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for | ||||
indent/unindent with 4 spaces. Particularly useful in combination | ||||
with the new auto-indent option. | ||||
2003-04-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py: various replacements of self.rc for | ||||
self.shell.rc. A lot more remains to be done to fully disentangle | ||||
this class from the main Shell class. | ||||
* IPython/GnuplotRuntime.py: added checks for mouse support so | ||||
that we don't try to enable it if the current gnuplot doesn't | ||||
really support it. Also added checks so that we don't try to | ||||
enable persist under Windows (where Gnuplot doesn't recognize the | ||||
option). | ||||
* IPython/iplib.py (InteractiveShell.interact): Added optional | ||||
auto-indenting code, after a patch by King C. Shu | ||||
<kingshu-AT-myrealbox.com>. It's off by default because it doesn't | ||||
get along well with pasting indented code. If I ever figure out | ||||
how to make that part go well, it will become on by default. | ||||
* IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would | ||||
crash ipython if there was an unmatched '%' in the user's prompt | ||||
string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>. | ||||
* IPython/iplib.py (InteractiveShell.interact): removed the | ||||
ability to ask the user whether he wants to crash or not at the | ||||
'last line' exception handler. Calling functions at that point | ||||
changes the stack, and the error reports would have incorrect | ||||
tracebacks. | ||||
* IPython/Magic.py (Magic.magic_page): Added new @page magic, to | ||||
pass through a peger a pretty-printed form of any object. After a | ||||
contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr> | ||||
2003-04-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where | ||||
all files in ~ would be modified at first install (instead of | ||||
~/.ipython). This could be potentially disastrous, as the | ||||
modification (make line-endings native) could damage binary files. | ||||
2003-04-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.handle_help): Modified to | ||||
handle only lines which are invalid python. This now means that | ||||
lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins | ||||
for the bug report. | ||||
2003-04-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug | ||||
where failing to set sys.last_traceback would crash pdb.pm(). | ||||
Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug | ||||
report. | ||||
2003-03-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler | ||||
before printing it (it had a lot of spurious blank lines at the | ||||
end). | ||||
* IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr | ||||
output would be sent 21 times! Obviously people don't use this | ||||
too often, or I would have heard about it. | ||||
2003-03-24 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (scriptfiles): renamed the data_files parameter from | ||||
'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink | ||||
for the patch. | ||||
2003-03-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (error): added error() and fatal() | ||||
functions. | ||||
2003-03-18 *** Released version 0.2.15pre3 | ||||
2003-03-18 Fernando Perez <fperez@colorado.edu> | ||||
* setupext/install_data_ext.py | ||||
(install_data_ext.initialize_options): Class contributed by Jack | ||||
Moffit for fixing the old distutils hack. He is sending this to | ||||
the distutils folks so in the future we may not need it as a | ||||
private fix. | ||||
* MANIFEST.in: Extensive reorganization, based on Jack Moffit's | ||||
changes for Debian packaging. See his patch for full details. | ||||
The old distutils hack of making the ipythonrc* files carry a | ||||
bogus .py extension is gone, at last. Examples were moved to a | ||||
separate subdir under doc/, and the separate executable scripts | ||||
now live in their own directory. Overall a great cleanup. The | ||||
manual was updated to use the new files, and setup.py has been | ||||
fixed for this setup. | ||||
* IPython/PyColorize.py (Parser.usage): made non-executable and | ||||
created a pycolor wrapper around it to be included as a script. | ||||
2003-03-12 *** Released version 0.2.15pre2 | ||||
2003-03-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ColorANSI.py (make_color_table): Finally fixed the | ||||
long-standing problem with garbage characters in some terminals. | ||||
The issue was really that the \001 and \002 escapes must _only_ be | ||||
passed to input prompts (which call readline), but _never_ to | ||||
normal text to be printed on screen. I changed ColorANSI to have | ||||
two classes: TermColors and InputTermColors, each with the | ||||
appropriate escapes for input prompts or normal text. The code in | ||||
Prompts.py got slightly more complicated, but this very old and | ||||
annoying bug is finally fixed. | ||||
All the credit for nailing down the real origin of this problem | ||||
and the correct solution goes to Jack Moffit <jack-AT-xiph.org>. | ||||
*Many* thanks to him for spending quite a bit of effort on this. | ||||
2003-03-05 *** Released version 0.2.15pre1 | ||||
2003-03-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/FakeModule.py: Moved the former _FakeModule to a | ||||
separate file, because it's also needed by Magic (to fix a similar | ||||
pickle-related issue in @run). | ||||
2003-03-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_autocall): new magic to control | ||||
the autocall option at runtime. | ||||
(Magic.magic_dhist): changed self.user_ns to self.shell.user_ns | ||||
across Magic.py to start separating Magic from InteractiveShell. | ||||
(Magic._ofind): Fixed to return proper namespace for dotted | ||||
names. Before, a dotted name would always return 'not currently | ||||
defined', because it would find the 'parent'. s.x would be found, | ||||
but since 'x' isn't defined by itself, it would get confused. | ||||
(Magic.magic_run): Fixed pickling problems reported by Ralf | ||||
Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to | ||||
that I'd used when Mike Heeter reported similar issues at the | ||||
top-level, but now for @run. It boils down to injecting the | ||||
namespace where code is being executed with something that looks | ||||
enough like a module to fool pickle.dump(). Since a pickle stores | ||||
a named reference to the importing module, we need this for | ||||
pickles to save something sensible. | ||||
* IPython/ipmaker.py (make_IPython): added an autocall option. | ||||
* IPython/iplib.py (InteractiveShell._prefilter): reordered all of | ||||
the auto-eval code. Now autocalling is an option, and the code is | ||||
also vastly safer. There is no more eval() involved at all. | ||||
2003-03-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic._ofind): Changed interface to return a | ||||
dict with named keys instead of a tuple. | ||||
* IPython: Started using CVS for IPython as of 0.2.15pre1. | ||||
* setup.py (make_shortcut): Fixed message about directories | ||||
created during Windows installation (the directories were ok, just | ||||
the printed message was misleading). Thanks to Chris Liechti | ||||
<cliechti-AT-gmx.net> for the heads up. | ||||
2003-02-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): Fixed catching | ||||
of ValueError exception when checking for auto-execution. This | ||||
one is raised by things like Numeric arrays arr.flat when the | ||||
array is non-contiguous. | ||||
2003-01-31 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (SystemExec.bq): Fixed bug where bq would | ||||
not return any value at all (even though the command would get | ||||
executed). | ||||
(xsys): Flush stdout right after printing the command to ensure | ||||
proper ordering of commands and command output in the total | ||||
output. | ||||
(SystemExec/xsys/bq): Switched the names of xsys/bq and | ||||
system/getoutput as defaults. The old ones are kept for | ||||
compatibility reasons, so no code which uses this library needs | ||||
changing. | ||||
2003-01-27 *** Released version 0.2.14 | ||||
2003-01-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_edit): Fixed problem where | ||||
functions defined in previous edit sessions could not be re-edited | ||||
(because the temp files were immediately removed). Now temp files | ||||
are removed only at IPython's exit. | ||||
(Magic.magic_run): Improved @run to perform shell-like expansions | ||||
on its arguments (~users and $VARS). With this, @run becomes more | ||||
like a normal command-line. | ||||
* IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small | ||||
bugs related to embedding and cleaned up that code. A fairly | ||||
important one was the impossibility to access the global namespace | ||||
through the embedded IPython (only local variables were visible). | ||||
2003-01-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): Fixed | ||||
auto-calling to be a bit more conservative. Now it doesn't get | ||||
triggered if any of '!=()<>' are in the rest of the input line, to | ||||
allow comparing callables. Thanks to Alex for the heads up. | ||||
2003-01-07 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page): fixed estimation of the number of | ||||
lines in a string to be paged to simply count newlines. This | ||||
prevents over-guessing due to embedded escape sequences. A better | ||||
long-term solution would involve stripping out the control chars | ||||
for the count, but it's potentially so expensive I just don't | ||||
think it's worth doing. | ||||
2002-12-19 *** Released version 0.2.14pre50 | ||||
2002-12-19 Fernando Perez <fperez@colorado.edu> | ||||
* tools/release (version): Changed release scripts to inform | ||||
Andrea and build a NEWS file with a list of recent changes. | ||||
* IPython/ColorANSI.py (__all__): changed terminal detection | ||||
code. Seems to work better for xterms without breaking | ||||
konsole. Will need more testing to determine if WinXP and Mac OSX | ||||
also work ok. | ||||
2002-12-18 *** Released version 0.2.14pre49 | ||||
2002-12-18 Fernando Perez <fperez@colorado.edu> | ||||
* Docs: added new info about Mac OSX, from Andrea. | ||||
* IPython/Gnuplot2.py (String): Added a String PlotItem class to | ||||
allow direct plotting of python strings whose format is the same | ||||
of gnuplot data files. | ||||
2002-12-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): fixed default (y) | ||||
value of exit question to be acknowledged. | ||||
2002-12-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py: removed generators, which had been added | ||||
by mistake in an earlier debugging run. This was causing trouble | ||||
to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu> | ||||
for pointing this out. | ||||
2002-11-17 Fernando Perez <fperez@colorado.edu> | ||||
* Manual: updated the Gnuplot section. | ||||
* IPython/GnuplotRuntime.py: refactored a lot all this code, with | ||||
a much better split of what goes in Runtime and what goes in | ||||
Interactive. | ||||
* IPython/ipmaker.py: fixed bug where import_fail_info wasn't | ||||
being imported from iplib. | ||||
* IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc | ||||
for command-passing. Now the global Gnuplot instance is called | ||||
'gp' instead of 'g', which was really a far too fragile and | ||||
common name. | ||||
* IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken | ||||
bounding boxes generated by Gnuplot for square plots. | ||||
* IPython/genutils.py (popkey): new function added. I should | ||||
suggest this on c.l.py as a dict method, it seems useful. | ||||
* IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot | ||||
to transparently handle PostScript generation. MUCH better than | ||||
the previous plot_eps/replot_eps (which I removed now). The code | ||||
is also fairly clean and well documented now (including | ||||
docstrings). | ||||
2002-11-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_edit): fixed docstring | ||||
(inconsistent with options). | ||||
* IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been | ||||
manually disabled, I don't know why. Fixed it. | ||||
(Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly | ||||
eps output. | ||||
2002-11-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they | ||||
don't propagate up to caller. Fixes crash reported by François | ||||
Pinard. | ||||
2002-11-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): fixed problem with writing | ||||
history file for new users. | ||||
(make_IPython): fixed bug where initial install would leave the | ||||
user running in the .ipython dir. | ||||
(make_IPython): fixed bug where config dir .ipython would be | ||||
created regardless of the given -ipythondir option. Thanks to Cory | ||||
Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report. | ||||
* IPython/genutils.py (ask_yes_no): new function for asking yes/no | ||||
type confirmations. Will need to use it in all of IPython's code | ||||
consistently. | ||||
* IPython/CrashHandler.py (CrashHandler.__call__): changed the | ||||
context to print 31 lines instead of the default 5. This will make | ||||
the crash reports extremely detailed in case the problem is in | ||||
libraries I don't have access to. | ||||
* IPython/iplib.py (InteractiveShell.interact): changed the 'last | ||||
line of defense' code to still crash, but giving users fair | ||||
warning. I don't want internal errors to go unreported: if there's | ||||
an internal problem, IPython should crash and generate a full | ||||
report. | ||||
2002-11-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): added code to trap | ||||
otherwise uncaught exceptions which can appear if people set | ||||
sys.stdout to something badly broken. Thanks to a crash report | ||||
from henni-AT-mail.brainbot.com. | ||||
2002-11-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): added | ||||
__IPYTHON__active to the builtins. It's a flag which goes on when | ||||
the interaction starts and goes off again when it stops. This | ||||
allows embedding code to detect being inside IPython. Before this | ||||
was done via __IPYTHON__, but that only shows that an IPython | ||||
instance has been created. | ||||
* IPython/Magic.py (Magic.magic_env): I realized that in a | ||||
UserDict, instance.data holds the data as a normal dict. So I | ||||
modified @env to return os.environ.data instead of rebuilding a | ||||
dict by hand. | ||||
2002-11-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (warn): changed so that level 1 prints no | ||||
header. Level 2 is now the default (with 'WARNING' header, as | ||||
before). I think I tracked all places where changes were needed in | ||||
IPython, but outside code using the old level numbering may have | ||||
broken. | ||||
* IPython/iplib.py (InteractiveShell.runcode): added this to | ||||
handle the tracebacks in SystemExit traps correctly. The previous | ||||
code (through interact) was printing more of the stack than | ||||
necessary, showing IPython internal code to the user. | ||||
* IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by | ||||
default. Now that the default at the confirmation prompt is yes, | ||||
it's not so intrusive. François' argument that ipython sessions | ||||
tend to be complex enough not to lose them from an accidental C-d, | ||||
is a valid one. | ||||
* IPython/iplib.py (InteractiveShell.interact): added a | ||||
showtraceback() call to the SystemExit trap, and modified the exit | ||||
confirmation to have yes as the default. | ||||
* IPython/UserConfig/ipythonrc.py: removed 'session' option from | ||||
this file. It's been gone from the code for a long time, this was | ||||
simply leftover junk. | ||||
2002-11-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/ipythonrc.py: new confirm_exit option | ||||
added. If set, IPython now traps EOF and asks for | ||||
confirmation. After a request by François Pinard. | ||||
* IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead | ||||
of @abort, and with a new (better) mechanism for handling the | ||||
exceptions. | ||||
2002-10-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/usage.py (__doc__): updated the --help information and | ||||
the ipythonrc file to indicate that -log generates | ||||
./ipython.log. Also fixed the corresponding info in @logstart. | ||||
This and several other fixes in the manuals thanks to reports by | ||||
François Pinard <pinard-AT-iro.umontreal.ca>. | ||||
* IPython/Logger.py (Logger.switch_log): Fixed error message to | ||||
refer to @logstart (instead of @log, which doesn't exist). | ||||
* IPython/iplib.py (InteractiveShell._prefilter): fixed | ||||
AttributeError crash. Thanks to Christopher Armstrong | ||||
<radix-AT-twistedmatrix.com> for the report/fix. This bug had been | ||||
introduced recently (in 0.2.14pre37) with the fix to the eval | ||||
problem mentioned below. | ||||
2002-10-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows | ||||
installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>. | ||||
* IPython/iplib.py (InteractiveShell._prefilter): Many changes to | ||||
this function to fix a problem reported by Alex Schmolck. He saw | ||||
it with list comprehensions and generators, which were getting | ||||
called twice. The real problem was an 'eval' call in testing for | ||||
automagic which was evaluating the input line silently. | ||||
This is a potentially very nasty bug, if the input has side | ||||
effects which must not be repeated. The code is much cleaner now, | ||||
without any blanket 'except' left and with a regexp test for | ||||
actual function names. | ||||
But an eval remains, which I'm not fully comfortable with. I just | ||||
don't know how to find out if an expression could be a callable in | ||||
the user's namespace without doing an eval on the string. However | ||||
that string is now much more strictly checked so that no code | ||||
slips by, so the eval should only happen for things that can | ||||
really be only function/method names. | ||||
2002-10-15 Fernando Perez <fperez@colorado.edu> | ||||
* Updated LyX to 1.2.1 so I can work on the docs again. Added Mac | ||||
OSX information to main manual, removed README_Mac_OSX file from | ||||
distribution. Also updated credits for recent additions. | ||||
2002-10-10 Fernando Perez <fperez@colorado.edu> | ||||
* README_Mac_OSX: Added a README for Mac OSX users for fixing | ||||
terminal-related issues. Many thanks to Andrea Riciputi | ||||
<andrea.riciputi-AT-libero.it> for writing it. | ||||
* IPython/UserConfig/ipythonrc.py: Fixes to various small issues, | ||||
thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>. | ||||
* setup.py (make_shortcut): Fixes for Windows installation. Thanks | ||||
to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad | ||||
<syver-en-AT-online.no> who both submitted patches for this problem. | ||||
* IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for | ||||
global embedding to make sure that things don't overwrite user | ||||
globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com> | ||||
* IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6 | ||||
compatibility. Thanks to Hayden Callow | ||||
<h.callow-AT-elec.canterbury.ac.nz> | ||||
2002-10-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Gnuplot2.py (PlotItem): Added 'index' option for | ||||
Gnuplot.File objects. | ||||
2002-07-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (timing): Added timings() and timing() for | ||||
quick access to the most commonly needed data, the execution | ||||
times. Old timing() renamed to timings_out(). | ||||
2002-07-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed | ||||
bug with nested instances disrupting the parent's tab completion. | ||||
* IPython/iplib.py (all_completions): Added Alex Schmolck's | ||||
all_completions code to begin the emacs integration. | ||||
* IPython/Gnuplot2.py (zip_items): Added optional 'titles' | ||||
argument to allow titling individual arrays when plotting. | ||||
2002-07-15 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (make_shortcut): changed to retrieve the value of | ||||
'Program Files' directory from the registry (this value changes in | ||||
non-english versions of Windows). Thanks to Thomas Fanslau | ||||
<tfanslau-AT-gmx.de> for the report. | ||||
2002-07-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for | ||||
a bug in pdb, which crashes if a line with only whitespace is | ||||
entered. Bug report submitted to sourceforge. | ||||
2002-07-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when | ||||
reporting exceptions (it's a bug in inspect.py, I just set a | ||||
workaround). | ||||
2002-07-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): fixed reference to | ||||
__IPYTHON__ in __builtins__ to show up in user_ns. | ||||
2002-07-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/GnuplotInteractive.py (magic_gp_set_default): changed | ||||
name from @gp_set_instance to @gp_set_default. | ||||
* IPython/ipmaker.py (make_IPython): default editor value set to | ||||
'0' (a string), to match the rc file. Otherwise will crash when | ||||
.strip() is called on it. | ||||
2002-06-28 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.safe_execfile): fix importing | ||||
of files in current directory when a file is executed via | ||||
@run. Patch also by RA <ralf_ahlbrink-AT-web.de>. | ||||
* setup.py (manfiles): fix for rpm builds, submitted by RA | ||||
<ralf_ahlbrink-AT-web.de>. Now we have RPMs! | ||||
* IPython/ipmaker.py (make_IPython): fixed lookup of default | ||||
editor when set to '0'. Problem was, '0' evaluates to True (it's a | ||||
string!). A. Schmolck caught this one. | ||||
2002-06-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): fixed bug when running user | ||||
defined files at the cmd line. __name__ wasn't being set to | ||||
__main__. | ||||
* IPython/Gnuplot2.py (zip_items): improved it so it can plot also | ||||
regular lists and tuples besides Numeric arrays. | ||||
* IPython/Prompts.py (CachedOutput.__call__): Added output | ||||
supression for input ending with ';'. Similar to Mathematica and | ||||
Matlab. The _* vars and Out[] list are still updated, just like | ||||
Mathematica behaves. | ||||
2002-06-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of | ||||
.ini extensions for profiels under Windows. | ||||
* IPython/OInspect.py (Inspector.pinfo): improved alignment of | ||||
string form. Fix contributed by Alexander Schmolck | ||||
<a.schmolck-AT-gmx.net> | ||||
* IPython/GnuplotRuntime.py (gp_new): new function. Returns a | ||||
pre-configured Gnuplot instance. | ||||
2002-06-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (exp_safe): new function, works around the | ||||
underflow problems in Numeric. | ||||
(log2): New fn. Safe log in base 2: returns exact integer answer | ||||
for exact integer powers of 2. | ||||
* IPython/Magic.py (get_py_filename): fixed it not expanding '~' | ||||
properly. | ||||
2002-06-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (timing): new function like | ||||
Mathematica's. Similar to time_test, but returns more info. | ||||
2002-06-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_save): modified @save and @r | ||||
according to Mike Heeter's suggestions. | ||||
2002-06-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot | ||||
system. GnuplotMagic is gone as a user-directory option. New files | ||||
make it easier to use all the gnuplot stuff both from external | ||||
programs as well as from IPython. Had to rewrite part of | ||||
hardcopy() b/c of a strange bug: often the ps files simply don't | ||||
get created, and require a repeat of the command (often several | ||||
times). | ||||
* IPython/ultraTB.py (AutoFormattedTB.__call__): changed to | ||||
resolve output channel at call time, so that if sys.stderr has | ||||
been redirected by user this gets honored. | ||||
2002-06-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShell.__init__): Changed IPythonShell to | ||||
IPShell. Kept a copy with the old names to avoid breaking people's | ||||
embedded code. | ||||
* IPython/ipython: simplified it to the bare minimum after | ||||
Holger's suggestions. Added info about how to use it in | ||||
PYTHONSTARTUP. | ||||
* IPython/Shell.py (IPythonShell): changed the options passing | ||||
from a string with funky %s replacements to a straight list. Maybe | ||||
a bit more typing, but it follows sys.argv conventions, so there's | ||||
less special-casing to remember. | ||||
2002-06-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_r): new magic auto-repeat | ||||
command. Thanks to a suggestion by Mike Heeter. | ||||
(Magic.magic_pfile): added behavior to look at filenames if given | ||||
arg is not a defined object. | ||||
(Magic.magic_save): New @save function to save code snippets. Also | ||||
a Mike Heeter idea. | ||||
* IPython/UserConfig/GnuplotMagic.py (plot): Improvements to | ||||
plot() and replot(). Much more convenient now, especially for | ||||
interactive use. | ||||
* IPython/Magic.py (Magic.magic_run): Added .py automatically to | ||||
filenames. | ||||
2002-06-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Struct.py (Struct.__init__): modified to admit | ||||
initialization via another struct. | ||||
* IPython/genutils.py (SystemExec.__init__): New stateful | ||||
interface to xsys and bq. Useful for writing system scripts. | ||||
2002-05-30 Fernando Perez <fperez@colorado.edu> | ||||
* MANIFEST.in: Changed docfile selection to exclude all the lyx | ||||
documents. This will make the user download smaller (it's getting | ||||
too big). | ||||
2002-05-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (_FakeModule.__init__): New class introduced to | ||||
fix problems with shelve and pickle. Seems to work, but I don't | ||||
know if corner cases break it. Thanks to Mike Heeter | ||||
<korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases. | ||||
2002-05-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Macro.__init__): fixed magics embedded in | ||||
macros having broken. | ||||
2002-05-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_logstart): fixed recently | ||||
introduced logging bug: all history before logging started was | ||||
being written one character per line! This came from the redesign | ||||
of the input history as a special list which slices to strings, | ||||
not to lists. | ||||
2002-05-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (CachedOutput.__init__): made the color table | ||||
be an attribute of all classes in this module. The design of these | ||||
classes needs some serious overhauling. | ||||
* IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug | ||||
which was ignoring '_' in option names. | ||||
* IPython/ultraTB.py (FormattedTB.__init__): Changed | ||||
'Verbose_novars' to 'Context' and made it the new default. It's a | ||||
bit more readable and also safer than verbose. | ||||
* IPython/PyColorize.py (Parser.__call__): Fixed coloring of | ||||
triple-quoted strings. | ||||
* IPython/OInspect.py (__all__): new module exposing the object | ||||
introspection facilities. Now the corresponding magics are dummy | ||||
wrappers around this. Having this module will make it much easier | ||||
to put these functions into our modified pdb. | ||||
This new object inspector system uses the new colorizing module, | ||||
so source code and other things are nicely syntax highlighted. | ||||
2002-05-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ColorANSI.py: Split the coloring tools into a separate | ||||
module so I can use them in other code easier (they were part of | ||||
ultraTB). | ||||
2002-05-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance): | ||||
fixed it to set the global 'g' also to the called instance, as | ||||
long as 'g' was still a gnuplot instance (so it doesn't overwrite | ||||
user's 'g' variables). | ||||
* IPython/iplib.py (InteractiveShell.__init__): Added In/Out | ||||
global variables (aliases to _ih,_oh) so that users which expect | ||||
In[5] or Out[7] to work aren't unpleasantly surprised. | ||||
(InputList.__getslice__): new class to allow executing slices of | ||||
input history directly. Very simple class, complements the use of | ||||
macros. | ||||
2002-05-16 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (docdirbase): make doc directory be just doc/IPython | ||||
without version numbers, it will reduce clutter for users. | ||||
* IPython/Magic.py (Magic.magic_run): Add explicit local dict to | ||||
execfile call to prevent possible memory leak. See for details: | ||||
http://mail.python.org/pipermail/python-list/2002-February/088476.html | ||||
2002-05-15 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_psource): made the object | ||||
introspection names be more standard: pdoc, pdef, pfile and | ||||
psource. They all print/page their output, and it makes | ||||
remembering them easier. Kept old names for compatibility as | ||||
aliases. | ||||
2002-05-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/GnuplotMagic.py: I think I finally understood | ||||
what the mouse problem was. The trick is to use gnuplot with temp | ||||
files and NOT with pipes (for data communication), because having | ||||
both pipes and the mouse on is bad news. | ||||
2002-05-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic._ofind): fixed namespace order search | ||||
bug. Information would be reported about builtins even when | ||||
user-defined functions overrode them. | ||||
2002-05-11 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/__init__.py (__all__): removed FlexCompleter from | ||||
__all__ so that things don't fail in platforms without readline. | ||||
2002-05-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/__init__.py (__all__): removed numutils from __all__ b/c | ||||
it requires Numeric, effectively making Numeric a dependency for | ||||
IPython. | ||||
* Released 0.2.13 | ||||
* IPython/Magic.py (Magic.magic_prun): big overhaul to the | ||||
profiler interface. Now all the major options from the profiler | ||||
module are directly supported in IPython, both for single | ||||
expressions (@prun) and for full programs (@run -p). | ||||
2002-05-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of | ||||
magic properly formatted for screen. | ||||
* setup.py (make_shortcut): Changed things to put pdf version in | ||||
doc/ instead of doc/manual (had to change lyxport a bit). | ||||
* IPython/Magic.py (Profile.string_stats): made profile runs go | ||||
through pager (they are long and a pager allows searching, saving, | ||||
etc.) | ||||
2002-05-08 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.12 | ||||
2002-05-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_hist): small bug fixed (recently | ||||
introduced); 'hist n1 n2' was broken. | ||||
(Magic.magic_pdb): added optional on/off arguments to @pdb | ||||
(Magic.magic_run): added option -i to @run, which executes code in | ||||
the IPython namespace instead of a clean one. Also added @irun as | ||||
an alias to @run -i. | ||||
* IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance): | ||||
fixed (it didn't really do anything, the namespaces were wrong). | ||||
* IPython/Debugger.py (__init__): Added workaround for python 2.1 | ||||
* IPython/__init__.py (__all__): Fixed package namespace, now | ||||
'import IPython' does give access to IPython.<all> as | ||||
expected. Also renamed __release__ to Release. | ||||
* IPython/Debugger.py (__license__): created new Pdb class which | ||||
functions like a drop-in for the normal pdb.Pdb but does NOT | ||||
import readline by default. This way it doesn't muck up IPython's | ||||
readline handling, and now tab-completion finally works in the | ||||
debugger -- sort of. It completes things globally visible, but the | ||||
completer doesn't track the stack as pdb walks it. That's a bit | ||||
tricky, and I'll have to implement it later. | ||||
2002-05-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for | ||||
magic docstrings when printed via ? (explicit \'s were being | ||||
printed). | ||||
* IPython/ipmaker.py (make_IPython): fixed namespace | ||||
identification bug. Now variables loaded via logs or command-line | ||||
files are recognized in the interactive namespace by @who. | ||||
* IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in | ||||
log replay system stemming from the string form of Structs. | ||||
* IPython/Magic.py (Macro.__init__): improved macros to properly | ||||
handle magic commands in them. | ||||
(Magic.magic_logstart): usernames are now expanded so 'logstart | ||||
~/mylog' now works. | ||||
* IPython/iplib.py (complete): fixed bug where paths starting with | ||||
'/' would be completed as magic names. | ||||
2002-05-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_run): added options -p and -f to | ||||
allow running full programs under the profiler's control. | ||||
* IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars | ||||
mode to report exceptions verbosely but without formatting | ||||
variables. This addresses the issue of ipython 'freezing' (it's | ||||
not frozen, but caught in an expensive formatting loop) when huge | ||||
variables are in the context of an exception. | ||||
(VerboseTB.text): Added '--->' markers at line where exception was | ||||
triggered. Much clearer to read, especially in NoColor modes. | ||||
* IPython/Magic.py (Magic.magic_run): bugfix: -n option had been | ||||
implemented in reverse when changing to the new parse_options(). | ||||
2002-05-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.parse_options): new function so that | ||||
magics can parse options easier. | ||||
(Magic.magic_prun): new function similar to profile.run(), | ||||
suggested by Chris Hart. | ||||
(Magic.magic_cd): fixed behavior so that it only changes if | ||||
directory actually is in history. | ||||
* IPython/usage.py (__doc__): added information about potential | ||||
slowness of Verbose exception mode when there are huge data | ||||
structures to be formatted (thanks to Archie Paulson). | ||||
* IPython/ipmaker.py (make_IPython): Changed default logging | ||||
(when simply called with -log) to use curr_dir/ipython.log in | ||||
rotate mode. Fixed crash which was occuring with -log before | ||||
(thanks to Jim Boyle). | ||||
2002-05-01 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.11 for these fixes (mainly the ultraTB one which | ||||
was nasty -- though somewhat of a corner case). | ||||
* IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to | ||||
text (was a bug). | ||||
2002-04-30 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add | ||||
a print after ^D or ^C from the user so that the In[] prompt | ||||
doesn't over-run the gnuplot one. | ||||
2002-04-29 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.10 | ||||
* IPython/__release__.py (version): get date dynamically. | ||||
* Misc. documentation updates thanks to Arnd's comments. Also ran | ||||
a full spellcheck on the manual (hadn't been done in a while). | ||||
2002-04-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_logstart): Fixed bug where | ||||
starting a log in mid-session would reset the input history list. | ||||
2002-04-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.wait): Fixed bug where not | ||||
all files were being included in an update. Now anything in | ||||
UserConfig that matches [A-Za-z]*.py will go (this excludes | ||||
__init__.py) | ||||
2002-04-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__ | ||||
to __builtins__ so that any form of embedded or imported code can | ||||
test for being inside IPython. | ||||
* IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance): | ||||
changed to GnuplotMagic because it's now an importable module, | ||||
this makes the name follow that of the standard Gnuplot module. | ||||
GnuplotMagic can now be loaded at any time in mid-session. | ||||
2002-04-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py: removed SIUnits. It doesn't properly set | ||||
the globals (IPython has its own namespace) and the | ||||
PhysicalQuantity stuff is much better anyway. | ||||
* IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot | ||||
embedding example to standard user directory for | ||||
distribution. Also put it in the manual. | ||||
* IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot | ||||
instance as first argument (so it doesn't rely on some obscure | ||||
hidden global). | ||||
* IPython/UserConfig/ipythonrc.py: put () back in accepted | ||||
delimiters. While it prevents ().TAB from working, it allows | ||||
completions in open (... expressions. This is by far a more common | ||||
case. | ||||
2002-04-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Extensions/InterpreterPasteInput.py: new | ||||
syntax-processing module for pasting lines with >>> or ... at the | ||||
start. | ||||
* IPython/Extensions/PhysicalQ_Interactive.py | ||||
(PhysicalQuantityInteractive.__int__): fixed to work with either | ||||
Numeric or math. | ||||
* IPython/UserConfig/ipythonrc-numeric.py: reorganized the | ||||
provided profiles. Now we have: | ||||
-math -> math module as * and cmath with its own namespace. | ||||
-numeric -> Numeric as *, plus gnuplot & grace | ||||
-physics -> same as before | ||||
* IPython/Magic.py (Magic.magic_magic): Fixed bug where | ||||
user-defined magics wouldn't be found by @magic if they were | ||||
defined as class methods. Also cleaned up the namespace search | ||||
logic and the string building (to use %s instead of many repeated | ||||
string adds). | ||||
* IPython/UserConfig/example-magic.py (magic_foo): updated example | ||||
of user-defined magics to operate with class methods (cleaner, in | ||||
line with the gnuplot code). | ||||
2002-04-22 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py: updated dependency list so that manual is updated when | ||||
all included files change. | ||||
* IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring | ||||
the delimiter removal option (the fix is ugly right now). | ||||
* IPython/UserConfig/ipythonrc-physics.py: simplified not to load | ||||
all of the math profile (quicker loading, no conflict between | ||||
g-9.8 and g-gnuplot). | ||||
* IPython/CrashHandler.py (CrashHandler.__call__): changed default | ||||
name of post-mortem files to IPython_crash_report.txt. | ||||
* Cleanup/update of the docs. Added all the new readline info and | ||||
formatted all lists as 'real lists'. | ||||
* IPython/ipmaker.py (make_IPython): removed now-obsolete | ||||
tab-completion options, since the full readline parse_and_bind is | ||||
now accessible. | ||||
* IPython/iplib.py (InteractiveShell.init_readline): Changed | ||||
handling of readline options. Now users can specify any string to | ||||
be passed to parse_and_bind(), as well as the delimiters to be | ||||
removed. | ||||
(InteractiveShell.__init__): Added __name__ to the global | ||||
namespace so that things like Itpl which rely on its existence | ||||
don't crash. | ||||
(InteractiveShell._prefilter): Defined the default with a _ so | ||||
that prefilter() is easier to override, while the default one | ||||
remains available. | ||||
2002-04-18 Fernando Perez <fperez@colorado.edu> | ||||
* Added information about pdb in the docs. | ||||
2002-04-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): added rc_override option to | ||||
allow passing config options at creation time which may override | ||||
anything set in the config files or command line. This is | ||||
particularly useful for configuring embedded instances. | ||||
2002-04-15 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.log): Fixed a nasty bug which could | ||||
crash embedded instances because of the input cache falling out of | ||||
sync with the output counter. | ||||
* IPython/Shell.py (IPythonShellEmbed.__init__): added a debug | ||||
mode which calls pdb after an uncaught exception in IPython itself. | ||||
2002-04-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up | ||||
readline, fix it back after each call. | ||||
* IPython/ultraTB.py (AutoFormattedTB.__text): made text a private | ||||
method to force all access via __call__(), which guarantees that | ||||
traceback references are properly deleted. | ||||
* IPython/Prompts.py (CachedOutput._display): minor fixes to | ||||
improve printing when pprint is in use. | ||||
2002-04-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit | ||||
exceptions aren't caught anymore. If the user triggers one, he | ||||
should know why he's doing it and it should go all the way up, | ||||
just like any other exception. So now @abort will fully kill the | ||||
embedded interpreter and the embedding code (unless that happens | ||||
to catch SystemExit). | ||||
* IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag | ||||
and a debugger() method to invoke the interactive pdb debugger | ||||
after printing exception information. Also added the corresponding | ||||
-pdb option and @pdb magic to control this feature, and updated | ||||
the docs. After a suggestion from Christopher Hart | ||||
(hart-AT-caltech.edu). | ||||
2002-04-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPythonShellEmbed.__init__): modified to use | ||||
the exception handlers defined by the user (not the CrashHandler) | ||||
so that user exceptions don't trigger an ipython bug report. | ||||
* IPython/ultraTB.py (ColorTB.__init__): made the color scheme | ||||
configurable (it should have always been so). | ||||
2002-03-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPythonShellEmbed.__call__): many changes here | ||||
and there to fix embedding namespace issues. This should all be | ||||
done in a more elegant way. | ||||
2002-03-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (get_home_dir): Try to make it work under | ||||
win9x also. | ||||
2002-03-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPythonShellEmbed.__init__): leave | ||||
sys.displayhook untouched upon __init__. | ||||
2002-03-19 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.9 (for embedding bug, basically). | ||||
* IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit | ||||
exceptions so that enclosing shell's state can be restored. | ||||
* Changed magic_gnuplot.py to magic-gnuplot.py to standardize | ||||
naming conventions in the .ipython/ dir. | ||||
* IPython/iplib.py (InteractiveShell.init_readline): removed '-' | ||||
from delimiters list so filenames with - in them get expanded. | ||||
* IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with | ||||
sys.displayhook not being properly restored after an embedded call. | ||||
2002-03-18 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.8 | ||||
* IPython/iplib.py (InteractiveShell.user_setup): fixed bug where | ||||
some files weren't being included in a -upgrade. | ||||
(InteractiveShell.init_readline): Added 'set show-all-if-ambiguous | ||||
on' so that the first tab completes. | ||||
(InteractiveShell.handle_magic): fixed bug with spaces around | ||||
quotes breaking many magic commands. | ||||
* setup.py: added note about ignoring the syntax error messages at | ||||
installation. | ||||
* IPython/UserConfig/magic_gnuplot.py (magic_gp): finished | ||||
streamlining the gnuplot interface, now there's only one magic @gp. | ||||
2002-03-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/magic_gnuplot.py: new name for the | ||||
example-magic_pm.py file. Much enhanced system, now with a shell | ||||
for communicating directly with gnuplot, one command at a time. | ||||
* IPython/Magic.py (Magic.magic_run): added option -n to prevent | ||||
setting __name__=='__main__'. | ||||
* IPython/UserConfig/example-magic_pm.py (magic_pm): Added | ||||
mini-shell for accessing gnuplot from inside ipython. Should | ||||
extend it later for grace access too. Inspired by Arnd's | ||||
suggestion. | ||||
* IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when | ||||
calling magic functions with () in their arguments. Thanks to Arnd | ||||
Baecker for pointing this to me. | ||||
* IPython/numutils.py (sum_flat): fixed bug. Would recurse | ||||
infinitely for integer or complex arrays (only worked with floats). | ||||
2002-03-16 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py: Merged setup and setup_windows into a single script | ||||
which properly handles things for windows users. | ||||
2002-03-15 Fernando Perez <fperez@colorado.edu> | ||||
* Big change to the manual: now the magics are all automatically | ||||
documented. This information is generated from their docstrings | ||||
and put in a latex file included by the manual lyx file. This way | ||||
we get always up to date information for the magics. The manual | ||||
now also has proper version information, also auto-synced. | ||||
For this to work, an undocumented --magic_docstrings option was added. | ||||
2002-03-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (TermColors): fixed problem with dark colors | ||||
under CDE terminals. An explicit ;2 color reset is needed in the escapes. | ||||
2002-03-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (TermColors): changed color escapes again to | ||||
fix the (old, reintroduced) line-wrapping bug. Basically, if | ||||
\001..\002 aren't given in the color escapes, lines get wrapped | ||||
weirdly. But giving those screws up old xterms and emacs terms. So | ||||
I added some logic for emacs terms to be ok, but I can't identify old | ||||
xterms separately ($TERM=='xterm' for many terminals, like konsole). | ||||
2002-03-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/usage.py (__doc__): Various documentation cleanups and | ||||
updates, both in usage docstrings and in the manual. | ||||
* IPython/Prompts.py (CachedOutput.set_colors): cleanups for | ||||
handling of caching. Set minimum acceptabe value for having a | ||||
cache at 20 values. | ||||
* IPython/iplib.py (InteractiveShell.user_setup): moved the | ||||
install_first_time function to a method, renamed it and added an | ||||
'upgrade' mode. Now people can update their config directory with | ||||
a simple command line switch (-upgrade, also new). | ||||
* IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to | ||||
@file (convenient for automagic users under Python >= 2.2). | ||||
Removed @files (it seemed more like a plural than an abbrev. of | ||||
'file show'). | ||||
* IPython/iplib.py (install_first_time): Fixed crash if there were | ||||
backup files ('~') in .ipython/ install directory. | ||||
* IPython/ipmaker.py (make_IPython): fixes for new prompt | ||||
system. Things look fine, but these changes are fairly | ||||
intrusive. Test them for a few days. | ||||
* IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of | ||||
the prompts system. Now all in/out prompt strings are user | ||||
controllable. This is particularly useful for embedding, as one | ||||
can tag embedded instances with particular prompts. | ||||
Also removed global use of sys.ps1/2, which now allows nested | ||||
embeddings without any problems. Added command-line options for | ||||
the prompt strings. | ||||
2002-03-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/example-embed-short.py (ipshell): added | ||||
example file with the bare minimum code for embedding. | ||||
* IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added | ||||
functionality for the embeddable shell to be activated/deactivated | ||||
either globally or at each call. | ||||
* IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of | ||||
rewriting the prompt with '--->' for auto-inputs with proper | ||||
coloring. Now the previous UGLY hack in handle_auto() is gone, and | ||||
this is handled by the prompts class itself, as it should. | ||||
2002-03-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_logstart): Changed @log to | ||||
@logstart to avoid name clashes with the math log function. | ||||
* Big updates to X/Emacs section of the manual. | ||||
* Removed ipython_emacs. Milan explained to me how to pass | ||||
arguments to ipython through Emacs. Some day I'm going to end up | ||||
learning some lisp... | ||||
2002-03-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipython_emacs: Created script to be used as the | ||||
py-python-command Emacs variable so we can pass IPython | ||||
parameters. I can't figure out how to tell Emacs directly to pass | ||||
parameters to IPython, so a dummy shell script will do it. | ||||
Other enhancements made for things to work better under Emacs' | ||||
various types of terminals. Many thanks to Milan Zamazal | ||||
<pdm-AT-zamazal.org> for all the suggestions and pointers. | ||||
2002-03-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): added a --readline! option so | ||||
that loading of readline is now optional. This gives better | ||||
control to emacs users. | ||||
* IPython/ultraTB.py (__date__): Modified color escape sequences | ||||
and now things work fine under xterm and in Emacs' term buffers | ||||
(though not shell ones). Well, in emacs you get colors, but all | ||||
seem to be 'light' colors (no difference between dark and light | ||||
ones). But the garbage chars are gone, and also in xterms. It | ||||
seems that now I'm using 'cleaner' ansi sequences. | ||||
2002-02-21 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.7 (mainly to publish the scoping fix). | ||||
* IPython/Logger.py (Logger.logstate): added. A corresponding | ||||
@logstate magic was created. | ||||
* IPython/Magic.py: fixed nested scoping problem under Python | ||||
2.1.x (automagic wasn't working). | ||||
2002-02-20 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.6. | ||||
* IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet' | ||||
option so that logs can come out without any headers at all. | ||||
* IPython/UserConfig/ipythonrc-scipy.py: created a profile for | ||||
SciPy. | ||||
* IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so | ||||
that embedded IPython calls don't require vars() to be explicitly | ||||
passed. Now they are extracted from the caller's frame (code | ||||
snatched from Eric Jones' weave). Added better documentation to | ||||
the section on embedding and the example file. | ||||
* IPython/genutils.py (page): Changed so that under emacs, it just | ||||
prints the string. You can then page up and down in the emacs | ||||
buffer itself. This is how the builtin help() works. | ||||
* IPython/Prompts.py (CachedOutput.__call__): Fixed issue with | ||||
macro scoping: macros need to be executed in the user's namespace | ||||
to work as if they had been typed by the user. | ||||
* IPython/Magic.py (Magic.magic_macro): Changed macros so they | ||||
execute automatically (no need to type 'exec...'). They then | ||||
behave like 'true macros'. The printing system was also modified | ||||
for this to work. | ||||
2002-02-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page_file): new function for paging files | ||||
in an OS-independent way. Also necessary for file viewing to work | ||||
well inside Emacs buffers. | ||||
(page): Added checks for being in an emacs buffer. | ||||
(page): fixed bug for Windows ($TERM isn't set in Windows). Fixed | ||||
same bug in iplib. | ||||
2002-02-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.init_readline): modified use | ||||
of readline so that IPython can work inside an Emacs buffer. | ||||
* IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to | ||||
method signatures (they weren't really bugs, but it looks cleaner | ||||
and keeps PyChecker happy). | ||||
* IPython/ipmaker.py (make_IPython): added hooks Struct to __IP | ||||
for implementing various user-defined hooks. Currently only | ||||
display is done. | ||||
* IPython/Prompts.py (CachedOutput._display): changed display | ||||
functions so that they can be dynamically changed by users easily. | ||||
* IPython/Extensions/numeric_formats.py (num_display): added an | ||||
extension for printing NumPy arrays in flexible manners. It | ||||
doesn't do anything yet, but all the structure is in | ||||
place. Ultimately the plan is to implement output format control | ||||
like in Octave. | ||||
* IPython/Magic.py (Magic.lsmagic): changed so that bound magic | ||||
methods are found at run-time by all the automatic machinery. | ||||
2002-02-17 Fernando Perez <fperez@colorado.edu> | ||||
* setup_Windows.py (make_shortcut): documented. Cleaned up the | ||||
whole file a little. | ||||
* ToDo: closed this document. Now there's a new_design.lyx | ||||
document for all new ideas. Added making a pdf of it for the | ||||
end-user distro. | ||||
* IPython/Logger.py (Logger.switch_log): Created this to replace | ||||
logon() and logoff(). It also fixes a nasty crash reported by | ||||
Philip Hisley <compsys-AT-starpower.net>. Many thanks to him. | ||||
* IPython/iplib.py (complete): got auto-completion to work with | ||||
automagic (I had wanted this for a long time). | ||||
* IPython/Magic.py (Magic.magic_files): Added @files as an alias | ||||
to @file, since file() is now a builtin and clashes with automagic | ||||
for @file. | ||||
* Made some new files: Prompts, CrashHandler, Magic, Logger. All | ||||
of this was previously in iplib, which had grown to more than 2000 | ||||
lines, way too long. No new functionality, but it makes managing | ||||
the code a bit easier. | ||||
* IPython/iplib.py (IPythonCrashHandler.__call__): Added version | ||||
information to crash reports. | ||||
2002-02-12 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.5. | ||||
2002-02-11 Fernando Perez <fperez@colorado.edu> | ||||
* Wrote a relatively complete Windows installer. It puts | ||||
everything in place, creates Start Menu entries and fixes the | ||||
color issues. Nothing fancy, but it works. | ||||
2002-02-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.safe_execfile): added an | ||||
os.path.expanduser() call so that we can type @run ~/myfile.py and | ||||
have thigs work as expected. | ||||
* IPython/genutils.py (page): fixed exception handling so things | ||||
work both in Unix and Windows correctly. Quitting a pager triggers | ||||
an IOError/broken pipe in Unix, and in windows not finding a pager | ||||
is also an IOError, so I had to actually look at the return value | ||||
of the exception, not just the exception itself. Should be ok now. | ||||
* IPython/ultraTB.py (ColorSchemeTable.set_active_scheme): | ||||
modified to allow case-insensitive color scheme changes. | ||||
2002-02-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (native_line_ends): new function to leave | ||||
user config files with os-native line-endings. | ||||
* README and manual updates. | ||||
* IPython/genutils.py: fixed unicode bug: use types.StringTypes | ||||
instead of StringType to catch Unicode strings. | ||||
* IPython/genutils.py (filefind): fixed bug for paths with | ||||
embedded spaces (very common in Windows). | ||||
* IPython/ipmaker.py (make_IPython): added a '.ini' to the rc | ||||
files under Windows, so that they get automatically associated | ||||
with a text editor. Windows makes it a pain to handle | ||||
extension-less files. | ||||
* IPython/iplib.py (InteractiveShell.init_readline): Made the | ||||
warning about readline only occur for Posix. In Windows there's no | ||||
way to get readline, so why bother with the warning. | ||||
* IPython/Struct.py (Struct.__str__): fixed to use self.__dict__ | ||||
for __str__ instead of dir(self), since dir() changed in 2.2. | ||||
* Ported to Windows! Tested on XP, I suspect it should work fine | ||||
on NT/2000, but I don't think it will work on 98 et al. That | ||||
series of Windows is such a piece of junk anyway that I won't try | ||||
porting it there. The XP port was straightforward, showed a few | ||||
bugs here and there (fixed all), in particular some string | ||||
handling stuff which required considering Unicode strings (which | ||||
Windows uses). This is good, but hasn't been too tested :) No | ||||
fancy installer yet, I'll put a note in the manual so people at | ||||
least make manually a shortcut. | ||||
* IPython/iplib.py (Magic.magic_colors): Unified the color options | ||||
into a single one, "colors". This now controls both prompt and | ||||
exception color schemes, and can be changed both at startup | ||||
(either via command-line switches or via ipythonrc files) and at | ||||
runtime, with @colors. | ||||
(Magic.magic_run): renamed @prun to @run and removed the old | ||||
@run. The two were too similar to warrant keeping both. | ||||
2002-02-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (install_first_time): Added comment on how to | ||||
configure the color options for first-time users. Put a <return> | ||||
request at the end so that small-terminal users get a chance to | ||||
read the startup info. | ||||
2002-01-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (CachedOutput.update): Changed output memory | ||||
variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For | ||||
input history we still use _i. Did this b/c these variable are | ||||
very commonly used in interactive work, so the less we need to | ||||
type the better off we are. | ||||
(Magic.magic_prun): updated @prun to better handle the namespaces | ||||
the file will run in, including a fix for __name__ not being set | ||||
before. | ||||
2002-01-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of | ||||
extra garbage for Python 2.2. Need to look more carefully into | ||||
this later. | ||||
2002-01-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.showtraceback): fixed to | ||||
display SyntaxError exceptions properly formatted when they occur | ||||
(they can be triggered by imported code). | ||||
2002-01-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.safe_execfile): now | ||||
SyntaxError exceptions are reported nicely formatted, instead of | ||||
spitting out only offset information as before. | ||||
(Magic.magic_prun): Added the @prun function for executing | ||||
programs with command line args inside IPython. | ||||
2002-01-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist | ||||
to *not* include the last item given in a range. This brings their | ||||
behavior in line with Python's slicing: | ||||
a[n1:n2] -> a[n1]...a[n2-1] | ||||
It may be a bit less convenient, but I prefer to stick to Python's | ||||
conventions *everywhere*, so users never have to wonder. | ||||
(Magic.magic_macro): Added @macro function to ease the creation of | ||||
macros. | ||||
2002-01-05 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.4. | ||||
* IPython/iplib.py (Magic.magic_pdef): | ||||
(InteractiveShell.safe_execfile): report magic lines and error | ||||
lines without line numbers so one can easily copy/paste them for | ||||
re-execution. | ||||
* Updated manual with recent changes. | ||||
* IPython/iplib.py (Magic.magic_oinfo): added constructor | ||||
docstring printing when class? is called. Very handy for knowing | ||||
how to create class instances (as long as __init__ is well | ||||
documented, of course :) | ||||
(Magic.magic_doc): print both class and constructor docstrings. | ||||
(Magic.magic_pdef): give constructor info if passed a class and | ||||
__call__ info for callable object instances. | ||||
2002-01-04 Fernando Perez <fperez@colorado.edu> | ||||
* Made deep_reload() off by default. It doesn't always work | ||||
exactly as intended, so it's probably safer to have it off. It's | ||||
still available as dreload() anyway, so nothing is lost. | ||||
2002-01-02 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.3 (contacted R.Singh at CU about biopython course, | ||||
so I wanted an updated release). | ||||
2001-12-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): Added the original | ||||
code from 'code.py' for this module in order to change the | ||||
handling of a KeyboardInterrupt. This was necessary b/c otherwise | ||||
the history cache would break when the user hit Ctrl-C, and | ||||
interact() offers no way to add any hooks to it. | ||||
2001-12-23 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py: added check for 'MANIFEST' before trying to remove | ||||
it. Thanks to Sean Reifschneider. | ||||
2001-12-22 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.2. | ||||
* Finished (reasonably) writing the manual. Later will add the | ||||
python-standard navigation stylesheets, but for the time being | ||||
it's fairly complete. Distribution will include html and pdf | ||||
versions. | ||||
* Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu | ||||
(MayaVi author). | ||||
2001-12-21 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.1. Barring any nasty bugs, this is it as far as a | ||||
good public release, I think (with the manual and the distutils | ||||
installer). The manual can use some work, but that can go | ||||
slowly. Otherwise I think it's quite nice for end users. Next | ||||
summer, rewrite the guts of it... | ||||
* Changed format of ipythonrc files to use whitespace as the | ||||
separator instead of an explicit '='. Cleaner. | ||||
2001-12-20 Fernando Perez <fperez@colorado.edu> | ||||
* Started a manual in LyX. For now it's just a quick merge of the | ||||
various internal docstrings and READMEs. Later it may grow into a | ||||
nice, full-blown manual. | ||||
* Set up a distutils based installer. Installation should now be | ||||
trivially simple for end-users. | ||||
2001-12-11 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.0. First public release, announced it at | ||||
comp.lang.python. From now on, just bugfixes... | ||||
* Went through all the files, set copyright/license notices and | ||||
cleaned up things. Ready for release. | ||||
2001-12-10 Fernando Perez <fperez@colorado.edu> | ||||
* Changed the first-time installer not to use tarfiles. It's more | ||||
robust now and less unix-dependent. Also makes it easier for | ||||
people to later upgrade versions. | ||||
* Changed @exit to @abort to reflect the fact that it's pretty | ||||
brutal (a sys.exit()). The difference between @abort and Ctrl-D | ||||
becomes significant only when IPyhton is embedded: in that case, | ||||
C-D closes IPython only, but @abort kills the enclosing program | ||||
too (unless it had called IPython inside a try catching | ||||
SystemExit). | ||||
* Created Shell module which exposes the actuall IPython Shell | ||||
classes, currently the normal and the embeddable one. This at | ||||
least offers a stable interface we won't need to change when | ||||
(later) the internals are rewritten. That rewrite will be confined | ||||
to iplib and ipmaker, but the Shell interface should remain as is. | ||||
* Added embed module which offers an embeddable IPShell object, | ||||
useful to fire up IPython *inside* a running program. Great for | ||||
debugging or dynamical data analysis. | ||||
2001-12-08 Fernando Perez <fperez@colorado.edu> | ||||
* Fixed small bug preventing seeing info from methods of defined | ||||
objects (incorrect namespace in _ofind()). | ||||
* Documentation cleanup. Moved the main usage docstrings to a | ||||
separate file, usage.py (cleaner to maintain, and hopefully in the | ||||
future some perlpod-like way of producing interactive, man and | ||||
html docs out of it will be found). | ||||
* Added @profile to see your profile at any time. | ||||
* Added @p as an alias for 'print'. It's especially convenient if | ||||
using automagic ('p x' prints x). | ||||
* Small cleanups and fixes after a pychecker run. | ||||
* Changed the @cd command to handle @cd - and @cd -<n> for | ||||
visiting any directory in _dh. | ||||
* Introduced _dh, a history of visited directories. @dhist prints | ||||
it out with numbers. | ||||
2001-12-07 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.1.22 | ||||
* Made initialization a bit more robust against invalid color | ||||
options in user input (exit, not traceback-crash). | ||||
* Changed the bug crash reporter to write the report only in the | ||||
user's .ipython directory. That way IPython won't litter people's | ||||
hard disks with crash files all over the place. Also print on | ||||
screen the necessary mail command. | ||||
* With the new ultraTB, implemented LightBG color scheme for light | ||||
background terminals. A lot of people like white backgrounds, so I | ||||
guess we should at least give them something readable. | ||||
2001-12-06 Fernando Perez <fperez@colorado.edu> | ||||
* Modified the structure of ultraTB. Now there's a proper class | ||||
for tables of color schemes which allow adding schemes easily and | ||||
switching the active scheme without creating a new instance every | ||||
time (which was ridiculous). The syntax for creating new schemes | ||||
is also cleaner. I think ultraTB is finally done, with a clean | ||||
class structure. Names are also much cleaner (now there's proper | ||||
color tables, no need for every variable to also have 'color' in | ||||
its name). | ||||
* Broke down genutils into separate files. Now genutils only | ||||
contains utility functions, and classes have been moved to their | ||||
own files (they had enough independent functionality to warrant | ||||
it): ConfigLoader, OutputTrap, Struct. | ||||
2001-12-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython turns 21! Released version 0.1.21, as a candidate for | ||||
public consumption. If all goes well, release in a few days. | ||||
* Fixed path bug (files in Extensions/ directory wouldn't be found | ||||
unless IPython/ was explicitly in sys.path). | ||||
* Extended the FlexCompleter class as MagicCompleter to allow | ||||
completion of @-starting lines. | ||||
* Created __release__.py file as a central repository for release | ||||
info that other files can read from. | ||||
* Fixed small bug in logging: when logging was turned on in | ||||
mid-session, old lines with special meanings (!@?) were being | ||||
logged without the prepended comment, which is necessary since | ||||
they are not truly valid python syntax. This should make session | ||||
restores produce less errors. | ||||
* The namespace cleanup forced me to make a FlexCompleter class | ||||
which is nothing but a ripoff of rlcompleter, but with selectable | ||||
namespace (rlcompleter only works in __main__.__dict__). I'll try | ||||
to submit a note to the authors to see if this change can be | ||||
incorporated in future rlcompleter releases (Dec.6: done) | ||||
* More fixes to namespace handling. It was a mess! Now all | ||||
explicit references to __main__.__dict__ are gone (except when | ||||
really needed) and everything is handled through the namespace | ||||
dicts in the IPython instance. We seem to be getting somewhere | ||||
with this, finally... | ||||
* Small documentation updates. | ||||
* Created the Extensions directory under IPython (with an | ||||
__init__.py). Put the PhysicalQ stuff there. This directory should | ||||
be used for all special-purpose extensions. | ||||
* File renaming: | ||||
ipythonlib --> ipmaker | ||||
ipplib --> iplib | ||||
This makes a bit more sense in terms of what these files actually do. | ||||
* Moved all the classes and functions in ipythonlib to ipplib, so | ||||
now ipythonlib only has make_IPython(). This will ease up its | ||||
splitting in smaller functional chunks later. | ||||
* Cleaned up (done, I think) output of @whos. Better column | ||||
formatting, and now shows str(var) for as much as it can, which is | ||||
typically what one gets with a 'print var'. | ||||
2001-12-04 Fernando Perez <fperez@colorado.edu> | ||||
* Fixed namespace problems. Now builtin/IPyhton/user names get | ||||
properly reported in their namespace. Internal namespace handling | ||||
is finally getting decent (not perfect yet, but much better than | ||||
the ad-hoc mess we had). | ||||
* Removed -exit option. If people just want to run a python | ||||
script, that's what the normal interpreter is for. Less | ||||
unnecessary options, less chances for bugs. | ||||
* Added a crash handler which generates a complete post-mortem if | ||||
IPython crashes. This will help a lot in tracking bugs down the | ||||
road. | ||||
* Fixed nasty bug in auto-evaluation part of prefilter(). Names | ||||
which were boud to functions being reassigned would bypass the | ||||
logger, breaking the sync of _il with the prompt counter. This | ||||
would then crash IPython later when a new line was logged. | ||||
2001-12-02 Fernando Perez <fperez@colorado.edu> | ||||
* Made IPython a package. This means people don't have to clutter | ||||
their sys.path with yet another directory. Changed the INSTALL | ||||
file accordingly. | ||||
* Cleaned up the output of @who_ls, @who and @whos. @who_ls now | ||||
sorts its output (so @who shows it sorted) and @whos formats the | ||||
table according to the width of the first column. Nicer, easier to | ||||
read. Todo: write a generic table_format() which takes a list of | ||||
lists and prints it nicely formatted, with optional row/column | ||||
separators and proper padding and justification. | ||||
* Released 0.1.20 | ||||
* Fixed bug in @log which would reverse the inputcache list (a | ||||
copy operation was missing). | ||||
* Code cleanup. @config was changed to use page(). Better, since | ||||
its output is always quite long. | ||||
* Itpl is back as a dependency. I was having too many problems | ||||
getting the parametric aliases to work reliably, and it's just | ||||
easier to code weird string operations with it than playing %()s | ||||
games. It's only ~6k, so I don't think it's too big a deal. | ||||
* Found (and fixed) a very nasty bug with history. !lines weren't | ||||
getting cached, and the out of sync caches would crash | ||||
IPython. Fixed it by reorganizing the prefilter/handlers/logger | ||||
division of labor a bit better. Bug fixed, cleaner structure. | ||||
2001-12-01 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.1.19 | ||||
* Added option -n to @hist to prevent line number printing. Much | ||||
easier to copy/paste code this way. | ||||
* Created global _il to hold the input list. Allows easy | ||||
re-execution of blocks of code by slicing it (inspired by Janko's | ||||
comment on 'macros'). | ||||
* Small fixes and doc updates. | ||||
* Rewrote @history function (was @h). Renamed it to @hist, @h is | ||||
much too fragile with automagic. Handles properly multi-line | ||||
statements and takes parameters. | ||||
2001-11-30 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.18 released. | ||||
* Fixed nasty namespace bug in initial module imports. | ||||
* Added copyright/license notes to all code files (except | ||||
DPyGetOpt). For the time being, LGPL. That could change. | ||||
* Rewrote a much nicer README, updated INSTALL, cleaned up | ||||
ipythonrc-* samples. | ||||
* Overall code/documentation cleanup. Basically ready for | ||||
release. Only remaining thing: licence decision (LGPL?). | ||||
* Converted load_config to a class, ConfigLoader. Now recursion | ||||
control is better organized. Doesn't include the same file twice. | ||||
2001-11-29 Fernando Perez <fperez@colorado.edu> | ||||
* Got input history working. Changed output history variables from | ||||
_p to _o so that _i is for input and _o for output. Just cleaner | ||||
convention. | ||||
* Implemented parametric aliases. This pretty much allows the | ||||
alias system to offer full-blown shell convenience, I think. | ||||
* Version 0.1.17 released, 0.1.18 opened. | ||||
* dot_ipython/ipythonrc (alias): added documentation. | ||||
(xcolor): Fixed small bug (xcolors -> xcolor) | ||||
* Changed the alias system. Now alias is a magic command to define | ||||
aliases just like the shell. Rationale: the builtin magics should | ||||
be there for things deeply connected to IPython's | ||||
architecture. And this is a much lighter system for what I think | ||||
is the really important feature: allowing users to define quickly | ||||
magics that will do shell things for them, so they can customize | ||||
IPython easily to match their work habits. If someone is really | ||||
desperate to have another name for a builtin alias, they can | ||||
always use __IP.magic_newname = __IP.magic_oldname. Hackish but | ||||
works. | ||||
2001-11-28 Fernando Perez <fperez@colorado.edu> | ||||
* Changed @file so that it opens the source file at the proper | ||||
line. Since it uses less, if your EDITOR environment is | ||||
configured, typing v will immediately open your editor of choice | ||||
right at the line where the object is defined. Not as quick as | ||||
having a direct @edit command, but for all intents and purposes it | ||||
works. And I don't have to worry about writing @edit to deal with | ||||
all the editors, less does that. | ||||
* Version 0.1.16 released, 0.1.17 opened. | ||||
* Fixed some nasty bugs in the page/page_dumb combo that could | ||||
crash IPython. | ||||
2001-11-27 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.15 released, 0.1.16 opened. | ||||
* Finally got ? and ?? to work for undefined things: now it's | ||||
possible to type {}.get? and get information about the get method | ||||
of dicts, or os.path? even if only os is defined (so technically | ||||
os.path isn't). Works at any level. For example, after import os, | ||||
os?, os.path?, os.path.abspath? all work. This is great, took some | ||||
work in _ofind. | ||||
* Fixed more bugs with logging. The sanest way to do it was to add | ||||
to @log a 'mode' parameter. Killed two in one shot (this mode | ||||
option was a request of Janko's). I think it's finally clean | ||||
(famous last words). | ||||
* Added a page_dumb() pager which does a decent job of paging on | ||||
screen, if better things (like less) aren't available. One less | ||||
unix dependency (someday maybe somebody will port this to | ||||
windows). | ||||
* Fixed problem in magic_log: would lock of logging out if log | ||||
creation failed (because it would still think it had succeeded). | ||||
* Improved the page() function using curses to auto-detect screen | ||||
size. Now it can make a much better decision on whether to print | ||||
or page a string. Option screen_length was modified: a value 0 | ||||
means auto-detect, and that's the default now. | ||||
* Version 0.1.14 released, 0.1.15 opened. I think this is ready to | ||||
go out. I'll test it for a few days, then talk to Janko about | ||||
licences and announce it. | ||||
* Fixed the length of the auto-generated ---> prompt which appears | ||||
for auto-parens and auto-quotes. Getting this right isn't trivial, | ||||
with all the color escapes, different prompt types and optional | ||||
separators. But it seems to be working in all the combinations. | ||||
2001-11-26 Fernando Perez <fperez@colorado.edu> | ||||
* Wrote a regexp filter to get option types from the option names | ||||
string. This eliminates the need to manually keep two duplicate | ||||
lists. | ||||
* Removed the unneeded check_option_names. Now options are handled | ||||
in a much saner manner and it's easy to visually check that things | ||||
are ok. | ||||
* Updated version numbers on all files I modified to carry a | ||||
notice so Janko and Nathan have clear version markers. | ||||
* Updated docstring for ultraTB with my changes. I should send | ||||
this to Nathan. | ||||
* Lots of small fixes. Ran everything through pychecker again. | ||||
* Made loading of deep_reload an cmd line option. If it's not too | ||||
kosher, now people can just disable it. With -nodeep_reload it's | ||||
still available as dreload(), it just won't overwrite reload(). | ||||
* Moved many options to the no| form (-opt and -noopt | ||||
accepted). Cleaner. | ||||
* Changed magic_log so that if called with no parameters, it uses | ||||
'rotate' mode. That way auto-generated logs aren't automatically | ||||
over-written. For normal logs, now a backup is made if it exists | ||||
(only 1 level of backups). A new 'backup' mode was added to the | ||||
Logger class to support this. This was a request by Janko. | ||||
* Added @logoff/@logon to stop/restart an active log. | ||||
* Fixed a lot of bugs in log saving/replay. It was pretty | ||||
broken. Now special lines (!@,/) appear properly in the command | ||||
history after a log replay. | ||||
* Tried and failed to implement full session saving via pickle. My | ||||
idea was to pickle __main__.__dict__, but modules can't be | ||||
pickled. This would be a better alternative to replaying logs, but | ||||
seems quite tricky to get to work. Changed -session to be called | ||||
-logplay, which more accurately reflects what it does. And if we | ||||
ever get real session saving working, -session is now available. | ||||
* Implemented color schemes for prompts also. As for tracebacks, | ||||
currently only NoColor and Linux are supported. But now the | ||||
infrastructure is in place, based on a generic ColorScheme | ||||
class. So writing and activating new schemes both for the prompts | ||||
and the tracebacks should be straightforward. | ||||
* Version 0.1.13 released, 0.1.14 opened. | ||||
* Changed handling of options for output cache. Now counter is | ||||
hardwired starting at 1 and one specifies the maximum number of | ||||
entries *in the outcache* (not the max prompt counter). This is | ||||
much better, since many statements won't increase the cache | ||||
count. It also eliminated some confusing options, now there's only | ||||
one: cache_size. | ||||
* Added 'alias' magic function and magic_alias option in the | ||||
ipythonrc file. Now the user can easily define whatever names he | ||||
wants for the magic functions without having to play weird | ||||
namespace games. This gives IPython a real shell-like feel. | ||||
* Fixed doc/?/?? for magics. Now all work, in all forms (explicit | ||||
@ or not). | ||||
This was one of the last remaining 'visible' bugs (that I know | ||||
of). I think if I can clean up the session loading so it works | ||||
100% I'll release a 0.2.0 version on c.p.l (talk to Janko first | ||||
about licensing). | ||||
2001-11-25 Fernando Perez <fperez@colorado.edu> | ||||
* Rewrote somewhat oinfo (?/??). Nicer, now uses page() and | ||||
there's a cleaner distinction between what ? and ?? show. | ||||
* Added screen_length option. Now the user can define his own | ||||
screen size for page() operations. | ||||
* Implemented magic shell-like functions with automatic code | ||||
generation. Now adding another function is just a matter of adding | ||||
an entry to a dict, and the function is dynamically generated at | ||||
run-time. Python has some really cool features! | ||||
* Renamed many options to cleanup conventions a little. Now all | ||||
are lowercase, and only underscores where needed. Also in the code | ||||
option name tables are clearer. | ||||
* Changed prompts a little. Now input is 'In [n]:' instead of | ||||
'In[n]:='. This allows it the numbers to be aligned with the | ||||
Out[n] numbers, and removes usage of ':=' which doesn't exist in | ||||
Python (it was a Mathematica thing). The '...' continuation prompt | ||||
was also changed a little to align better. | ||||
* Fixed bug when flushing output cache. Not all _p<n> variables | ||||
exist, so their deletion needs to be wrapped in a try: | ||||
* Figured out how to properly use inspect.formatargspec() (it | ||||
requires the args preceded by *). So I removed all the code from | ||||
_get_pdef in Magic, which was just replicating that. | ||||
* Added test to prefilter to allow redefining magic function names | ||||
as variables. This is ok, since the @ form is always available, | ||||
but whe should allow the user to define a variable called 'ls' if | ||||
he needs it. | ||||
* Moved the ToDo information from README into a separate ToDo. | ||||
* General code cleanup and small bugfixes. I think it's close to a | ||||
state where it can be released, obviously with a big 'beta' | ||||
warning on it. | ||||
* Got the magic function split to work. Now all magics are defined | ||||
in a separate class. It just organizes things a bit, and now | ||||
Xemacs behaves nicer (it was choking on InteractiveShell b/c it | ||||
was too long). | ||||
* Changed @clear to @reset to avoid potential confusions with | ||||
the shell command clear. Also renamed @cl to @clear, which does | ||||
exactly what people expect it to from their shell experience. | ||||
Added a check to the @reset command (since it's so | ||||
destructive, it's probably a good idea to ask for confirmation). | ||||
But now reset only works for full namespace resetting. Since the | ||||
del keyword is already there for deleting a few specific | ||||
variables, I don't see the point of having a redundant magic | ||||
function for the same task. | ||||
2001-11-24 Fernando Perez <fperez@colorado.edu> | ||||
* Updated the builtin docs (esp. the ? ones). | ||||
* Ran all the code through pychecker. Not terribly impressed with | ||||
it: lots of spurious warnings and didn't really find anything of | ||||
substance (just a few modules being imported and not used). | ||||
* Implemented the new ultraTB functionality into IPython. New | ||||
option: xcolors. This chooses color scheme. xmode now only selects | ||||
between Plain and Verbose. Better orthogonality. | ||||
* Large rewrite of ultraTB. Much cleaner now, with a separation of | ||||
mode and color scheme for the exception handlers. Now it's | ||||
possible to have the verbose traceback with no coloring. | ||||
2001-11-23 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.12 released, 0.1.13 opened. | ||||
* Removed option to set auto-quote and auto-paren escapes by | ||||
user. The chances of breaking valid syntax are just too high. If | ||||
someone *really* wants, they can always dig into the code. | ||||
* Made prompt separators configurable. | ||||
2001-11-22 Fernando Perez <fperez@colorado.edu> | ||||
* Small bugfixes in many places. | ||||
* Removed the MyCompleter class from ipplib. It seemed redundant | ||||
with the C-p,C-n history search functionality. Less code to | ||||
maintain. | ||||
* Moved all the original ipython.py code into ipythonlib.py. Right | ||||
now it's just one big dump into a function called make_IPython, so | ||||
no real modularity has been gained. But at least it makes the | ||||
wrapper script tiny, and since ipythonlib is a module, it gets | ||||
compiled and startup is much faster. | ||||
This is a reasobably 'deep' change, so we should test it for a | ||||
while without messing too much more with the code. | ||||
2001-11-21 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.11 released, 0.1.12 opened for further work. | ||||
* Removed dependency on Itpl. It was only needed in one place. It | ||||
would be nice if this became part of python, though. It makes life | ||||
*a lot* easier in some cases. | ||||
* Simplified the prefilter code a bit. Now all handlers are | ||||
expected to explicitly return a value (at least a blank string). | ||||
* Heavy edits in ipplib. Removed the help system altogether. Now | ||||
obj?/?? is used for inspecting objects, a magic @doc prints | ||||
docstrings, and full-blown Python help is accessed via the 'help' | ||||
keyword. This cleans up a lot of code (less to maintain) and does | ||||
the job. Since 'help' is now a standard Python component, might as | ||||
well use it and remove duplicate functionality. | ||||
Also removed the option to use ipplib as a standalone program. By | ||||
now it's too dependent on other parts of IPython to function alone. | ||||
* Fixed bug in genutils.pager. It would crash if the pager was | ||||
exited immediately after opening (broken pipe). | ||||
* Trimmed down the VerboseTB reporting a little. The header is | ||||
much shorter now and the repeated exception arguments at the end | ||||
have been removed. For interactive use the old header seemed a bit | ||||
excessive. | ||||
* Fixed small bug in output of @whos for variables with multi-word | ||||
types (only first word was displayed). | ||||
2001-11-17 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.10 released, 0.1.11 opened for further work. | ||||
* Modified dirs and friends. dirs now *returns* the stack (not | ||||
prints), so one can manipulate it as a variable. Convenient to | ||||
travel along many directories. | ||||
* Fixed bug in magic_pdef: would only work with functions with | ||||
arguments with default values. | ||||
2001-11-14 Fernando Perez <fperez@colorado.edu> | ||||
* Added the PhysicsInput stuff to dot_ipython so it ships as an | ||||
example with IPython. Various other minor fixes and cleanups. | ||||
* Version 0.1.9 released, 0.1.10 opened for further work. | ||||
* Added sys.path to the list of directories searched in the | ||||
execfile= option. It used to be the current directory and the | ||||
user's IPYTHONDIR only. | ||||
2001-11-13 Fernando Perez <fperez@colorado.edu> | ||||
* Reinstated the raw_input/prefilter separation that Janko had | ||||
initially. This gives a more convenient setup for extending the | ||||
pre-processor from the outside: raw_input always gets a string, | ||||
and prefilter has to process it. We can then redefine prefilter | ||||
from the outside and implement extensions for special | ||||
purposes. | ||||
Today I got one for inputting PhysicalQuantity objects | ||||
(from Scientific) without needing any function calls at | ||||
all. Extremely convenient, and it's all done as a user-level | ||||
extension (no IPython code was touched). Now instead of: | ||||
a = PhysicalQuantity(4.2,'m/s**2') | ||||
one can simply say | ||||
a = 4.2 m/s**2 | ||||
or even | ||||
a = 4.2 m/s^2 | ||||
I use this, but it's also a proof of concept: IPython really is | ||||
fully user-extensible, even at the level of the parsing of the | ||||
command line. It's not trivial, but it's perfectly doable. | ||||
* Added 'add_flip' method to inclusion conflict resolver. Fixes | ||||
the problem of modules being loaded in the inverse order in which | ||||
they were defined in | ||||
* Version 0.1.8 released, 0.1.9 opened for further work. | ||||
* Added magics pdef, source and file. They respectively show the | ||||
definition line ('prototype' in C), source code and full python | ||||
file for any callable object. The object inspector oinfo uses | ||||
these to show the same information. | ||||
* Version 0.1.7 released, 0.1.8 opened for further work. | ||||
* Separated all the magic functions into a class called Magic. The | ||||
InteractiveShell class was becoming too big for Xemacs to handle | ||||
(de-indenting a line would lock it up for 10 seconds while it | ||||
backtracked on the whole class!) | ||||
FIXME: didn't work. It can be done, but right now namespaces are | ||||
all messed up. Do it later (reverted it for now, so at least | ||||
everything works as before). | ||||
* Got the object introspection system (magic_oinfo) working! I | ||||
think this is pretty much ready for release to Janko, so he can | ||||
test it for a while and then announce it. Pretty much 100% of what | ||||
I wanted for the 'phase 1' release is ready. Happy, tired. | ||||
2001-11-12 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.6 released, 0.1.7 opened for further work. | ||||
* Fixed bug in printing: it used to test for truth before | ||||
printing, so 0 wouldn't print. Now checks for None. | ||||
* Fixed bug where auto-execs increase the prompt counter by 2 (b/c | ||||
they have to call len(str(sys.ps1)) ). But the fix is ugly, it | ||||
reaches by hand into the outputcache. Think of a better way to do | ||||
this later. | ||||
* Various small fixes thanks to Nathan's comments. | ||||
* Changed magic_pprint to magic_Pprint. This way it doesn't | ||||
collide with pprint() and the name is consistent with the command | ||||
line option. | ||||
* Changed prompt counter behavior to be fully like | ||||
Mathematica's. That is, even input that doesn't return a result | ||||
raises the prompt counter. The old behavior was kind of confusing | ||||
(getting the same prompt number several times if the operation | ||||
didn't return a result). | ||||
* Fixed Nathan's last name in a couple of places (Gray, not Graham). | ||||
* Fixed -Classic mode (wasn't working anymore). | ||||
* Added colored prompts using Nathan's new code. Colors are | ||||
currently hardwired, they can be user-configurable. For | ||||
developers, they can be chosen in file ipythonlib.py, at the | ||||
beginning of the CachedOutput class def. | ||||
2001-11-11 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.5 released, 0.1.6 opened for further work. | ||||
* Changed magic_env to *return* the environment as a dict (not to | ||||
print it). This way it prints, but it can also be processed. | ||||
* Added Verbose exception reporting to interactive | ||||
exceptions. Very nice, now even 1/0 at the prompt gives a verbose | ||||
traceback. Had to make some changes to the ultraTB file. This is | ||||
probably the last 'big' thing in my mental todo list. This ties | ||||
in with the next entry: | ||||
* Changed -Xi and -Xf to a single -xmode option. Now all the user | ||||
has to specify is Plain, Color or Verbose for all exception | ||||
handling. | ||||
* Removed ShellServices option. All this can really be done via | ||||
the magic system. It's easier to extend, cleaner and has automatic | ||||
namespace protection and documentation. | ||||
2001-11-09 Fernando Perez <fperez@colorado.edu> | ||||
* Fixed bug in output cache flushing (missing parameter to | ||||
__init__). Other small bugs fixed (found using pychecker). | ||||
* Version 0.1.4 opened for bugfixing. | ||||
2001-11-07 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.3 released, mainly because of the raw_input bug. | ||||
* Fixed NASTY bug in raw_input: input line wasn't properly parsed | ||||
and when testing for whether things were callable, a call could | ||||
actually be made to certain functions. They would get called again | ||||
once 'really' executed, with a resulting double call. A disaster | ||||
in many cases (list.reverse() would never work!). | ||||
* Removed prefilter() function, moved its code to raw_input (which | ||||
after all was just a near-empty caller for prefilter). This saves | ||||
a function call on every prompt, and simplifies the class a tiny bit. | ||||
* Fix _ip to __ip name in magic example file. | ||||
* Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should | ||||
work with non-gnu versions of tar. | ||||
2001-11-06 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.2. Just to keep track of the recent changes. | ||||
* Fixed nasty bug in output prompt routine. It used to check 'if | ||||
arg != None...'. Problem is, this fails if arg implements a | ||||
special comparison (__cmp__) which disallows comparing to | ||||
None. Found it when trying to use the PhysicalQuantity module from | ||||
ScientificPython. | ||||
2001-11-05 Fernando Perez <fperez@colorado.edu> | ||||
* Also added dirs. Now the pushd/popd/dirs family functions | ||||
basically like the shell, with the added convenience of going home | ||||
when called with no args. | ||||
* pushd/popd slightly modified to mimic shell behavior more | ||||
closely. | ||||
* Added env,pushd,popd from ShellServices as magic functions. I | ||||
think the cleanest will be to port all desired functions from | ||||
ShellServices as magics and remove ShellServices altogether. This | ||||
will provide a single, clean way of adding functionality | ||||
(shell-type or otherwise) to IP. | ||||
2001-11-04 Fernando Perez <fperez@colorado.edu> | ||||
* Added .ipython/ directory to sys.path. This way users can keep | ||||
customizations there and access them via import. | ||||
2001-11-03 Fernando Perez <fperez@colorado.edu> | ||||
* Opened version 0.1.1 for new changes. | ||||
* Changed version number to 0.1.0: first 'public' release, sent to | ||||
Nathan and Janko. | ||||
* Lots of small fixes and tweaks. | ||||
* Minor changes to whos format. Now strings are shown, snipped if | ||||
too long. | ||||
* Changed ShellServices to work on __main__ so they show up in @who | ||||
* Help also works with ? at the end of a line: | ||||
?sin and sin? | ||||
both produce the same effect. This is nice, as often I use the | ||||
tab-complete to find the name of a method, but I used to then have | ||||
to go to the beginning of the line to put a ? if I wanted more | ||||
info. Now I can just add the ? and hit return. Convenient. | ||||
2001-11-02 Fernando Perez <fperez@colorado.edu> | ||||
* Python version check (>=2.1) added. | ||||
* Added LazyPython documentation. At this point the docs are quite | ||||
a mess. A cleanup is in order. | ||||
* Auto-installer created. For some bizarre reason, the zipfiles | ||||
module isn't working on my system. So I made a tar version | ||||
(hopefully the command line options in various systems won't kill | ||||
me). | ||||
* Fixes to Struct in genutils. Now all dictionary-like methods are | ||||
protected (reasonably). | ||||
* Added pager function to genutils and changed ? to print usage | ||||
note through it (it was too long). | ||||
* Added the LazyPython functionality. Works great! I changed the | ||||
auto-quote escape to ';', it's on home row and next to '. But | ||||
both auto-quote and auto-paren (still /) escapes are command-line | ||||
parameters. | ||||
2001-11-01 Fernando Perez <fperez@colorado.edu> | ||||
* Version changed to 0.0.7. Fairly large change: configuration now | ||||
is all stored in a directory, by default .ipython. There, all | ||||
config files have normal looking names (not .names) | ||||
* Version 0.0.6 Released first to Lucas and Archie as a test | ||||
run. Since it's the first 'semi-public' release, change version to | ||||
> 0.0.6 for any changes now. | ||||
* Stuff I had put in the ipplib.py changelog: | ||||
Changes to InteractiveShell: | ||||
- Made the usage message a parameter. | ||||
- Require the name of the shell variable to be given. It's a bit | ||||
of a hack, but allows the name 'shell' not to be hardwired in the | ||||
magic (@) handler, which is problematic b/c it requires | ||||
polluting the global namespace with 'shell'. This in turn is | ||||
fragile: if a user redefines a variable called shell, things | ||||
break. | ||||
- magic @: all functions available through @ need to be defined | ||||
as magic_<name>, even though they can be called simply as | ||||
@<name>. This allows the special command @magic to gather | ||||
information automatically about all existing magic functions, | ||||
even if they are run-time user extensions, by parsing the shell | ||||
instance __dict__ looking for special magic_ names. | ||||
- mainloop: added *two* local namespace parameters. This allows | ||||
the class to differentiate between parameters which were there | ||||
before and after command line initialization was processed. This | ||||
way, later @who can show things loaded at startup by the | ||||
user. This trick was necessary to make session saving/reloading | ||||
really work: ideally after saving/exiting/reloading a session, | ||||
*everything* should look the same, including the output of @who. I | ||||
was only able to make this work with this double namespace | ||||
trick. | ||||
- added a header to the logfile which allows (almost) full | ||||
session restoring. | ||||
- prepend lines beginning with @ or !, with a and log | ||||
them. Why? !lines: may be useful to know what you did @lines: | ||||
they may affect session state. So when restoring a session, at | ||||
least inform the user of their presence. I couldn't quite get | ||||
them to properly re-execute, but at least the user is warned. | ||||
* Started ChangeLog. | ||||