##// END OF EJS Templates
update version to 0.8.4 for point release
Ville M. Vainio -
Show More
@@ -1,89 +1,89 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """Release data for the IPython project.
2 """Release data for the IPython project.
3
3
4 $Id: Release.py 3002 2008-02-01 07:17:00Z fperez $"""
4 $Id: Release.py 3002 2008-02-01 07:17:00Z fperez $"""
5
5
6 #*****************************************************************************
6 #*****************************************************************************
7 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
7 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
8 #
8 #
9 # Copyright (c) 2001 Janko Hauser <jhauser@zscout.de> and Nathaniel Gray
9 # Copyright (c) 2001 Janko Hauser <jhauser@zscout.de> and Nathaniel Gray
10 # <n8gray@caltech.edu>
10 # <n8gray@caltech.edu>
11 #
11 #
12 # Distributed under the terms of the BSD License. The full license is in
12 # Distributed under the terms of the BSD License. The full license is in
13 # the file COPYING, distributed as part of this software.
13 # the file COPYING, distributed as part of this software.
14 #*****************************************************************************
14 #*****************************************************************************
15
15
16 # Name of the package for release purposes. This is the name which labels
16 # Name of the package for release purposes. This is the name which labels
17 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
17 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
18 name = 'ipython'
18 name = 'ipython'
19
19
20 # For versions with substrings (like 0.6.16.svn), use an extra . to separate
20 # For versions with substrings (like 0.6.16.svn), use an extra . to separate
21 # the new substring. We have to avoid using either dashes or underscores,
21 # the new substring. We have to avoid using either dashes or underscores,
22 # because bdist_rpm does not accept dashes (an RPM) convention, and
22 # because bdist_rpm does not accept dashes (an RPM) convention, and
23 # bdist_deb does not accept underscores (a Debian convention).
23 # bdist_deb does not accept underscores (a Debian convention).
24
24
25 revision = '85'
25 revision = '124'
26 branch = 'ipython'
26 branch = 'ipython'
27
27
28 if branch == 'ipython':
28 if branch == 'ipython':
29 version = '0.8.3.bzr.r' + revision
29 version = '0.8.4.bzr.r' + revision
30 else:
30 else:
31 version = '0.8.3.bzr.r%s.%s' % (revision,branch)
31 version = '0.8.4.bzr.r%s.%s' % (revision,branch)
32
32
33 version = '0.8.3'
33 version = '0.8.4'
34
34
35 description = "An enhanced interactive Python shell."
35 description = "An enhanced interactive Python shell."
36
36
37 long_description = \
37 long_description = \
38 """
38 """
39 IPython provides a replacement for the interactive Python interpreter with
39 IPython provides a replacement for the interactive Python interpreter with
40 extra functionality.
40 extra functionality.
41
41
42 Main features:
42 Main features:
43
43
44 * Comprehensive object introspection.
44 * Comprehensive object introspection.
45
45
46 * Input history, persistent across sessions.
46 * Input history, persistent across sessions.
47
47
48 * Caching of output results during a session with automatically generated
48 * Caching of output results during a session with automatically generated
49 references.
49 references.
50
50
51 * Readline based name completion.
51 * Readline based name completion.
52
52
53 * Extensible system of 'magic' commands for controlling the environment and
53 * Extensible system of 'magic' commands for controlling the environment and
54 performing many tasks related either to IPython or the operating system.
54 performing many tasks related either to IPython or the operating system.
55
55
56 * Configuration system with easy switching between different setups (simpler
56 * Configuration system with easy switching between different setups (simpler
57 than changing $PYTHONSTARTUP environment variables every time).
57 than changing $PYTHONSTARTUP environment variables every time).
58
58
59 * Session logging and reloading.
59 * Session logging and reloading.
60
60
61 * Extensible syntax processing for special purpose situations.
61 * Extensible syntax processing for special purpose situations.
62
62
63 * Access to the system shell with user-extensible alias system.
63 * Access to the system shell with user-extensible alias system.
64
64
65 * Easily embeddable in other Python programs.
65 * Easily embeddable in other Python programs.
66
66
67 * Integrated access to the pdb debugger and the Python profiler.
67 * Integrated access to the pdb debugger and the Python profiler.
68
68
69 The latest development version is always available at the IPython subversion
69 The latest development version is always available at the IPython subversion
70 repository_.
70 repository_.
71
71
72 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
72 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
73 """
73 """
74
74
75 license = 'BSD'
75 license = 'BSD'
76
76
77 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
77 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
78 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
78 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
79 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
79 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
80 'Ville' : ('Ville Vainio','vivainio@gmail.com')
80 'Ville' : ('Ville Vainio','vivainio@gmail.com')
81 }
81 }
82
82
83 url = 'http://ipython.scipy.org'
83 url = 'http://ipython.scipy.org'
84
84
85 download_url = 'http://ipython.scipy.org/dist'
85 download_url = 'http://ipython.scipy.org/dist'
86
86
87 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
87 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
88
88
89 keywords = ['Interactive','Interpreter','Shell']
89 keywords = ['Interactive','Interpreter','Shell']
@@ -1,7628 +1,7635 b''
1 2008-05-30 Ville Vainio <vivainio@gmail.com>
2
3 * shell.py: disable -twisted on non-win32 platforms.
4 import sets module on python 2.3.
5
6 * Release.py: update version to 0.8.4 for quick point fix
7
1 2008-05-28 *** Released version 0.8.3
8 2008-05-28 *** Released version 0.8.3
2
9
3 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
10 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
4
11
5 * ../win32_manual_post_install.py (run): Fix the windows installer
12 * ../win32_manual_post_install.py (run): Fix the windows installer
6 so the links to the docs are correct.
13 so the links to the docs are correct.
7
14
8 * IPython/ultraTB.py: flush stderr after writing to it to fix
15 * IPython/ultraTB.py: flush stderr after writing to it to fix
9 problems with exception traceback ordering in some platforms.
16 problems with exception traceback ordering in some platforms.
10 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
17 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
11
18
12 * IPython/Magic.py (magic_cpaste): add stripping of continuation
19 * IPython/Magic.py (magic_cpaste): add stripping of continuation
13 prompts, feature requested by Stefan vdW.
20 prompts, feature requested by Stefan vdW.
14
21
15 * ../setup.py: updates to build and release tools in preparation
22 * ../setup.py: updates to build and release tools in preparation
16 for 0.8.3 release.
23 for 0.8.3 release.
17
24
18 2008-05-27 Ville Vainio <vivainio@gmail.com>
25 2008-05-27 Ville Vainio <vivainio@gmail.com>
19
26
20 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
27 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
21 for minimal environments (e.g. Maemo sdk python)
28 for minimal environments (e.g. Maemo sdk python)
22
29
23 * Magic.py: cpaste strips whitespace before >>> (allow pasting
30 * Magic.py: cpaste strips whitespace before >>> (allow pasting
24 doctests)
31 doctests)
25
32
26 * ipy_completers.py: cd completer now does recursive path expand
33 * ipy_completers.py: cd completer now does recursive path expand
27 (old behaviour is buggy on some readline versions)
34 (old behaviour is buggy on some readline versions)
28
35
29 2008-05-14 Ville Vainio <vivainio@gmail.com>
36 2008-05-14 Ville Vainio <vivainio@gmail.com>
30
37
31 * Extensions/ipy_greedycompleter.py:
38 * Extensions/ipy_greedycompleter.py:
32 New extension that enables a bit more "relaxed" tab
39 New extension that enables a bit more "relaxed" tab
33 completer that evaluates code without safety checks
40 completer that evaluates code without safety checks
34 (i.e. there can be side effects like function calls)
41 (i.e. there can be side effects like function calls)
35
42
36 2008-04-20 Ville Vainio <vivainio@gmail.com>
43 2008-04-20 Ville Vainio <vivainio@gmail.com>
37
44
38 * Extensions/ipy_lookfor.py: add %lookfor magic command
45 * Extensions/ipy_lookfor.py: add %lookfor magic command
39 (search docstrings for words) by Pauli Virtanen. Close #245.
46 (search docstrings for words) by Pauli Virtanen. Close #245.
40
47
41 * Extension/ipy_jot.py: %jot and %read magics, analogous
48 * Extension/ipy_jot.py: %jot and %read magics, analogous
42 to %store but you can specify some notes. Not read
49 to %store but you can specify some notes. Not read
43 in automatically on startup, you need %read.
50 in automatically on startup, you need %read.
44 Contributed by Yichun Wei.
51 Contributed by Yichun Wei.
45
52
46 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
53 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
47
54
48 * IPython/genutils.py (page): apply workaround to curses bug that
55 * IPython/genutils.py (page): apply workaround to curses bug that
49 can leave terminal corrupted after a call to initscr().
56 can leave terminal corrupted after a call to initscr().
50
57
51 2008-04-15 Ville Vainio <vivainio@gmail.com>
58 2008-04-15 Ville Vainio <vivainio@gmail.com>
52
59
53 * genutils.py: SList.grep supports 'field' argument
60 * genutils.py: SList.grep supports 'field' argument
54
61
55 * ipy_completers.py: module completer looks inside
62 * ipy_completers.py: module completer looks inside
56 .egg zip files (patch by mc). Close #196.
63 .egg zip files (patch by mc). Close #196.
57
64
58 2008-04-09 Ville Vainio <vivainio@gmail.com>
65 2008-04-09 Ville Vainio <vivainio@gmail.com>
59
66
60 * deep_reload.py: do not crash on from __future__ import
67 * deep_reload.py: do not crash on from __future__ import
61 absolute_import. Close #244.
68 absolute_import. Close #244.
62
69
63 2008-04-02 Ville Vainio <vivainio@gmail.com>
70 2008-04-02 Ville Vainio <vivainio@gmail.com>
64
71
65 * ipy_winpdb.py: New extension for winpdb integration. %wdb
72 * ipy_winpdb.py: New extension for winpdb integration. %wdb
66 test.py is winpdb equivalent of %run -d test.py. winpdb is a
73 test.py is winpdb equivalent of %run -d test.py. winpdb is a
67 crossplatform remote GUI debugger based on wxpython.
74 crossplatform remote GUI debugger based on wxpython.
68
75
69 2008-03-29 Ville Vainio <vivainio@gmail.com>
76 2008-03-29 Ville Vainio <vivainio@gmail.com>
70
77
71 * ipython.rst, do_sphinx.py: New documentation base, based on
78 * ipython.rst, do_sphinx.py: New documentation base, based on
72 reStucturedText and Sphinx (html/pdf generation). The old Lyx
79 reStucturedText and Sphinx (html/pdf generation). The old Lyx
73 based documentation will not be updated anymore.
80 based documentation will not be updated anymore.
74
81
75 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
82 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
76
83
77 2008-03-24 Ville Vainio <vivainio@gmail.com>
84 2008-03-24 Ville Vainio <vivainio@gmail.com>
78
85
79 * ipython.rst, do_sphinx.py: New documentation base, based on
86 * ipython.rst, do_sphinx.py: New documentation base, based on
80 reStucturedText and Sphinx (html/pdf generation). The old Lyx
87 reStucturedText and Sphinx (html/pdf generation). The old Lyx
81 based documentation will not be updated anymore.
88 based documentation will not be updated anymore.
82
89
83 ipython.rst has up to date documentation on matters that were not
90 ipython.rst has up to date documentation on matters that were not
84 documented at all, and it also removes various
91 documented at all, and it also removes various
85 misdocumented/deprecated features.
92 misdocumented/deprecated features.
86
93
87 2008-03-22 Ville Vainio <vivainio@gmail.com>
94 2008-03-22 Ville Vainio <vivainio@gmail.com>
88
95
89 * Shell.py: Merge mtexp branch:
96 * Shell.py: Merge mtexp branch:
90 https://code.launchpad.net/~ipython/ipython/mtexp
97 https://code.launchpad.net/~ipython/ipython/mtexp
91
98
92 Privides simpler and more robust MTInteractiveShell that won't
99 Privides simpler and more robust MTInteractiveShell that won't
93 deadlock, even when the worker thread (GUI) stops doing runcode()
100 deadlock, even when the worker thread (GUI) stops doing runcode()
94 regularly. r71.
101 regularly. r71.
95
102
96 2008-03-20 Ville Vainio <vivainio@gmail.com>
103 2008-03-20 Ville Vainio <vivainio@gmail.com>
97
104
98 * twshell.py: New shell that runs IPython code in Twisted reactor.
105 * twshell.py: New shell that runs IPython code in Twisted reactor.
99 Launch by doing ipython -twisted. r67.
106 Launch by doing ipython -twisted. r67.
100
107
101 2008-03-19 Ville Vainio <vivainio@gmail.com>
108 2008-03-19 Ville Vainio <vivainio@gmail.com>
102
109
103 * Magic.py: %rehashx works correctly when shadowed system commands
110 * Magic.py: %rehashx works correctly when shadowed system commands
104 have upper case characters (e.g. Print.exe). r64.
111 have upper case characters (e.g. Print.exe). r64.
105
112
106 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
113 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
107 knows options to commands, based on bzrtools. Uses bzrlib
114 knows options to commands, based on bzrtools. Uses bzrlib
108 directly. r66.
115 directly. r66.
109
116
110 2008-03-16 Ville Vainio <vivainio@gmail.com>
117 2008-03-16 Ville Vainio <vivainio@gmail.com>
111
118
112 * make_tarball.py: Fixed for bzr.
119 * make_tarball.py: Fixed for bzr.
113
120
114 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
121 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
115
122
116 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
123 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
117 by Erich Heine.
124 by Erich Heine.
118
125
119 2008-03-12 Ville Vainio <vivainio@gmail.com>
126 2008-03-12 Ville Vainio <vivainio@gmail.com>
120
127
121 * ipmaker.py: Force (reload?) import of ipy_user_conf and
128 * ipmaker.py: Force (reload?) import of ipy_user_conf and
122 ipy_profile_foo, so that embedded instances can be relaunched and
129 ipy_profile_foo, so that embedded instances can be relaunched and
123 configuration is still done. r50
130 configuration is still done. r50
124
131
125 * ipapi.py, test_embed.py: Allow specifying shell class in
132 * ipapi.py, test_embed.py: Allow specifying shell class in
126 launch_new_instance & make_new instance. Use this in
133 launch_new_instance & make_new instance. Use this in
127 test_embed.py. r51.
134 test_embed.py. r51.
128
135
129 test_embed.py is also a good and simple demo of embedding IPython.
136 test_embed.py is also a good and simple demo of embedding IPython.
130
137
131
138
132 2008-03-10 Ville Vainio <vivainio@gmail.com>
139 2008-03-10 Ville Vainio <vivainio@gmail.com>
133
140
134 * tool/update_revnum.py: Change to bzr revisioning scheme in
141 * tool/update_revnum.py: Change to bzr revisioning scheme in
135 revision numbers.
142 revision numbers.
136
143
137 * Shell.py: Threading improvements:
144 * Shell.py: Threading improvements:
138
145
139 In multithreaded shells, do not hang on macros and o.autoexec
146 In multithreaded shells, do not hang on macros and o.autoexec
140 commands (or anything executed with _ip.runlines()) anymore. Allow
147 commands (or anything executed with _ip.runlines()) anymore. Allow
141 recursive execution of IPython code in
148 recursive execution of IPython code in
142 MTInteractiveShell.runsource by checking if we are already in
149 MTInteractiveShell.runsource by checking if we are already in
143 worker thread, and execute code directly if we are. r48.
150 worker thread, and execute code directly if we are. r48.
144
151
145 MTInteractiveShell.runsource: execute code directly if worker
152 MTInteractiveShell.runsource: execute code directly if worker
146 thread is not running yet (this is the case in config files). r49.
153 thread is not running yet (this is the case in config files). r49.
147
154
148 2008-03-09 Ville Vainio <vivainio@gmail.com>
155 2008-03-09 Ville Vainio <vivainio@gmail.com>
149
156
150 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
157 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
151 argument of previous command in sh profile. Similar to bash '!$'.
158 argument of previous command in sh profile. Similar to bash '!$'.
152 LA(3) or $LA(3) stands for last argument of input history command
159 LA(3) or $LA(3) stands for last argument of input history command
153 3.
160 3.
154
161
155 * Shell.py: -pylab names don't clutter %whos listing.
162 * Shell.py: -pylab names don't clutter %whos listing.
156
163
157 2008-03-07 Ville Vainio <vivainio@gmail.com>
164 2008-03-07 Ville Vainio <vivainio@gmail.com>
158
165
159 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
166 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
160 autoreloading modules; try %autoreload and %aimport. Close #154.
167 autoreloading modules; try %autoreload and %aimport. Close #154.
161 Uses the new pre_runcode_hook.
168 Uses the new pre_runcode_hook.
162
169
163 2008-02-24 Ville Vainio <vivainio@gmail.com>
170 2008-02-24 Ville Vainio <vivainio@gmail.com>
164
171
165 * platutils_posix.py: freeze_term_title works
172 * platutils_posix.py: freeze_term_title works
166
173
167 2008-02-21 Ville Vainio <vivainio@gmail.com>
174 2008-02-21 Ville Vainio <vivainio@gmail.com>
168
175
169 * Magic.py: %quickref does not crash with empty docstring
176 * Magic.py: %quickref does not crash with empty docstring
170
177
171 2008-02-20 Ville Vainio <vivainio@gmail.com>
178 2008-02-20 Ville Vainio <vivainio@gmail.com>
172
179
173 * completer.py: do not treat [](){} as protectable chars anymore,
180 * completer.py: do not treat [](){} as protectable chars anymore,
174 close #233.
181 close #233.
175
182
176 * completer.py: do not treat [](){} as protectable chars anymore
183 * completer.py: do not treat [](){} as protectable chars anymore
177
184
178 * magic.py, test_cpaste.py: Allow different prefix for pasting
185 * magic.py, test_cpaste.py: Allow different prefix for pasting
179 from email
186 from email
180
187
181 2008-02-17 Ville Vainio <vivainio@gmail.com>
188 2008-02-17 Ville Vainio <vivainio@gmail.com>
182
189
183 * Switched over to Launchpad/bzr as primary VCS.
190 * Switched over to Launchpad/bzr as primary VCS.
184
191
185 2008-02-14 Ville Vainio <vivainio@gmail.com>
192 2008-02-14 Ville Vainio <vivainio@gmail.com>
186
193
187 * ipapi.py: _ip.runlines() is now much more liberal about
194 * ipapi.py: _ip.runlines() is now much more liberal about
188 indentation - it cleans up the scripts it gets
195 indentation - it cleans up the scripts it gets
189
196
190 2008-02-14 Ville Vainio <vivainio@gmail.com>
197 2008-02-14 Ville Vainio <vivainio@gmail.com>
191
198
192 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
199 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
193 Changes to it (later on) are too numerous to list in ChangeLog
200 Changes to it (later on) are too numerous to list in ChangeLog
194 until it stabilizes
201 until it stabilizes
195
202
196 2008-02-07 Darren Dale <darren.dale@cornell.edu>
203 2008-02-07 Darren Dale <darren.dale@cornell.edu>
197
204
198 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
205 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
199 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
206 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
200 interaction in the interpreter (like Tkinter does), but it seems to
207 interaction in the interpreter (like Tkinter does), but it seems to
201 partially interfere with the IPython implementation and exec_()
208 partially interfere with the IPython implementation and exec_()
202 still seems to block. So we disable the PyQt implementation and
209 still seems to block. So we disable the PyQt implementation and
203 stick with the IPython one for now.
210 stick with the IPython one for now.
204
211
205 2008-02-02 Walter Doerwald <walter@livinglogic.de>
212 2008-02-02 Walter Doerwald <walter@livinglogic.de>
206
213
207 * ipipe.py: A new ipipe table has been added: ialias produces all
214 * ipipe.py: A new ipipe table has been added: ialias produces all
208 entries from IPython's alias table.
215 entries from IPython's alias table.
209
216
210 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
217 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
211
218
212 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
219 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
213 of KBINT in threaded shells. After code provided by Marc in #212.
220 of KBINT in threaded shells. After code provided by Marc in #212.
214
221
215 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
222 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
216
223
217 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
224 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
218 that could occur due to a race condition in threaded shells.
225 that could occur due to a race condition in threaded shells.
219 Thanks to code provided by Marc, as #210.
226 Thanks to code provided by Marc, as #210.
220
227
221 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
228 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
222
229
223 * IPython/Magic.py (magic_doctest_mode): respect the user's
230 * IPython/Magic.py (magic_doctest_mode): respect the user's
224 settings for input separators rather than overriding them. After
231 settings for input separators rather than overriding them. After
225 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
232 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
226
233
227 * IPython/history.py (magic_history): Add support for declaring an
234 * IPython/history.py (magic_history): Add support for declaring an
228 output file directly from the history command.
235 output file directly from the history command.
229
236
230 2008-01-21 Walter Doerwald <walter@livinglogic.de>
237 2008-01-21 Walter Doerwald <walter@livinglogic.de>
231
238
232 * ipipe.py: Register ipipe's displayhooks via the generic function
239 * ipipe.py: Register ipipe's displayhooks via the generic function
233 generics.result_display() instead of using ipapi.set_hook().
240 generics.result_display() instead of using ipapi.set_hook().
234
241
235 2008-01-19 Walter Doerwald <walter@livinglogic.de>
242 2008-01-19 Walter Doerwald <walter@livinglogic.de>
236
243
237 * ibrowse.py, igrid.py, ipipe.py:
244 * ibrowse.py, igrid.py, ipipe.py:
238 The input object can now be passed to the constructor of the display classes.
245 The input object can now be passed to the constructor of the display classes.
239 This makes it possible to use them with objects that implement __or__.
246 This makes it possible to use them with objects that implement __or__.
240 Use this constructor in the displayhook instead of piping.
247 Use this constructor in the displayhook instead of piping.
241
248
242 * ipipe.py: Importing astyle.py is done as late as possible to
249 * ipipe.py: Importing astyle.py is done as late as possible to
243 avoid problems with circular imports.
250 avoid problems with circular imports.
244
251
245 2008-01-19 Ville Vainio <vivainio@gmail.com>
252 2008-01-19 Ville Vainio <vivainio@gmail.com>
246
253
247 * hooks.py, iplib.py: Added 'shell_hook' to customize how
254 * hooks.py, iplib.py: Added 'shell_hook' to customize how
248 IPython calls shell.
255 IPython calls shell.
249
256
250 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
257 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
251 how IPython pages text (%page, %pycat, %pdoc etc.)
258 how IPython pages text (%page, %pycat, %pdoc etc.)
252
259
253 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
260 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
254 and '%kill' to kill hanging processes that won't obey ctrl+C.
261 and '%kill' to kill hanging processes that won't obey ctrl+C.
255
262
256 2008-01-16 Ville Vainio <vivainio@gmail.com>
263 2008-01-16 Ville Vainio <vivainio@gmail.com>
257
264
258 * ipy_completers.py: pyw extension support for %run completer.
265 * ipy_completers.py: pyw extension support for %run completer.
259
266
260 2008-01-11 Ville Vainio <vivainio@gmail.com>
267 2008-01-11 Ville Vainio <vivainio@gmail.com>
261
268
262 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
269 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
263 of ipython commands to be run when IPython has started up
270 of ipython commands to be run when IPython has started up
264 (just before running the scripts and -c arg on command line).
271 (just before running the scripts and -c arg on command line).
265
272
266 * ipy_user_conf.py: Added an example on how to change term
273 * ipy_user_conf.py: Added an example on how to change term
267 colors in config file (through using autoexec).
274 colors in config file (through using autoexec).
268
275
269 * completer.py, test_completer.py: Ability to specify custom
276 * completer.py, test_completer.py: Ability to specify custom
270 get_endidx to replace readline.get_endidx. For emacs users.
277 get_endidx to replace readline.get_endidx. For emacs users.
271
278
272 2008-01-10 Ville Vainio <vivainio@gmail.com>
279 2008-01-10 Ville Vainio <vivainio@gmail.com>
273
280
274 * Prompts.py (set_p_str): do not crash on illegal prompt strings
281 * Prompts.py (set_p_str): do not crash on illegal prompt strings
275
282
276 2008-01-08 Ville Vainio <vivainio@gmail.com>
283 2008-01-08 Ville Vainio <vivainio@gmail.com>
277
284
278 * '%macro -r' (raw mode) is now default in sh profile.
285 * '%macro -r' (raw mode) is now default in sh profile.
279
286
280 2007-12-31 Ville Vainio <vivainio@gmail.com>
287 2007-12-31 Ville Vainio <vivainio@gmail.com>
281
288
282 * completer.py: custom completer matching is now case sensitive
289 * completer.py: custom completer matching is now case sensitive
283 (#207).
290 (#207).
284
291
285 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
292 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
286 an attempt to prevent occasional crashes.
293 an attempt to prevent occasional crashes.
287
294
288 * CrashHandler.py: Crash log dump now asks user to press enter
295 * CrashHandler.py: Crash log dump now asks user to press enter
289 before exiting.
296 before exiting.
290
297
291 * Store _ip in user_ns instead of __builtin__, enabling safer
298 * Store _ip in user_ns instead of __builtin__, enabling safer
292 coexistence of multiple IPython instances in the same python
299 coexistence of multiple IPython instances in the same python
293 interpreter (#197).
300 interpreter (#197).
294
301
295 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
302 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
296 switch to enable pydb in post-mortem debugging and %run -d.
303 switch to enable pydb in post-mortem debugging and %run -d.
297
304
298 2007-12-28 Ville Vainio <vivainio@gmail.com>
305 2007-12-28 Ville Vainio <vivainio@gmail.com>
299
306
300 * ipy_server.py: TCP socket server for "remote control" of an IPython
307 * ipy_server.py: TCP socket server for "remote control" of an IPython
301 instance.
308 instance.
302
309
303 * Debugger.py: Change to PSF license
310 * Debugger.py: Change to PSF license
304
311
305 * simplegeneric.py: Add license & author notes.
312 * simplegeneric.py: Add license & author notes.
306
313
307 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
314 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
308 to navigate file system with a custom completer. Run
315 to navigate file system with a custom completer. Run
309 ipy_fsops.test_pathobj() to play with it.
316 ipy_fsops.test_pathobj() to play with it.
310
317
311 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
318 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
312
319
313 * IPython/dtutils.py: Add utilities for interactively running
320 * IPython/dtutils.py: Add utilities for interactively running
314 doctests. Still needs work to more easily handle the namespace of
321 doctests. Still needs work to more easily handle the namespace of
315 the package one may be working on, but the basics are in place.
322 the package one may be working on, but the basics are in place.
316
323
317 2007-12-27 Ville Vainio <vivainio@gmail.com>
324 2007-12-27 Ville Vainio <vivainio@gmail.com>
318
325
319 * ipy_completers.py: Applied arno's patch to get proper list of
326 * ipy_completers.py: Applied arno's patch to get proper list of
320 packages in import completer. Closes #196.
327 packages in import completer. Closes #196.
321
328
322 2007-12-20 Ville Vainio <vivainio@gmail.com>
329 2007-12-20 Ville Vainio <vivainio@gmail.com>
323
330
324 * completer.py, generics.py(complete_object): Allow
331 * completer.py, generics.py(complete_object): Allow
325 custom complers based on python objects via simplegeneric.
332 custom complers based on python objects via simplegeneric.
326 See generics.py / my_demo_complete_object
333 See generics.py / my_demo_complete_object
327
334
328 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
335 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
329
336
330 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
337 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
331 behavior to prompt objects, useful for display hooks to adjust
338 behavior to prompt objects, useful for display hooks to adjust
332 themselves depending on whether prompts will be there or not.
339 themselves depending on whether prompts will be there or not.
333
340
334 2007-12-13 Ville Vainio <vivainio@gmail.com>
341 2007-12-13 Ville Vainio <vivainio@gmail.com>
335
342
336 * iplib.py(raw_input): unix readline does not allow unicode in
343 * iplib.py(raw_input): unix readline does not allow unicode in
337 history, encode to normal string. After patch by Tiago.
344 history, encode to normal string. After patch by Tiago.
338 Close #201
345 Close #201
339
346
340 2007-12-12 Ville Vainio <vivainio@gmail.com>
347 2007-12-12 Ville Vainio <vivainio@gmail.com>
341
348
342 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
349 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
343 current directory.
350 current directory.
344
351
345 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
352 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
346
353
347 * IPython/Shell.py (_select_shell): add support for controlling
354 * IPython/Shell.py (_select_shell): add support for controlling
348 the pylab threading mode directly at the command line, without
355 the pylab threading mode directly at the command line, without
349 having to modify MPL config files. Added unit tests for this
356 having to modify MPL config files. Added unit tests for this
350 feature, though manual/docs update is still pending, will do later.
357 feature, though manual/docs update is still pending, will do later.
351
358
352 2007-12-11 Ville Vainio <vivainio@gmail.com>
359 2007-12-11 Ville Vainio <vivainio@gmail.com>
353
360
354 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
361 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
355 use in scripts)
362 use in scripts)
356
363
357 2007-12-07 Ville Vainio <vivainio@gmail.com>
364 2007-12-07 Ville Vainio <vivainio@gmail.com>
358
365
359 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
366 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
360 anymore (to \#) - even if it is a comment char that is implicitly
367 anymore (to \#) - even if it is a comment char that is implicitly
361 escaped in some unix shells in interactive mode, it is ok to leave
368 escaped in some unix shells in interactive mode, it is ok to leave
362 it in IPython as such.
369 it in IPython as such.
363
370
364
371
365 2007-12-01 Robert Kern <robert.kern@gmail.com>
372 2007-12-01 Robert Kern <robert.kern@gmail.com>
366
373
367 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
374 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
368 inspect.findsource(). It can now find source lines inside zipped
375 inspect.findsource(). It can now find source lines inside zipped
369 packages.
376 packages.
370
377
371 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
378 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
372 in the frame's namespace before trusting the filename in the code object
379 in the frame's namespace before trusting the filename in the code object
373 which created the frame.
380 which created the frame.
374
381
375 2007-11-29 *** Released version 0.8.2
382 2007-11-29 *** Released version 0.8.2
376
383
377 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
384 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
378
385
379 * IPython/Logger.py (Logger.logstop): add a proper logstop()
386 * IPython/Logger.py (Logger.logstop): add a proper logstop()
380 method to fully stop the logger, along with a corresponding
387 method to fully stop the logger, along with a corresponding
381 %logstop magic for interactive use.
388 %logstop magic for interactive use.
382
389
383 * IPython/Extensions/ipy_host_completers.py: added new host
390 * IPython/Extensions/ipy_host_completers.py: added new host
384 completers functionality, contributed by Gael Pasgrimaud
391 completers functionality, contributed by Gael Pasgrimaud
385 <gawel-AT-afpy.org>.
392 <gawel-AT-afpy.org>.
386
393
387 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
394 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
388
395
389 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
396 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
390 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
397 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
391 options handling. Unicode fix in %whos (committed a while ago)
398 options handling. Unicode fix in %whos (committed a while ago)
392 was also contributed by Paul.
399 was also contributed by Paul.
393
400
394 2007-11-23 Darren Dale <darren.dale@cornell.edu>
401 2007-11-23 Darren Dale <darren.dale@cornell.edu>
395 * ipy_traits_completer.py: let traits_completer respect the user's
402 * ipy_traits_completer.py: let traits_completer respect the user's
396 readline_omit__names setting.
403 readline_omit__names setting.
397
404
398 2007-11-08 Ville Vainio <vivainio@gmail.com>
405 2007-11-08 Ville Vainio <vivainio@gmail.com>
399
406
400 * ipy_completers.py (import completer): assume 'xml' module exists.
407 * ipy_completers.py (import completer): assume 'xml' module exists.
401 Do not add every module twice anymore. Closes #196.
408 Do not add every module twice anymore. Closes #196.
402
409
403 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
410 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
404 completer that uses apt-cache to search for existing packages.
411 completer that uses apt-cache to search for existing packages.
405
412
406 2007-11-06 Ville Vainio <vivainio@gmail.com>
413 2007-11-06 Ville Vainio <vivainio@gmail.com>
407
414
408 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
415 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
409 true. Closes #194.
416 true. Closes #194.
410
417
411 2007-11-01 Brian Granger <ellisonbg@gmail.com>
418 2007-11-01 Brian Granger <ellisonbg@gmail.com>
412
419
413 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
420 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
414 working with OS X 10.5 libedit implementation of readline.
421 working with OS X 10.5 libedit implementation of readline.
415
422
416 2007-10-24 Ville Vainio <vivainio@gmail.com>
423 2007-10-24 Ville Vainio <vivainio@gmail.com>
417
424
418 * iplib.py(user_setup): To route around buggy installations where
425 * iplib.py(user_setup): To route around buggy installations where
419 UserConfig is not available, create a minimal _ipython.
426 UserConfig is not available, create a minimal _ipython.
420
427
421 * iplib.py: Unicode fixes from Jorgen.
428 * iplib.py: Unicode fixes from Jorgen.
422
429
423 * genutils.py: Slist now has new method 'fields()' for extraction of
430 * genutils.py: Slist now has new method 'fields()' for extraction of
424 whitespace-separated fields from line-oriented data.
431 whitespace-separated fields from line-oriented data.
425
432
426 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
433 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
427
434
428 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
435 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
429 when querying objects with no __class__ attribute (such as
436 when querying objects with no __class__ attribute (such as
430 f2py-generated modules).
437 f2py-generated modules).
431
438
432 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
439 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
433
440
434 * IPython/Magic.py (magic_time): track compilation time and report
441 * IPython/Magic.py (magic_time): track compilation time and report
435 it if longer than 0.1s (fix done to %time and %timeit). After a
442 it if longer than 0.1s (fix done to %time and %timeit). After a
436 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
443 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
437
444
438 2007-09-18 Ville Vainio <vivainio@gmail.com>
445 2007-09-18 Ville Vainio <vivainio@gmail.com>
439
446
440 * genutils.py(make_quoted_expr): Do not use Itpl, it does
447 * genutils.py(make_quoted_expr): Do not use Itpl, it does
441 not support unicode at the moment. Fixes (many) magic calls with
448 not support unicode at the moment. Fixes (many) magic calls with
442 special characters.
449 special characters.
443
450
444 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
451 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
445
452
446 * IPython/genutils.py (doctest_reload): expose the doctest
453 * IPython/genutils.py (doctest_reload): expose the doctest
447 reloader to the user so that people can easily reset doctest while
454 reloader to the user so that people can easily reset doctest while
448 using it interactively. Fixes a problem reported by Jorgen.
455 using it interactively. Fixes a problem reported by Jorgen.
449
456
450 * IPython/iplib.py (InteractiveShell.__init__): protect the
457 * IPython/iplib.py (InteractiveShell.__init__): protect the
451 FakeModule instances used for __main__ in %run calls from
458 FakeModule instances used for __main__ in %run calls from
452 deletion, so that user code defined in them isn't left with
459 deletion, so that user code defined in them isn't left with
453 dangling references due to the Python module deletion machinery.
460 dangling references due to the Python module deletion machinery.
454 This should fix the problems reported by Darren.
461 This should fix the problems reported by Darren.
455
462
456 2007-09-10 Darren Dale <dd55@cornell.edu>
463 2007-09-10 Darren Dale <dd55@cornell.edu>
457
464
458 * Cleanup of IPShellQt and IPShellQt4
465 * Cleanup of IPShellQt and IPShellQt4
459
466
460 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
467 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
461
468
462 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
469 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
463 doctest support.
470 doctest support.
464
471
465 * IPython/iplib.py (safe_execfile): minor docstring improvements.
472 * IPython/iplib.py (safe_execfile): minor docstring improvements.
466
473
467 2007-09-08 Ville Vainio <vivainio@gmail.com>
474 2007-09-08 Ville Vainio <vivainio@gmail.com>
468
475
469 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
476 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
470 directory, not the target directory.
477 directory, not the target directory.
471
478
472 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
479 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
473 exception that won't print the tracebacks. Switched many magics to
480 exception that won't print the tracebacks. Switched many magics to
474 raise them on error situations, also GetoptError is not printed
481 raise them on error situations, also GetoptError is not printed
475 anymore.
482 anymore.
476
483
477 2007-09-07 Ville Vainio <vivainio@gmail.com>
484 2007-09-07 Ville Vainio <vivainio@gmail.com>
478
485
479 * iplib.py: do not auto-alias "dir", it screws up other dir auto
486 * iplib.py: do not auto-alias "dir", it screws up other dir auto
480 aliases.
487 aliases.
481
488
482 * genutils.py: SList.grep() implemented.
489 * genutils.py: SList.grep() implemented.
483
490
484 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
491 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
485 for easy "out of the box" setup of several common editors, so that
492 for easy "out of the box" setup of several common editors, so that
486 e.g. '%edit os.path.isfile' will jump to the correct line
493 e.g. '%edit os.path.isfile' will jump to the correct line
487 automatically. Contributions for command lines of your favourite
494 automatically. Contributions for command lines of your favourite
488 editors welcome.
495 editors welcome.
489
496
490 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
497 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
491
498
492 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
499 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
493 preventing source display in certain cases. In reality I think
500 preventing source display in certain cases. In reality I think
494 the problem is with Ubuntu's Python build, but this change works
501 the problem is with Ubuntu's Python build, but this change works
495 around the issue in some cases (not in all, unfortunately). I'd
502 around the issue in some cases (not in all, unfortunately). I'd
496 filed a Python bug on this with more details, but in the change of
503 filed a Python bug on this with more details, but in the change of
497 bug trackers it seems to have been lost.
504 bug trackers it seems to have been lost.
498
505
499 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
506 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
500 not the same, it's not self-documenting, doesn't allow range
507 not the same, it's not self-documenting, doesn't allow range
501 selection, and sorts alphabetically instead of numerically.
508 selection, and sorts alphabetically instead of numerically.
502 (magic_r): restore %r. No, "up + enter. One char magic" is not
509 (magic_r): restore %r. No, "up + enter. One char magic" is not
503 the same thing, since %r takes parameters to allow fast retrieval
510 the same thing, since %r takes parameters to allow fast retrieval
504 of old commands. I've received emails from users who use this a
511 of old commands. I've received emails from users who use this a
505 LOT, so it stays.
512 LOT, so it stays.
506 (magic_automagic): restore %automagic. "use _ip.option.automagic"
513 (magic_automagic): restore %automagic. "use _ip.option.automagic"
507 is not a valid replacement b/c it doesn't provide an complete
514 is not a valid replacement b/c it doesn't provide an complete
508 explanation (which the automagic docstring does).
515 explanation (which the automagic docstring does).
509 (magic_autocall): restore %autocall, with improved docstring.
516 (magic_autocall): restore %autocall, with improved docstring.
510 Same argument as for others, "use _ip.options.autocall" is not a
517 Same argument as for others, "use _ip.options.autocall" is not a
511 valid replacement.
518 valid replacement.
512 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
519 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
513 tutorials and online docs.
520 tutorials and online docs.
514
521
515 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
522 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
516
523
517 * IPython/usage.py (quick_reference): mention magics in quickref,
524 * IPython/usage.py (quick_reference): mention magics in quickref,
518 modified main banner to mention %quickref.
525 modified main banner to mention %quickref.
519
526
520 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
527 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
521
528
522 2007-09-06 Ville Vainio <vivainio@gmail.com>
529 2007-09-06 Ville Vainio <vivainio@gmail.com>
523
530
524 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
531 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
525 Callable aliases now pass the _ip as first arg. This breaks
532 Callable aliases now pass the _ip as first arg. This breaks
526 compatibility with earlier 0.8.2.svn series! (though they should
533 compatibility with earlier 0.8.2.svn series! (though they should
527 not have been in use yet outside these few extensions)
534 not have been in use yet outside these few extensions)
528
535
529 2007-09-05 Ville Vainio <vivainio@gmail.com>
536 2007-09-05 Ville Vainio <vivainio@gmail.com>
530
537
531 * external/mglob.py: expand('dirname') => ['dirname'], instead
538 * external/mglob.py: expand('dirname') => ['dirname'], instead
532 of ['dirname/foo','dirname/bar', ...].
539 of ['dirname/foo','dirname/bar', ...].
533
540
534 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
541 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
535 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
542 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
536 is useful for others as well).
543 is useful for others as well).
537
544
538 * iplib.py: on callable aliases (as opposed to old style aliases),
545 * iplib.py: on callable aliases (as opposed to old style aliases),
539 do var_expand() immediately, and use make_quoted_expr instead
546 do var_expand() immediately, and use make_quoted_expr instead
540 of hardcoded r"""
547 of hardcoded r"""
541
548
542 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
549 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
543 if not available load ipy_fsops.py for cp, mv, etc. replacements
550 if not available load ipy_fsops.py for cp, mv, etc. replacements
544
551
545 * OInspect.py, ipy_which.py: improve %which and obj? for callable
552 * OInspect.py, ipy_which.py: improve %which and obj? for callable
546 aliases
553 aliases
547
554
548 2007-09-04 Ville Vainio <vivainio@gmail.com>
555 2007-09-04 Ville Vainio <vivainio@gmail.com>
549
556
550 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
557 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
551 Relicensed under BSD with the authors approval.
558 Relicensed under BSD with the authors approval.
552
559
553 * ipmaker.py, usage.py: Remove %magic from default banner, improve
560 * ipmaker.py, usage.py: Remove %magic from default banner, improve
554 %quickref
561 %quickref
555
562
556 2007-09-03 Ville Vainio <vivainio@gmail.com>
563 2007-09-03 Ville Vainio <vivainio@gmail.com>
557
564
558 * Magic.py: %time now passes expression through prefilter,
565 * Magic.py: %time now passes expression through prefilter,
559 allowing IPython syntax.
566 allowing IPython syntax.
560
567
561 2007-09-01 Ville Vainio <vivainio@gmail.com>
568 2007-09-01 Ville Vainio <vivainio@gmail.com>
562
569
563 * ipmaker.py: Always show full traceback when newstyle config fails
570 * ipmaker.py: Always show full traceback when newstyle config fails
564
571
565 2007-08-27 Ville Vainio <vivainio@gmail.com>
572 2007-08-27 Ville Vainio <vivainio@gmail.com>
566
573
567 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
574 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
568
575
569 2007-08-26 Ville Vainio <vivainio@gmail.com>
576 2007-08-26 Ville Vainio <vivainio@gmail.com>
570
577
571 * ipmaker.py: Command line args have the highest priority again
578 * ipmaker.py: Command line args have the highest priority again
572
579
573 * iplib.py, ipmaker.py: -i command line argument now behaves as in
580 * iplib.py, ipmaker.py: -i command line argument now behaves as in
574 normal python, i.e. leaves the IPython session running after -c
581 normal python, i.e. leaves the IPython session running after -c
575 command or running a batch file from command line.
582 command or running a batch file from command line.
576
583
577 2007-08-22 Ville Vainio <vivainio@gmail.com>
584 2007-08-22 Ville Vainio <vivainio@gmail.com>
578
585
579 * iplib.py: no extra empty (last) line in raw hist w/ multiline
586 * iplib.py: no extra empty (last) line in raw hist w/ multiline
580 statements
587 statements
581
588
582 * logger.py: Fix bug where blank lines in history were not
589 * logger.py: Fix bug where blank lines in history were not
583 added until AFTER adding the current line; translated and raw
590 added until AFTER adding the current line; translated and raw
584 history should finally be in sync with prompt now.
591 history should finally be in sync with prompt now.
585
592
586 * ipy_completers.py: quick_completer now makes it easy to create
593 * ipy_completers.py: quick_completer now makes it easy to create
587 trivial custom completers
594 trivial custom completers
588
595
589 * clearcmd.py: shadow history compression & erasing, fixed input hist
596 * clearcmd.py: shadow history compression & erasing, fixed input hist
590 clearing.
597 clearing.
591
598
592 * envpersist.py, history.py: %env (sh profile only), %hist completers
599 * envpersist.py, history.py: %env (sh profile only), %hist completers
593
600
594 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
601 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
595 term title now include the drive letter, and always use / instead of
602 term title now include the drive letter, and always use / instead of
596 os.sep (as per recommended approach for win32 ipython in general).
603 os.sep (as per recommended approach for win32 ipython in general).
597
604
598 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
605 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
599 plain python scripts from ipykit command line by running
606 plain python scripts from ipykit command line by running
600 "py myscript.py", even w/o installed python.
607 "py myscript.py", even w/o installed python.
601
608
602 2007-08-21 Ville Vainio <vivainio@gmail.com>
609 2007-08-21 Ville Vainio <vivainio@gmail.com>
603
610
604 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
611 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
605 (for backwards compatibility)
612 (for backwards compatibility)
606
613
607 * history.py: switch back to %hist -t from %hist -r as default.
614 * history.py: switch back to %hist -t from %hist -r as default.
608 At least until raw history is fixed for good.
615 At least until raw history is fixed for good.
609
616
610 2007-08-20 Ville Vainio <vivainio@gmail.com>
617 2007-08-20 Ville Vainio <vivainio@gmail.com>
611
618
612 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
619 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
613 locate alias redeclarations etc. Also, avoid handling
620 locate alias redeclarations etc. Also, avoid handling
614 _ip.IP.alias_table directly, prefer using _ip.defalias.
621 _ip.IP.alias_table directly, prefer using _ip.defalias.
615
622
616
623
617 2007-08-15 Ville Vainio <vivainio@gmail.com>
624 2007-08-15 Ville Vainio <vivainio@gmail.com>
618
625
619 * prefilter.py: ! is now always served first
626 * prefilter.py: ! is now always served first
620
627
621 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
628 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
622
629
623 * IPython/iplib.py (safe_execfile): fix the SystemExit
630 * IPython/iplib.py (safe_execfile): fix the SystemExit
624 auto-suppression code to work in Python2.4 (the internal structure
631 auto-suppression code to work in Python2.4 (the internal structure
625 of that exception changed and I'd only tested the code with 2.5).
632 of that exception changed and I'd only tested the code with 2.5).
626 Bug reported by a SciPy attendee.
633 Bug reported by a SciPy attendee.
627
634
628 2007-08-13 Ville Vainio <vivainio@gmail.com>
635 2007-08-13 Ville Vainio <vivainio@gmail.com>
629
636
630 * prefilter.py: reverted !c:/bin/foo fix, made % in
637 * prefilter.py: reverted !c:/bin/foo fix, made % in
631 multiline specials work again
638 multiline specials work again
632
639
633 2007-08-13 Ville Vainio <vivainio@gmail.com>
640 2007-08-13 Ville Vainio <vivainio@gmail.com>
634
641
635 * prefilter.py: Take more care to special-case !, so that
642 * prefilter.py: Take more care to special-case !, so that
636 !c:/bin/foo.exe works.
643 !c:/bin/foo.exe works.
637
644
638 * setup.py: if we are building eggs, strip all docs and
645 * setup.py: if we are building eggs, strip all docs and
639 examples (it doesn't make sense to bytecompile examples,
646 examples (it doesn't make sense to bytecompile examples,
640 and docs would be in an awkward place anyway).
647 and docs would be in an awkward place anyway).
641
648
642 * Ryan Krauss' patch fixes start menu shortcuts when IPython
649 * Ryan Krauss' patch fixes start menu shortcuts when IPython
643 is installed into a directory that has spaces in the name.
650 is installed into a directory that has spaces in the name.
644
651
645 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
652 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
646
653
647 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
654 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
648 doctest profile and %doctest_mode, so they actually generate the
655 doctest profile and %doctest_mode, so they actually generate the
649 blank lines needed by doctest to separate individual tests.
656 blank lines needed by doctest to separate individual tests.
650
657
651 * IPython/iplib.py (safe_execfile): modify so that running code
658 * IPython/iplib.py (safe_execfile): modify so that running code
652 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
659 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
653 doesn't get a printed traceback. Any other value in sys.exit(),
660 doesn't get a printed traceback. Any other value in sys.exit(),
654 including the empty call, still generates a traceback. This
661 including the empty call, still generates a traceback. This
655 enables use of %run without having to pass '-e' for codes that
662 enables use of %run without having to pass '-e' for codes that
656 correctly set the exit status flag.
663 correctly set the exit status flag.
657
664
658 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
665 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
659
666
660 * IPython/iplib.py (InteractiveShell.post_config_initialization):
667 * IPython/iplib.py (InteractiveShell.post_config_initialization):
661 fix problems with doctests failing when run inside IPython due to
668 fix problems with doctests failing when run inside IPython due to
662 IPython's modifications of sys.displayhook.
669 IPython's modifications of sys.displayhook.
663
670
664 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
671 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
665
672
666 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
673 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
667 a string with names.
674 a string with names.
668
675
669 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
676 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
670
677
671 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
678 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
672 magic to toggle on/off the doctest pasting support without having
679 magic to toggle on/off the doctest pasting support without having
673 to leave a session to switch to a separate profile.
680 to leave a session to switch to a separate profile.
674
681
675 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
682 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
676
683
677 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
684 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
678 introduce a blank line between inputs, to conform to doctest
685 introduce a blank line between inputs, to conform to doctest
679 requirements.
686 requirements.
680
687
681 * IPython/OInspect.py (Inspector.pinfo): fix another part where
688 * IPython/OInspect.py (Inspector.pinfo): fix another part where
682 auto-generated docstrings for new-style classes were showing up.
689 auto-generated docstrings for new-style classes were showing up.
683
690
684 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
691 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
685
692
686 * api_changes: Add new file to track backward-incompatible
693 * api_changes: Add new file to track backward-incompatible
687 user-visible changes.
694 user-visible changes.
688
695
689 2007-08-06 Ville Vainio <vivainio@gmail.com>
696 2007-08-06 Ville Vainio <vivainio@gmail.com>
690
697
691 * ipmaker.py: fix bug where user_config_ns didn't exist at all
698 * ipmaker.py: fix bug where user_config_ns didn't exist at all
692 before all the config files were handled.
699 before all the config files were handled.
693
700
694 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
701 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
695
702
696 * IPython/irunner.py (RunnerFactory): Add new factory class for
703 * IPython/irunner.py (RunnerFactory): Add new factory class for
697 creating reusable runners based on filenames.
704 creating reusable runners based on filenames.
698
705
699 * IPython/Extensions/ipy_profile_doctest.py: New profile for
706 * IPython/Extensions/ipy_profile_doctest.py: New profile for
700 doctest support. It sets prompts/exceptions as similar to
707 doctest support. It sets prompts/exceptions as similar to
701 standard Python as possible, so that ipython sessions in this
708 standard Python as possible, so that ipython sessions in this
702 profile can be easily pasted as doctests with minimal
709 profile can be easily pasted as doctests with minimal
703 modifications. It also enables pasting of doctests from external
710 modifications. It also enables pasting of doctests from external
704 sources (even if they have leading whitespace), so that you can
711 sources (even if they have leading whitespace), so that you can
705 rerun doctests from existing sources.
712 rerun doctests from existing sources.
706
713
707 * IPython/iplib.py (_prefilter): fix a buglet where after entering
714 * IPython/iplib.py (_prefilter): fix a buglet where after entering
708 some whitespace, the prompt would become a continuation prompt
715 some whitespace, the prompt would become a continuation prompt
709 with no way of exiting it other than Ctrl-C. This fix brings us
716 with no way of exiting it other than Ctrl-C. This fix brings us
710 into conformity with how the default python prompt works.
717 into conformity with how the default python prompt works.
711
718
712 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
719 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
713 Add support for pasting not only lines that start with '>>>', but
720 Add support for pasting not only lines that start with '>>>', but
714 also with ' >>>'. That is, arbitrary whitespace can now precede
721 also with ' >>>'. That is, arbitrary whitespace can now precede
715 the prompts. This makes the system useful for pasting doctests
722 the prompts. This makes the system useful for pasting doctests
716 from docstrings back into a normal session.
723 from docstrings back into a normal session.
717
724
718 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
725 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
719
726
720 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
727 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
721 r1357, which had killed multiple invocations of an embedded
728 r1357, which had killed multiple invocations of an embedded
722 ipython (this means that example-embed has been broken for over 1
729 ipython (this means that example-embed has been broken for over 1
723 year!!!). Rather than possibly breaking the batch stuff for which
730 year!!!). Rather than possibly breaking the batch stuff for which
724 the code in iplib.py/interact was introduced, I worked around the
731 the code in iplib.py/interact was introduced, I worked around the
725 problem in the embedding class in Shell.py. We really need a
732 problem in the embedding class in Shell.py. We really need a
726 bloody test suite for this code, I'm sick of finding stuff that
733 bloody test suite for this code, I'm sick of finding stuff that
727 used to work breaking left and right every time I use an old
734 used to work breaking left and right every time I use an old
728 feature I hadn't touched in a few months.
735 feature I hadn't touched in a few months.
729 (kill_embedded): Add a new magic that only shows up in embedded
736 (kill_embedded): Add a new magic that only shows up in embedded
730 mode, to allow users to permanently deactivate an embedded instance.
737 mode, to allow users to permanently deactivate an embedded instance.
731
738
732 2007-08-01 Ville Vainio <vivainio@gmail.com>
739 2007-08-01 Ville Vainio <vivainio@gmail.com>
733
740
734 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
741 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
735 history gets out of sync on runlines (e.g. when running macros).
742 history gets out of sync on runlines (e.g. when running macros).
736
743
737 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
744 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
738
745
739 * IPython/Magic.py (magic_colors): fix win32-related error message
746 * IPython/Magic.py (magic_colors): fix win32-related error message
740 that could appear under *nix when readline was missing. Patch by
747 that could appear under *nix when readline was missing. Patch by
741 Scott Jackson, closes #175.
748 Scott Jackson, closes #175.
742
749
743 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
750 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
744
751
745 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
752 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
746 completer that it traits-aware, so that traits objects don't show
753 completer that it traits-aware, so that traits objects don't show
747 all of their internal attributes all the time.
754 all of their internal attributes all the time.
748
755
749 * IPython/genutils.py (dir2): moved this code from inside
756 * IPython/genutils.py (dir2): moved this code from inside
750 completer.py to expose it publicly, so I could use it in the
757 completer.py to expose it publicly, so I could use it in the
751 wildcards bugfix.
758 wildcards bugfix.
752
759
753 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
760 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
754 Stefan with Traits.
761 Stefan with Traits.
755
762
756 * IPython/completer.py (Completer.attr_matches): change internal
763 * IPython/completer.py (Completer.attr_matches): change internal
757 var name from 'object' to 'obj', since 'object' is now a builtin
764 var name from 'object' to 'obj', since 'object' is now a builtin
758 and this can lead to weird bugs if reusing this code elsewhere.
765 and this can lead to weird bugs if reusing this code elsewhere.
759
766
760 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
767 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
761
768
762 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
769 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
763 'foo?' and update the code to prevent printing of default
770 'foo?' and update the code to prevent printing of default
764 docstrings that started appearing after I added support for
771 docstrings that started appearing after I added support for
765 new-style classes. The approach I'm using isn't ideal (I just
772 new-style classes. The approach I'm using isn't ideal (I just
766 special-case those strings) but I'm not sure how to more robustly
773 special-case those strings) but I'm not sure how to more robustly
767 differentiate between truly user-written strings and Python's
774 differentiate between truly user-written strings and Python's
768 automatic ones.
775 automatic ones.
769
776
770 2007-07-09 Ville Vainio <vivainio@gmail.com>
777 2007-07-09 Ville Vainio <vivainio@gmail.com>
771
778
772 * completer.py: Applied Matthew Neeley's patch:
779 * completer.py: Applied Matthew Neeley's patch:
773 Dynamic attributes from trait_names and _getAttributeNames are added
780 Dynamic attributes from trait_names and _getAttributeNames are added
774 to the list of tab completions, but when this happens, the attribute
781 to the list of tab completions, but when this happens, the attribute
775 list is turned into a set, so the attributes are unordered when
782 list is turned into a set, so the attributes are unordered when
776 printed, which makes it hard to find the right completion. This patch
783 printed, which makes it hard to find the right completion. This patch
777 turns this set back into a list and sort it.
784 turns this set back into a list and sort it.
778
785
779 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
786 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
780
787
781 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
788 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
782 classes in various inspector functions.
789 classes in various inspector functions.
783
790
784 2007-06-28 Ville Vainio <vivainio@gmail.com>
791 2007-06-28 Ville Vainio <vivainio@gmail.com>
785
792
786 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
793 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
787 Implement "shadow" namespace, and callable aliases that reside there.
794 Implement "shadow" namespace, and callable aliases that reside there.
788 Use them by:
795 Use them by:
789
796
790 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
797 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
791
798
792 foo hello world
799 foo hello world
793 (gets translated to:)
800 (gets translated to:)
794 _sh.foo(r"""hello world""")
801 _sh.foo(r"""hello world""")
795
802
796 In practice, this kind of alias can take the role of a magic function
803 In practice, this kind of alias can take the role of a magic function
797
804
798 * New generic inspect_object, called on obj? and obj??
805 * New generic inspect_object, called on obj? and obj??
799
806
800 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
807 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
801
808
802 * IPython/ultraTB.py (findsource): fix a problem with
809 * IPython/ultraTB.py (findsource): fix a problem with
803 inspect.getfile that can cause crashes during traceback construction.
810 inspect.getfile that can cause crashes during traceback construction.
804
811
805 2007-06-14 Ville Vainio <vivainio@gmail.com>
812 2007-06-14 Ville Vainio <vivainio@gmail.com>
806
813
807 * iplib.py (handle_auto): Try to use ascii for printing "--->"
814 * iplib.py (handle_auto): Try to use ascii for printing "--->"
808 autocall rewrite indication, becausesometimes unicode fails to print
815 autocall rewrite indication, becausesometimes unicode fails to print
809 properly (and you get ' - - - '). Use plain uncoloured ---> for
816 properly (and you get ' - - - '). Use plain uncoloured ---> for
810 unicode.
817 unicode.
811
818
812 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
819 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
813
820
814 . pickleshare 'hash' commands (hget, hset, hcompress,
821 . pickleshare 'hash' commands (hget, hset, hcompress,
815 hdict) for efficient shadow history storage.
822 hdict) for efficient shadow history storage.
816
823
817 2007-06-13 Ville Vainio <vivainio@gmail.com>
824 2007-06-13 Ville Vainio <vivainio@gmail.com>
818
825
819 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
826 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
820 Added kw arg 'interactive', tell whether vars should be visible
827 Added kw arg 'interactive', tell whether vars should be visible
821 with %whos.
828 with %whos.
822
829
823 2007-06-11 Ville Vainio <vivainio@gmail.com>
830 2007-06-11 Ville Vainio <vivainio@gmail.com>
824
831
825 * pspersistence.py, Magic.py, iplib.py: directory history now saved
832 * pspersistence.py, Magic.py, iplib.py: directory history now saved
826 to db
833 to db
827
834
828 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
835 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
829 Also, it exits IPython immediately after evaluating the command (just like
836 Also, it exits IPython immediately after evaluating the command (just like
830 std python)
837 std python)
831
838
832 2007-06-05 Walter Doerwald <walter@livinglogic.de>
839 2007-06-05 Walter Doerwald <walter@livinglogic.de>
833
840
834 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
841 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
835 Python string and captures the output. (Idea and original patch by
842 Python string and captures the output. (Idea and original patch by
836 Stefan van der Walt)
843 Stefan van der Walt)
837
844
838 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
845 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
839
846
840 * IPython/ultraTB.py (VerboseTB.text): update printing of
847 * IPython/ultraTB.py (VerboseTB.text): update printing of
841 exception types for Python 2.5 (now all exceptions in the stdlib
848 exception types for Python 2.5 (now all exceptions in the stdlib
842 are new-style classes).
849 are new-style classes).
843
850
844 2007-05-31 Walter Doerwald <walter@livinglogic.de>
851 2007-05-31 Walter Doerwald <walter@livinglogic.de>
845
852
846 * IPython/Extensions/igrid.py: Add new commands refresh and
853 * IPython/Extensions/igrid.py: Add new commands refresh and
847 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
854 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
848 the iterator once (refresh) or after every x seconds (refresh_timer).
855 the iterator once (refresh) or after every x seconds (refresh_timer).
849 Add a working implementation of "searchexpression", where the text
856 Add a working implementation of "searchexpression", where the text
850 entered is not the text to search for, but an expression that must
857 entered is not the text to search for, but an expression that must
851 be true. Added display of shortcuts to the menu. Added commands "pickinput"
858 be true. Added display of shortcuts to the menu. Added commands "pickinput"
852 and "pickinputattr" that put the object or attribute under the cursor
859 and "pickinputattr" that put the object or attribute under the cursor
853 in the input line. Split the statusbar to be able to display the currently
860 in the input line. Split the statusbar to be able to display the currently
854 active refresh interval. (Patch by Nik Tautenhahn)
861 active refresh interval. (Patch by Nik Tautenhahn)
855
862
856 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
863 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
857
864
858 * fixing set_term_title to use ctypes as default
865 * fixing set_term_title to use ctypes as default
859
866
860 * fixing set_term_title fallback to work when curent dir
867 * fixing set_term_title fallback to work when curent dir
861 is on a windows network share
868 is on a windows network share
862
869
863 2007-05-28 Ville Vainio <vivainio@gmail.com>
870 2007-05-28 Ville Vainio <vivainio@gmail.com>
864
871
865 * %cpaste: strip + with > from left (diffs).
872 * %cpaste: strip + with > from left (diffs).
866
873
867 * iplib.py: Fix crash when readline not installed
874 * iplib.py: Fix crash when readline not installed
868
875
869 2007-05-26 Ville Vainio <vivainio@gmail.com>
876 2007-05-26 Ville Vainio <vivainio@gmail.com>
870
877
871 * generics.py: introduce easy to extend result_display generic
878 * generics.py: introduce easy to extend result_display generic
872 function (using simplegeneric.py).
879 function (using simplegeneric.py).
873
880
874 * Fixed the append functionality of %set.
881 * Fixed the append functionality of %set.
875
882
876 2007-05-25 Ville Vainio <vivainio@gmail.com>
883 2007-05-25 Ville Vainio <vivainio@gmail.com>
877
884
878 * New magic: %rep (fetch / run old commands from history)
885 * New magic: %rep (fetch / run old commands from history)
879
886
880 * New extension: mglob (%mglob magic), for powerful glob / find /filter
887 * New extension: mglob (%mglob magic), for powerful glob / find /filter
881 like functionality
888 like functionality
882
889
883 % maghistory.py: %hist -g PATTERM greps the history for pattern
890 % maghistory.py: %hist -g PATTERM greps the history for pattern
884
891
885 2007-05-24 Walter Doerwald <walter@livinglogic.de>
892 2007-05-24 Walter Doerwald <walter@livinglogic.de>
886
893
887 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
894 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
888 browse the IPython input history
895 browse the IPython input history
889
896
890 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
897 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
891 (mapped to "i") can be used to put the object under the curser in the input
898 (mapped to "i") can be used to put the object under the curser in the input
892 line. pickinputattr (mapped to "I") does the same for the attribute under
899 line. pickinputattr (mapped to "I") does the same for the attribute under
893 the cursor.
900 the cursor.
894
901
895 2007-05-24 Ville Vainio <vivainio@gmail.com>
902 2007-05-24 Ville Vainio <vivainio@gmail.com>
896
903
897 * Grand magic cleansing (changeset [2380]):
904 * Grand magic cleansing (changeset [2380]):
898
905
899 * Introduce ipy_legacy.py where the following magics were
906 * Introduce ipy_legacy.py where the following magics were
900 moved:
907 moved:
901
908
902 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
909 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
903
910
904 If you need them, either use default profile or "import ipy_legacy"
911 If you need them, either use default profile or "import ipy_legacy"
905 in your ipy_user_conf.py
912 in your ipy_user_conf.py
906
913
907 * Move sh and scipy profile to Extensions from UserConfig. this implies
914 * Move sh and scipy profile to Extensions from UserConfig. this implies
908 you should not edit them, but you don't need to run %upgrade when
915 you should not edit them, but you don't need to run %upgrade when
909 upgrading IPython anymore.
916 upgrading IPython anymore.
910
917
911 * %hist/%history now operates in "raw" mode by default. To get the old
918 * %hist/%history now operates in "raw" mode by default. To get the old
912 behaviour, run '%hist -n' (native mode).
919 behaviour, run '%hist -n' (native mode).
913
920
914 * split ipy_stock_completers.py to ipy_stock_completers.py and
921 * split ipy_stock_completers.py to ipy_stock_completers.py and
915 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
922 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
916 installed as default.
923 installed as default.
917
924
918 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
925 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
919 handling.
926 handling.
920
927
921 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
928 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
922 input if readline is available.
929 input if readline is available.
923
930
924 2007-05-23 Ville Vainio <vivainio@gmail.com>
931 2007-05-23 Ville Vainio <vivainio@gmail.com>
925
932
926 * macro.py: %store uses __getstate__ properly
933 * macro.py: %store uses __getstate__ properly
927
934
928 * exesetup.py: added new setup script for creating
935 * exesetup.py: added new setup script for creating
929 standalone IPython executables with py2exe (i.e.
936 standalone IPython executables with py2exe (i.e.
930 no python installation required).
937 no python installation required).
931
938
932 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
939 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
933 its place.
940 its place.
934
941
935 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
942 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
936
943
937 2007-05-21 Ville Vainio <vivainio@gmail.com>
944 2007-05-21 Ville Vainio <vivainio@gmail.com>
938
945
939 * platutil_win32.py (set_term_title): handle
946 * platutil_win32.py (set_term_title): handle
940 failure of 'title' system call properly.
947 failure of 'title' system call properly.
941
948
942 2007-05-17 Walter Doerwald <walter@livinglogic.de>
949 2007-05-17 Walter Doerwald <walter@livinglogic.de>
943
950
944 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
951 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
945 (Bug detected by Paul Mueller).
952 (Bug detected by Paul Mueller).
946
953
947 2007-05-16 Ville Vainio <vivainio@gmail.com>
954 2007-05-16 Ville Vainio <vivainio@gmail.com>
948
955
949 * ipy_profile_sci.py, ipython_win_post_install.py: Create
956 * ipy_profile_sci.py, ipython_win_post_install.py: Create
950 new "sci" profile, effectively a modern version of the old
957 new "sci" profile, effectively a modern version of the old
951 "scipy" profile (which is now slated for deprecation).
958 "scipy" profile (which is now slated for deprecation).
952
959
953 2007-05-15 Ville Vainio <vivainio@gmail.com>
960 2007-05-15 Ville Vainio <vivainio@gmail.com>
954
961
955 * pycolorize.py, pycolor.1: Paul Mueller's patches that
962 * pycolorize.py, pycolor.1: Paul Mueller's patches that
956 make pycolorize read input from stdin when run without arguments.
963 make pycolorize read input from stdin when run without arguments.
957
964
958 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
965 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
959
966
960 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
967 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
961 it in sh profile (instead of ipy_system_conf.py).
968 it in sh profile (instead of ipy_system_conf.py).
962
969
963 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
970 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
964 aliases are now lower case on windows (MyCommand.exe => mycommand).
971 aliases are now lower case on windows (MyCommand.exe => mycommand).
965
972
966 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
973 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
967 Macros are now callable objects that inherit from ipapi.IPyAutocall,
974 Macros are now callable objects that inherit from ipapi.IPyAutocall,
968 i.e. get autocalled regardless of system autocall setting.
975 i.e. get autocalled regardless of system autocall setting.
969
976
970 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
977 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
971
978
972 * IPython/rlineimpl.py: check for clear_history in readline and
979 * IPython/rlineimpl.py: check for clear_history in readline and
973 make it a dummy no-op if not available. This function isn't
980 make it a dummy no-op if not available. This function isn't
974 guaranteed to be in the API and appeared in Python 2.4, so we need
981 guaranteed to be in the API and appeared in Python 2.4, so we need
975 to check it ourselves. Also, clean up this file quite a bit.
982 to check it ourselves. Also, clean up this file quite a bit.
976
983
977 * ipython.1: update man page and full manual with information
984 * ipython.1: update man page and full manual with information
978 about threads (remove outdated warning). Closes #151.
985 about threads (remove outdated warning). Closes #151.
979
986
980 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
987 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
981
988
982 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
989 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
983 in trunk (note that this made it into the 0.8.1 release already,
990 in trunk (note that this made it into the 0.8.1 release already,
984 but the changelogs didn't get coordinated). Many thanks to Gael
991 but the changelogs didn't get coordinated). Many thanks to Gael
985 Varoquaux <gael.varoquaux-AT-normalesup.org>
992 Varoquaux <gael.varoquaux-AT-normalesup.org>
986
993
987 2007-05-09 *** Released version 0.8.1
994 2007-05-09 *** Released version 0.8.1
988
995
989 2007-05-10 Walter Doerwald <walter@livinglogic.de>
996 2007-05-10 Walter Doerwald <walter@livinglogic.de>
990
997
991 * IPython/Extensions/igrid.py: Incorporate html help into
998 * IPython/Extensions/igrid.py: Incorporate html help into
992 the module, so we don't have to search for the file.
999 the module, so we don't have to search for the file.
993
1000
994 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1001 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
995
1002
996 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1003 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
997
1004
998 2007-04-30 Ville Vainio <vivainio@gmail.com>
1005 2007-04-30 Ville Vainio <vivainio@gmail.com>
999
1006
1000 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1007 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1001 user has illegal (non-ascii) home directory name
1008 user has illegal (non-ascii) home directory name
1002
1009
1003 2007-04-27 Ville Vainio <vivainio@gmail.com>
1010 2007-04-27 Ville Vainio <vivainio@gmail.com>
1004
1011
1005 * platutils_win32.py: implement set_term_title for windows
1012 * platutils_win32.py: implement set_term_title for windows
1006
1013
1007 * Update version number
1014 * Update version number
1008
1015
1009 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1016 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1010
1017
1011 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1018 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1012
1019
1013 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1020 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1014 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1021 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1015 bug discovered by Ville).
1022 bug discovered by Ville).
1016
1023
1017 2007-04-26 Ville Vainio <vivainio@gmail.com>
1024 2007-04-26 Ville Vainio <vivainio@gmail.com>
1018
1025
1019 * Extensions/ipy_completers.py: Olivier's module completer now
1026 * Extensions/ipy_completers.py: Olivier's module completer now
1020 saves the list of root modules if it takes > 4 secs on the first run.
1027 saves the list of root modules if it takes > 4 secs on the first run.
1021
1028
1022 * Magic.py (%rehashx): %rehashx now clears the completer cache
1029 * Magic.py (%rehashx): %rehashx now clears the completer cache
1023
1030
1024
1031
1025 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1032 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1026
1033
1027 * ipython.el: fix incorrect color scheme, reported by Stefan.
1034 * ipython.el: fix incorrect color scheme, reported by Stefan.
1028 Closes #149.
1035 Closes #149.
1029
1036
1030 * IPython/PyColorize.py (Parser.format2): fix state-handling
1037 * IPython/PyColorize.py (Parser.format2): fix state-handling
1031 logic. I still don't like how that code handles state, but at
1038 logic. I still don't like how that code handles state, but at
1032 least now it should be correct, if inelegant. Closes #146.
1039 least now it should be correct, if inelegant. Closes #146.
1033
1040
1034 2007-04-25 Ville Vainio <vivainio@gmail.com>
1041 2007-04-25 Ville Vainio <vivainio@gmail.com>
1035
1042
1036 * Extensions/ipy_which.py: added extension for %which magic, works
1043 * Extensions/ipy_which.py: added extension for %which magic, works
1037 a lot like unix 'which' but also finds and expands aliases, and
1044 a lot like unix 'which' but also finds and expands aliases, and
1038 allows wildcards.
1045 allows wildcards.
1039
1046
1040 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1047 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1041 as opposed to returning nothing.
1048 as opposed to returning nothing.
1042
1049
1043 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1050 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1044 ipy_stock_completers on default profile, do import on sh profile.
1051 ipy_stock_completers on default profile, do import on sh profile.
1045
1052
1046 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1053 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1047
1054
1048 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1055 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1049 like ipython.py foo.py which raised a IndexError.
1056 like ipython.py foo.py which raised a IndexError.
1050
1057
1051 2007-04-21 Ville Vainio <vivainio@gmail.com>
1058 2007-04-21 Ville Vainio <vivainio@gmail.com>
1052
1059
1053 * Extensions/ipy_extutil.py: added extension to manage other ipython
1060 * Extensions/ipy_extutil.py: added extension to manage other ipython
1054 extensions. Now only supports 'ls' == list extensions.
1061 extensions. Now only supports 'ls' == list extensions.
1055
1062
1056 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1063 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1057
1064
1058 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1065 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1059 would prevent use of the exception system outside of a running
1066 would prevent use of the exception system outside of a running
1060 IPython instance.
1067 IPython instance.
1061
1068
1062 2007-04-20 Ville Vainio <vivainio@gmail.com>
1069 2007-04-20 Ville Vainio <vivainio@gmail.com>
1063
1070
1064 * Extensions/ipy_render.py: added extension for easy
1071 * Extensions/ipy_render.py: added extension for easy
1065 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1072 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1066 'Iptl' template notation,
1073 'Iptl' template notation,
1067
1074
1068 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1075 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1069 safer & faster 'import' completer.
1076 safer & faster 'import' completer.
1070
1077
1071 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1078 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1072 and _ip.defalias(name, command).
1079 and _ip.defalias(name, command).
1073
1080
1074 * Extensions/ipy_exportdb.py: New extension for exporting all the
1081 * Extensions/ipy_exportdb.py: New extension for exporting all the
1075 %store'd data in a portable format (normal ipapi calls like
1082 %store'd data in a portable format (normal ipapi calls like
1076 defmacro() etc.)
1083 defmacro() etc.)
1077
1084
1078 2007-04-19 Ville Vainio <vivainio@gmail.com>
1085 2007-04-19 Ville Vainio <vivainio@gmail.com>
1079
1086
1080 * upgrade_dir.py: skip junk files like *.pyc
1087 * upgrade_dir.py: skip junk files like *.pyc
1081
1088
1082 * Release.py: version number to 0.8.1
1089 * Release.py: version number to 0.8.1
1083
1090
1084 2007-04-18 Ville Vainio <vivainio@gmail.com>
1091 2007-04-18 Ville Vainio <vivainio@gmail.com>
1085
1092
1086 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1093 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1087 and later on win32.
1094 and later on win32.
1088
1095
1089 2007-04-16 Ville Vainio <vivainio@gmail.com>
1096 2007-04-16 Ville Vainio <vivainio@gmail.com>
1090
1097
1091 * iplib.py (showtraceback): Do not crash when running w/o readline.
1098 * iplib.py (showtraceback): Do not crash when running w/o readline.
1092
1099
1093 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1100 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1094
1101
1095 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1102 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1096 sorted (case sensitive with files and dirs mixed).
1103 sorted (case sensitive with files and dirs mixed).
1097
1104
1098 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1105 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1099
1106
1100 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1107 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1101
1108
1102 2007-04-10 *** Released version 0.8.0
1109 2007-04-10 *** Released version 0.8.0
1103
1110
1104 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1111 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1105
1112
1106 * Tag 0.8.0 for release.
1113 * Tag 0.8.0 for release.
1107
1114
1108 * IPython/iplib.py (reloadhist): add API function to cleanly
1115 * IPython/iplib.py (reloadhist): add API function to cleanly
1109 reload the readline history, which was growing inappropriately on
1116 reload the readline history, which was growing inappropriately on
1110 every %run call.
1117 every %run call.
1111
1118
1112 * win32_manual_post_install.py (run): apply last part of Nicolas
1119 * win32_manual_post_install.py (run): apply last part of Nicolas
1113 Pernetty's patch (I'd accidentally applied it in a different
1120 Pernetty's patch (I'd accidentally applied it in a different
1114 directory and this particular file didn't get patched).
1121 directory and this particular file didn't get patched).
1115
1122
1116 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1123 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1117
1124
1118 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1125 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1119 find the main thread id and use the proper API call. Thanks to
1126 find the main thread id and use the proper API call. Thanks to
1120 Stefan for the fix.
1127 Stefan for the fix.
1121
1128
1122 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1129 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1123 unit tests to reflect fixed ticket #52, and add more tests sent by
1130 unit tests to reflect fixed ticket #52, and add more tests sent by
1124 him.
1131 him.
1125
1132
1126 * IPython/iplib.py (raw_input): restore the readline completer
1133 * IPython/iplib.py (raw_input): restore the readline completer
1127 state on every input, in case third-party code messed it up.
1134 state on every input, in case third-party code messed it up.
1128 (_prefilter): revert recent addition of early-escape checks which
1135 (_prefilter): revert recent addition of early-escape checks which
1129 prevent many valid alias calls from working.
1136 prevent many valid alias calls from working.
1130
1137
1131 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1138 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1132 flag for sigint handler so we don't run a full signal() call on
1139 flag for sigint handler so we don't run a full signal() call on
1133 each runcode access.
1140 each runcode access.
1134
1141
1135 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1142 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1136 message.
1143 message.
1137
1144
1138 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1145 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1139
1146
1140 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1147 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1141 asynchronous exceptions working, i.e., Ctrl-C can actually
1148 asynchronous exceptions working, i.e., Ctrl-C can actually
1142 interrupt long-running code in the multithreaded shells.
1149 interrupt long-running code in the multithreaded shells.
1143
1150
1144 This is using Tomer Filiba's great ctypes-based trick:
1151 This is using Tomer Filiba's great ctypes-based trick:
1145 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1152 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1146 this in the past, but hadn't been able to make it work before. So
1153 this in the past, but hadn't been able to make it work before. So
1147 far it looks like it's actually running, but this needs more
1154 far it looks like it's actually running, but this needs more
1148 testing. If it really works, I'll be *very* happy, and we'll owe
1155 testing. If it really works, I'll be *very* happy, and we'll owe
1149 a huge thank you to Tomer. My current implementation is ugly,
1156 a huge thank you to Tomer. My current implementation is ugly,
1150 hackish and uses nasty globals, but I don't want to try and clean
1157 hackish and uses nasty globals, but I don't want to try and clean
1151 anything up until we know if it actually works.
1158 anything up until we know if it actually works.
1152
1159
1153 NOTE: this feature needs ctypes to work. ctypes is included in
1160 NOTE: this feature needs ctypes to work. ctypes is included in
1154 Python2.5, but 2.4 users will need to manually install it. This
1161 Python2.5, but 2.4 users will need to manually install it. This
1155 feature makes multi-threaded shells so much more usable that it's
1162 feature makes multi-threaded shells so much more usable that it's
1156 a minor price to pay (ctypes is very easy to install, already a
1163 a minor price to pay (ctypes is very easy to install, already a
1157 requirement for win32 and available in major linux distros).
1164 requirement for win32 and available in major linux distros).
1158
1165
1159 2007-04-04 Ville Vainio <vivainio@gmail.com>
1166 2007-04-04 Ville Vainio <vivainio@gmail.com>
1160
1167
1161 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1168 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1162 Moved implementations of 'bundled' completers to ipy_completers.py,
1169 Moved implementations of 'bundled' completers to ipy_completers.py,
1163 they are only enabled in ipy_stock_completers.py.
1170 they are only enabled in ipy_stock_completers.py.
1164
1171
1165 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1172 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1166
1173
1167 * IPython/PyColorize.py (Parser.format2): Fix identation of
1174 * IPython/PyColorize.py (Parser.format2): Fix identation of
1168 colorzied output and return early if color scheme is NoColor, to
1175 colorzied output and return early if color scheme is NoColor, to
1169 avoid unnecessary and expensive tokenization. Closes #131.
1176 avoid unnecessary and expensive tokenization. Closes #131.
1170
1177
1171 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1178 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1172
1179
1173 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1180 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1174 has a critical bug (a missing import that makes post-mortem not
1181 has a critical bug (a missing import that makes post-mortem not
1175 work at all). Unfortunately as of this time, this is the version
1182 work at all). Unfortunately as of this time, this is the version
1176 shipped with Ubuntu Edgy, so quite a few people have this one. I
1183 shipped with Ubuntu Edgy, so quite a few people have this one. I
1177 hope Edgy will update to a more recent package.
1184 hope Edgy will update to a more recent package.
1178
1185
1179 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1186 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1180
1187
1181 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1188 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1182 set by Stefan (only the first part had been applied before).
1189 set by Stefan (only the first part had been applied before).
1183
1190
1184 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1191 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1185 remove usage of the dangerous pkgutil.walk_packages(). See
1192 remove usage of the dangerous pkgutil.walk_packages(). See
1186 details in comments left in the code.
1193 details in comments left in the code.
1187
1194
1188 * IPython/Magic.py (magic_whos): add support for numpy arrays
1195 * IPython/Magic.py (magic_whos): add support for numpy arrays
1189 similar to what we had for Numeric.
1196 similar to what we had for Numeric.
1190
1197
1191 * IPython/completer.py (IPCompleter.complete): extend the
1198 * IPython/completer.py (IPCompleter.complete): extend the
1192 complete() call API to support completions by other mechanisms
1199 complete() call API to support completions by other mechanisms
1193 than readline. Closes #109.
1200 than readline. Closes #109.
1194
1201
1195 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1202 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1196 protect against a bug in Python's execfile(). Closes #123.
1203 protect against a bug in Python's execfile(). Closes #123.
1197
1204
1198 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1205 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1199
1206
1200 * IPython/iplib.py (split_user_input): ensure that when splitting
1207 * IPython/iplib.py (split_user_input): ensure that when splitting
1201 user input, the part that can be treated as a python name is pure
1208 user input, the part that can be treated as a python name is pure
1202 ascii (Python identifiers MUST be pure ascii). Part of the
1209 ascii (Python identifiers MUST be pure ascii). Part of the
1203 ongoing Unicode support work.
1210 ongoing Unicode support work.
1204
1211
1205 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1212 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1206 actual prompt number, without any coloring. This allows users to
1213 actual prompt number, without any coloring. This allows users to
1207 produce numbered prompts with their own colors. Added after a
1214 produce numbered prompts with their own colors. Added after a
1208 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1215 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1209
1216
1210 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1217 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1211
1218
1212 * IPython/Extensions/igrid.py: Map the return key
1219 * IPython/Extensions/igrid.py: Map the return key
1213 to enter() and shift-return to enterattr().
1220 to enter() and shift-return to enterattr().
1214
1221
1215 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1222 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1216
1223
1217 * IPython/Magic.py (magic_psearch): add unicode support by
1224 * IPython/Magic.py (magic_psearch): add unicode support by
1218 encoding to ascii the input, since this routine also only deals
1225 encoding to ascii the input, since this routine also only deals
1219 with valid Python names. Fixes a bug reported by Stefan.
1226 with valid Python names. Fixes a bug reported by Stefan.
1220
1227
1221 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1228 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1222
1229
1223 * IPython/Magic.py (_inspect): convert unicode input into ascii
1230 * IPython/Magic.py (_inspect): convert unicode input into ascii
1224 before trying to evaluate it as a Python identifier. This fixes a
1231 before trying to evaluate it as a Python identifier. This fixes a
1225 problem that the new unicode support had introduced when analyzing
1232 problem that the new unicode support had introduced when analyzing
1226 long definition lines for functions.
1233 long definition lines for functions.
1227
1234
1228 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1235 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1229
1236
1230 * IPython/Extensions/igrid.py: Fix picking. Using
1237 * IPython/Extensions/igrid.py: Fix picking. Using
1231 igrid with wxPython 2.6 and -wthread should work now.
1238 igrid with wxPython 2.6 and -wthread should work now.
1232 igrid.display() simply tries to create a frame without
1239 igrid.display() simply tries to create a frame without
1233 an application. Only if this fails an application is created.
1240 an application. Only if this fails an application is created.
1234
1241
1235 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1242 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1236
1243
1237 * IPython/Extensions/path.py: Updated to version 2.2.
1244 * IPython/Extensions/path.py: Updated to version 2.2.
1238
1245
1239 2007-03-23 Ville Vainio <vivainio@gmail.com>
1246 2007-03-23 Ville Vainio <vivainio@gmail.com>
1240
1247
1241 * iplib.py: recursive alias expansion now works better, so that
1248 * iplib.py: recursive alias expansion now works better, so that
1242 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1249 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1243 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1250 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1244
1251
1245 * Extensions/ipy_gnuglobal.py added, provides %global magic
1252 * Extensions/ipy_gnuglobal.py added, provides %global magic
1246 for users of http://www.gnu.org/software/global
1253 for users of http://www.gnu.org/software/global
1247
1254
1248 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1255 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1249 Closes #52. Patch by Stefan van der Walt.
1256 Closes #52. Patch by Stefan van der Walt.
1250
1257
1251 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1258 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1252
1259
1253 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1260 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1254 respect the __file__ attribute when using %run. Thanks to a bug
1261 respect the __file__ attribute when using %run. Thanks to a bug
1255 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1262 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1256
1263
1257 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1264 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1258
1265
1259 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1266 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1260 input. Patch sent by Stefan.
1267 input. Patch sent by Stefan.
1261
1268
1262 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1269 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1263 * IPython/Extensions/ipy_stock_completer.py
1270 * IPython/Extensions/ipy_stock_completer.py
1264 shlex_split, fix bug in shlex_split. len function
1271 shlex_split, fix bug in shlex_split. len function
1265 call was missing an if statement. Caused shlex_split to
1272 call was missing an if statement. Caused shlex_split to
1266 sometimes return "" as last element.
1273 sometimes return "" as last element.
1267
1274
1268 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1275 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1269
1276
1270 * IPython/completer.py
1277 * IPython/completer.py
1271 (IPCompleter.file_matches.single_dir_expand): fix a problem
1278 (IPCompleter.file_matches.single_dir_expand): fix a problem
1272 reported by Stefan, where directories containign a single subdir
1279 reported by Stefan, where directories containign a single subdir
1273 would be completed too early.
1280 would be completed too early.
1274
1281
1275 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1282 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1276 pylab import *' when -pylab is given be optional. A new flag,
1283 pylab import *' when -pylab is given be optional. A new flag,
1277 pylab_import_all controls this behavior, the default is True for
1284 pylab_import_all controls this behavior, the default is True for
1278 backwards compatibility.
1285 backwards compatibility.
1279
1286
1280 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1287 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1281 modified) R. Bernstein's patch for fully syntax highlighted
1288 modified) R. Bernstein's patch for fully syntax highlighted
1282 tracebacks. The functionality is also available under ultraTB for
1289 tracebacks. The functionality is also available under ultraTB for
1283 non-ipython users (someone using ultraTB but outside an ipython
1290 non-ipython users (someone using ultraTB but outside an ipython
1284 session). They can select the color scheme by setting the
1291 session). They can select the color scheme by setting the
1285 module-level global DEFAULT_SCHEME. The highlight functionality
1292 module-level global DEFAULT_SCHEME. The highlight functionality
1286 also works when debugging.
1293 also works when debugging.
1287
1294
1288 * IPython/genutils.py (IOStream.close): small patch by
1295 * IPython/genutils.py (IOStream.close): small patch by
1289 R. Bernstein for improved pydb support.
1296 R. Bernstein for improved pydb support.
1290
1297
1291 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1298 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1292 DaveS <davls@telus.net> to improve support of debugging under
1299 DaveS <davls@telus.net> to improve support of debugging under
1293 NTEmacs, including improved pydb behavior.
1300 NTEmacs, including improved pydb behavior.
1294
1301
1295 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1302 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1296 Python 2.5, where the stats object API changed a little. Thanks
1303 Python 2.5, where the stats object API changed a little. Thanks
1297 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1304 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1298
1305
1299 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1306 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1300 Pernetty's patch to improve support for (X)Emacs under Win32.
1307 Pernetty's patch to improve support for (X)Emacs under Win32.
1301
1308
1302 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1309 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1303
1310
1304 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1311 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1305 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1312 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1306 a report by Nik Tautenhahn.
1313 a report by Nik Tautenhahn.
1307
1314
1308 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1315 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1309
1316
1310 * setup.py: Add the igrid help files to the list of data files
1317 * setup.py: Add the igrid help files to the list of data files
1311 to be installed alongside igrid.
1318 to be installed alongside igrid.
1312 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1319 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1313 Show the input object of the igrid browser as the window tile.
1320 Show the input object of the igrid browser as the window tile.
1314 Show the object the cursor is on in the statusbar.
1321 Show the object the cursor is on in the statusbar.
1315
1322
1316 2007-03-15 Ville Vainio <vivainio@gmail.com>
1323 2007-03-15 Ville Vainio <vivainio@gmail.com>
1317
1324
1318 * Extensions/ipy_stock_completers.py: Fixed exception
1325 * Extensions/ipy_stock_completers.py: Fixed exception
1319 on mismatching quotes in %run completer. Patch by
1326 on mismatching quotes in %run completer. Patch by
1320 Jorgen Stenarson. Closes #127.
1327 Jorgen Stenarson. Closes #127.
1321
1328
1322 2007-03-14 Ville Vainio <vivainio@gmail.com>
1329 2007-03-14 Ville Vainio <vivainio@gmail.com>
1323
1330
1324 * Extensions/ext_rehashdir.py: Do not do auto_alias
1331 * Extensions/ext_rehashdir.py: Do not do auto_alias
1325 in %rehashdir, it clobbers %store'd aliases.
1332 in %rehashdir, it clobbers %store'd aliases.
1326
1333
1327 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1334 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1328 (beefed up %env) imported for sh profile.
1335 (beefed up %env) imported for sh profile.
1329
1336
1330 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1337 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1331
1338
1332 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1339 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1333 as the default browser.
1340 as the default browser.
1334 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1341 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1335 As igrid displays all attributes it ever encounters, fetch() (which has
1342 As igrid displays all attributes it ever encounters, fetch() (which has
1336 been renamed to _fetch()) doesn't have to recalculate the display attributes
1343 been renamed to _fetch()) doesn't have to recalculate the display attributes
1337 every time a new item is fetched. This should speed up scrolling.
1344 every time a new item is fetched. This should speed up scrolling.
1338
1345
1339 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1346 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1340
1347
1341 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1348 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1342 Schmolck's recently reported tab-completion bug (my previous one
1349 Schmolck's recently reported tab-completion bug (my previous one
1343 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1350 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1344
1351
1345 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1352 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1346
1353
1347 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1354 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1348 Close help window if exiting igrid.
1355 Close help window if exiting igrid.
1349
1356
1350 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1357 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1351
1358
1352 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1359 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1353 before calling functions from readline.
1360 before calling functions from readline.
1354
1361
1355 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1362 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1356
1363
1357 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1364 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1358 igrid is a wxPython-based display object for ipipe. If your system has
1365 igrid is a wxPython-based display object for ipipe. If your system has
1359 wx installed igrid will be the default display. Without wx ipipe falls
1366 wx installed igrid will be the default display. Without wx ipipe falls
1360 back to ibrowse (which needs curses). If no curses is installed ipipe
1367 back to ibrowse (which needs curses). If no curses is installed ipipe
1361 falls back to idump.
1368 falls back to idump.
1362
1369
1363 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1370 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1364
1371
1365 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1372 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1366 my changes from yesterday, they introduced bugs. Will reactivate
1373 my changes from yesterday, they introduced bugs. Will reactivate
1367 once I get a correct solution, which will be much easier thanks to
1374 once I get a correct solution, which will be much easier thanks to
1368 Dan Milstein's new prefilter test suite.
1375 Dan Milstein's new prefilter test suite.
1369
1376
1370 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1377 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1371
1378
1372 * IPython/iplib.py (split_user_input): fix input splitting so we
1379 * IPython/iplib.py (split_user_input): fix input splitting so we
1373 don't attempt attribute accesses on things that can't possibly be
1380 don't attempt attribute accesses on things that can't possibly be
1374 valid Python attributes. After a bug report by Alex Schmolck.
1381 valid Python attributes. After a bug report by Alex Schmolck.
1375 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1382 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1376 %magic with explicit % prefix.
1383 %magic with explicit % prefix.
1377
1384
1378 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1385 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1379
1386
1380 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1387 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1381 avoid a DeprecationWarning from GTK.
1388 avoid a DeprecationWarning from GTK.
1382
1389
1383 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1390 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1384
1391
1385 * IPython/genutils.py (clock): I modified clock() to return total
1392 * IPython/genutils.py (clock): I modified clock() to return total
1386 time, user+system. This is a more commonly needed metric. I also
1393 time, user+system. This is a more commonly needed metric. I also
1387 introduced the new clocku/clocks to get only user/system time if
1394 introduced the new clocku/clocks to get only user/system time if
1388 one wants those instead.
1395 one wants those instead.
1389
1396
1390 ***WARNING: API CHANGE*** clock() used to return only user time,
1397 ***WARNING: API CHANGE*** clock() used to return only user time,
1391 so if you want exactly the same results as before, use clocku
1398 so if you want exactly the same results as before, use clocku
1392 instead.
1399 instead.
1393
1400
1394 2007-02-22 Ville Vainio <vivainio@gmail.com>
1401 2007-02-22 Ville Vainio <vivainio@gmail.com>
1395
1402
1396 * IPython/Extensions/ipy_p4.py: Extension for improved
1403 * IPython/Extensions/ipy_p4.py: Extension for improved
1397 p4 (perforce version control system) experience.
1404 p4 (perforce version control system) experience.
1398 Adds %p4 magic with p4 command completion and
1405 Adds %p4 magic with p4 command completion and
1399 automatic -G argument (marshall output as python dict)
1406 automatic -G argument (marshall output as python dict)
1400
1407
1401 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1408 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1402
1409
1403 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1410 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1404 stop marks.
1411 stop marks.
1405 (ClearingMixin): a simple mixin to easily make a Demo class clear
1412 (ClearingMixin): a simple mixin to easily make a Demo class clear
1406 the screen in between blocks and have empty marquees. The
1413 the screen in between blocks and have empty marquees. The
1407 ClearDemo and ClearIPDemo classes that use it are included.
1414 ClearDemo and ClearIPDemo classes that use it are included.
1408
1415
1409 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1416 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1410
1417
1411 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1418 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1412 protect against exceptions at Python shutdown time. Patch
1419 protect against exceptions at Python shutdown time. Patch
1413 sumbmitted to upstream.
1420 sumbmitted to upstream.
1414
1421
1415 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1422 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1416
1423
1417 * IPython/Extensions/ibrowse.py: If entering the first object level
1424 * IPython/Extensions/ibrowse.py: If entering the first object level
1418 (i.e. the object for which the browser has been started) fails,
1425 (i.e. the object for which the browser has been started) fails,
1419 now the error is raised directly (aborting the browser) instead of
1426 now the error is raised directly (aborting the browser) instead of
1420 running into an empty levels list later.
1427 running into an empty levels list later.
1421
1428
1422 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1429 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1423
1430
1424 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1431 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1425 for the noitem object.
1432 for the noitem object.
1426
1433
1427 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1434 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1428
1435
1429 * IPython/completer.py (Completer.attr_matches): Fix small
1436 * IPython/completer.py (Completer.attr_matches): Fix small
1430 tab-completion bug with Enthought Traits objects with units.
1437 tab-completion bug with Enthought Traits objects with units.
1431 Thanks to a bug report by Tom Denniston
1438 Thanks to a bug report by Tom Denniston
1432 <tom.denniston-AT-alum.dartmouth.org>.
1439 <tom.denniston-AT-alum.dartmouth.org>.
1433
1440
1434 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1441 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1435
1442
1436 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1443 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1437 bug where only .ipy or .py would be completed. Once the first
1444 bug where only .ipy or .py would be completed. Once the first
1438 argument to %run has been given, all completions are valid because
1445 argument to %run has been given, all completions are valid because
1439 they are the arguments to the script, which may well be non-python
1446 they are the arguments to the script, which may well be non-python
1440 filenames.
1447 filenames.
1441
1448
1442 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1449 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1443 to irunner to allow it to correctly support real doctesting of
1450 to irunner to allow it to correctly support real doctesting of
1444 out-of-process ipython code.
1451 out-of-process ipython code.
1445
1452
1446 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1453 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1447 title an option (-noterm_title) because it completely breaks
1454 title an option (-noterm_title) because it completely breaks
1448 doctesting.
1455 doctesting.
1449
1456
1450 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1457 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1451
1458
1452 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1459 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1453
1460
1454 * IPython/irunner.py (main): fix small bug where extensions were
1461 * IPython/irunner.py (main): fix small bug where extensions were
1455 not being correctly recognized.
1462 not being correctly recognized.
1456
1463
1457 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1464 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1458
1465
1459 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1466 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1460 a string containing a single line yields the string itself as the
1467 a string containing a single line yields the string itself as the
1461 only item.
1468 only item.
1462
1469
1463 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1470 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1464 object if it's the same as the one on the last level (This avoids
1471 object if it's the same as the one on the last level (This avoids
1465 infinite recursion for one line strings).
1472 infinite recursion for one line strings).
1466
1473
1467 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1474 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1468
1475
1469 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1476 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1470 all output streams before printing tracebacks. This ensures that
1477 all output streams before printing tracebacks. This ensures that
1471 user output doesn't end up interleaved with traceback output.
1478 user output doesn't end up interleaved with traceback output.
1472
1479
1473 2007-01-10 Ville Vainio <vivainio@gmail.com>
1480 2007-01-10 Ville Vainio <vivainio@gmail.com>
1474
1481
1475 * Extensions/envpersist.py: Turbocharged %env that remembers
1482 * Extensions/envpersist.py: Turbocharged %env that remembers
1476 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1483 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1477 "%env VISUAL=jed".
1484 "%env VISUAL=jed".
1478
1485
1479 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1486 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1480
1487
1481 * IPython/iplib.py (showtraceback): ensure that we correctly call
1488 * IPython/iplib.py (showtraceback): ensure that we correctly call
1482 custom handlers in all cases (some with pdb were slipping through,
1489 custom handlers in all cases (some with pdb were slipping through,
1483 but I'm not exactly sure why).
1490 but I'm not exactly sure why).
1484
1491
1485 * IPython/Debugger.py (Tracer.__init__): added new class to
1492 * IPython/Debugger.py (Tracer.__init__): added new class to
1486 support set_trace-like usage of IPython's enhanced debugger.
1493 support set_trace-like usage of IPython's enhanced debugger.
1487
1494
1488 2006-12-24 Ville Vainio <vivainio@gmail.com>
1495 2006-12-24 Ville Vainio <vivainio@gmail.com>
1489
1496
1490 * ipmaker.py: more informative message when ipy_user_conf
1497 * ipmaker.py: more informative message when ipy_user_conf
1491 import fails (suggest running %upgrade).
1498 import fails (suggest running %upgrade).
1492
1499
1493 * tools/run_ipy_in_profiler.py: Utility to see where
1500 * tools/run_ipy_in_profiler.py: Utility to see where
1494 the time during IPython startup is spent.
1501 the time during IPython startup is spent.
1495
1502
1496 2006-12-20 Ville Vainio <vivainio@gmail.com>
1503 2006-12-20 Ville Vainio <vivainio@gmail.com>
1497
1504
1498 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1505 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1499
1506
1500 * ipapi.py: Add new ipapi method, expand_alias.
1507 * ipapi.py: Add new ipapi method, expand_alias.
1501
1508
1502 * Release.py: Bump up version to 0.7.4.svn
1509 * Release.py: Bump up version to 0.7.4.svn
1503
1510
1504 2006-12-17 Ville Vainio <vivainio@gmail.com>
1511 2006-12-17 Ville Vainio <vivainio@gmail.com>
1505
1512
1506 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1513 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1507 to work properly on posix too
1514 to work properly on posix too
1508
1515
1509 * Release.py: Update revnum (version is still just 0.7.3).
1516 * Release.py: Update revnum (version is still just 0.7.3).
1510
1517
1511 2006-12-15 Ville Vainio <vivainio@gmail.com>
1518 2006-12-15 Ville Vainio <vivainio@gmail.com>
1512
1519
1513 * scripts/ipython_win_post_install: create ipython.py in
1520 * scripts/ipython_win_post_install: create ipython.py in
1514 prefix + "/scripts".
1521 prefix + "/scripts".
1515
1522
1516 * Release.py: Update version to 0.7.3.
1523 * Release.py: Update version to 0.7.3.
1517
1524
1518 2006-12-14 Ville Vainio <vivainio@gmail.com>
1525 2006-12-14 Ville Vainio <vivainio@gmail.com>
1519
1526
1520 * scripts/ipython_win_post_install: Overwrite old shortcuts
1527 * scripts/ipython_win_post_install: Overwrite old shortcuts
1521 if they already exist
1528 if they already exist
1522
1529
1523 * Release.py: release 0.7.3rc2
1530 * Release.py: release 0.7.3rc2
1524
1531
1525 2006-12-13 Ville Vainio <vivainio@gmail.com>
1532 2006-12-13 Ville Vainio <vivainio@gmail.com>
1526
1533
1527 * Branch and update Release.py for 0.7.3rc1
1534 * Branch and update Release.py for 0.7.3rc1
1528
1535
1529 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1536 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1530
1537
1531 * IPython/Shell.py (IPShellWX): update for current WX naming
1538 * IPython/Shell.py (IPShellWX): update for current WX naming
1532 conventions, to avoid a deprecation warning with current WX
1539 conventions, to avoid a deprecation warning with current WX
1533 versions. Thanks to a report by Danny Shevitz.
1540 versions. Thanks to a report by Danny Shevitz.
1534
1541
1535 2006-12-12 Ville Vainio <vivainio@gmail.com>
1542 2006-12-12 Ville Vainio <vivainio@gmail.com>
1536
1543
1537 * ipmaker.py: apply david cournapeau's patch to make
1544 * ipmaker.py: apply david cournapeau's patch to make
1538 import_some work properly even when ipythonrc does
1545 import_some work properly even when ipythonrc does
1539 import_some on empty list (it was an old bug!).
1546 import_some on empty list (it was an old bug!).
1540
1547
1541 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1548 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1542 Add deprecation note to ipythonrc and a url to wiki
1549 Add deprecation note to ipythonrc and a url to wiki
1543 in ipy_user_conf.py
1550 in ipy_user_conf.py
1544
1551
1545
1552
1546 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1553 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1547 as if it was typed on IPython command prompt, i.e.
1554 as if it was typed on IPython command prompt, i.e.
1548 as IPython script.
1555 as IPython script.
1549
1556
1550 * example-magic.py, magic_grepl.py: remove outdated examples
1557 * example-magic.py, magic_grepl.py: remove outdated examples
1551
1558
1552 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1559 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1553
1560
1554 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1561 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1555 is called before any exception has occurred.
1562 is called before any exception has occurred.
1556
1563
1557 2006-12-08 Ville Vainio <vivainio@gmail.com>
1564 2006-12-08 Ville Vainio <vivainio@gmail.com>
1558
1565
1559 * Extensions/ipy_stock_completers.py: fix cd completer
1566 * Extensions/ipy_stock_completers.py: fix cd completer
1560 to translate /'s to \'s again.
1567 to translate /'s to \'s again.
1561
1568
1562 * completer.py: prevent traceback on file completions w/
1569 * completer.py: prevent traceback on file completions w/
1563 backslash.
1570 backslash.
1564
1571
1565 * Release.py: Update release number to 0.7.3b3 for release
1572 * Release.py: Update release number to 0.7.3b3 for release
1566
1573
1567 2006-12-07 Ville Vainio <vivainio@gmail.com>
1574 2006-12-07 Ville Vainio <vivainio@gmail.com>
1568
1575
1569 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1576 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1570 while executing external code. Provides more shell-like behaviour
1577 while executing external code. Provides more shell-like behaviour
1571 and overall better response to ctrl + C / ctrl + break.
1578 and overall better response to ctrl + C / ctrl + break.
1572
1579
1573 * tools/make_tarball.py: new script to create tarball straight from svn
1580 * tools/make_tarball.py: new script to create tarball straight from svn
1574 (setup.py sdist doesn't work on win32).
1581 (setup.py sdist doesn't work on win32).
1575
1582
1576 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1583 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1577 on dirnames with spaces and use the default completer instead.
1584 on dirnames with spaces and use the default completer instead.
1578
1585
1579 * Revision.py: Change version to 0.7.3b2 for release.
1586 * Revision.py: Change version to 0.7.3b2 for release.
1580
1587
1581 2006-12-05 Ville Vainio <vivainio@gmail.com>
1588 2006-12-05 Ville Vainio <vivainio@gmail.com>
1582
1589
1583 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1590 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1584 pydb patch 4 (rm debug printing, py 2.5 checking)
1591 pydb patch 4 (rm debug printing, py 2.5 checking)
1585
1592
1586 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1593 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1587 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1594 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1588 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1595 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1589 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1596 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1590 object the cursor was on before the refresh. The command "markrange" is
1597 object the cursor was on before the refresh. The command "markrange" is
1591 mapped to "%" now.
1598 mapped to "%" now.
1592 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1599 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1593
1600
1594 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1601 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1595
1602
1596 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1603 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1597 interactive debugger on the last traceback, without having to call
1604 interactive debugger on the last traceback, without having to call
1598 %pdb and rerun your code. Made minor changes in various modules,
1605 %pdb and rerun your code. Made minor changes in various modules,
1599 should automatically recognize pydb if available.
1606 should automatically recognize pydb if available.
1600
1607
1601 2006-11-28 Ville Vainio <vivainio@gmail.com>
1608 2006-11-28 Ville Vainio <vivainio@gmail.com>
1602
1609
1603 * completer.py: If the text start with !, show file completions
1610 * completer.py: If the text start with !, show file completions
1604 properly. This helps when trying to complete command name
1611 properly. This helps when trying to complete command name
1605 for shell escapes.
1612 for shell escapes.
1606
1613
1607 2006-11-27 Ville Vainio <vivainio@gmail.com>
1614 2006-11-27 Ville Vainio <vivainio@gmail.com>
1608
1615
1609 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1616 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1610 der Walt. Clean up svn and hg completers by using a common
1617 der Walt. Clean up svn and hg completers by using a common
1611 vcs_completer.
1618 vcs_completer.
1612
1619
1613 2006-11-26 Ville Vainio <vivainio@gmail.com>
1620 2006-11-26 Ville Vainio <vivainio@gmail.com>
1614
1621
1615 * Remove ipconfig and %config; you should use _ip.options structure
1622 * Remove ipconfig and %config; you should use _ip.options structure
1616 directly instead!
1623 directly instead!
1617
1624
1618 * genutils.py: add wrap_deprecated function for deprecating callables
1625 * genutils.py: add wrap_deprecated function for deprecating callables
1619
1626
1620 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1627 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1621 _ip.system instead. ipalias is redundant.
1628 _ip.system instead. ipalias is redundant.
1622
1629
1623 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1630 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1624 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1631 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1625 explicit.
1632 explicit.
1626
1633
1627 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1634 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1628 completer. Try it by entering 'hg ' and pressing tab.
1635 completer. Try it by entering 'hg ' and pressing tab.
1629
1636
1630 * macro.py: Give Macro a useful __repr__ method
1637 * macro.py: Give Macro a useful __repr__ method
1631
1638
1632 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1639 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1633
1640
1634 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1641 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1635 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1642 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1636 we don't get a duplicate ipipe module, where registration of the xrepr
1643 we don't get a duplicate ipipe module, where registration of the xrepr
1637 implementation for Text is useless.
1644 implementation for Text is useless.
1638
1645
1639 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1646 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1640
1647
1641 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1648 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1642
1649
1643 2006-11-24 Ville Vainio <vivainio@gmail.com>
1650 2006-11-24 Ville Vainio <vivainio@gmail.com>
1644
1651
1645 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1652 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1646 try to use "cProfile" instead of the slower pure python
1653 try to use "cProfile" instead of the slower pure python
1647 "profile"
1654 "profile"
1648
1655
1649 2006-11-23 Ville Vainio <vivainio@gmail.com>
1656 2006-11-23 Ville Vainio <vivainio@gmail.com>
1650
1657
1651 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1658 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1652 Qt+IPython+Designer link in documentation.
1659 Qt+IPython+Designer link in documentation.
1653
1660
1654 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1661 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1655 correct Pdb object to %pydb.
1662 correct Pdb object to %pydb.
1656
1663
1657
1664
1658 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1665 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1659 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1666 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1660 generic xrepr(), otherwise the list implementation would kick in.
1667 generic xrepr(), otherwise the list implementation would kick in.
1661
1668
1662 2006-11-21 Ville Vainio <vivainio@gmail.com>
1669 2006-11-21 Ville Vainio <vivainio@gmail.com>
1663
1670
1664 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1671 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1665 with one from UserConfig.
1672 with one from UserConfig.
1666
1673
1667 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1674 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1668 it was missing which broke the sh profile.
1675 it was missing which broke the sh profile.
1669
1676
1670 * completer.py: file completer now uses explicit '/' instead
1677 * completer.py: file completer now uses explicit '/' instead
1671 of os.path.join, expansion of 'foo' was broken on win32
1678 of os.path.join, expansion of 'foo' was broken on win32
1672 if there was one directory with name 'foobar'.
1679 if there was one directory with name 'foobar'.
1673
1680
1674 * A bunch of patches from Kirill Smelkov:
1681 * A bunch of patches from Kirill Smelkov:
1675
1682
1676 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1683 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1677
1684
1678 * [patch 7/9] Implement %page -r (page in raw mode) -
1685 * [patch 7/9] Implement %page -r (page in raw mode) -
1679
1686
1680 * [patch 5/9] ScientificPython webpage has moved
1687 * [patch 5/9] ScientificPython webpage has moved
1681
1688
1682 * [patch 4/9] The manual mentions %ds, should be %dhist
1689 * [patch 4/9] The manual mentions %ds, should be %dhist
1683
1690
1684 * [patch 3/9] Kill old bits from %prun doc.
1691 * [patch 3/9] Kill old bits from %prun doc.
1685
1692
1686 * [patch 1/9] Fix typos here and there.
1693 * [patch 1/9] Fix typos here and there.
1687
1694
1688 2006-11-08 Ville Vainio <vivainio@gmail.com>
1695 2006-11-08 Ville Vainio <vivainio@gmail.com>
1689
1696
1690 * completer.py (attr_matches): catch all exceptions raised
1697 * completer.py (attr_matches): catch all exceptions raised
1691 by eval of expr with dots.
1698 by eval of expr with dots.
1692
1699
1693 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1700 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1694
1701
1695 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1702 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1696 input if it starts with whitespace. This allows you to paste
1703 input if it starts with whitespace. This allows you to paste
1697 indented input from any editor without manually having to type in
1704 indented input from any editor without manually having to type in
1698 the 'if 1:', which is convenient when working interactively.
1705 the 'if 1:', which is convenient when working interactively.
1699 Slightly modifed version of a patch by Bo Peng
1706 Slightly modifed version of a patch by Bo Peng
1700 <bpeng-AT-rice.edu>.
1707 <bpeng-AT-rice.edu>.
1701
1708
1702 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1709 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1703
1710
1704 * IPython/irunner.py (main): modified irunner so it automatically
1711 * IPython/irunner.py (main): modified irunner so it automatically
1705 recognizes the right runner to use based on the extension (.py for
1712 recognizes the right runner to use based on the extension (.py for
1706 python, .ipy for ipython and .sage for sage).
1713 python, .ipy for ipython and .sage for sage).
1707
1714
1708 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1715 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1709 visible in ipapi as ip.config(), to programatically control the
1716 visible in ipapi as ip.config(), to programatically control the
1710 internal rc object. There's an accompanying %config magic for
1717 internal rc object. There's an accompanying %config magic for
1711 interactive use, which has been enhanced to match the
1718 interactive use, which has been enhanced to match the
1712 funtionality in ipconfig.
1719 funtionality in ipconfig.
1713
1720
1714 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1721 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1715 so it's not just a toggle, it now takes an argument. Add support
1722 so it's not just a toggle, it now takes an argument. Add support
1716 for a customizable header when making system calls, as the new
1723 for a customizable header when making system calls, as the new
1717 system_header variable in the ipythonrc file.
1724 system_header variable in the ipythonrc file.
1718
1725
1719 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1726 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1720
1727
1721 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1728 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1722 generic functions (using Philip J. Eby's simplegeneric package).
1729 generic functions (using Philip J. Eby's simplegeneric package).
1723 This makes it possible to customize the display of third-party classes
1730 This makes it possible to customize the display of third-party classes
1724 without having to monkeypatch them. xiter() no longer supports a mode
1731 without having to monkeypatch them. xiter() no longer supports a mode
1725 argument and the XMode class has been removed. The same functionality can
1732 argument and the XMode class has been removed. The same functionality can
1726 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1733 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1727 One consequence of the switch to generic functions is that xrepr() and
1734 One consequence of the switch to generic functions is that xrepr() and
1728 xattrs() implementation must define the default value for the mode
1735 xattrs() implementation must define the default value for the mode
1729 argument themselves and xattrs() implementations must return real
1736 argument themselves and xattrs() implementations must return real
1730 descriptors.
1737 descriptors.
1731
1738
1732 * IPython/external: This new subpackage will contain all third-party
1739 * IPython/external: This new subpackage will contain all third-party
1733 packages that are bundled with IPython. (The first one is simplegeneric).
1740 packages that are bundled with IPython. (The first one is simplegeneric).
1734
1741
1735 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1742 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1736 directory which as been dropped in r1703.
1743 directory which as been dropped in r1703.
1737
1744
1738 * IPython/Extensions/ipipe.py (iless): Fixed.
1745 * IPython/Extensions/ipipe.py (iless): Fixed.
1739
1746
1740 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1747 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1741
1748
1742 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1749 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1743
1750
1744 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1751 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1745 handling in variable expansion so that shells and magics recognize
1752 handling in variable expansion so that shells and magics recognize
1746 function local scopes correctly. Bug reported by Brian.
1753 function local scopes correctly. Bug reported by Brian.
1747
1754
1748 * scripts/ipython: remove the very first entry in sys.path which
1755 * scripts/ipython: remove the very first entry in sys.path which
1749 Python auto-inserts for scripts, so that sys.path under IPython is
1756 Python auto-inserts for scripts, so that sys.path under IPython is
1750 as similar as possible to that under plain Python.
1757 as similar as possible to that under plain Python.
1751
1758
1752 * IPython/completer.py (IPCompleter.file_matches): Fix
1759 * IPython/completer.py (IPCompleter.file_matches): Fix
1753 tab-completion so that quotes are not closed unless the completion
1760 tab-completion so that quotes are not closed unless the completion
1754 is unambiguous. After a request by Stefan. Minor cleanups in
1761 is unambiguous. After a request by Stefan. Minor cleanups in
1755 ipy_stock_completers.
1762 ipy_stock_completers.
1756
1763
1757 2006-11-02 Ville Vainio <vivainio@gmail.com>
1764 2006-11-02 Ville Vainio <vivainio@gmail.com>
1758
1765
1759 * ipy_stock_completers.py: Add %run and %cd completers.
1766 * ipy_stock_completers.py: Add %run and %cd completers.
1760
1767
1761 * completer.py: Try running custom completer for both
1768 * completer.py: Try running custom completer for both
1762 "foo" and "%foo" if the command is just "foo". Ignore case
1769 "foo" and "%foo" if the command is just "foo". Ignore case
1763 when filtering possible completions.
1770 when filtering possible completions.
1764
1771
1765 * UserConfig/ipy_user_conf.py: install stock completers as default
1772 * UserConfig/ipy_user_conf.py: install stock completers as default
1766
1773
1767 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1774 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1768 simplified readline history save / restore through a wrapper
1775 simplified readline history save / restore through a wrapper
1769 function
1776 function
1770
1777
1771
1778
1772 2006-10-31 Ville Vainio <vivainio@gmail.com>
1779 2006-10-31 Ville Vainio <vivainio@gmail.com>
1773
1780
1774 * strdispatch.py, completer.py, ipy_stock_completers.py:
1781 * strdispatch.py, completer.py, ipy_stock_completers.py:
1775 Allow str_key ("command") in completer hooks. Implement
1782 Allow str_key ("command") in completer hooks. Implement
1776 trivial completer for 'import' (stdlib modules only). Rename
1783 trivial completer for 'import' (stdlib modules only). Rename
1777 ipy_linux_package_managers.py to ipy_stock_completers.py.
1784 ipy_linux_package_managers.py to ipy_stock_completers.py.
1778 SVN completer.
1785 SVN completer.
1779
1786
1780 * Extensions/ledit.py: %magic line editor for easily and
1787 * Extensions/ledit.py: %magic line editor for easily and
1781 incrementally manipulating lists of strings. The magic command
1788 incrementally manipulating lists of strings. The magic command
1782 name is %led.
1789 name is %led.
1783
1790
1784 2006-10-30 Ville Vainio <vivainio@gmail.com>
1791 2006-10-30 Ville Vainio <vivainio@gmail.com>
1785
1792
1786 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1793 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1787 Bernsteins's patches for pydb integration.
1794 Bernsteins's patches for pydb integration.
1788 http://bashdb.sourceforge.net/pydb/
1795 http://bashdb.sourceforge.net/pydb/
1789
1796
1790 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1797 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1791 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1798 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1792 custom completer hook to allow the users to implement their own
1799 custom completer hook to allow the users to implement their own
1793 completers. See ipy_linux_package_managers.py for example. The
1800 completers. See ipy_linux_package_managers.py for example. The
1794 hook name is 'complete_command'.
1801 hook name is 'complete_command'.
1795
1802
1796 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1803 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1797
1804
1798 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1805 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1799 Numeric leftovers.
1806 Numeric leftovers.
1800
1807
1801 * ipython.el (py-execute-region): apply Stefan's patch to fix
1808 * ipython.el (py-execute-region): apply Stefan's patch to fix
1802 garbled results if the python shell hasn't been previously started.
1809 garbled results if the python shell hasn't been previously started.
1803
1810
1804 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1811 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1805 pretty generic function and useful for other things.
1812 pretty generic function and useful for other things.
1806
1813
1807 * IPython/OInspect.py (getsource): Add customizable source
1814 * IPython/OInspect.py (getsource): Add customizable source
1808 extractor. After a request/patch form W. Stein (SAGE).
1815 extractor. After a request/patch form W. Stein (SAGE).
1809
1816
1810 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1817 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1811 window size to a more reasonable value from what pexpect does,
1818 window size to a more reasonable value from what pexpect does,
1812 since their choice causes wrapping bugs with long input lines.
1819 since their choice causes wrapping bugs with long input lines.
1813
1820
1814 2006-10-28 Ville Vainio <vivainio@gmail.com>
1821 2006-10-28 Ville Vainio <vivainio@gmail.com>
1815
1822
1816 * Magic.py (%run): Save and restore the readline history from
1823 * Magic.py (%run): Save and restore the readline history from
1817 file around %run commands to prevent side effects from
1824 file around %run commands to prevent side effects from
1818 %runned programs that might use readline (e.g. pydb).
1825 %runned programs that might use readline (e.g. pydb).
1819
1826
1820 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1827 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1821 invoking the pydb enhanced debugger.
1828 invoking the pydb enhanced debugger.
1822
1829
1823 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1830 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1824
1831
1825 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1832 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1826 call the base class method and propagate the return value to
1833 call the base class method and propagate the return value to
1827 ifile. This is now done by path itself.
1834 ifile. This is now done by path itself.
1828
1835
1829 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1836 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1830
1837
1831 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1838 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1832 api: set_crash_handler(), to expose the ability to change the
1839 api: set_crash_handler(), to expose the ability to change the
1833 internal crash handler.
1840 internal crash handler.
1834
1841
1835 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1842 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1836 the various parameters of the crash handler so that apps using
1843 the various parameters of the crash handler so that apps using
1837 IPython as their engine can customize crash handling. Ipmlemented
1844 IPython as their engine can customize crash handling. Ipmlemented
1838 at the request of SAGE.
1845 at the request of SAGE.
1839
1846
1840 2006-10-14 Ville Vainio <vivainio@gmail.com>
1847 2006-10-14 Ville Vainio <vivainio@gmail.com>
1841
1848
1842 * Magic.py, ipython.el: applied first "safe" part of Rocky
1849 * Magic.py, ipython.el: applied first "safe" part of Rocky
1843 Bernstein's patch set for pydb integration.
1850 Bernstein's patch set for pydb integration.
1844
1851
1845 * Magic.py (%unalias, %alias): %store'd aliases can now be
1852 * Magic.py (%unalias, %alias): %store'd aliases can now be
1846 removed with '%unalias'. %alias w/o args now shows most
1853 removed with '%unalias'. %alias w/o args now shows most
1847 interesting (stored / manually defined) aliases last
1854 interesting (stored / manually defined) aliases last
1848 where they catch the eye w/o scrolling.
1855 where they catch the eye w/o scrolling.
1849
1856
1850 * Magic.py (%rehashx), ext_rehashdir.py: files with
1857 * Magic.py (%rehashx), ext_rehashdir.py: files with
1851 'py' extension are always considered executable, even
1858 'py' extension are always considered executable, even
1852 when not in PATHEXT environment variable.
1859 when not in PATHEXT environment variable.
1853
1860
1854 2006-10-12 Ville Vainio <vivainio@gmail.com>
1861 2006-10-12 Ville Vainio <vivainio@gmail.com>
1855
1862
1856 * jobctrl.py: Add new "jobctrl" extension for spawning background
1863 * jobctrl.py: Add new "jobctrl" extension for spawning background
1857 processes with "&find /". 'import jobctrl' to try it out. Requires
1864 processes with "&find /". 'import jobctrl' to try it out. Requires
1858 'subprocess' module, standard in python 2.4+.
1865 'subprocess' module, standard in python 2.4+.
1859
1866
1860 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1867 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1861 so if foo -> bar and bar -> baz, then foo -> baz.
1868 so if foo -> bar and bar -> baz, then foo -> baz.
1862
1869
1863 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1870 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1864
1871
1865 * IPython/Magic.py (Magic.parse_options): add a new posix option
1872 * IPython/Magic.py (Magic.parse_options): add a new posix option
1866 to allow parsing of input args in magics that doesn't strip quotes
1873 to allow parsing of input args in magics that doesn't strip quotes
1867 (if posix=False). This also closes %timeit bug reported by
1874 (if posix=False). This also closes %timeit bug reported by
1868 Stefan.
1875 Stefan.
1869
1876
1870 2006-10-03 Ville Vainio <vivainio@gmail.com>
1877 2006-10-03 Ville Vainio <vivainio@gmail.com>
1871
1878
1872 * iplib.py (raw_input, interact): Return ValueError catching for
1879 * iplib.py (raw_input, interact): Return ValueError catching for
1873 raw_input. Fixes infinite loop for sys.stdin.close() or
1880 raw_input. Fixes infinite loop for sys.stdin.close() or
1874 sys.stdout.close().
1881 sys.stdout.close().
1875
1882
1876 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1883 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1877
1884
1878 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1885 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1879 to help in handling doctests. irunner is now pretty useful for
1886 to help in handling doctests. irunner is now pretty useful for
1880 running standalone scripts and simulate a full interactive session
1887 running standalone scripts and simulate a full interactive session
1881 in a format that can be then pasted as a doctest.
1888 in a format that can be then pasted as a doctest.
1882
1889
1883 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1890 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1884 on top of the default (useless) ones. This also fixes the nasty
1891 on top of the default (useless) ones. This also fixes the nasty
1885 way in which 2.5's Quitter() exits (reverted [1785]).
1892 way in which 2.5's Quitter() exits (reverted [1785]).
1886
1893
1887 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1894 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1888 2.5.
1895 2.5.
1889
1896
1890 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1897 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1891 color scheme is updated as well when color scheme is changed
1898 color scheme is updated as well when color scheme is changed
1892 interactively.
1899 interactively.
1893
1900
1894 2006-09-27 Ville Vainio <vivainio@gmail.com>
1901 2006-09-27 Ville Vainio <vivainio@gmail.com>
1895
1902
1896 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1903 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1897 infinite loop and just exit. It's a hack, but will do for a while.
1904 infinite loop and just exit. It's a hack, but will do for a while.
1898
1905
1899 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1906 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1900
1907
1901 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1908 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1902 the constructor, this makes it possible to get a list of only directories
1909 the constructor, this makes it possible to get a list of only directories
1903 or only files.
1910 or only files.
1904
1911
1905 2006-08-12 Ville Vainio <vivainio@gmail.com>
1912 2006-08-12 Ville Vainio <vivainio@gmail.com>
1906
1913
1907 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1914 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1908 they broke unittest
1915 they broke unittest
1909
1916
1910 2006-08-11 Ville Vainio <vivainio@gmail.com>
1917 2006-08-11 Ville Vainio <vivainio@gmail.com>
1911
1918
1912 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1919 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1913 by resolving issue properly, i.e. by inheriting FakeModule
1920 by resolving issue properly, i.e. by inheriting FakeModule
1914 from types.ModuleType. Pickling ipython interactive data
1921 from types.ModuleType. Pickling ipython interactive data
1915 should still work as usual (testing appreciated).
1922 should still work as usual (testing appreciated).
1916
1923
1917 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1924 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1918
1925
1919 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1926 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1920 running under python 2.3 with code from 2.4 to fix a bug with
1927 running under python 2.3 with code from 2.4 to fix a bug with
1921 help(). Reported by the Debian maintainers, Norbert Tretkowski
1928 help(). Reported by the Debian maintainers, Norbert Tretkowski
1922 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1929 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1923 <afayolle-AT-debian.org>.
1930 <afayolle-AT-debian.org>.
1924
1931
1925 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1932 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1926
1933
1927 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1934 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1928 (which was displaying "quit" twice).
1935 (which was displaying "quit" twice).
1929
1936
1930 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1937 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1931
1938
1932 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1939 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1933 the mode argument).
1940 the mode argument).
1934
1941
1935 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1942 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1936
1943
1937 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1944 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1938 not running under IPython.
1945 not running under IPython.
1939
1946
1940 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1947 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1941 and make it iterable (iterating over the attribute itself). Add two new
1948 and make it iterable (iterating over the attribute itself). Add two new
1942 magic strings for __xattrs__(): If the string starts with "-", the attribute
1949 magic strings for __xattrs__(): If the string starts with "-", the attribute
1943 will not be displayed in ibrowse's detail view (but it can still be
1950 will not be displayed in ibrowse's detail view (but it can still be
1944 iterated over). This makes it possible to add attributes that are large
1951 iterated over). This makes it possible to add attributes that are large
1945 lists or generator methods to the detail view. Replace magic attribute names
1952 lists or generator methods to the detail view. Replace magic attribute names
1946 and _attrname() and _getattr() with "descriptors": For each type of magic
1953 and _attrname() and _getattr() with "descriptors": For each type of magic
1947 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1954 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1948 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1955 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1949 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1956 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1950 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1957 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1951 are still supported.
1958 are still supported.
1952
1959
1953 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1960 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1954 fails in ibrowse.fetch(), the exception object is added as the last item
1961 fails in ibrowse.fetch(), the exception object is added as the last item
1955 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1962 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1956 a generator throws an exception midway through execution.
1963 a generator throws an exception midway through execution.
1957
1964
1958 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1965 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1959 encoding into methods.
1966 encoding into methods.
1960
1967
1961 2006-07-26 Ville Vainio <vivainio@gmail.com>
1968 2006-07-26 Ville Vainio <vivainio@gmail.com>
1962
1969
1963 * iplib.py: history now stores multiline input as single
1970 * iplib.py: history now stores multiline input as single
1964 history entries. Patch by Jorgen Cederlof.
1971 history entries. Patch by Jorgen Cederlof.
1965
1972
1966 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1973 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1967
1974
1968 * IPython/Extensions/ibrowse.py: Make cursor visible over
1975 * IPython/Extensions/ibrowse.py: Make cursor visible over
1969 non existing attributes.
1976 non existing attributes.
1970
1977
1971 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1978 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1972
1979
1973 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1980 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1974 error output of the running command doesn't mess up the screen.
1981 error output of the running command doesn't mess up the screen.
1975
1982
1976 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1983 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1977
1984
1978 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1985 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1979 argument. This sorts the items themselves.
1986 argument. This sorts the items themselves.
1980
1987
1981 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1988 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1982
1989
1983 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1990 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1984 Compile expression strings into code objects. This should speed
1991 Compile expression strings into code objects. This should speed
1985 up ifilter and friends somewhat.
1992 up ifilter and friends somewhat.
1986
1993
1987 2006-07-08 Ville Vainio <vivainio@gmail.com>
1994 2006-07-08 Ville Vainio <vivainio@gmail.com>
1988
1995
1989 * Magic.py: %cpaste now strips > from the beginning of lines
1996 * Magic.py: %cpaste now strips > from the beginning of lines
1990 to ease pasting quoted code from emails. Contributed by
1997 to ease pasting quoted code from emails. Contributed by
1991 Stefan van der Walt.
1998 Stefan van der Walt.
1992
1999
1993 2006-06-29 Ville Vainio <vivainio@gmail.com>
2000 2006-06-29 Ville Vainio <vivainio@gmail.com>
1994
2001
1995 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2002 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1996 mode, patch contributed by Darren Dale. NEEDS TESTING!
2003 mode, patch contributed by Darren Dale. NEEDS TESTING!
1997
2004
1998 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2005 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1999
2006
2000 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2007 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2001 a blue background. Fix fetching new display rows when the browser
2008 a blue background. Fix fetching new display rows when the browser
2002 scrolls more than a screenful (e.g. by using the goto command).
2009 scrolls more than a screenful (e.g. by using the goto command).
2003
2010
2004 2006-06-27 Ville Vainio <vivainio@gmail.com>
2011 2006-06-27 Ville Vainio <vivainio@gmail.com>
2005
2012
2006 * Magic.py (_inspect, _ofind) Apply David Huard's
2013 * Magic.py (_inspect, _ofind) Apply David Huard's
2007 patch for displaying the correct docstring for 'property'
2014 patch for displaying the correct docstring for 'property'
2008 attributes.
2015 attributes.
2009
2016
2010 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2017 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2011
2018
2012 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2019 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2013 commands into the methods implementing them.
2020 commands into the methods implementing them.
2014
2021
2015 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2022 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2016
2023
2017 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2024 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2018 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2025 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2019 autoindent support was authored by Jin Liu.
2026 autoindent support was authored by Jin Liu.
2020
2027
2021 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2028 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2022
2029
2023 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2030 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2024 for keymaps with a custom class that simplifies handling.
2031 for keymaps with a custom class that simplifies handling.
2025
2032
2026 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2033 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2027
2034
2028 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2035 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2029 resizing. This requires Python 2.5 to work.
2036 resizing. This requires Python 2.5 to work.
2030
2037
2031 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2038 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2032
2039
2033 * IPython/Extensions/ibrowse.py: Add two new commands to
2040 * IPython/Extensions/ibrowse.py: Add two new commands to
2034 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2041 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2035 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2042 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2036 attributes again. Remapped the help command to "?". Display
2043 attributes again. Remapped the help command to "?". Display
2037 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2044 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2038 as keys for the "home" and "end" commands. Add three new commands
2045 as keys for the "home" and "end" commands. Add three new commands
2039 to the input mode for "find" and friends: "delend" (CTRL-K)
2046 to the input mode for "find" and friends: "delend" (CTRL-K)
2040 deletes to the end of line. "incsearchup" searches upwards in the
2047 deletes to the end of line. "incsearchup" searches upwards in the
2041 command history for an input that starts with the text before the cursor.
2048 command history for an input that starts with the text before the cursor.
2042 "incsearchdown" does the same downwards. Removed a bogus mapping of
2049 "incsearchdown" does the same downwards. Removed a bogus mapping of
2043 the x key to "delete".
2050 the x key to "delete".
2044
2051
2045 2006-06-15 Ville Vainio <vivainio@gmail.com>
2052 2006-06-15 Ville Vainio <vivainio@gmail.com>
2046
2053
2047 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2054 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2048 used to create prompts dynamically, instead of the "old" way of
2055 used to create prompts dynamically, instead of the "old" way of
2049 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2056 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2050 way still works (it's invoked by the default hook), of course.
2057 way still works (it's invoked by the default hook), of course.
2051
2058
2052 * Prompts.py: added generate_output_prompt hook for altering output
2059 * Prompts.py: added generate_output_prompt hook for altering output
2053 prompt
2060 prompt
2054
2061
2055 * Release.py: Changed version string to 0.7.3.svn.
2062 * Release.py: Changed version string to 0.7.3.svn.
2056
2063
2057 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2064 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2058
2065
2059 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2066 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2060 the call to fetch() always tries to fetch enough data for at least one
2067 the call to fetch() always tries to fetch enough data for at least one
2061 full screen. This makes it possible to simply call moveto(0,0,True) in
2068 full screen. This makes it possible to simply call moveto(0,0,True) in
2062 the constructor. Fix typos and removed the obsolete goto attribute.
2069 the constructor. Fix typos and removed the obsolete goto attribute.
2063
2070
2064 2006-06-12 Ville Vainio <vivainio@gmail.com>
2071 2006-06-12 Ville Vainio <vivainio@gmail.com>
2065
2072
2066 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2073 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2067 allowing $variable interpolation within multiline statements,
2074 allowing $variable interpolation within multiline statements,
2068 though so far only with "sh" profile for a testing period.
2075 though so far only with "sh" profile for a testing period.
2069 The patch also enables splitting long commands with \ but it
2076 The patch also enables splitting long commands with \ but it
2070 doesn't work properly yet.
2077 doesn't work properly yet.
2071
2078
2072 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2079 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2073
2080
2074 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2081 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2075 input history and the position of the cursor in the input history for
2082 input history and the position of the cursor in the input history for
2076 the find, findbackwards and goto command.
2083 the find, findbackwards and goto command.
2077
2084
2078 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2085 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2079
2086
2080 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2087 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2081 implements the basic functionality of browser commands that require
2088 implements the basic functionality of browser commands that require
2082 input. Reimplement the goto, find and findbackwards commands as
2089 input. Reimplement the goto, find and findbackwards commands as
2083 subclasses of _CommandInput. Add an input history and keymaps to those
2090 subclasses of _CommandInput. Add an input history and keymaps to those
2084 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2091 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2085 execute commands.
2092 execute commands.
2086
2093
2087 2006-06-07 Ville Vainio <vivainio@gmail.com>
2094 2006-06-07 Ville Vainio <vivainio@gmail.com>
2088
2095
2089 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2096 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2090 running the batch files instead of leaving the session open.
2097 running the batch files instead of leaving the session open.
2091
2098
2092 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2099 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2093
2100
2094 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2101 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2095 the original fix was incomplete. Patch submitted by W. Maier.
2102 the original fix was incomplete. Patch submitted by W. Maier.
2096
2103
2097 2006-06-07 Ville Vainio <vivainio@gmail.com>
2104 2006-06-07 Ville Vainio <vivainio@gmail.com>
2098
2105
2099 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2106 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2100 Confirmation prompts can be supressed by 'quiet' option.
2107 Confirmation prompts can be supressed by 'quiet' option.
2101 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2108 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2102
2109
2103 2006-06-06 *** Released version 0.7.2
2110 2006-06-06 *** Released version 0.7.2
2104
2111
2105 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2112 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2106
2113
2107 * IPython/Release.py (version): Made 0.7.2 final for release.
2114 * IPython/Release.py (version): Made 0.7.2 final for release.
2108 Repo tagged and release cut.
2115 Repo tagged and release cut.
2109
2116
2110 2006-06-05 Ville Vainio <vivainio@gmail.com>
2117 2006-06-05 Ville Vainio <vivainio@gmail.com>
2111
2118
2112 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2119 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2113 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2120 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2114
2121
2115 * upgrade_dir.py: try import 'path' module a bit harder
2122 * upgrade_dir.py: try import 'path' module a bit harder
2116 (for %upgrade)
2123 (for %upgrade)
2117
2124
2118 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2125 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2119
2126
2120 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2127 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2121 instead of looping 20 times.
2128 instead of looping 20 times.
2122
2129
2123 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2130 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2124 correctly at initialization time. Bug reported by Krishna Mohan
2131 correctly at initialization time. Bug reported by Krishna Mohan
2125 Gundu <gkmohan-AT-gmail.com> on the user list.
2132 Gundu <gkmohan-AT-gmail.com> on the user list.
2126
2133
2127 * IPython/Release.py (version): Mark 0.7.2 version to start
2134 * IPython/Release.py (version): Mark 0.7.2 version to start
2128 testing for release on 06/06.
2135 testing for release on 06/06.
2129
2136
2130 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2137 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2131
2138
2132 * scripts/irunner: thin script interface so users don't have to
2139 * scripts/irunner: thin script interface so users don't have to
2133 find the module and call it as an executable, since modules rarely
2140 find the module and call it as an executable, since modules rarely
2134 live in people's PATH.
2141 live in people's PATH.
2135
2142
2136 * IPython/irunner.py (InteractiveRunner.__init__): added
2143 * IPython/irunner.py (InteractiveRunner.__init__): added
2137 delaybeforesend attribute to control delays with newer versions of
2144 delaybeforesend attribute to control delays with newer versions of
2138 pexpect. Thanks to detailed help from pexpect's author, Noah
2145 pexpect. Thanks to detailed help from pexpect's author, Noah
2139 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2146 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2140 correctly (it works in NoColor mode).
2147 correctly (it works in NoColor mode).
2141
2148
2142 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2149 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2143 SAGE list, from improper log() calls.
2150 SAGE list, from improper log() calls.
2144
2151
2145 2006-05-31 Ville Vainio <vivainio@gmail.com>
2152 2006-05-31 Ville Vainio <vivainio@gmail.com>
2146
2153
2147 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2154 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2148 with args in parens to work correctly with dirs that have spaces.
2155 with args in parens to work correctly with dirs that have spaces.
2149
2156
2150 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2157 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2151
2158
2152 * IPython/Logger.py (Logger.logstart): add option to log raw input
2159 * IPython/Logger.py (Logger.logstart): add option to log raw input
2153 instead of the processed one. A -r flag was added to the
2160 instead of the processed one. A -r flag was added to the
2154 %logstart magic used for controlling logging.
2161 %logstart magic used for controlling logging.
2155
2162
2156 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2163 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2157
2164
2158 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2165 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2159 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2166 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2160 recognize the option. After a bug report by Will Maier. This
2167 recognize the option. After a bug report by Will Maier. This
2161 closes #64 (will do it after confirmation from W. Maier).
2168 closes #64 (will do it after confirmation from W. Maier).
2162
2169
2163 * IPython/irunner.py: New module to run scripts as if manually
2170 * IPython/irunner.py: New module to run scripts as if manually
2164 typed into an interactive environment, based on pexpect. After a
2171 typed into an interactive environment, based on pexpect. After a
2165 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2172 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2166 ipython-user list. Simple unittests in the tests/ directory.
2173 ipython-user list. Simple unittests in the tests/ directory.
2167
2174
2168 * tools/release: add Will Maier, OpenBSD port maintainer, to
2175 * tools/release: add Will Maier, OpenBSD port maintainer, to
2169 recepients list. We are now officially part of the OpenBSD ports:
2176 recepients list. We are now officially part of the OpenBSD ports:
2170 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2177 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2171 work.
2178 work.
2172
2179
2173 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2180 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2174
2181
2175 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2182 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2176 so that it doesn't break tkinter apps.
2183 so that it doesn't break tkinter apps.
2177
2184
2178 * IPython/iplib.py (_prefilter): fix bug where aliases would
2185 * IPython/iplib.py (_prefilter): fix bug where aliases would
2179 shadow variables when autocall was fully off. Reported by SAGE
2186 shadow variables when autocall was fully off. Reported by SAGE
2180 author William Stein.
2187 author William Stein.
2181
2188
2182 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2189 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2183 at what detail level strings are computed when foo? is requested.
2190 at what detail level strings are computed when foo? is requested.
2184 This allows users to ask for example that the string form of an
2191 This allows users to ask for example that the string form of an
2185 object is only computed when foo?? is called, or even never, by
2192 object is only computed when foo?? is called, or even never, by
2186 setting the object_info_string_level >= 2 in the configuration
2193 setting the object_info_string_level >= 2 in the configuration
2187 file. This new option has been added and documented. After a
2194 file. This new option has been added and documented. After a
2188 request by SAGE to be able to control the printing of very large
2195 request by SAGE to be able to control the printing of very large
2189 objects more easily.
2196 objects more easily.
2190
2197
2191 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2198 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2192
2199
2193 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2200 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2194 from sys.argv, to be 100% consistent with how Python itself works
2201 from sys.argv, to be 100% consistent with how Python itself works
2195 (as seen for example with python -i file.py). After a bug report
2202 (as seen for example with python -i file.py). After a bug report
2196 by Jeffrey Collins.
2203 by Jeffrey Collins.
2197
2204
2198 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2205 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2199 nasty bug which was preventing custom namespaces with -pylab,
2206 nasty bug which was preventing custom namespaces with -pylab,
2200 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2207 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2201 compatibility (long gone from mpl).
2208 compatibility (long gone from mpl).
2202
2209
2203 * IPython/ipapi.py (make_session): name change: create->make. We
2210 * IPython/ipapi.py (make_session): name change: create->make. We
2204 use make in other places (ipmaker,...), it's shorter and easier to
2211 use make in other places (ipmaker,...), it's shorter and easier to
2205 type and say, etc. I'm trying to clean things before 0.7.2 so
2212 type and say, etc. I'm trying to clean things before 0.7.2 so
2206 that I can keep things stable wrt to ipapi in the chainsaw branch.
2213 that I can keep things stable wrt to ipapi in the chainsaw branch.
2207
2214
2208 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2215 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2209 python-mode recognizes our debugger mode. Add support for
2216 python-mode recognizes our debugger mode. Add support for
2210 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2217 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2211 <m.liu.jin-AT-gmail.com> originally written by
2218 <m.liu.jin-AT-gmail.com> originally written by
2212 doxgen-AT-newsmth.net (with minor modifications for xemacs
2219 doxgen-AT-newsmth.net (with minor modifications for xemacs
2213 compatibility)
2220 compatibility)
2214
2221
2215 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2222 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2216 tracebacks when walking the stack so that the stack tracking system
2223 tracebacks when walking the stack so that the stack tracking system
2217 in emacs' python-mode can identify the frames correctly.
2224 in emacs' python-mode can identify the frames correctly.
2218
2225
2219 * IPython/ipmaker.py (make_IPython): make the internal (and
2226 * IPython/ipmaker.py (make_IPython): make the internal (and
2220 default config) autoedit_syntax value false by default. Too many
2227 default config) autoedit_syntax value false by default. Too many
2221 users have complained to me (both on and off-list) about problems
2228 users have complained to me (both on and off-list) about problems
2222 with this option being on by default, so I'm making it default to
2229 with this option being on by default, so I'm making it default to
2223 off. It can still be enabled by anyone via the usual mechanisms.
2230 off. It can still be enabled by anyone via the usual mechanisms.
2224
2231
2225 * IPython/completer.py (Completer.attr_matches): add support for
2232 * IPython/completer.py (Completer.attr_matches): add support for
2226 PyCrust-style _getAttributeNames magic method. Patch contributed
2233 PyCrust-style _getAttributeNames magic method. Patch contributed
2227 by <mscott-AT-goldenspud.com>. Closes #50.
2234 by <mscott-AT-goldenspud.com>. Closes #50.
2228
2235
2229 * IPython/iplib.py (InteractiveShell.__init__): remove the
2236 * IPython/iplib.py (InteractiveShell.__init__): remove the
2230 deletion of exit/quit from __builtin__, which can break
2237 deletion of exit/quit from __builtin__, which can break
2231 third-party tools like the Zope debugging console. The
2238 third-party tools like the Zope debugging console. The
2232 %exit/%quit magics remain. In general, it's probably a good idea
2239 %exit/%quit magics remain. In general, it's probably a good idea
2233 not to delete anything from __builtin__, since we never know what
2240 not to delete anything from __builtin__, since we never know what
2234 that will break. In any case, python now (for 2.5) will support
2241 that will break. In any case, python now (for 2.5) will support
2235 'real' exit/quit, so this issue is moot. Closes #55.
2242 'real' exit/quit, so this issue is moot. Closes #55.
2236
2243
2237 * IPython/genutils.py (with_obj): rename the 'with' function to
2244 * IPython/genutils.py (with_obj): rename the 'with' function to
2238 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2245 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2239 becomes a language keyword. Closes #53.
2246 becomes a language keyword. Closes #53.
2240
2247
2241 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2248 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2242 __file__ attribute to this so it fools more things into thinking
2249 __file__ attribute to this so it fools more things into thinking
2243 it is a real module. Closes #59.
2250 it is a real module. Closes #59.
2244
2251
2245 * IPython/Magic.py (magic_edit): add -n option to open the editor
2252 * IPython/Magic.py (magic_edit): add -n option to open the editor
2246 at a specific line number. After a patch by Stefan van der Walt.
2253 at a specific line number. After a patch by Stefan van der Walt.
2247
2254
2248 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2255 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2249
2256
2250 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2257 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2251 reason the file could not be opened. After automatic crash
2258 reason the file could not be opened. After automatic crash
2252 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2259 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2253 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2260 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2254 (_should_recompile): Don't fire editor if using %bg, since there
2261 (_should_recompile): Don't fire editor if using %bg, since there
2255 is no file in the first place. From the same report as above.
2262 is no file in the first place. From the same report as above.
2256 (raw_input): protect against faulty third-party prefilters. After
2263 (raw_input): protect against faulty third-party prefilters. After
2257 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2264 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2258 while running under SAGE.
2265 while running under SAGE.
2259
2266
2260 2006-05-23 Ville Vainio <vivainio@gmail.com>
2267 2006-05-23 Ville Vainio <vivainio@gmail.com>
2261
2268
2262 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2269 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2263 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2270 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2264 now returns None (again), unless dummy is specifically allowed by
2271 now returns None (again), unless dummy is specifically allowed by
2265 ipapi.get(allow_dummy=True).
2272 ipapi.get(allow_dummy=True).
2266
2273
2267 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2274 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2268
2275
2269 * IPython: remove all 2.2-compatibility objects and hacks from
2276 * IPython: remove all 2.2-compatibility objects and hacks from
2270 everywhere, since we only support 2.3 at this point. Docs
2277 everywhere, since we only support 2.3 at this point. Docs
2271 updated.
2278 updated.
2272
2279
2273 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2280 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2274 Anything requiring extra validation can be turned into a Python
2281 Anything requiring extra validation can be turned into a Python
2275 property in the future. I used a property for the db one b/c
2282 property in the future. I used a property for the db one b/c
2276 there was a nasty circularity problem with the initialization
2283 there was a nasty circularity problem with the initialization
2277 order, which right now I don't have time to clean up.
2284 order, which right now I don't have time to clean up.
2278
2285
2279 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2286 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2280 another locking bug reported by Jorgen. I'm not 100% sure though,
2287 another locking bug reported by Jorgen. I'm not 100% sure though,
2281 so more testing is needed...
2288 so more testing is needed...
2282
2289
2283 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2290 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2284
2291
2285 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2292 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2286 local variables from any routine in user code (typically executed
2293 local variables from any routine in user code (typically executed
2287 with %run) directly into the interactive namespace. Very useful
2294 with %run) directly into the interactive namespace. Very useful
2288 when doing complex debugging.
2295 when doing complex debugging.
2289 (IPythonNotRunning): Changed the default None object to a dummy
2296 (IPythonNotRunning): Changed the default None object to a dummy
2290 whose attributes can be queried as well as called without
2297 whose attributes can be queried as well as called without
2291 exploding, to ease writing code which works transparently both in
2298 exploding, to ease writing code which works transparently both in
2292 and out of ipython and uses some of this API.
2299 and out of ipython and uses some of this API.
2293
2300
2294 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2301 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2295
2302
2296 * IPython/hooks.py (result_display): Fix the fact that our display
2303 * IPython/hooks.py (result_display): Fix the fact that our display
2297 hook was using str() instead of repr(), as the default python
2304 hook was using str() instead of repr(), as the default python
2298 console does. This had gone unnoticed b/c it only happened if
2305 console does. This had gone unnoticed b/c it only happened if
2299 %Pprint was off, but the inconsistency was there.
2306 %Pprint was off, but the inconsistency was there.
2300
2307
2301 2006-05-15 Ville Vainio <vivainio@gmail.com>
2308 2006-05-15 Ville Vainio <vivainio@gmail.com>
2302
2309
2303 * Oinspect.py: Only show docstring for nonexisting/binary files
2310 * Oinspect.py: Only show docstring for nonexisting/binary files
2304 when doing object??, closing ticket #62
2311 when doing object??, closing ticket #62
2305
2312
2306 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2313 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2307
2314
2308 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2315 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2309 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2316 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2310 was being released in a routine which hadn't checked if it had
2317 was being released in a routine which hadn't checked if it had
2311 been the one to acquire it.
2318 been the one to acquire it.
2312
2319
2313 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2320 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2314
2321
2315 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2322 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2316
2323
2317 2006-04-11 Ville Vainio <vivainio@gmail.com>
2324 2006-04-11 Ville Vainio <vivainio@gmail.com>
2318
2325
2319 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2326 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2320 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2327 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2321 prefilters, allowing stuff like magics and aliases in the file.
2328 prefilters, allowing stuff like magics and aliases in the file.
2322
2329
2323 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2330 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2324 added. Supported now are "%clear in" and "%clear out" (clear input and
2331 added. Supported now are "%clear in" and "%clear out" (clear input and
2325 output history, respectively). Also fixed CachedOutput.flush to
2332 output history, respectively). Also fixed CachedOutput.flush to
2326 properly flush the output cache.
2333 properly flush the output cache.
2327
2334
2328 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2335 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2329 half-success (and fail explicitly).
2336 half-success (and fail explicitly).
2330
2337
2331 2006-03-28 Ville Vainio <vivainio@gmail.com>
2338 2006-03-28 Ville Vainio <vivainio@gmail.com>
2332
2339
2333 * iplib.py: Fix quoting of aliases so that only argless ones
2340 * iplib.py: Fix quoting of aliases so that only argless ones
2334 are quoted
2341 are quoted
2335
2342
2336 2006-03-28 Ville Vainio <vivainio@gmail.com>
2343 2006-03-28 Ville Vainio <vivainio@gmail.com>
2337
2344
2338 * iplib.py: Quote aliases with spaces in the name.
2345 * iplib.py: Quote aliases with spaces in the name.
2339 "c:\program files\blah\bin" is now legal alias target.
2346 "c:\program files\blah\bin" is now legal alias target.
2340
2347
2341 * ext_rehashdir.py: Space no longer allowed as arg
2348 * ext_rehashdir.py: Space no longer allowed as arg
2342 separator, since space is legal in path names.
2349 separator, since space is legal in path names.
2343
2350
2344 2006-03-16 Ville Vainio <vivainio@gmail.com>
2351 2006-03-16 Ville Vainio <vivainio@gmail.com>
2345
2352
2346 * upgrade_dir.py: Take path.py from Extensions, correcting
2353 * upgrade_dir.py: Take path.py from Extensions, correcting
2347 %upgrade magic
2354 %upgrade magic
2348
2355
2349 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2356 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2350
2357
2351 * hooks.py: Only enclose editor binary in quotes if legal and
2358 * hooks.py: Only enclose editor binary in quotes if legal and
2352 necessary (space in the name, and is an existing file). Fixes a bug
2359 necessary (space in the name, and is an existing file). Fixes a bug
2353 reported by Zachary Pincus.
2360 reported by Zachary Pincus.
2354
2361
2355 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2362 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2356
2363
2357 * Manual: thanks to a tip on proper color handling for Emacs, by
2364 * Manual: thanks to a tip on proper color handling for Emacs, by
2358 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2365 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2359
2366
2360 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2367 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2361 by applying the provided patch. Thanks to Liu Jin
2368 by applying the provided patch. Thanks to Liu Jin
2362 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2369 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2363 XEmacs/Linux, I'm trusting the submitter that it actually helps
2370 XEmacs/Linux, I'm trusting the submitter that it actually helps
2364 under win32/GNU Emacs. Will revisit if any problems are reported.
2371 under win32/GNU Emacs. Will revisit if any problems are reported.
2365
2372
2366 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2373 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2367
2374
2368 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2375 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2369 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2376 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2370
2377
2371 2006-03-12 Ville Vainio <vivainio@gmail.com>
2378 2006-03-12 Ville Vainio <vivainio@gmail.com>
2372
2379
2373 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2380 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2374 Torsten Marek.
2381 Torsten Marek.
2375
2382
2376 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2383 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2377
2384
2378 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2385 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2379 line ranges works again.
2386 line ranges works again.
2380
2387
2381 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2388 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2382
2389
2383 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2390 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2384 and friends, after a discussion with Zach Pincus on ipython-user.
2391 and friends, after a discussion with Zach Pincus on ipython-user.
2385 I'm not 100% sure, but after thinking about it quite a bit, it may
2392 I'm not 100% sure, but after thinking about it quite a bit, it may
2386 be OK. Testing with the multithreaded shells didn't reveal any
2393 be OK. Testing with the multithreaded shells didn't reveal any
2387 problems, but let's keep an eye out.
2394 problems, but let's keep an eye out.
2388
2395
2389 In the process, I fixed a few things which were calling
2396 In the process, I fixed a few things which were calling
2390 self.InteractiveTB() directly (like safe_execfile), which is a
2397 self.InteractiveTB() directly (like safe_execfile), which is a
2391 mistake: ALL exception reporting should be done by calling
2398 mistake: ALL exception reporting should be done by calling
2392 self.showtraceback(), which handles state and tab-completion and
2399 self.showtraceback(), which handles state and tab-completion and
2393 more.
2400 more.
2394
2401
2395 2006-03-01 Ville Vainio <vivainio@gmail.com>
2402 2006-03-01 Ville Vainio <vivainio@gmail.com>
2396
2403
2397 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2404 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2398 To use, do "from ipipe import *".
2405 To use, do "from ipipe import *".
2399
2406
2400 2006-02-24 Ville Vainio <vivainio@gmail.com>
2407 2006-02-24 Ville Vainio <vivainio@gmail.com>
2401
2408
2402 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2409 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2403 "cleanly" and safely than the older upgrade mechanism.
2410 "cleanly" and safely than the older upgrade mechanism.
2404
2411
2405 2006-02-21 Ville Vainio <vivainio@gmail.com>
2412 2006-02-21 Ville Vainio <vivainio@gmail.com>
2406
2413
2407 * Magic.py: %save works again.
2414 * Magic.py: %save works again.
2408
2415
2409 2006-02-15 Ville Vainio <vivainio@gmail.com>
2416 2006-02-15 Ville Vainio <vivainio@gmail.com>
2410
2417
2411 * Magic.py: %Pprint works again
2418 * Magic.py: %Pprint works again
2412
2419
2413 * Extensions/ipy_sane_defaults.py: Provide everything provided
2420 * Extensions/ipy_sane_defaults.py: Provide everything provided
2414 in default ipythonrc, to make it possible to have a completely empty
2421 in default ipythonrc, to make it possible to have a completely empty
2415 ipythonrc (and thus completely rc-file free configuration)
2422 ipythonrc (and thus completely rc-file free configuration)
2416
2423
2417 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2424 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2418
2425
2419 * IPython/hooks.py (editor): quote the call to the editor command,
2426 * IPython/hooks.py (editor): quote the call to the editor command,
2420 to allow commands with spaces in them. Problem noted by watching
2427 to allow commands with spaces in them. Problem noted by watching
2421 Ian Oswald's video about textpad under win32 at
2428 Ian Oswald's video about textpad under win32 at
2422 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2429 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2423
2430
2424 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2431 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2425 describing magics (we haven't used @ for a loong time).
2432 describing magics (we haven't used @ for a loong time).
2426
2433
2427 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2434 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2428 contributed by marienz to close
2435 contributed by marienz to close
2429 http://www.scipy.net/roundup/ipython/issue53.
2436 http://www.scipy.net/roundup/ipython/issue53.
2430
2437
2431 2006-02-10 Ville Vainio <vivainio@gmail.com>
2438 2006-02-10 Ville Vainio <vivainio@gmail.com>
2432
2439
2433 * genutils.py: getoutput now works in win32 too
2440 * genutils.py: getoutput now works in win32 too
2434
2441
2435 * completer.py: alias and magic completion only invoked
2442 * completer.py: alias and magic completion only invoked
2436 at the first "item" in the line, to avoid "cd %store"
2443 at the first "item" in the line, to avoid "cd %store"
2437 nonsense.
2444 nonsense.
2438
2445
2439 2006-02-09 Ville Vainio <vivainio@gmail.com>
2446 2006-02-09 Ville Vainio <vivainio@gmail.com>
2440
2447
2441 * test/*: Added a unit testing framework (finally).
2448 * test/*: Added a unit testing framework (finally).
2442 '%run runtests.py' to run test_*.
2449 '%run runtests.py' to run test_*.
2443
2450
2444 * ipapi.py: Exposed runlines and set_custom_exc
2451 * ipapi.py: Exposed runlines and set_custom_exc
2445
2452
2446 2006-02-07 Ville Vainio <vivainio@gmail.com>
2453 2006-02-07 Ville Vainio <vivainio@gmail.com>
2447
2454
2448 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2455 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2449 instead use "f(1 2)" as before.
2456 instead use "f(1 2)" as before.
2450
2457
2451 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2458 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2452
2459
2453 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2460 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2454 facilities, for demos processed by the IPython input filter
2461 facilities, for demos processed by the IPython input filter
2455 (IPythonDemo), and for running a script one-line-at-a-time as a
2462 (IPythonDemo), and for running a script one-line-at-a-time as a
2456 demo, both for pure Python (LineDemo) and for IPython-processed
2463 demo, both for pure Python (LineDemo) and for IPython-processed
2457 input (IPythonLineDemo). After a request by Dave Kohel, from the
2464 input (IPythonLineDemo). After a request by Dave Kohel, from the
2458 SAGE team.
2465 SAGE team.
2459 (Demo.edit): added an edit() method to the demo objects, to edit
2466 (Demo.edit): added an edit() method to the demo objects, to edit
2460 the in-memory copy of the last executed block.
2467 the in-memory copy of the last executed block.
2461
2468
2462 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2469 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2463 processing to %edit, %macro and %save. These commands can now be
2470 processing to %edit, %macro and %save. These commands can now be
2464 invoked on the unprocessed input as it was typed by the user
2471 invoked on the unprocessed input as it was typed by the user
2465 (without any prefilters applied). After requests by the SAGE team
2472 (without any prefilters applied). After requests by the SAGE team
2466 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2473 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2467
2474
2468 2006-02-01 Ville Vainio <vivainio@gmail.com>
2475 2006-02-01 Ville Vainio <vivainio@gmail.com>
2469
2476
2470 * setup.py, eggsetup.py: easy_install ipython==dev works
2477 * setup.py, eggsetup.py: easy_install ipython==dev works
2471 correctly now (on Linux)
2478 correctly now (on Linux)
2472
2479
2473 * ipy_user_conf,ipmaker: user config changes, removed spurious
2480 * ipy_user_conf,ipmaker: user config changes, removed spurious
2474 warnings
2481 warnings
2475
2482
2476 * iplib: if rc.banner is string, use it as is.
2483 * iplib: if rc.banner is string, use it as is.
2477
2484
2478 * Magic: %pycat accepts a string argument and pages it's contents.
2485 * Magic: %pycat accepts a string argument and pages it's contents.
2479
2486
2480
2487
2481 2006-01-30 Ville Vainio <vivainio@gmail.com>
2488 2006-01-30 Ville Vainio <vivainio@gmail.com>
2482
2489
2483 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2490 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2484 Now %store and bookmarks work through PickleShare, meaning that
2491 Now %store and bookmarks work through PickleShare, meaning that
2485 concurrent access is possible and all ipython sessions see the
2492 concurrent access is possible and all ipython sessions see the
2486 same database situation all the time, instead of snapshot of
2493 same database situation all the time, instead of snapshot of
2487 the situation when the session was started. Hence, %bookmark
2494 the situation when the session was started. Hence, %bookmark
2488 results are immediately accessible from othes sessions. The database
2495 results are immediately accessible from othes sessions. The database
2489 is also available for use by user extensions. See:
2496 is also available for use by user extensions. See:
2490 http://www.python.org/pypi/pickleshare
2497 http://www.python.org/pypi/pickleshare
2491
2498
2492 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2499 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2493
2500
2494 * aliases can now be %store'd
2501 * aliases can now be %store'd
2495
2502
2496 * path.py moved to Extensions so that pickleshare does not need
2503 * path.py moved to Extensions so that pickleshare does not need
2497 IPython-specific import. Extensions added to pythonpath right
2504 IPython-specific import. Extensions added to pythonpath right
2498 at __init__.
2505 at __init__.
2499
2506
2500 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2507 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2501 called with _ip.system and the pre-transformed command string.
2508 called with _ip.system and the pre-transformed command string.
2502
2509
2503 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2510 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2504
2511
2505 * IPython/iplib.py (interact): Fix that we were not catching
2512 * IPython/iplib.py (interact): Fix that we were not catching
2506 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2513 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2507 logic here had to change, but it's fixed now.
2514 logic here had to change, but it's fixed now.
2508
2515
2509 2006-01-29 Ville Vainio <vivainio@gmail.com>
2516 2006-01-29 Ville Vainio <vivainio@gmail.com>
2510
2517
2511 * iplib.py: Try to import pyreadline on Windows.
2518 * iplib.py: Try to import pyreadline on Windows.
2512
2519
2513 2006-01-27 Ville Vainio <vivainio@gmail.com>
2520 2006-01-27 Ville Vainio <vivainio@gmail.com>
2514
2521
2515 * iplib.py: Expose ipapi as _ip in builtin namespace.
2522 * iplib.py: Expose ipapi as _ip in builtin namespace.
2516 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2523 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2517 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2524 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2518 syntax now produce _ip.* variant of the commands.
2525 syntax now produce _ip.* variant of the commands.
2519
2526
2520 * "_ip.options().autoedit_syntax = 2" automatically throws
2527 * "_ip.options().autoedit_syntax = 2" automatically throws
2521 user to editor for syntax error correction without prompting.
2528 user to editor for syntax error correction without prompting.
2522
2529
2523 2006-01-27 Ville Vainio <vivainio@gmail.com>
2530 2006-01-27 Ville Vainio <vivainio@gmail.com>
2524
2531
2525 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2532 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2526 'ipython' at argv[0]) executed through command line.
2533 'ipython' at argv[0]) executed through command line.
2527 NOTE: this DEPRECATES calling ipython with multiple scripts
2534 NOTE: this DEPRECATES calling ipython with multiple scripts
2528 ("ipython a.py b.py c.py")
2535 ("ipython a.py b.py c.py")
2529
2536
2530 * iplib.py, hooks.py: Added configurable input prefilter,
2537 * iplib.py, hooks.py: Added configurable input prefilter,
2531 named 'input_prefilter'. See ext_rescapture.py for example
2538 named 'input_prefilter'. See ext_rescapture.py for example
2532 usage.
2539 usage.
2533
2540
2534 * ext_rescapture.py, Magic.py: Better system command output capture
2541 * ext_rescapture.py, Magic.py: Better system command output capture
2535 through 'var = !ls' (deprecates user-visible %sc). Same notation
2542 through 'var = !ls' (deprecates user-visible %sc). Same notation
2536 applies for magics, 'var = %alias' assigns alias list to var.
2543 applies for magics, 'var = %alias' assigns alias list to var.
2537
2544
2538 * ipapi.py: added meta() for accessing extension-usable data store.
2545 * ipapi.py: added meta() for accessing extension-usable data store.
2539
2546
2540 * iplib.py: added InteractiveShell.getapi(). New magics should be
2547 * iplib.py: added InteractiveShell.getapi(). New magics should be
2541 written doing self.getapi() instead of using the shell directly.
2548 written doing self.getapi() instead of using the shell directly.
2542
2549
2543 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2550 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2544 %store foo >> ~/myfoo.txt to store variables to files (in clean
2551 %store foo >> ~/myfoo.txt to store variables to files (in clean
2545 textual form, not a restorable pickle).
2552 textual form, not a restorable pickle).
2546
2553
2547 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2554 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2548
2555
2549 * usage.py, Magic.py: added %quickref
2556 * usage.py, Magic.py: added %quickref
2550
2557
2551 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2558 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2552
2559
2553 * GetoptErrors when invoking magics etc. with wrong args
2560 * GetoptErrors when invoking magics etc. with wrong args
2554 are now more helpful:
2561 are now more helpful:
2555 GetoptError: option -l not recognized (allowed: "qb" )
2562 GetoptError: option -l not recognized (allowed: "qb" )
2556
2563
2557 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2564 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2558
2565
2559 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2566 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2560 computationally intensive blocks don't appear to stall the demo.
2567 computationally intensive blocks don't appear to stall the demo.
2561
2568
2562 2006-01-24 Ville Vainio <vivainio@gmail.com>
2569 2006-01-24 Ville Vainio <vivainio@gmail.com>
2563
2570
2564 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2571 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2565 value to manipulate resulting history entry.
2572 value to manipulate resulting history entry.
2566
2573
2567 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2574 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2568 to instance methods of IPApi class, to make extending an embedded
2575 to instance methods of IPApi class, to make extending an embedded
2569 IPython feasible. See ext_rehashdir.py for example usage.
2576 IPython feasible. See ext_rehashdir.py for example usage.
2570
2577
2571 * Merged 1071-1076 from branches/0.7.1
2578 * Merged 1071-1076 from branches/0.7.1
2572
2579
2573
2580
2574 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2581 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2575
2582
2576 * tools/release (daystamp): Fix build tools to use the new
2583 * tools/release (daystamp): Fix build tools to use the new
2577 eggsetup.py script to build lightweight eggs.
2584 eggsetup.py script to build lightweight eggs.
2578
2585
2579 * Applied changesets 1062 and 1064 before 0.7.1 release.
2586 * Applied changesets 1062 and 1064 before 0.7.1 release.
2580
2587
2581 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2588 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2582 see the raw input history (without conversions like %ls ->
2589 see the raw input history (without conversions like %ls ->
2583 ipmagic("ls")). After a request from W. Stein, SAGE
2590 ipmagic("ls")). After a request from W. Stein, SAGE
2584 (http://modular.ucsd.edu/sage) developer. This information is
2591 (http://modular.ucsd.edu/sage) developer. This information is
2585 stored in the input_hist_raw attribute of the IPython instance, so
2592 stored in the input_hist_raw attribute of the IPython instance, so
2586 developers can access it if needed (it's an InputList instance).
2593 developers can access it if needed (it's an InputList instance).
2587
2594
2588 * Versionstring = 0.7.2.svn
2595 * Versionstring = 0.7.2.svn
2589
2596
2590 * eggsetup.py: A separate script for constructing eggs, creates
2597 * eggsetup.py: A separate script for constructing eggs, creates
2591 proper launch scripts even on Windows (an .exe file in
2598 proper launch scripts even on Windows (an .exe file in
2592 \python24\scripts).
2599 \python24\scripts).
2593
2600
2594 * ipapi.py: launch_new_instance, launch entry point needed for the
2601 * ipapi.py: launch_new_instance, launch entry point needed for the
2595 egg.
2602 egg.
2596
2603
2597 2006-01-23 Ville Vainio <vivainio@gmail.com>
2604 2006-01-23 Ville Vainio <vivainio@gmail.com>
2598
2605
2599 * Added %cpaste magic for pasting python code
2606 * Added %cpaste magic for pasting python code
2600
2607
2601 2006-01-22 Ville Vainio <vivainio@gmail.com>
2608 2006-01-22 Ville Vainio <vivainio@gmail.com>
2602
2609
2603 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2610 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2604
2611
2605 * Versionstring = 0.7.2.svn
2612 * Versionstring = 0.7.2.svn
2606
2613
2607 * eggsetup.py: A separate script for constructing eggs, creates
2614 * eggsetup.py: A separate script for constructing eggs, creates
2608 proper launch scripts even on Windows (an .exe file in
2615 proper launch scripts even on Windows (an .exe file in
2609 \python24\scripts).
2616 \python24\scripts).
2610
2617
2611 * ipapi.py: launch_new_instance, launch entry point needed for the
2618 * ipapi.py: launch_new_instance, launch entry point needed for the
2612 egg.
2619 egg.
2613
2620
2614 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2621 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2615
2622
2616 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2623 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2617 %pfile foo would print the file for foo even if it was a binary.
2624 %pfile foo would print the file for foo even if it was a binary.
2618 Now, extensions '.so' and '.dll' are skipped.
2625 Now, extensions '.so' and '.dll' are skipped.
2619
2626
2620 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2627 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2621 bug, where macros would fail in all threaded modes. I'm not 100%
2628 bug, where macros would fail in all threaded modes. I'm not 100%
2622 sure, so I'm going to put out an rc instead of making a release
2629 sure, so I'm going to put out an rc instead of making a release
2623 today, and wait for feedback for at least a few days.
2630 today, and wait for feedback for at least a few days.
2624
2631
2625 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2632 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2626 it...) the handling of pasting external code with autoindent on.
2633 it...) the handling of pasting external code with autoindent on.
2627 To get out of a multiline input, the rule will appear for most
2634 To get out of a multiline input, the rule will appear for most
2628 users unchanged: two blank lines or change the indent level
2635 users unchanged: two blank lines or change the indent level
2629 proposed by IPython. But there is a twist now: you can
2636 proposed by IPython. But there is a twist now: you can
2630 add/subtract only *one or two spaces*. If you add/subtract three
2637 add/subtract only *one or two spaces*. If you add/subtract three
2631 or more (unless you completely delete the line), IPython will
2638 or more (unless you completely delete the line), IPython will
2632 accept that line, and you'll need to enter a second one of pure
2639 accept that line, and you'll need to enter a second one of pure
2633 whitespace. I know it sounds complicated, but I can't find a
2640 whitespace. I know it sounds complicated, but I can't find a
2634 different solution that covers all the cases, with the right
2641 different solution that covers all the cases, with the right
2635 heuristics. Hopefully in actual use, nobody will really notice
2642 heuristics. Hopefully in actual use, nobody will really notice
2636 all these strange rules and things will 'just work'.
2643 all these strange rules and things will 'just work'.
2637
2644
2638 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2645 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2639
2646
2640 * IPython/iplib.py (interact): catch exceptions which can be
2647 * IPython/iplib.py (interact): catch exceptions which can be
2641 triggered asynchronously by signal handlers. Thanks to an
2648 triggered asynchronously by signal handlers. Thanks to an
2642 automatic crash report, submitted by Colin Kingsley
2649 automatic crash report, submitted by Colin Kingsley
2643 <tercel-AT-gentoo.org>.
2650 <tercel-AT-gentoo.org>.
2644
2651
2645 2006-01-20 Ville Vainio <vivainio@gmail.com>
2652 2006-01-20 Ville Vainio <vivainio@gmail.com>
2646
2653
2647 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2654 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2648 (%rehashdir, very useful, try it out) of how to extend ipython
2655 (%rehashdir, very useful, try it out) of how to extend ipython
2649 with new magics. Also added Extensions dir to pythonpath to make
2656 with new magics. Also added Extensions dir to pythonpath to make
2650 importing extensions easy.
2657 importing extensions easy.
2651
2658
2652 * %store now complains when trying to store interactively declared
2659 * %store now complains when trying to store interactively declared
2653 classes / instances of those classes.
2660 classes / instances of those classes.
2654
2661
2655 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2662 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2656 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2663 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2657 if they exist, and ipy_user_conf.py with some defaults is created for
2664 if they exist, and ipy_user_conf.py with some defaults is created for
2658 the user.
2665 the user.
2659
2666
2660 * Startup rehashing done by the config file, not InterpreterExec.
2667 * Startup rehashing done by the config file, not InterpreterExec.
2661 This means system commands are available even without selecting the
2668 This means system commands are available even without selecting the
2662 pysh profile. It's the sensible default after all.
2669 pysh profile. It's the sensible default after all.
2663
2670
2664 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2671 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2665
2672
2666 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2673 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2667 multiline code with autoindent on working. But I am really not
2674 multiline code with autoindent on working. But I am really not
2668 sure, so this needs more testing. Will commit a debug-enabled
2675 sure, so this needs more testing. Will commit a debug-enabled
2669 version for now, while I test it some more, so that Ville and
2676 version for now, while I test it some more, so that Ville and
2670 others may also catch any problems. Also made
2677 others may also catch any problems. Also made
2671 self.indent_current_str() a method, to ensure that there's no
2678 self.indent_current_str() a method, to ensure that there's no
2672 chance of the indent space count and the corresponding string
2679 chance of the indent space count and the corresponding string
2673 falling out of sync. All code needing the string should just call
2680 falling out of sync. All code needing the string should just call
2674 the method.
2681 the method.
2675
2682
2676 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2683 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2677
2684
2678 * IPython/Magic.py (magic_edit): fix check for when users don't
2685 * IPython/Magic.py (magic_edit): fix check for when users don't
2679 save their output files, the try/except was in the wrong section.
2686 save their output files, the try/except was in the wrong section.
2680
2687
2681 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2688 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2682
2689
2683 * IPython/Magic.py (magic_run): fix __file__ global missing from
2690 * IPython/Magic.py (magic_run): fix __file__ global missing from
2684 script's namespace when executed via %run. After a report by
2691 script's namespace when executed via %run. After a report by
2685 Vivian.
2692 Vivian.
2686
2693
2687 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2694 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2688 when using python 2.4. The parent constructor changed in 2.4, and
2695 when using python 2.4. The parent constructor changed in 2.4, and
2689 we need to track it directly (we can't call it, as it messes up
2696 we need to track it directly (we can't call it, as it messes up
2690 readline and tab-completion inside our pdb would stop working).
2697 readline and tab-completion inside our pdb would stop working).
2691 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2698 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2692
2699
2693 2006-01-16 Ville Vainio <vivainio@gmail.com>
2700 2006-01-16 Ville Vainio <vivainio@gmail.com>
2694
2701
2695 * Ipython/magic.py: Reverted back to old %edit functionality
2702 * Ipython/magic.py: Reverted back to old %edit functionality
2696 that returns file contents on exit.
2703 that returns file contents on exit.
2697
2704
2698 * IPython/path.py: Added Jason Orendorff's "path" module to
2705 * IPython/path.py: Added Jason Orendorff's "path" module to
2699 IPython tree, http://www.jorendorff.com/articles/python/path/.
2706 IPython tree, http://www.jorendorff.com/articles/python/path/.
2700 You can get path objects conveniently through %sc, and !!, e.g.:
2707 You can get path objects conveniently through %sc, and !!, e.g.:
2701 sc files=ls
2708 sc files=ls
2702 for p in files.paths: # or files.p
2709 for p in files.paths: # or files.p
2703 print p,p.mtime
2710 print p,p.mtime
2704
2711
2705 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2712 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2706 now work again without considering the exclusion regexp -
2713 now work again without considering the exclusion regexp -
2707 hence, things like ',foo my/path' turn to 'foo("my/path")'
2714 hence, things like ',foo my/path' turn to 'foo("my/path")'
2708 instead of syntax error.
2715 instead of syntax error.
2709
2716
2710
2717
2711 2006-01-14 Ville Vainio <vivainio@gmail.com>
2718 2006-01-14 Ville Vainio <vivainio@gmail.com>
2712
2719
2713 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2720 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2714 ipapi decorators for python 2.4 users, options() provides access to rc
2721 ipapi decorators for python 2.4 users, options() provides access to rc
2715 data.
2722 data.
2716
2723
2717 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2724 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2718 as path separators (even on Linux ;-). Space character after
2725 as path separators (even on Linux ;-). Space character after
2719 backslash (as yielded by tab completer) is still space;
2726 backslash (as yielded by tab completer) is still space;
2720 "%cd long\ name" works as expected.
2727 "%cd long\ name" works as expected.
2721
2728
2722 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2729 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2723 as "chain of command", with priority. API stays the same,
2730 as "chain of command", with priority. API stays the same,
2724 TryNext exception raised by a hook function signals that
2731 TryNext exception raised by a hook function signals that
2725 current hook failed and next hook should try handling it, as
2732 current hook failed and next hook should try handling it, as
2726 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2733 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2727 requested configurable display hook, which is now implemented.
2734 requested configurable display hook, which is now implemented.
2728
2735
2729 2006-01-13 Ville Vainio <vivainio@gmail.com>
2736 2006-01-13 Ville Vainio <vivainio@gmail.com>
2730
2737
2731 * IPython/platutils*.py: platform specific utility functions,
2738 * IPython/platutils*.py: platform specific utility functions,
2732 so far only set_term_title is implemented (change terminal
2739 so far only set_term_title is implemented (change terminal
2733 label in windowing systems). %cd now changes the title to
2740 label in windowing systems). %cd now changes the title to
2734 current dir.
2741 current dir.
2735
2742
2736 * IPython/Release.py: Added myself to "authors" list,
2743 * IPython/Release.py: Added myself to "authors" list,
2737 had to create new files.
2744 had to create new files.
2738
2745
2739 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2746 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2740 shell escape; not a known bug but had potential to be one in the
2747 shell escape; not a known bug but had potential to be one in the
2741 future.
2748 future.
2742
2749
2743 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2750 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2744 extension API for IPython! See the module for usage example. Fix
2751 extension API for IPython! See the module for usage example. Fix
2745 OInspect for docstring-less magic functions.
2752 OInspect for docstring-less magic functions.
2746
2753
2747
2754
2748 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2755 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2749
2756
2750 * IPython/iplib.py (raw_input): temporarily deactivate all
2757 * IPython/iplib.py (raw_input): temporarily deactivate all
2751 attempts at allowing pasting of code with autoindent on. It
2758 attempts at allowing pasting of code with autoindent on. It
2752 introduced bugs (reported by Prabhu) and I can't seem to find a
2759 introduced bugs (reported by Prabhu) and I can't seem to find a
2753 robust combination which works in all cases. Will have to revisit
2760 robust combination which works in all cases. Will have to revisit
2754 later.
2761 later.
2755
2762
2756 * IPython/genutils.py: remove isspace() function. We've dropped
2763 * IPython/genutils.py: remove isspace() function. We've dropped
2757 2.2 compatibility, so it's OK to use the string method.
2764 2.2 compatibility, so it's OK to use the string method.
2758
2765
2759 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2766 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2760
2767
2761 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2768 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2762 matching what NOT to autocall on, to include all python binary
2769 matching what NOT to autocall on, to include all python binary
2763 operators (including things like 'and', 'or', 'is' and 'in').
2770 operators (including things like 'and', 'or', 'is' and 'in').
2764 Prompted by a bug report on 'foo & bar', but I realized we had
2771 Prompted by a bug report on 'foo & bar', but I realized we had
2765 many more potential bug cases with other operators. The regexp is
2772 many more potential bug cases with other operators. The regexp is
2766 self.re_exclude_auto, it's fairly commented.
2773 self.re_exclude_auto, it's fairly commented.
2767
2774
2768 2006-01-12 Ville Vainio <vivainio@gmail.com>
2775 2006-01-12 Ville Vainio <vivainio@gmail.com>
2769
2776
2770 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2777 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2771 Prettified and hardened string/backslash quoting with ipsystem(),
2778 Prettified and hardened string/backslash quoting with ipsystem(),
2772 ipalias() and ipmagic(). Now even \ characters are passed to
2779 ipalias() and ipmagic(). Now even \ characters are passed to
2773 %magics, !shell escapes and aliases exactly as they are in the
2780 %magics, !shell escapes and aliases exactly as they are in the
2774 ipython command line. Should improve backslash experience,
2781 ipython command line. Should improve backslash experience,
2775 particularly in Windows (path delimiter for some commands that
2782 particularly in Windows (path delimiter for some commands that
2776 won't understand '/'), but Unix benefits as well (regexps). %cd
2783 won't understand '/'), but Unix benefits as well (regexps). %cd
2777 magic still doesn't support backslash path delimiters, though. Also
2784 magic still doesn't support backslash path delimiters, though. Also
2778 deleted all pretense of supporting multiline command strings in
2785 deleted all pretense of supporting multiline command strings in
2779 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2786 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2780
2787
2781 * doc/build_doc_instructions.txt added. Documentation on how to
2788 * doc/build_doc_instructions.txt added. Documentation on how to
2782 use doc/update_manual.py, added yesterday. Both files contributed
2789 use doc/update_manual.py, added yesterday. Both files contributed
2783 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2790 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2784 doc/*.sh for deprecation at a later date.
2791 doc/*.sh for deprecation at a later date.
2785
2792
2786 * /ipython.py Added ipython.py to root directory for
2793 * /ipython.py Added ipython.py to root directory for
2787 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2794 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2788 ipython.py) and development convenience (no need to keep doing
2795 ipython.py) and development convenience (no need to keep doing
2789 "setup.py install" between changes).
2796 "setup.py install" between changes).
2790
2797
2791 * Made ! and !! shell escapes work (again) in multiline expressions:
2798 * Made ! and !! shell escapes work (again) in multiline expressions:
2792 if 1:
2799 if 1:
2793 !ls
2800 !ls
2794 !!ls
2801 !!ls
2795
2802
2796 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2803 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2797
2804
2798 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2805 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2799 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2806 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2800 module in case-insensitive installation. Was causing crashes
2807 module in case-insensitive installation. Was causing crashes
2801 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2808 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2802
2809
2803 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2810 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2804 <marienz-AT-gentoo.org>, closes
2811 <marienz-AT-gentoo.org>, closes
2805 http://www.scipy.net/roundup/ipython/issue51.
2812 http://www.scipy.net/roundup/ipython/issue51.
2806
2813
2807 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2814 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2808
2815
2809 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2816 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2810 problem of excessive CPU usage under *nix and keyboard lag under
2817 problem of excessive CPU usage under *nix and keyboard lag under
2811 win32.
2818 win32.
2812
2819
2813 2006-01-10 *** Released version 0.7.0
2820 2006-01-10 *** Released version 0.7.0
2814
2821
2815 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2822 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2816
2823
2817 * IPython/Release.py (revision): tag version number to 0.7.0,
2824 * IPython/Release.py (revision): tag version number to 0.7.0,
2818 ready for release.
2825 ready for release.
2819
2826
2820 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2827 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2821 it informs the user of the name of the temp. file used. This can
2828 it informs the user of the name of the temp. file used. This can
2822 help if you decide later to reuse that same file, so you know
2829 help if you decide later to reuse that same file, so you know
2823 where to copy the info from.
2830 where to copy the info from.
2824
2831
2825 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2832 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2826
2833
2827 * setup_bdist_egg.py: little script to build an egg. Added
2834 * setup_bdist_egg.py: little script to build an egg. Added
2828 support in the release tools as well.
2835 support in the release tools as well.
2829
2836
2830 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2837 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2831
2838
2832 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2839 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2833 version selection (new -wxversion command line and ipythonrc
2840 version selection (new -wxversion command line and ipythonrc
2834 parameter). Patch contributed by Arnd Baecker
2841 parameter). Patch contributed by Arnd Baecker
2835 <arnd.baecker-AT-web.de>.
2842 <arnd.baecker-AT-web.de>.
2836
2843
2837 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2844 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2838 embedded instances, for variables defined at the interactive
2845 embedded instances, for variables defined at the interactive
2839 prompt of the embedded ipython. Reported by Arnd.
2846 prompt of the embedded ipython. Reported by Arnd.
2840
2847
2841 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2848 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2842 it can be used as a (stateful) toggle, or with a direct parameter.
2849 it can be used as a (stateful) toggle, or with a direct parameter.
2843
2850
2844 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2851 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2845 could be triggered in certain cases and cause the traceback
2852 could be triggered in certain cases and cause the traceback
2846 printer not to work.
2853 printer not to work.
2847
2854
2848 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2855 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2849
2856
2850 * IPython/iplib.py (_should_recompile): Small fix, closes
2857 * IPython/iplib.py (_should_recompile): Small fix, closes
2851 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2858 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2852
2859
2853 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2860 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2854
2861
2855 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2862 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2856 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2863 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2857 Moad for help with tracking it down.
2864 Moad for help with tracking it down.
2858
2865
2859 * IPython/iplib.py (handle_auto): fix autocall handling for
2866 * IPython/iplib.py (handle_auto): fix autocall handling for
2860 objects which support BOTH __getitem__ and __call__ (so that f [x]
2867 objects which support BOTH __getitem__ and __call__ (so that f [x]
2861 is left alone, instead of becoming f([x]) automatically).
2868 is left alone, instead of becoming f([x]) automatically).
2862
2869
2863 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2870 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2864 Ville's patch.
2871 Ville's patch.
2865
2872
2866 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2873 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2867
2874
2868 * IPython/iplib.py (handle_auto): changed autocall semantics to
2875 * IPython/iplib.py (handle_auto): changed autocall semantics to
2869 include 'smart' mode, where the autocall transformation is NOT
2876 include 'smart' mode, where the autocall transformation is NOT
2870 applied if there are no arguments on the line. This allows you to
2877 applied if there are no arguments on the line. This allows you to
2871 just type 'foo' if foo is a callable to see its internal form,
2878 just type 'foo' if foo is a callable to see its internal form,
2872 instead of having it called with no arguments (typically a
2879 instead of having it called with no arguments (typically a
2873 mistake). The old 'full' autocall still exists: for that, you
2880 mistake). The old 'full' autocall still exists: for that, you
2874 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2881 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2875
2882
2876 * IPython/completer.py (Completer.attr_matches): add
2883 * IPython/completer.py (Completer.attr_matches): add
2877 tab-completion support for Enthoughts' traits. After a report by
2884 tab-completion support for Enthoughts' traits. After a report by
2878 Arnd and a patch by Prabhu.
2885 Arnd and a patch by Prabhu.
2879
2886
2880 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2887 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2881
2888
2882 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2889 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2883 Schmolck's patch to fix inspect.getinnerframes().
2890 Schmolck's patch to fix inspect.getinnerframes().
2884
2891
2885 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2892 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2886 for embedded instances, regarding handling of namespaces and items
2893 for embedded instances, regarding handling of namespaces and items
2887 added to the __builtin__ one. Multiple embedded instances and
2894 added to the __builtin__ one. Multiple embedded instances and
2888 recursive embeddings should work better now (though I'm not sure
2895 recursive embeddings should work better now (though I'm not sure
2889 I've got all the corner cases fixed, that code is a bit of a brain
2896 I've got all the corner cases fixed, that code is a bit of a brain
2890 twister).
2897 twister).
2891
2898
2892 * IPython/Magic.py (magic_edit): added support to edit in-memory
2899 * IPython/Magic.py (magic_edit): added support to edit in-memory
2893 macros (automatically creates the necessary temp files). %edit
2900 macros (automatically creates the necessary temp files). %edit
2894 also doesn't return the file contents anymore, it's just noise.
2901 also doesn't return the file contents anymore, it's just noise.
2895
2902
2896 * IPython/completer.py (Completer.attr_matches): revert change to
2903 * IPython/completer.py (Completer.attr_matches): revert change to
2897 complete only on attributes listed in __all__. I realized it
2904 complete only on attributes listed in __all__. I realized it
2898 cripples the tab-completion system as a tool for exploring the
2905 cripples the tab-completion system as a tool for exploring the
2899 internals of unknown libraries (it renders any non-__all__
2906 internals of unknown libraries (it renders any non-__all__
2900 attribute off-limits). I got bit by this when trying to see
2907 attribute off-limits). I got bit by this when trying to see
2901 something inside the dis module.
2908 something inside the dis module.
2902
2909
2903 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2910 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2904
2911
2905 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2912 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2906 namespace for users and extension writers to hold data in. This
2913 namespace for users and extension writers to hold data in. This
2907 follows the discussion in
2914 follows the discussion in
2908 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2915 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2909
2916
2910 * IPython/completer.py (IPCompleter.complete): small patch to help
2917 * IPython/completer.py (IPCompleter.complete): small patch to help
2911 tab-completion under Emacs, after a suggestion by John Barnard
2918 tab-completion under Emacs, after a suggestion by John Barnard
2912 <barnarj-AT-ccf.org>.
2919 <barnarj-AT-ccf.org>.
2913
2920
2914 * IPython/Magic.py (Magic.extract_input_slices): added support for
2921 * IPython/Magic.py (Magic.extract_input_slices): added support for
2915 the slice notation in magics to use N-M to represent numbers N...M
2922 the slice notation in magics to use N-M to represent numbers N...M
2916 (closed endpoints). This is used by %macro and %save.
2923 (closed endpoints). This is used by %macro and %save.
2917
2924
2918 * IPython/completer.py (Completer.attr_matches): for modules which
2925 * IPython/completer.py (Completer.attr_matches): for modules which
2919 define __all__, complete only on those. After a patch by Jeffrey
2926 define __all__, complete only on those. After a patch by Jeffrey
2920 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2927 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2921 speed up this routine.
2928 speed up this routine.
2922
2929
2923 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2930 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2924 don't know if this is the end of it, but the behavior now is
2931 don't know if this is the end of it, but the behavior now is
2925 certainly much more correct. Note that coupled with macros,
2932 certainly much more correct. Note that coupled with macros,
2926 slightly surprising (at first) behavior may occur: a macro will in
2933 slightly surprising (at first) behavior may occur: a macro will in
2927 general expand to multiple lines of input, so upon exiting, the
2934 general expand to multiple lines of input, so upon exiting, the
2928 in/out counters will both be bumped by the corresponding amount
2935 in/out counters will both be bumped by the corresponding amount
2929 (as if the macro's contents had been typed interactively). Typing
2936 (as if the macro's contents had been typed interactively). Typing
2930 %hist will reveal the intermediate (silently processed) lines.
2937 %hist will reveal the intermediate (silently processed) lines.
2931
2938
2932 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2939 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2933 pickle to fail (%run was overwriting __main__ and not restoring
2940 pickle to fail (%run was overwriting __main__ and not restoring
2934 it, but pickle relies on __main__ to operate).
2941 it, but pickle relies on __main__ to operate).
2935
2942
2936 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2943 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2937 using properties, but forgot to make the main InteractiveShell
2944 using properties, but forgot to make the main InteractiveShell
2938 class a new-style class. Properties fail silently, and
2945 class a new-style class. Properties fail silently, and
2939 mysteriously, with old-style class (getters work, but
2946 mysteriously, with old-style class (getters work, but
2940 setters don't do anything).
2947 setters don't do anything).
2941
2948
2942 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2949 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2943
2950
2944 * IPython/Magic.py (magic_history): fix history reporting bug (I
2951 * IPython/Magic.py (magic_history): fix history reporting bug (I
2945 know some nasties are still there, I just can't seem to find a
2952 know some nasties are still there, I just can't seem to find a
2946 reproducible test case to track them down; the input history is
2953 reproducible test case to track them down; the input history is
2947 falling out of sync...)
2954 falling out of sync...)
2948
2955
2949 * IPython/iplib.py (handle_shell_escape): fix bug where both
2956 * IPython/iplib.py (handle_shell_escape): fix bug where both
2950 aliases and system accesses where broken for indented code (such
2957 aliases and system accesses where broken for indented code (such
2951 as loops).
2958 as loops).
2952
2959
2953 * IPython/genutils.py (shell): fix small but critical bug for
2960 * IPython/genutils.py (shell): fix small but critical bug for
2954 win32 system access.
2961 win32 system access.
2955
2962
2956 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2963 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2957
2964
2958 * IPython/iplib.py (showtraceback): remove use of the
2965 * IPython/iplib.py (showtraceback): remove use of the
2959 sys.last_{type/value/traceback} structures, which are non
2966 sys.last_{type/value/traceback} structures, which are non
2960 thread-safe.
2967 thread-safe.
2961 (_prefilter): change control flow to ensure that we NEVER
2968 (_prefilter): change control flow to ensure that we NEVER
2962 introspect objects when autocall is off. This will guarantee that
2969 introspect objects when autocall is off. This will guarantee that
2963 having an input line of the form 'x.y', where access to attribute
2970 having an input line of the form 'x.y', where access to attribute
2964 'y' has side effects, doesn't trigger the side effect TWICE. It
2971 'y' has side effects, doesn't trigger the side effect TWICE. It
2965 is important to note that, with autocall on, these side effects
2972 is important to note that, with autocall on, these side effects
2966 can still happen.
2973 can still happen.
2967 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2974 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2968 trio. IPython offers these three kinds of special calls which are
2975 trio. IPython offers these three kinds of special calls which are
2969 not python code, and it's a good thing to have their call method
2976 not python code, and it's a good thing to have their call method
2970 be accessible as pure python functions (not just special syntax at
2977 be accessible as pure python functions (not just special syntax at
2971 the command line). It gives us a better internal implementation
2978 the command line). It gives us a better internal implementation
2972 structure, as well as exposing these for user scripting more
2979 structure, as well as exposing these for user scripting more
2973 cleanly.
2980 cleanly.
2974
2981
2975 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2982 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2976 file. Now that they'll be more likely to be used with the
2983 file. Now that they'll be more likely to be used with the
2977 persistance system (%store), I want to make sure their module path
2984 persistance system (%store), I want to make sure their module path
2978 doesn't change in the future, so that we don't break things for
2985 doesn't change in the future, so that we don't break things for
2979 users' persisted data.
2986 users' persisted data.
2980
2987
2981 * IPython/iplib.py (autoindent_update): move indentation
2988 * IPython/iplib.py (autoindent_update): move indentation
2982 management into the _text_ processing loop, not the keyboard
2989 management into the _text_ processing loop, not the keyboard
2983 interactive one. This is necessary to correctly process non-typed
2990 interactive one. This is necessary to correctly process non-typed
2984 multiline input (such as macros).
2991 multiline input (such as macros).
2985
2992
2986 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2993 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2987 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2994 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2988 which was producing problems in the resulting manual.
2995 which was producing problems in the resulting manual.
2989 (magic_whos): improve reporting of instances (show their class,
2996 (magic_whos): improve reporting of instances (show their class,
2990 instead of simply printing 'instance' which isn't terribly
2997 instead of simply printing 'instance' which isn't terribly
2991 informative).
2998 informative).
2992
2999
2993 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3000 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2994 (minor mods) to support network shares under win32.
3001 (minor mods) to support network shares under win32.
2995
3002
2996 * IPython/winconsole.py (get_console_size): add new winconsole
3003 * IPython/winconsole.py (get_console_size): add new winconsole
2997 module and fixes to page_dumb() to improve its behavior under
3004 module and fixes to page_dumb() to improve its behavior under
2998 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3005 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2999
3006
3000 * IPython/Magic.py (Macro): simplified Macro class to just
3007 * IPython/Magic.py (Macro): simplified Macro class to just
3001 subclass list. We've had only 2.2 compatibility for a very long
3008 subclass list. We've had only 2.2 compatibility for a very long
3002 time, yet I was still avoiding subclassing the builtin types. No
3009 time, yet I was still avoiding subclassing the builtin types. No
3003 more (I'm also starting to use properties, though I won't shift to
3010 more (I'm also starting to use properties, though I won't shift to
3004 2.3-specific features quite yet).
3011 2.3-specific features quite yet).
3005 (magic_store): added Ville's patch for lightweight variable
3012 (magic_store): added Ville's patch for lightweight variable
3006 persistence, after a request on the user list by Matt Wilkie
3013 persistence, after a request on the user list by Matt Wilkie
3007 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3014 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3008 details.
3015 details.
3009
3016
3010 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3017 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3011 changed the default logfile name from 'ipython.log' to
3018 changed the default logfile name from 'ipython.log' to
3012 'ipython_log.py'. These logs are real python files, and now that
3019 'ipython_log.py'. These logs are real python files, and now that
3013 we have much better multiline support, people are more likely to
3020 we have much better multiline support, people are more likely to
3014 want to use them as such. Might as well name them correctly.
3021 want to use them as such. Might as well name them correctly.
3015
3022
3016 * IPython/Magic.py: substantial cleanup. While we can't stop
3023 * IPython/Magic.py: substantial cleanup. While we can't stop
3017 using magics as mixins, due to the existing customizations 'out
3024 using magics as mixins, due to the existing customizations 'out
3018 there' which rely on the mixin naming conventions, at least I
3025 there' which rely on the mixin naming conventions, at least I
3019 cleaned out all cross-class name usage. So once we are OK with
3026 cleaned out all cross-class name usage. So once we are OK with
3020 breaking compatibility, the two systems can be separated.
3027 breaking compatibility, the two systems can be separated.
3021
3028
3022 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3029 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3023 anymore, and the class is a fair bit less hideous as well. New
3030 anymore, and the class is a fair bit less hideous as well. New
3024 features were also introduced: timestamping of input, and logging
3031 features were also introduced: timestamping of input, and logging
3025 of output results. These are user-visible with the -t and -o
3032 of output results. These are user-visible with the -t and -o
3026 options to %logstart. Closes
3033 options to %logstart. Closes
3027 http://www.scipy.net/roundup/ipython/issue11 and a request by
3034 http://www.scipy.net/roundup/ipython/issue11 and a request by
3028 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3035 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3029
3036
3030 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3037 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3031
3038
3032 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3039 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3033 better handle backslashes in paths. See the thread 'More Windows
3040 better handle backslashes in paths. See the thread 'More Windows
3034 questions part 2 - \/ characters revisited' on the iypthon user
3041 questions part 2 - \/ characters revisited' on the iypthon user
3035 list:
3042 list:
3036 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3043 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3037
3044
3038 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3045 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3039
3046
3040 (InteractiveShell.__init__): change threaded shells to not use the
3047 (InteractiveShell.__init__): change threaded shells to not use the
3041 ipython crash handler. This was causing more problems than not,
3048 ipython crash handler. This was causing more problems than not,
3042 as exceptions in the main thread (GUI code, typically) would
3049 as exceptions in the main thread (GUI code, typically) would
3043 always show up as a 'crash', when they really weren't.
3050 always show up as a 'crash', when they really weren't.
3044
3051
3045 The colors and exception mode commands (%colors/%xmode) have been
3052 The colors and exception mode commands (%colors/%xmode) have been
3046 synchronized to also take this into account, so users can get
3053 synchronized to also take this into account, so users can get
3047 verbose exceptions for their threaded code as well. I also added
3054 verbose exceptions for their threaded code as well. I also added
3048 support for activating pdb inside this exception handler as well,
3055 support for activating pdb inside this exception handler as well,
3049 so now GUI authors can use IPython's enhanced pdb at runtime.
3056 so now GUI authors can use IPython's enhanced pdb at runtime.
3050
3057
3051 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3058 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3052 true by default, and add it to the shipped ipythonrc file. Since
3059 true by default, and add it to the shipped ipythonrc file. Since
3053 this asks the user before proceeding, I think it's OK to make it
3060 this asks the user before proceeding, I think it's OK to make it
3054 true by default.
3061 true by default.
3055
3062
3056 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3063 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3057 of the previous special-casing of input in the eval loop. I think
3064 of the previous special-casing of input in the eval loop. I think
3058 this is cleaner, as they really are commands and shouldn't have
3065 this is cleaner, as they really are commands and shouldn't have
3059 a special role in the middle of the core code.
3066 a special role in the middle of the core code.
3060
3067
3061 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3068 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3062
3069
3063 * IPython/iplib.py (edit_syntax_error): added support for
3070 * IPython/iplib.py (edit_syntax_error): added support for
3064 automatically reopening the editor if the file had a syntax error
3071 automatically reopening the editor if the file had a syntax error
3065 in it. Thanks to scottt who provided the patch at:
3072 in it. Thanks to scottt who provided the patch at:
3066 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3073 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3067 version committed).
3074 version committed).
3068
3075
3069 * IPython/iplib.py (handle_normal): add suport for multi-line
3076 * IPython/iplib.py (handle_normal): add suport for multi-line
3070 input with emtpy lines. This fixes
3077 input with emtpy lines. This fixes
3071 http://www.scipy.net/roundup/ipython/issue43 and a similar
3078 http://www.scipy.net/roundup/ipython/issue43 and a similar
3072 discussion on the user list.
3079 discussion on the user list.
3073
3080
3074 WARNING: a behavior change is necessarily introduced to support
3081 WARNING: a behavior change is necessarily introduced to support
3075 blank lines: now a single blank line with whitespace does NOT
3082 blank lines: now a single blank line with whitespace does NOT
3076 break the input loop, which means that when autoindent is on, by
3083 break the input loop, which means that when autoindent is on, by
3077 default hitting return on the next (indented) line does NOT exit.
3084 default hitting return on the next (indented) line does NOT exit.
3078
3085
3079 Instead, to exit a multiline input you can either have:
3086 Instead, to exit a multiline input you can either have:
3080
3087
3081 - TWO whitespace lines (just hit return again), or
3088 - TWO whitespace lines (just hit return again), or
3082 - a single whitespace line of a different length than provided
3089 - a single whitespace line of a different length than provided
3083 by the autoindent (add or remove a space).
3090 by the autoindent (add or remove a space).
3084
3091
3085 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3092 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3086 module to better organize all readline-related functionality.
3093 module to better organize all readline-related functionality.
3087 I've deleted FlexCompleter and put all completion clases here.
3094 I've deleted FlexCompleter and put all completion clases here.
3088
3095
3089 * IPython/iplib.py (raw_input): improve indentation management.
3096 * IPython/iplib.py (raw_input): improve indentation management.
3090 It is now possible to paste indented code with autoindent on, and
3097 It is now possible to paste indented code with autoindent on, and
3091 the code is interpreted correctly (though it still looks bad on
3098 the code is interpreted correctly (though it still looks bad on
3092 screen, due to the line-oriented nature of ipython).
3099 screen, due to the line-oriented nature of ipython).
3093 (MagicCompleter.complete): change behavior so that a TAB key on an
3100 (MagicCompleter.complete): change behavior so that a TAB key on an
3094 otherwise empty line actually inserts a tab, instead of completing
3101 otherwise empty line actually inserts a tab, instead of completing
3095 on the entire global namespace. This makes it easier to use the
3102 on the entire global namespace. This makes it easier to use the
3096 TAB key for indentation. After a request by Hans Meine
3103 TAB key for indentation. After a request by Hans Meine
3097 <hans_meine-AT-gmx.net>
3104 <hans_meine-AT-gmx.net>
3098 (_prefilter): add support so that typing plain 'exit' or 'quit'
3105 (_prefilter): add support so that typing plain 'exit' or 'quit'
3099 does a sensible thing. Originally I tried to deviate as little as
3106 does a sensible thing. Originally I tried to deviate as little as
3100 possible from the default python behavior, but even that one may
3107 possible from the default python behavior, but even that one may
3101 change in this direction (thread on python-dev to that effect).
3108 change in this direction (thread on python-dev to that effect).
3102 Regardless, ipython should do the right thing even if CPython's
3109 Regardless, ipython should do the right thing even if CPython's
3103 '>>>' prompt doesn't.
3110 '>>>' prompt doesn't.
3104 (InteractiveShell): removed subclassing code.InteractiveConsole
3111 (InteractiveShell): removed subclassing code.InteractiveConsole
3105 class. By now we'd overridden just about all of its methods: I've
3112 class. By now we'd overridden just about all of its methods: I've
3106 copied the remaining two over, and now ipython is a standalone
3113 copied the remaining two over, and now ipython is a standalone
3107 class. This will provide a clearer picture for the chainsaw
3114 class. This will provide a clearer picture for the chainsaw
3108 branch refactoring.
3115 branch refactoring.
3109
3116
3110 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3117 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3111
3118
3112 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3119 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3113 failures for objects which break when dir() is called on them.
3120 failures for objects which break when dir() is called on them.
3114
3121
3115 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3122 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3116 distinct local and global namespaces in the completer API. This
3123 distinct local and global namespaces in the completer API. This
3117 change allows us to properly handle completion with distinct
3124 change allows us to properly handle completion with distinct
3118 scopes, including in embedded instances (this had never really
3125 scopes, including in embedded instances (this had never really
3119 worked correctly).
3126 worked correctly).
3120
3127
3121 Note: this introduces a change in the constructor for
3128 Note: this introduces a change in the constructor for
3122 MagicCompleter, as a new global_namespace parameter is now the
3129 MagicCompleter, as a new global_namespace parameter is now the
3123 second argument (the others were bumped one position).
3130 second argument (the others were bumped one position).
3124
3131
3125 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3132 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3126
3133
3127 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3134 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3128 embedded instances (which can be done now thanks to Vivian's
3135 embedded instances (which can be done now thanks to Vivian's
3129 frame-handling fixes for pdb).
3136 frame-handling fixes for pdb).
3130 (InteractiveShell.__init__): Fix namespace handling problem in
3137 (InteractiveShell.__init__): Fix namespace handling problem in
3131 embedded instances. We were overwriting __main__ unconditionally,
3138 embedded instances. We were overwriting __main__ unconditionally,
3132 and this should only be done for 'full' (non-embedded) IPython;
3139 and this should only be done for 'full' (non-embedded) IPython;
3133 embedded instances must respect the caller's __main__. Thanks to
3140 embedded instances must respect the caller's __main__. Thanks to
3134 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3141 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3135
3142
3136 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3143 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3137
3144
3138 * setup.py: added download_url to setup(). This registers the
3145 * setup.py: added download_url to setup(). This registers the
3139 download address at PyPI, which is not only useful to humans
3146 download address at PyPI, which is not only useful to humans
3140 browsing the site, but is also picked up by setuptools (the Eggs
3147 browsing the site, but is also picked up by setuptools (the Eggs
3141 machinery). Thanks to Ville and R. Kern for the info/discussion
3148 machinery). Thanks to Ville and R. Kern for the info/discussion
3142 on this.
3149 on this.
3143
3150
3144 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3151 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3145
3152
3146 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3153 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3147 This brings a lot of nice functionality to the pdb mode, which now
3154 This brings a lot of nice functionality to the pdb mode, which now
3148 has tab-completion, syntax highlighting, and better stack handling
3155 has tab-completion, syntax highlighting, and better stack handling
3149 than before. Many thanks to Vivian De Smedt
3156 than before. Many thanks to Vivian De Smedt
3150 <vivian-AT-vdesmedt.com> for the original patches.
3157 <vivian-AT-vdesmedt.com> for the original patches.
3151
3158
3152 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3159 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3153
3160
3154 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3161 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3155 sequence to consistently accept the banner argument. The
3162 sequence to consistently accept the banner argument. The
3156 inconsistency was tripping SAGE, thanks to Gary Zablackis
3163 inconsistency was tripping SAGE, thanks to Gary Zablackis
3157 <gzabl-AT-yahoo.com> for the report.
3164 <gzabl-AT-yahoo.com> for the report.
3158
3165
3159 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3166 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3160
3167
3161 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3168 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3162 Fix bug where a naked 'alias' call in the ipythonrc file would
3169 Fix bug where a naked 'alias' call in the ipythonrc file would
3163 cause a crash. Bug reported by Jorgen Stenarson.
3170 cause a crash. Bug reported by Jorgen Stenarson.
3164
3171
3165 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3172 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3166
3173
3167 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3174 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3168 startup time.
3175 startup time.
3169
3176
3170 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3177 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3171 instances had introduced a bug with globals in normal code. Now
3178 instances had introduced a bug with globals in normal code. Now
3172 it's working in all cases.
3179 it's working in all cases.
3173
3180
3174 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3181 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3175 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3182 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3176 has been introduced to set the default case sensitivity of the
3183 has been introduced to set the default case sensitivity of the
3177 searches. Users can still select either mode at runtime on a
3184 searches. Users can still select either mode at runtime on a
3178 per-search basis.
3185 per-search basis.
3179
3186
3180 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3187 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3181
3188
3182 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3189 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3183 attributes in wildcard searches for subclasses. Modified version
3190 attributes in wildcard searches for subclasses. Modified version
3184 of a patch by Jorgen.
3191 of a patch by Jorgen.
3185
3192
3186 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3193 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3187
3194
3188 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3195 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3189 embedded instances. I added a user_global_ns attribute to the
3196 embedded instances. I added a user_global_ns attribute to the
3190 InteractiveShell class to handle this.
3197 InteractiveShell class to handle this.
3191
3198
3192 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3199 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3193
3200
3194 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3201 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3195 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3202 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3196 (reported under win32, but may happen also in other platforms).
3203 (reported under win32, but may happen also in other platforms).
3197 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3204 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3198
3205
3199 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3206 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3200
3207
3201 * IPython/Magic.py (magic_psearch): new support for wildcard
3208 * IPython/Magic.py (magic_psearch): new support for wildcard
3202 patterns. Now, typing ?a*b will list all names which begin with a
3209 patterns. Now, typing ?a*b will list all names which begin with a
3203 and end in b, for example. The %psearch magic has full
3210 and end in b, for example. The %psearch magic has full
3204 docstrings. Many thanks to JΓΆrgen Stenarson
3211 docstrings. Many thanks to JΓΆrgen Stenarson
3205 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3212 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3206 implementing this functionality.
3213 implementing this functionality.
3207
3214
3208 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3215 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3209
3216
3210 * Manual: fixed long-standing annoyance of double-dashes (as in
3217 * Manual: fixed long-standing annoyance of double-dashes (as in
3211 --prefix=~, for example) being stripped in the HTML version. This
3218 --prefix=~, for example) being stripped in the HTML version. This
3212 is a latex2html bug, but a workaround was provided. Many thanks
3219 is a latex2html bug, but a workaround was provided. Many thanks
3213 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3220 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3214 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3221 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3215 rolling. This seemingly small issue had tripped a number of users
3222 rolling. This seemingly small issue had tripped a number of users
3216 when first installing, so I'm glad to see it gone.
3223 when first installing, so I'm glad to see it gone.
3217
3224
3218 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3225 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3219
3226
3220 * IPython/Extensions/numeric_formats.py: fix missing import,
3227 * IPython/Extensions/numeric_formats.py: fix missing import,
3221 reported by Stephen Walton.
3228 reported by Stephen Walton.
3222
3229
3223 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3230 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3224
3231
3225 * IPython/demo.py: finish demo module, fully documented now.
3232 * IPython/demo.py: finish demo module, fully documented now.
3226
3233
3227 * IPython/genutils.py (file_read): simple little utility to read a
3234 * IPython/genutils.py (file_read): simple little utility to read a
3228 file and ensure it's closed afterwards.
3235 file and ensure it's closed afterwards.
3229
3236
3230 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3237 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3231
3238
3232 * IPython/demo.py (Demo.__init__): added support for individually
3239 * IPython/demo.py (Demo.__init__): added support for individually
3233 tagging blocks for automatic execution.
3240 tagging blocks for automatic execution.
3234
3241
3235 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3242 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3236 syntax-highlighted python sources, requested by John.
3243 syntax-highlighted python sources, requested by John.
3237
3244
3238 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3245 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3239
3246
3240 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3247 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3241 finishing.
3248 finishing.
3242
3249
3243 * IPython/genutils.py (shlex_split): moved from Magic to here,
3250 * IPython/genutils.py (shlex_split): moved from Magic to here,
3244 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3251 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3245
3252
3246 * IPython/demo.py (Demo.__init__): added support for silent
3253 * IPython/demo.py (Demo.__init__): added support for silent
3247 blocks, improved marks as regexps, docstrings written.
3254 blocks, improved marks as regexps, docstrings written.
3248 (Demo.__init__): better docstring, added support for sys.argv.
3255 (Demo.__init__): better docstring, added support for sys.argv.
3249
3256
3250 * IPython/genutils.py (marquee): little utility used by the demo
3257 * IPython/genutils.py (marquee): little utility used by the demo
3251 code, handy in general.
3258 code, handy in general.
3252
3259
3253 * IPython/demo.py (Demo.__init__): new class for interactive
3260 * IPython/demo.py (Demo.__init__): new class for interactive
3254 demos. Not documented yet, I just wrote it in a hurry for
3261 demos. Not documented yet, I just wrote it in a hurry for
3255 scipy'05. Will docstring later.
3262 scipy'05. Will docstring later.
3256
3263
3257 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3264 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3258
3265
3259 * IPython/Shell.py (sigint_handler): Drastic simplification which
3266 * IPython/Shell.py (sigint_handler): Drastic simplification which
3260 also seems to make Ctrl-C work correctly across threads! This is
3267 also seems to make Ctrl-C work correctly across threads! This is
3261 so simple, that I can't beleive I'd missed it before. Needs more
3268 so simple, that I can't beleive I'd missed it before. Needs more
3262 testing, though.
3269 testing, though.
3263 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3270 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3264 like this before...
3271 like this before...
3265
3272
3266 * IPython/genutils.py (get_home_dir): add protection against
3273 * IPython/genutils.py (get_home_dir): add protection against
3267 non-dirs in win32 registry.
3274 non-dirs in win32 registry.
3268
3275
3269 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3276 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3270 bug where dict was mutated while iterating (pysh crash).
3277 bug where dict was mutated while iterating (pysh crash).
3271
3278
3272 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3279 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3273
3280
3274 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3281 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3275 spurious newlines added by this routine. After a report by
3282 spurious newlines added by this routine. After a report by
3276 F. Mantegazza.
3283 F. Mantegazza.
3277
3284
3278 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3285 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3279
3286
3280 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3287 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3281 calls. These were a leftover from the GTK 1.x days, and can cause
3288 calls. These were a leftover from the GTK 1.x days, and can cause
3282 problems in certain cases (after a report by John Hunter).
3289 problems in certain cases (after a report by John Hunter).
3283
3290
3284 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3291 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3285 os.getcwd() fails at init time. Thanks to patch from David Remahl
3292 os.getcwd() fails at init time. Thanks to patch from David Remahl
3286 <chmod007-AT-mac.com>.
3293 <chmod007-AT-mac.com>.
3287 (InteractiveShell.__init__): prevent certain special magics from
3294 (InteractiveShell.__init__): prevent certain special magics from
3288 being shadowed by aliases. Closes
3295 being shadowed by aliases. Closes
3289 http://www.scipy.net/roundup/ipython/issue41.
3296 http://www.scipy.net/roundup/ipython/issue41.
3290
3297
3291 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3298 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3292
3299
3293 * IPython/iplib.py (InteractiveShell.complete): Added new
3300 * IPython/iplib.py (InteractiveShell.complete): Added new
3294 top-level completion method to expose the completion mechanism
3301 top-level completion method to expose the completion mechanism
3295 beyond readline-based environments.
3302 beyond readline-based environments.
3296
3303
3297 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3304 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3298
3305
3299 * tools/ipsvnc (svnversion): fix svnversion capture.
3306 * tools/ipsvnc (svnversion): fix svnversion capture.
3300
3307
3301 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3308 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3302 attribute to self, which was missing. Before, it was set by a
3309 attribute to self, which was missing. Before, it was set by a
3303 routine which in certain cases wasn't being called, so the
3310 routine which in certain cases wasn't being called, so the
3304 instance could end up missing the attribute. This caused a crash.
3311 instance could end up missing the attribute. This caused a crash.
3305 Closes http://www.scipy.net/roundup/ipython/issue40.
3312 Closes http://www.scipy.net/roundup/ipython/issue40.
3306
3313
3307 2005-08-16 Fernando Perez <fperez@colorado.edu>
3314 2005-08-16 Fernando Perez <fperez@colorado.edu>
3308
3315
3309 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3316 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3310 contains non-string attribute. Closes
3317 contains non-string attribute. Closes
3311 http://www.scipy.net/roundup/ipython/issue38.
3318 http://www.scipy.net/roundup/ipython/issue38.
3312
3319
3313 2005-08-14 Fernando Perez <fperez@colorado.edu>
3320 2005-08-14 Fernando Perez <fperez@colorado.edu>
3314
3321
3315 * tools/ipsvnc: Minor improvements, to add changeset info.
3322 * tools/ipsvnc: Minor improvements, to add changeset info.
3316
3323
3317 2005-08-12 Fernando Perez <fperez@colorado.edu>
3324 2005-08-12 Fernando Perez <fperez@colorado.edu>
3318
3325
3319 * IPython/iplib.py (runsource): remove self.code_to_run_src
3326 * IPython/iplib.py (runsource): remove self.code_to_run_src
3320 attribute. I realized this is nothing more than
3327 attribute. I realized this is nothing more than
3321 '\n'.join(self.buffer), and having the same data in two different
3328 '\n'.join(self.buffer), and having the same data in two different
3322 places is just asking for synchronization bugs. This may impact
3329 places is just asking for synchronization bugs. This may impact
3323 people who have custom exception handlers, so I need to warn
3330 people who have custom exception handlers, so I need to warn
3324 ipython-dev about it (F. Mantegazza may use them).
3331 ipython-dev about it (F. Mantegazza may use them).
3325
3332
3326 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3333 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3327
3334
3328 * IPython/genutils.py: fix 2.2 compatibility (generators)
3335 * IPython/genutils.py: fix 2.2 compatibility (generators)
3329
3336
3330 2005-07-18 Fernando Perez <fperez@colorado.edu>
3337 2005-07-18 Fernando Perez <fperez@colorado.edu>
3331
3338
3332 * IPython/genutils.py (get_home_dir): fix to help users with
3339 * IPython/genutils.py (get_home_dir): fix to help users with
3333 invalid $HOME under win32.
3340 invalid $HOME under win32.
3334
3341
3335 2005-07-17 Fernando Perez <fperez@colorado.edu>
3342 2005-07-17 Fernando Perez <fperez@colorado.edu>
3336
3343
3337 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3344 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3338 some old hacks and clean up a bit other routines; code should be
3345 some old hacks and clean up a bit other routines; code should be
3339 simpler and a bit faster.
3346 simpler and a bit faster.
3340
3347
3341 * IPython/iplib.py (interact): removed some last-resort attempts
3348 * IPython/iplib.py (interact): removed some last-resort attempts
3342 to survive broken stdout/stderr. That code was only making it
3349 to survive broken stdout/stderr. That code was only making it
3343 harder to abstract out the i/o (necessary for gui integration),
3350 harder to abstract out the i/o (necessary for gui integration),
3344 and the crashes it could prevent were extremely rare in practice
3351 and the crashes it could prevent were extremely rare in practice
3345 (besides being fully user-induced in a pretty violent manner).
3352 (besides being fully user-induced in a pretty violent manner).
3346
3353
3347 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3354 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3348 Nothing major yet, but the code is simpler to read; this should
3355 Nothing major yet, but the code is simpler to read; this should
3349 make it easier to do more serious modifications in the future.
3356 make it easier to do more serious modifications in the future.
3350
3357
3351 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3358 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3352 which broke in .15 (thanks to a report by Ville).
3359 which broke in .15 (thanks to a report by Ville).
3353
3360
3354 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3361 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3355 be quite correct, I know next to nothing about unicode). This
3362 be quite correct, I know next to nothing about unicode). This
3356 will allow unicode strings to be used in prompts, amongst other
3363 will allow unicode strings to be used in prompts, amongst other
3357 cases. It also will prevent ipython from crashing when unicode
3364 cases. It also will prevent ipython from crashing when unicode
3358 shows up unexpectedly in many places. If ascii encoding fails, we
3365 shows up unexpectedly in many places. If ascii encoding fails, we
3359 assume utf_8. Currently the encoding is not a user-visible
3366 assume utf_8. Currently the encoding is not a user-visible
3360 setting, though it could be made so if there is demand for it.
3367 setting, though it could be made so if there is demand for it.
3361
3368
3362 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3369 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3363
3370
3364 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3371 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3365
3372
3366 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3373 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3367
3374
3368 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3375 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3369 code can work transparently for 2.2/2.3.
3376 code can work transparently for 2.2/2.3.
3370
3377
3371 2005-07-16 Fernando Perez <fperez@colorado.edu>
3378 2005-07-16 Fernando Perez <fperez@colorado.edu>
3372
3379
3373 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3380 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3374 out of the color scheme table used for coloring exception
3381 out of the color scheme table used for coloring exception
3375 tracebacks. This allows user code to add new schemes at runtime.
3382 tracebacks. This allows user code to add new schemes at runtime.
3376 This is a minimally modified version of the patch at
3383 This is a minimally modified version of the patch at
3377 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3384 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3378 for the contribution.
3385 for the contribution.
3379
3386
3380 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3387 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3381 slightly modified version of the patch in
3388 slightly modified version of the patch in
3382 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3389 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3383 to remove the previous try/except solution (which was costlier).
3390 to remove the previous try/except solution (which was costlier).
3384 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3391 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3385
3392
3386 2005-06-08 Fernando Perez <fperez@colorado.edu>
3393 2005-06-08 Fernando Perez <fperez@colorado.edu>
3387
3394
3388 * IPython/iplib.py (write/write_err): Add methods to abstract all
3395 * IPython/iplib.py (write/write_err): Add methods to abstract all
3389 I/O a bit more.
3396 I/O a bit more.
3390
3397
3391 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3398 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3392 warning, reported by Aric Hagberg, fix by JD Hunter.
3399 warning, reported by Aric Hagberg, fix by JD Hunter.
3393
3400
3394 2005-06-02 *** Released version 0.6.15
3401 2005-06-02 *** Released version 0.6.15
3395
3402
3396 2005-06-01 Fernando Perez <fperez@colorado.edu>
3403 2005-06-01 Fernando Perez <fperez@colorado.edu>
3397
3404
3398 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3405 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3399 tab-completion of filenames within open-quoted strings. Note that
3406 tab-completion of filenames within open-quoted strings. Note that
3400 this requires that in ~/.ipython/ipythonrc, users change the
3407 this requires that in ~/.ipython/ipythonrc, users change the
3401 readline delimiters configuration to read:
3408 readline delimiters configuration to read:
3402
3409
3403 readline_remove_delims -/~
3410 readline_remove_delims -/~
3404
3411
3405
3412
3406 2005-05-31 *** Released version 0.6.14
3413 2005-05-31 *** Released version 0.6.14
3407
3414
3408 2005-05-29 Fernando Perez <fperez@colorado.edu>
3415 2005-05-29 Fernando Perez <fperez@colorado.edu>
3409
3416
3410 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3417 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3411 with files not on the filesystem. Reported by Eliyahu Sandler
3418 with files not on the filesystem. Reported by Eliyahu Sandler
3412 <eli@gondolin.net>
3419 <eli@gondolin.net>
3413
3420
3414 2005-05-22 Fernando Perez <fperez@colorado.edu>
3421 2005-05-22 Fernando Perez <fperez@colorado.edu>
3415
3422
3416 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3423 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3417 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3424 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3418
3425
3419 2005-05-19 Fernando Perez <fperez@colorado.edu>
3426 2005-05-19 Fernando Perez <fperez@colorado.edu>
3420
3427
3421 * IPython/iplib.py (safe_execfile): close a file which could be
3428 * IPython/iplib.py (safe_execfile): close a file which could be
3422 left open (causing problems in win32, which locks open files).
3429 left open (causing problems in win32, which locks open files).
3423 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3430 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3424
3431
3425 2005-05-18 Fernando Perez <fperez@colorado.edu>
3432 2005-05-18 Fernando Perez <fperez@colorado.edu>
3426
3433
3427 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3434 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3428 keyword arguments correctly to safe_execfile().
3435 keyword arguments correctly to safe_execfile().
3429
3436
3430 2005-05-13 Fernando Perez <fperez@colorado.edu>
3437 2005-05-13 Fernando Perez <fperez@colorado.edu>
3431
3438
3432 * ipython.1: Added info about Qt to manpage, and threads warning
3439 * ipython.1: Added info about Qt to manpage, and threads warning
3433 to usage page (invoked with --help).
3440 to usage page (invoked with --help).
3434
3441
3435 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3442 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3436 new matcher (it goes at the end of the priority list) to do
3443 new matcher (it goes at the end of the priority list) to do
3437 tab-completion on named function arguments. Submitted by George
3444 tab-completion on named function arguments. Submitted by George
3438 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3445 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3439 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3446 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3440 for more details.
3447 for more details.
3441
3448
3442 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3449 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3443 SystemExit exceptions in the script being run. Thanks to a report
3450 SystemExit exceptions in the script being run. Thanks to a report
3444 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3451 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3445 producing very annoying behavior when running unit tests.
3452 producing very annoying behavior when running unit tests.
3446
3453
3447 2005-05-12 Fernando Perez <fperez@colorado.edu>
3454 2005-05-12 Fernando Perez <fperez@colorado.edu>
3448
3455
3449 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3456 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3450 which I'd broken (again) due to a changed regexp. In the process,
3457 which I'd broken (again) due to a changed regexp. In the process,
3451 added ';' as an escape to auto-quote the whole line without
3458 added ';' as an escape to auto-quote the whole line without
3452 splitting its arguments. Thanks to a report by Jerry McRae
3459 splitting its arguments. Thanks to a report by Jerry McRae
3453 <qrs0xyc02-AT-sneakemail.com>.
3460 <qrs0xyc02-AT-sneakemail.com>.
3454
3461
3455 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3462 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3456 possible crashes caused by a TokenError. Reported by Ed Schofield
3463 possible crashes caused by a TokenError. Reported by Ed Schofield
3457 <schofield-AT-ftw.at>.
3464 <schofield-AT-ftw.at>.
3458
3465
3459 2005-05-06 Fernando Perez <fperez@colorado.edu>
3466 2005-05-06 Fernando Perez <fperez@colorado.edu>
3460
3467
3461 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3468 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3462
3469
3463 2005-04-29 Fernando Perez <fperez@colorado.edu>
3470 2005-04-29 Fernando Perez <fperez@colorado.edu>
3464
3471
3465 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3472 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3466 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3473 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3467 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3474 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3468 which provides support for Qt interactive usage (similar to the
3475 which provides support for Qt interactive usage (similar to the
3469 existing one for WX and GTK). This had been often requested.
3476 existing one for WX and GTK). This had been often requested.
3470
3477
3471 2005-04-14 *** Released version 0.6.13
3478 2005-04-14 *** Released version 0.6.13
3472
3479
3473 2005-04-08 Fernando Perez <fperez@colorado.edu>
3480 2005-04-08 Fernando Perez <fperez@colorado.edu>
3474
3481
3475 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3482 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3476 from _ofind, which gets called on almost every input line. Now,
3483 from _ofind, which gets called on almost every input line. Now,
3477 we only try to get docstrings if they are actually going to be
3484 we only try to get docstrings if they are actually going to be
3478 used (the overhead of fetching unnecessary docstrings can be
3485 used (the overhead of fetching unnecessary docstrings can be
3479 noticeable for certain objects, such as Pyro proxies).
3486 noticeable for certain objects, such as Pyro proxies).
3480
3487
3481 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3488 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3482 for completers. For some reason I had been passing them the state
3489 for completers. For some reason I had been passing them the state
3483 variable, which completers never actually need, and was in
3490 variable, which completers never actually need, and was in
3484 conflict with the rlcompleter API. Custom completers ONLY need to
3491 conflict with the rlcompleter API. Custom completers ONLY need to
3485 take the text parameter.
3492 take the text parameter.
3486
3493
3487 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3494 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3488 work correctly in pysh. I've also moved all the logic which used
3495 work correctly in pysh. I've also moved all the logic which used
3489 to be in pysh.py here, which will prevent problems with future
3496 to be in pysh.py here, which will prevent problems with future
3490 upgrades. However, this time I must warn users to update their
3497 upgrades. However, this time I must warn users to update their
3491 pysh profile to include the line
3498 pysh profile to include the line
3492
3499
3493 import_all IPython.Extensions.InterpreterExec
3500 import_all IPython.Extensions.InterpreterExec
3494
3501
3495 because otherwise things won't work for them. They MUST also
3502 because otherwise things won't work for them. They MUST also
3496 delete pysh.py and the line
3503 delete pysh.py and the line
3497
3504
3498 execfile pysh.py
3505 execfile pysh.py
3499
3506
3500 from their ipythonrc-pysh.
3507 from their ipythonrc-pysh.
3501
3508
3502 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3509 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3503 robust in the face of objects whose dir() returns non-strings
3510 robust in the face of objects whose dir() returns non-strings
3504 (which it shouldn't, but some broken libs like ITK do). Thanks to
3511 (which it shouldn't, but some broken libs like ITK do). Thanks to
3505 a patch by John Hunter (implemented differently, though). Also
3512 a patch by John Hunter (implemented differently, though). Also
3506 minor improvements by using .extend instead of + on lists.
3513 minor improvements by using .extend instead of + on lists.
3507
3514
3508 * pysh.py:
3515 * pysh.py:
3509
3516
3510 2005-04-06 Fernando Perez <fperez@colorado.edu>
3517 2005-04-06 Fernando Perez <fperez@colorado.edu>
3511
3518
3512 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3519 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3513 by default, so that all users benefit from it. Those who don't
3520 by default, so that all users benefit from it. Those who don't
3514 want it can still turn it off.
3521 want it can still turn it off.
3515
3522
3516 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3523 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3517 config file, I'd forgotten about this, so users were getting it
3524 config file, I'd forgotten about this, so users were getting it
3518 off by default.
3525 off by default.
3519
3526
3520 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3527 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3521 consistency. Now magics can be called in multiline statements,
3528 consistency. Now magics can be called in multiline statements,
3522 and python variables can be expanded in magic calls via $var.
3529 and python variables can be expanded in magic calls via $var.
3523 This makes the magic system behave just like aliases or !system
3530 This makes the magic system behave just like aliases or !system
3524 calls.
3531 calls.
3525
3532
3526 2005-03-28 Fernando Perez <fperez@colorado.edu>
3533 2005-03-28 Fernando Perez <fperez@colorado.edu>
3527
3534
3528 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3535 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3529 expensive string additions for building command. Add support for
3536 expensive string additions for building command. Add support for
3530 trailing ';' when autocall is used.
3537 trailing ';' when autocall is used.
3531
3538
3532 2005-03-26 Fernando Perez <fperez@colorado.edu>
3539 2005-03-26 Fernando Perez <fperez@colorado.edu>
3533
3540
3534 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3541 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3535 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3542 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3536 ipython.el robust against prompts with any number of spaces
3543 ipython.el robust against prompts with any number of spaces
3537 (including 0) after the ':' character.
3544 (including 0) after the ':' character.
3538
3545
3539 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3546 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3540 continuation prompt, which misled users to think the line was
3547 continuation prompt, which misled users to think the line was
3541 already indented. Closes debian Bug#300847, reported to me by
3548 already indented. Closes debian Bug#300847, reported to me by
3542 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3549 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3543
3550
3544 2005-03-23 Fernando Perez <fperez@colorado.edu>
3551 2005-03-23 Fernando Perez <fperez@colorado.edu>
3545
3552
3546 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3553 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3547 properly aligned if they have embedded newlines.
3554 properly aligned if they have embedded newlines.
3548
3555
3549 * IPython/iplib.py (runlines): Add a public method to expose
3556 * IPython/iplib.py (runlines): Add a public method to expose
3550 IPython's code execution machinery, so that users can run strings
3557 IPython's code execution machinery, so that users can run strings
3551 as if they had been typed at the prompt interactively.
3558 as if they had been typed at the prompt interactively.
3552 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3559 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3553 methods which can call the system shell, but with python variable
3560 methods which can call the system shell, but with python variable
3554 expansion. The three such methods are: __IPYTHON__.system,
3561 expansion. The three such methods are: __IPYTHON__.system,
3555 .getoutput and .getoutputerror. These need to be documented in a
3562 .getoutput and .getoutputerror. These need to be documented in a
3556 'public API' section (to be written) of the manual.
3563 'public API' section (to be written) of the manual.
3557
3564
3558 2005-03-20 Fernando Perez <fperez@colorado.edu>
3565 2005-03-20 Fernando Perez <fperez@colorado.edu>
3559
3566
3560 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3567 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3561 for custom exception handling. This is quite powerful, and it
3568 for custom exception handling. This is quite powerful, and it
3562 allows for user-installable exception handlers which can trap
3569 allows for user-installable exception handlers which can trap
3563 custom exceptions at runtime and treat them separately from
3570 custom exceptions at runtime and treat them separately from
3564 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3571 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3565 Mantegazza <mantegazza-AT-ill.fr>.
3572 Mantegazza <mantegazza-AT-ill.fr>.
3566 (InteractiveShell.set_custom_completer): public API function to
3573 (InteractiveShell.set_custom_completer): public API function to
3567 add new completers at runtime.
3574 add new completers at runtime.
3568
3575
3569 2005-03-19 Fernando Perez <fperez@colorado.edu>
3576 2005-03-19 Fernando Perez <fperez@colorado.edu>
3570
3577
3571 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3578 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3572 allow objects which provide their docstrings via non-standard
3579 allow objects which provide their docstrings via non-standard
3573 mechanisms (like Pyro proxies) to still be inspected by ipython's
3580 mechanisms (like Pyro proxies) to still be inspected by ipython's
3574 ? system.
3581 ? system.
3575
3582
3576 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3583 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3577 automatic capture system. I tried quite hard to make it work
3584 automatic capture system. I tried quite hard to make it work
3578 reliably, and simply failed. I tried many combinations with the
3585 reliably, and simply failed. I tried many combinations with the
3579 subprocess module, but eventually nothing worked in all needed
3586 subprocess module, but eventually nothing worked in all needed
3580 cases (not blocking stdin for the child, duplicating stdout
3587 cases (not blocking stdin for the child, duplicating stdout
3581 without blocking, etc). The new %sc/%sx still do capture to these
3588 without blocking, etc). The new %sc/%sx still do capture to these
3582 magical list/string objects which make shell use much more
3589 magical list/string objects which make shell use much more
3583 conveninent, so not all is lost.
3590 conveninent, so not all is lost.
3584
3591
3585 XXX - FIX MANUAL for the change above!
3592 XXX - FIX MANUAL for the change above!
3586
3593
3587 (runsource): I copied code.py's runsource() into ipython to modify
3594 (runsource): I copied code.py's runsource() into ipython to modify
3588 it a bit. Now the code object and source to be executed are
3595 it a bit. Now the code object and source to be executed are
3589 stored in ipython. This makes this info accessible to third-party
3596 stored in ipython. This makes this info accessible to third-party
3590 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3597 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3591 Mantegazza <mantegazza-AT-ill.fr>.
3598 Mantegazza <mantegazza-AT-ill.fr>.
3592
3599
3593 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3600 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3594 history-search via readline (like C-p/C-n). I'd wanted this for a
3601 history-search via readline (like C-p/C-n). I'd wanted this for a
3595 long time, but only recently found out how to do it. For users
3602 long time, but only recently found out how to do it. For users
3596 who already have their ipythonrc files made and want this, just
3603 who already have their ipythonrc files made and want this, just
3597 add:
3604 add:
3598
3605
3599 readline_parse_and_bind "\e[A": history-search-backward
3606 readline_parse_and_bind "\e[A": history-search-backward
3600 readline_parse_and_bind "\e[B": history-search-forward
3607 readline_parse_and_bind "\e[B": history-search-forward
3601
3608
3602 2005-03-18 Fernando Perez <fperez@colorado.edu>
3609 2005-03-18 Fernando Perez <fperez@colorado.edu>
3603
3610
3604 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3611 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3605 LSString and SList classes which allow transparent conversions
3612 LSString and SList classes which allow transparent conversions
3606 between list mode and whitespace-separated string.
3613 between list mode and whitespace-separated string.
3607 (magic_r): Fix recursion problem in %r.
3614 (magic_r): Fix recursion problem in %r.
3608
3615
3609 * IPython/genutils.py (LSString): New class to be used for
3616 * IPython/genutils.py (LSString): New class to be used for
3610 automatic storage of the results of all alias/system calls in _o
3617 automatic storage of the results of all alias/system calls in _o
3611 and _e (stdout/err). These provide a .l/.list attribute which
3618 and _e (stdout/err). These provide a .l/.list attribute which
3612 does automatic splitting on newlines. This means that for most
3619 does automatic splitting on newlines. This means that for most
3613 uses, you'll never need to do capturing of output with %sc/%sx
3620 uses, you'll never need to do capturing of output with %sc/%sx
3614 anymore, since ipython keeps this always done for you. Note that
3621 anymore, since ipython keeps this always done for you. Note that
3615 only the LAST results are stored, the _o/e variables are
3622 only the LAST results are stored, the _o/e variables are
3616 overwritten on each call. If you need to save their contents
3623 overwritten on each call. If you need to save their contents
3617 further, simply bind them to any other name.
3624 further, simply bind them to any other name.
3618
3625
3619 2005-03-17 Fernando Perez <fperez@colorado.edu>
3626 2005-03-17 Fernando Perez <fperez@colorado.edu>
3620
3627
3621 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3628 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3622 prompt namespace handling.
3629 prompt namespace handling.
3623
3630
3624 2005-03-16 Fernando Perez <fperez@colorado.edu>
3631 2005-03-16 Fernando Perez <fperez@colorado.edu>
3625
3632
3626 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3633 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3627 classic prompts to be '>>> ' (final space was missing, and it
3634 classic prompts to be '>>> ' (final space was missing, and it
3628 trips the emacs python mode).
3635 trips the emacs python mode).
3629 (BasePrompt.__str__): Added safe support for dynamic prompt
3636 (BasePrompt.__str__): Added safe support for dynamic prompt
3630 strings. Now you can set your prompt string to be '$x', and the
3637 strings. Now you can set your prompt string to be '$x', and the
3631 value of x will be printed from your interactive namespace. The
3638 value of x will be printed from your interactive namespace. The
3632 interpolation syntax includes the full Itpl support, so
3639 interpolation syntax includes the full Itpl support, so
3633 ${foo()+x+bar()} is a valid prompt string now, and the function
3640 ${foo()+x+bar()} is a valid prompt string now, and the function
3634 calls will be made at runtime.
3641 calls will be made at runtime.
3635
3642
3636 2005-03-15 Fernando Perez <fperez@colorado.edu>
3643 2005-03-15 Fernando Perez <fperez@colorado.edu>
3637
3644
3638 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3645 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3639 avoid name clashes in pylab. %hist still works, it just forwards
3646 avoid name clashes in pylab. %hist still works, it just forwards
3640 the call to %history.
3647 the call to %history.
3641
3648
3642 2005-03-02 *** Released version 0.6.12
3649 2005-03-02 *** Released version 0.6.12
3643
3650
3644 2005-03-02 Fernando Perez <fperez@colorado.edu>
3651 2005-03-02 Fernando Perez <fperez@colorado.edu>
3645
3652
3646 * IPython/iplib.py (handle_magic): log magic calls properly as
3653 * IPython/iplib.py (handle_magic): log magic calls properly as
3647 ipmagic() function calls.
3654 ipmagic() function calls.
3648
3655
3649 * IPython/Magic.py (magic_time): Improved %time to support
3656 * IPython/Magic.py (magic_time): Improved %time to support
3650 statements and provide wall-clock as well as CPU time.
3657 statements and provide wall-clock as well as CPU time.
3651
3658
3652 2005-02-27 Fernando Perez <fperez@colorado.edu>
3659 2005-02-27 Fernando Perez <fperez@colorado.edu>
3653
3660
3654 * IPython/hooks.py: New hooks module, to expose user-modifiable
3661 * IPython/hooks.py: New hooks module, to expose user-modifiable
3655 IPython functionality in a clean manner. For now only the editor
3662 IPython functionality in a clean manner. For now only the editor
3656 hook is actually written, and other thigns which I intend to turn
3663 hook is actually written, and other thigns which I intend to turn
3657 into proper hooks aren't yet there. The display and prefilter
3664 into proper hooks aren't yet there. The display and prefilter
3658 stuff, for example, should be hooks. But at least now the
3665 stuff, for example, should be hooks. But at least now the
3659 framework is in place, and the rest can be moved here with more
3666 framework is in place, and the rest can be moved here with more
3660 time later. IPython had had a .hooks variable for a long time for
3667 time later. IPython had had a .hooks variable for a long time for
3661 this purpose, but I'd never actually used it for anything.
3668 this purpose, but I'd never actually used it for anything.
3662
3669
3663 2005-02-26 Fernando Perez <fperez@colorado.edu>
3670 2005-02-26 Fernando Perez <fperez@colorado.edu>
3664
3671
3665 * IPython/ipmaker.py (make_IPython): make the default ipython
3672 * IPython/ipmaker.py (make_IPython): make the default ipython
3666 directory be called _ipython under win32, to follow more the
3673 directory be called _ipython under win32, to follow more the
3667 naming peculiarities of that platform (where buggy software like
3674 naming peculiarities of that platform (where buggy software like
3668 Visual Sourcesafe breaks with .named directories). Reported by
3675 Visual Sourcesafe breaks with .named directories). Reported by
3669 Ville Vainio.
3676 Ville Vainio.
3670
3677
3671 2005-02-23 Fernando Perez <fperez@colorado.edu>
3678 2005-02-23 Fernando Perez <fperez@colorado.edu>
3672
3679
3673 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3680 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3674 auto_aliases for win32 which were causing problems. Users can
3681 auto_aliases for win32 which were causing problems. Users can
3675 define the ones they personally like.
3682 define the ones they personally like.
3676
3683
3677 2005-02-21 Fernando Perez <fperez@colorado.edu>
3684 2005-02-21 Fernando Perez <fperez@colorado.edu>
3678
3685
3679 * IPython/Magic.py (magic_time): new magic to time execution of
3686 * IPython/Magic.py (magic_time): new magic to time execution of
3680 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3687 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3681
3688
3682 2005-02-19 Fernando Perez <fperez@colorado.edu>
3689 2005-02-19 Fernando Perez <fperez@colorado.edu>
3683
3690
3684 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3691 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3685 into keys (for prompts, for example).
3692 into keys (for prompts, for example).
3686
3693
3687 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3694 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3688 prompts in case users want them. This introduces a small behavior
3695 prompts in case users want them. This introduces a small behavior
3689 change: ipython does not automatically add a space to all prompts
3696 change: ipython does not automatically add a space to all prompts
3690 anymore. To get the old prompts with a space, users should add it
3697 anymore. To get the old prompts with a space, users should add it
3691 manually to their ipythonrc file, so for example prompt_in1 should
3698 manually to their ipythonrc file, so for example prompt_in1 should
3692 now read 'In [\#]: ' instead of 'In [\#]:'.
3699 now read 'In [\#]: ' instead of 'In [\#]:'.
3693 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3700 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3694 file) to control left-padding of secondary prompts.
3701 file) to control left-padding of secondary prompts.
3695
3702
3696 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3703 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3697 the profiler can't be imported. Fix for Debian, which removed
3704 the profiler can't be imported. Fix for Debian, which removed
3698 profile.py because of License issues. I applied a slightly
3705 profile.py because of License issues. I applied a slightly
3699 modified version of the original Debian patch at
3706 modified version of the original Debian patch at
3700 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3707 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3701
3708
3702 2005-02-17 Fernando Perez <fperez@colorado.edu>
3709 2005-02-17 Fernando Perez <fperez@colorado.edu>
3703
3710
3704 * IPython/genutils.py (native_line_ends): Fix bug which would
3711 * IPython/genutils.py (native_line_ends): Fix bug which would
3705 cause improper line-ends under win32 b/c I was not opening files
3712 cause improper line-ends under win32 b/c I was not opening files
3706 in binary mode. Bug report and fix thanks to Ville.
3713 in binary mode. Bug report and fix thanks to Ville.
3707
3714
3708 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3715 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3709 trying to catch spurious foo[1] autocalls. My fix actually broke
3716 trying to catch spurious foo[1] autocalls. My fix actually broke
3710 ',/' autoquote/call with explicit escape (bad regexp).
3717 ',/' autoquote/call with explicit escape (bad regexp).
3711
3718
3712 2005-02-15 *** Released version 0.6.11
3719 2005-02-15 *** Released version 0.6.11
3713
3720
3714 2005-02-14 Fernando Perez <fperez@colorado.edu>
3721 2005-02-14 Fernando Perez <fperez@colorado.edu>
3715
3722
3716 * IPython/background_jobs.py: New background job management
3723 * IPython/background_jobs.py: New background job management
3717 subsystem. This is implemented via a new set of classes, and
3724 subsystem. This is implemented via a new set of classes, and
3718 IPython now provides a builtin 'jobs' object for background job
3725 IPython now provides a builtin 'jobs' object for background job
3719 execution. A convenience %bg magic serves as a lightweight
3726 execution. A convenience %bg magic serves as a lightweight
3720 frontend for starting the more common type of calls. This was
3727 frontend for starting the more common type of calls. This was
3721 inspired by discussions with B. Granger and the BackgroundCommand
3728 inspired by discussions with B. Granger and the BackgroundCommand
3722 class described in the book Python Scripting for Computational
3729 class described in the book Python Scripting for Computational
3723 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3730 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3724 (although ultimately no code from this text was used, as IPython's
3731 (although ultimately no code from this text was used, as IPython's
3725 system is a separate implementation).
3732 system is a separate implementation).
3726
3733
3727 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3734 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3728 to control the completion of single/double underscore names
3735 to control the completion of single/double underscore names
3729 separately. As documented in the example ipytonrc file, the
3736 separately. As documented in the example ipytonrc file, the
3730 readline_omit__names variable can now be set to 2, to omit even
3737 readline_omit__names variable can now be set to 2, to omit even
3731 single underscore names. Thanks to a patch by Brian Wong
3738 single underscore names. Thanks to a patch by Brian Wong
3732 <BrianWong-AT-AirgoNetworks.Com>.
3739 <BrianWong-AT-AirgoNetworks.Com>.
3733 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3740 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3734 be autocalled as foo([1]) if foo were callable. A problem for
3741 be autocalled as foo([1]) if foo were callable. A problem for
3735 things which are both callable and implement __getitem__.
3742 things which are both callable and implement __getitem__.
3736 (init_readline): Fix autoindentation for win32. Thanks to a patch
3743 (init_readline): Fix autoindentation for win32. Thanks to a patch
3737 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3744 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3738
3745
3739 2005-02-12 Fernando Perez <fperez@colorado.edu>
3746 2005-02-12 Fernando Perez <fperez@colorado.edu>
3740
3747
3741 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3748 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3742 which I had written long ago to sort out user error messages which
3749 which I had written long ago to sort out user error messages which
3743 may occur during startup. This seemed like a good idea initially,
3750 may occur during startup. This seemed like a good idea initially,
3744 but it has proven a disaster in retrospect. I don't want to
3751 but it has proven a disaster in retrospect. I don't want to
3745 change much code for now, so my fix is to set the internal 'debug'
3752 change much code for now, so my fix is to set the internal 'debug'
3746 flag to true everywhere, whose only job was precisely to control
3753 flag to true everywhere, whose only job was precisely to control
3747 this subsystem. This closes issue 28 (as well as avoiding all
3754 this subsystem. This closes issue 28 (as well as avoiding all
3748 sorts of strange hangups which occur from time to time).
3755 sorts of strange hangups which occur from time to time).
3749
3756
3750 2005-02-07 Fernando Perez <fperez@colorado.edu>
3757 2005-02-07 Fernando Perez <fperez@colorado.edu>
3751
3758
3752 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3759 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3753 previous call produced a syntax error.
3760 previous call produced a syntax error.
3754
3761
3755 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3762 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3756 classes without constructor.
3763 classes without constructor.
3757
3764
3758 2005-02-06 Fernando Perez <fperez@colorado.edu>
3765 2005-02-06 Fernando Perez <fperez@colorado.edu>
3759
3766
3760 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3767 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3761 completions with the results of each matcher, so we return results
3768 completions with the results of each matcher, so we return results
3762 to the user from all namespaces. This breaks with ipython
3769 to the user from all namespaces. This breaks with ipython
3763 tradition, but I think it's a nicer behavior. Now you get all
3770 tradition, but I think it's a nicer behavior. Now you get all
3764 possible completions listed, from all possible namespaces (python,
3771 possible completions listed, from all possible namespaces (python,
3765 filesystem, magics...) After a request by John Hunter
3772 filesystem, magics...) After a request by John Hunter
3766 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3773 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3767
3774
3768 2005-02-05 Fernando Perez <fperez@colorado.edu>
3775 2005-02-05 Fernando Perez <fperez@colorado.edu>
3769
3776
3770 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3777 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3771 the call had quote characters in it (the quotes were stripped).
3778 the call had quote characters in it (the quotes were stripped).
3772
3779
3773 2005-01-31 Fernando Perez <fperez@colorado.edu>
3780 2005-01-31 Fernando Perez <fperez@colorado.edu>
3774
3781
3775 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3782 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3776 Itpl.itpl() to make the code more robust against psyco
3783 Itpl.itpl() to make the code more robust against psyco
3777 optimizations.
3784 optimizations.
3778
3785
3779 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3786 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3780 of causing an exception. Quicker, cleaner.
3787 of causing an exception. Quicker, cleaner.
3781
3788
3782 2005-01-28 Fernando Perez <fperez@colorado.edu>
3789 2005-01-28 Fernando Perez <fperez@colorado.edu>
3783
3790
3784 * scripts/ipython_win_post_install.py (install): hardcode
3791 * scripts/ipython_win_post_install.py (install): hardcode
3785 sys.prefix+'python.exe' as the executable path. It turns out that
3792 sys.prefix+'python.exe' as the executable path. It turns out that
3786 during the post-installation run, sys.executable resolves to the
3793 during the post-installation run, sys.executable resolves to the
3787 name of the binary installer! I should report this as a distutils
3794 name of the binary installer! I should report this as a distutils
3788 bug, I think. I updated the .10 release with this tiny fix, to
3795 bug, I think. I updated the .10 release with this tiny fix, to
3789 avoid annoying the lists further.
3796 avoid annoying the lists further.
3790
3797
3791 2005-01-27 *** Released version 0.6.10
3798 2005-01-27 *** Released version 0.6.10
3792
3799
3793 2005-01-27 Fernando Perez <fperez@colorado.edu>
3800 2005-01-27 Fernando Perez <fperez@colorado.edu>
3794
3801
3795 * IPython/numutils.py (norm): Added 'inf' as optional name for
3802 * IPython/numutils.py (norm): Added 'inf' as optional name for
3796 L-infinity norm, included references to mathworld.com for vector
3803 L-infinity norm, included references to mathworld.com for vector
3797 norm definitions.
3804 norm definitions.
3798 (amin/amax): added amin/amax for array min/max. Similar to what
3805 (amin/amax): added amin/amax for array min/max. Similar to what
3799 pylab ships with after the recent reorganization of names.
3806 pylab ships with after the recent reorganization of names.
3800 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3807 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3801
3808
3802 * ipython.el: committed Alex's recent fixes and improvements.
3809 * ipython.el: committed Alex's recent fixes and improvements.
3803 Tested with python-mode from CVS, and it looks excellent. Since
3810 Tested with python-mode from CVS, and it looks excellent. Since
3804 python-mode hasn't released anything in a while, I'm temporarily
3811 python-mode hasn't released anything in a while, I'm temporarily
3805 putting a copy of today's CVS (v 4.70) of python-mode in:
3812 putting a copy of today's CVS (v 4.70) of python-mode in:
3806 http://ipython.scipy.org/tmp/python-mode.el
3813 http://ipython.scipy.org/tmp/python-mode.el
3807
3814
3808 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3815 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3809 sys.executable for the executable name, instead of assuming it's
3816 sys.executable for the executable name, instead of assuming it's
3810 called 'python.exe' (the post-installer would have produced broken
3817 called 'python.exe' (the post-installer would have produced broken
3811 setups on systems with a differently named python binary).
3818 setups on systems with a differently named python binary).
3812
3819
3813 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3820 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3814 references to os.linesep, to make the code more
3821 references to os.linesep, to make the code more
3815 platform-independent. This is also part of the win32 coloring
3822 platform-independent. This is also part of the win32 coloring
3816 fixes.
3823 fixes.
3817
3824
3818 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3825 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3819 lines, which actually cause coloring bugs because the length of
3826 lines, which actually cause coloring bugs because the length of
3820 the line is very difficult to correctly compute with embedded
3827 the line is very difficult to correctly compute with embedded
3821 escapes. This was the source of all the coloring problems under
3828 escapes. This was the source of all the coloring problems under
3822 Win32. I think that _finally_, Win32 users have a properly
3829 Win32. I think that _finally_, Win32 users have a properly
3823 working ipython in all respects. This would never have happened
3830 working ipython in all respects. This would never have happened
3824 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3831 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3825
3832
3826 2005-01-26 *** Released version 0.6.9
3833 2005-01-26 *** Released version 0.6.9
3827
3834
3828 2005-01-25 Fernando Perez <fperez@colorado.edu>
3835 2005-01-25 Fernando Perez <fperez@colorado.edu>
3829
3836
3830 * setup.py: finally, we have a true Windows installer, thanks to
3837 * setup.py: finally, we have a true Windows installer, thanks to
3831 the excellent work of Viktor Ransmayr
3838 the excellent work of Viktor Ransmayr
3832 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3839 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3833 Windows users. The setup routine is quite a bit cleaner thanks to
3840 Windows users. The setup routine is quite a bit cleaner thanks to
3834 this, and the post-install script uses the proper functions to
3841 this, and the post-install script uses the proper functions to
3835 allow a clean de-installation using the standard Windows Control
3842 allow a clean de-installation using the standard Windows Control
3836 Panel.
3843 Panel.
3837
3844
3838 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3845 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3839 environment variable under all OSes (including win32) if
3846 environment variable under all OSes (including win32) if
3840 available. This will give consistency to win32 users who have set
3847 available. This will give consistency to win32 users who have set
3841 this variable for any reason. If os.environ['HOME'] fails, the
3848 this variable for any reason. If os.environ['HOME'] fails, the
3842 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3849 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3843
3850
3844 2005-01-24 Fernando Perez <fperez@colorado.edu>
3851 2005-01-24 Fernando Perez <fperez@colorado.edu>
3845
3852
3846 * IPython/numutils.py (empty_like): add empty_like(), similar to
3853 * IPython/numutils.py (empty_like): add empty_like(), similar to
3847 zeros_like() but taking advantage of the new empty() Numeric routine.
3854 zeros_like() but taking advantage of the new empty() Numeric routine.
3848
3855
3849 2005-01-23 *** Released version 0.6.8
3856 2005-01-23 *** Released version 0.6.8
3850
3857
3851 2005-01-22 Fernando Perez <fperez@colorado.edu>
3858 2005-01-22 Fernando Perez <fperez@colorado.edu>
3852
3859
3853 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3860 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3854 automatic show() calls. After discussing things with JDH, it
3861 automatic show() calls. After discussing things with JDH, it
3855 turns out there are too many corner cases where this can go wrong.
3862 turns out there are too many corner cases where this can go wrong.
3856 It's best not to try to be 'too smart', and simply have ipython
3863 It's best not to try to be 'too smart', and simply have ipython
3857 reproduce as much as possible the default behavior of a normal
3864 reproduce as much as possible the default behavior of a normal
3858 python shell.
3865 python shell.
3859
3866
3860 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3867 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3861 line-splitting regexp and _prefilter() to avoid calling getattr()
3868 line-splitting regexp and _prefilter() to avoid calling getattr()
3862 on assignments. This closes
3869 on assignments. This closes
3863 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3870 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3864 readline uses getattr(), so a simple <TAB> keypress is still
3871 readline uses getattr(), so a simple <TAB> keypress is still
3865 enough to trigger getattr() calls on an object.
3872 enough to trigger getattr() calls on an object.
3866
3873
3867 2005-01-21 Fernando Perez <fperez@colorado.edu>
3874 2005-01-21 Fernando Perez <fperez@colorado.edu>
3868
3875
3869 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3876 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3870 docstring under pylab so it doesn't mask the original.
3877 docstring under pylab so it doesn't mask the original.
3871
3878
3872 2005-01-21 *** Released version 0.6.7
3879 2005-01-21 *** Released version 0.6.7
3873
3880
3874 2005-01-21 Fernando Perez <fperez@colorado.edu>
3881 2005-01-21 Fernando Perez <fperez@colorado.edu>
3875
3882
3876 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3883 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3877 signal handling for win32 users in multithreaded mode.
3884 signal handling for win32 users in multithreaded mode.
3878
3885
3879 2005-01-17 Fernando Perez <fperez@colorado.edu>
3886 2005-01-17 Fernando Perez <fperez@colorado.edu>
3880
3887
3881 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3888 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3882 instances with no __init__. After a crash report by Norbert Nemec
3889 instances with no __init__. After a crash report by Norbert Nemec
3883 <Norbert-AT-nemec-online.de>.
3890 <Norbert-AT-nemec-online.de>.
3884
3891
3885 2005-01-14 Fernando Perez <fperez@colorado.edu>
3892 2005-01-14 Fernando Perez <fperez@colorado.edu>
3886
3893
3887 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3894 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3888 names for verbose exceptions, when multiple dotted names and the
3895 names for verbose exceptions, when multiple dotted names and the
3889 'parent' object were present on the same line.
3896 'parent' object were present on the same line.
3890
3897
3891 2005-01-11 Fernando Perez <fperez@colorado.edu>
3898 2005-01-11 Fernando Perez <fperez@colorado.edu>
3892
3899
3893 * IPython/genutils.py (flag_calls): new utility to trap and flag
3900 * IPython/genutils.py (flag_calls): new utility to trap and flag
3894 calls in functions. I need it to clean up matplotlib support.
3901 calls in functions. I need it to clean up matplotlib support.
3895 Also removed some deprecated code in genutils.
3902 Also removed some deprecated code in genutils.
3896
3903
3897 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3904 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3898 that matplotlib scripts called with %run, which don't call show()
3905 that matplotlib scripts called with %run, which don't call show()
3899 themselves, still have their plotting windows open.
3906 themselves, still have their plotting windows open.
3900
3907
3901 2005-01-05 Fernando Perez <fperez@colorado.edu>
3908 2005-01-05 Fernando Perez <fperez@colorado.edu>
3902
3909
3903 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3910 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3904 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3911 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3905
3912
3906 2004-12-19 Fernando Perez <fperez@colorado.edu>
3913 2004-12-19 Fernando Perez <fperez@colorado.edu>
3907
3914
3908 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3915 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3909 parent_runcode, which was an eyesore. The same result can be
3916 parent_runcode, which was an eyesore. The same result can be
3910 obtained with Python's regular superclass mechanisms.
3917 obtained with Python's regular superclass mechanisms.
3911
3918
3912 2004-12-17 Fernando Perez <fperez@colorado.edu>
3919 2004-12-17 Fernando Perez <fperez@colorado.edu>
3913
3920
3914 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3921 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3915 reported by Prabhu.
3922 reported by Prabhu.
3916 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3923 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3917 sys.stderr) instead of explicitly calling sys.stderr. This helps
3924 sys.stderr) instead of explicitly calling sys.stderr. This helps
3918 maintain our I/O abstractions clean, for future GUI embeddings.
3925 maintain our I/O abstractions clean, for future GUI embeddings.
3919
3926
3920 * IPython/genutils.py (info): added new utility for sys.stderr
3927 * IPython/genutils.py (info): added new utility for sys.stderr
3921 unified info message handling (thin wrapper around warn()).
3928 unified info message handling (thin wrapper around warn()).
3922
3929
3923 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3930 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3924 composite (dotted) names on verbose exceptions.
3931 composite (dotted) names on verbose exceptions.
3925 (VerboseTB.nullrepr): harden against another kind of errors which
3932 (VerboseTB.nullrepr): harden against another kind of errors which
3926 Python's inspect module can trigger, and which were crashing
3933 Python's inspect module can trigger, and which were crashing
3927 IPython. Thanks to a report by Marco Lombardi
3934 IPython. Thanks to a report by Marco Lombardi
3928 <mlombard-AT-ma010192.hq.eso.org>.
3935 <mlombard-AT-ma010192.hq.eso.org>.
3929
3936
3930 2004-12-13 *** Released version 0.6.6
3937 2004-12-13 *** Released version 0.6.6
3931
3938
3932 2004-12-12 Fernando Perez <fperez@colorado.edu>
3939 2004-12-12 Fernando Perez <fperez@colorado.edu>
3933
3940
3934 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3941 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3935 generated by pygtk upon initialization if it was built without
3942 generated by pygtk upon initialization if it was built without
3936 threads (for matplotlib users). After a crash reported by
3943 threads (for matplotlib users). After a crash reported by
3937 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3944 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3938
3945
3939 * IPython/ipmaker.py (make_IPython): fix small bug in the
3946 * IPython/ipmaker.py (make_IPython): fix small bug in the
3940 import_some parameter for multiple imports.
3947 import_some parameter for multiple imports.
3941
3948
3942 * IPython/iplib.py (ipmagic): simplified the interface of
3949 * IPython/iplib.py (ipmagic): simplified the interface of
3943 ipmagic() to take a single string argument, just as it would be
3950 ipmagic() to take a single string argument, just as it would be
3944 typed at the IPython cmd line.
3951 typed at the IPython cmd line.
3945 (ipalias): Added new ipalias() with an interface identical to
3952 (ipalias): Added new ipalias() with an interface identical to
3946 ipmagic(). This completes exposing a pure python interface to the
3953 ipmagic(). This completes exposing a pure python interface to the
3947 alias and magic system, which can be used in loops or more complex
3954 alias and magic system, which can be used in loops or more complex
3948 code where IPython's automatic line mangling is not active.
3955 code where IPython's automatic line mangling is not active.
3949
3956
3950 * IPython/genutils.py (timing): changed interface of timing to
3957 * IPython/genutils.py (timing): changed interface of timing to
3951 simply run code once, which is the most common case. timings()
3958 simply run code once, which is the most common case. timings()
3952 remains unchanged, for the cases where you want multiple runs.
3959 remains unchanged, for the cases where you want multiple runs.
3953
3960
3954 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3961 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3955 bug where Python2.2 crashes with exec'ing code which does not end
3962 bug where Python2.2 crashes with exec'ing code which does not end
3956 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3963 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3957 before.
3964 before.
3958
3965
3959 2004-12-10 Fernando Perez <fperez@colorado.edu>
3966 2004-12-10 Fernando Perez <fperez@colorado.edu>
3960
3967
3961 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3968 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3962 -t to -T, to accomodate the new -t flag in %run (the %run and
3969 -t to -T, to accomodate the new -t flag in %run (the %run and
3963 %prun options are kind of intermixed, and it's not easy to change
3970 %prun options are kind of intermixed, and it's not easy to change
3964 this with the limitations of python's getopt).
3971 this with the limitations of python's getopt).
3965
3972
3966 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3973 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3967 the execution of scripts. It's not as fine-tuned as timeit.py,
3974 the execution of scripts. It's not as fine-tuned as timeit.py,
3968 but it works from inside ipython (and under 2.2, which lacks
3975 but it works from inside ipython (and under 2.2, which lacks
3969 timeit.py). Optionally a number of runs > 1 can be given for
3976 timeit.py). Optionally a number of runs > 1 can be given for
3970 timing very short-running code.
3977 timing very short-running code.
3971
3978
3972 * IPython/genutils.py (uniq_stable): new routine which returns a
3979 * IPython/genutils.py (uniq_stable): new routine which returns a
3973 list of unique elements in any iterable, but in stable order of
3980 list of unique elements in any iterable, but in stable order of
3974 appearance. I needed this for the ultraTB fixes, and it's a handy
3981 appearance. I needed this for the ultraTB fixes, and it's a handy
3975 utility.
3982 utility.
3976
3983
3977 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3984 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3978 dotted names in Verbose exceptions. This had been broken since
3985 dotted names in Verbose exceptions. This had been broken since
3979 the very start, now x.y will properly be printed in a Verbose
3986 the very start, now x.y will properly be printed in a Verbose
3980 traceback, instead of x being shown and y appearing always as an
3987 traceback, instead of x being shown and y appearing always as an
3981 'undefined global'. Getting this to work was a bit tricky,
3988 'undefined global'. Getting this to work was a bit tricky,
3982 because by default python tokenizers are stateless. Saved by
3989 because by default python tokenizers are stateless. Saved by
3983 python's ability to easily add a bit of state to an arbitrary
3990 python's ability to easily add a bit of state to an arbitrary
3984 function (without needing to build a full-blown callable object).
3991 function (without needing to build a full-blown callable object).
3985
3992
3986 Also big cleanup of this code, which had horrendous runtime
3993 Also big cleanup of this code, which had horrendous runtime
3987 lookups of zillions of attributes for colorization. Moved all
3994 lookups of zillions of attributes for colorization. Moved all
3988 this code into a few templates, which make it cleaner and quicker.
3995 this code into a few templates, which make it cleaner and quicker.
3989
3996
3990 Printout quality was also improved for Verbose exceptions: one
3997 Printout quality was also improved for Verbose exceptions: one
3991 variable per line, and memory addresses are printed (this can be
3998 variable per line, and memory addresses are printed (this can be
3992 quite handy in nasty debugging situations, which is what Verbose
3999 quite handy in nasty debugging situations, which is what Verbose
3993 is for).
4000 is for).
3994
4001
3995 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4002 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3996 the command line as scripts to be loaded by embedded instances.
4003 the command line as scripts to be loaded by embedded instances.
3997 Doing so has the potential for an infinite recursion if there are
4004 Doing so has the potential for an infinite recursion if there are
3998 exceptions thrown in the process. This fixes a strange crash
4005 exceptions thrown in the process. This fixes a strange crash
3999 reported by Philippe MULLER <muller-AT-irit.fr>.
4006 reported by Philippe MULLER <muller-AT-irit.fr>.
4000
4007
4001 2004-12-09 Fernando Perez <fperez@colorado.edu>
4008 2004-12-09 Fernando Perez <fperez@colorado.edu>
4002
4009
4003 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4010 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4004 to reflect new names in matplotlib, which now expose the
4011 to reflect new names in matplotlib, which now expose the
4005 matlab-compatible interface via a pylab module instead of the
4012 matlab-compatible interface via a pylab module instead of the
4006 'matlab' name. The new code is backwards compatible, so users of
4013 'matlab' name. The new code is backwards compatible, so users of
4007 all matplotlib versions are OK. Patch by J. Hunter.
4014 all matplotlib versions are OK. Patch by J. Hunter.
4008
4015
4009 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4016 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4010 of __init__ docstrings for instances (class docstrings are already
4017 of __init__ docstrings for instances (class docstrings are already
4011 automatically printed). Instances with customized docstrings
4018 automatically printed). Instances with customized docstrings
4012 (indep. of the class) are also recognized and all 3 separate
4019 (indep. of the class) are also recognized and all 3 separate
4013 docstrings are printed (instance, class, constructor). After some
4020 docstrings are printed (instance, class, constructor). After some
4014 comments/suggestions by J. Hunter.
4021 comments/suggestions by J. Hunter.
4015
4022
4016 2004-12-05 Fernando Perez <fperez@colorado.edu>
4023 2004-12-05 Fernando Perez <fperez@colorado.edu>
4017
4024
4018 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4025 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4019 warnings when tab-completion fails and triggers an exception.
4026 warnings when tab-completion fails and triggers an exception.
4020
4027
4021 2004-12-03 Fernando Perez <fperez@colorado.edu>
4028 2004-12-03 Fernando Perez <fperez@colorado.edu>
4022
4029
4023 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4030 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4024 be triggered when using 'run -p'. An incorrect option flag was
4031 be triggered when using 'run -p'. An incorrect option flag was
4025 being set ('d' instead of 'D').
4032 being set ('d' instead of 'D').
4026 (manpage): fix missing escaped \- sign.
4033 (manpage): fix missing escaped \- sign.
4027
4034
4028 2004-11-30 *** Released version 0.6.5
4035 2004-11-30 *** Released version 0.6.5
4029
4036
4030 2004-11-30 Fernando Perez <fperez@colorado.edu>
4037 2004-11-30 Fernando Perez <fperez@colorado.edu>
4031
4038
4032 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4039 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4033 setting with -d option.
4040 setting with -d option.
4034
4041
4035 * setup.py (docfiles): Fix problem where the doc glob I was using
4042 * setup.py (docfiles): Fix problem where the doc glob I was using
4036 was COMPLETELY BROKEN. It was giving the right files by pure
4043 was COMPLETELY BROKEN. It was giving the right files by pure
4037 accident, but failed once I tried to include ipython.el. Note:
4044 accident, but failed once I tried to include ipython.el. Note:
4038 glob() does NOT allow you to do exclusion on multiple endings!
4045 glob() does NOT allow you to do exclusion on multiple endings!
4039
4046
4040 2004-11-29 Fernando Perez <fperez@colorado.edu>
4047 2004-11-29 Fernando Perez <fperez@colorado.edu>
4041
4048
4042 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4049 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4043 the manpage as the source. Better formatting & consistency.
4050 the manpage as the source. Better formatting & consistency.
4044
4051
4045 * IPython/Magic.py (magic_run): Added new -d option, to run
4052 * IPython/Magic.py (magic_run): Added new -d option, to run
4046 scripts under the control of the python pdb debugger. Note that
4053 scripts under the control of the python pdb debugger. Note that
4047 this required changing the %prun option -d to -D, to avoid a clash
4054 this required changing the %prun option -d to -D, to avoid a clash
4048 (since %run must pass options to %prun, and getopt is too dumb to
4055 (since %run must pass options to %prun, and getopt is too dumb to
4049 handle options with string values with embedded spaces). Thanks
4056 handle options with string values with embedded spaces). Thanks
4050 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4057 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4051 (magic_who_ls): added type matching to %who and %whos, so that one
4058 (magic_who_ls): added type matching to %who and %whos, so that one
4052 can filter their output to only include variables of certain
4059 can filter their output to only include variables of certain
4053 types. Another suggestion by Matthew.
4060 types. Another suggestion by Matthew.
4054 (magic_whos): Added memory summaries in kb and Mb for arrays.
4061 (magic_whos): Added memory summaries in kb and Mb for arrays.
4055 (magic_who): Improve formatting (break lines every 9 vars).
4062 (magic_who): Improve formatting (break lines every 9 vars).
4056
4063
4057 2004-11-28 Fernando Perez <fperez@colorado.edu>
4064 2004-11-28 Fernando Perez <fperez@colorado.edu>
4058
4065
4059 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4066 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4060 cache when empty lines were present.
4067 cache when empty lines were present.
4061
4068
4062 2004-11-24 Fernando Perez <fperez@colorado.edu>
4069 2004-11-24 Fernando Perez <fperez@colorado.edu>
4063
4070
4064 * IPython/usage.py (__doc__): document the re-activated threading
4071 * IPython/usage.py (__doc__): document the re-activated threading
4065 options for WX and GTK.
4072 options for WX and GTK.
4066
4073
4067 2004-11-23 Fernando Perez <fperez@colorado.edu>
4074 2004-11-23 Fernando Perez <fperez@colorado.edu>
4068
4075
4069 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4076 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4070 the -wthread and -gthread options, along with a new -tk one to try
4077 the -wthread and -gthread options, along with a new -tk one to try
4071 and coordinate Tk threading with wx/gtk. The tk support is very
4078 and coordinate Tk threading with wx/gtk. The tk support is very
4072 platform dependent, since it seems to require Tcl and Tk to be
4079 platform dependent, since it seems to require Tcl and Tk to be
4073 built with threads (Fedora1/2 appears NOT to have it, but in
4080 built with threads (Fedora1/2 appears NOT to have it, but in
4074 Prabhu's Debian boxes it works OK). But even with some Tk
4081 Prabhu's Debian boxes it works OK). But even with some Tk
4075 limitations, this is a great improvement.
4082 limitations, this is a great improvement.
4076
4083
4077 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4084 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4078 info in user prompts. Patch by Prabhu.
4085 info in user prompts. Patch by Prabhu.
4079
4086
4080 2004-11-18 Fernando Perez <fperez@colorado.edu>
4087 2004-11-18 Fernando Perez <fperez@colorado.edu>
4081
4088
4082 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4089 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4083 EOFErrors and bail, to avoid infinite loops if a non-terminating
4090 EOFErrors and bail, to avoid infinite loops if a non-terminating
4084 file is fed into ipython. Patch submitted in issue 19 by user,
4091 file is fed into ipython. Patch submitted in issue 19 by user,
4085 many thanks.
4092 many thanks.
4086
4093
4087 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4094 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4088 autoquote/parens in continuation prompts, which can cause lots of
4095 autoquote/parens in continuation prompts, which can cause lots of
4089 problems. Closes roundup issue 20.
4096 problems. Closes roundup issue 20.
4090
4097
4091 2004-11-17 Fernando Perez <fperez@colorado.edu>
4098 2004-11-17 Fernando Perez <fperez@colorado.edu>
4092
4099
4093 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4100 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4094 reported as debian bug #280505. I'm not sure my local changelog
4101 reported as debian bug #280505. I'm not sure my local changelog
4095 entry has the proper debian format (Jack?).
4102 entry has the proper debian format (Jack?).
4096
4103
4097 2004-11-08 *** Released version 0.6.4
4104 2004-11-08 *** Released version 0.6.4
4098
4105
4099 2004-11-08 Fernando Perez <fperez@colorado.edu>
4106 2004-11-08 Fernando Perez <fperez@colorado.edu>
4100
4107
4101 * IPython/iplib.py (init_readline): Fix exit message for Windows
4108 * IPython/iplib.py (init_readline): Fix exit message for Windows
4102 when readline is active. Thanks to a report by Eric Jones
4109 when readline is active. Thanks to a report by Eric Jones
4103 <eric-AT-enthought.com>.
4110 <eric-AT-enthought.com>.
4104
4111
4105 2004-11-07 Fernando Perez <fperez@colorado.edu>
4112 2004-11-07 Fernando Perez <fperez@colorado.edu>
4106
4113
4107 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4114 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4108 sometimes seen by win2k/cygwin users.
4115 sometimes seen by win2k/cygwin users.
4109
4116
4110 2004-11-06 Fernando Perez <fperez@colorado.edu>
4117 2004-11-06 Fernando Perez <fperez@colorado.edu>
4111
4118
4112 * IPython/iplib.py (interact): Change the handling of %Exit from
4119 * IPython/iplib.py (interact): Change the handling of %Exit from
4113 trying to propagate a SystemExit to an internal ipython flag.
4120 trying to propagate a SystemExit to an internal ipython flag.
4114 This is less elegant than using Python's exception mechanism, but
4121 This is less elegant than using Python's exception mechanism, but
4115 I can't get that to work reliably with threads, so under -pylab
4122 I can't get that to work reliably with threads, so under -pylab
4116 %Exit was hanging IPython. Cross-thread exception handling is
4123 %Exit was hanging IPython. Cross-thread exception handling is
4117 really a bitch. Thaks to a bug report by Stephen Walton
4124 really a bitch. Thaks to a bug report by Stephen Walton
4118 <stephen.walton-AT-csun.edu>.
4125 <stephen.walton-AT-csun.edu>.
4119
4126
4120 2004-11-04 Fernando Perez <fperez@colorado.edu>
4127 2004-11-04 Fernando Perez <fperez@colorado.edu>
4121
4128
4122 * IPython/iplib.py (raw_input_original): store a pointer to the
4129 * IPython/iplib.py (raw_input_original): store a pointer to the
4123 true raw_input to harden against code which can modify it
4130 true raw_input to harden against code which can modify it
4124 (wx.py.PyShell does this and would otherwise crash ipython).
4131 (wx.py.PyShell does this and would otherwise crash ipython).
4125 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4132 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4126
4133
4127 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4134 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4128 Ctrl-C problem, which does not mess up the input line.
4135 Ctrl-C problem, which does not mess up the input line.
4129
4136
4130 2004-11-03 Fernando Perez <fperez@colorado.edu>
4137 2004-11-03 Fernando Perez <fperez@colorado.edu>
4131
4138
4132 * IPython/Release.py: Changed licensing to BSD, in all files.
4139 * IPython/Release.py: Changed licensing to BSD, in all files.
4133 (name): lowercase name for tarball/RPM release.
4140 (name): lowercase name for tarball/RPM release.
4134
4141
4135 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4142 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4136 use throughout ipython.
4143 use throughout ipython.
4137
4144
4138 * IPython/Magic.py (Magic._ofind): Switch to using the new
4145 * IPython/Magic.py (Magic._ofind): Switch to using the new
4139 OInspect.getdoc() function.
4146 OInspect.getdoc() function.
4140
4147
4141 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4148 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4142 of the line currently being canceled via Ctrl-C. It's extremely
4149 of the line currently being canceled via Ctrl-C. It's extremely
4143 ugly, but I don't know how to do it better (the problem is one of
4150 ugly, but I don't know how to do it better (the problem is one of
4144 handling cross-thread exceptions).
4151 handling cross-thread exceptions).
4145
4152
4146 2004-10-28 Fernando Perez <fperez@colorado.edu>
4153 2004-10-28 Fernando Perez <fperez@colorado.edu>
4147
4154
4148 * IPython/Shell.py (signal_handler): add signal handlers to trap
4155 * IPython/Shell.py (signal_handler): add signal handlers to trap
4149 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4156 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4150 report by Francesc Alted.
4157 report by Francesc Alted.
4151
4158
4152 2004-10-21 Fernando Perez <fperez@colorado.edu>
4159 2004-10-21 Fernando Perez <fperez@colorado.edu>
4153
4160
4154 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4161 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4155 to % for pysh syntax extensions.
4162 to % for pysh syntax extensions.
4156
4163
4157 2004-10-09 Fernando Perez <fperez@colorado.edu>
4164 2004-10-09 Fernando Perez <fperez@colorado.edu>
4158
4165
4159 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4166 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4160 arrays to print a more useful summary, without calling str(arr).
4167 arrays to print a more useful summary, without calling str(arr).
4161 This avoids the problem of extremely lengthy computations which
4168 This avoids the problem of extremely lengthy computations which
4162 occur if arr is large, and appear to the user as a system lockup
4169 occur if arr is large, and appear to the user as a system lockup
4163 with 100% cpu activity. After a suggestion by Kristian Sandberg
4170 with 100% cpu activity. After a suggestion by Kristian Sandberg
4164 <Kristian.Sandberg@colorado.edu>.
4171 <Kristian.Sandberg@colorado.edu>.
4165 (Magic.__init__): fix bug in global magic escapes not being
4172 (Magic.__init__): fix bug in global magic escapes not being
4166 correctly set.
4173 correctly set.
4167
4174
4168 2004-10-08 Fernando Perez <fperez@colorado.edu>
4175 2004-10-08 Fernando Perez <fperez@colorado.edu>
4169
4176
4170 * IPython/Magic.py (__license__): change to absolute imports of
4177 * IPython/Magic.py (__license__): change to absolute imports of
4171 ipython's own internal packages, to start adapting to the absolute
4178 ipython's own internal packages, to start adapting to the absolute
4172 import requirement of PEP-328.
4179 import requirement of PEP-328.
4173
4180
4174 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4181 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4175 files, and standardize author/license marks through the Release
4182 files, and standardize author/license marks through the Release
4176 module instead of having per/file stuff (except for files with
4183 module instead of having per/file stuff (except for files with
4177 particular licenses, like the MIT/PSF-licensed codes).
4184 particular licenses, like the MIT/PSF-licensed codes).
4178
4185
4179 * IPython/Debugger.py: remove dead code for python 2.1
4186 * IPython/Debugger.py: remove dead code for python 2.1
4180
4187
4181 2004-10-04 Fernando Perez <fperez@colorado.edu>
4188 2004-10-04 Fernando Perez <fperez@colorado.edu>
4182
4189
4183 * IPython/iplib.py (ipmagic): New function for accessing magics
4190 * IPython/iplib.py (ipmagic): New function for accessing magics
4184 via a normal python function call.
4191 via a normal python function call.
4185
4192
4186 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4193 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4187 from '@' to '%', to accomodate the new @decorator syntax of python
4194 from '@' to '%', to accomodate the new @decorator syntax of python
4188 2.4.
4195 2.4.
4189
4196
4190 2004-09-29 Fernando Perez <fperez@colorado.edu>
4197 2004-09-29 Fernando Perez <fperez@colorado.edu>
4191
4198
4192 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4199 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4193 matplotlib.use to prevent running scripts which try to switch
4200 matplotlib.use to prevent running scripts which try to switch
4194 interactive backends from within ipython. This will just crash
4201 interactive backends from within ipython. This will just crash
4195 the python interpreter, so we can't allow it (but a detailed error
4202 the python interpreter, so we can't allow it (but a detailed error
4196 is given to the user).
4203 is given to the user).
4197
4204
4198 2004-09-28 Fernando Perez <fperez@colorado.edu>
4205 2004-09-28 Fernando Perez <fperez@colorado.edu>
4199
4206
4200 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4207 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4201 matplotlib-related fixes so that using @run with non-matplotlib
4208 matplotlib-related fixes so that using @run with non-matplotlib
4202 scripts doesn't pop up spurious plot windows. This requires
4209 scripts doesn't pop up spurious plot windows. This requires
4203 matplotlib >= 0.63, where I had to make some changes as well.
4210 matplotlib >= 0.63, where I had to make some changes as well.
4204
4211
4205 * IPython/ipmaker.py (make_IPython): update version requirement to
4212 * IPython/ipmaker.py (make_IPython): update version requirement to
4206 python 2.2.
4213 python 2.2.
4207
4214
4208 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4215 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4209 banner arg for embedded customization.
4216 banner arg for embedded customization.
4210
4217
4211 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4218 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4212 explicit uses of __IP as the IPython's instance name. Now things
4219 explicit uses of __IP as the IPython's instance name. Now things
4213 are properly handled via the shell.name value. The actual code
4220 are properly handled via the shell.name value. The actual code
4214 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4221 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4215 is much better than before. I'll clean things completely when the
4222 is much better than before. I'll clean things completely when the
4216 magic stuff gets a real overhaul.
4223 magic stuff gets a real overhaul.
4217
4224
4218 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4225 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4219 minor changes to debian dir.
4226 minor changes to debian dir.
4220
4227
4221 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4228 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4222 pointer to the shell itself in the interactive namespace even when
4229 pointer to the shell itself in the interactive namespace even when
4223 a user-supplied dict is provided. This is needed for embedding
4230 a user-supplied dict is provided. This is needed for embedding
4224 purposes (found by tests with Michel Sanner).
4231 purposes (found by tests with Michel Sanner).
4225
4232
4226 2004-09-27 Fernando Perez <fperez@colorado.edu>
4233 2004-09-27 Fernando Perez <fperez@colorado.edu>
4227
4234
4228 * IPython/UserConfig/ipythonrc: remove []{} from
4235 * IPython/UserConfig/ipythonrc: remove []{} from
4229 readline_remove_delims, so that things like [modname.<TAB> do
4236 readline_remove_delims, so that things like [modname.<TAB> do
4230 proper completion. This disables [].TAB, but that's a less common
4237 proper completion. This disables [].TAB, but that's a less common
4231 case than module names in list comprehensions, for example.
4238 case than module names in list comprehensions, for example.
4232 Thanks to a report by Andrea Riciputi.
4239 Thanks to a report by Andrea Riciputi.
4233
4240
4234 2004-09-09 Fernando Perez <fperez@colorado.edu>
4241 2004-09-09 Fernando Perez <fperez@colorado.edu>
4235
4242
4236 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4243 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4237 blocking problems in win32 and osx. Fix by John.
4244 blocking problems in win32 and osx. Fix by John.
4238
4245
4239 2004-09-08 Fernando Perez <fperez@colorado.edu>
4246 2004-09-08 Fernando Perez <fperez@colorado.edu>
4240
4247
4241 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4248 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4242 for Win32 and OSX. Fix by John Hunter.
4249 for Win32 and OSX. Fix by John Hunter.
4243
4250
4244 2004-08-30 *** Released version 0.6.3
4251 2004-08-30 *** Released version 0.6.3
4245
4252
4246 2004-08-30 Fernando Perez <fperez@colorado.edu>
4253 2004-08-30 Fernando Perez <fperez@colorado.edu>
4247
4254
4248 * setup.py (isfile): Add manpages to list of dependent files to be
4255 * setup.py (isfile): Add manpages to list of dependent files to be
4249 updated.
4256 updated.
4250
4257
4251 2004-08-27 Fernando Perez <fperez@colorado.edu>
4258 2004-08-27 Fernando Perez <fperez@colorado.edu>
4252
4259
4253 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4260 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4254 for now. They don't really work with standalone WX/GTK code
4261 for now. They don't really work with standalone WX/GTK code
4255 (though matplotlib IS working fine with both of those backends).
4262 (though matplotlib IS working fine with both of those backends).
4256 This will neeed much more testing. I disabled most things with
4263 This will neeed much more testing. I disabled most things with
4257 comments, so turning it back on later should be pretty easy.
4264 comments, so turning it back on later should be pretty easy.
4258
4265
4259 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4266 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4260 autocalling of expressions like r'foo', by modifying the line
4267 autocalling of expressions like r'foo', by modifying the line
4261 split regexp. Closes
4268 split regexp. Closes
4262 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4269 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4263 Riley <ipythonbugs-AT-sabi.net>.
4270 Riley <ipythonbugs-AT-sabi.net>.
4264 (InteractiveShell.mainloop): honor --nobanner with banner
4271 (InteractiveShell.mainloop): honor --nobanner with banner
4265 extensions.
4272 extensions.
4266
4273
4267 * IPython/Shell.py: Significant refactoring of all classes, so
4274 * IPython/Shell.py: Significant refactoring of all classes, so
4268 that we can really support ALL matplotlib backends and threading
4275 that we can really support ALL matplotlib backends and threading
4269 models (John spotted a bug with Tk which required this). Now we
4276 models (John spotted a bug with Tk which required this). Now we
4270 should support single-threaded, WX-threads and GTK-threads, both
4277 should support single-threaded, WX-threads and GTK-threads, both
4271 for generic code and for matplotlib.
4278 for generic code and for matplotlib.
4272
4279
4273 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4280 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4274 -pylab, to simplify things for users. Will also remove the pylab
4281 -pylab, to simplify things for users. Will also remove the pylab
4275 profile, since now all of matplotlib configuration is directly
4282 profile, since now all of matplotlib configuration is directly
4276 handled here. This also reduces startup time.
4283 handled here. This also reduces startup time.
4277
4284
4278 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4285 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4279 shell wasn't being correctly called. Also in IPShellWX.
4286 shell wasn't being correctly called. Also in IPShellWX.
4280
4287
4281 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4288 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4282 fine-tune banner.
4289 fine-tune banner.
4283
4290
4284 * IPython/numutils.py (spike): Deprecate these spike functions,
4291 * IPython/numutils.py (spike): Deprecate these spike functions,
4285 delete (long deprecated) gnuplot_exec handler.
4292 delete (long deprecated) gnuplot_exec handler.
4286
4293
4287 2004-08-26 Fernando Perez <fperez@colorado.edu>
4294 2004-08-26 Fernando Perez <fperez@colorado.edu>
4288
4295
4289 * ipython.1: Update for threading options, plus some others which
4296 * ipython.1: Update for threading options, plus some others which
4290 were missing.
4297 were missing.
4291
4298
4292 * IPython/ipmaker.py (__call__): Added -wthread option for
4299 * IPython/ipmaker.py (__call__): Added -wthread option for
4293 wxpython thread handling. Make sure threading options are only
4300 wxpython thread handling. Make sure threading options are only
4294 valid at the command line.
4301 valid at the command line.
4295
4302
4296 * scripts/ipython: moved shell selection into a factory function
4303 * scripts/ipython: moved shell selection into a factory function
4297 in Shell.py, to keep the starter script to a minimum.
4304 in Shell.py, to keep the starter script to a minimum.
4298
4305
4299 2004-08-25 Fernando Perez <fperez@colorado.edu>
4306 2004-08-25 Fernando Perez <fperez@colorado.edu>
4300
4307
4301 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4308 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4302 John. Along with some recent changes he made to matplotlib, the
4309 John. Along with some recent changes he made to matplotlib, the
4303 next versions of both systems should work very well together.
4310 next versions of both systems should work very well together.
4304
4311
4305 2004-08-24 Fernando Perez <fperez@colorado.edu>
4312 2004-08-24 Fernando Perez <fperez@colorado.edu>
4306
4313
4307 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4314 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4308 tried to switch the profiling to using hotshot, but I'm getting
4315 tried to switch the profiling to using hotshot, but I'm getting
4309 strange errors from prof.runctx() there. I may be misreading the
4316 strange errors from prof.runctx() there. I may be misreading the
4310 docs, but it looks weird. For now the profiling code will
4317 docs, but it looks weird. For now the profiling code will
4311 continue to use the standard profiler.
4318 continue to use the standard profiler.
4312
4319
4313 2004-08-23 Fernando Perez <fperez@colorado.edu>
4320 2004-08-23 Fernando Perez <fperez@colorado.edu>
4314
4321
4315 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4322 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4316 threaded shell, by John Hunter. It's not quite ready yet, but
4323 threaded shell, by John Hunter. It's not quite ready yet, but
4317 close.
4324 close.
4318
4325
4319 2004-08-22 Fernando Perez <fperez@colorado.edu>
4326 2004-08-22 Fernando Perez <fperez@colorado.edu>
4320
4327
4321 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4328 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4322 in Magic and ultraTB.
4329 in Magic and ultraTB.
4323
4330
4324 * ipython.1: document threading options in manpage.
4331 * ipython.1: document threading options in manpage.
4325
4332
4326 * scripts/ipython: Changed name of -thread option to -gthread,
4333 * scripts/ipython: Changed name of -thread option to -gthread,
4327 since this is GTK specific. I want to leave the door open for a
4334 since this is GTK specific. I want to leave the door open for a
4328 -wthread option for WX, which will most likely be necessary. This
4335 -wthread option for WX, which will most likely be necessary. This
4329 change affects usage and ipmaker as well.
4336 change affects usage and ipmaker as well.
4330
4337
4331 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4338 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4332 handle the matplotlib shell issues. Code by John Hunter
4339 handle the matplotlib shell issues. Code by John Hunter
4333 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4340 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4334 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4341 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4335 broken (and disabled for end users) for now, but it puts the
4342 broken (and disabled for end users) for now, but it puts the
4336 infrastructure in place.
4343 infrastructure in place.
4337
4344
4338 2004-08-21 Fernando Perez <fperez@colorado.edu>
4345 2004-08-21 Fernando Perez <fperez@colorado.edu>
4339
4346
4340 * ipythonrc-pylab: Add matplotlib support.
4347 * ipythonrc-pylab: Add matplotlib support.
4341
4348
4342 * matplotlib_config.py: new files for matplotlib support, part of
4349 * matplotlib_config.py: new files for matplotlib support, part of
4343 the pylab profile.
4350 the pylab profile.
4344
4351
4345 * IPython/usage.py (__doc__): documented the threading options.
4352 * IPython/usage.py (__doc__): documented the threading options.
4346
4353
4347 2004-08-20 Fernando Perez <fperez@colorado.edu>
4354 2004-08-20 Fernando Perez <fperez@colorado.edu>
4348
4355
4349 * ipython: Modified the main calling routine to handle the -thread
4356 * ipython: Modified the main calling routine to handle the -thread
4350 and -mpthread options. This needs to be done as a top-level hack,
4357 and -mpthread options. This needs to be done as a top-level hack,
4351 because it determines which class to instantiate for IPython
4358 because it determines which class to instantiate for IPython
4352 itself.
4359 itself.
4353
4360
4354 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4361 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4355 classes to support multithreaded GTK operation without blocking,
4362 classes to support multithreaded GTK operation without blocking,
4356 and matplotlib with all backends. This is a lot of still very
4363 and matplotlib with all backends. This is a lot of still very
4357 experimental code, and threads are tricky. So it may still have a
4364 experimental code, and threads are tricky. So it may still have a
4358 few rough edges... This code owes a lot to
4365 few rough edges... This code owes a lot to
4359 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4366 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4360 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4367 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4361 to John Hunter for all the matplotlib work.
4368 to John Hunter for all the matplotlib work.
4362
4369
4363 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4370 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4364 options for gtk thread and matplotlib support.
4371 options for gtk thread and matplotlib support.
4365
4372
4366 2004-08-16 Fernando Perez <fperez@colorado.edu>
4373 2004-08-16 Fernando Perez <fperez@colorado.edu>
4367
4374
4368 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4375 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4369 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4376 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4370 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4377 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4371
4378
4372 2004-08-11 Fernando Perez <fperez@colorado.edu>
4379 2004-08-11 Fernando Perez <fperez@colorado.edu>
4373
4380
4374 * setup.py (isfile): Fix build so documentation gets updated for
4381 * setup.py (isfile): Fix build so documentation gets updated for
4375 rpms (it was only done for .tgz builds).
4382 rpms (it was only done for .tgz builds).
4376
4383
4377 2004-08-10 Fernando Perez <fperez@colorado.edu>
4384 2004-08-10 Fernando Perez <fperez@colorado.edu>
4378
4385
4379 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4386 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4380
4387
4381 * iplib.py : Silence syntax error exceptions in tab-completion.
4388 * iplib.py : Silence syntax error exceptions in tab-completion.
4382
4389
4383 2004-08-05 Fernando Perez <fperez@colorado.edu>
4390 2004-08-05 Fernando Perez <fperez@colorado.edu>
4384
4391
4385 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4392 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4386 'color off' mark for continuation prompts. This was causing long
4393 'color off' mark for continuation prompts. This was causing long
4387 continuation lines to mis-wrap.
4394 continuation lines to mis-wrap.
4388
4395
4389 2004-08-01 Fernando Perez <fperez@colorado.edu>
4396 2004-08-01 Fernando Perez <fperez@colorado.edu>
4390
4397
4391 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4398 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4392 for building ipython to be a parameter. All this is necessary
4399 for building ipython to be a parameter. All this is necessary
4393 right now to have a multithreaded version, but this insane
4400 right now to have a multithreaded version, but this insane
4394 non-design will be cleaned up soon. For now, it's a hack that
4401 non-design will be cleaned up soon. For now, it's a hack that
4395 works.
4402 works.
4396
4403
4397 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4404 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4398 args in various places. No bugs so far, but it's a dangerous
4405 args in various places. No bugs so far, but it's a dangerous
4399 practice.
4406 practice.
4400
4407
4401 2004-07-31 Fernando Perez <fperez@colorado.edu>
4408 2004-07-31 Fernando Perez <fperez@colorado.edu>
4402
4409
4403 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4410 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4404 fix completion of files with dots in their names under most
4411 fix completion of files with dots in their names under most
4405 profiles (pysh was OK because the completion order is different).
4412 profiles (pysh was OK because the completion order is different).
4406
4413
4407 2004-07-27 Fernando Perez <fperez@colorado.edu>
4414 2004-07-27 Fernando Perez <fperez@colorado.edu>
4408
4415
4409 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4416 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4410 keywords manually, b/c the one in keyword.py was removed in python
4417 keywords manually, b/c the one in keyword.py was removed in python
4411 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4418 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4412 This is NOT a bug under python 2.3 and earlier.
4419 This is NOT a bug under python 2.3 and earlier.
4413
4420
4414 2004-07-26 Fernando Perez <fperez@colorado.edu>
4421 2004-07-26 Fernando Perez <fperez@colorado.edu>
4415
4422
4416 * IPython/ultraTB.py (VerboseTB.text): Add another
4423 * IPython/ultraTB.py (VerboseTB.text): Add another
4417 linecache.checkcache() call to try to prevent inspect.py from
4424 linecache.checkcache() call to try to prevent inspect.py from
4418 crashing under python 2.3. I think this fixes
4425 crashing under python 2.3. I think this fixes
4419 http://www.scipy.net/roundup/ipython/issue17.
4426 http://www.scipy.net/roundup/ipython/issue17.
4420
4427
4421 2004-07-26 *** Released version 0.6.2
4428 2004-07-26 *** Released version 0.6.2
4422
4429
4423 2004-07-26 Fernando Perez <fperez@colorado.edu>
4430 2004-07-26 Fernando Perez <fperez@colorado.edu>
4424
4431
4425 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4432 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4426 fail for any number.
4433 fail for any number.
4427 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4434 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4428 empty bookmarks.
4435 empty bookmarks.
4429
4436
4430 2004-07-26 *** Released version 0.6.1
4437 2004-07-26 *** Released version 0.6.1
4431
4438
4432 2004-07-26 Fernando Perez <fperez@colorado.edu>
4439 2004-07-26 Fernando Perez <fperez@colorado.edu>
4433
4440
4434 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4441 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4435
4442
4436 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4443 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4437 escaping '()[]{}' in filenames.
4444 escaping '()[]{}' in filenames.
4438
4445
4439 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4446 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4440 Python 2.2 users who lack a proper shlex.split.
4447 Python 2.2 users who lack a proper shlex.split.
4441
4448
4442 2004-07-19 Fernando Perez <fperez@colorado.edu>
4449 2004-07-19 Fernando Perez <fperez@colorado.edu>
4443
4450
4444 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4451 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4445 for reading readline's init file. I follow the normal chain:
4452 for reading readline's init file. I follow the normal chain:
4446 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4453 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4447 report by Mike Heeter. This closes
4454 report by Mike Heeter. This closes
4448 http://www.scipy.net/roundup/ipython/issue16.
4455 http://www.scipy.net/roundup/ipython/issue16.
4449
4456
4450 2004-07-18 Fernando Perez <fperez@colorado.edu>
4457 2004-07-18 Fernando Perez <fperez@colorado.edu>
4451
4458
4452 * IPython/iplib.py (__init__): Add better handling of '\' under
4459 * IPython/iplib.py (__init__): Add better handling of '\' under
4453 Win32 for filenames. After a patch by Ville.
4460 Win32 for filenames. After a patch by Ville.
4454
4461
4455 2004-07-17 Fernando Perez <fperez@colorado.edu>
4462 2004-07-17 Fernando Perez <fperez@colorado.edu>
4456
4463
4457 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4464 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4458 autocalling would be triggered for 'foo is bar' if foo is
4465 autocalling would be triggered for 'foo is bar' if foo is
4459 callable. I also cleaned up the autocall detection code to use a
4466 callable. I also cleaned up the autocall detection code to use a
4460 regexp, which is faster. Bug reported by Alexander Schmolck.
4467 regexp, which is faster. Bug reported by Alexander Schmolck.
4461
4468
4462 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4469 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4463 '?' in them would confuse the help system. Reported by Alex
4470 '?' in them would confuse the help system. Reported by Alex
4464 Schmolck.
4471 Schmolck.
4465
4472
4466 2004-07-16 Fernando Perez <fperez@colorado.edu>
4473 2004-07-16 Fernando Perez <fperez@colorado.edu>
4467
4474
4468 * IPython/GnuplotInteractive.py (__all__): added plot2.
4475 * IPython/GnuplotInteractive.py (__all__): added plot2.
4469
4476
4470 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4477 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4471 plotting dictionaries, lists or tuples of 1d arrays.
4478 plotting dictionaries, lists or tuples of 1d arrays.
4472
4479
4473 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4480 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4474 optimizations.
4481 optimizations.
4475
4482
4476 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4483 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4477 the information which was there from Janko's original IPP code:
4484 the information which was there from Janko's original IPP code:
4478
4485
4479 03.05.99 20:53 porto.ifm.uni-kiel.de
4486 03.05.99 20:53 porto.ifm.uni-kiel.de
4480 --Started changelog.
4487 --Started changelog.
4481 --make clear do what it say it does
4488 --make clear do what it say it does
4482 --added pretty output of lines from inputcache
4489 --added pretty output of lines from inputcache
4483 --Made Logger a mixin class, simplifies handling of switches
4490 --Made Logger a mixin class, simplifies handling of switches
4484 --Added own completer class. .string<TAB> expands to last history
4491 --Added own completer class. .string<TAB> expands to last history
4485 line which starts with string. The new expansion is also present
4492 line which starts with string. The new expansion is also present
4486 with Ctrl-r from the readline library. But this shows, who this
4493 with Ctrl-r from the readline library. But this shows, who this
4487 can be done for other cases.
4494 can be done for other cases.
4488 --Added convention that all shell functions should accept a
4495 --Added convention that all shell functions should accept a
4489 parameter_string This opens the door for different behaviour for
4496 parameter_string This opens the door for different behaviour for
4490 each function. @cd is a good example of this.
4497 each function. @cd is a good example of this.
4491
4498
4492 04.05.99 12:12 porto.ifm.uni-kiel.de
4499 04.05.99 12:12 porto.ifm.uni-kiel.de
4493 --added logfile rotation
4500 --added logfile rotation
4494 --added new mainloop method which freezes first the namespace
4501 --added new mainloop method which freezes first the namespace
4495
4502
4496 07.05.99 21:24 porto.ifm.uni-kiel.de
4503 07.05.99 21:24 porto.ifm.uni-kiel.de
4497 --added the docreader classes. Now there is a help system.
4504 --added the docreader classes. Now there is a help system.
4498 -This is only a first try. Currently it's not easy to put new
4505 -This is only a first try. Currently it's not easy to put new
4499 stuff in the indices. But this is the way to go. Info would be
4506 stuff in the indices. But this is the way to go. Info would be
4500 better, but HTML is every where and not everybody has an info
4507 better, but HTML is every where and not everybody has an info
4501 system installed and it's not so easy to change html-docs to info.
4508 system installed and it's not so easy to change html-docs to info.
4502 --added global logfile option
4509 --added global logfile option
4503 --there is now a hook for object inspection method pinfo needs to
4510 --there is now a hook for object inspection method pinfo needs to
4504 be provided for this. Can be reached by two '??'.
4511 be provided for this. Can be reached by two '??'.
4505
4512
4506 08.05.99 20:51 porto.ifm.uni-kiel.de
4513 08.05.99 20:51 porto.ifm.uni-kiel.de
4507 --added a README
4514 --added a README
4508 --bug in rc file. Something has changed so functions in the rc
4515 --bug in rc file. Something has changed so functions in the rc
4509 file need to reference the shell and not self. Not clear if it's a
4516 file need to reference the shell and not self. Not clear if it's a
4510 bug or feature.
4517 bug or feature.
4511 --changed rc file for new behavior
4518 --changed rc file for new behavior
4512
4519
4513 2004-07-15 Fernando Perez <fperez@colorado.edu>
4520 2004-07-15 Fernando Perez <fperez@colorado.edu>
4514
4521
4515 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4522 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4516 cache was falling out of sync in bizarre manners when multi-line
4523 cache was falling out of sync in bizarre manners when multi-line
4517 input was present. Minor optimizations and cleanup.
4524 input was present. Minor optimizations and cleanup.
4518
4525
4519 (Logger): Remove old Changelog info for cleanup. This is the
4526 (Logger): Remove old Changelog info for cleanup. This is the
4520 information which was there from Janko's original code:
4527 information which was there from Janko's original code:
4521
4528
4522 Changes to Logger: - made the default log filename a parameter
4529 Changes to Logger: - made the default log filename a parameter
4523
4530
4524 - put a check for lines beginning with !@? in log(). Needed
4531 - put a check for lines beginning with !@? in log(). Needed
4525 (even if the handlers properly log their lines) for mid-session
4532 (even if the handlers properly log their lines) for mid-session
4526 logging activation to work properly. Without this, lines logged
4533 logging activation to work properly. Without this, lines logged
4527 in mid session, which get read from the cache, would end up
4534 in mid session, which get read from the cache, would end up
4528 'bare' (with !@? in the open) in the log. Now they are caught
4535 'bare' (with !@? in the open) in the log. Now they are caught
4529 and prepended with a #.
4536 and prepended with a #.
4530
4537
4531 * IPython/iplib.py (InteractiveShell.init_readline): added check
4538 * IPython/iplib.py (InteractiveShell.init_readline): added check
4532 in case MagicCompleter fails to be defined, so we don't crash.
4539 in case MagicCompleter fails to be defined, so we don't crash.
4533
4540
4534 2004-07-13 Fernando Perez <fperez@colorado.edu>
4541 2004-07-13 Fernando Perez <fperez@colorado.edu>
4535
4542
4536 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4543 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4537 of EPS if the requested filename ends in '.eps'.
4544 of EPS if the requested filename ends in '.eps'.
4538
4545
4539 2004-07-04 Fernando Perez <fperez@colorado.edu>
4546 2004-07-04 Fernando Perez <fperez@colorado.edu>
4540
4547
4541 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4548 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4542 escaping of quotes when calling the shell.
4549 escaping of quotes when calling the shell.
4543
4550
4544 2004-07-02 Fernando Perez <fperez@colorado.edu>
4551 2004-07-02 Fernando Perez <fperez@colorado.edu>
4545
4552
4546 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4553 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4547 gettext not working because we were clobbering '_'. Fixes
4554 gettext not working because we were clobbering '_'. Fixes
4548 http://www.scipy.net/roundup/ipython/issue6.
4555 http://www.scipy.net/roundup/ipython/issue6.
4549
4556
4550 2004-07-01 Fernando Perez <fperez@colorado.edu>
4557 2004-07-01 Fernando Perez <fperez@colorado.edu>
4551
4558
4552 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4559 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4553 into @cd. Patch by Ville.
4560 into @cd. Patch by Ville.
4554
4561
4555 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4562 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4556 new function to store things after ipmaker runs. Patch by Ville.
4563 new function to store things after ipmaker runs. Patch by Ville.
4557 Eventually this will go away once ipmaker is removed and the class
4564 Eventually this will go away once ipmaker is removed and the class
4558 gets cleaned up, but for now it's ok. Key functionality here is
4565 gets cleaned up, but for now it's ok. Key functionality here is
4559 the addition of the persistent storage mechanism, a dict for
4566 the addition of the persistent storage mechanism, a dict for
4560 keeping data across sessions (for now just bookmarks, but more can
4567 keeping data across sessions (for now just bookmarks, but more can
4561 be implemented later).
4568 be implemented later).
4562
4569
4563 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4570 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4564 persistent across sections. Patch by Ville, I modified it
4571 persistent across sections. Patch by Ville, I modified it
4565 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4572 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4566 added a '-l' option to list all bookmarks.
4573 added a '-l' option to list all bookmarks.
4567
4574
4568 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4575 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4569 center for cleanup. Registered with atexit.register(). I moved
4576 center for cleanup. Registered with atexit.register(). I moved
4570 here the old exit_cleanup(). After a patch by Ville.
4577 here the old exit_cleanup(). After a patch by Ville.
4571
4578
4572 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4579 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4573 characters in the hacked shlex_split for python 2.2.
4580 characters in the hacked shlex_split for python 2.2.
4574
4581
4575 * IPython/iplib.py (file_matches): more fixes to filenames with
4582 * IPython/iplib.py (file_matches): more fixes to filenames with
4576 whitespace in them. It's not perfect, but limitations in python's
4583 whitespace in them. It's not perfect, but limitations in python's
4577 readline make it impossible to go further.
4584 readline make it impossible to go further.
4578
4585
4579 2004-06-29 Fernando Perez <fperez@colorado.edu>
4586 2004-06-29 Fernando Perez <fperez@colorado.edu>
4580
4587
4581 * IPython/iplib.py (file_matches): escape whitespace correctly in
4588 * IPython/iplib.py (file_matches): escape whitespace correctly in
4582 filename completions. Bug reported by Ville.
4589 filename completions. Bug reported by Ville.
4583
4590
4584 2004-06-28 Fernando Perez <fperez@colorado.edu>
4591 2004-06-28 Fernando Perez <fperez@colorado.edu>
4585
4592
4586 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4593 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4587 the history file will be called 'history-PROFNAME' (or just
4594 the history file will be called 'history-PROFNAME' (or just
4588 'history' if no profile is loaded). I was getting annoyed at
4595 'history' if no profile is loaded). I was getting annoyed at
4589 getting my Numerical work history clobbered by pysh sessions.
4596 getting my Numerical work history clobbered by pysh sessions.
4590
4597
4591 * IPython/iplib.py (InteractiveShell.__init__): Internal
4598 * IPython/iplib.py (InteractiveShell.__init__): Internal
4592 getoutputerror() function so that we can honor the system_verbose
4599 getoutputerror() function so that we can honor the system_verbose
4593 flag for _all_ system calls. I also added escaping of #
4600 flag for _all_ system calls. I also added escaping of #
4594 characters here to avoid confusing Itpl.
4601 characters here to avoid confusing Itpl.
4595
4602
4596 * IPython/Magic.py (shlex_split): removed call to shell in
4603 * IPython/Magic.py (shlex_split): removed call to shell in
4597 parse_options and replaced it with shlex.split(). The annoying
4604 parse_options and replaced it with shlex.split(). The annoying
4598 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4605 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4599 to backport it from 2.3, with several frail hacks (the shlex
4606 to backport it from 2.3, with several frail hacks (the shlex
4600 module is rather limited in 2.2). Thanks to a suggestion by Ville
4607 module is rather limited in 2.2). Thanks to a suggestion by Ville
4601 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4608 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4602 problem.
4609 problem.
4603
4610
4604 (Magic.magic_system_verbose): new toggle to print the actual
4611 (Magic.magic_system_verbose): new toggle to print the actual
4605 system calls made by ipython. Mainly for debugging purposes.
4612 system calls made by ipython. Mainly for debugging purposes.
4606
4613
4607 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4614 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4608 doesn't support persistence. Reported (and fix suggested) by
4615 doesn't support persistence. Reported (and fix suggested) by
4609 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4616 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4610
4617
4611 2004-06-26 Fernando Perez <fperez@colorado.edu>
4618 2004-06-26 Fernando Perez <fperez@colorado.edu>
4612
4619
4613 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4620 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4614 continue prompts.
4621 continue prompts.
4615
4622
4616 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4623 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4617 function (basically a big docstring) and a few more things here to
4624 function (basically a big docstring) and a few more things here to
4618 speedup startup. pysh.py is now very lightweight. We want because
4625 speedup startup. pysh.py is now very lightweight. We want because
4619 it gets execfile'd, while InterpreterExec gets imported, so
4626 it gets execfile'd, while InterpreterExec gets imported, so
4620 byte-compilation saves time.
4627 byte-compilation saves time.
4621
4628
4622 2004-06-25 Fernando Perez <fperez@colorado.edu>
4629 2004-06-25 Fernando Perez <fperez@colorado.edu>
4623
4630
4624 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4631 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4625 -NUM', which was recently broken.
4632 -NUM', which was recently broken.
4626
4633
4627 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4634 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4628 in multi-line input (but not !!, which doesn't make sense there).
4635 in multi-line input (but not !!, which doesn't make sense there).
4629
4636
4630 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4637 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4631 It's just too useful, and people can turn it off in the less
4638 It's just too useful, and people can turn it off in the less
4632 common cases where it's a problem.
4639 common cases where it's a problem.
4633
4640
4634 2004-06-24 Fernando Perez <fperez@colorado.edu>
4641 2004-06-24 Fernando Perez <fperez@colorado.edu>
4635
4642
4636 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4643 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4637 special syntaxes (like alias calling) is now allied in multi-line
4644 special syntaxes (like alias calling) is now allied in multi-line
4638 input. This is still _very_ experimental, but it's necessary for
4645 input. This is still _very_ experimental, but it's necessary for
4639 efficient shell usage combining python looping syntax with system
4646 efficient shell usage combining python looping syntax with system
4640 calls. For now it's restricted to aliases, I don't think it
4647 calls. For now it's restricted to aliases, I don't think it
4641 really even makes sense to have this for magics.
4648 really even makes sense to have this for magics.
4642
4649
4643 2004-06-23 Fernando Perez <fperez@colorado.edu>
4650 2004-06-23 Fernando Perez <fperez@colorado.edu>
4644
4651
4645 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4652 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4646 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4653 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4647
4654
4648 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4655 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4649 extensions under Windows (after code sent by Gary Bishop). The
4656 extensions under Windows (after code sent by Gary Bishop). The
4650 extensions considered 'executable' are stored in IPython's rc
4657 extensions considered 'executable' are stored in IPython's rc
4651 structure as win_exec_ext.
4658 structure as win_exec_ext.
4652
4659
4653 * IPython/genutils.py (shell): new function, like system() but
4660 * IPython/genutils.py (shell): new function, like system() but
4654 without return value. Very useful for interactive shell work.
4661 without return value. Very useful for interactive shell work.
4655
4662
4656 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4663 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4657 delete aliases.
4664 delete aliases.
4658
4665
4659 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4666 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4660 sure that the alias table doesn't contain python keywords.
4667 sure that the alias table doesn't contain python keywords.
4661
4668
4662 2004-06-21 Fernando Perez <fperez@colorado.edu>
4669 2004-06-21 Fernando Perez <fperez@colorado.edu>
4663
4670
4664 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4671 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4665 non-existent items are found in $PATH. Reported by Thorsten.
4672 non-existent items are found in $PATH. Reported by Thorsten.
4666
4673
4667 2004-06-20 Fernando Perez <fperez@colorado.edu>
4674 2004-06-20 Fernando Perez <fperez@colorado.edu>
4668
4675
4669 * IPython/iplib.py (complete): modified the completer so that the
4676 * IPython/iplib.py (complete): modified the completer so that the
4670 order of priorities can be easily changed at runtime.
4677 order of priorities can be easily changed at runtime.
4671
4678
4672 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4679 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4673 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4680 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4674
4681
4675 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4682 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4676 expand Python variables prepended with $ in all system calls. The
4683 expand Python variables prepended with $ in all system calls. The
4677 same was done to InteractiveShell.handle_shell_escape. Now all
4684 same was done to InteractiveShell.handle_shell_escape. Now all
4678 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4685 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4679 expansion of python variables and expressions according to the
4686 expansion of python variables and expressions according to the
4680 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4687 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4681
4688
4682 Though PEP-215 has been rejected, a similar (but simpler) one
4689 Though PEP-215 has been rejected, a similar (but simpler) one
4683 seems like it will go into Python 2.4, PEP-292 -
4690 seems like it will go into Python 2.4, PEP-292 -
4684 http://www.python.org/peps/pep-0292.html.
4691 http://www.python.org/peps/pep-0292.html.
4685
4692
4686 I'll keep the full syntax of PEP-215, since IPython has since the
4693 I'll keep the full syntax of PEP-215, since IPython has since the
4687 start used Ka-Ping Yee's reference implementation discussed there
4694 start used Ka-Ping Yee's reference implementation discussed there
4688 (Itpl), and I actually like the powerful semantics it offers.
4695 (Itpl), and I actually like the powerful semantics it offers.
4689
4696
4690 In order to access normal shell variables, the $ has to be escaped
4697 In order to access normal shell variables, the $ has to be escaped
4691 via an extra $. For example:
4698 via an extra $. For example:
4692
4699
4693 In [7]: PATH='a python variable'
4700 In [7]: PATH='a python variable'
4694
4701
4695 In [8]: !echo $PATH
4702 In [8]: !echo $PATH
4696 a python variable
4703 a python variable
4697
4704
4698 In [9]: !echo $$PATH
4705 In [9]: !echo $$PATH
4699 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4706 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4700
4707
4701 (Magic.parse_options): escape $ so the shell doesn't evaluate
4708 (Magic.parse_options): escape $ so the shell doesn't evaluate
4702 things prematurely.
4709 things prematurely.
4703
4710
4704 * IPython/iplib.py (InteractiveShell.call_alias): added the
4711 * IPython/iplib.py (InteractiveShell.call_alias): added the
4705 ability for aliases to expand python variables via $.
4712 ability for aliases to expand python variables via $.
4706
4713
4707 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4714 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4708 system, now there's a @rehash/@rehashx pair of magics. These work
4715 system, now there's a @rehash/@rehashx pair of magics. These work
4709 like the csh rehash command, and can be invoked at any time. They
4716 like the csh rehash command, and can be invoked at any time. They
4710 build a table of aliases to everything in the user's $PATH
4717 build a table of aliases to everything in the user's $PATH
4711 (@rehash uses everything, @rehashx is slower but only adds
4718 (@rehash uses everything, @rehashx is slower but only adds
4712 executable files). With this, the pysh.py-based shell profile can
4719 executable files). With this, the pysh.py-based shell profile can
4713 now simply call rehash upon startup, and full access to all
4720 now simply call rehash upon startup, and full access to all
4714 programs in the user's path is obtained.
4721 programs in the user's path is obtained.
4715
4722
4716 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4723 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4717 functionality is now fully in place. I removed the old dynamic
4724 functionality is now fully in place. I removed the old dynamic
4718 code generation based approach, in favor of a much lighter one
4725 code generation based approach, in favor of a much lighter one
4719 based on a simple dict. The advantage is that this allows me to
4726 based on a simple dict. The advantage is that this allows me to
4720 now have thousands of aliases with negligible cost (unthinkable
4727 now have thousands of aliases with negligible cost (unthinkable
4721 with the old system).
4728 with the old system).
4722
4729
4723 2004-06-19 Fernando Perez <fperez@colorado.edu>
4730 2004-06-19 Fernando Perez <fperez@colorado.edu>
4724
4731
4725 * IPython/iplib.py (__init__): extended MagicCompleter class to
4732 * IPython/iplib.py (__init__): extended MagicCompleter class to
4726 also complete (last in priority) on user aliases.
4733 also complete (last in priority) on user aliases.
4727
4734
4728 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4735 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4729 call to eval.
4736 call to eval.
4730 (ItplNS.__init__): Added a new class which functions like Itpl,
4737 (ItplNS.__init__): Added a new class which functions like Itpl,
4731 but allows configuring the namespace for the evaluation to occur
4738 but allows configuring the namespace for the evaluation to occur
4732 in.
4739 in.
4733
4740
4734 2004-06-18 Fernando Perez <fperez@colorado.edu>
4741 2004-06-18 Fernando Perez <fperez@colorado.edu>
4735
4742
4736 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4743 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4737 better message when 'exit' or 'quit' are typed (a common newbie
4744 better message when 'exit' or 'quit' are typed (a common newbie
4738 confusion).
4745 confusion).
4739
4746
4740 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4747 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4741 check for Windows users.
4748 check for Windows users.
4742
4749
4743 * IPython/iplib.py (InteractiveShell.user_setup): removed
4750 * IPython/iplib.py (InteractiveShell.user_setup): removed
4744 disabling of colors for Windows. I'll test at runtime and issue a
4751 disabling of colors for Windows. I'll test at runtime and issue a
4745 warning if Gary's readline isn't found, as to nudge users to
4752 warning if Gary's readline isn't found, as to nudge users to
4746 download it.
4753 download it.
4747
4754
4748 2004-06-16 Fernando Perez <fperez@colorado.edu>
4755 2004-06-16 Fernando Perez <fperez@colorado.edu>
4749
4756
4750 * IPython/genutils.py (Stream.__init__): changed to print errors
4757 * IPython/genutils.py (Stream.__init__): changed to print errors
4751 to sys.stderr. I had a circular dependency here. Now it's
4758 to sys.stderr. I had a circular dependency here. Now it's
4752 possible to run ipython as IDLE's shell (consider this pre-alpha,
4759 possible to run ipython as IDLE's shell (consider this pre-alpha,
4753 since true stdout things end up in the starting terminal instead
4760 since true stdout things end up in the starting terminal instead
4754 of IDLE's out).
4761 of IDLE's out).
4755
4762
4756 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4763 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4757 users who haven't # updated their prompt_in2 definitions. Remove
4764 users who haven't # updated their prompt_in2 definitions. Remove
4758 eventually.
4765 eventually.
4759 (multiple_replace): added credit to original ASPN recipe.
4766 (multiple_replace): added credit to original ASPN recipe.
4760
4767
4761 2004-06-15 Fernando Perez <fperez@colorado.edu>
4768 2004-06-15 Fernando Perez <fperez@colorado.edu>
4762
4769
4763 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4770 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4764 list of auto-defined aliases.
4771 list of auto-defined aliases.
4765
4772
4766 2004-06-13 Fernando Perez <fperez@colorado.edu>
4773 2004-06-13 Fernando Perez <fperez@colorado.edu>
4767
4774
4768 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4775 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4769 install was really requested (so setup.py can be used for other
4776 install was really requested (so setup.py can be used for other
4770 things under Windows).
4777 things under Windows).
4771
4778
4772 2004-06-10 Fernando Perez <fperez@colorado.edu>
4779 2004-06-10 Fernando Perez <fperez@colorado.edu>
4773
4780
4774 * IPython/Logger.py (Logger.create_log): Manually remove any old
4781 * IPython/Logger.py (Logger.create_log): Manually remove any old
4775 backup, since os.remove may fail under Windows. Fixes bug
4782 backup, since os.remove may fail under Windows. Fixes bug
4776 reported by Thorsten.
4783 reported by Thorsten.
4777
4784
4778 2004-06-09 Fernando Perez <fperez@colorado.edu>
4785 2004-06-09 Fernando Perez <fperez@colorado.edu>
4779
4786
4780 * examples/example-embed.py: fixed all references to %n (replaced
4787 * examples/example-embed.py: fixed all references to %n (replaced
4781 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4788 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4782 for all examples and the manual as well.
4789 for all examples and the manual as well.
4783
4790
4784 2004-06-08 Fernando Perez <fperez@colorado.edu>
4791 2004-06-08 Fernando Perez <fperez@colorado.edu>
4785
4792
4786 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4793 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4787 alignment and color management. All 3 prompt subsystems now
4794 alignment and color management. All 3 prompt subsystems now
4788 inherit from BasePrompt.
4795 inherit from BasePrompt.
4789
4796
4790 * tools/release: updates for windows installer build and tag rpms
4797 * tools/release: updates for windows installer build and tag rpms
4791 with python version (since paths are fixed).
4798 with python version (since paths are fixed).
4792
4799
4793 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4800 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4794 which will become eventually obsolete. Also fixed the default
4801 which will become eventually obsolete. Also fixed the default
4795 prompt_in2 to use \D, so at least new users start with the correct
4802 prompt_in2 to use \D, so at least new users start with the correct
4796 defaults.
4803 defaults.
4797 WARNING: Users with existing ipythonrc files will need to apply
4804 WARNING: Users with existing ipythonrc files will need to apply
4798 this fix manually!
4805 this fix manually!
4799
4806
4800 * setup.py: make windows installer (.exe). This is finally the
4807 * setup.py: make windows installer (.exe). This is finally the
4801 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4808 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4802 which I hadn't included because it required Python 2.3 (or recent
4809 which I hadn't included because it required Python 2.3 (or recent
4803 distutils).
4810 distutils).
4804
4811
4805 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4812 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4806 usage of new '\D' escape.
4813 usage of new '\D' escape.
4807
4814
4808 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4815 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4809 lacks os.getuid())
4816 lacks os.getuid())
4810 (CachedOutput.set_colors): Added the ability to turn coloring
4817 (CachedOutput.set_colors): Added the ability to turn coloring
4811 on/off with @colors even for manually defined prompt colors. It
4818 on/off with @colors even for manually defined prompt colors. It
4812 uses a nasty global, but it works safely and via the generic color
4819 uses a nasty global, but it works safely and via the generic color
4813 handling mechanism.
4820 handling mechanism.
4814 (Prompt2.__init__): Introduced new escape '\D' for continuation
4821 (Prompt2.__init__): Introduced new escape '\D' for continuation
4815 prompts. It represents the counter ('\#') as dots.
4822 prompts. It represents the counter ('\#') as dots.
4816 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4823 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4817 need to update their ipythonrc files and replace '%n' with '\D' in
4824 need to update their ipythonrc files and replace '%n' with '\D' in
4818 their prompt_in2 settings everywhere. Sorry, but there's
4825 their prompt_in2 settings everywhere. Sorry, but there's
4819 otherwise no clean way to get all prompts to properly align. The
4826 otherwise no clean way to get all prompts to properly align. The
4820 ipythonrc shipped with IPython has been updated.
4827 ipythonrc shipped with IPython has been updated.
4821
4828
4822 2004-06-07 Fernando Perez <fperez@colorado.edu>
4829 2004-06-07 Fernando Perez <fperez@colorado.edu>
4823
4830
4824 * setup.py (isfile): Pass local_icons option to latex2html, so the
4831 * setup.py (isfile): Pass local_icons option to latex2html, so the
4825 resulting HTML file is self-contained. Thanks to
4832 resulting HTML file is self-contained. Thanks to
4826 dryice-AT-liu.com.cn for the tip.
4833 dryice-AT-liu.com.cn for the tip.
4827
4834
4828 * pysh.py: I created a new profile 'shell', which implements a
4835 * pysh.py: I created a new profile 'shell', which implements a
4829 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4836 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4830 system shell, nor will it become one anytime soon. It's mainly
4837 system shell, nor will it become one anytime soon. It's mainly
4831 meant to illustrate the use of the new flexible bash-like prompts.
4838 meant to illustrate the use of the new flexible bash-like prompts.
4832 I guess it could be used by hardy souls for true shell management,
4839 I guess it could be used by hardy souls for true shell management,
4833 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4840 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4834 profile. This uses the InterpreterExec extension provided by
4841 profile. This uses the InterpreterExec extension provided by
4835 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4842 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4836
4843
4837 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4844 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4838 auto-align itself with the length of the previous input prompt
4845 auto-align itself with the length of the previous input prompt
4839 (taking into account the invisible color escapes).
4846 (taking into account the invisible color escapes).
4840 (CachedOutput.__init__): Large restructuring of this class. Now
4847 (CachedOutput.__init__): Large restructuring of this class. Now
4841 all three prompts (primary1, primary2, output) are proper objects,
4848 all three prompts (primary1, primary2, output) are proper objects,
4842 managed by the 'parent' CachedOutput class. The code is still a
4849 managed by the 'parent' CachedOutput class. The code is still a
4843 bit hackish (all prompts share state via a pointer to the cache),
4850 bit hackish (all prompts share state via a pointer to the cache),
4844 but it's overall far cleaner than before.
4851 but it's overall far cleaner than before.
4845
4852
4846 * IPython/genutils.py (getoutputerror): modified to add verbose,
4853 * IPython/genutils.py (getoutputerror): modified to add verbose,
4847 debug and header options. This makes the interface of all getout*
4854 debug and header options. This makes the interface of all getout*
4848 functions uniform.
4855 functions uniform.
4849 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4856 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4850
4857
4851 * IPython/Magic.py (Magic.default_option): added a function to
4858 * IPython/Magic.py (Magic.default_option): added a function to
4852 allow registering default options for any magic command. This
4859 allow registering default options for any magic command. This
4853 makes it easy to have profiles which customize the magics globally
4860 makes it easy to have profiles which customize the magics globally
4854 for a certain use. The values set through this function are
4861 for a certain use. The values set through this function are
4855 picked up by the parse_options() method, which all magics should
4862 picked up by the parse_options() method, which all magics should
4856 use to parse their options.
4863 use to parse their options.
4857
4864
4858 * IPython/genutils.py (warn): modified the warnings framework to
4865 * IPython/genutils.py (warn): modified the warnings framework to
4859 use the Term I/O class. I'm trying to slowly unify all of
4866 use the Term I/O class. I'm trying to slowly unify all of
4860 IPython's I/O operations to pass through Term.
4867 IPython's I/O operations to pass through Term.
4861
4868
4862 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4869 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4863 the secondary prompt to correctly match the length of the primary
4870 the secondary prompt to correctly match the length of the primary
4864 one for any prompt. Now multi-line code will properly line up
4871 one for any prompt. Now multi-line code will properly line up
4865 even for path dependent prompts, such as the new ones available
4872 even for path dependent prompts, such as the new ones available
4866 via the prompt_specials.
4873 via the prompt_specials.
4867
4874
4868 2004-06-06 Fernando Perez <fperez@colorado.edu>
4875 2004-06-06 Fernando Perez <fperez@colorado.edu>
4869
4876
4870 * IPython/Prompts.py (prompt_specials): Added the ability to have
4877 * IPython/Prompts.py (prompt_specials): Added the ability to have
4871 bash-like special sequences in the prompts, which get
4878 bash-like special sequences in the prompts, which get
4872 automatically expanded. Things like hostname, current working
4879 automatically expanded. Things like hostname, current working
4873 directory and username are implemented already, but it's easy to
4880 directory and username are implemented already, but it's easy to
4874 add more in the future. Thanks to a patch by W.J. van der Laan
4881 add more in the future. Thanks to a patch by W.J. van der Laan
4875 <gnufnork-AT-hetdigitalegat.nl>
4882 <gnufnork-AT-hetdigitalegat.nl>
4876 (prompt_specials): Added color support for prompt strings, so
4883 (prompt_specials): Added color support for prompt strings, so
4877 users can define arbitrary color setups for their prompts.
4884 users can define arbitrary color setups for their prompts.
4878
4885
4879 2004-06-05 Fernando Perez <fperez@colorado.edu>
4886 2004-06-05 Fernando Perez <fperez@colorado.edu>
4880
4887
4881 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4888 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4882 code to load Gary Bishop's readline and configure it
4889 code to load Gary Bishop's readline and configure it
4883 automatically. Thanks to Gary for help on this.
4890 automatically. Thanks to Gary for help on this.
4884
4891
4885 2004-06-01 Fernando Perez <fperez@colorado.edu>
4892 2004-06-01 Fernando Perez <fperez@colorado.edu>
4886
4893
4887 * IPython/Logger.py (Logger.create_log): fix bug for logging
4894 * IPython/Logger.py (Logger.create_log): fix bug for logging
4888 with no filename (previous fix was incomplete).
4895 with no filename (previous fix was incomplete).
4889
4896
4890 2004-05-25 Fernando Perez <fperez@colorado.edu>
4897 2004-05-25 Fernando Perez <fperez@colorado.edu>
4891
4898
4892 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4899 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4893 parens would get passed to the shell.
4900 parens would get passed to the shell.
4894
4901
4895 2004-05-20 Fernando Perez <fperez@colorado.edu>
4902 2004-05-20 Fernando Perez <fperez@colorado.edu>
4896
4903
4897 * IPython/Magic.py (Magic.magic_prun): changed default profile
4904 * IPython/Magic.py (Magic.magic_prun): changed default profile
4898 sort order to 'time' (the more common profiling need).
4905 sort order to 'time' (the more common profiling need).
4899
4906
4900 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4907 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4901 so that source code shown is guaranteed in sync with the file on
4908 so that source code shown is guaranteed in sync with the file on
4902 disk (also changed in psource). Similar fix to the one for
4909 disk (also changed in psource). Similar fix to the one for
4903 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4910 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4904 <yann.ledu-AT-noos.fr>.
4911 <yann.ledu-AT-noos.fr>.
4905
4912
4906 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4913 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4907 with a single option would not be correctly parsed. Closes
4914 with a single option would not be correctly parsed. Closes
4908 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4915 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4909 introduced in 0.6.0 (on 2004-05-06).
4916 introduced in 0.6.0 (on 2004-05-06).
4910
4917
4911 2004-05-13 *** Released version 0.6.0
4918 2004-05-13 *** Released version 0.6.0
4912
4919
4913 2004-05-13 Fernando Perez <fperez@colorado.edu>
4920 2004-05-13 Fernando Perez <fperez@colorado.edu>
4914
4921
4915 * debian/: Added debian/ directory to CVS, so that debian support
4922 * debian/: Added debian/ directory to CVS, so that debian support
4916 is publicly accessible. The debian package is maintained by Jack
4923 is publicly accessible. The debian package is maintained by Jack
4917 Moffit <jack-AT-xiph.org>.
4924 Moffit <jack-AT-xiph.org>.
4918
4925
4919 * Documentation: included the notes about an ipython-based system
4926 * Documentation: included the notes about an ipython-based system
4920 shell (the hypothetical 'pysh') into the new_design.pdf document,
4927 shell (the hypothetical 'pysh') into the new_design.pdf document,
4921 so that these ideas get distributed to users along with the
4928 so that these ideas get distributed to users along with the
4922 official documentation.
4929 official documentation.
4923
4930
4924 2004-05-10 Fernando Perez <fperez@colorado.edu>
4931 2004-05-10 Fernando Perez <fperez@colorado.edu>
4925
4932
4926 * IPython/Logger.py (Logger.create_log): fix recently introduced
4933 * IPython/Logger.py (Logger.create_log): fix recently introduced
4927 bug (misindented line) where logstart would fail when not given an
4934 bug (misindented line) where logstart would fail when not given an
4928 explicit filename.
4935 explicit filename.
4929
4936
4930 2004-05-09 Fernando Perez <fperez@colorado.edu>
4937 2004-05-09 Fernando Perez <fperez@colorado.edu>
4931
4938
4932 * IPython/Magic.py (Magic.parse_options): skip system call when
4939 * IPython/Magic.py (Magic.parse_options): skip system call when
4933 there are no options to look for. Faster, cleaner for the common
4940 there are no options to look for. Faster, cleaner for the common
4934 case.
4941 case.
4935
4942
4936 * Documentation: many updates to the manual: describing Windows
4943 * Documentation: many updates to the manual: describing Windows
4937 support better, Gnuplot updates, credits, misc small stuff. Also
4944 support better, Gnuplot updates, credits, misc small stuff. Also
4938 updated the new_design doc a bit.
4945 updated the new_design doc a bit.
4939
4946
4940 2004-05-06 *** Released version 0.6.0.rc1
4947 2004-05-06 *** Released version 0.6.0.rc1
4941
4948
4942 2004-05-06 Fernando Perez <fperez@colorado.edu>
4949 2004-05-06 Fernando Perez <fperez@colorado.edu>
4943
4950
4944 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4951 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4945 operations to use the vastly more efficient list/''.join() method.
4952 operations to use the vastly more efficient list/''.join() method.
4946 (FormattedTB.text): Fix
4953 (FormattedTB.text): Fix
4947 http://www.scipy.net/roundup/ipython/issue12 - exception source
4954 http://www.scipy.net/roundup/ipython/issue12 - exception source
4948 extract not updated after reload. Thanks to Mike Salib
4955 extract not updated after reload. Thanks to Mike Salib
4949 <msalib-AT-mit.edu> for pinning the source of the problem.
4956 <msalib-AT-mit.edu> for pinning the source of the problem.
4950 Fortunately, the solution works inside ipython and doesn't require
4957 Fortunately, the solution works inside ipython and doesn't require
4951 any changes to python proper.
4958 any changes to python proper.
4952
4959
4953 * IPython/Magic.py (Magic.parse_options): Improved to process the
4960 * IPython/Magic.py (Magic.parse_options): Improved to process the
4954 argument list as a true shell would (by actually using the
4961 argument list as a true shell would (by actually using the
4955 underlying system shell). This way, all @magics automatically get
4962 underlying system shell). This way, all @magics automatically get
4956 shell expansion for variables. Thanks to a comment by Alex
4963 shell expansion for variables. Thanks to a comment by Alex
4957 Schmolck.
4964 Schmolck.
4958
4965
4959 2004-04-04 Fernando Perez <fperez@colorado.edu>
4966 2004-04-04 Fernando Perez <fperez@colorado.edu>
4960
4967
4961 * IPython/iplib.py (InteractiveShell.interact): Added a special
4968 * IPython/iplib.py (InteractiveShell.interact): Added a special
4962 trap for a debugger quit exception, which is basically impossible
4969 trap for a debugger quit exception, which is basically impossible
4963 to handle by normal mechanisms, given what pdb does to the stack.
4970 to handle by normal mechanisms, given what pdb does to the stack.
4964 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4971 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4965
4972
4966 2004-04-03 Fernando Perez <fperez@colorado.edu>
4973 2004-04-03 Fernando Perez <fperez@colorado.edu>
4967
4974
4968 * IPython/genutils.py (Term): Standardized the names of the Term
4975 * IPython/genutils.py (Term): Standardized the names of the Term
4969 class streams to cin/cout/cerr, following C++ naming conventions
4976 class streams to cin/cout/cerr, following C++ naming conventions
4970 (I can't use in/out/err because 'in' is not a valid attribute
4977 (I can't use in/out/err because 'in' is not a valid attribute
4971 name).
4978 name).
4972
4979
4973 * IPython/iplib.py (InteractiveShell.interact): don't increment
4980 * IPython/iplib.py (InteractiveShell.interact): don't increment
4974 the prompt if there's no user input. By Daniel 'Dang' Griffith
4981 the prompt if there's no user input. By Daniel 'Dang' Griffith
4975 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4982 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4976 Francois Pinard.
4983 Francois Pinard.
4977
4984
4978 2004-04-02 Fernando Perez <fperez@colorado.edu>
4985 2004-04-02 Fernando Perez <fperez@colorado.edu>
4979
4986
4980 * IPython/genutils.py (Stream.__init__): Modified to survive at
4987 * IPython/genutils.py (Stream.__init__): Modified to survive at
4981 least importing in contexts where stdin/out/err aren't true file
4988 least importing in contexts where stdin/out/err aren't true file
4982 objects, such as PyCrust (they lack fileno() and mode). However,
4989 objects, such as PyCrust (they lack fileno() and mode). However,
4983 the recovery facilities which rely on these things existing will
4990 the recovery facilities which rely on these things existing will
4984 not work.
4991 not work.
4985
4992
4986 2004-04-01 Fernando Perez <fperez@colorado.edu>
4993 2004-04-01 Fernando Perez <fperez@colorado.edu>
4987
4994
4988 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4995 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4989 use the new getoutputerror() function, so it properly
4996 use the new getoutputerror() function, so it properly
4990 distinguishes stdout/err.
4997 distinguishes stdout/err.
4991
4998
4992 * IPython/genutils.py (getoutputerror): added a function to
4999 * IPython/genutils.py (getoutputerror): added a function to
4993 capture separately the standard output and error of a command.
5000 capture separately the standard output and error of a command.
4994 After a comment from dang on the mailing lists. This code is
5001 After a comment from dang on the mailing lists. This code is
4995 basically a modified version of commands.getstatusoutput(), from
5002 basically a modified version of commands.getstatusoutput(), from
4996 the standard library.
5003 the standard library.
4997
5004
4998 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5005 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4999 '!!' as a special syntax (shorthand) to access @sx.
5006 '!!' as a special syntax (shorthand) to access @sx.
5000
5007
5001 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5008 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5002 command and return its output as a list split on '\n'.
5009 command and return its output as a list split on '\n'.
5003
5010
5004 2004-03-31 Fernando Perez <fperez@colorado.edu>
5011 2004-03-31 Fernando Perez <fperez@colorado.edu>
5005
5012
5006 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5013 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5007 method to dictionaries used as FakeModule instances if they lack
5014 method to dictionaries used as FakeModule instances if they lack
5008 it. At least pydoc in python2.3 breaks for runtime-defined
5015 it. At least pydoc in python2.3 breaks for runtime-defined
5009 functions without this hack. At some point I need to _really_
5016 functions without this hack. At some point I need to _really_
5010 understand what FakeModule is doing, because it's a gross hack.
5017 understand what FakeModule is doing, because it's a gross hack.
5011 But it solves Arnd's problem for now...
5018 But it solves Arnd's problem for now...
5012
5019
5013 2004-02-27 Fernando Perez <fperez@colorado.edu>
5020 2004-02-27 Fernando Perez <fperez@colorado.edu>
5014
5021
5015 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5022 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5016 mode would behave erratically. Also increased the number of
5023 mode would behave erratically. Also increased the number of
5017 possible logs in rotate mod to 999. Thanks to Rod Holland
5024 possible logs in rotate mod to 999. Thanks to Rod Holland
5018 <rhh@StructureLABS.com> for the report and fixes.
5025 <rhh@StructureLABS.com> for the report and fixes.
5019
5026
5020 2004-02-26 Fernando Perez <fperez@colorado.edu>
5027 2004-02-26 Fernando Perez <fperez@colorado.edu>
5021
5028
5022 * IPython/genutils.py (page): Check that the curses module really
5029 * IPython/genutils.py (page): Check that the curses module really
5023 has the initscr attribute before trying to use it. For some
5030 has the initscr attribute before trying to use it. For some
5024 reason, the Solaris curses module is missing this. I think this
5031 reason, the Solaris curses module is missing this. I think this
5025 should be considered a Solaris python bug, but I'm not sure.
5032 should be considered a Solaris python bug, but I'm not sure.
5026
5033
5027 2004-01-17 Fernando Perez <fperez@colorado.edu>
5034 2004-01-17 Fernando Perez <fperez@colorado.edu>
5028
5035
5029 * IPython/genutils.py (Stream.__init__): Changes to try to make
5036 * IPython/genutils.py (Stream.__init__): Changes to try to make
5030 ipython robust against stdin/out/err being closed by the user.
5037 ipython robust against stdin/out/err being closed by the user.
5031 This is 'user error' (and blocks a normal python session, at least
5038 This is 'user error' (and blocks a normal python session, at least
5032 the stdout case). However, Ipython should be able to survive such
5039 the stdout case). However, Ipython should be able to survive such
5033 instances of abuse as gracefully as possible. To simplify the
5040 instances of abuse as gracefully as possible. To simplify the
5034 coding and maintain compatibility with Gary Bishop's Term
5041 coding and maintain compatibility with Gary Bishop's Term
5035 contributions, I've made use of classmethods for this. I think
5042 contributions, I've made use of classmethods for this. I think
5036 this introduces a dependency on python 2.2.
5043 this introduces a dependency on python 2.2.
5037
5044
5038 2004-01-13 Fernando Perez <fperez@colorado.edu>
5045 2004-01-13 Fernando Perez <fperez@colorado.edu>
5039
5046
5040 * IPython/numutils.py (exp_safe): simplified the code a bit and
5047 * IPython/numutils.py (exp_safe): simplified the code a bit and
5041 removed the need for importing the kinds module altogether.
5048 removed the need for importing the kinds module altogether.
5042
5049
5043 2004-01-06 Fernando Perez <fperez@colorado.edu>
5050 2004-01-06 Fernando Perez <fperez@colorado.edu>
5044
5051
5045 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5052 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5046 a magic function instead, after some community feedback. No
5053 a magic function instead, after some community feedback. No
5047 special syntax will exist for it, but its name is deliberately
5054 special syntax will exist for it, but its name is deliberately
5048 very short.
5055 very short.
5049
5056
5050 2003-12-20 Fernando Perez <fperez@colorado.edu>
5057 2003-12-20 Fernando Perez <fperez@colorado.edu>
5051
5058
5052 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5059 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5053 new functionality, to automagically assign the result of a shell
5060 new functionality, to automagically assign the result of a shell
5054 command to a variable. I'll solicit some community feedback on
5061 command to a variable. I'll solicit some community feedback on
5055 this before making it permanent.
5062 this before making it permanent.
5056
5063
5057 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5064 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5058 requested about callables for which inspect couldn't obtain a
5065 requested about callables for which inspect couldn't obtain a
5059 proper argspec. Thanks to a crash report sent by Etienne
5066 proper argspec. Thanks to a crash report sent by Etienne
5060 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5067 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5061
5068
5062 2003-12-09 Fernando Perez <fperez@colorado.edu>
5069 2003-12-09 Fernando Perez <fperez@colorado.edu>
5063
5070
5064 * IPython/genutils.py (page): patch for the pager to work across
5071 * IPython/genutils.py (page): patch for the pager to work across
5065 various versions of Windows. By Gary Bishop.
5072 various versions of Windows. By Gary Bishop.
5066
5073
5067 2003-12-04 Fernando Perez <fperez@colorado.edu>
5074 2003-12-04 Fernando Perez <fperez@colorado.edu>
5068
5075
5069 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5076 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5070 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5077 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5071 While I tested this and it looks ok, there may still be corner
5078 While I tested this and it looks ok, there may still be corner
5072 cases I've missed.
5079 cases I've missed.
5073
5080
5074 2003-12-01 Fernando Perez <fperez@colorado.edu>
5081 2003-12-01 Fernando Perez <fperez@colorado.edu>
5075
5082
5076 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5083 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5077 where a line like 'p,q=1,2' would fail because the automagic
5084 where a line like 'p,q=1,2' would fail because the automagic
5078 system would be triggered for @p.
5085 system would be triggered for @p.
5079
5086
5080 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5087 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5081 cleanups, code unmodified.
5088 cleanups, code unmodified.
5082
5089
5083 * IPython/genutils.py (Term): added a class for IPython to handle
5090 * IPython/genutils.py (Term): added a class for IPython to handle
5084 output. In most cases it will just be a proxy for stdout/err, but
5091 output. In most cases it will just be a proxy for stdout/err, but
5085 having this allows modifications to be made for some platforms,
5092 having this allows modifications to be made for some platforms,
5086 such as handling color escapes under Windows. All of this code
5093 such as handling color escapes under Windows. All of this code
5087 was contributed by Gary Bishop, with minor modifications by me.
5094 was contributed by Gary Bishop, with minor modifications by me.
5088 The actual changes affect many files.
5095 The actual changes affect many files.
5089
5096
5090 2003-11-30 Fernando Perez <fperez@colorado.edu>
5097 2003-11-30 Fernando Perez <fperez@colorado.edu>
5091
5098
5092 * IPython/iplib.py (file_matches): new completion code, courtesy
5099 * IPython/iplib.py (file_matches): new completion code, courtesy
5093 of Jeff Collins. This enables filename completion again under
5100 of Jeff Collins. This enables filename completion again under
5094 python 2.3, which disabled it at the C level.
5101 python 2.3, which disabled it at the C level.
5095
5102
5096 2003-11-11 Fernando Perez <fperez@colorado.edu>
5103 2003-11-11 Fernando Perez <fperez@colorado.edu>
5097
5104
5098 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5105 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5099 for Numeric.array(map(...)), but often convenient.
5106 for Numeric.array(map(...)), but often convenient.
5100
5107
5101 2003-11-05 Fernando Perez <fperez@colorado.edu>
5108 2003-11-05 Fernando Perez <fperez@colorado.edu>
5102
5109
5103 * IPython/numutils.py (frange): Changed a call from int() to
5110 * IPython/numutils.py (frange): Changed a call from int() to
5104 int(round()) to prevent a problem reported with arange() in the
5111 int(round()) to prevent a problem reported with arange() in the
5105 numpy list.
5112 numpy list.
5106
5113
5107 2003-10-06 Fernando Perez <fperez@colorado.edu>
5114 2003-10-06 Fernando Perez <fperez@colorado.edu>
5108
5115
5109 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5116 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5110 prevent crashes if sys lacks an argv attribute (it happens with
5117 prevent crashes if sys lacks an argv attribute (it happens with
5111 embedded interpreters which build a bare-bones sys module).
5118 embedded interpreters which build a bare-bones sys module).
5112 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5119 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5113
5120
5114 2003-09-24 Fernando Perez <fperez@colorado.edu>
5121 2003-09-24 Fernando Perez <fperez@colorado.edu>
5115
5122
5116 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5123 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5117 to protect against poorly written user objects where __getattr__
5124 to protect against poorly written user objects where __getattr__
5118 raises exceptions other than AttributeError. Thanks to a bug
5125 raises exceptions other than AttributeError. Thanks to a bug
5119 report by Oliver Sander <osander-AT-gmx.de>.
5126 report by Oliver Sander <osander-AT-gmx.de>.
5120
5127
5121 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5128 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5122 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5129 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5123
5130
5124 2003-09-09 Fernando Perez <fperez@colorado.edu>
5131 2003-09-09 Fernando Perez <fperez@colorado.edu>
5125
5132
5126 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5133 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5127 unpacking a list whith a callable as first element would
5134 unpacking a list whith a callable as first element would
5128 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5135 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5129 Collins.
5136 Collins.
5130
5137
5131 2003-08-25 *** Released version 0.5.0
5138 2003-08-25 *** Released version 0.5.0
5132
5139
5133 2003-08-22 Fernando Perez <fperez@colorado.edu>
5140 2003-08-22 Fernando Perez <fperez@colorado.edu>
5134
5141
5135 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5142 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5136 improperly defined user exceptions. Thanks to feedback from Mark
5143 improperly defined user exceptions. Thanks to feedback from Mark
5137 Russell <mrussell-AT-verio.net>.
5144 Russell <mrussell-AT-verio.net>.
5138
5145
5139 2003-08-20 Fernando Perez <fperez@colorado.edu>
5146 2003-08-20 Fernando Perez <fperez@colorado.edu>
5140
5147
5141 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5148 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5142 printing so that it would print multi-line string forms starting
5149 printing so that it would print multi-line string forms starting
5143 with a new line. This way the formatting is better respected for
5150 with a new line. This way the formatting is better respected for
5144 objects which work hard to make nice string forms.
5151 objects which work hard to make nice string forms.
5145
5152
5146 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5153 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5147 autocall would overtake data access for objects with both
5154 autocall would overtake data access for objects with both
5148 __getitem__ and __call__.
5155 __getitem__ and __call__.
5149
5156
5150 2003-08-19 *** Released version 0.5.0-rc1
5157 2003-08-19 *** Released version 0.5.0-rc1
5151
5158
5152 2003-08-19 Fernando Perez <fperez@colorado.edu>
5159 2003-08-19 Fernando Perez <fperez@colorado.edu>
5153
5160
5154 * IPython/deep_reload.py (load_tail): single tiny change here
5161 * IPython/deep_reload.py (load_tail): single tiny change here
5155 seems to fix the long-standing bug of dreload() failing to work
5162 seems to fix the long-standing bug of dreload() failing to work
5156 for dotted names. But this module is pretty tricky, so I may have
5163 for dotted names. But this module is pretty tricky, so I may have
5157 missed some subtlety. Needs more testing!.
5164 missed some subtlety. Needs more testing!.
5158
5165
5159 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5166 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5160 exceptions which have badly implemented __str__ methods.
5167 exceptions which have badly implemented __str__ methods.
5161 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5168 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5162 which I've been getting reports about from Python 2.3 users. I
5169 which I've been getting reports about from Python 2.3 users. I
5163 wish I had a simple test case to reproduce the problem, so I could
5170 wish I had a simple test case to reproduce the problem, so I could
5164 either write a cleaner workaround or file a bug report if
5171 either write a cleaner workaround or file a bug report if
5165 necessary.
5172 necessary.
5166
5173
5167 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5174 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5168 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5175 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5169 a bug report by Tjabo Kloppenburg.
5176 a bug report by Tjabo Kloppenburg.
5170
5177
5171 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5178 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5172 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5179 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5173 seems rather unstable. Thanks to a bug report by Tjabo
5180 seems rather unstable. Thanks to a bug report by Tjabo
5174 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5181 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5175
5182
5176 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5183 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5177 this out soon because of the critical fixes in the inner loop for
5184 this out soon because of the critical fixes in the inner loop for
5178 generators.
5185 generators.
5179
5186
5180 * IPython/Magic.py (Magic.getargspec): removed. This (and
5187 * IPython/Magic.py (Magic.getargspec): removed. This (and
5181 _get_def) have been obsoleted by OInspect for a long time, I
5188 _get_def) have been obsoleted by OInspect for a long time, I
5182 hadn't noticed that they were dead code.
5189 hadn't noticed that they were dead code.
5183 (Magic._ofind): restored _ofind functionality for a few literals
5190 (Magic._ofind): restored _ofind functionality for a few literals
5184 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5191 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5185 for things like "hello".capitalize?, since that would require a
5192 for things like "hello".capitalize?, since that would require a
5186 potentially dangerous eval() again.
5193 potentially dangerous eval() again.
5187
5194
5188 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5195 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5189 logic a bit more to clean up the escapes handling and minimize the
5196 logic a bit more to clean up the escapes handling and minimize the
5190 use of _ofind to only necessary cases. The interactive 'feel' of
5197 use of _ofind to only necessary cases. The interactive 'feel' of
5191 IPython should have improved quite a bit with the changes in
5198 IPython should have improved quite a bit with the changes in
5192 _prefilter and _ofind (besides being far safer than before).
5199 _prefilter and _ofind (besides being far safer than before).
5193
5200
5194 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5201 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5195 obscure, never reported). Edit would fail to find the object to
5202 obscure, never reported). Edit would fail to find the object to
5196 edit under some circumstances.
5203 edit under some circumstances.
5197 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5204 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5198 which were causing double-calling of generators. Those eval calls
5205 which were causing double-calling of generators. Those eval calls
5199 were _very_ dangerous, since code with side effects could be
5206 were _very_ dangerous, since code with side effects could be
5200 triggered. As they say, 'eval is evil'... These were the
5207 triggered. As they say, 'eval is evil'... These were the
5201 nastiest evals in IPython. Besides, _ofind is now far simpler,
5208 nastiest evals in IPython. Besides, _ofind is now far simpler,
5202 and it should also be quite a bit faster. Its use of inspect is
5209 and it should also be quite a bit faster. Its use of inspect is
5203 also safer, so perhaps some of the inspect-related crashes I've
5210 also safer, so perhaps some of the inspect-related crashes I've
5204 seen lately with Python 2.3 might be taken care of. That will
5211 seen lately with Python 2.3 might be taken care of. That will
5205 need more testing.
5212 need more testing.
5206
5213
5207 2003-08-17 Fernando Perez <fperez@colorado.edu>
5214 2003-08-17 Fernando Perez <fperez@colorado.edu>
5208
5215
5209 * IPython/iplib.py (InteractiveShell._prefilter): significant
5216 * IPython/iplib.py (InteractiveShell._prefilter): significant
5210 simplifications to the logic for handling user escapes. Faster
5217 simplifications to the logic for handling user escapes. Faster
5211 and simpler code.
5218 and simpler code.
5212
5219
5213 2003-08-14 Fernando Perez <fperez@colorado.edu>
5220 2003-08-14 Fernando Perez <fperez@colorado.edu>
5214
5221
5215 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5222 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5216 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5223 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5217 but it should be quite a bit faster. And the recursive version
5224 but it should be quite a bit faster. And the recursive version
5218 generated O(log N) intermediate storage for all rank>1 arrays,
5225 generated O(log N) intermediate storage for all rank>1 arrays,
5219 even if they were contiguous.
5226 even if they were contiguous.
5220 (l1norm): Added this function.
5227 (l1norm): Added this function.
5221 (norm): Added this function for arbitrary norms (including
5228 (norm): Added this function for arbitrary norms (including
5222 l-infinity). l1 and l2 are still special cases for convenience
5229 l-infinity). l1 and l2 are still special cases for convenience
5223 and speed.
5230 and speed.
5224
5231
5225 2003-08-03 Fernando Perez <fperez@colorado.edu>
5232 2003-08-03 Fernando Perez <fperez@colorado.edu>
5226
5233
5227 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5234 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5228 exceptions, which now raise PendingDeprecationWarnings in Python
5235 exceptions, which now raise PendingDeprecationWarnings in Python
5229 2.3. There were some in Magic and some in Gnuplot2.
5236 2.3. There were some in Magic and some in Gnuplot2.
5230
5237
5231 2003-06-30 Fernando Perez <fperez@colorado.edu>
5238 2003-06-30 Fernando Perez <fperez@colorado.edu>
5232
5239
5233 * IPython/genutils.py (page): modified to call curses only for
5240 * IPython/genutils.py (page): modified to call curses only for
5234 terminals where TERM=='xterm'. After problems under many other
5241 terminals where TERM=='xterm'. After problems under many other
5235 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5242 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5236
5243
5237 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5244 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5238 would be triggered when readline was absent. This was just an old
5245 would be triggered when readline was absent. This was just an old
5239 debugging statement I'd forgotten to take out.
5246 debugging statement I'd forgotten to take out.
5240
5247
5241 2003-06-20 Fernando Perez <fperez@colorado.edu>
5248 2003-06-20 Fernando Perez <fperez@colorado.edu>
5242
5249
5243 * IPython/genutils.py (clock): modified to return only user time
5250 * IPython/genutils.py (clock): modified to return only user time
5244 (not counting system time), after a discussion on scipy. While
5251 (not counting system time), after a discussion on scipy. While
5245 system time may be a useful quantity occasionally, it may much
5252 system time may be a useful quantity occasionally, it may much
5246 more easily be skewed by occasional swapping or other similar
5253 more easily be skewed by occasional swapping or other similar
5247 activity.
5254 activity.
5248
5255
5249 2003-06-05 Fernando Perez <fperez@colorado.edu>
5256 2003-06-05 Fernando Perez <fperez@colorado.edu>
5250
5257
5251 * IPython/numutils.py (identity): new function, for building
5258 * IPython/numutils.py (identity): new function, for building
5252 arbitrary rank Kronecker deltas (mostly backwards compatible with
5259 arbitrary rank Kronecker deltas (mostly backwards compatible with
5253 Numeric.identity)
5260 Numeric.identity)
5254
5261
5255 2003-06-03 Fernando Perez <fperez@colorado.edu>
5262 2003-06-03 Fernando Perez <fperez@colorado.edu>
5256
5263
5257 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5264 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5258 arguments passed to magics with spaces, to allow trailing '\' to
5265 arguments passed to magics with spaces, to allow trailing '\' to
5259 work normally (mainly for Windows users).
5266 work normally (mainly for Windows users).
5260
5267
5261 2003-05-29 Fernando Perez <fperez@colorado.edu>
5268 2003-05-29 Fernando Perez <fperez@colorado.edu>
5262
5269
5263 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5270 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5264 instead of pydoc.help. This fixes a bizarre behavior where
5271 instead of pydoc.help. This fixes a bizarre behavior where
5265 printing '%s' % locals() would trigger the help system. Now
5272 printing '%s' % locals() would trigger the help system. Now
5266 ipython behaves like normal python does.
5273 ipython behaves like normal python does.
5267
5274
5268 Note that if one does 'from pydoc import help', the bizarre
5275 Note that if one does 'from pydoc import help', the bizarre
5269 behavior returns, but this will also happen in normal python, so
5276 behavior returns, but this will also happen in normal python, so
5270 it's not an ipython bug anymore (it has to do with how pydoc.help
5277 it's not an ipython bug anymore (it has to do with how pydoc.help
5271 is implemented).
5278 is implemented).
5272
5279
5273 2003-05-22 Fernando Perez <fperez@colorado.edu>
5280 2003-05-22 Fernando Perez <fperez@colorado.edu>
5274
5281
5275 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5282 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5276 return [] instead of None when nothing matches, also match to end
5283 return [] instead of None when nothing matches, also match to end
5277 of line. Patch by Gary Bishop.
5284 of line. Patch by Gary Bishop.
5278
5285
5279 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5286 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5280 protection as before, for files passed on the command line. This
5287 protection as before, for files passed on the command line. This
5281 prevents the CrashHandler from kicking in if user files call into
5288 prevents the CrashHandler from kicking in if user files call into
5282 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5289 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5283 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5290 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5284
5291
5285 2003-05-20 *** Released version 0.4.0
5292 2003-05-20 *** Released version 0.4.0
5286
5293
5287 2003-05-20 Fernando Perez <fperez@colorado.edu>
5294 2003-05-20 Fernando Perez <fperez@colorado.edu>
5288
5295
5289 * setup.py: added support for manpages. It's a bit hackish b/c of
5296 * setup.py: added support for manpages. It's a bit hackish b/c of
5290 a bug in the way the bdist_rpm distutils target handles gzipped
5297 a bug in the way the bdist_rpm distutils target handles gzipped
5291 manpages, but it works. After a patch by Jack.
5298 manpages, but it works. After a patch by Jack.
5292
5299
5293 2003-05-19 Fernando Perez <fperez@colorado.edu>
5300 2003-05-19 Fernando Perez <fperez@colorado.edu>
5294
5301
5295 * IPython/numutils.py: added a mockup of the kinds module, since
5302 * IPython/numutils.py: added a mockup of the kinds module, since
5296 it was recently removed from Numeric. This way, numutils will
5303 it was recently removed from Numeric. This way, numutils will
5297 work for all users even if they are missing kinds.
5304 work for all users even if they are missing kinds.
5298
5305
5299 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5306 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5300 failure, which can occur with SWIG-wrapped extensions. After a
5307 failure, which can occur with SWIG-wrapped extensions. After a
5301 crash report from Prabhu.
5308 crash report from Prabhu.
5302
5309
5303 2003-05-16 Fernando Perez <fperez@colorado.edu>
5310 2003-05-16 Fernando Perez <fperez@colorado.edu>
5304
5311
5305 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5312 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5306 protect ipython from user code which may call directly
5313 protect ipython from user code which may call directly
5307 sys.excepthook (this looks like an ipython crash to the user, even
5314 sys.excepthook (this looks like an ipython crash to the user, even
5308 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5315 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5309 This is especially important to help users of WxWindows, but may
5316 This is especially important to help users of WxWindows, but may
5310 also be useful in other cases.
5317 also be useful in other cases.
5311
5318
5312 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5319 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5313 an optional tb_offset to be specified, and to preserve exception
5320 an optional tb_offset to be specified, and to preserve exception
5314 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5321 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5315
5322
5316 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5323 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5317
5324
5318 2003-05-15 Fernando Perez <fperez@colorado.edu>
5325 2003-05-15 Fernando Perez <fperez@colorado.edu>
5319
5326
5320 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5327 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5321 installing for a new user under Windows.
5328 installing for a new user under Windows.
5322
5329
5323 2003-05-12 Fernando Perez <fperez@colorado.edu>
5330 2003-05-12 Fernando Perez <fperez@colorado.edu>
5324
5331
5325 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5332 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5326 handler for Emacs comint-based lines. Currently it doesn't do
5333 handler for Emacs comint-based lines. Currently it doesn't do
5327 much (but importantly, it doesn't update the history cache). In
5334 much (but importantly, it doesn't update the history cache). In
5328 the future it may be expanded if Alex needs more functionality
5335 the future it may be expanded if Alex needs more functionality
5329 there.
5336 there.
5330
5337
5331 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5338 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5332 info to crash reports.
5339 info to crash reports.
5333
5340
5334 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5341 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5335 just like Python's -c. Also fixed crash with invalid -color
5342 just like Python's -c. Also fixed crash with invalid -color
5336 option value at startup. Thanks to Will French
5343 option value at startup. Thanks to Will French
5337 <wfrench-AT-bestweb.net> for the bug report.
5344 <wfrench-AT-bestweb.net> for the bug report.
5338
5345
5339 2003-05-09 Fernando Perez <fperez@colorado.edu>
5346 2003-05-09 Fernando Perez <fperez@colorado.edu>
5340
5347
5341 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5348 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5342 to EvalDict (it's a mapping, after all) and simplified its code
5349 to EvalDict (it's a mapping, after all) and simplified its code
5343 quite a bit, after a nice discussion on c.l.py where Gustavo
5350 quite a bit, after a nice discussion on c.l.py where Gustavo
5344 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5351 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5345
5352
5346 2003-04-30 Fernando Perez <fperez@colorado.edu>
5353 2003-04-30 Fernando Perez <fperez@colorado.edu>
5347
5354
5348 * IPython/genutils.py (timings_out): modified it to reduce its
5355 * IPython/genutils.py (timings_out): modified it to reduce its
5349 overhead in the common reps==1 case.
5356 overhead in the common reps==1 case.
5350
5357
5351 2003-04-29 Fernando Perez <fperez@colorado.edu>
5358 2003-04-29 Fernando Perez <fperez@colorado.edu>
5352
5359
5353 * IPython/genutils.py (timings_out): Modified to use the resource
5360 * IPython/genutils.py (timings_out): Modified to use the resource
5354 module, which avoids the wraparound problems of time.clock().
5361 module, which avoids the wraparound problems of time.clock().
5355
5362
5356 2003-04-17 *** Released version 0.2.15pre4
5363 2003-04-17 *** Released version 0.2.15pre4
5357
5364
5358 2003-04-17 Fernando Perez <fperez@colorado.edu>
5365 2003-04-17 Fernando Perez <fperez@colorado.edu>
5359
5366
5360 * setup.py (scriptfiles): Split windows-specific stuff over to a
5367 * setup.py (scriptfiles): Split windows-specific stuff over to a
5361 separate file, in an attempt to have a Windows GUI installer.
5368 separate file, in an attempt to have a Windows GUI installer.
5362 That didn't work, but part of the groundwork is done.
5369 That didn't work, but part of the groundwork is done.
5363
5370
5364 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5371 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5365 indent/unindent with 4 spaces. Particularly useful in combination
5372 indent/unindent with 4 spaces. Particularly useful in combination
5366 with the new auto-indent option.
5373 with the new auto-indent option.
5367
5374
5368 2003-04-16 Fernando Perez <fperez@colorado.edu>
5375 2003-04-16 Fernando Perez <fperez@colorado.edu>
5369
5376
5370 * IPython/Magic.py: various replacements of self.rc for
5377 * IPython/Magic.py: various replacements of self.rc for
5371 self.shell.rc. A lot more remains to be done to fully disentangle
5378 self.shell.rc. A lot more remains to be done to fully disentangle
5372 this class from the main Shell class.
5379 this class from the main Shell class.
5373
5380
5374 * IPython/GnuplotRuntime.py: added checks for mouse support so
5381 * IPython/GnuplotRuntime.py: added checks for mouse support so
5375 that we don't try to enable it if the current gnuplot doesn't
5382 that we don't try to enable it if the current gnuplot doesn't
5376 really support it. Also added checks so that we don't try to
5383 really support it. Also added checks so that we don't try to
5377 enable persist under Windows (where Gnuplot doesn't recognize the
5384 enable persist under Windows (where Gnuplot doesn't recognize the
5378 option).
5385 option).
5379
5386
5380 * IPython/iplib.py (InteractiveShell.interact): Added optional
5387 * IPython/iplib.py (InteractiveShell.interact): Added optional
5381 auto-indenting code, after a patch by King C. Shu
5388 auto-indenting code, after a patch by King C. Shu
5382 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5389 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5383 get along well with pasting indented code. If I ever figure out
5390 get along well with pasting indented code. If I ever figure out
5384 how to make that part go well, it will become on by default.
5391 how to make that part go well, it will become on by default.
5385
5392
5386 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5393 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5387 crash ipython if there was an unmatched '%' in the user's prompt
5394 crash ipython if there was an unmatched '%' in the user's prompt
5388 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5395 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5389
5396
5390 * IPython/iplib.py (InteractiveShell.interact): removed the
5397 * IPython/iplib.py (InteractiveShell.interact): removed the
5391 ability to ask the user whether he wants to crash or not at the
5398 ability to ask the user whether he wants to crash or not at the
5392 'last line' exception handler. Calling functions at that point
5399 'last line' exception handler. Calling functions at that point
5393 changes the stack, and the error reports would have incorrect
5400 changes the stack, and the error reports would have incorrect
5394 tracebacks.
5401 tracebacks.
5395
5402
5396 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5403 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5397 pass through a peger a pretty-printed form of any object. After a
5404 pass through a peger a pretty-printed form of any object. After a
5398 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5405 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5399
5406
5400 2003-04-14 Fernando Perez <fperez@colorado.edu>
5407 2003-04-14 Fernando Perez <fperez@colorado.edu>
5401
5408
5402 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5409 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5403 all files in ~ would be modified at first install (instead of
5410 all files in ~ would be modified at first install (instead of
5404 ~/.ipython). This could be potentially disastrous, as the
5411 ~/.ipython). This could be potentially disastrous, as the
5405 modification (make line-endings native) could damage binary files.
5412 modification (make line-endings native) could damage binary files.
5406
5413
5407 2003-04-10 Fernando Perez <fperez@colorado.edu>
5414 2003-04-10 Fernando Perez <fperez@colorado.edu>
5408
5415
5409 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5416 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5410 handle only lines which are invalid python. This now means that
5417 handle only lines which are invalid python. This now means that
5411 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5418 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5412 for the bug report.
5419 for the bug report.
5413
5420
5414 2003-04-01 Fernando Perez <fperez@colorado.edu>
5421 2003-04-01 Fernando Perez <fperez@colorado.edu>
5415
5422
5416 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5423 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5417 where failing to set sys.last_traceback would crash pdb.pm().
5424 where failing to set sys.last_traceback would crash pdb.pm().
5418 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5425 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5419 report.
5426 report.
5420
5427
5421 2003-03-25 Fernando Perez <fperez@colorado.edu>
5428 2003-03-25 Fernando Perez <fperez@colorado.edu>
5422
5429
5423 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5430 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5424 before printing it (it had a lot of spurious blank lines at the
5431 before printing it (it had a lot of spurious blank lines at the
5425 end).
5432 end).
5426
5433
5427 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5434 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5428 output would be sent 21 times! Obviously people don't use this
5435 output would be sent 21 times! Obviously people don't use this
5429 too often, or I would have heard about it.
5436 too often, or I would have heard about it.
5430
5437
5431 2003-03-24 Fernando Perez <fperez@colorado.edu>
5438 2003-03-24 Fernando Perez <fperez@colorado.edu>
5432
5439
5433 * setup.py (scriptfiles): renamed the data_files parameter from
5440 * setup.py (scriptfiles): renamed the data_files parameter from
5434 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5441 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5435 for the patch.
5442 for the patch.
5436
5443
5437 2003-03-20 Fernando Perez <fperez@colorado.edu>
5444 2003-03-20 Fernando Perez <fperez@colorado.edu>
5438
5445
5439 * IPython/genutils.py (error): added error() and fatal()
5446 * IPython/genutils.py (error): added error() and fatal()
5440 functions.
5447 functions.
5441
5448
5442 2003-03-18 *** Released version 0.2.15pre3
5449 2003-03-18 *** Released version 0.2.15pre3
5443
5450
5444 2003-03-18 Fernando Perez <fperez@colorado.edu>
5451 2003-03-18 Fernando Perez <fperez@colorado.edu>
5445
5452
5446 * setupext/install_data_ext.py
5453 * setupext/install_data_ext.py
5447 (install_data_ext.initialize_options): Class contributed by Jack
5454 (install_data_ext.initialize_options): Class contributed by Jack
5448 Moffit for fixing the old distutils hack. He is sending this to
5455 Moffit for fixing the old distutils hack. He is sending this to
5449 the distutils folks so in the future we may not need it as a
5456 the distutils folks so in the future we may not need it as a
5450 private fix.
5457 private fix.
5451
5458
5452 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5459 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5453 changes for Debian packaging. See his patch for full details.
5460 changes for Debian packaging. See his patch for full details.
5454 The old distutils hack of making the ipythonrc* files carry a
5461 The old distutils hack of making the ipythonrc* files carry a
5455 bogus .py extension is gone, at last. Examples were moved to a
5462 bogus .py extension is gone, at last. Examples were moved to a
5456 separate subdir under doc/, and the separate executable scripts
5463 separate subdir under doc/, and the separate executable scripts
5457 now live in their own directory. Overall a great cleanup. The
5464 now live in their own directory. Overall a great cleanup. The
5458 manual was updated to use the new files, and setup.py has been
5465 manual was updated to use the new files, and setup.py has been
5459 fixed for this setup.
5466 fixed for this setup.
5460
5467
5461 * IPython/PyColorize.py (Parser.usage): made non-executable and
5468 * IPython/PyColorize.py (Parser.usage): made non-executable and
5462 created a pycolor wrapper around it to be included as a script.
5469 created a pycolor wrapper around it to be included as a script.
5463
5470
5464 2003-03-12 *** Released version 0.2.15pre2
5471 2003-03-12 *** Released version 0.2.15pre2
5465
5472
5466 2003-03-12 Fernando Perez <fperez@colorado.edu>
5473 2003-03-12 Fernando Perez <fperez@colorado.edu>
5467
5474
5468 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5475 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5469 long-standing problem with garbage characters in some terminals.
5476 long-standing problem with garbage characters in some terminals.
5470 The issue was really that the \001 and \002 escapes must _only_ be
5477 The issue was really that the \001 and \002 escapes must _only_ be
5471 passed to input prompts (which call readline), but _never_ to
5478 passed to input prompts (which call readline), but _never_ to
5472 normal text to be printed on screen. I changed ColorANSI to have
5479 normal text to be printed on screen. I changed ColorANSI to have
5473 two classes: TermColors and InputTermColors, each with the
5480 two classes: TermColors and InputTermColors, each with the
5474 appropriate escapes for input prompts or normal text. The code in
5481 appropriate escapes for input prompts or normal text. The code in
5475 Prompts.py got slightly more complicated, but this very old and
5482 Prompts.py got slightly more complicated, but this very old and
5476 annoying bug is finally fixed.
5483 annoying bug is finally fixed.
5477
5484
5478 All the credit for nailing down the real origin of this problem
5485 All the credit for nailing down the real origin of this problem
5479 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5486 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5480 *Many* thanks to him for spending quite a bit of effort on this.
5487 *Many* thanks to him for spending quite a bit of effort on this.
5481
5488
5482 2003-03-05 *** Released version 0.2.15pre1
5489 2003-03-05 *** Released version 0.2.15pre1
5483
5490
5484 2003-03-03 Fernando Perez <fperez@colorado.edu>
5491 2003-03-03 Fernando Perez <fperez@colorado.edu>
5485
5492
5486 * IPython/FakeModule.py: Moved the former _FakeModule to a
5493 * IPython/FakeModule.py: Moved the former _FakeModule to a
5487 separate file, because it's also needed by Magic (to fix a similar
5494 separate file, because it's also needed by Magic (to fix a similar
5488 pickle-related issue in @run).
5495 pickle-related issue in @run).
5489
5496
5490 2003-03-02 Fernando Perez <fperez@colorado.edu>
5497 2003-03-02 Fernando Perez <fperez@colorado.edu>
5491
5498
5492 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5499 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5493 the autocall option at runtime.
5500 the autocall option at runtime.
5494 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5501 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5495 across Magic.py to start separating Magic from InteractiveShell.
5502 across Magic.py to start separating Magic from InteractiveShell.
5496 (Magic._ofind): Fixed to return proper namespace for dotted
5503 (Magic._ofind): Fixed to return proper namespace for dotted
5497 names. Before, a dotted name would always return 'not currently
5504 names. Before, a dotted name would always return 'not currently
5498 defined', because it would find the 'parent'. s.x would be found,
5505 defined', because it would find the 'parent'. s.x would be found,
5499 but since 'x' isn't defined by itself, it would get confused.
5506 but since 'x' isn't defined by itself, it would get confused.
5500 (Magic.magic_run): Fixed pickling problems reported by Ralf
5507 (Magic.magic_run): Fixed pickling problems reported by Ralf
5501 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5508 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5502 that I'd used when Mike Heeter reported similar issues at the
5509 that I'd used when Mike Heeter reported similar issues at the
5503 top-level, but now for @run. It boils down to injecting the
5510 top-level, but now for @run. It boils down to injecting the
5504 namespace where code is being executed with something that looks
5511 namespace where code is being executed with something that looks
5505 enough like a module to fool pickle.dump(). Since a pickle stores
5512 enough like a module to fool pickle.dump(). Since a pickle stores
5506 a named reference to the importing module, we need this for
5513 a named reference to the importing module, we need this for
5507 pickles to save something sensible.
5514 pickles to save something sensible.
5508
5515
5509 * IPython/ipmaker.py (make_IPython): added an autocall option.
5516 * IPython/ipmaker.py (make_IPython): added an autocall option.
5510
5517
5511 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5518 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5512 the auto-eval code. Now autocalling is an option, and the code is
5519 the auto-eval code. Now autocalling is an option, and the code is
5513 also vastly safer. There is no more eval() involved at all.
5520 also vastly safer. There is no more eval() involved at all.
5514
5521
5515 2003-03-01 Fernando Perez <fperez@colorado.edu>
5522 2003-03-01 Fernando Perez <fperez@colorado.edu>
5516
5523
5517 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5524 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5518 dict with named keys instead of a tuple.
5525 dict with named keys instead of a tuple.
5519
5526
5520 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5527 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5521
5528
5522 * setup.py (make_shortcut): Fixed message about directories
5529 * setup.py (make_shortcut): Fixed message about directories
5523 created during Windows installation (the directories were ok, just
5530 created during Windows installation (the directories were ok, just
5524 the printed message was misleading). Thanks to Chris Liechti
5531 the printed message was misleading). Thanks to Chris Liechti
5525 <cliechti-AT-gmx.net> for the heads up.
5532 <cliechti-AT-gmx.net> for the heads up.
5526
5533
5527 2003-02-21 Fernando Perez <fperez@colorado.edu>
5534 2003-02-21 Fernando Perez <fperez@colorado.edu>
5528
5535
5529 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5536 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5530 of ValueError exception when checking for auto-execution. This
5537 of ValueError exception when checking for auto-execution. This
5531 one is raised by things like Numeric arrays arr.flat when the
5538 one is raised by things like Numeric arrays arr.flat when the
5532 array is non-contiguous.
5539 array is non-contiguous.
5533
5540
5534 2003-01-31 Fernando Perez <fperez@colorado.edu>
5541 2003-01-31 Fernando Perez <fperez@colorado.edu>
5535
5542
5536 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5543 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5537 not return any value at all (even though the command would get
5544 not return any value at all (even though the command would get
5538 executed).
5545 executed).
5539 (xsys): Flush stdout right after printing the command to ensure
5546 (xsys): Flush stdout right after printing the command to ensure
5540 proper ordering of commands and command output in the total
5547 proper ordering of commands and command output in the total
5541 output.
5548 output.
5542 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5549 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5543 system/getoutput as defaults. The old ones are kept for
5550 system/getoutput as defaults. The old ones are kept for
5544 compatibility reasons, so no code which uses this library needs
5551 compatibility reasons, so no code which uses this library needs
5545 changing.
5552 changing.
5546
5553
5547 2003-01-27 *** Released version 0.2.14
5554 2003-01-27 *** Released version 0.2.14
5548
5555
5549 2003-01-25 Fernando Perez <fperez@colorado.edu>
5556 2003-01-25 Fernando Perez <fperez@colorado.edu>
5550
5557
5551 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5558 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5552 functions defined in previous edit sessions could not be re-edited
5559 functions defined in previous edit sessions could not be re-edited
5553 (because the temp files were immediately removed). Now temp files
5560 (because the temp files were immediately removed). Now temp files
5554 are removed only at IPython's exit.
5561 are removed only at IPython's exit.
5555 (Magic.magic_run): Improved @run to perform shell-like expansions
5562 (Magic.magic_run): Improved @run to perform shell-like expansions
5556 on its arguments (~users and $VARS). With this, @run becomes more
5563 on its arguments (~users and $VARS). With this, @run becomes more
5557 like a normal command-line.
5564 like a normal command-line.
5558
5565
5559 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5566 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5560 bugs related to embedding and cleaned up that code. A fairly
5567 bugs related to embedding and cleaned up that code. A fairly
5561 important one was the impossibility to access the global namespace
5568 important one was the impossibility to access the global namespace
5562 through the embedded IPython (only local variables were visible).
5569 through the embedded IPython (only local variables were visible).
5563
5570
5564 2003-01-14 Fernando Perez <fperez@colorado.edu>
5571 2003-01-14 Fernando Perez <fperez@colorado.edu>
5565
5572
5566 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5573 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5567 auto-calling to be a bit more conservative. Now it doesn't get
5574 auto-calling to be a bit more conservative. Now it doesn't get
5568 triggered if any of '!=()<>' are in the rest of the input line, to
5575 triggered if any of '!=()<>' are in the rest of the input line, to
5569 allow comparing callables. Thanks to Alex for the heads up.
5576 allow comparing callables. Thanks to Alex for the heads up.
5570
5577
5571 2003-01-07 Fernando Perez <fperez@colorado.edu>
5578 2003-01-07 Fernando Perez <fperez@colorado.edu>
5572
5579
5573 * IPython/genutils.py (page): fixed estimation of the number of
5580 * IPython/genutils.py (page): fixed estimation of the number of
5574 lines in a string to be paged to simply count newlines. This
5581 lines in a string to be paged to simply count newlines. This
5575 prevents over-guessing due to embedded escape sequences. A better
5582 prevents over-guessing due to embedded escape sequences. A better
5576 long-term solution would involve stripping out the control chars
5583 long-term solution would involve stripping out the control chars
5577 for the count, but it's potentially so expensive I just don't
5584 for the count, but it's potentially so expensive I just don't
5578 think it's worth doing.
5585 think it's worth doing.
5579
5586
5580 2002-12-19 *** Released version 0.2.14pre50
5587 2002-12-19 *** Released version 0.2.14pre50
5581
5588
5582 2002-12-19 Fernando Perez <fperez@colorado.edu>
5589 2002-12-19 Fernando Perez <fperez@colorado.edu>
5583
5590
5584 * tools/release (version): Changed release scripts to inform
5591 * tools/release (version): Changed release scripts to inform
5585 Andrea and build a NEWS file with a list of recent changes.
5592 Andrea and build a NEWS file with a list of recent changes.
5586
5593
5587 * IPython/ColorANSI.py (__all__): changed terminal detection
5594 * IPython/ColorANSI.py (__all__): changed terminal detection
5588 code. Seems to work better for xterms without breaking
5595 code. Seems to work better for xterms without breaking
5589 konsole. Will need more testing to determine if WinXP and Mac OSX
5596 konsole. Will need more testing to determine if WinXP and Mac OSX
5590 also work ok.
5597 also work ok.
5591
5598
5592 2002-12-18 *** Released version 0.2.14pre49
5599 2002-12-18 *** Released version 0.2.14pre49
5593
5600
5594 2002-12-18 Fernando Perez <fperez@colorado.edu>
5601 2002-12-18 Fernando Perez <fperez@colorado.edu>
5595
5602
5596 * Docs: added new info about Mac OSX, from Andrea.
5603 * Docs: added new info about Mac OSX, from Andrea.
5597
5604
5598 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5605 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5599 allow direct plotting of python strings whose format is the same
5606 allow direct plotting of python strings whose format is the same
5600 of gnuplot data files.
5607 of gnuplot data files.
5601
5608
5602 2002-12-16 Fernando Perez <fperez@colorado.edu>
5609 2002-12-16 Fernando Perez <fperez@colorado.edu>
5603
5610
5604 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5611 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5605 value of exit question to be acknowledged.
5612 value of exit question to be acknowledged.
5606
5613
5607 2002-12-03 Fernando Perez <fperez@colorado.edu>
5614 2002-12-03 Fernando Perez <fperez@colorado.edu>
5608
5615
5609 * IPython/ipmaker.py: removed generators, which had been added
5616 * IPython/ipmaker.py: removed generators, which had been added
5610 by mistake in an earlier debugging run. This was causing trouble
5617 by mistake in an earlier debugging run. This was causing trouble
5611 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5618 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5612 for pointing this out.
5619 for pointing this out.
5613
5620
5614 2002-11-17 Fernando Perez <fperez@colorado.edu>
5621 2002-11-17 Fernando Perez <fperez@colorado.edu>
5615
5622
5616 * Manual: updated the Gnuplot section.
5623 * Manual: updated the Gnuplot section.
5617
5624
5618 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5625 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5619 a much better split of what goes in Runtime and what goes in
5626 a much better split of what goes in Runtime and what goes in
5620 Interactive.
5627 Interactive.
5621
5628
5622 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5629 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5623 being imported from iplib.
5630 being imported from iplib.
5624
5631
5625 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5632 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5626 for command-passing. Now the global Gnuplot instance is called
5633 for command-passing. Now the global Gnuplot instance is called
5627 'gp' instead of 'g', which was really a far too fragile and
5634 'gp' instead of 'g', which was really a far too fragile and
5628 common name.
5635 common name.
5629
5636
5630 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5637 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5631 bounding boxes generated by Gnuplot for square plots.
5638 bounding boxes generated by Gnuplot for square plots.
5632
5639
5633 * IPython/genutils.py (popkey): new function added. I should
5640 * IPython/genutils.py (popkey): new function added. I should
5634 suggest this on c.l.py as a dict method, it seems useful.
5641 suggest this on c.l.py as a dict method, it seems useful.
5635
5642
5636 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5643 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5637 to transparently handle PostScript generation. MUCH better than
5644 to transparently handle PostScript generation. MUCH better than
5638 the previous plot_eps/replot_eps (which I removed now). The code
5645 the previous plot_eps/replot_eps (which I removed now). The code
5639 is also fairly clean and well documented now (including
5646 is also fairly clean and well documented now (including
5640 docstrings).
5647 docstrings).
5641
5648
5642 2002-11-13 Fernando Perez <fperez@colorado.edu>
5649 2002-11-13 Fernando Perez <fperez@colorado.edu>
5643
5650
5644 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5651 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5645 (inconsistent with options).
5652 (inconsistent with options).
5646
5653
5647 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5654 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5648 manually disabled, I don't know why. Fixed it.
5655 manually disabled, I don't know why. Fixed it.
5649 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5656 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5650 eps output.
5657 eps output.
5651
5658
5652 2002-11-12 Fernando Perez <fperez@colorado.edu>
5659 2002-11-12 Fernando Perez <fperez@colorado.edu>
5653
5660
5654 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5661 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5655 don't propagate up to caller. Fixes crash reported by François
5662 don't propagate up to caller. Fixes crash reported by François
5656 Pinard.
5663 Pinard.
5657
5664
5658 2002-11-09 Fernando Perez <fperez@colorado.edu>
5665 2002-11-09 Fernando Perez <fperez@colorado.edu>
5659
5666
5660 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5667 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5661 history file for new users.
5668 history file for new users.
5662 (make_IPython): fixed bug where initial install would leave the
5669 (make_IPython): fixed bug where initial install would leave the
5663 user running in the .ipython dir.
5670 user running in the .ipython dir.
5664 (make_IPython): fixed bug where config dir .ipython would be
5671 (make_IPython): fixed bug where config dir .ipython would be
5665 created regardless of the given -ipythondir option. Thanks to Cory
5672 created regardless of the given -ipythondir option. Thanks to Cory
5666 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5673 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5667
5674
5668 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5675 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5669 type confirmations. Will need to use it in all of IPython's code
5676 type confirmations. Will need to use it in all of IPython's code
5670 consistently.
5677 consistently.
5671
5678
5672 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5679 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5673 context to print 31 lines instead of the default 5. This will make
5680 context to print 31 lines instead of the default 5. This will make
5674 the crash reports extremely detailed in case the problem is in
5681 the crash reports extremely detailed in case the problem is in
5675 libraries I don't have access to.
5682 libraries I don't have access to.
5676
5683
5677 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5684 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5678 line of defense' code to still crash, but giving users fair
5685 line of defense' code to still crash, but giving users fair
5679 warning. I don't want internal errors to go unreported: if there's
5686 warning. I don't want internal errors to go unreported: if there's
5680 an internal problem, IPython should crash and generate a full
5687 an internal problem, IPython should crash and generate a full
5681 report.
5688 report.
5682
5689
5683 2002-11-08 Fernando Perez <fperez@colorado.edu>
5690 2002-11-08 Fernando Perez <fperez@colorado.edu>
5684
5691
5685 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5692 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5686 otherwise uncaught exceptions which can appear if people set
5693 otherwise uncaught exceptions which can appear if people set
5687 sys.stdout to something badly broken. Thanks to a crash report
5694 sys.stdout to something badly broken. Thanks to a crash report
5688 from henni-AT-mail.brainbot.com.
5695 from henni-AT-mail.brainbot.com.
5689
5696
5690 2002-11-04 Fernando Perez <fperez@colorado.edu>
5697 2002-11-04 Fernando Perez <fperez@colorado.edu>
5691
5698
5692 * IPython/iplib.py (InteractiveShell.interact): added
5699 * IPython/iplib.py (InteractiveShell.interact): added
5693 __IPYTHON__active to the builtins. It's a flag which goes on when
5700 __IPYTHON__active to the builtins. It's a flag which goes on when
5694 the interaction starts and goes off again when it stops. This
5701 the interaction starts and goes off again when it stops. This
5695 allows embedding code to detect being inside IPython. Before this
5702 allows embedding code to detect being inside IPython. Before this
5696 was done via __IPYTHON__, but that only shows that an IPython
5703 was done via __IPYTHON__, but that only shows that an IPython
5697 instance has been created.
5704 instance has been created.
5698
5705
5699 * IPython/Magic.py (Magic.magic_env): I realized that in a
5706 * IPython/Magic.py (Magic.magic_env): I realized that in a
5700 UserDict, instance.data holds the data as a normal dict. So I
5707 UserDict, instance.data holds the data as a normal dict. So I
5701 modified @env to return os.environ.data instead of rebuilding a
5708 modified @env to return os.environ.data instead of rebuilding a
5702 dict by hand.
5709 dict by hand.
5703
5710
5704 2002-11-02 Fernando Perez <fperez@colorado.edu>
5711 2002-11-02 Fernando Perez <fperez@colorado.edu>
5705
5712
5706 * IPython/genutils.py (warn): changed so that level 1 prints no
5713 * IPython/genutils.py (warn): changed so that level 1 prints no
5707 header. Level 2 is now the default (with 'WARNING' header, as
5714 header. Level 2 is now the default (with 'WARNING' header, as
5708 before). I think I tracked all places where changes were needed in
5715 before). I think I tracked all places where changes were needed in
5709 IPython, but outside code using the old level numbering may have
5716 IPython, but outside code using the old level numbering may have
5710 broken.
5717 broken.
5711
5718
5712 * IPython/iplib.py (InteractiveShell.runcode): added this to
5719 * IPython/iplib.py (InteractiveShell.runcode): added this to
5713 handle the tracebacks in SystemExit traps correctly. The previous
5720 handle the tracebacks in SystemExit traps correctly. The previous
5714 code (through interact) was printing more of the stack than
5721 code (through interact) was printing more of the stack than
5715 necessary, showing IPython internal code to the user.
5722 necessary, showing IPython internal code to the user.
5716
5723
5717 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5724 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5718 default. Now that the default at the confirmation prompt is yes,
5725 default. Now that the default at the confirmation prompt is yes,
5719 it's not so intrusive. François' argument that ipython sessions
5726 it's not so intrusive. François' argument that ipython sessions
5720 tend to be complex enough not to lose them from an accidental C-d,
5727 tend to be complex enough not to lose them from an accidental C-d,
5721 is a valid one.
5728 is a valid one.
5722
5729
5723 * IPython/iplib.py (InteractiveShell.interact): added a
5730 * IPython/iplib.py (InteractiveShell.interact): added a
5724 showtraceback() call to the SystemExit trap, and modified the exit
5731 showtraceback() call to the SystemExit trap, and modified the exit
5725 confirmation to have yes as the default.
5732 confirmation to have yes as the default.
5726
5733
5727 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5734 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5728 this file. It's been gone from the code for a long time, this was
5735 this file. It's been gone from the code for a long time, this was
5729 simply leftover junk.
5736 simply leftover junk.
5730
5737
5731 2002-11-01 Fernando Perez <fperez@colorado.edu>
5738 2002-11-01 Fernando Perez <fperez@colorado.edu>
5732
5739
5733 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5740 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5734 added. If set, IPython now traps EOF and asks for
5741 added. If set, IPython now traps EOF and asks for
5735 confirmation. After a request by François Pinard.
5742 confirmation. After a request by François Pinard.
5736
5743
5737 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5744 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5738 of @abort, and with a new (better) mechanism for handling the
5745 of @abort, and with a new (better) mechanism for handling the
5739 exceptions.
5746 exceptions.
5740
5747
5741 2002-10-27 Fernando Perez <fperez@colorado.edu>
5748 2002-10-27 Fernando Perez <fperez@colorado.edu>
5742
5749
5743 * IPython/usage.py (__doc__): updated the --help information and
5750 * IPython/usage.py (__doc__): updated the --help information and
5744 the ipythonrc file to indicate that -log generates
5751 the ipythonrc file to indicate that -log generates
5745 ./ipython.log. Also fixed the corresponding info in @logstart.
5752 ./ipython.log. Also fixed the corresponding info in @logstart.
5746 This and several other fixes in the manuals thanks to reports by
5753 This and several other fixes in the manuals thanks to reports by
5747 François Pinard <pinard-AT-iro.umontreal.ca>.
5754 François Pinard <pinard-AT-iro.umontreal.ca>.
5748
5755
5749 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5756 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5750 refer to @logstart (instead of @log, which doesn't exist).
5757 refer to @logstart (instead of @log, which doesn't exist).
5751
5758
5752 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5759 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5753 AttributeError crash. Thanks to Christopher Armstrong
5760 AttributeError crash. Thanks to Christopher Armstrong
5754 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5761 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5755 introduced recently (in 0.2.14pre37) with the fix to the eval
5762 introduced recently (in 0.2.14pre37) with the fix to the eval
5756 problem mentioned below.
5763 problem mentioned below.
5757
5764
5758 2002-10-17 Fernando Perez <fperez@colorado.edu>
5765 2002-10-17 Fernando Perez <fperez@colorado.edu>
5759
5766
5760 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5767 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5761 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5768 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5762
5769
5763 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5770 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5764 this function to fix a problem reported by Alex Schmolck. He saw
5771 this function to fix a problem reported by Alex Schmolck. He saw
5765 it with list comprehensions and generators, which were getting
5772 it with list comprehensions and generators, which were getting
5766 called twice. The real problem was an 'eval' call in testing for
5773 called twice. The real problem was an 'eval' call in testing for
5767 automagic which was evaluating the input line silently.
5774 automagic which was evaluating the input line silently.
5768
5775
5769 This is a potentially very nasty bug, if the input has side
5776 This is a potentially very nasty bug, if the input has side
5770 effects which must not be repeated. The code is much cleaner now,
5777 effects which must not be repeated. The code is much cleaner now,
5771 without any blanket 'except' left and with a regexp test for
5778 without any blanket 'except' left and with a regexp test for
5772 actual function names.
5779 actual function names.
5773
5780
5774 But an eval remains, which I'm not fully comfortable with. I just
5781 But an eval remains, which I'm not fully comfortable with. I just
5775 don't know how to find out if an expression could be a callable in
5782 don't know how to find out if an expression could be a callable in
5776 the user's namespace without doing an eval on the string. However
5783 the user's namespace without doing an eval on the string. However
5777 that string is now much more strictly checked so that no code
5784 that string is now much more strictly checked so that no code
5778 slips by, so the eval should only happen for things that can
5785 slips by, so the eval should only happen for things that can
5779 really be only function/method names.
5786 really be only function/method names.
5780
5787
5781 2002-10-15 Fernando Perez <fperez@colorado.edu>
5788 2002-10-15 Fernando Perez <fperez@colorado.edu>
5782
5789
5783 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5790 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5784 OSX information to main manual, removed README_Mac_OSX file from
5791 OSX information to main manual, removed README_Mac_OSX file from
5785 distribution. Also updated credits for recent additions.
5792 distribution. Also updated credits for recent additions.
5786
5793
5787 2002-10-10 Fernando Perez <fperez@colorado.edu>
5794 2002-10-10 Fernando Perez <fperez@colorado.edu>
5788
5795
5789 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5796 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5790 terminal-related issues. Many thanks to Andrea Riciputi
5797 terminal-related issues. Many thanks to Andrea Riciputi
5791 <andrea.riciputi-AT-libero.it> for writing it.
5798 <andrea.riciputi-AT-libero.it> for writing it.
5792
5799
5793 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5800 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5794 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5801 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5795
5802
5796 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5803 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5797 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5804 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5798 <syver-en-AT-online.no> who both submitted patches for this problem.
5805 <syver-en-AT-online.no> who both submitted patches for this problem.
5799
5806
5800 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5807 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5801 global embedding to make sure that things don't overwrite user
5808 global embedding to make sure that things don't overwrite user
5802 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5809 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5803
5810
5804 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5811 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5805 compatibility. Thanks to Hayden Callow
5812 compatibility. Thanks to Hayden Callow
5806 <h.callow-AT-elec.canterbury.ac.nz>
5813 <h.callow-AT-elec.canterbury.ac.nz>
5807
5814
5808 2002-10-04 Fernando Perez <fperez@colorado.edu>
5815 2002-10-04 Fernando Perez <fperez@colorado.edu>
5809
5816
5810 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5817 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5811 Gnuplot.File objects.
5818 Gnuplot.File objects.
5812
5819
5813 2002-07-23 Fernando Perez <fperez@colorado.edu>
5820 2002-07-23 Fernando Perez <fperez@colorado.edu>
5814
5821
5815 * IPython/genutils.py (timing): Added timings() and timing() for
5822 * IPython/genutils.py (timing): Added timings() and timing() for
5816 quick access to the most commonly needed data, the execution
5823 quick access to the most commonly needed data, the execution
5817 times. Old timing() renamed to timings_out().
5824 times. Old timing() renamed to timings_out().
5818
5825
5819 2002-07-18 Fernando Perez <fperez@colorado.edu>
5826 2002-07-18 Fernando Perez <fperez@colorado.edu>
5820
5827
5821 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5828 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5822 bug with nested instances disrupting the parent's tab completion.
5829 bug with nested instances disrupting the parent's tab completion.
5823
5830
5824 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5831 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5825 all_completions code to begin the emacs integration.
5832 all_completions code to begin the emacs integration.
5826
5833
5827 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5834 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5828 argument to allow titling individual arrays when plotting.
5835 argument to allow titling individual arrays when plotting.
5829
5836
5830 2002-07-15 Fernando Perez <fperez@colorado.edu>
5837 2002-07-15 Fernando Perez <fperez@colorado.edu>
5831
5838
5832 * setup.py (make_shortcut): changed to retrieve the value of
5839 * setup.py (make_shortcut): changed to retrieve the value of
5833 'Program Files' directory from the registry (this value changes in
5840 'Program Files' directory from the registry (this value changes in
5834 non-english versions of Windows). Thanks to Thomas Fanslau
5841 non-english versions of Windows). Thanks to Thomas Fanslau
5835 <tfanslau-AT-gmx.de> for the report.
5842 <tfanslau-AT-gmx.de> for the report.
5836
5843
5837 2002-07-10 Fernando Perez <fperez@colorado.edu>
5844 2002-07-10 Fernando Perez <fperez@colorado.edu>
5838
5845
5839 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5846 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5840 a bug in pdb, which crashes if a line with only whitespace is
5847 a bug in pdb, which crashes if a line with only whitespace is
5841 entered. Bug report submitted to sourceforge.
5848 entered. Bug report submitted to sourceforge.
5842
5849
5843 2002-07-09 Fernando Perez <fperez@colorado.edu>
5850 2002-07-09 Fernando Perez <fperez@colorado.edu>
5844
5851
5845 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5852 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5846 reporting exceptions (it's a bug in inspect.py, I just set a
5853 reporting exceptions (it's a bug in inspect.py, I just set a
5847 workaround).
5854 workaround).
5848
5855
5849 2002-07-08 Fernando Perez <fperez@colorado.edu>
5856 2002-07-08 Fernando Perez <fperez@colorado.edu>
5850
5857
5851 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5858 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5852 __IPYTHON__ in __builtins__ to show up in user_ns.
5859 __IPYTHON__ in __builtins__ to show up in user_ns.
5853
5860
5854 2002-07-03 Fernando Perez <fperez@colorado.edu>
5861 2002-07-03 Fernando Perez <fperez@colorado.edu>
5855
5862
5856 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5863 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5857 name from @gp_set_instance to @gp_set_default.
5864 name from @gp_set_instance to @gp_set_default.
5858
5865
5859 * IPython/ipmaker.py (make_IPython): default editor value set to
5866 * IPython/ipmaker.py (make_IPython): default editor value set to
5860 '0' (a string), to match the rc file. Otherwise will crash when
5867 '0' (a string), to match the rc file. Otherwise will crash when
5861 .strip() is called on it.
5868 .strip() is called on it.
5862
5869
5863
5870
5864 2002-06-28 Fernando Perez <fperez@colorado.edu>
5871 2002-06-28 Fernando Perez <fperez@colorado.edu>
5865
5872
5866 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5873 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5867 of files in current directory when a file is executed via
5874 of files in current directory when a file is executed via
5868 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5875 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5869
5876
5870 * setup.py (manfiles): fix for rpm builds, submitted by RA
5877 * setup.py (manfiles): fix for rpm builds, submitted by RA
5871 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5878 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5872
5879
5873 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5880 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5874 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5881 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5875 string!). A. Schmolck caught this one.
5882 string!). A. Schmolck caught this one.
5876
5883
5877 2002-06-27 Fernando Perez <fperez@colorado.edu>
5884 2002-06-27 Fernando Perez <fperez@colorado.edu>
5878
5885
5879 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5886 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5880 defined files at the cmd line. __name__ wasn't being set to
5887 defined files at the cmd line. __name__ wasn't being set to
5881 __main__.
5888 __main__.
5882
5889
5883 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5890 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5884 regular lists and tuples besides Numeric arrays.
5891 regular lists and tuples besides Numeric arrays.
5885
5892
5886 * IPython/Prompts.py (CachedOutput.__call__): Added output
5893 * IPython/Prompts.py (CachedOutput.__call__): Added output
5887 supression for input ending with ';'. Similar to Mathematica and
5894 supression for input ending with ';'. Similar to Mathematica and
5888 Matlab. The _* vars and Out[] list are still updated, just like
5895 Matlab. The _* vars and Out[] list are still updated, just like
5889 Mathematica behaves.
5896 Mathematica behaves.
5890
5897
5891 2002-06-25 Fernando Perez <fperez@colorado.edu>
5898 2002-06-25 Fernando Perez <fperez@colorado.edu>
5892
5899
5893 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5900 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5894 .ini extensions for profiels under Windows.
5901 .ini extensions for profiels under Windows.
5895
5902
5896 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5903 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5897 string form. Fix contributed by Alexander Schmolck
5904 string form. Fix contributed by Alexander Schmolck
5898 <a.schmolck-AT-gmx.net>
5905 <a.schmolck-AT-gmx.net>
5899
5906
5900 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5907 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5901 pre-configured Gnuplot instance.
5908 pre-configured Gnuplot instance.
5902
5909
5903 2002-06-21 Fernando Perez <fperez@colorado.edu>
5910 2002-06-21 Fernando Perez <fperez@colorado.edu>
5904
5911
5905 * IPython/numutils.py (exp_safe): new function, works around the
5912 * IPython/numutils.py (exp_safe): new function, works around the
5906 underflow problems in Numeric.
5913 underflow problems in Numeric.
5907 (log2): New fn. Safe log in base 2: returns exact integer answer
5914 (log2): New fn. Safe log in base 2: returns exact integer answer
5908 for exact integer powers of 2.
5915 for exact integer powers of 2.
5909
5916
5910 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5917 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5911 properly.
5918 properly.
5912
5919
5913 2002-06-20 Fernando Perez <fperez@colorado.edu>
5920 2002-06-20 Fernando Perez <fperez@colorado.edu>
5914
5921
5915 * IPython/genutils.py (timing): new function like
5922 * IPython/genutils.py (timing): new function like
5916 Mathematica's. Similar to time_test, but returns more info.
5923 Mathematica's. Similar to time_test, but returns more info.
5917
5924
5918 2002-06-18 Fernando Perez <fperez@colorado.edu>
5925 2002-06-18 Fernando Perez <fperez@colorado.edu>
5919
5926
5920 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5927 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5921 according to Mike Heeter's suggestions.
5928 according to Mike Heeter's suggestions.
5922
5929
5923 2002-06-16 Fernando Perez <fperez@colorado.edu>
5930 2002-06-16 Fernando Perez <fperez@colorado.edu>
5924
5931
5925 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5932 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5926 system. GnuplotMagic is gone as a user-directory option. New files
5933 system. GnuplotMagic is gone as a user-directory option. New files
5927 make it easier to use all the gnuplot stuff both from external
5934 make it easier to use all the gnuplot stuff both from external
5928 programs as well as from IPython. Had to rewrite part of
5935 programs as well as from IPython. Had to rewrite part of
5929 hardcopy() b/c of a strange bug: often the ps files simply don't
5936 hardcopy() b/c of a strange bug: often the ps files simply don't
5930 get created, and require a repeat of the command (often several
5937 get created, and require a repeat of the command (often several
5931 times).
5938 times).
5932
5939
5933 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5940 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5934 resolve output channel at call time, so that if sys.stderr has
5941 resolve output channel at call time, so that if sys.stderr has
5935 been redirected by user this gets honored.
5942 been redirected by user this gets honored.
5936
5943
5937 2002-06-13 Fernando Perez <fperez@colorado.edu>
5944 2002-06-13 Fernando Perez <fperez@colorado.edu>
5938
5945
5939 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5946 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5940 IPShell. Kept a copy with the old names to avoid breaking people's
5947 IPShell. Kept a copy with the old names to avoid breaking people's
5941 embedded code.
5948 embedded code.
5942
5949
5943 * IPython/ipython: simplified it to the bare minimum after
5950 * IPython/ipython: simplified it to the bare minimum after
5944 Holger's suggestions. Added info about how to use it in
5951 Holger's suggestions. Added info about how to use it in
5945 PYTHONSTARTUP.
5952 PYTHONSTARTUP.
5946
5953
5947 * IPython/Shell.py (IPythonShell): changed the options passing
5954 * IPython/Shell.py (IPythonShell): changed the options passing
5948 from a string with funky %s replacements to a straight list. Maybe
5955 from a string with funky %s replacements to a straight list. Maybe
5949 a bit more typing, but it follows sys.argv conventions, so there's
5956 a bit more typing, but it follows sys.argv conventions, so there's
5950 less special-casing to remember.
5957 less special-casing to remember.
5951
5958
5952 2002-06-12 Fernando Perez <fperez@colorado.edu>
5959 2002-06-12 Fernando Perez <fperez@colorado.edu>
5953
5960
5954 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5961 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5955 command. Thanks to a suggestion by Mike Heeter.
5962 command. Thanks to a suggestion by Mike Heeter.
5956 (Magic.magic_pfile): added behavior to look at filenames if given
5963 (Magic.magic_pfile): added behavior to look at filenames if given
5957 arg is not a defined object.
5964 arg is not a defined object.
5958 (Magic.magic_save): New @save function to save code snippets. Also
5965 (Magic.magic_save): New @save function to save code snippets. Also
5959 a Mike Heeter idea.
5966 a Mike Heeter idea.
5960
5967
5961 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5968 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5962 plot() and replot(). Much more convenient now, especially for
5969 plot() and replot(). Much more convenient now, especially for
5963 interactive use.
5970 interactive use.
5964
5971
5965 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5972 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5966 filenames.
5973 filenames.
5967
5974
5968 2002-06-02 Fernando Perez <fperez@colorado.edu>
5975 2002-06-02 Fernando Perez <fperez@colorado.edu>
5969
5976
5970 * IPython/Struct.py (Struct.__init__): modified to admit
5977 * IPython/Struct.py (Struct.__init__): modified to admit
5971 initialization via another struct.
5978 initialization via another struct.
5972
5979
5973 * IPython/genutils.py (SystemExec.__init__): New stateful
5980 * IPython/genutils.py (SystemExec.__init__): New stateful
5974 interface to xsys and bq. Useful for writing system scripts.
5981 interface to xsys and bq. Useful for writing system scripts.
5975
5982
5976 2002-05-30 Fernando Perez <fperez@colorado.edu>
5983 2002-05-30 Fernando Perez <fperez@colorado.edu>
5977
5984
5978 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5985 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5979 documents. This will make the user download smaller (it's getting
5986 documents. This will make the user download smaller (it's getting
5980 too big).
5987 too big).
5981
5988
5982 2002-05-29 Fernando Perez <fperez@colorado.edu>
5989 2002-05-29 Fernando Perez <fperez@colorado.edu>
5983
5990
5984 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5991 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5985 fix problems with shelve and pickle. Seems to work, but I don't
5992 fix problems with shelve and pickle. Seems to work, but I don't
5986 know if corner cases break it. Thanks to Mike Heeter
5993 know if corner cases break it. Thanks to Mike Heeter
5987 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5994 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5988
5995
5989 2002-05-24 Fernando Perez <fperez@colorado.edu>
5996 2002-05-24 Fernando Perez <fperez@colorado.edu>
5990
5997
5991 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5998 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5992 macros having broken.
5999 macros having broken.
5993
6000
5994 2002-05-21 Fernando Perez <fperez@colorado.edu>
6001 2002-05-21 Fernando Perez <fperez@colorado.edu>
5995
6002
5996 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6003 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5997 introduced logging bug: all history before logging started was
6004 introduced logging bug: all history before logging started was
5998 being written one character per line! This came from the redesign
6005 being written one character per line! This came from the redesign
5999 of the input history as a special list which slices to strings,
6006 of the input history as a special list which slices to strings,
6000 not to lists.
6007 not to lists.
6001
6008
6002 2002-05-20 Fernando Perez <fperez@colorado.edu>
6009 2002-05-20 Fernando Perez <fperez@colorado.edu>
6003
6010
6004 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6011 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6005 be an attribute of all classes in this module. The design of these
6012 be an attribute of all classes in this module. The design of these
6006 classes needs some serious overhauling.
6013 classes needs some serious overhauling.
6007
6014
6008 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6015 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6009 which was ignoring '_' in option names.
6016 which was ignoring '_' in option names.
6010
6017
6011 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6018 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6012 'Verbose_novars' to 'Context' and made it the new default. It's a
6019 'Verbose_novars' to 'Context' and made it the new default. It's a
6013 bit more readable and also safer than verbose.
6020 bit more readable and also safer than verbose.
6014
6021
6015 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6022 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6016 triple-quoted strings.
6023 triple-quoted strings.
6017
6024
6018 * IPython/OInspect.py (__all__): new module exposing the object
6025 * IPython/OInspect.py (__all__): new module exposing the object
6019 introspection facilities. Now the corresponding magics are dummy
6026 introspection facilities. Now the corresponding magics are dummy
6020 wrappers around this. Having this module will make it much easier
6027 wrappers around this. Having this module will make it much easier
6021 to put these functions into our modified pdb.
6028 to put these functions into our modified pdb.
6022 This new object inspector system uses the new colorizing module,
6029 This new object inspector system uses the new colorizing module,
6023 so source code and other things are nicely syntax highlighted.
6030 so source code and other things are nicely syntax highlighted.
6024
6031
6025 2002-05-18 Fernando Perez <fperez@colorado.edu>
6032 2002-05-18 Fernando Perez <fperez@colorado.edu>
6026
6033
6027 * IPython/ColorANSI.py: Split the coloring tools into a separate
6034 * IPython/ColorANSI.py: Split the coloring tools into a separate
6028 module so I can use them in other code easier (they were part of
6035 module so I can use them in other code easier (they were part of
6029 ultraTB).
6036 ultraTB).
6030
6037
6031 2002-05-17 Fernando Perez <fperez@colorado.edu>
6038 2002-05-17 Fernando Perez <fperez@colorado.edu>
6032
6039
6033 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6040 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6034 fixed it to set the global 'g' also to the called instance, as
6041 fixed it to set the global 'g' also to the called instance, as
6035 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6042 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6036 user's 'g' variables).
6043 user's 'g' variables).
6037
6044
6038 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6045 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6039 global variables (aliases to _ih,_oh) so that users which expect
6046 global variables (aliases to _ih,_oh) so that users which expect
6040 In[5] or Out[7] to work aren't unpleasantly surprised.
6047 In[5] or Out[7] to work aren't unpleasantly surprised.
6041 (InputList.__getslice__): new class to allow executing slices of
6048 (InputList.__getslice__): new class to allow executing slices of
6042 input history directly. Very simple class, complements the use of
6049 input history directly. Very simple class, complements the use of
6043 macros.
6050 macros.
6044
6051
6045 2002-05-16 Fernando Perez <fperez@colorado.edu>
6052 2002-05-16 Fernando Perez <fperez@colorado.edu>
6046
6053
6047 * setup.py (docdirbase): make doc directory be just doc/IPython
6054 * setup.py (docdirbase): make doc directory be just doc/IPython
6048 without version numbers, it will reduce clutter for users.
6055 without version numbers, it will reduce clutter for users.
6049
6056
6050 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6057 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6051 execfile call to prevent possible memory leak. See for details:
6058 execfile call to prevent possible memory leak. See for details:
6052 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6059 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6053
6060
6054 2002-05-15 Fernando Perez <fperez@colorado.edu>
6061 2002-05-15 Fernando Perez <fperez@colorado.edu>
6055
6062
6056 * IPython/Magic.py (Magic.magic_psource): made the object
6063 * IPython/Magic.py (Magic.magic_psource): made the object
6057 introspection names be more standard: pdoc, pdef, pfile and
6064 introspection names be more standard: pdoc, pdef, pfile and
6058 psource. They all print/page their output, and it makes
6065 psource. They all print/page their output, and it makes
6059 remembering them easier. Kept old names for compatibility as
6066 remembering them easier. Kept old names for compatibility as
6060 aliases.
6067 aliases.
6061
6068
6062 2002-05-14 Fernando Perez <fperez@colorado.edu>
6069 2002-05-14 Fernando Perez <fperez@colorado.edu>
6063
6070
6064 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6071 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6065 what the mouse problem was. The trick is to use gnuplot with temp
6072 what the mouse problem was. The trick is to use gnuplot with temp
6066 files and NOT with pipes (for data communication), because having
6073 files and NOT with pipes (for data communication), because having
6067 both pipes and the mouse on is bad news.
6074 both pipes and the mouse on is bad news.
6068
6075
6069 2002-05-13 Fernando Perez <fperez@colorado.edu>
6076 2002-05-13 Fernando Perez <fperez@colorado.edu>
6070
6077
6071 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6078 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6072 bug. Information would be reported about builtins even when
6079 bug. Information would be reported about builtins even when
6073 user-defined functions overrode them.
6080 user-defined functions overrode them.
6074
6081
6075 2002-05-11 Fernando Perez <fperez@colorado.edu>
6082 2002-05-11 Fernando Perez <fperez@colorado.edu>
6076
6083
6077 * IPython/__init__.py (__all__): removed FlexCompleter from
6084 * IPython/__init__.py (__all__): removed FlexCompleter from
6078 __all__ so that things don't fail in platforms without readline.
6085 __all__ so that things don't fail in platforms without readline.
6079
6086
6080 2002-05-10 Fernando Perez <fperez@colorado.edu>
6087 2002-05-10 Fernando Perez <fperez@colorado.edu>
6081
6088
6082 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6089 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6083 it requires Numeric, effectively making Numeric a dependency for
6090 it requires Numeric, effectively making Numeric a dependency for
6084 IPython.
6091 IPython.
6085
6092
6086 * Released 0.2.13
6093 * Released 0.2.13
6087
6094
6088 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6095 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6089 profiler interface. Now all the major options from the profiler
6096 profiler interface. Now all the major options from the profiler
6090 module are directly supported in IPython, both for single
6097 module are directly supported in IPython, both for single
6091 expressions (@prun) and for full programs (@run -p).
6098 expressions (@prun) and for full programs (@run -p).
6092
6099
6093 2002-05-09 Fernando Perez <fperez@colorado.edu>
6100 2002-05-09 Fernando Perez <fperez@colorado.edu>
6094
6101
6095 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6102 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6096 magic properly formatted for screen.
6103 magic properly formatted for screen.
6097
6104
6098 * setup.py (make_shortcut): Changed things to put pdf version in
6105 * setup.py (make_shortcut): Changed things to put pdf version in
6099 doc/ instead of doc/manual (had to change lyxport a bit).
6106 doc/ instead of doc/manual (had to change lyxport a bit).
6100
6107
6101 * IPython/Magic.py (Profile.string_stats): made profile runs go
6108 * IPython/Magic.py (Profile.string_stats): made profile runs go
6102 through pager (they are long and a pager allows searching, saving,
6109 through pager (they are long and a pager allows searching, saving,
6103 etc.)
6110 etc.)
6104
6111
6105 2002-05-08 Fernando Perez <fperez@colorado.edu>
6112 2002-05-08 Fernando Perez <fperez@colorado.edu>
6106
6113
6107 * Released 0.2.12
6114 * Released 0.2.12
6108
6115
6109 2002-05-06 Fernando Perez <fperez@colorado.edu>
6116 2002-05-06 Fernando Perez <fperez@colorado.edu>
6110
6117
6111 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6118 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6112 introduced); 'hist n1 n2' was broken.
6119 introduced); 'hist n1 n2' was broken.
6113 (Magic.magic_pdb): added optional on/off arguments to @pdb
6120 (Magic.magic_pdb): added optional on/off arguments to @pdb
6114 (Magic.magic_run): added option -i to @run, which executes code in
6121 (Magic.magic_run): added option -i to @run, which executes code in
6115 the IPython namespace instead of a clean one. Also added @irun as
6122 the IPython namespace instead of a clean one. Also added @irun as
6116 an alias to @run -i.
6123 an alias to @run -i.
6117
6124
6118 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6125 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6119 fixed (it didn't really do anything, the namespaces were wrong).
6126 fixed (it didn't really do anything, the namespaces were wrong).
6120
6127
6121 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6128 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6122
6129
6123 * IPython/__init__.py (__all__): Fixed package namespace, now
6130 * IPython/__init__.py (__all__): Fixed package namespace, now
6124 'import IPython' does give access to IPython.<all> as
6131 'import IPython' does give access to IPython.<all> as
6125 expected. Also renamed __release__ to Release.
6132 expected. Also renamed __release__ to Release.
6126
6133
6127 * IPython/Debugger.py (__license__): created new Pdb class which
6134 * IPython/Debugger.py (__license__): created new Pdb class which
6128 functions like a drop-in for the normal pdb.Pdb but does NOT
6135 functions like a drop-in for the normal pdb.Pdb but does NOT
6129 import readline by default. This way it doesn't muck up IPython's
6136 import readline by default. This way it doesn't muck up IPython's
6130 readline handling, and now tab-completion finally works in the
6137 readline handling, and now tab-completion finally works in the
6131 debugger -- sort of. It completes things globally visible, but the
6138 debugger -- sort of. It completes things globally visible, but the
6132 completer doesn't track the stack as pdb walks it. That's a bit
6139 completer doesn't track the stack as pdb walks it. That's a bit
6133 tricky, and I'll have to implement it later.
6140 tricky, and I'll have to implement it later.
6134
6141
6135 2002-05-05 Fernando Perez <fperez@colorado.edu>
6142 2002-05-05 Fernando Perez <fperez@colorado.edu>
6136
6143
6137 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6144 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6138 magic docstrings when printed via ? (explicit \'s were being
6145 magic docstrings when printed via ? (explicit \'s were being
6139 printed).
6146 printed).
6140
6147
6141 * IPython/ipmaker.py (make_IPython): fixed namespace
6148 * IPython/ipmaker.py (make_IPython): fixed namespace
6142 identification bug. Now variables loaded via logs or command-line
6149 identification bug. Now variables loaded via logs or command-line
6143 files are recognized in the interactive namespace by @who.
6150 files are recognized in the interactive namespace by @who.
6144
6151
6145 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6152 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6146 log replay system stemming from the string form of Structs.
6153 log replay system stemming from the string form of Structs.
6147
6154
6148 * IPython/Magic.py (Macro.__init__): improved macros to properly
6155 * IPython/Magic.py (Macro.__init__): improved macros to properly
6149 handle magic commands in them.
6156 handle magic commands in them.
6150 (Magic.magic_logstart): usernames are now expanded so 'logstart
6157 (Magic.magic_logstart): usernames are now expanded so 'logstart
6151 ~/mylog' now works.
6158 ~/mylog' now works.
6152
6159
6153 * IPython/iplib.py (complete): fixed bug where paths starting with
6160 * IPython/iplib.py (complete): fixed bug where paths starting with
6154 '/' would be completed as magic names.
6161 '/' would be completed as magic names.
6155
6162
6156 2002-05-04 Fernando Perez <fperez@colorado.edu>
6163 2002-05-04 Fernando Perez <fperez@colorado.edu>
6157
6164
6158 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6165 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6159 allow running full programs under the profiler's control.
6166 allow running full programs under the profiler's control.
6160
6167
6161 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6168 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6162 mode to report exceptions verbosely but without formatting
6169 mode to report exceptions verbosely but without formatting
6163 variables. This addresses the issue of ipython 'freezing' (it's
6170 variables. This addresses the issue of ipython 'freezing' (it's
6164 not frozen, but caught in an expensive formatting loop) when huge
6171 not frozen, but caught in an expensive formatting loop) when huge
6165 variables are in the context of an exception.
6172 variables are in the context of an exception.
6166 (VerboseTB.text): Added '--->' markers at line where exception was
6173 (VerboseTB.text): Added '--->' markers at line where exception was
6167 triggered. Much clearer to read, especially in NoColor modes.
6174 triggered. Much clearer to read, especially in NoColor modes.
6168
6175
6169 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6176 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6170 implemented in reverse when changing to the new parse_options().
6177 implemented in reverse when changing to the new parse_options().
6171
6178
6172 2002-05-03 Fernando Perez <fperez@colorado.edu>
6179 2002-05-03 Fernando Perez <fperez@colorado.edu>
6173
6180
6174 * IPython/Magic.py (Magic.parse_options): new function so that
6181 * IPython/Magic.py (Magic.parse_options): new function so that
6175 magics can parse options easier.
6182 magics can parse options easier.
6176 (Magic.magic_prun): new function similar to profile.run(),
6183 (Magic.magic_prun): new function similar to profile.run(),
6177 suggested by Chris Hart.
6184 suggested by Chris Hart.
6178 (Magic.magic_cd): fixed behavior so that it only changes if
6185 (Magic.magic_cd): fixed behavior so that it only changes if
6179 directory actually is in history.
6186 directory actually is in history.
6180
6187
6181 * IPython/usage.py (__doc__): added information about potential
6188 * IPython/usage.py (__doc__): added information about potential
6182 slowness of Verbose exception mode when there are huge data
6189 slowness of Verbose exception mode when there are huge data
6183 structures to be formatted (thanks to Archie Paulson).
6190 structures to be formatted (thanks to Archie Paulson).
6184
6191
6185 * IPython/ipmaker.py (make_IPython): Changed default logging
6192 * IPython/ipmaker.py (make_IPython): Changed default logging
6186 (when simply called with -log) to use curr_dir/ipython.log in
6193 (when simply called with -log) to use curr_dir/ipython.log in
6187 rotate mode. Fixed crash which was occuring with -log before
6194 rotate mode. Fixed crash which was occuring with -log before
6188 (thanks to Jim Boyle).
6195 (thanks to Jim Boyle).
6189
6196
6190 2002-05-01 Fernando Perez <fperez@colorado.edu>
6197 2002-05-01 Fernando Perez <fperez@colorado.edu>
6191
6198
6192 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6199 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6193 was nasty -- though somewhat of a corner case).
6200 was nasty -- though somewhat of a corner case).
6194
6201
6195 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6202 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6196 text (was a bug).
6203 text (was a bug).
6197
6204
6198 2002-04-30 Fernando Perez <fperez@colorado.edu>
6205 2002-04-30 Fernando Perez <fperez@colorado.edu>
6199
6206
6200 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6207 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6201 a print after ^D or ^C from the user so that the In[] prompt
6208 a print after ^D or ^C from the user so that the In[] prompt
6202 doesn't over-run the gnuplot one.
6209 doesn't over-run the gnuplot one.
6203
6210
6204 2002-04-29 Fernando Perez <fperez@colorado.edu>
6211 2002-04-29 Fernando Perez <fperez@colorado.edu>
6205
6212
6206 * Released 0.2.10
6213 * Released 0.2.10
6207
6214
6208 * IPython/__release__.py (version): get date dynamically.
6215 * IPython/__release__.py (version): get date dynamically.
6209
6216
6210 * Misc. documentation updates thanks to Arnd's comments. Also ran
6217 * Misc. documentation updates thanks to Arnd's comments. Also ran
6211 a full spellcheck on the manual (hadn't been done in a while).
6218 a full spellcheck on the manual (hadn't been done in a while).
6212
6219
6213 2002-04-27 Fernando Perez <fperez@colorado.edu>
6220 2002-04-27 Fernando Perez <fperez@colorado.edu>
6214
6221
6215 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6222 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6216 starting a log in mid-session would reset the input history list.
6223 starting a log in mid-session would reset the input history list.
6217
6224
6218 2002-04-26 Fernando Perez <fperez@colorado.edu>
6225 2002-04-26 Fernando Perez <fperez@colorado.edu>
6219
6226
6220 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6227 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6221 all files were being included in an update. Now anything in
6228 all files were being included in an update. Now anything in
6222 UserConfig that matches [A-Za-z]*.py will go (this excludes
6229 UserConfig that matches [A-Za-z]*.py will go (this excludes
6223 __init__.py)
6230 __init__.py)
6224
6231
6225 2002-04-25 Fernando Perez <fperez@colorado.edu>
6232 2002-04-25 Fernando Perez <fperez@colorado.edu>
6226
6233
6227 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6234 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6228 to __builtins__ so that any form of embedded or imported code can
6235 to __builtins__ so that any form of embedded or imported code can
6229 test for being inside IPython.
6236 test for being inside IPython.
6230
6237
6231 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6238 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6232 changed to GnuplotMagic because it's now an importable module,
6239 changed to GnuplotMagic because it's now an importable module,
6233 this makes the name follow that of the standard Gnuplot module.
6240 this makes the name follow that of the standard Gnuplot module.
6234 GnuplotMagic can now be loaded at any time in mid-session.
6241 GnuplotMagic can now be loaded at any time in mid-session.
6235
6242
6236 2002-04-24 Fernando Perez <fperez@colorado.edu>
6243 2002-04-24 Fernando Perez <fperez@colorado.edu>
6237
6244
6238 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6245 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6239 the globals (IPython has its own namespace) and the
6246 the globals (IPython has its own namespace) and the
6240 PhysicalQuantity stuff is much better anyway.
6247 PhysicalQuantity stuff is much better anyway.
6241
6248
6242 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6249 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6243 embedding example to standard user directory for
6250 embedding example to standard user directory for
6244 distribution. Also put it in the manual.
6251 distribution. Also put it in the manual.
6245
6252
6246 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6253 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6247 instance as first argument (so it doesn't rely on some obscure
6254 instance as first argument (so it doesn't rely on some obscure
6248 hidden global).
6255 hidden global).
6249
6256
6250 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6257 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6251 delimiters. While it prevents ().TAB from working, it allows
6258 delimiters. While it prevents ().TAB from working, it allows
6252 completions in open (... expressions. This is by far a more common
6259 completions in open (... expressions. This is by far a more common
6253 case.
6260 case.
6254
6261
6255 2002-04-23 Fernando Perez <fperez@colorado.edu>
6262 2002-04-23 Fernando Perez <fperez@colorado.edu>
6256
6263
6257 * IPython/Extensions/InterpreterPasteInput.py: new
6264 * IPython/Extensions/InterpreterPasteInput.py: new
6258 syntax-processing module for pasting lines with >>> or ... at the
6265 syntax-processing module for pasting lines with >>> or ... at the
6259 start.
6266 start.
6260
6267
6261 * IPython/Extensions/PhysicalQ_Interactive.py
6268 * IPython/Extensions/PhysicalQ_Interactive.py
6262 (PhysicalQuantityInteractive.__int__): fixed to work with either
6269 (PhysicalQuantityInteractive.__int__): fixed to work with either
6263 Numeric or math.
6270 Numeric or math.
6264
6271
6265 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6272 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6266 provided profiles. Now we have:
6273 provided profiles. Now we have:
6267 -math -> math module as * and cmath with its own namespace.
6274 -math -> math module as * and cmath with its own namespace.
6268 -numeric -> Numeric as *, plus gnuplot & grace
6275 -numeric -> Numeric as *, plus gnuplot & grace
6269 -physics -> same as before
6276 -physics -> same as before
6270
6277
6271 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6278 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6272 user-defined magics wouldn't be found by @magic if they were
6279 user-defined magics wouldn't be found by @magic if they were
6273 defined as class methods. Also cleaned up the namespace search
6280 defined as class methods. Also cleaned up the namespace search
6274 logic and the string building (to use %s instead of many repeated
6281 logic and the string building (to use %s instead of many repeated
6275 string adds).
6282 string adds).
6276
6283
6277 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6284 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6278 of user-defined magics to operate with class methods (cleaner, in
6285 of user-defined magics to operate with class methods (cleaner, in
6279 line with the gnuplot code).
6286 line with the gnuplot code).
6280
6287
6281 2002-04-22 Fernando Perez <fperez@colorado.edu>
6288 2002-04-22 Fernando Perez <fperez@colorado.edu>
6282
6289
6283 * setup.py: updated dependency list so that manual is updated when
6290 * setup.py: updated dependency list so that manual is updated when
6284 all included files change.
6291 all included files change.
6285
6292
6286 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6293 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6287 the delimiter removal option (the fix is ugly right now).
6294 the delimiter removal option (the fix is ugly right now).
6288
6295
6289 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6296 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6290 all of the math profile (quicker loading, no conflict between
6297 all of the math profile (quicker loading, no conflict between
6291 g-9.8 and g-gnuplot).
6298 g-9.8 and g-gnuplot).
6292
6299
6293 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6300 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6294 name of post-mortem files to IPython_crash_report.txt.
6301 name of post-mortem files to IPython_crash_report.txt.
6295
6302
6296 * Cleanup/update of the docs. Added all the new readline info and
6303 * Cleanup/update of the docs. Added all the new readline info and
6297 formatted all lists as 'real lists'.
6304 formatted all lists as 'real lists'.
6298
6305
6299 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6306 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6300 tab-completion options, since the full readline parse_and_bind is
6307 tab-completion options, since the full readline parse_and_bind is
6301 now accessible.
6308 now accessible.
6302
6309
6303 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6310 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6304 handling of readline options. Now users can specify any string to
6311 handling of readline options. Now users can specify any string to
6305 be passed to parse_and_bind(), as well as the delimiters to be
6312 be passed to parse_and_bind(), as well as the delimiters to be
6306 removed.
6313 removed.
6307 (InteractiveShell.__init__): Added __name__ to the global
6314 (InteractiveShell.__init__): Added __name__ to the global
6308 namespace so that things like Itpl which rely on its existence
6315 namespace so that things like Itpl which rely on its existence
6309 don't crash.
6316 don't crash.
6310 (InteractiveShell._prefilter): Defined the default with a _ so
6317 (InteractiveShell._prefilter): Defined the default with a _ so
6311 that prefilter() is easier to override, while the default one
6318 that prefilter() is easier to override, while the default one
6312 remains available.
6319 remains available.
6313
6320
6314 2002-04-18 Fernando Perez <fperez@colorado.edu>
6321 2002-04-18 Fernando Perez <fperez@colorado.edu>
6315
6322
6316 * Added information about pdb in the docs.
6323 * Added information about pdb in the docs.
6317
6324
6318 2002-04-17 Fernando Perez <fperez@colorado.edu>
6325 2002-04-17 Fernando Perez <fperez@colorado.edu>
6319
6326
6320 * IPython/ipmaker.py (make_IPython): added rc_override option to
6327 * IPython/ipmaker.py (make_IPython): added rc_override option to
6321 allow passing config options at creation time which may override
6328 allow passing config options at creation time which may override
6322 anything set in the config files or command line. This is
6329 anything set in the config files or command line. This is
6323 particularly useful for configuring embedded instances.
6330 particularly useful for configuring embedded instances.
6324
6331
6325 2002-04-15 Fernando Perez <fperez@colorado.edu>
6332 2002-04-15 Fernando Perez <fperez@colorado.edu>
6326
6333
6327 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6334 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6328 crash embedded instances because of the input cache falling out of
6335 crash embedded instances because of the input cache falling out of
6329 sync with the output counter.
6336 sync with the output counter.
6330
6337
6331 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6338 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6332 mode which calls pdb after an uncaught exception in IPython itself.
6339 mode which calls pdb after an uncaught exception in IPython itself.
6333
6340
6334 2002-04-14 Fernando Perez <fperez@colorado.edu>
6341 2002-04-14 Fernando Perez <fperez@colorado.edu>
6335
6342
6336 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6343 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6337 readline, fix it back after each call.
6344 readline, fix it back after each call.
6338
6345
6339 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6346 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6340 method to force all access via __call__(), which guarantees that
6347 method to force all access via __call__(), which guarantees that
6341 traceback references are properly deleted.
6348 traceback references are properly deleted.
6342
6349
6343 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6350 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6344 improve printing when pprint is in use.
6351 improve printing when pprint is in use.
6345
6352
6346 2002-04-13 Fernando Perez <fperez@colorado.edu>
6353 2002-04-13 Fernando Perez <fperez@colorado.edu>
6347
6354
6348 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6355 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6349 exceptions aren't caught anymore. If the user triggers one, he
6356 exceptions aren't caught anymore. If the user triggers one, he
6350 should know why he's doing it and it should go all the way up,
6357 should know why he's doing it and it should go all the way up,
6351 just like any other exception. So now @abort will fully kill the
6358 just like any other exception. So now @abort will fully kill the
6352 embedded interpreter and the embedding code (unless that happens
6359 embedded interpreter and the embedding code (unless that happens
6353 to catch SystemExit).
6360 to catch SystemExit).
6354
6361
6355 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6362 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6356 and a debugger() method to invoke the interactive pdb debugger
6363 and a debugger() method to invoke the interactive pdb debugger
6357 after printing exception information. Also added the corresponding
6364 after printing exception information. Also added the corresponding
6358 -pdb option and @pdb magic to control this feature, and updated
6365 -pdb option and @pdb magic to control this feature, and updated
6359 the docs. After a suggestion from Christopher Hart
6366 the docs. After a suggestion from Christopher Hart
6360 (hart-AT-caltech.edu).
6367 (hart-AT-caltech.edu).
6361
6368
6362 2002-04-12 Fernando Perez <fperez@colorado.edu>
6369 2002-04-12 Fernando Perez <fperez@colorado.edu>
6363
6370
6364 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6371 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6365 the exception handlers defined by the user (not the CrashHandler)
6372 the exception handlers defined by the user (not the CrashHandler)
6366 so that user exceptions don't trigger an ipython bug report.
6373 so that user exceptions don't trigger an ipython bug report.
6367
6374
6368 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6375 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6369 configurable (it should have always been so).
6376 configurable (it should have always been so).
6370
6377
6371 2002-03-26 Fernando Perez <fperez@colorado.edu>
6378 2002-03-26 Fernando Perez <fperez@colorado.edu>
6372
6379
6373 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6380 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6374 and there to fix embedding namespace issues. This should all be
6381 and there to fix embedding namespace issues. This should all be
6375 done in a more elegant way.
6382 done in a more elegant way.
6376
6383
6377 2002-03-25 Fernando Perez <fperez@colorado.edu>
6384 2002-03-25 Fernando Perez <fperez@colorado.edu>
6378
6385
6379 * IPython/genutils.py (get_home_dir): Try to make it work under
6386 * IPython/genutils.py (get_home_dir): Try to make it work under
6380 win9x also.
6387 win9x also.
6381
6388
6382 2002-03-20 Fernando Perez <fperez@colorado.edu>
6389 2002-03-20 Fernando Perez <fperez@colorado.edu>
6383
6390
6384 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6391 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6385 sys.displayhook untouched upon __init__.
6392 sys.displayhook untouched upon __init__.
6386
6393
6387 2002-03-19 Fernando Perez <fperez@colorado.edu>
6394 2002-03-19 Fernando Perez <fperez@colorado.edu>
6388
6395
6389 * Released 0.2.9 (for embedding bug, basically).
6396 * Released 0.2.9 (for embedding bug, basically).
6390
6397
6391 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6398 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6392 exceptions so that enclosing shell's state can be restored.
6399 exceptions so that enclosing shell's state can be restored.
6393
6400
6394 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6401 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6395 naming conventions in the .ipython/ dir.
6402 naming conventions in the .ipython/ dir.
6396
6403
6397 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6404 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6398 from delimiters list so filenames with - in them get expanded.
6405 from delimiters list so filenames with - in them get expanded.
6399
6406
6400 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6407 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6401 sys.displayhook not being properly restored after an embedded call.
6408 sys.displayhook not being properly restored after an embedded call.
6402
6409
6403 2002-03-18 Fernando Perez <fperez@colorado.edu>
6410 2002-03-18 Fernando Perez <fperez@colorado.edu>
6404
6411
6405 * Released 0.2.8
6412 * Released 0.2.8
6406
6413
6407 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6414 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6408 some files weren't being included in a -upgrade.
6415 some files weren't being included in a -upgrade.
6409 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6416 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6410 on' so that the first tab completes.
6417 on' so that the first tab completes.
6411 (InteractiveShell.handle_magic): fixed bug with spaces around
6418 (InteractiveShell.handle_magic): fixed bug with spaces around
6412 quotes breaking many magic commands.
6419 quotes breaking many magic commands.
6413
6420
6414 * setup.py: added note about ignoring the syntax error messages at
6421 * setup.py: added note about ignoring the syntax error messages at
6415 installation.
6422 installation.
6416
6423
6417 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6424 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6418 streamlining the gnuplot interface, now there's only one magic @gp.
6425 streamlining the gnuplot interface, now there's only one magic @gp.
6419
6426
6420 2002-03-17 Fernando Perez <fperez@colorado.edu>
6427 2002-03-17 Fernando Perez <fperez@colorado.edu>
6421
6428
6422 * IPython/UserConfig/magic_gnuplot.py: new name for the
6429 * IPython/UserConfig/magic_gnuplot.py: new name for the
6423 example-magic_pm.py file. Much enhanced system, now with a shell
6430 example-magic_pm.py file. Much enhanced system, now with a shell
6424 for communicating directly with gnuplot, one command at a time.
6431 for communicating directly with gnuplot, one command at a time.
6425
6432
6426 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6433 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6427 setting __name__=='__main__'.
6434 setting __name__=='__main__'.
6428
6435
6429 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6436 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6430 mini-shell for accessing gnuplot from inside ipython. Should
6437 mini-shell for accessing gnuplot from inside ipython. Should
6431 extend it later for grace access too. Inspired by Arnd's
6438 extend it later for grace access too. Inspired by Arnd's
6432 suggestion.
6439 suggestion.
6433
6440
6434 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6441 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6435 calling magic functions with () in their arguments. Thanks to Arnd
6442 calling magic functions with () in their arguments. Thanks to Arnd
6436 Baecker for pointing this to me.
6443 Baecker for pointing this to me.
6437
6444
6438 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6445 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6439 infinitely for integer or complex arrays (only worked with floats).
6446 infinitely for integer or complex arrays (only worked with floats).
6440
6447
6441 2002-03-16 Fernando Perez <fperez@colorado.edu>
6448 2002-03-16 Fernando Perez <fperez@colorado.edu>
6442
6449
6443 * setup.py: Merged setup and setup_windows into a single script
6450 * setup.py: Merged setup and setup_windows into a single script
6444 which properly handles things for windows users.
6451 which properly handles things for windows users.
6445
6452
6446 2002-03-15 Fernando Perez <fperez@colorado.edu>
6453 2002-03-15 Fernando Perez <fperez@colorado.edu>
6447
6454
6448 * Big change to the manual: now the magics are all automatically
6455 * Big change to the manual: now the magics are all automatically
6449 documented. This information is generated from their docstrings
6456 documented. This information is generated from their docstrings
6450 and put in a latex file included by the manual lyx file. This way
6457 and put in a latex file included by the manual lyx file. This way
6451 we get always up to date information for the magics. The manual
6458 we get always up to date information for the magics. The manual
6452 now also has proper version information, also auto-synced.
6459 now also has proper version information, also auto-synced.
6453
6460
6454 For this to work, an undocumented --magic_docstrings option was added.
6461 For this to work, an undocumented --magic_docstrings option was added.
6455
6462
6456 2002-03-13 Fernando Perez <fperez@colorado.edu>
6463 2002-03-13 Fernando Perez <fperez@colorado.edu>
6457
6464
6458 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6465 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6459 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6466 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6460
6467
6461 2002-03-12 Fernando Perez <fperez@colorado.edu>
6468 2002-03-12 Fernando Perez <fperez@colorado.edu>
6462
6469
6463 * IPython/ultraTB.py (TermColors): changed color escapes again to
6470 * IPython/ultraTB.py (TermColors): changed color escapes again to
6464 fix the (old, reintroduced) line-wrapping bug. Basically, if
6471 fix the (old, reintroduced) line-wrapping bug. Basically, if
6465 \001..\002 aren't given in the color escapes, lines get wrapped
6472 \001..\002 aren't given in the color escapes, lines get wrapped
6466 weirdly. But giving those screws up old xterms and emacs terms. So
6473 weirdly. But giving those screws up old xterms and emacs terms. So
6467 I added some logic for emacs terms to be ok, but I can't identify old
6474 I added some logic for emacs terms to be ok, but I can't identify old
6468 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6475 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6469
6476
6470 2002-03-10 Fernando Perez <fperez@colorado.edu>
6477 2002-03-10 Fernando Perez <fperez@colorado.edu>
6471
6478
6472 * IPython/usage.py (__doc__): Various documentation cleanups and
6479 * IPython/usage.py (__doc__): Various documentation cleanups and
6473 updates, both in usage docstrings and in the manual.
6480 updates, both in usage docstrings and in the manual.
6474
6481
6475 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6482 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6476 handling of caching. Set minimum acceptabe value for having a
6483 handling of caching. Set minimum acceptabe value for having a
6477 cache at 20 values.
6484 cache at 20 values.
6478
6485
6479 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6486 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6480 install_first_time function to a method, renamed it and added an
6487 install_first_time function to a method, renamed it and added an
6481 'upgrade' mode. Now people can update their config directory with
6488 'upgrade' mode. Now people can update their config directory with
6482 a simple command line switch (-upgrade, also new).
6489 a simple command line switch (-upgrade, also new).
6483
6490
6484 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6491 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6485 @file (convenient for automagic users under Python >= 2.2).
6492 @file (convenient for automagic users under Python >= 2.2).
6486 Removed @files (it seemed more like a plural than an abbrev. of
6493 Removed @files (it seemed more like a plural than an abbrev. of
6487 'file show').
6494 'file show').
6488
6495
6489 * IPython/iplib.py (install_first_time): Fixed crash if there were
6496 * IPython/iplib.py (install_first_time): Fixed crash if there were
6490 backup files ('~') in .ipython/ install directory.
6497 backup files ('~') in .ipython/ install directory.
6491
6498
6492 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6499 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6493 system. Things look fine, but these changes are fairly
6500 system. Things look fine, but these changes are fairly
6494 intrusive. Test them for a few days.
6501 intrusive. Test them for a few days.
6495
6502
6496 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6503 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6497 the prompts system. Now all in/out prompt strings are user
6504 the prompts system. Now all in/out prompt strings are user
6498 controllable. This is particularly useful for embedding, as one
6505 controllable. This is particularly useful for embedding, as one
6499 can tag embedded instances with particular prompts.
6506 can tag embedded instances with particular prompts.
6500
6507
6501 Also removed global use of sys.ps1/2, which now allows nested
6508 Also removed global use of sys.ps1/2, which now allows nested
6502 embeddings without any problems. Added command-line options for
6509 embeddings without any problems. Added command-line options for
6503 the prompt strings.
6510 the prompt strings.
6504
6511
6505 2002-03-08 Fernando Perez <fperez@colorado.edu>
6512 2002-03-08 Fernando Perez <fperez@colorado.edu>
6506
6513
6507 * IPython/UserConfig/example-embed-short.py (ipshell): added
6514 * IPython/UserConfig/example-embed-short.py (ipshell): added
6508 example file with the bare minimum code for embedding.
6515 example file with the bare minimum code for embedding.
6509
6516
6510 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6517 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6511 functionality for the embeddable shell to be activated/deactivated
6518 functionality for the embeddable shell to be activated/deactivated
6512 either globally or at each call.
6519 either globally or at each call.
6513
6520
6514 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6521 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6515 rewriting the prompt with '--->' for auto-inputs with proper
6522 rewriting the prompt with '--->' for auto-inputs with proper
6516 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6523 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6517 this is handled by the prompts class itself, as it should.
6524 this is handled by the prompts class itself, as it should.
6518
6525
6519 2002-03-05 Fernando Perez <fperez@colorado.edu>
6526 2002-03-05 Fernando Perez <fperez@colorado.edu>
6520
6527
6521 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6528 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6522 @logstart to avoid name clashes with the math log function.
6529 @logstart to avoid name clashes with the math log function.
6523
6530
6524 * Big updates to X/Emacs section of the manual.
6531 * Big updates to X/Emacs section of the manual.
6525
6532
6526 * Removed ipython_emacs. Milan explained to me how to pass
6533 * Removed ipython_emacs. Milan explained to me how to pass
6527 arguments to ipython through Emacs. Some day I'm going to end up
6534 arguments to ipython through Emacs. Some day I'm going to end up
6528 learning some lisp...
6535 learning some lisp...
6529
6536
6530 2002-03-04 Fernando Perez <fperez@colorado.edu>
6537 2002-03-04 Fernando Perez <fperez@colorado.edu>
6531
6538
6532 * IPython/ipython_emacs: Created script to be used as the
6539 * IPython/ipython_emacs: Created script to be used as the
6533 py-python-command Emacs variable so we can pass IPython
6540 py-python-command Emacs variable so we can pass IPython
6534 parameters. I can't figure out how to tell Emacs directly to pass
6541 parameters. I can't figure out how to tell Emacs directly to pass
6535 parameters to IPython, so a dummy shell script will do it.
6542 parameters to IPython, so a dummy shell script will do it.
6536
6543
6537 Other enhancements made for things to work better under Emacs'
6544 Other enhancements made for things to work better under Emacs'
6538 various types of terminals. Many thanks to Milan Zamazal
6545 various types of terminals. Many thanks to Milan Zamazal
6539 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6546 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6540
6547
6541 2002-03-01 Fernando Perez <fperez@colorado.edu>
6548 2002-03-01 Fernando Perez <fperez@colorado.edu>
6542
6549
6543 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6550 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6544 that loading of readline is now optional. This gives better
6551 that loading of readline is now optional. This gives better
6545 control to emacs users.
6552 control to emacs users.
6546
6553
6547 * IPython/ultraTB.py (__date__): Modified color escape sequences
6554 * IPython/ultraTB.py (__date__): Modified color escape sequences
6548 and now things work fine under xterm and in Emacs' term buffers
6555 and now things work fine under xterm and in Emacs' term buffers
6549 (though not shell ones). Well, in emacs you get colors, but all
6556 (though not shell ones). Well, in emacs you get colors, but all
6550 seem to be 'light' colors (no difference between dark and light
6557 seem to be 'light' colors (no difference between dark and light
6551 ones). But the garbage chars are gone, and also in xterms. It
6558 ones). But the garbage chars are gone, and also in xterms. It
6552 seems that now I'm using 'cleaner' ansi sequences.
6559 seems that now I'm using 'cleaner' ansi sequences.
6553
6560
6554 2002-02-21 Fernando Perez <fperez@colorado.edu>
6561 2002-02-21 Fernando Perez <fperez@colorado.edu>
6555
6562
6556 * Released 0.2.7 (mainly to publish the scoping fix).
6563 * Released 0.2.7 (mainly to publish the scoping fix).
6557
6564
6558 * IPython/Logger.py (Logger.logstate): added. A corresponding
6565 * IPython/Logger.py (Logger.logstate): added. A corresponding
6559 @logstate magic was created.
6566 @logstate magic was created.
6560
6567
6561 * IPython/Magic.py: fixed nested scoping problem under Python
6568 * IPython/Magic.py: fixed nested scoping problem under Python
6562 2.1.x (automagic wasn't working).
6569 2.1.x (automagic wasn't working).
6563
6570
6564 2002-02-20 Fernando Perez <fperez@colorado.edu>
6571 2002-02-20 Fernando Perez <fperez@colorado.edu>
6565
6572
6566 * Released 0.2.6.
6573 * Released 0.2.6.
6567
6574
6568 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6575 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6569 option so that logs can come out without any headers at all.
6576 option so that logs can come out without any headers at all.
6570
6577
6571 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6578 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6572 SciPy.
6579 SciPy.
6573
6580
6574 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6581 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6575 that embedded IPython calls don't require vars() to be explicitly
6582 that embedded IPython calls don't require vars() to be explicitly
6576 passed. Now they are extracted from the caller's frame (code
6583 passed. Now they are extracted from the caller's frame (code
6577 snatched from Eric Jones' weave). Added better documentation to
6584 snatched from Eric Jones' weave). Added better documentation to
6578 the section on embedding and the example file.
6585 the section on embedding and the example file.
6579
6586
6580 * IPython/genutils.py (page): Changed so that under emacs, it just
6587 * IPython/genutils.py (page): Changed so that under emacs, it just
6581 prints the string. You can then page up and down in the emacs
6588 prints the string. You can then page up and down in the emacs
6582 buffer itself. This is how the builtin help() works.
6589 buffer itself. This is how the builtin help() works.
6583
6590
6584 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6591 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6585 macro scoping: macros need to be executed in the user's namespace
6592 macro scoping: macros need to be executed in the user's namespace
6586 to work as if they had been typed by the user.
6593 to work as if they had been typed by the user.
6587
6594
6588 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6595 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6589 execute automatically (no need to type 'exec...'). They then
6596 execute automatically (no need to type 'exec...'). They then
6590 behave like 'true macros'. The printing system was also modified
6597 behave like 'true macros'. The printing system was also modified
6591 for this to work.
6598 for this to work.
6592
6599
6593 2002-02-19 Fernando Perez <fperez@colorado.edu>
6600 2002-02-19 Fernando Perez <fperez@colorado.edu>
6594
6601
6595 * IPython/genutils.py (page_file): new function for paging files
6602 * IPython/genutils.py (page_file): new function for paging files
6596 in an OS-independent way. Also necessary for file viewing to work
6603 in an OS-independent way. Also necessary for file viewing to work
6597 well inside Emacs buffers.
6604 well inside Emacs buffers.
6598 (page): Added checks for being in an emacs buffer.
6605 (page): Added checks for being in an emacs buffer.
6599 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6606 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6600 same bug in iplib.
6607 same bug in iplib.
6601
6608
6602 2002-02-18 Fernando Perez <fperez@colorado.edu>
6609 2002-02-18 Fernando Perez <fperez@colorado.edu>
6603
6610
6604 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6611 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6605 of readline so that IPython can work inside an Emacs buffer.
6612 of readline so that IPython can work inside an Emacs buffer.
6606
6613
6607 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6614 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6608 method signatures (they weren't really bugs, but it looks cleaner
6615 method signatures (they weren't really bugs, but it looks cleaner
6609 and keeps PyChecker happy).
6616 and keeps PyChecker happy).
6610
6617
6611 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6618 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6612 for implementing various user-defined hooks. Currently only
6619 for implementing various user-defined hooks. Currently only
6613 display is done.
6620 display is done.
6614
6621
6615 * IPython/Prompts.py (CachedOutput._display): changed display
6622 * IPython/Prompts.py (CachedOutput._display): changed display
6616 functions so that they can be dynamically changed by users easily.
6623 functions so that they can be dynamically changed by users easily.
6617
6624
6618 * IPython/Extensions/numeric_formats.py (num_display): added an
6625 * IPython/Extensions/numeric_formats.py (num_display): added an
6619 extension for printing NumPy arrays in flexible manners. It
6626 extension for printing NumPy arrays in flexible manners. It
6620 doesn't do anything yet, but all the structure is in
6627 doesn't do anything yet, but all the structure is in
6621 place. Ultimately the plan is to implement output format control
6628 place. Ultimately the plan is to implement output format control
6622 like in Octave.
6629 like in Octave.
6623
6630
6624 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6631 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6625 methods are found at run-time by all the automatic machinery.
6632 methods are found at run-time by all the automatic machinery.
6626
6633
6627 2002-02-17 Fernando Perez <fperez@colorado.edu>
6634 2002-02-17 Fernando Perez <fperez@colorado.edu>
6628
6635
6629 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6636 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6630 whole file a little.
6637 whole file a little.
6631
6638
6632 * ToDo: closed this document. Now there's a new_design.lyx
6639 * ToDo: closed this document. Now there's a new_design.lyx
6633 document for all new ideas. Added making a pdf of it for the
6640 document for all new ideas. Added making a pdf of it for the
6634 end-user distro.
6641 end-user distro.
6635
6642
6636 * IPython/Logger.py (Logger.switch_log): Created this to replace
6643 * IPython/Logger.py (Logger.switch_log): Created this to replace
6637 logon() and logoff(). It also fixes a nasty crash reported by
6644 logon() and logoff(). It also fixes a nasty crash reported by
6638 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6645 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6639
6646
6640 * IPython/iplib.py (complete): got auto-completion to work with
6647 * IPython/iplib.py (complete): got auto-completion to work with
6641 automagic (I had wanted this for a long time).
6648 automagic (I had wanted this for a long time).
6642
6649
6643 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6650 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6644 to @file, since file() is now a builtin and clashes with automagic
6651 to @file, since file() is now a builtin and clashes with automagic
6645 for @file.
6652 for @file.
6646
6653
6647 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6654 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6648 of this was previously in iplib, which had grown to more than 2000
6655 of this was previously in iplib, which had grown to more than 2000
6649 lines, way too long. No new functionality, but it makes managing
6656 lines, way too long. No new functionality, but it makes managing
6650 the code a bit easier.
6657 the code a bit easier.
6651
6658
6652 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6659 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6653 information to crash reports.
6660 information to crash reports.
6654
6661
6655 2002-02-12 Fernando Perez <fperez@colorado.edu>
6662 2002-02-12 Fernando Perez <fperez@colorado.edu>
6656
6663
6657 * Released 0.2.5.
6664 * Released 0.2.5.
6658
6665
6659 2002-02-11 Fernando Perez <fperez@colorado.edu>
6666 2002-02-11 Fernando Perez <fperez@colorado.edu>
6660
6667
6661 * Wrote a relatively complete Windows installer. It puts
6668 * Wrote a relatively complete Windows installer. It puts
6662 everything in place, creates Start Menu entries and fixes the
6669 everything in place, creates Start Menu entries and fixes the
6663 color issues. Nothing fancy, but it works.
6670 color issues. Nothing fancy, but it works.
6664
6671
6665 2002-02-10 Fernando Perez <fperez@colorado.edu>
6672 2002-02-10 Fernando Perez <fperez@colorado.edu>
6666
6673
6667 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6674 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6668 os.path.expanduser() call so that we can type @run ~/myfile.py and
6675 os.path.expanduser() call so that we can type @run ~/myfile.py and
6669 have thigs work as expected.
6676 have thigs work as expected.
6670
6677
6671 * IPython/genutils.py (page): fixed exception handling so things
6678 * IPython/genutils.py (page): fixed exception handling so things
6672 work both in Unix and Windows correctly. Quitting a pager triggers
6679 work both in Unix and Windows correctly. Quitting a pager triggers
6673 an IOError/broken pipe in Unix, and in windows not finding a pager
6680 an IOError/broken pipe in Unix, and in windows not finding a pager
6674 is also an IOError, so I had to actually look at the return value
6681 is also an IOError, so I had to actually look at the return value
6675 of the exception, not just the exception itself. Should be ok now.
6682 of the exception, not just the exception itself. Should be ok now.
6676
6683
6677 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6684 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6678 modified to allow case-insensitive color scheme changes.
6685 modified to allow case-insensitive color scheme changes.
6679
6686
6680 2002-02-09 Fernando Perez <fperez@colorado.edu>
6687 2002-02-09 Fernando Perez <fperez@colorado.edu>
6681
6688
6682 * IPython/genutils.py (native_line_ends): new function to leave
6689 * IPython/genutils.py (native_line_ends): new function to leave
6683 user config files with os-native line-endings.
6690 user config files with os-native line-endings.
6684
6691
6685 * README and manual updates.
6692 * README and manual updates.
6686
6693
6687 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6694 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6688 instead of StringType to catch Unicode strings.
6695 instead of StringType to catch Unicode strings.
6689
6696
6690 * IPython/genutils.py (filefind): fixed bug for paths with
6697 * IPython/genutils.py (filefind): fixed bug for paths with
6691 embedded spaces (very common in Windows).
6698 embedded spaces (very common in Windows).
6692
6699
6693 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6700 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6694 files under Windows, so that they get automatically associated
6701 files under Windows, so that they get automatically associated
6695 with a text editor. Windows makes it a pain to handle
6702 with a text editor. Windows makes it a pain to handle
6696 extension-less files.
6703 extension-less files.
6697
6704
6698 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6705 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6699 warning about readline only occur for Posix. In Windows there's no
6706 warning about readline only occur for Posix. In Windows there's no
6700 way to get readline, so why bother with the warning.
6707 way to get readline, so why bother with the warning.
6701
6708
6702 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6709 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6703 for __str__ instead of dir(self), since dir() changed in 2.2.
6710 for __str__ instead of dir(self), since dir() changed in 2.2.
6704
6711
6705 * Ported to Windows! Tested on XP, I suspect it should work fine
6712 * Ported to Windows! Tested on XP, I suspect it should work fine
6706 on NT/2000, but I don't think it will work on 98 et al. That
6713 on NT/2000, but I don't think it will work on 98 et al. That
6707 series of Windows is such a piece of junk anyway that I won't try
6714 series of Windows is such a piece of junk anyway that I won't try
6708 porting it there. The XP port was straightforward, showed a few
6715 porting it there. The XP port was straightforward, showed a few
6709 bugs here and there (fixed all), in particular some string
6716 bugs here and there (fixed all), in particular some string
6710 handling stuff which required considering Unicode strings (which
6717 handling stuff which required considering Unicode strings (which
6711 Windows uses). This is good, but hasn't been too tested :) No
6718 Windows uses). This is good, but hasn't been too tested :) No
6712 fancy installer yet, I'll put a note in the manual so people at
6719 fancy installer yet, I'll put a note in the manual so people at
6713 least make manually a shortcut.
6720 least make manually a shortcut.
6714
6721
6715 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6722 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6716 into a single one, "colors". This now controls both prompt and
6723 into a single one, "colors". This now controls both prompt and
6717 exception color schemes, and can be changed both at startup
6724 exception color schemes, and can be changed both at startup
6718 (either via command-line switches or via ipythonrc files) and at
6725 (either via command-line switches or via ipythonrc files) and at
6719 runtime, with @colors.
6726 runtime, with @colors.
6720 (Magic.magic_run): renamed @prun to @run and removed the old
6727 (Magic.magic_run): renamed @prun to @run and removed the old
6721 @run. The two were too similar to warrant keeping both.
6728 @run. The two were too similar to warrant keeping both.
6722
6729
6723 2002-02-03 Fernando Perez <fperez@colorado.edu>
6730 2002-02-03 Fernando Perez <fperez@colorado.edu>
6724
6731
6725 * IPython/iplib.py (install_first_time): Added comment on how to
6732 * IPython/iplib.py (install_first_time): Added comment on how to
6726 configure the color options for first-time users. Put a <return>
6733 configure the color options for first-time users. Put a <return>
6727 request at the end so that small-terminal users get a chance to
6734 request at the end so that small-terminal users get a chance to
6728 read the startup info.
6735 read the startup info.
6729
6736
6730 2002-01-23 Fernando Perez <fperez@colorado.edu>
6737 2002-01-23 Fernando Perez <fperez@colorado.edu>
6731
6738
6732 * IPython/iplib.py (CachedOutput.update): Changed output memory
6739 * IPython/iplib.py (CachedOutput.update): Changed output memory
6733 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6740 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6734 input history we still use _i. Did this b/c these variable are
6741 input history we still use _i. Did this b/c these variable are
6735 very commonly used in interactive work, so the less we need to
6742 very commonly used in interactive work, so the less we need to
6736 type the better off we are.
6743 type the better off we are.
6737 (Magic.magic_prun): updated @prun to better handle the namespaces
6744 (Magic.magic_prun): updated @prun to better handle the namespaces
6738 the file will run in, including a fix for __name__ not being set
6745 the file will run in, including a fix for __name__ not being set
6739 before.
6746 before.
6740
6747
6741 2002-01-20 Fernando Perez <fperez@colorado.edu>
6748 2002-01-20 Fernando Perez <fperez@colorado.edu>
6742
6749
6743 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6750 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6744 extra garbage for Python 2.2. Need to look more carefully into
6751 extra garbage for Python 2.2. Need to look more carefully into
6745 this later.
6752 this later.
6746
6753
6747 2002-01-19 Fernando Perez <fperez@colorado.edu>
6754 2002-01-19 Fernando Perez <fperez@colorado.edu>
6748
6755
6749 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6756 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6750 display SyntaxError exceptions properly formatted when they occur
6757 display SyntaxError exceptions properly formatted when they occur
6751 (they can be triggered by imported code).
6758 (they can be triggered by imported code).
6752
6759
6753 2002-01-18 Fernando Perez <fperez@colorado.edu>
6760 2002-01-18 Fernando Perez <fperez@colorado.edu>
6754
6761
6755 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6762 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6756 SyntaxError exceptions are reported nicely formatted, instead of
6763 SyntaxError exceptions are reported nicely formatted, instead of
6757 spitting out only offset information as before.
6764 spitting out only offset information as before.
6758 (Magic.magic_prun): Added the @prun function for executing
6765 (Magic.magic_prun): Added the @prun function for executing
6759 programs with command line args inside IPython.
6766 programs with command line args inside IPython.
6760
6767
6761 2002-01-16 Fernando Perez <fperez@colorado.edu>
6768 2002-01-16 Fernando Perez <fperez@colorado.edu>
6762
6769
6763 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6770 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6764 to *not* include the last item given in a range. This brings their
6771 to *not* include the last item given in a range. This brings their
6765 behavior in line with Python's slicing:
6772 behavior in line with Python's slicing:
6766 a[n1:n2] -> a[n1]...a[n2-1]
6773 a[n1:n2] -> a[n1]...a[n2-1]
6767 It may be a bit less convenient, but I prefer to stick to Python's
6774 It may be a bit less convenient, but I prefer to stick to Python's
6768 conventions *everywhere*, so users never have to wonder.
6775 conventions *everywhere*, so users never have to wonder.
6769 (Magic.magic_macro): Added @macro function to ease the creation of
6776 (Magic.magic_macro): Added @macro function to ease the creation of
6770 macros.
6777 macros.
6771
6778
6772 2002-01-05 Fernando Perez <fperez@colorado.edu>
6779 2002-01-05 Fernando Perez <fperez@colorado.edu>
6773
6780
6774 * Released 0.2.4.
6781 * Released 0.2.4.
6775
6782
6776 * IPython/iplib.py (Magic.magic_pdef):
6783 * IPython/iplib.py (Magic.magic_pdef):
6777 (InteractiveShell.safe_execfile): report magic lines and error
6784 (InteractiveShell.safe_execfile): report magic lines and error
6778 lines without line numbers so one can easily copy/paste them for
6785 lines without line numbers so one can easily copy/paste them for
6779 re-execution.
6786 re-execution.
6780
6787
6781 * Updated manual with recent changes.
6788 * Updated manual with recent changes.
6782
6789
6783 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6790 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6784 docstring printing when class? is called. Very handy for knowing
6791 docstring printing when class? is called. Very handy for knowing
6785 how to create class instances (as long as __init__ is well
6792 how to create class instances (as long as __init__ is well
6786 documented, of course :)
6793 documented, of course :)
6787 (Magic.magic_doc): print both class and constructor docstrings.
6794 (Magic.magic_doc): print both class and constructor docstrings.
6788 (Magic.magic_pdef): give constructor info if passed a class and
6795 (Magic.magic_pdef): give constructor info if passed a class and
6789 __call__ info for callable object instances.
6796 __call__ info for callable object instances.
6790
6797
6791 2002-01-04 Fernando Perez <fperez@colorado.edu>
6798 2002-01-04 Fernando Perez <fperez@colorado.edu>
6792
6799
6793 * Made deep_reload() off by default. It doesn't always work
6800 * Made deep_reload() off by default. It doesn't always work
6794 exactly as intended, so it's probably safer to have it off. It's
6801 exactly as intended, so it's probably safer to have it off. It's
6795 still available as dreload() anyway, so nothing is lost.
6802 still available as dreload() anyway, so nothing is lost.
6796
6803
6797 2002-01-02 Fernando Perez <fperez@colorado.edu>
6804 2002-01-02 Fernando Perez <fperez@colorado.edu>
6798
6805
6799 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6806 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6800 so I wanted an updated release).
6807 so I wanted an updated release).
6801
6808
6802 2001-12-27 Fernando Perez <fperez@colorado.edu>
6809 2001-12-27 Fernando Perez <fperez@colorado.edu>
6803
6810
6804 * IPython/iplib.py (InteractiveShell.interact): Added the original
6811 * IPython/iplib.py (InteractiveShell.interact): Added the original
6805 code from 'code.py' for this module in order to change the
6812 code from 'code.py' for this module in order to change the
6806 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6813 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6807 the history cache would break when the user hit Ctrl-C, and
6814 the history cache would break when the user hit Ctrl-C, and
6808 interact() offers no way to add any hooks to it.
6815 interact() offers no way to add any hooks to it.
6809
6816
6810 2001-12-23 Fernando Perez <fperez@colorado.edu>
6817 2001-12-23 Fernando Perez <fperez@colorado.edu>
6811
6818
6812 * setup.py: added check for 'MANIFEST' before trying to remove
6819 * setup.py: added check for 'MANIFEST' before trying to remove
6813 it. Thanks to Sean Reifschneider.
6820 it. Thanks to Sean Reifschneider.
6814
6821
6815 2001-12-22 Fernando Perez <fperez@colorado.edu>
6822 2001-12-22 Fernando Perez <fperez@colorado.edu>
6816
6823
6817 * Released 0.2.2.
6824 * Released 0.2.2.
6818
6825
6819 * Finished (reasonably) writing the manual. Later will add the
6826 * Finished (reasonably) writing the manual. Later will add the
6820 python-standard navigation stylesheets, but for the time being
6827 python-standard navigation stylesheets, but for the time being
6821 it's fairly complete. Distribution will include html and pdf
6828 it's fairly complete. Distribution will include html and pdf
6822 versions.
6829 versions.
6823
6830
6824 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6831 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6825 (MayaVi author).
6832 (MayaVi author).
6826
6833
6827 2001-12-21 Fernando Perez <fperez@colorado.edu>
6834 2001-12-21 Fernando Perez <fperez@colorado.edu>
6828
6835
6829 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6836 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6830 good public release, I think (with the manual and the distutils
6837 good public release, I think (with the manual and the distutils
6831 installer). The manual can use some work, but that can go
6838 installer). The manual can use some work, but that can go
6832 slowly. Otherwise I think it's quite nice for end users. Next
6839 slowly. Otherwise I think it's quite nice for end users. Next
6833 summer, rewrite the guts of it...
6840 summer, rewrite the guts of it...
6834
6841
6835 * Changed format of ipythonrc files to use whitespace as the
6842 * Changed format of ipythonrc files to use whitespace as the
6836 separator instead of an explicit '='. Cleaner.
6843 separator instead of an explicit '='. Cleaner.
6837
6844
6838 2001-12-20 Fernando Perez <fperez@colorado.edu>
6845 2001-12-20 Fernando Perez <fperez@colorado.edu>
6839
6846
6840 * Started a manual in LyX. For now it's just a quick merge of the
6847 * Started a manual in LyX. For now it's just a quick merge of the
6841 various internal docstrings and READMEs. Later it may grow into a
6848 various internal docstrings and READMEs. Later it may grow into a
6842 nice, full-blown manual.
6849 nice, full-blown manual.
6843
6850
6844 * Set up a distutils based installer. Installation should now be
6851 * Set up a distutils based installer. Installation should now be
6845 trivially simple for end-users.
6852 trivially simple for end-users.
6846
6853
6847 2001-12-11 Fernando Perez <fperez@colorado.edu>
6854 2001-12-11 Fernando Perez <fperez@colorado.edu>
6848
6855
6849 * Released 0.2.0. First public release, announced it at
6856 * Released 0.2.0. First public release, announced it at
6850 comp.lang.python. From now on, just bugfixes...
6857 comp.lang.python. From now on, just bugfixes...
6851
6858
6852 * Went through all the files, set copyright/license notices and
6859 * Went through all the files, set copyright/license notices and
6853 cleaned up things. Ready for release.
6860 cleaned up things. Ready for release.
6854
6861
6855 2001-12-10 Fernando Perez <fperez@colorado.edu>
6862 2001-12-10 Fernando Perez <fperez@colorado.edu>
6856
6863
6857 * Changed the first-time installer not to use tarfiles. It's more
6864 * Changed the first-time installer not to use tarfiles. It's more
6858 robust now and less unix-dependent. Also makes it easier for
6865 robust now and less unix-dependent. Also makes it easier for
6859 people to later upgrade versions.
6866 people to later upgrade versions.
6860
6867
6861 * Changed @exit to @abort to reflect the fact that it's pretty
6868 * Changed @exit to @abort to reflect the fact that it's pretty
6862 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6869 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6863 becomes significant only when IPyhton is embedded: in that case,
6870 becomes significant only when IPyhton is embedded: in that case,
6864 C-D closes IPython only, but @abort kills the enclosing program
6871 C-D closes IPython only, but @abort kills the enclosing program
6865 too (unless it had called IPython inside a try catching
6872 too (unless it had called IPython inside a try catching
6866 SystemExit).
6873 SystemExit).
6867
6874
6868 * Created Shell module which exposes the actuall IPython Shell
6875 * Created Shell module which exposes the actuall IPython Shell
6869 classes, currently the normal and the embeddable one. This at
6876 classes, currently the normal and the embeddable one. This at
6870 least offers a stable interface we won't need to change when
6877 least offers a stable interface we won't need to change when
6871 (later) the internals are rewritten. That rewrite will be confined
6878 (later) the internals are rewritten. That rewrite will be confined
6872 to iplib and ipmaker, but the Shell interface should remain as is.
6879 to iplib and ipmaker, but the Shell interface should remain as is.
6873
6880
6874 * Added embed module which offers an embeddable IPShell object,
6881 * Added embed module which offers an embeddable IPShell object,
6875 useful to fire up IPython *inside* a running program. Great for
6882 useful to fire up IPython *inside* a running program. Great for
6876 debugging or dynamical data analysis.
6883 debugging or dynamical data analysis.
6877
6884
6878 2001-12-08 Fernando Perez <fperez@colorado.edu>
6885 2001-12-08 Fernando Perez <fperez@colorado.edu>
6879
6886
6880 * Fixed small bug preventing seeing info from methods of defined
6887 * Fixed small bug preventing seeing info from methods of defined
6881 objects (incorrect namespace in _ofind()).
6888 objects (incorrect namespace in _ofind()).
6882
6889
6883 * Documentation cleanup. Moved the main usage docstrings to a
6890 * Documentation cleanup. Moved the main usage docstrings to a
6884 separate file, usage.py (cleaner to maintain, and hopefully in the
6891 separate file, usage.py (cleaner to maintain, and hopefully in the
6885 future some perlpod-like way of producing interactive, man and
6892 future some perlpod-like way of producing interactive, man and
6886 html docs out of it will be found).
6893 html docs out of it will be found).
6887
6894
6888 * Added @profile to see your profile at any time.
6895 * Added @profile to see your profile at any time.
6889
6896
6890 * Added @p as an alias for 'print'. It's especially convenient if
6897 * Added @p as an alias for 'print'. It's especially convenient if
6891 using automagic ('p x' prints x).
6898 using automagic ('p x' prints x).
6892
6899
6893 * Small cleanups and fixes after a pychecker run.
6900 * Small cleanups and fixes after a pychecker run.
6894
6901
6895 * Changed the @cd command to handle @cd - and @cd -<n> for
6902 * Changed the @cd command to handle @cd - and @cd -<n> for
6896 visiting any directory in _dh.
6903 visiting any directory in _dh.
6897
6904
6898 * Introduced _dh, a history of visited directories. @dhist prints
6905 * Introduced _dh, a history of visited directories. @dhist prints
6899 it out with numbers.
6906 it out with numbers.
6900
6907
6901 2001-12-07 Fernando Perez <fperez@colorado.edu>
6908 2001-12-07 Fernando Perez <fperez@colorado.edu>
6902
6909
6903 * Released 0.1.22
6910 * Released 0.1.22
6904
6911
6905 * Made initialization a bit more robust against invalid color
6912 * Made initialization a bit more robust against invalid color
6906 options in user input (exit, not traceback-crash).
6913 options in user input (exit, not traceback-crash).
6907
6914
6908 * Changed the bug crash reporter to write the report only in the
6915 * Changed the bug crash reporter to write the report only in the
6909 user's .ipython directory. That way IPython won't litter people's
6916 user's .ipython directory. That way IPython won't litter people's
6910 hard disks with crash files all over the place. Also print on
6917 hard disks with crash files all over the place. Also print on
6911 screen the necessary mail command.
6918 screen the necessary mail command.
6912
6919
6913 * With the new ultraTB, implemented LightBG color scheme for light
6920 * With the new ultraTB, implemented LightBG color scheme for light
6914 background terminals. A lot of people like white backgrounds, so I
6921 background terminals. A lot of people like white backgrounds, so I
6915 guess we should at least give them something readable.
6922 guess we should at least give them something readable.
6916
6923
6917 2001-12-06 Fernando Perez <fperez@colorado.edu>
6924 2001-12-06 Fernando Perez <fperez@colorado.edu>
6918
6925
6919 * Modified the structure of ultraTB. Now there's a proper class
6926 * Modified the structure of ultraTB. Now there's a proper class
6920 for tables of color schemes which allow adding schemes easily and
6927 for tables of color schemes which allow adding schemes easily and
6921 switching the active scheme without creating a new instance every
6928 switching the active scheme without creating a new instance every
6922 time (which was ridiculous). The syntax for creating new schemes
6929 time (which was ridiculous). The syntax for creating new schemes
6923 is also cleaner. I think ultraTB is finally done, with a clean
6930 is also cleaner. I think ultraTB is finally done, with a clean
6924 class structure. Names are also much cleaner (now there's proper
6931 class structure. Names are also much cleaner (now there's proper
6925 color tables, no need for every variable to also have 'color' in
6932 color tables, no need for every variable to also have 'color' in
6926 its name).
6933 its name).
6927
6934
6928 * Broke down genutils into separate files. Now genutils only
6935 * Broke down genutils into separate files. Now genutils only
6929 contains utility functions, and classes have been moved to their
6936 contains utility functions, and classes have been moved to their
6930 own files (they had enough independent functionality to warrant
6937 own files (they had enough independent functionality to warrant
6931 it): ConfigLoader, OutputTrap, Struct.
6938 it): ConfigLoader, OutputTrap, Struct.
6932
6939
6933 2001-12-05 Fernando Perez <fperez@colorado.edu>
6940 2001-12-05 Fernando Perez <fperez@colorado.edu>
6934
6941
6935 * IPython turns 21! Released version 0.1.21, as a candidate for
6942 * IPython turns 21! Released version 0.1.21, as a candidate for
6936 public consumption. If all goes well, release in a few days.
6943 public consumption. If all goes well, release in a few days.
6937
6944
6938 * Fixed path bug (files in Extensions/ directory wouldn't be found
6945 * Fixed path bug (files in Extensions/ directory wouldn't be found
6939 unless IPython/ was explicitly in sys.path).
6946 unless IPython/ was explicitly in sys.path).
6940
6947
6941 * Extended the FlexCompleter class as MagicCompleter to allow
6948 * Extended the FlexCompleter class as MagicCompleter to allow
6942 completion of @-starting lines.
6949 completion of @-starting lines.
6943
6950
6944 * Created __release__.py file as a central repository for release
6951 * Created __release__.py file as a central repository for release
6945 info that other files can read from.
6952 info that other files can read from.
6946
6953
6947 * Fixed small bug in logging: when logging was turned on in
6954 * Fixed small bug in logging: when logging was turned on in
6948 mid-session, old lines with special meanings (!@?) were being
6955 mid-session, old lines with special meanings (!@?) were being
6949 logged without the prepended comment, which is necessary since
6956 logged without the prepended comment, which is necessary since
6950 they are not truly valid python syntax. This should make session
6957 they are not truly valid python syntax. This should make session
6951 restores produce less errors.
6958 restores produce less errors.
6952
6959
6953 * The namespace cleanup forced me to make a FlexCompleter class
6960 * The namespace cleanup forced me to make a FlexCompleter class
6954 which is nothing but a ripoff of rlcompleter, but with selectable
6961 which is nothing but a ripoff of rlcompleter, but with selectable
6955 namespace (rlcompleter only works in __main__.__dict__). I'll try
6962 namespace (rlcompleter only works in __main__.__dict__). I'll try
6956 to submit a note to the authors to see if this change can be
6963 to submit a note to the authors to see if this change can be
6957 incorporated in future rlcompleter releases (Dec.6: done)
6964 incorporated in future rlcompleter releases (Dec.6: done)
6958
6965
6959 * More fixes to namespace handling. It was a mess! Now all
6966 * More fixes to namespace handling. It was a mess! Now all
6960 explicit references to __main__.__dict__ are gone (except when
6967 explicit references to __main__.__dict__ are gone (except when
6961 really needed) and everything is handled through the namespace
6968 really needed) and everything is handled through the namespace
6962 dicts in the IPython instance. We seem to be getting somewhere
6969 dicts in the IPython instance. We seem to be getting somewhere
6963 with this, finally...
6970 with this, finally...
6964
6971
6965 * Small documentation updates.
6972 * Small documentation updates.
6966
6973
6967 * Created the Extensions directory under IPython (with an
6974 * Created the Extensions directory under IPython (with an
6968 __init__.py). Put the PhysicalQ stuff there. This directory should
6975 __init__.py). Put the PhysicalQ stuff there. This directory should
6969 be used for all special-purpose extensions.
6976 be used for all special-purpose extensions.
6970
6977
6971 * File renaming:
6978 * File renaming:
6972 ipythonlib --> ipmaker
6979 ipythonlib --> ipmaker
6973 ipplib --> iplib
6980 ipplib --> iplib
6974 This makes a bit more sense in terms of what these files actually do.
6981 This makes a bit more sense in terms of what these files actually do.
6975
6982
6976 * Moved all the classes and functions in ipythonlib to ipplib, so
6983 * Moved all the classes and functions in ipythonlib to ipplib, so
6977 now ipythonlib only has make_IPython(). This will ease up its
6984 now ipythonlib only has make_IPython(). This will ease up its
6978 splitting in smaller functional chunks later.
6985 splitting in smaller functional chunks later.
6979
6986
6980 * Cleaned up (done, I think) output of @whos. Better column
6987 * Cleaned up (done, I think) output of @whos. Better column
6981 formatting, and now shows str(var) for as much as it can, which is
6988 formatting, and now shows str(var) for as much as it can, which is
6982 typically what one gets with a 'print var'.
6989 typically what one gets with a 'print var'.
6983
6990
6984 2001-12-04 Fernando Perez <fperez@colorado.edu>
6991 2001-12-04 Fernando Perez <fperez@colorado.edu>
6985
6992
6986 * Fixed namespace problems. Now builtin/IPyhton/user names get
6993 * Fixed namespace problems. Now builtin/IPyhton/user names get
6987 properly reported in their namespace. Internal namespace handling
6994 properly reported in their namespace. Internal namespace handling
6988 is finally getting decent (not perfect yet, but much better than
6995 is finally getting decent (not perfect yet, but much better than
6989 the ad-hoc mess we had).
6996 the ad-hoc mess we had).
6990
6997
6991 * Removed -exit option. If people just want to run a python
6998 * Removed -exit option. If people just want to run a python
6992 script, that's what the normal interpreter is for. Less
6999 script, that's what the normal interpreter is for. Less
6993 unnecessary options, less chances for bugs.
7000 unnecessary options, less chances for bugs.
6994
7001
6995 * Added a crash handler which generates a complete post-mortem if
7002 * Added a crash handler which generates a complete post-mortem if
6996 IPython crashes. This will help a lot in tracking bugs down the
7003 IPython crashes. This will help a lot in tracking bugs down the
6997 road.
7004 road.
6998
7005
6999 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7006 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7000 which were boud to functions being reassigned would bypass the
7007 which were boud to functions being reassigned would bypass the
7001 logger, breaking the sync of _il with the prompt counter. This
7008 logger, breaking the sync of _il with the prompt counter. This
7002 would then crash IPython later when a new line was logged.
7009 would then crash IPython later when a new line was logged.
7003
7010
7004 2001-12-02 Fernando Perez <fperez@colorado.edu>
7011 2001-12-02 Fernando Perez <fperez@colorado.edu>
7005
7012
7006 * Made IPython a package. This means people don't have to clutter
7013 * Made IPython a package. This means people don't have to clutter
7007 their sys.path with yet another directory. Changed the INSTALL
7014 their sys.path with yet another directory. Changed the INSTALL
7008 file accordingly.
7015 file accordingly.
7009
7016
7010 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7017 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7011 sorts its output (so @who shows it sorted) and @whos formats the
7018 sorts its output (so @who shows it sorted) and @whos formats the
7012 table according to the width of the first column. Nicer, easier to
7019 table according to the width of the first column. Nicer, easier to
7013 read. Todo: write a generic table_format() which takes a list of
7020 read. Todo: write a generic table_format() which takes a list of
7014 lists and prints it nicely formatted, with optional row/column
7021 lists and prints it nicely formatted, with optional row/column
7015 separators and proper padding and justification.
7022 separators and proper padding and justification.
7016
7023
7017 * Released 0.1.20
7024 * Released 0.1.20
7018
7025
7019 * Fixed bug in @log which would reverse the inputcache list (a
7026 * Fixed bug in @log which would reverse the inputcache list (a
7020 copy operation was missing).
7027 copy operation was missing).
7021
7028
7022 * Code cleanup. @config was changed to use page(). Better, since
7029 * Code cleanup. @config was changed to use page(). Better, since
7023 its output is always quite long.
7030 its output is always quite long.
7024
7031
7025 * Itpl is back as a dependency. I was having too many problems
7032 * Itpl is back as a dependency. I was having too many problems
7026 getting the parametric aliases to work reliably, and it's just
7033 getting the parametric aliases to work reliably, and it's just
7027 easier to code weird string operations with it than playing %()s
7034 easier to code weird string operations with it than playing %()s
7028 games. It's only ~6k, so I don't think it's too big a deal.
7035 games. It's only ~6k, so I don't think it's too big a deal.
7029
7036
7030 * Found (and fixed) a very nasty bug with history. !lines weren't
7037 * Found (and fixed) a very nasty bug with history. !lines weren't
7031 getting cached, and the out of sync caches would crash
7038 getting cached, and the out of sync caches would crash
7032 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7039 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7033 division of labor a bit better. Bug fixed, cleaner structure.
7040 division of labor a bit better. Bug fixed, cleaner structure.
7034
7041
7035 2001-12-01 Fernando Perez <fperez@colorado.edu>
7042 2001-12-01 Fernando Perez <fperez@colorado.edu>
7036
7043
7037 * Released 0.1.19
7044 * Released 0.1.19
7038
7045
7039 * Added option -n to @hist to prevent line number printing. Much
7046 * Added option -n to @hist to prevent line number printing. Much
7040 easier to copy/paste code this way.
7047 easier to copy/paste code this way.
7041
7048
7042 * Created global _il to hold the input list. Allows easy
7049 * Created global _il to hold the input list. Allows easy
7043 re-execution of blocks of code by slicing it (inspired by Janko's
7050 re-execution of blocks of code by slicing it (inspired by Janko's
7044 comment on 'macros').
7051 comment on 'macros').
7045
7052
7046 * Small fixes and doc updates.
7053 * Small fixes and doc updates.
7047
7054
7048 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7055 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7049 much too fragile with automagic. Handles properly multi-line
7056 much too fragile with automagic. Handles properly multi-line
7050 statements and takes parameters.
7057 statements and takes parameters.
7051
7058
7052 2001-11-30 Fernando Perez <fperez@colorado.edu>
7059 2001-11-30 Fernando Perez <fperez@colorado.edu>
7053
7060
7054 * Version 0.1.18 released.
7061 * Version 0.1.18 released.
7055
7062
7056 * Fixed nasty namespace bug in initial module imports.
7063 * Fixed nasty namespace bug in initial module imports.
7057
7064
7058 * Added copyright/license notes to all code files (except
7065 * Added copyright/license notes to all code files (except
7059 DPyGetOpt). For the time being, LGPL. That could change.
7066 DPyGetOpt). For the time being, LGPL. That could change.
7060
7067
7061 * Rewrote a much nicer README, updated INSTALL, cleaned up
7068 * Rewrote a much nicer README, updated INSTALL, cleaned up
7062 ipythonrc-* samples.
7069 ipythonrc-* samples.
7063
7070
7064 * Overall code/documentation cleanup. Basically ready for
7071 * Overall code/documentation cleanup. Basically ready for
7065 release. Only remaining thing: licence decision (LGPL?).
7072 release. Only remaining thing: licence decision (LGPL?).
7066
7073
7067 * Converted load_config to a class, ConfigLoader. Now recursion
7074 * Converted load_config to a class, ConfigLoader. Now recursion
7068 control is better organized. Doesn't include the same file twice.
7075 control is better organized. Doesn't include the same file twice.
7069
7076
7070 2001-11-29 Fernando Perez <fperez@colorado.edu>
7077 2001-11-29 Fernando Perez <fperez@colorado.edu>
7071
7078
7072 * Got input history working. Changed output history variables from
7079 * Got input history working. Changed output history variables from
7073 _p to _o so that _i is for input and _o for output. Just cleaner
7080 _p to _o so that _i is for input and _o for output. Just cleaner
7074 convention.
7081 convention.
7075
7082
7076 * Implemented parametric aliases. This pretty much allows the
7083 * Implemented parametric aliases. This pretty much allows the
7077 alias system to offer full-blown shell convenience, I think.
7084 alias system to offer full-blown shell convenience, I think.
7078
7085
7079 * Version 0.1.17 released, 0.1.18 opened.
7086 * Version 0.1.17 released, 0.1.18 opened.
7080
7087
7081 * dot_ipython/ipythonrc (alias): added documentation.
7088 * dot_ipython/ipythonrc (alias): added documentation.
7082 (xcolor): Fixed small bug (xcolors -> xcolor)
7089 (xcolor): Fixed small bug (xcolors -> xcolor)
7083
7090
7084 * Changed the alias system. Now alias is a magic command to define
7091 * Changed the alias system. Now alias is a magic command to define
7085 aliases just like the shell. Rationale: the builtin magics should
7092 aliases just like the shell. Rationale: the builtin magics should
7086 be there for things deeply connected to IPython's
7093 be there for things deeply connected to IPython's
7087 architecture. And this is a much lighter system for what I think
7094 architecture. And this is a much lighter system for what I think
7088 is the really important feature: allowing users to define quickly
7095 is the really important feature: allowing users to define quickly
7089 magics that will do shell things for them, so they can customize
7096 magics that will do shell things for them, so they can customize
7090 IPython easily to match their work habits. If someone is really
7097 IPython easily to match their work habits. If someone is really
7091 desperate to have another name for a builtin alias, they can
7098 desperate to have another name for a builtin alias, they can
7092 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7099 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7093 works.
7100 works.
7094
7101
7095 2001-11-28 Fernando Perez <fperez@colorado.edu>
7102 2001-11-28 Fernando Perez <fperez@colorado.edu>
7096
7103
7097 * Changed @file so that it opens the source file at the proper
7104 * Changed @file so that it opens the source file at the proper
7098 line. Since it uses less, if your EDITOR environment is
7105 line. Since it uses less, if your EDITOR environment is
7099 configured, typing v will immediately open your editor of choice
7106 configured, typing v will immediately open your editor of choice
7100 right at the line where the object is defined. Not as quick as
7107 right at the line where the object is defined. Not as quick as
7101 having a direct @edit command, but for all intents and purposes it
7108 having a direct @edit command, but for all intents and purposes it
7102 works. And I don't have to worry about writing @edit to deal with
7109 works. And I don't have to worry about writing @edit to deal with
7103 all the editors, less does that.
7110 all the editors, less does that.
7104
7111
7105 * Version 0.1.16 released, 0.1.17 opened.
7112 * Version 0.1.16 released, 0.1.17 opened.
7106
7113
7107 * Fixed some nasty bugs in the page/page_dumb combo that could
7114 * Fixed some nasty bugs in the page/page_dumb combo that could
7108 crash IPython.
7115 crash IPython.
7109
7116
7110 2001-11-27 Fernando Perez <fperez@colorado.edu>
7117 2001-11-27 Fernando Perez <fperez@colorado.edu>
7111
7118
7112 * Version 0.1.15 released, 0.1.16 opened.
7119 * Version 0.1.15 released, 0.1.16 opened.
7113
7120
7114 * Finally got ? and ?? to work for undefined things: now it's
7121 * Finally got ? and ?? to work for undefined things: now it's
7115 possible to type {}.get? and get information about the get method
7122 possible to type {}.get? and get information about the get method
7116 of dicts, or os.path? even if only os is defined (so technically
7123 of dicts, or os.path? even if only os is defined (so technically
7117 os.path isn't). Works at any level. For example, after import os,
7124 os.path isn't). Works at any level. For example, after import os,
7118 os?, os.path?, os.path.abspath? all work. This is great, took some
7125 os?, os.path?, os.path.abspath? all work. This is great, took some
7119 work in _ofind.
7126 work in _ofind.
7120
7127
7121 * Fixed more bugs with logging. The sanest way to do it was to add
7128 * Fixed more bugs with logging. The sanest way to do it was to add
7122 to @log a 'mode' parameter. Killed two in one shot (this mode
7129 to @log a 'mode' parameter. Killed two in one shot (this mode
7123 option was a request of Janko's). I think it's finally clean
7130 option was a request of Janko's). I think it's finally clean
7124 (famous last words).
7131 (famous last words).
7125
7132
7126 * Added a page_dumb() pager which does a decent job of paging on
7133 * Added a page_dumb() pager which does a decent job of paging on
7127 screen, if better things (like less) aren't available. One less
7134 screen, if better things (like less) aren't available. One less
7128 unix dependency (someday maybe somebody will port this to
7135 unix dependency (someday maybe somebody will port this to
7129 windows).
7136 windows).
7130
7137
7131 * Fixed problem in magic_log: would lock of logging out if log
7138 * Fixed problem in magic_log: would lock of logging out if log
7132 creation failed (because it would still think it had succeeded).
7139 creation failed (because it would still think it had succeeded).
7133
7140
7134 * Improved the page() function using curses to auto-detect screen
7141 * Improved the page() function using curses to auto-detect screen
7135 size. Now it can make a much better decision on whether to print
7142 size. Now it can make a much better decision on whether to print
7136 or page a string. Option screen_length was modified: a value 0
7143 or page a string. Option screen_length was modified: a value 0
7137 means auto-detect, and that's the default now.
7144 means auto-detect, and that's the default now.
7138
7145
7139 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7146 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7140 go out. I'll test it for a few days, then talk to Janko about
7147 go out. I'll test it for a few days, then talk to Janko about
7141 licences and announce it.
7148 licences and announce it.
7142
7149
7143 * Fixed the length of the auto-generated ---> prompt which appears
7150 * Fixed the length of the auto-generated ---> prompt which appears
7144 for auto-parens and auto-quotes. Getting this right isn't trivial,
7151 for auto-parens and auto-quotes. Getting this right isn't trivial,
7145 with all the color escapes, different prompt types and optional
7152 with all the color escapes, different prompt types and optional
7146 separators. But it seems to be working in all the combinations.
7153 separators. But it seems to be working in all the combinations.
7147
7154
7148 2001-11-26 Fernando Perez <fperez@colorado.edu>
7155 2001-11-26 Fernando Perez <fperez@colorado.edu>
7149
7156
7150 * Wrote a regexp filter to get option types from the option names
7157 * Wrote a regexp filter to get option types from the option names
7151 string. This eliminates the need to manually keep two duplicate
7158 string. This eliminates the need to manually keep two duplicate
7152 lists.
7159 lists.
7153
7160
7154 * Removed the unneeded check_option_names. Now options are handled
7161 * Removed the unneeded check_option_names. Now options are handled
7155 in a much saner manner and it's easy to visually check that things
7162 in a much saner manner and it's easy to visually check that things
7156 are ok.
7163 are ok.
7157
7164
7158 * Updated version numbers on all files I modified to carry a
7165 * Updated version numbers on all files I modified to carry a
7159 notice so Janko and Nathan have clear version markers.
7166 notice so Janko and Nathan have clear version markers.
7160
7167
7161 * Updated docstring for ultraTB with my changes. I should send
7168 * Updated docstring for ultraTB with my changes. I should send
7162 this to Nathan.
7169 this to Nathan.
7163
7170
7164 * Lots of small fixes. Ran everything through pychecker again.
7171 * Lots of small fixes. Ran everything through pychecker again.
7165
7172
7166 * Made loading of deep_reload an cmd line option. If it's not too
7173 * Made loading of deep_reload an cmd line option. If it's not too
7167 kosher, now people can just disable it. With -nodeep_reload it's
7174 kosher, now people can just disable it. With -nodeep_reload it's
7168 still available as dreload(), it just won't overwrite reload().
7175 still available as dreload(), it just won't overwrite reload().
7169
7176
7170 * Moved many options to the no| form (-opt and -noopt
7177 * Moved many options to the no| form (-opt and -noopt
7171 accepted). Cleaner.
7178 accepted). Cleaner.
7172
7179
7173 * Changed magic_log so that if called with no parameters, it uses
7180 * Changed magic_log so that if called with no parameters, it uses
7174 'rotate' mode. That way auto-generated logs aren't automatically
7181 'rotate' mode. That way auto-generated logs aren't automatically
7175 over-written. For normal logs, now a backup is made if it exists
7182 over-written. For normal logs, now a backup is made if it exists
7176 (only 1 level of backups). A new 'backup' mode was added to the
7183 (only 1 level of backups). A new 'backup' mode was added to the
7177 Logger class to support this. This was a request by Janko.
7184 Logger class to support this. This was a request by Janko.
7178
7185
7179 * Added @logoff/@logon to stop/restart an active log.
7186 * Added @logoff/@logon to stop/restart an active log.
7180
7187
7181 * Fixed a lot of bugs in log saving/replay. It was pretty
7188 * Fixed a lot of bugs in log saving/replay. It was pretty
7182 broken. Now special lines (!@,/) appear properly in the command
7189 broken. Now special lines (!@,/) appear properly in the command
7183 history after a log replay.
7190 history after a log replay.
7184
7191
7185 * Tried and failed to implement full session saving via pickle. My
7192 * Tried and failed to implement full session saving via pickle. My
7186 idea was to pickle __main__.__dict__, but modules can't be
7193 idea was to pickle __main__.__dict__, but modules can't be
7187 pickled. This would be a better alternative to replaying logs, but
7194 pickled. This would be a better alternative to replaying logs, but
7188 seems quite tricky to get to work. Changed -session to be called
7195 seems quite tricky to get to work. Changed -session to be called
7189 -logplay, which more accurately reflects what it does. And if we
7196 -logplay, which more accurately reflects what it does. And if we
7190 ever get real session saving working, -session is now available.
7197 ever get real session saving working, -session is now available.
7191
7198
7192 * Implemented color schemes for prompts also. As for tracebacks,
7199 * Implemented color schemes for prompts also. As for tracebacks,
7193 currently only NoColor and Linux are supported. But now the
7200 currently only NoColor and Linux are supported. But now the
7194 infrastructure is in place, based on a generic ColorScheme
7201 infrastructure is in place, based on a generic ColorScheme
7195 class. So writing and activating new schemes both for the prompts
7202 class. So writing and activating new schemes both for the prompts
7196 and the tracebacks should be straightforward.
7203 and the tracebacks should be straightforward.
7197
7204
7198 * Version 0.1.13 released, 0.1.14 opened.
7205 * Version 0.1.13 released, 0.1.14 opened.
7199
7206
7200 * Changed handling of options for output cache. Now counter is
7207 * Changed handling of options for output cache. Now counter is
7201 hardwired starting at 1 and one specifies the maximum number of
7208 hardwired starting at 1 and one specifies the maximum number of
7202 entries *in the outcache* (not the max prompt counter). This is
7209 entries *in the outcache* (not the max prompt counter). This is
7203 much better, since many statements won't increase the cache
7210 much better, since many statements won't increase the cache
7204 count. It also eliminated some confusing options, now there's only
7211 count. It also eliminated some confusing options, now there's only
7205 one: cache_size.
7212 one: cache_size.
7206
7213
7207 * Added 'alias' magic function and magic_alias option in the
7214 * Added 'alias' magic function and magic_alias option in the
7208 ipythonrc file. Now the user can easily define whatever names he
7215 ipythonrc file. Now the user can easily define whatever names he
7209 wants for the magic functions without having to play weird
7216 wants for the magic functions without having to play weird
7210 namespace games. This gives IPython a real shell-like feel.
7217 namespace games. This gives IPython a real shell-like feel.
7211
7218
7212 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7219 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7213 @ or not).
7220 @ or not).
7214
7221
7215 This was one of the last remaining 'visible' bugs (that I know
7222 This was one of the last remaining 'visible' bugs (that I know
7216 of). I think if I can clean up the session loading so it works
7223 of). I think if I can clean up the session loading so it works
7217 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7224 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7218 about licensing).
7225 about licensing).
7219
7226
7220 2001-11-25 Fernando Perez <fperez@colorado.edu>
7227 2001-11-25 Fernando Perez <fperez@colorado.edu>
7221
7228
7222 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7229 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7223 there's a cleaner distinction between what ? and ?? show.
7230 there's a cleaner distinction between what ? and ?? show.
7224
7231
7225 * Added screen_length option. Now the user can define his own
7232 * Added screen_length option. Now the user can define his own
7226 screen size for page() operations.
7233 screen size for page() operations.
7227
7234
7228 * Implemented magic shell-like functions with automatic code
7235 * Implemented magic shell-like functions with automatic code
7229 generation. Now adding another function is just a matter of adding
7236 generation. Now adding another function is just a matter of adding
7230 an entry to a dict, and the function is dynamically generated at
7237 an entry to a dict, and the function is dynamically generated at
7231 run-time. Python has some really cool features!
7238 run-time. Python has some really cool features!
7232
7239
7233 * Renamed many options to cleanup conventions a little. Now all
7240 * Renamed many options to cleanup conventions a little. Now all
7234 are lowercase, and only underscores where needed. Also in the code
7241 are lowercase, and only underscores where needed. Also in the code
7235 option name tables are clearer.
7242 option name tables are clearer.
7236
7243
7237 * Changed prompts a little. Now input is 'In [n]:' instead of
7244 * Changed prompts a little. Now input is 'In [n]:' instead of
7238 'In[n]:='. This allows it the numbers to be aligned with the
7245 'In[n]:='. This allows it the numbers to be aligned with the
7239 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7246 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7240 Python (it was a Mathematica thing). The '...' continuation prompt
7247 Python (it was a Mathematica thing). The '...' continuation prompt
7241 was also changed a little to align better.
7248 was also changed a little to align better.
7242
7249
7243 * Fixed bug when flushing output cache. Not all _p<n> variables
7250 * Fixed bug when flushing output cache. Not all _p<n> variables
7244 exist, so their deletion needs to be wrapped in a try:
7251 exist, so their deletion needs to be wrapped in a try:
7245
7252
7246 * Figured out how to properly use inspect.formatargspec() (it
7253 * Figured out how to properly use inspect.formatargspec() (it
7247 requires the args preceded by *). So I removed all the code from
7254 requires the args preceded by *). So I removed all the code from
7248 _get_pdef in Magic, which was just replicating that.
7255 _get_pdef in Magic, which was just replicating that.
7249
7256
7250 * Added test to prefilter to allow redefining magic function names
7257 * Added test to prefilter to allow redefining magic function names
7251 as variables. This is ok, since the @ form is always available,
7258 as variables. This is ok, since the @ form is always available,
7252 but whe should allow the user to define a variable called 'ls' if
7259 but whe should allow the user to define a variable called 'ls' if
7253 he needs it.
7260 he needs it.
7254
7261
7255 * Moved the ToDo information from README into a separate ToDo.
7262 * Moved the ToDo information from README into a separate ToDo.
7256
7263
7257 * General code cleanup and small bugfixes. I think it's close to a
7264 * General code cleanup and small bugfixes. I think it's close to a
7258 state where it can be released, obviously with a big 'beta'
7265 state where it can be released, obviously with a big 'beta'
7259 warning on it.
7266 warning on it.
7260
7267
7261 * Got the magic function split to work. Now all magics are defined
7268 * Got the magic function split to work. Now all magics are defined
7262 in a separate class. It just organizes things a bit, and now
7269 in a separate class. It just organizes things a bit, and now
7263 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7270 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7264 was too long).
7271 was too long).
7265
7272
7266 * Changed @clear to @reset to avoid potential confusions with
7273 * Changed @clear to @reset to avoid potential confusions with
7267 the shell command clear. Also renamed @cl to @clear, which does
7274 the shell command clear. Also renamed @cl to @clear, which does
7268 exactly what people expect it to from their shell experience.
7275 exactly what people expect it to from their shell experience.
7269
7276
7270 Added a check to the @reset command (since it's so
7277 Added a check to the @reset command (since it's so
7271 destructive, it's probably a good idea to ask for confirmation).
7278 destructive, it's probably a good idea to ask for confirmation).
7272 But now reset only works for full namespace resetting. Since the
7279 But now reset only works for full namespace resetting. Since the
7273 del keyword is already there for deleting a few specific
7280 del keyword is already there for deleting a few specific
7274 variables, I don't see the point of having a redundant magic
7281 variables, I don't see the point of having a redundant magic
7275 function for the same task.
7282 function for the same task.
7276
7283
7277 2001-11-24 Fernando Perez <fperez@colorado.edu>
7284 2001-11-24 Fernando Perez <fperez@colorado.edu>
7278
7285
7279 * Updated the builtin docs (esp. the ? ones).
7286 * Updated the builtin docs (esp. the ? ones).
7280
7287
7281 * Ran all the code through pychecker. Not terribly impressed with
7288 * Ran all the code through pychecker. Not terribly impressed with
7282 it: lots of spurious warnings and didn't really find anything of
7289 it: lots of spurious warnings and didn't really find anything of
7283 substance (just a few modules being imported and not used).
7290 substance (just a few modules being imported and not used).
7284
7291
7285 * Implemented the new ultraTB functionality into IPython. New
7292 * Implemented the new ultraTB functionality into IPython. New
7286 option: xcolors. This chooses color scheme. xmode now only selects
7293 option: xcolors. This chooses color scheme. xmode now only selects
7287 between Plain and Verbose. Better orthogonality.
7294 between Plain and Verbose. Better orthogonality.
7288
7295
7289 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7296 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7290 mode and color scheme for the exception handlers. Now it's
7297 mode and color scheme for the exception handlers. Now it's
7291 possible to have the verbose traceback with no coloring.
7298 possible to have the verbose traceback with no coloring.
7292
7299
7293 2001-11-23 Fernando Perez <fperez@colorado.edu>
7300 2001-11-23 Fernando Perez <fperez@colorado.edu>
7294
7301
7295 * Version 0.1.12 released, 0.1.13 opened.
7302 * Version 0.1.12 released, 0.1.13 opened.
7296
7303
7297 * Removed option to set auto-quote and auto-paren escapes by
7304 * Removed option to set auto-quote and auto-paren escapes by
7298 user. The chances of breaking valid syntax are just too high. If
7305 user. The chances of breaking valid syntax are just too high. If
7299 someone *really* wants, they can always dig into the code.
7306 someone *really* wants, they can always dig into the code.
7300
7307
7301 * Made prompt separators configurable.
7308 * Made prompt separators configurable.
7302
7309
7303 2001-11-22 Fernando Perez <fperez@colorado.edu>
7310 2001-11-22 Fernando Perez <fperez@colorado.edu>
7304
7311
7305 * Small bugfixes in many places.
7312 * Small bugfixes in many places.
7306
7313
7307 * Removed the MyCompleter class from ipplib. It seemed redundant
7314 * Removed the MyCompleter class from ipplib. It seemed redundant
7308 with the C-p,C-n history search functionality. Less code to
7315 with the C-p,C-n history search functionality. Less code to
7309 maintain.
7316 maintain.
7310
7317
7311 * Moved all the original ipython.py code into ipythonlib.py. Right
7318 * Moved all the original ipython.py code into ipythonlib.py. Right
7312 now it's just one big dump into a function called make_IPython, so
7319 now it's just one big dump into a function called make_IPython, so
7313 no real modularity has been gained. But at least it makes the
7320 no real modularity has been gained. But at least it makes the
7314 wrapper script tiny, and since ipythonlib is a module, it gets
7321 wrapper script tiny, and since ipythonlib is a module, it gets
7315 compiled and startup is much faster.
7322 compiled and startup is much faster.
7316
7323
7317 This is a reasobably 'deep' change, so we should test it for a
7324 This is a reasobably 'deep' change, so we should test it for a
7318 while without messing too much more with the code.
7325 while without messing too much more with the code.
7319
7326
7320 2001-11-21 Fernando Perez <fperez@colorado.edu>
7327 2001-11-21 Fernando Perez <fperez@colorado.edu>
7321
7328
7322 * Version 0.1.11 released, 0.1.12 opened for further work.
7329 * Version 0.1.11 released, 0.1.12 opened for further work.
7323
7330
7324 * Removed dependency on Itpl. It was only needed in one place. It
7331 * Removed dependency on Itpl. It was only needed in one place. It
7325 would be nice if this became part of python, though. It makes life
7332 would be nice if this became part of python, though. It makes life
7326 *a lot* easier in some cases.
7333 *a lot* easier in some cases.
7327
7334
7328 * Simplified the prefilter code a bit. Now all handlers are
7335 * Simplified the prefilter code a bit. Now all handlers are
7329 expected to explicitly return a value (at least a blank string).
7336 expected to explicitly return a value (at least a blank string).
7330
7337
7331 * Heavy edits in ipplib. Removed the help system altogether. Now
7338 * Heavy edits in ipplib. Removed the help system altogether. Now
7332 obj?/?? is used for inspecting objects, a magic @doc prints
7339 obj?/?? is used for inspecting objects, a magic @doc prints
7333 docstrings, and full-blown Python help is accessed via the 'help'
7340 docstrings, and full-blown Python help is accessed via the 'help'
7334 keyword. This cleans up a lot of code (less to maintain) and does
7341 keyword. This cleans up a lot of code (less to maintain) and does
7335 the job. Since 'help' is now a standard Python component, might as
7342 the job. Since 'help' is now a standard Python component, might as
7336 well use it and remove duplicate functionality.
7343 well use it and remove duplicate functionality.
7337
7344
7338 Also removed the option to use ipplib as a standalone program. By
7345 Also removed the option to use ipplib as a standalone program. By
7339 now it's too dependent on other parts of IPython to function alone.
7346 now it's too dependent on other parts of IPython to function alone.
7340
7347
7341 * Fixed bug in genutils.pager. It would crash if the pager was
7348 * Fixed bug in genutils.pager. It would crash if the pager was
7342 exited immediately after opening (broken pipe).
7349 exited immediately after opening (broken pipe).
7343
7350
7344 * Trimmed down the VerboseTB reporting a little. The header is
7351 * Trimmed down the VerboseTB reporting a little. The header is
7345 much shorter now and the repeated exception arguments at the end
7352 much shorter now and the repeated exception arguments at the end
7346 have been removed. For interactive use the old header seemed a bit
7353 have been removed. For interactive use the old header seemed a bit
7347 excessive.
7354 excessive.
7348
7355
7349 * Fixed small bug in output of @whos for variables with multi-word
7356 * Fixed small bug in output of @whos for variables with multi-word
7350 types (only first word was displayed).
7357 types (only first word was displayed).
7351
7358
7352 2001-11-17 Fernando Perez <fperez@colorado.edu>
7359 2001-11-17 Fernando Perez <fperez@colorado.edu>
7353
7360
7354 * Version 0.1.10 released, 0.1.11 opened for further work.
7361 * Version 0.1.10 released, 0.1.11 opened for further work.
7355
7362
7356 * Modified dirs and friends. dirs now *returns* the stack (not
7363 * Modified dirs and friends. dirs now *returns* the stack (not
7357 prints), so one can manipulate it as a variable. Convenient to
7364 prints), so one can manipulate it as a variable. Convenient to
7358 travel along many directories.
7365 travel along many directories.
7359
7366
7360 * Fixed bug in magic_pdef: would only work with functions with
7367 * Fixed bug in magic_pdef: would only work with functions with
7361 arguments with default values.
7368 arguments with default values.
7362
7369
7363 2001-11-14 Fernando Perez <fperez@colorado.edu>
7370 2001-11-14 Fernando Perez <fperez@colorado.edu>
7364
7371
7365 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7372 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7366 example with IPython. Various other minor fixes and cleanups.
7373 example with IPython. Various other minor fixes and cleanups.
7367
7374
7368 * Version 0.1.9 released, 0.1.10 opened for further work.
7375 * Version 0.1.9 released, 0.1.10 opened for further work.
7369
7376
7370 * Added sys.path to the list of directories searched in the
7377 * Added sys.path to the list of directories searched in the
7371 execfile= option. It used to be the current directory and the
7378 execfile= option. It used to be the current directory and the
7372 user's IPYTHONDIR only.
7379 user's IPYTHONDIR only.
7373
7380
7374 2001-11-13 Fernando Perez <fperez@colorado.edu>
7381 2001-11-13 Fernando Perez <fperez@colorado.edu>
7375
7382
7376 * Reinstated the raw_input/prefilter separation that Janko had
7383 * Reinstated the raw_input/prefilter separation that Janko had
7377 initially. This gives a more convenient setup for extending the
7384 initially. This gives a more convenient setup for extending the
7378 pre-processor from the outside: raw_input always gets a string,
7385 pre-processor from the outside: raw_input always gets a string,
7379 and prefilter has to process it. We can then redefine prefilter
7386 and prefilter has to process it. We can then redefine prefilter
7380 from the outside and implement extensions for special
7387 from the outside and implement extensions for special
7381 purposes.
7388 purposes.
7382
7389
7383 Today I got one for inputting PhysicalQuantity objects
7390 Today I got one for inputting PhysicalQuantity objects
7384 (from Scientific) without needing any function calls at
7391 (from Scientific) without needing any function calls at
7385 all. Extremely convenient, and it's all done as a user-level
7392 all. Extremely convenient, and it's all done as a user-level
7386 extension (no IPython code was touched). Now instead of:
7393 extension (no IPython code was touched). Now instead of:
7387 a = PhysicalQuantity(4.2,'m/s**2')
7394 a = PhysicalQuantity(4.2,'m/s**2')
7388 one can simply say
7395 one can simply say
7389 a = 4.2 m/s**2
7396 a = 4.2 m/s**2
7390 or even
7397 or even
7391 a = 4.2 m/s^2
7398 a = 4.2 m/s^2
7392
7399
7393 I use this, but it's also a proof of concept: IPython really is
7400 I use this, but it's also a proof of concept: IPython really is
7394 fully user-extensible, even at the level of the parsing of the
7401 fully user-extensible, even at the level of the parsing of the
7395 command line. It's not trivial, but it's perfectly doable.
7402 command line. It's not trivial, but it's perfectly doable.
7396
7403
7397 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7404 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7398 the problem of modules being loaded in the inverse order in which
7405 the problem of modules being loaded in the inverse order in which
7399 they were defined in
7406 they were defined in
7400
7407
7401 * Version 0.1.8 released, 0.1.9 opened for further work.
7408 * Version 0.1.8 released, 0.1.9 opened for further work.
7402
7409
7403 * Added magics pdef, source and file. They respectively show the
7410 * Added magics pdef, source and file. They respectively show the
7404 definition line ('prototype' in C), source code and full python
7411 definition line ('prototype' in C), source code and full python
7405 file for any callable object. The object inspector oinfo uses
7412 file for any callable object. The object inspector oinfo uses
7406 these to show the same information.
7413 these to show the same information.
7407
7414
7408 * Version 0.1.7 released, 0.1.8 opened for further work.
7415 * Version 0.1.7 released, 0.1.8 opened for further work.
7409
7416
7410 * Separated all the magic functions into a class called Magic. The
7417 * Separated all the magic functions into a class called Magic. The
7411 InteractiveShell class was becoming too big for Xemacs to handle
7418 InteractiveShell class was becoming too big for Xemacs to handle
7412 (de-indenting a line would lock it up for 10 seconds while it
7419 (de-indenting a line would lock it up for 10 seconds while it
7413 backtracked on the whole class!)
7420 backtracked on the whole class!)
7414
7421
7415 FIXME: didn't work. It can be done, but right now namespaces are
7422 FIXME: didn't work. It can be done, but right now namespaces are
7416 all messed up. Do it later (reverted it for now, so at least
7423 all messed up. Do it later (reverted it for now, so at least
7417 everything works as before).
7424 everything works as before).
7418
7425
7419 * Got the object introspection system (magic_oinfo) working! I
7426 * Got the object introspection system (magic_oinfo) working! I
7420 think this is pretty much ready for release to Janko, so he can
7427 think this is pretty much ready for release to Janko, so he can
7421 test it for a while and then announce it. Pretty much 100% of what
7428 test it for a while and then announce it. Pretty much 100% of what
7422 I wanted for the 'phase 1' release is ready. Happy, tired.
7429 I wanted for the 'phase 1' release is ready. Happy, tired.
7423
7430
7424 2001-11-12 Fernando Perez <fperez@colorado.edu>
7431 2001-11-12 Fernando Perez <fperez@colorado.edu>
7425
7432
7426 * Version 0.1.6 released, 0.1.7 opened for further work.
7433 * Version 0.1.6 released, 0.1.7 opened for further work.
7427
7434
7428 * Fixed bug in printing: it used to test for truth before
7435 * Fixed bug in printing: it used to test for truth before
7429 printing, so 0 wouldn't print. Now checks for None.
7436 printing, so 0 wouldn't print. Now checks for None.
7430
7437
7431 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7438 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7432 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7439 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7433 reaches by hand into the outputcache. Think of a better way to do
7440 reaches by hand into the outputcache. Think of a better way to do
7434 this later.
7441 this later.
7435
7442
7436 * Various small fixes thanks to Nathan's comments.
7443 * Various small fixes thanks to Nathan's comments.
7437
7444
7438 * Changed magic_pprint to magic_Pprint. This way it doesn't
7445 * Changed magic_pprint to magic_Pprint. This way it doesn't
7439 collide with pprint() and the name is consistent with the command
7446 collide with pprint() and the name is consistent with the command
7440 line option.
7447 line option.
7441
7448
7442 * Changed prompt counter behavior to be fully like
7449 * Changed prompt counter behavior to be fully like
7443 Mathematica's. That is, even input that doesn't return a result
7450 Mathematica's. That is, even input that doesn't return a result
7444 raises the prompt counter. The old behavior was kind of confusing
7451 raises the prompt counter. The old behavior was kind of confusing
7445 (getting the same prompt number several times if the operation
7452 (getting the same prompt number several times if the operation
7446 didn't return a result).
7453 didn't return a result).
7447
7454
7448 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7455 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7449
7456
7450 * Fixed -Classic mode (wasn't working anymore).
7457 * Fixed -Classic mode (wasn't working anymore).
7451
7458
7452 * Added colored prompts using Nathan's new code. Colors are
7459 * Added colored prompts using Nathan's new code. Colors are
7453 currently hardwired, they can be user-configurable. For
7460 currently hardwired, they can be user-configurable. For
7454 developers, they can be chosen in file ipythonlib.py, at the
7461 developers, they can be chosen in file ipythonlib.py, at the
7455 beginning of the CachedOutput class def.
7462 beginning of the CachedOutput class def.
7456
7463
7457 2001-11-11 Fernando Perez <fperez@colorado.edu>
7464 2001-11-11 Fernando Perez <fperez@colorado.edu>
7458
7465
7459 * Version 0.1.5 released, 0.1.6 opened for further work.
7466 * Version 0.1.5 released, 0.1.6 opened for further work.
7460
7467
7461 * Changed magic_env to *return* the environment as a dict (not to
7468 * Changed magic_env to *return* the environment as a dict (not to
7462 print it). This way it prints, but it can also be processed.
7469 print it). This way it prints, but it can also be processed.
7463
7470
7464 * Added Verbose exception reporting to interactive
7471 * Added Verbose exception reporting to interactive
7465 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7472 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7466 traceback. Had to make some changes to the ultraTB file. This is
7473 traceback. Had to make some changes to the ultraTB file. This is
7467 probably the last 'big' thing in my mental todo list. This ties
7474 probably the last 'big' thing in my mental todo list. This ties
7468 in with the next entry:
7475 in with the next entry:
7469
7476
7470 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7477 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7471 has to specify is Plain, Color or Verbose for all exception
7478 has to specify is Plain, Color or Verbose for all exception
7472 handling.
7479 handling.
7473
7480
7474 * Removed ShellServices option. All this can really be done via
7481 * Removed ShellServices option. All this can really be done via
7475 the magic system. It's easier to extend, cleaner and has automatic
7482 the magic system. It's easier to extend, cleaner and has automatic
7476 namespace protection and documentation.
7483 namespace protection and documentation.
7477
7484
7478 2001-11-09 Fernando Perez <fperez@colorado.edu>
7485 2001-11-09 Fernando Perez <fperez@colorado.edu>
7479
7486
7480 * Fixed bug in output cache flushing (missing parameter to
7487 * Fixed bug in output cache flushing (missing parameter to
7481 __init__). Other small bugs fixed (found using pychecker).
7488 __init__). Other small bugs fixed (found using pychecker).
7482
7489
7483 * Version 0.1.4 opened for bugfixing.
7490 * Version 0.1.4 opened for bugfixing.
7484
7491
7485 2001-11-07 Fernando Perez <fperez@colorado.edu>
7492 2001-11-07 Fernando Perez <fperez@colorado.edu>
7486
7493
7487 * Version 0.1.3 released, mainly because of the raw_input bug.
7494 * Version 0.1.3 released, mainly because of the raw_input bug.
7488
7495
7489 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7496 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7490 and when testing for whether things were callable, a call could
7497 and when testing for whether things were callable, a call could
7491 actually be made to certain functions. They would get called again
7498 actually be made to certain functions. They would get called again
7492 once 'really' executed, with a resulting double call. A disaster
7499 once 'really' executed, with a resulting double call. A disaster
7493 in many cases (list.reverse() would never work!).
7500 in many cases (list.reverse() would never work!).
7494
7501
7495 * Removed prefilter() function, moved its code to raw_input (which
7502 * Removed prefilter() function, moved its code to raw_input (which
7496 after all was just a near-empty caller for prefilter). This saves
7503 after all was just a near-empty caller for prefilter). This saves
7497 a function call on every prompt, and simplifies the class a tiny bit.
7504 a function call on every prompt, and simplifies the class a tiny bit.
7498
7505
7499 * Fix _ip to __ip name in magic example file.
7506 * Fix _ip to __ip name in magic example file.
7500
7507
7501 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7508 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7502 work with non-gnu versions of tar.
7509 work with non-gnu versions of tar.
7503
7510
7504 2001-11-06 Fernando Perez <fperez@colorado.edu>
7511 2001-11-06 Fernando Perez <fperez@colorado.edu>
7505
7512
7506 * Version 0.1.2. Just to keep track of the recent changes.
7513 * Version 0.1.2. Just to keep track of the recent changes.
7507
7514
7508 * Fixed nasty bug in output prompt routine. It used to check 'if
7515 * Fixed nasty bug in output prompt routine. It used to check 'if
7509 arg != None...'. Problem is, this fails if arg implements a
7516 arg != None...'. Problem is, this fails if arg implements a
7510 special comparison (__cmp__) which disallows comparing to
7517 special comparison (__cmp__) which disallows comparing to
7511 None. Found it when trying to use the PhysicalQuantity module from
7518 None. Found it when trying to use the PhysicalQuantity module from
7512 ScientificPython.
7519 ScientificPython.
7513
7520
7514 2001-11-05 Fernando Perez <fperez@colorado.edu>
7521 2001-11-05 Fernando Perez <fperez@colorado.edu>
7515
7522
7516 * Also added dirs. Now the pushd/popd/dirs family functions
7523 * Also added dirs. Now the pushd/popd/dirs family functions
7517 basically like the shell, with the added convenience of going home
7524 basically like the shell, with the added convenience of going home
7518 when called with no args.
7525 when called with no args.
7519
7526
7520 * pushd/popd slightly modified to mimic shell behavior more
7527 * pushd/popd slightly modified to mimic shell behavior more
7521 closely.
7528 closely.
7522
7529
7523 * Added env,pushd,popd from ShellServices as magic functions. I
7530 * Added env,pushd,popd from ShellServices as magic functions. I
7524 think the cleanest will be to port all desired functions from
7531 think the cleanest will be to port all desired functions from
7525 ShellServices as magics and remove ShellServices altogether. This
7532 ShellServices as magics and remove ShellServices altogether. This
7526 will provide a single, clean way of adding functionality
7533 will provide a single, clean way of adding functionality
7527 (shell-type or otherwise) to IP.
7534 (shell-type or otherwise) to IP.
7528
7535
7529 2001-11-04 Fernando Perez <fperez@colorado.edu>
7536 2001-11-04 Fernando Perez <fperez@colorado.edu>
7530
7537
7531 * Added .ipython/ directory to sys.path. This way users can keep
7538 * Added .ipython/ directory to sys.path. This way users can keep
7532 customizations there and access them via import.
7539 customizations there and access them via import.
7533
7540
7534 2001-11-03 Fernando Perez <fperez@colorado.edu>
7541 2001-11-03 Fernando Perez <fperez@colorado.edu>
7535
7542
7536 * Opened version 0.1.1 for new changes.
7543 * Opened version 0.1.1 for new changes.
7537
7544
7538 * Changed version number to 0.1.0: first 'public' release, sent to
7545 * Changed version number to 0.1.0: first 'public' release, sent to
7539 Nathan and Janko.
7546 Nathan and Janko.
7540
7547
7541 * Lots of small fixes and tweaks.
7548 * Lots of small fixes and tweaks.
7542
7549
7543 * Minor changes to whos format. Now strings are shown, snipped if
7550 * Minor changes to whos format. Now strings are shown, snipped if
7544 too long.
7551 too long.
7545
7552
7546 * Changed ShellServices to work on __main__ so they show up in @who
7553 * Changed ShellServices to work on __main__ so they show up in @who
7547
7554
7548 * Help also works with ? at the end of a line:
7555 * Help also works with ? at the end of a line:
7549 ?sin and sin?
7556 ?sin and sin?
7550 both produce the same effect. This is nice, as often I use the
7557 both produce the same effect. This is nice, as often I use the
7551 tab-complete to find the name of a method, but I used to then have
7558 tab-complete to find the name of a method, but I used to then have
7552 to go to the beginning of the line to put a ? if I wanted more
7559 to go to the beginning of the line to put a ? if I wanted more
7553 info. Now I can just add the ? and hit return. Convenient.
7560 info. Now I can just add the ? and hit return. Convenient.
7554
7561
7555 2001-11-02 Fernando Perez <fperez@colorado.edu>
7562 2001-11-02 Fernando Perez <fperez@colorado.edu>
7556
7563
7557 * Python version check (>=2.1) added.
7564 * Python version check (>=2.1) added.
7558
7565
7559 * Added LazyPython documentation. At this point the docs are quite
7566 * Added LazyPython documentation. At this point the docs are quite
7560 a mess. A cleanup is in order.
7567 a mess. A cleanup is in order.
7561
7568
7562 * Auto-installer created. For some bizarre reason, the zipfiles
7569 * Auto-installer created. For some bizarre reason, the zipfiles
7563 module isn't working on my system. So I made a tar version
7570 module isn't working on my system. So I made a tar version
7564 (hopefully the command line options in various systems won't kill
7571 (hopefully the command line options in various systems won't kill
7565 me).
7572 me).
7566
7573
7567 * Fixes to Struct in genutils. Now all dictionary-like methods are
7574 * Fixes to Struct in genutils. Now all dictionary-like methods are
7568 protected (reasonably).
7575 protected (reasonably).
7569
7576
7570 * Added pager function to genutils and changed ? to print usage
7577 * Added pager function to genutils and changed ? to print usage
7571 note through it (it was too long).
7578 note through it (it was too long).
7572
7579
7573 * Added the LazyPython functionality. Works great! I changed the
7580 * Added the LazyPython functionality. Works great! I changed the
7574 auto-quote escape to ';', it's on home row and next to '. But
7581 auto-quote escape to ';', it's on home row and next to '. But
7575 both auto-quote and auto-paren (still /) escapes are command-line
7582 both auto-quote and auto-paren (still /) escapes are command-line
7576 parameters.
7583 parameters.
7577
7584
7578
7585
7579 2001-11-01 Fernando Perez <fperez@colorado.edu>
7586 2001-11-01 Fernando Perez <fperez@colorado.edu>
7580
7587
7581 * Version changed to 0.0.7. Fairly large change: configuration now
7588 * Version changed to 0.0.7. Fairly large change: configuration now
7582 is all stored in a directory, by default .ipython. There, all
7589 is all stored in a directory, by default .ipython. There, all
7583 config files have normal looking names (not .names)
7590 config files have normal looking names (not .names)
7584
7591
7585 * Version 0.0.6 Released first to Lucas and Archie as a test
7592 * Version 0.0.6 Released first to Lucas and Archie as a test
7586 run. Since it's the first 'semi-public' release, change version to
7593 run. Since it's the first 'semi-public' release, change version to
7587 > 0.0.6 for any changes now.
7594 > 0.0.6 for any changes now.
7588
7595
7589 * Stuff I had put in the ipplib.py changelog:
7596 * Stuff I had put in the ipplib.py changelog:
7590
7597
7591 Changes to InteractiveShell:
7598 Changes to InteractiveShell:
7592
7599
7593 - Made the usage message a parameter.
7600 - Made the usage message a parameter.
7594
7601
7595 - Require the name of the shell variable to be given. It's a bit
7602 - Require the name of the shell variable to be given. It's a bit
7596 of a hack, but allows the name 'shell' not to be hardwired in the
7603 of a hack, but allows the name 'shell' not to be hardwired in the
7597 magic (@) handler, which is problematic b/c it requires
7604 magic (@) handler, which is problematic b/c it requires
7598 polluting the global namespace with 'shell'. This in turn is
7605 polluting the global namespace with 'shell'. This in turn is
7599 fragile: if a user redefines a variable called shell, things
7606 fragile: if a user redefines a variable called shell, things
7600 break.
7607 break.
7601
7608
7602 - magic @: all functions available through @ need to be defined
7609 - magic @: all functions available through @ need to be defined
7603 as magic_<name>, even though they can be called simply as
7610 as magic_<name>, even though they can be called simply as
7604 @<name>. This allows the special command @magic to gather
7611 @<name>. This allows the special command @magic to gather
7605 information automatically about all existing magic functions,
7612 information automatically about all existing magic functions,
7606 even if they are run-time user extensions, by parsing the shell
7613 even if they are run-time user extensions, by parsing the shell
7607 instance __dict__ looking for special magic_ names.
7614 instance __dict__ looking for special magic_ names.
7608
7615
7609 - mainloop: added *two* local namespace parameters. This allows
7616 - mainloop: added *two* local namespace parameters. This allows
7610 the class to differentiate between parameters which were there
7617 the class to differentiate between parameters which were there
7611 before and after command line initialization was processed. This
7618 before and after command line initialization was processed. This
7612 way, later @who can show things loaded at startup by the
7619 way, later @who can show things loaded at startup by the
7613 user. This trick was necessary to make session saving/reloading
7620 user. This trick was necessary to make session saving/reloading
7614 really work: ideally after saving/exiting/reloading a session,
7621 really work: ideally after saving/exiting/reloading a session,
7615 *everything* should look the same, including the output of @who. I
7622 *everything* should look the same, including the output of @who. I
7616 was only able to make this work with this double namespace
7623 was only able to make this work with this double namespace
7617 trick.
7624 trick.
7618
7625
7619 - added a header to the logfile which allows (almost) full
7626 - added a header to the logfile which allows (almost) full
7620 session restoring.
7627 session restoring.
7621
7628
7622 - prepend lines beginning with @ or !, with a and log
7629 - prepend lines beginning with @ or !, with a and log
7623 them. Why? !lines: may be useful to know what you did @lines:
7630 them. Why? !lines: may be useful to know what you did @lines:
7624 they may affect session state. So when restoring a session, at
7631 they may affect session state. So when restoring a session, at
7625 least inform the user of their presence. I couldn't quite get
7632 least inform the user of their presence. I couldn't quite get
7626 them to properly re-execute, but at least the user is warned.
7633 them to properly re-execute, but at least the user is warned.
7627
7634
7628 * Started ChangeLog.
7635 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now