##// END OF EJS Templates
changelog
Ville M. Vainio -
Show More
@@ -1,7635 +1,7638 b''
1 2008-05-30 Ville Vainio <vivainio@gmail.com>
1 2008-05-30 Ville Vainio <vivainio@gmail.com>
2
2
3 * shell.py: disable -twisted on non-win32 platforms.
3 * shell.py: disable -twisted on non-win32 platforms.
4 import sets module on python 2.3.
4 import sets module on python 2.3.
5
5
6 * ipy_profile_sh.py: disable ipy_signals. Now, ipython
7 is verified to work with python 2.3
8
6 * Release.py: update version to 0.8.4 for quick point fix
9 * Release.py: update version to 0.8.4 for quick point fix
7
10
8 2008-05-28 *** Released version 0.8.3
11 2008-05-28 *** Released version 0.8.3
9
12
10 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
13 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
11
14
12 * ../win32_manual_post_install.py (run): Fix the windows installer
15 * ../win32_manual_post_install.py (run): Fix the windows installer
13 so the links to the docs are correct.
16 so the links to the docs are correct.
14
17
15 * IPython/ultraTB.py: flush stderr after writing to it to fix
18 * IPython/ultraTB.py: flush stderr after writing to it to fix
16 problems with exception traceback ordering in some platforms.
19 problems with exception traceback ordering in some platforms.
17 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
20 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
18
21
19 * IPython/Magic.py (magic_cpaste): add stripping of continuation
22 * IPython/Magic.py (magic_cpaste): add stripping of continuation
20 prompts, feature requested by Stefan vdW.
23 prompts, feature requested by Stefan vdW.
21
24
22 * ../setup.py: updates to build and release tools in preparation
25 * ../setup.py: updates to build and release tools in preparation
23 for 0.8.3 release.
26 for 0.8.3 release.
24
27
25 2008-05-27 Ville Vainio <vivainio@gmail.com>
28 2008-05-27 Ville Vainio <vivainio@gmail.com>
26
29
27 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
30 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
28 for minimal environments (e.g. Maemo sdk python)
31 for minimal environments (e.g. Maemo sdk python)
29
32
30 * Magic.py: cpaste strips whitespace before >>> (allow pasting
33 * Magic.py: cpaste strips whitespace before >>> (allow pasting
31 doctests)
34 doctests)
32
35
33 * ipy_completers.py: cd completer now does recursive path expand
36 * ipy_completers.py: cd completer now does recursive path expand
34 (old behaviour is buggy on some readline versions)
37 (old behaviour is buggy on some readline versions)
35
38
36 2008-05-14 Ville Vainio <vivainio@gmail.com>
39 2008-05-14 Ville Vainio <vivainio@gmail.com>
37
40
38 * Extensions/ipy_greedycompleter.py:
41 * Extensions/ipy_greedycompleter.py:
39 New extension that enables a bit more "relaxed" tab
42 New extension that enables a bit more "relaxed" tab
40 completer that evaluates code without safety checks
43 completer that evaluates code without safety checks
41 (i.e. there can be side effects like function calls)
44 (i.e. there can be side effects like function calls)
42
45
43 2008-04-20 Ville Vainio <vivainio@gmail.com>
46 2008-04-20 Ville Vainio <vivainio@gmail.com>
44
47
45 * Extensions/ipy_lookfor.py: add %lookfor magic command
48 * Extensions/ipy_lookfor.py: add %lookfor magic command
46 (search docstrings for words) by Pauli Virtanen. Close #245.
49 (search docstrings for words) by Pauli Virtanen. Close #245.
47
50
48 * Extension/ipy_jot.py: %jot and %read magics, analogous
51 * Extension/ipy_jot.py: %jot and %read magics, analogous
49 to %store but you can specify some notes. Not read
52 to %store but you can specify some notes. Not read
50 in automatically on startup, you need %read.
53 in automatically on startup, you need %read.
51 Contributed by Yichun Wei.
54 Contributed by Yichun Wei.
52
55
53 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
56 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
54
57
55 * IPython/genutils.py (page): apply workaround to curses bug that
58 * IPython/genutils.py (page): apply workaround to curses bug that
56 can leave terminal corrupted after a call to initscr().
59 can leave terminal corrupted after a call to initscr().
57
60
58 2008-04-15 Ville Vainio <vivainio@gmail.com>
61 2008-04-15 Ville Vainio <vivainio@gmail.com>
59
62
60 * genutils.py: SList.grep supports 'field' argument
63 * genutils.py: SList.grep supports 'field' argument
61
64
62 * ipy_completers.py: module completer looks inside
65 * ipy_completers.py: module completer looks inside
63 .egg zip files (patch by mc). Close #196.
66 .egg zip files (patch by mc). Close #196.
64
67
65 2008-04-09 Ville Vainio <vivainio@gmail.com>
68 2008-04-09 Ville Vainio <vivainio@gmail.com>
66
69
67 * deep_reload.py: do not crash on from __future__ import
70 * deep_reload.py: do not crash on from __future__ import
68 absolute_import. Close #244.
71 absolute_import. Close #244.
69
72
70 2008-04-02 Ville Vainio <vivainio@gmail.com>
73 2008-04-02 Ville Vainio <vivainio@gmail.com>
71
74
72 * ipy_winpdb.py: New extension for winpdb integration. %wdb
75 * ipy_winpdb.py: New extension for winpdb integration. %wdb
73 test.py is winpdb equivalent of %run -d test.py. winpdb is a
76 test.py is winpdb equivalent of %run -d test.py. winpdb is a
74 crossplatform remote GUI debugger based on wxpython.
77 crossplatform remote GUI debugger based on wxpython.
75
78
76 2008-03-29 Ville Vainio <vivainio@gmail.com>
79 2008-03-29 Ville Vainio <vivainio@gmail.com>
77
80
78 * ipython.rst, do_sphinx.py: New documentation base, based on
81 * ipython.rst, do_sphinx.py: New documentation base, based on
79 reStucturedText and Sphinx (html/pdf generation). The old Lyx
82 reStucturedText and Sphinx (html/pdf generation). The old Lyx
80 based documentation will not be updated anymore.
83 based documentation will not be updated anymore.
81
84
82 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
85 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
83
86
84 2008-03-24 Ville Vainio <vivainio@gmail.com>
87 2008-03-24 Ville Vainio <vivainio@gmail.com>
85
88
86 * ipython.rst, do_sphinx.py: New documentation base, based on
89 * ipython.rst, do_sphinx.py: New documentation base, based on
87 reStucturedText and Sphinx (html/pdf generation). The old Lyx
90 reStucturedText and Sphinx (html/pdf generation). The old Lyx
88 based documentation will not be updated anymore.
91 based documentation will not be updated anymore.
89
92
90 ipython.rst has up to date documentation on matters that were not
93 ipython.rst has up to date documentation on matters that were not
91 documented at all, and it also removes various
94 documented at all, and it also removes various
92 misdocumented/deprecated features.
95 misdocumented/deprecated features.
93
96
94 2008-03-22 Ville Vainio <vivainio@gmail.com>
97 2008-03-22 Ville Vainio <vivainio@gmail.com>
95
98
96 * Shell.py: Merge mtexp branch:
99 * Shell.py: Merge mtexp branch:
97 https://code.launchpad.net/~ipython/ipython/mtexp
100 https://code.launchpad.net/~ipython/ipython/mtexp
98
101
99 Privides simpler and more robust MTInteractiveShell that won't
102 Privides simpler and more robust MTInteractiveShell that won't
100 deadlock, even when the worker thread (GUI) stops doing runcode()
103 deadlock, even when the worker thread (GUI) stops doing runcode()
101 regularly. r71.
104 regularly. r71.
102
105
103 2008-03-20 Ville Vainio <vivainio@gmail.com>
106 2008-03-20 Ville Vainio <vivainio@gmail.com>
104
107
105 * twshell.py: New shell that runs IPython code in Twisted reactor.
108 * twshell.py: New shell that runs IPython code in Twisted reactor.
106 Launch by doing ipython -twisted. r67.
109 Launch by doing ipython -twisted. r67.
107
110
108 2008-03-19 Ville Vainio <vivainio@gmail.com>
111 2008-03-19 Ville Vainio <vivainio@gmail.com>
109
112
110 * Magic.py: %rehashx works correctly when shadowed system commands
113 * Magic.py: %rehashx works correctly when shadowed system commands
111 have upper case characters (e.g. Print.exe). r64.
114 have upper case characters (e.g. Print.exe). r64.
112
115
113 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
116 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
114 knows options to commands, based on bzrtools. Uses bzrlib
117 knows options to commands, based on bzrtools. Uses bzrlib
115 directly. r66.
118 directly. r66.
116
119
117 2008-03-16 Ville Vainio <vivainio@gmail.com>
120 2008-03-16 Ville Vainio <vivainio@gmail.com>
118
121
119 * make_tarball.py: Fixed for bzr.
122 * make_tarball.py: Fixed for bzr.
120
123
121 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
124 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
122
125
123 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
126 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
124 by Erich Heine.
127 by Erich Heine.
125
128
126 2008-03-12 Ville Vainio <vivainio@gmail.com>
129 2008-03-12 Ville Vainio <vivainio@gmail.com>
127
130
128 * ipmaker.py: Force (reload?) import of ipy_user_conf and
131 * ipmaker.py: Force (reload?) import of ipy_user_conf and
129 ipy_profile_foo, so that embedded instances can be relaunched and
132 ipy_profile_foo, so that embedded instances can be relaunched and
130 configuration is still done. r50
133 configuration is still done. r50
131
134
132 * ipapi.py, test_embed.py: Allow specifying shell class in
135 * ipapi.py, test_embed.py: Allow specifying shell class in
133 launch_new_instance & make_new instance. Use this in
136 launch_new_instance & make_new instance. Use this in
134 test_embed.py. r51.
137 test_embed.py. r51.
135
138
136 test_embed.py is also a good and simple demo of embedding IPython.
139 test_embed.py is also a good and simple demo of embedding IPython.
137
140
138
141
139 2008-03-10 Ville Vainio <vivainio@gmail.com>
142 2008-03-10 Ville Vainio <vivainio@gmail.com>
140
143
141 * tool/update_revnum.py: Change to bzr revisioning scheme in
144 * tool/update_revnum.py: Change to bzr revisioning scheme in
142 revision numbers.
145 revision numbers.
143
146
144 * Shell.py: Threading improvements:
147 * Shell.py: Threading improvements:
145
148
146 In multithreaded shells, do not hang on macros and o.autoexec
149 In multithreaded shells, do not hang on macros and o.autoexec
147 commands (or anything executed with _ip.runlines()) anymore. Allow
150 commands (or anything executed with _ip.runlines()) anymore. Allow
148 recursive execution of IPython code in
151 recursive execution of IPython code in
149 MTInteractiveShell.runsource by checking if we are already in
152 MTInteractiveShell.runsource by checking if we are already in
150 worker thread, and execute code directly if we are. r48.
153 worker thread, and execute code directly if we are. r48.
151
154
152 MTInteractiveShell.runsource: execute code directly if worker
155 MTInteractiveShell.runsource: execute code directly if worker
153 thread is not running yet (this is the case in config files). r49.
156 thread is not running yet (this is the case in config files). r49.
154
157
155 2008-03-09 Ville Vainio <vivainio@gmail.com>
158 2008-03-09 Ville Vainio <vivainio@gmail.com>
156
159
157 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
160 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
158 argument of previous command in sh profile. Similar to bash '!$'.
161 argument of previous command in sh profile. Similar to bash '!$'.
159 LA(3) or $LA(3) stands for last argument of input history command
162 LA(3) or $LA(3) stands for last argument of input history command
160 3.
163 3.
161
164
162 * Shell.py: -pylab names don't clutter %whos listing.
165 * Shell.py: -pylab names don't clutter %whos listing.
163
166
164 2008-03-07 Ville Vainio <vivainio@gmail.com>
167 2008-03-07 Ville Vainio <vivainio@gmail.com>
165
168
166 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
169 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
167 autoreloading modules; try %autoreload and %aimport. Close #154.
170 autoreloading modules; try %autoreload and %aimport. Close #154.
168 Uses the new pre_runcode_hook.
171 Uses the new pre_runcode_hook.
169
172
170 2008-02-24 Ville Vainio <vivainio@gmail.com>
173 2008-02-24 Ville Vainio <vivainio@gmail.com>
171
174
172 * platutils_posix.py: freeze_term_title works
175 * platutils_posix.py: freeze_term_title works
173
176
174 2008-02-21 Ville Vainio <vivainio@gmail.com>
177 2008-02-21 Ville Vainio <vivainio@gmail.com>
175
178
176 * Magic.py: %quickref does not crash with empty docstring
179 * Magic.py: %quickref does not crash with empty docstring
177
180
178 2008-02-20 Ville Vainio <vivainio@gmail.com>
181 2008-02-20 Ville Vainio <vivainio@gmail.com>
179
182
180 * completer.py: do not treat [](){} as protectable chars anymore,
183 * completer.py: do not treat [](){} as protectable chars anymore,
181 close #233.
184 close #233.
182
185
183 * completer.py: do not treat [](){} as protectable chars anymore
186 * completer.py: do not treat [](){} as protectable chars anymore
184
187
185 * magic.py, test_cpaste.py: Allow different prefix for pasting
188 * magic.py, test_cpaste.py: Allow different prefix for pasting
186 from email
189 from email
187
190
188 2008-02-17 Ville Vainio <vivainio@gmail.com>
191 2008-02-17 Ville Vainio <vivainio@gmail.com>
189
192
190 * Switched over to Launchpad/bzr as primary VCS.
193 * Switched over to Launchpad/bzr as primary VCS.
191
194
192 2008-02-14 Ville Vainio <vivainio@gmail.com>
195 2008-02-14 Ville Vainio <vivainio@gmail.com>
193
196
194 * ipapi.py: _ip.runlines() is now much more liberal about
197 * ipapi.py: _ip.runlines() is now much more liberal about
195 indentation - it cleans up the scripts it gets
198 indentation - it cleans up the scripts it gets
196
199
197 2008-02-14 Ville Vainio <vivainio@gmail.com>
200 2008-02-14 Ville Vainio <vivainio@gmail.com>
198
201
199 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
202 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
200 Changes to it (later on) are too numerous to list in ChangeLog
203 Changes to it (later on) are too numerous to list in ChangeLog
201 until it stabilizes
204 until it stabilizes
202
205
203 2008-02-07 Darren Dale <darren.dale@cornell.edu>
206 2008-02-07 Darren Dale <darren.dale@cornell.edu>
204
207
205 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
208 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
206 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
209 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
207 interaction in the interpreter (like Tkinter does), but it seems to
210 interaction in the interpreter (like Tkinter does), but it seems to
208 partially interfere with the IPython implementation and exec_()
211 partially interfere with the IPython implementation and exec_()
209 still seems to block. So we disable the PyQt implementation and
212 still seems to block. So we disable the PyQt implementation and
210 stick with the IPython one for now.
213 stick with the IPython one for now.
211
214
212 2008-02-02 Walter Doerwald <walter@livinglogic.de>
215 2008-02-02 Walter Doerwald <walter@livinglogic.de>
213
216
214 * ipipe.py: A new ipipe table has been added: ialias produces all
217 * ipipe.py: A new ipipe table has been added: ialias produces all
215 entries from IPython's alias table.
218 entries from IPython's alias table.
216
219
217 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
220 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
218
221
219 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
222 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
220 of KBINT in threaded shells. After code provided by Marc in #212.
223 of KBINT in threaded shells. After code provided by Marc in #212.
221
224
222 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
225 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
223
226
224 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
227 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
225 that could occur due to a race condition in threaded shells.
228 that could occur due to a race condition in threaded shells.
226 Thanks to code provided by Marc, as #210.
229 Thanks to code provided by Marc, as #210.
227
230
228 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
231 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
229
232
230 * IPython/Magic.py (magic_doctest_mode): respect the user's
233 * IPython/Magic.py (magic_doctest_mode): respect the user's
231 settings for input separators rather than overriding them. After
234 settings for input separators rather than overriding them. After
232 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
235 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
233
236
234 * IPython/history.py (magic_history): Add support for declaring an
237 * IPython/history.py (magic_history): Add support for declaring an
235 output file directly from the history command.
238 output file directly from the history command.
236
239
237 2008-01-21 Walter Doerwald <walter@livinglogic.de>
240 2008-01-21 Walter Doerwald <walter@livinglogic.de>
238
241
239 * ipipe.py: Register ipipe's displayhooks via the generic function
242 * ipipe.py: Register ipipe's displayhooks via the generic function
240 generics.result_display() instead of using ipapi.set_hook().
243 generics.result_display() instead of using ipapi.set_hook().
241
244
242 2008-01-19 Walter Doerwald <walter@livinglogic.de>
245 2008-01-19 Walter Doerwald <walter@livinglogic.de>
243
246
244 * ibrowse.py, igrid.py, ipipe.py:
247 * ibrowse.py, igrid.py, ipipe.py:
245 The input object can now be passed to the constructor of the display classes.
248 The input object can now be passed to the constructor of the display classes.
246 This makes it possible to use them with objects that implement __or__.
249 This makes it possible to use them with objects that implement __or__.
247 Use this constructor in the displayhook instead of piping.
250 Use this constructor in the displayhook instead of piping.
248
251
249 * ipipe.py: Importing astyle.py is done as late as possible to
252 * ipipe.py: Importing astyle.py is done as late as possible to
250 avoid problems with circular imports.
253 avoid problems with circular imports.
251
254
252 2008-01-19 Ville Vainio <vivainio@gmail.com>
255 2008-01-19 Ville Vainio <vivainio@gmail.com>
253
256
254 * hooks.py, iplib.py: Added 'shell_hook' to customize how
257 * hooks.py, iplib.py: Added 'shell_hook' to customize how
255 IPython calls shell.
258 IPython calls shell.
256
259
257 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
260 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
258 how IPython pages text (%page, %pycat, %pdoc etc.)
261 how IPython pages text (%page, %pycat, %pdoc etc.)
259
262
260 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
263 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
261 and '%kill' to kill hanging processes that won't obey ctrl+C.
264 and '%kill' to kill hanging processes that won't obey ctrl+C.
262
265
263 2008-01-16 Ville Vainio <vivainio@gmail.com>
266 2008-01-16 Ville Vainio <vivainio@gmail.com>
264
267
265 * ipy_completers.py: pyw extension support for %run completer.
268 * ipy_completers.py: pyw extension support for %run completer.
266
269
267 2008-01-11 Ville Vainio <vivainio@gmail.com>
270 2008-01-11 Ville Vainio <vivainio@gmail.com>
268
271
269 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
272 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
270 of ipython commands to be run when IPython has started up
273 of ipython commands to be run when IPython has started up
271 (just before running the scripts and -c arg on command line).
274 (just before running the scripts and -c arg on command line).
272
275
273 * ipy_user_conf.py: Added an example on how to change term
276 * ipy_user_conf.py: Added an example on how to change term
274 colors in config file (through using autoexec).
277 colors in config file (through using autoexec).
275
278
276 * completer.py, test_completer.py: Ability to specify custom
279 * completer.py, test_completer.py: Ability to specify custom
277 get_endidx to replace readline.get_endidx. For emacs users.
280 get_endidx to replace readline.get_endidx. For emacs users.
278
281
279 2008-01-10 Ville Vainio <vivainio@gmail.com>
282 2008-01-10 Ville Vainio <vivainio@gmail.com>
280
283
281 * Prompts.py (set_p_str): do not crash on illegal prompt strings
284 * Prompts.py (set_p_str): do not crash on illegal prompt strings
282
285
283 2008-01-08 Ville Vainio <vivainio@gmail.com>
286 2008-01-08 Ville Vainio <vivainio@gmail.com>
284
287
285 * '%macro -r' (raw mode) is now default in sh profile.
288 * '%macro -r' (raw mode) is now default in sh profile.
286
289
287 2007-12-31 Ville Vainio <vivainio@gmail.com>
290 2007-12-31 Ville Vainio <vivainio@gmail.com>
288
291
289 * completer.py: custom completer matching is now case sensitive
292 * completer.py: custom completer matching is now case sensitive
290 (#207).
293 (#207).
291
294
292 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
295 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
293 an attempt to prevent occasional crashes.
296 an attempt to prevent occasional crashes.
294
297
295 * CrashHandler.py: Crash log dump now asks user to press enter
298 * CrashHandler.py: Crash log dump now asks user to press enter
296 before exiting.
299 before exiting.
297
300
298 * Store _ip in user_ns instead of __builtin__, enabling safer
301 * Store _ip in user_ns instead of __builtin__, enabling safer
299 coexistence of multiple IPython instances in the same python
302 coexistence of multiple IPython instances in the same python
300 interpreter (#197).
303 interpreter (#197).
301
304
302 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
305 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
303 switch to enable pydb in post-mortem debugging and %run -d.
306 switch to enable pydb in post-mortem debugging and %run -d.
304
307
305 2007-12-28 Ville Vainio <vivainio@gmail.com>
308 2007-12-28 Ville Vainio <vivainio@gmail.com>
306
309
307 * ipy_server.py: TCP socket server for "remote control" of an IPython
310 * ipy_server.py: TCP socket server for "remote control" of an IPython
308 instance.
311 instance.
309
312
310 * Debugger.py: Change to PSF license
313 * Debugger.py: Change to PSF license
311
314
312 * simplegeneric.py: Add license & author notes.
315 * simplegeneric.py: Add license & author notes.
313
316
314 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
317 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
315 to navigate file system with a custom completer. Run
318 to navigate file system with a custom completer. Run
316 ipy_fsops.test_pathobj() to play with it.
319 ipy_fsops.test_pathobj() to play with it.
317
320
318 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
321 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
319
322
320 * IPython/dtutils.py: Add utilities for interactively running
323 * IPython/dtutils.py: Add utilities for interactively running
321 doctests. Still needs work to more easily handle the namespace of
324 doctests. Still needs work to more easily handle the namespace of
322 the package one may be working on, but the basics are in place.
325 the package one may be working on, but the basics are in place.
323
326
324 2007-12-27 Ville Vainio <vivainio@gmail.com>
327 2007-12-27 Ville Vainio <vivainio@gmail.com>
325
328
326 * ipy_completers.py: Applied arno's patch to get proper list of
329 * ipy_completers.py: Applied arno's patch to get proper list of
327 packages in import completer. Closes #196.
330 packages in import completer. Closes #196.
328
331
329 2007-12-20 Ville Vainio <vivainio@gmail.com>
332 2007-12-20 Ville Vainio <vivainio@gmail.com>
330
333
331 * completer.py, generics.py(complete_object): Allow
334 * completer.py, generics.py(complete_object): Allow
332 custom complers based on python objects via simplegeneric.
335 custom complers based on python objects via simplegeneric.
333 See generics.py / my_demo_complete_object
336 See generics.py / my_demo_complete_object
334
337
335 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
338 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
336
339
337 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
340 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
338 behavior to prompt objects, useful for display hooks to adjust
341 behavior to prompt objects, useful for display hooks to adjust
339 themselves depending on whether prompts will be there or not.
342 themselves depending on whether prompts will be there or not.
340
343
341 2007-12-13 Ville Vainio <vivainio@gmail.com>
344 2007-12-13 Ville Vainio <vivainio@gmail.com>
342
345
343 * iplib.py(raw_input): unix readline does not allow unicode in
346 * iplib.py(raw_input): unix readline does not allow unicode in
344 history, encode to normal string. After patch by Tiago.
347 history, encode to normal string. After patch by Tiago.
345 Close #201
348 Close #201
346
349
347 2007-12-12 Ville Vainio <vivainio@gmail.com>
350 2007-12-12 Ville Vainio <vivainio@gmail.com>
348
351
349 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
352 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
350 current directory.
353 current directory.
351
354
352 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
355 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
353
356
354 * IPython/Shell.py (_select_shell): add support for controlling
357 * IPython/Shell.py (_select_shell): add support for controlling
355 the pylab threading mode directly at the command line, without
358 the pylab threading mode directly at the command line, without
356 having to modify MPL config files. Added unit tests for this
359 having to modify MPL config files. Added unit tests for this
357 feature, though manual/docs update is still pending, will do later.
360 feature, though manual/docs update is still pending, will do later.
358
361
359 2007-12-11 Ville Vainio <vivainio@gmail.com>
362 2007-12-11 Ville Vainio <vivainio@gmail.com>
360
363
361 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
364 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
362 use in scripts)
365 use in scripts)
363
366
364 2007-12-07 Ville Vainio <vivainio@gmail.com>
367 2007-12-07 Ville Vainio <vivainio@gmail.com>
365
368
366 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
369 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
367 anymore (to \#) - even if it is a comment char that is implicitly
370 anymore (to \#) - even if it is a comment char that is implicitly
368 escaped in some unix shells in interactive mode, it is ok to leave
371 escaped in some unix shells in interactive mode, it is ok to leave
369 it in IPython as such.
372 it in IPython as such.
370
373
371
374
372 2007-12-01 Robert Kern <robert.kern@gmail.com>
375 2007-12-01 Robert Kern <robert.kern@gmail.com>
373
376
374 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
377 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
375 inspect.findsource(). It can now find source lines inside zipped
378 inspect.findsource(). It can now find source lines inside zipped
376 packages.
379 packages.
377
380
378 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
381 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
379 in the frame's namespace before trusting the filename in the code object
382 in the frame's namespace before trusting the filename in the code object
380 which created the frame.
383 which created the frame.
381
384
382 2007-11-29 *** Released version 0.8.2
385 2007-11-29 *** Released version 0.8.2
383
386
384 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
387 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
385
388
386 * IPython/Logger.py (Logger.logstop): add a proper logstop()
389 * IPython/Logger.py (Logger.logstop): add a proper logstop()
387 method to fully stop the logger, along with a corresponding
390 method to fully stop the logger, along with a corresponding
388 %logstop magic for interactive use.
391 %logstop magic for interactive use.
389
392
390 * IPython/Extensions/ipy_host_completers.py: added new host
393 * IPython/Extensions/ipy_host_completers.py: added new host
391 completers functionality, contributed by Gael Pasgrimaud
394 completers functionality, contributed by Gael Pasgrimaud
392 <gawel-AT-afpy.org>.
395 <gawel-AT-afpy.org>.
393
396
394 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
397 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
395
398
396 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
399 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
397 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
400 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
398 options handling. Unicode fix in %whos (committed a while ago)
401 options handling. Unicode fix in %whos (committed a while ago)
399 was also contributed by Paul.
402 was also contributed by Paul.
400
403
401 2007-11-23 Darren Dale <darren.dale@cornell.edu>
404 2007-11-23 Darren Dale <darren.dale@cornell.edu>
402 * ipy_traits_completer.py: let traits_completer respect the user's
405 * ipy_traits_completer.py: let traits_completer respect the user's
403 readline_omit__names setting.
406 readline_omit__names setting.
404
407
405 2007-11-08 Ville Vainio <vivainio@gmail.com>
408 2007-11-08 Ville Vainio <vivainio@gmail.com>
406
409
407 * ipy_completers.py (import completer): assume 'xml' module exists.
410 * ipy_completers.py (import completer): assume 'xml' module exists.
408 Do not add every module twice anymore. Closes #196.
411 Do not add every module twice anymore. Closes #196.
409
412
410 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
413 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
411 completer that uses apt-cache to search for existing packages.
414 completer that uses apt-cache to search for existing packages.
412
415
413 2007-11-06 Ville Vainio <vivainio@gmail.com>
416 2007-11-06 Ville Vainio <vivainio@gmail.com>
414
417
415 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
418 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
416 true. Closes #194.
419 true. Closes #194.
417
420
418 2007-11-01 Brian Granger <ellisonbg@gmail.com>
421 2007-11-01 Brian Granger <ellisonbg@gmail.com>
419
422
420 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
423 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
421 working with OS X 10.5 libedit implementation of readline.
424 working with OS X 10.5 libedit implementation of readline.
422
425
423 2007-10-24 Ville Vainio <vivainio@gmail.com>
426 2007-10-24 Ville Vainio <vivainio@gmail.com>
424
427
425 * iplib.py(user_setup): To route around buggy installations where
428 * iplib.py(user_setup): To route around buggy installations where
426 UserConfig is not available, create a minimal _ipython.
429 UserConfig is not available, create a minimal _ipython.
427
430
428 * iplib.py: Unicode fixes from Jorgen.
431 * iplib.py: Unicode fixes from Jorgen.
429
432
430 * genutils.py: Slist now has new method 'fields()' for extraction of
433 * genutils.py: Slist now has new method 'fields()' for extraction of
431 whitespace-separated fields from line-oriented data.
434 whitespace-separated fields from line-oriented data.
432
435
433 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
436 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
434
437
435 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
438 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
436 when querying objects with no __class__ attribute (such as
439 when querying objects with no __class__ attribute (such as
437 f2py-generated modules).
440 f2py-generated modules).
438
441
439 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
442 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
440
443
441 * IPython/Magic.py (magic_time): track compilation time and report
444 * IPython/Magic.py (magic_time): track compilation time and report
442 it if longer than 0.1s (fix done to %time and %timeit). After a
445 it if longer than 0.1s (fix done to %time and %timeit). After a
443 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
446 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
444
447
445 2007-09-18 Ville Vainio <vivainio@gmail.com>
448 2007-09-18 Ville Vainio <vivainio@gmail.com>
446
449
447 * genutils.py(make_quoted_expr): Do not use Itpl, it does
450 * genutils.py(make_quoted_expr): Do not use Itpl, it does
448 not support unicode at the moment. Fixes (many) magic calls with
451 not support unicode at the moment. Fixes (many) magic calls with
449 special characters.
452 special characters.
450
453
451 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
454 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
452
455
453 * IPython/genutils.py (doctest_reload): expose the doctest
456 * IPython/genutils.py (doctest_reload): expose the doctest
454 reloader to the user so that people can easily reset doctest while
457 reloader to the user so that people can easily reset doctest while
455 using it interactively. Fixes a problem reported by Jorgen.
458 using it interactively. Fixes a problem reported by Jorgen.
456
459
457 * IPython/iplib.py (InteractiveShell.__init__): protect the
460 * IPython/iplib.py (InteractiveShell.__init__): protect the
458 FakeModule instances used for __main__ in %run calls from
461 FakeModule instances used for __main__ in %run calls from
459 deletion, so that user code defined in them isn't left with
462 deletion, so that user code defined in them isn't left with
460 dangling references due to the Python module deletion machinery.
463 dangling references due to the Python module deletion machinery.
461 This should fix the problems reported by Darren.
464 This should fix the problems reported by Darren.
462
465
463 2007-09-10 Darren Dale <dd55@cornell.edu>
466 2007-09-10 Darren Dale <dd55@cornell.edu>
464
467
465 * Cleanup of IPShellQt and IPShellQt4
468 * Cleanup of IPShellQt and IPShellQt4
466
469
467 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
470 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
468
471
469 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
472 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
470 doctest support.
473 doctest support.
471
474
472 * IPython/iplib.py (safe_execfile): minor docstring improvements.
475 * IPython/iplib.py (safe_execfile): minor docstring improvements.
473
476
474 2007-09-08 Ville Vainio <vivainio@gmail.com>
477 2007-09-08 Ville Vainio <vivainio@gmail.com>
475
478
476 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
479 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
477 directory, not the target directory.
480 directory, not the target directory.
478
481
479 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
482 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
480 exception that won't print the tracebacks. Switched many magics to
483 exception that won't print the tracebacks. Switched many magics to
481 raise them on error situations, also GetoptError is not printed
484 raise them on error situations, also GetoptError is not printed
482 anymore.
485 anymore.
483
486
484 2007-09-07 Ville Vainio <vivainio@gmail.com>
487 2007-09-07 Ville Vainio <vivainio@gmail.com>
485
488
486 * iplib.py: do not auto-alias "dir", it screws up other dir auto
489 * iplib.py: do not auto-alias "dir", it screws up other dir auto
487 aliases.
490 aliases.
488
491
489 * genutils.py: SList.grep() implemented.
492 * genutils.py: SList.grep() implemented.
490
493
491 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
494 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
492 for easy "out of the box" setup of several common editors, so that
495 for easy "out of the box" setup of several common editors, so that
493 e.g. '%edit os.path.isfile' will jump to the correct line
496 e.g. '%edit os.path.isfile' will jump to the correct line
494 automatically. Contributions for command lines of your favourite
497 automatically. Contributions for command lines of your favourite
495 editors welcome.
498 editors welcome.
496
499
497 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
500 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
498
501
499 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
502 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
500 preventing source display in certain cases. In reality I think
503 preventing source display in certain cases. In reality I think
501 the problem is with Ubuntu's Python build, but this change works
504 the problem is with Ubuntu's Python build, but this change works
502 around the issue in some cases (not in all, unfortunately). I'd
505 around the issue in some cases (not in all, unfortunately). I'd
503 filed a Python bug on this with more details, but in the change of
506 filed a Python bug on this with more details, but in the change of
504 bug trackers it seems to have been lost.
507 bug trackers it seems to have been lost.
505
508
506 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
509 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
507 not the same, it's not self-documenting, doesn't allow range
510 not the same, it's not self-documenting, doesn't allow range
508 selection, and sorts alphabetically instead of numerically.
511 selection, and sorts alphabetically instead of numerically.
509 (magic_r): restore %r. No, "up + enter. One char magic" is not
512 (magic_r): restore %r. No, "up + enter. One char magic" is not
510 the same thing, since %r takes parameters to allow fast retrieval
513 the same thing, since %r takes parameters to allow fast retrieval
511 of old commands. I've received emails from users who use this a
514 of old commands. I've received emails from users who use this a
512 LOT, so it stays.
515 LOT, so it stays.
513 (magic_automagic): restore %automagic. "use _ip.option.automagic"
516 (magic_automagic): restore %automagic. "use _ip.option.automagic"
514 is not a valid replacement b/c it doesn't provide an complete
517 is not a valid replacement b/c it doesn't provide an complete
515 explanation (which the automagic docstring does).
518 explanation (which the automagic docstring does).
516 (magic_autocall): restore %autocall, with improved docstring.
519 (magic_autocall): restore %autocall, with improved docstring.
517 Same argument as for others, "use _ip.options.autocall" is not a
520 Same argument as for others, "use _ip.options.autocall" is not a
518 valid replacement.
521 valid replacement.
519 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
522 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
520 tutorials and online docs.
523 tutorials and online docs.
521
524
522 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
525 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
523
526
524 * IPython/usage.py (quick_reference): mention magics in quickref,
527 * IPython/usage.py (quick_reference): mention magics in quickref,
525 modified main banner to mention %quickref.
528 modified main banner to mention %quickref.
526
529
527 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
530 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
528
531
529 2007-09-06 Ville Vainio <vivainio@gmail.com>
532 2007-09-06 Ville Vainio <vivainio@gmail.com>
530
533
531 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
534 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
532 Callable aliases now pass the _ip as first arg. This breaks
535 Callable aliases now pass the _ip as first arg. This breaks
533 compatibility with earlier 0.8.2.svn series! (though they should
536 compatibility with earlier 0.8.2.svn series! (though they should
534 not have been in use yet outside these few extensions)
537 not have been in use yet outside these few extensions)
535
538
536 2007-09-05 Ville Vainio <vivainio@gmail.com>
539 2007-09-05 Ville Vainio <vivainio@gmail.com>
537
540
538 * external/mglob.py: expand('dirname') => ['dirname'], instead
541 * external/mglob.py: expand('dirname') => ['dirname'], instead
539 of ['dirname/foo','dirname/bar', ...].
542 of ['dirname/foo','dirname/bar', ...].
540
543
541 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
544 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
542 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
545 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
543 is useful for others as well).
546 is useful for others as well).
544
547
545 * iplib.py: on callable aliases (as opposed to old style aliases),
548 * iplib.py: on callable aliases (as opposed to old style aliases),
546 do var_expand() immediately, and use make_quoted_expr instead
549 do var_expand() immediately, and use make_quoted_expr instead
547 of hardcoded r"""
550 of hardcoded r"""
548
551
549 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
552 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
550 if not available load ipy_fsops.py for cp, mv, etc. replacements
553 if not available load ipy_fsops.py for cp, mv, etc. replacements
551
554
552 * OInspect.py, ipy_which.py: improve %which and obj? for callable
555 * OInspect.py, ipy_which.py: improve %which and obj? for callable
553 aliases
556 aliases
554
557
555 2007-09-04 Ville Vainio <vivainio@gmail.com>
558 2007-09-04 Ville Vainio <vivainio@gmail.com>
556
559
557 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
560 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
558 Relicensed under BSD with the authors approval.
561 Relicensed under BSD with the authors approval.
559
562
560 * ipmaker.py, usage.py: Remove %magic from default banner, improve
563 * ipmaker.py, usage.py: Remove %magic from default banner, improve
561 %quickref
564 %quickref
562
565
563 2007-09-03 Ville Vainio <vivainio@gmail.com>
566 2007-09-03 Ville Vainio <vivainio@gmail.com>
564
567
565 * Magic.py: %time now passes expression through prefilter,
568 * Magic.py: %time now passes expression through prefilter,
566 allowing IPython syntax.
569 allowing IPython syntax.
567
570
568 2007-09-01 Ville Vainio <vivainio@gmail.com>
571 2007-09-01 Ville Vainio <vivainio@gmail.com>
569
572
570 * ipmaker.py: Always show full traceback when newstyle config fails
573 * ipmaker.py: Always show full traceback when newstyle config fails
571
574
572 2007-08-27 Ville Vainio <vivainio@gmail.com>
575 2007-08-27 Ville Vainio <vivainio@gmail.com>
573
576
574 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
577 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
575
578
576 2007-08-26 Ville Vainio <vivainio@gmail.com>
579 2007-08-26 Ville Vainio <vivainio@gmail.com>
577
580
578 * ipmaker.py: Command line args have the highest priority again
581 * ipmaker.py: Command line args have the highest priority again
579
582
580 * iplib.py, ipmaker.py: -i command line argument now behaves as in
583 * iplib.py, ipmaker.py: -i command line argument now behaves as in
581 normal python, i.e. leaves the IPython session running after -c
584 normal python, i.e. leaves the IPython session running after -c
582 command or running a batch file from command line.
585 command or running a batch file from command line.
583
586
584 2007-08-22 Ville Vainio <vivainio@gmail.com>
587 2007-08-22 Ville Vainio <vivainio@gmail.com>
585
588
586 * iplib.py: no extra empty (last) line in raw hist w/ multiline
589 * iplib.py: no extra empty (last) line in raw hist w/ multiline
587 statements
590 statements
588
591
589 * logger.py: Fix bug where blank lines in history were not
592 * logger.py: Fix bug where blank lines in history were not
590 added until AFTER adding the current line; translated and raw
593 added until AFTER adding the current line; translated and raw
591 history should finally be in sync with prompt now.
594 history should finally be in sync with prompt now.
592
595
593 * ipy_completers.py: quick_completer now makes it easy to create
596 * ipy_completers.py: quick_completer now makes it easy to create
594 trivial custom completers
597 trivial custom completers
595
598
596 * clearcmd.py: shadow history compression & erasing, fixed input hist
599 * clearcmd.py: shadow history compression & erasing, fixed input hist
597 clearing.
600 clearing.
598
601
599 * envpersist.py, history.py: %env (sh profile only), %hist completers
602 * envpersist.py, history.py: %env (sh profile only), %hist completers
600
603
601 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
604 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
602 term title now include the drive letter, and always use / instead of
605 term title now include the drive letter, and always use / instead of
603 os.sep (as per recommended approach for win32 ipython in general).
606 os.sep (as per recommended approach for win32 ipython in general).
604
607
605 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
608 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
606 plain python scripts from ipykit command line by running
609 plain python scripts from ipykit command line by running
607 "py myscript.py", even w/o installed python.
610 "py myscript.py", even w/o installed python.
608
611
609 2007-08-21 Ville Vainio <vivainio@gmail.com>
612 2007-08-21 Ville Vainio <vivainio@gmail.com>
610
613
611 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
614 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
612 (for backwards compatibility)
615 (for backwards compatibility)
613
616
614 * history.py: switch back to %hist -t from %hist -r as default.
617 * history.py: switch back to %hist -t from %hist -r as default.
615 At least until raw history is fixed for good.
618 At least until raw history is fixed for good.
616
619
617 2007-08-20 Ville Vainio <vivainio@gmail.com>
620 2007-08-20 Ville Vainio <vivainio@gmail.com>
618
621
619 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
622 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
620 locate alias redeclarations etc. Also, avoid handling
623 locate alias redeclarations etc. Also, avoid handling
621 _ip.IP.alias_table directly, prefer using _ip.defalias.
624 _ip.IP.alias_table directly, prefer using _ip.defalias.
622
625
623
626
624 2007-08-15 Ville Vainio <vivainio@gmail.com>
627 2007-08-15 Ville Vainio <vivainio@gmail.com>
625
628
626 * prefilter.py: ! is now always served first
629 * prefilter.py: ! is now always served first
627
630
628 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
631 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
629
632
630 * IPython/iplib.py (safe_execfile): fix the SystemExit
633 * IPython/iplib.py (safe_execfile): fix the SystemExit
631 auto-suppression code to work in Python2.4 (the internal structure
634 auto-suppression code to work in Python2.4 (the internal structure
632 of that exception changed and I'd only tested the code with 2.5).
635 of that exception changed and I'd only tested the code with 2.5).
633 Bug reported by a SciPy attendee.
636 Bug reported by a SciPy attendee.
634
637
635 2007-08-13 Ville Vainio <vivainio@gmail.com>
638 2007-08-13 Ville Vainio <vivainio@gmail.com>
636
639
637 * prefilter.py: reverted !c:/bin/foo fix, made % in
640 * prefilter.py: reverted !c:/bin/foo fix, made % in
638 multiline specials work again
641 multiline specials work again
639
642
640 2007-08-13 Ville Vainio <vivainio@gmail.com>
643 2007-08-13 Ville Vainio <vivainio@gmail.com>
641
644
642 * prefilter.py: Take more care to special-case !, so that
645 * prefilter.py: Take more care to special-case !, so that
643 !c:/bin/foo.exe works.
646 !c:/bin/foo.exe works.
644
647
645 * setup.py: if we are building eggs, strip all docs and
648 * setup.py: if we are building eggs, strip all docs and
646 examples (it doesn't make sense to bytecompile examples,
649 examples (it doesn't make sense to bytecompile examples,
647 and docs would be in an awkward place anyway).
650 and docs would be in an awkward place anyway).
648
651
649 * Ryan Krauss' patch fixes start menu shortcuts when IPython
652 * Ryan Krauss' patch fixes start menu shortcuts when IPython
650 is installed into a directory that has spaces in the name.
653 is installed into a directory that has spaces in the name.
651
654
652 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
655 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
653
656
654 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
657 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
655 doctest profile and %doctest_mode, so they actually generate the
658 doctest profile and %doctest_mode, so they actually generate the
656 blank lines needed by doctest to separate individual tests.
659 blank lines needed by doctest to separate individual tests.
657
660
658 * IPython/iplib.py (safe_execfile): modify so that running code
661 * IPython/iplib.py (safe_execfile): modify so that running code
659 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
662 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
660 doesn't get a printed traceback. Any other value in sys.exit(),
663 doesn't get a printed traceback. Any other value in sys.exit(),
661 including the empty call, still generates a traceback. This
664 including the empty call, still generates a traceback. This
662 enables use of %run without having to pass '-e' for codes that
665 enables use of %run without having to pass '-e' for codes that
663 correctly set the exit status flag.
666 correctly set the exit status flag.
664
667
665 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
668 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
666
669
667 * IPython/iplib.py (InteractiveShell.post_config_initialization):
670 * IPython/iplib.py (InteractiveShell.post_config_initialization):
668 fix problems with doctests failing when run inside IPython due to
671 fix problems with doctests failing when run inside IPython due to
669 IPython's modifications of sys.displayhook.
672 IPython's modifications of sys.displayhook.
670
673
671 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
674 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
672
675
673 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
676 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
674 a string with names.
677 a string with names.
675
678
676 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
679 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
677
680
678 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
681 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
679 magic to toggle on/off the doctest pasting support without having
682 magic to toggle on/off the doctest pasting support without having
680 to leave a session to switch to a separate profile.
683 to leave a session to switch to a separate profile.
681
684
682 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
685 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
683
686
684 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
687 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
685 introduce a blank line between inputs, to conform to doctest
688 introduce a blank line between inputs, to conform to doctest
686 requirements.
689 requirements.
687
690
688 * IPython/OInspect.py (Inspector.pinfo): fix another part where
691 * IPython/OInspect.py (Inspector.pinfo): fix another part where
689 auto-generated docstrings for new-style classes were showing up.
692 auto-generated docstrings for new-style classes were showing up.
690
693
691 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
694 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
692
695
693 * api_changes: Add new file to track backward-incompatible
696 * api_changes: Add new file to track backward-incompatible
694 user-visible changes.
697 user-visible changes.
695
698
696 2007-08-06 Ville Vainio <vivainio@gmail.com>
699 2007-08-06 Ville Vainio <vivainio@gmail.com>
697
700
698 * ipmaker.py: fix bug where user_config_ns didn't exist at all
701 * ipmaker.py: fix bug where user_config_ns didn't exist at all
699 before all the config files were handled.
702 before all the config files were handled.
700
703
701 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
704 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
702
705
703 * IPython/irunner.py (RunnerFactory): Add new factory class for
706 * IPython/irunner.py (RunnerFactory): Add new factory class for
704 creating reusable runners based on filenames.
707 creating reusable runners based on filenames.
705
708
706 * IPython/Extensions/ipy_profile_doctest.py: New profile for
709 * IPython/Extensions/ipy_profile_doctest.py: New profile for
707 doctest support. It sets prompts/exceptions as similar to
710 doctest support. It sets prompts/exceptions as similar to
708 standard Python as possible, so that ipython sessions in this
711 standard Python as possible, so that ipython sessions in this
709 profile can be easily pasted as doctests with minimal
712 profile can be easily pasted as doctests with minimal
710 modifications. It also enables pasting of doctests from external
713 modifications. It also enables pasting of doctests from external
711 sources (even if they have leading whitespace), so that you can
714 sources (even if they have leading whitespace), so that you can
712 rerun doctests from existing sources.
715 rerun doctests from existing sources.
713
716
714 * IPython/iplib.py (_prefilter): fix a buglet where after entering
717 * IPython/iplib.py (_prefilter): fix a buglet where after entering
715 some whitespace, the prompt would become a continuation prompt
718 some whitespace, the prompt would become a continuation prompt
716 with no way of exiting it other than Ctrl-C. This fix brings us
719 with no way of exiting it other than Ctrl-C. This fix brings us
717 into conformity with how the default python prompt works.
720 into conformity with how the default python prompt works.
718
721
719 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
722 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
720 Add support for pasting not only lines that start with '>>>', but
723 Add support for pasting not only lines that start with '>>>', but
721 also with ' >>>'. That is, arbitrary whitespace can now precede
724 also with ' >>>'. That is, arbitrary whitespace can now precede
722 the prompts. This makes the system useful for pasting doctests
725 the prompts. This makes the system useful for pasting doctests
723 from docstrings back into a normal session.
726 from docstrings back into a normal session.
724
727
725 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
728 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
726
729
727 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
730 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
728 r1357, which had killed multiple invocations of an embedded
731 r1357, which had killed multiple invocations of an embedded
729 ipython (this means that example-embed has been broken for over 1
732 ipython (this means that example-embed has been broken for over 1
730 year!!!). Rather than possibly breaking the batch stuff for which
733 year!!!). Rather than possibly breaking the batch stuff for which
731 the code in iplib.py/interact was introduced, I worked around the
734 the code in iplib.py/interact was introduced, I worked around the
732 problem in the embedding class in Shell.py. We really need a
735 problem in the embedding class in Shell.py. We really need a
733 bloody test suite for this code, I'm sick of finding stuff that
736 bloody test suite for this code, I'm sick of finding stuff that
734 used to work breaking left and right every time I use an old
737 used to work breaking left and right every time I use an old
735 feature I hadn't touched in a few months.
738 feature I hadn't touched in a few months.
736 (kill_embedded): Add a new magic that only shows up in embedded
739 (kill_embedded): Add a new magic that only shows up in embedded
737 mode, to allow users to permanently deactivate an embedded instance.
740 mode, to allow users to permanently deactivate an embedded instance.
738
741
739 2007-08-01 Ville Vainio <vivainio@gmail.com>
742 2007-08-01 Ville Vainio <vivainio@gmail.com>
740
743
741 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
744 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
742 history gets out of sync on runlines (e.g. when running macros).
745 history gets out of sync on runlines (e.g. when running macros).
743
746
744 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
747 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
745
748
746 * IPython/Magic.py (magic_colors): fix win32-related error message
749 * IPython/Magic.py (magic_colors): fix win32-related error message
747 that could appear under *nix when readline was missing. Patch by
750 that could appear under *nix when readline was missing. Patch by
748 Scott Jackson, closes #175.
751 Scott Jackson, closes #175.
749
752
750 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
753 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
751
754
752 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
755 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
753 completer that it traits-aware, so that traits objects don't show
756 completer that it traits-aware, so that traits objects don't show
754 all of their internal attributes all the time.
757 all of their internal attributes all the time.
755
758
756 * IPython/genutils.py (dir2): moved this code from inside
759 * IPython/genutils.py (dir2): moved this code from inside
757 completer.py to expose it publicly, so I could use it in the
760 completer.py to expose it publicly, so I could use it in the
758 wildcards bugfix.
761 wildcards bugfix.
759
762
760 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
763 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
761 Stefan with Traits.
764 Stefan with Traits.
762
765
763 * IPython/completer.py (Completer.attr_matches): change internal
766 * IPython/completer.py (Completer.attr_matches): change internal
764 var name from 'object' to 'obj', since 'object' is now a builtin
767 var name from 'object' to 'obj', since 'object' is now a builtin
765 and this can lead to weird bugs if reusing this code elsewhere.
768 and this can lead to weird bugs if reusing this code elsewhere.
766
769
767 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
770 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
768
771
769 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
772 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
770 'foo?' and update the code to prevent printing of default
773 'foo?' and update the code to prevent printing of default
771 docstrings that started appearing after I added support for
774 docstrings that started appearing after I added support for
772 new-style classes. The approach I'm using isn't ideal (I just
775 new-style classes. The approach I'm using isn't ideal (I just
773 special-case those strings) but I'm not sure how to more robustly
776 special-case those strings) but I'm not sure how to more robustly
774 differentiate between truly user-written strings and Python's
777 differentiate between truly user-written strings and Python's
775 automatic ones.
778 automatic ones.
776
779
777 2007-07-09 Ville Vainio <vivainio@gmail.com>
780 2007-07-09 Ville Vainio <vivainio@gmail.com>
778
781
779 * completer.py: Applied Matthew Neeley's patch:
782 * completer.py: Applied Matthew Neeley's patch:
780 Dynamic attributes from trait_names and _getAttributeNames are added
783 Dynamic attributes from trait_names and _getAttributeNames are added
781 to the list of tab completions, but when this happens, the attribute
784 to the list of tab completions, but when this happens, the attribute
782 list is turned into a set, so the attributes are unordered when
785 list is turned into a set, so the attributes are unordered when
783 printed, which makes it hard to find the right completion. This patch
786 printed, which makes it hard to find the right completion. This patch
784 turns this set back into a list and sort it.
787 turns this set back into a list and sort it.
785
788
786 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
789 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
787
790
788 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
791 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
789 classes in various inspector functions.
792 classes in various inspector functions.
790
793
791 2007-06-28 Ville Vainio <vivainio@gmail.com>
794 2007-06-28 Ville Vainio <vivainio@gmail.com>
792
795
793 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
796 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
794 Implement "shadow" namespace, and callable aliases that reside there.
797 Implement "shadow" namespace, and callable aliases that reside there.
795 Use them by:
798 Use them by:
796
799
797 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
800 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
798
801
799 foo hello world
802 foo hello world
800 (gets translated to:)
803 (gets translated to:)
801 _sh.foo(r"""hello world""")
804 _sh.foo(r"""hello world""")
802
805
803 In practice, this kind of alias can take the role of a magic function
806 In practice, this kind of alias can take the role of a magic function
804
807
805 * New generic inspect_object, called on obj? and obj??
808 * New generic inspect_object, called on obj? and obj??
806
809
807 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
810 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
808
811
809 * IPython/ultraTB.py (findsource): fix a problem with
812 * IPython/ultraTB.py (findsource): fix a problem with
810 inspect.getfile that can cause crashes during traceback construction.
813 inspect.getfile that can cause crashes during traceback construction.
811
814
812 2007-06-14 Ville Vainio <vivainio@gmail.com>
815 2007-06-14 Ville Vainio <vivainio@gmail.com>
813
816
814 * iplib.py (handle_auto): Try to use ascii for printing "--->"
817 * iplib.py (handle_auto): Try to use ascii for printing "--->"
815 autocall rewrite indication, becausesometimes unicode fails to print
818 autocall rewrite indication, becausesometimes unicode fails to print
816 properly (and you get ' - - - '). Use plain uncoloured ---> for
819 properly (and you get ' - - - '). Use plain uncoloured ---> for
817 unicode.
820 unicode.
818
821
819 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
822 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
820
823
821 . pickleshare 'hash' commands (hget, hset, hcompress,
824 . pickleshare 'hash' commands (hget, hset, hcompress,
822 hdict) for efficient shadow history storage.
825 hdict) for efficient shadow history storage.
823
826
824 2007-06-13 Ville Vainio <vivainio@gmail.com>
827 2007-06-13 Ville Vainio <vivainio@gmail.com>
825
828
826 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
829 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
827 Added kw arg 'interactive', tell whether vars should be visible
830 Added kw arg 'interactive', tell whether vars should be visible
828 with %whos.
831 with %whos.
829
832
830 2007-06-11 Ville Vainio <vivainio@gmail.com>
833 2007-06-11 Ville Vainio <vivainio@gmail.com>
831
834
832 * pspersistence.py, Magic.py, iplib.py: directory history now saved
835 * pspersistence.py, Magic.py, iplib.py: directory history now saved
833 to db
836 to db
834
837
835 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
838 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
836 Also, it exits IPython immediately after evaluating the command (just like
839 Also, it exits IPython immediately after evaluating the command (just like
837 std python)
840 std python)
838
841
839 2007-06-05 Walter Doerwald <walter@livinglogic.de>
842 2007-06-05 Walter Doerwald <walter@livinglogic.de>
840
843
841 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
844 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
842 Python string and captures the output. (Idea and original patch by
845 Python string and captures the output. (Idea and original patch by
843 Stefan van der Walt)
846 Stefan van der Walt)
844
847
845 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
848 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
846
849
847 * IPython/ultraTB.py (VerboseTB.text): update printing of
850 * IPython/ultraTB.py (VerboseTB.text): update printing of
848 exception types for Python 2.5 (now all exceptions in the stdlib
851 exception types for Python 2.5 (now all exceptions in the stdlib
849 are new-style classes).
852 are new-style classes).
850
853
851 2007-05-31 Walter Doerwald <walter@livinglogic.de>
854 2007-05-31 Walter Doerwald <walter@livinglogic.de>
852
855
853 * IPython/Extensions/igrid.py: Add new commands refresh and
856 * IPython/Extensions/igrid.py: Add new commands refresh and
854 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
857 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
855 the iterator once (refresh) or after every x seconds (refresh_timer).
858 the iterator once (refresh) or after every x seconds (refresh_timer).
856 Add a working implementation of "searchexpression", where the text
859 Add a working implementation of "searchexpression", where the text
857 entered is not the text to search for, but an expression that must
860 entered is not the text to search for, but an expression that must
858 be true. Added display of shortcuts to the menu. Added commands "pickinput"
861 be true. Added display of shortcuts to the menu. Added commands "pickinput"
859 and "pickinputattr" that put the object or attribute under the cursor
862 and "pickinputattr" that put the object or attribute under the cursor
860 in the input line. Split the statusbar to be able to display the currently
863 in the input line. Split the statusbar to be able to display the currently
861 active refresh interval. (Patch by Nik Tautenhahn)
864 active refresh interval. (Patch by Nik Tautenhahn)
862
865
863 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
866 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
864
867
865 * fixing set_term_title to use ctypes as default
868 * fixing set_term_title to use ctypes as default
866
869
867 * fixing set_term_title fallback to work when curent dir
870 * fixing set_term_title fallback to work when curent dir
868 is on a windows network share
871 is on a windows network share
869
872
870 2007-05-28 Ville Vainio <vivainio@gmail.com>
873 2007-05-28 Ville Vainio <vivainio@gmail.com>
871
874
872 * %cpaste: strip + with > from left (diffs).
875 * %cpaste: strip + with > from left (diffs).
873
876
874 * iplib.py: Fix crash when readline not installed
877 * iplib.py: Fix crash when readline not installed
875
878
876 2007-05-26 Ville Vainio <vivainio@gmail.com>
879 2007-05-26 Ville Vainio <vivainio@gmail.com>
877
880
878 * generics.py: introduce easy to extend result_display generic
881 * generics.py: introduce easy to extend result_display generic
879 function (using simplegeneric.py).
882 function (using simplegeneric.py).
880
883
881 * Fixed the append functionality of %set.
884 * Fixed the append functionality of %set.
882
885
883 2007-05-25 Ville Vainio <vivainio@gmail.com>
886 2007-05-25 Ville Vainio <vivainio@gmail.com>
884
887
885 * New magic: %rep (fetch / run old commands from history)
888 * New magic: %rep (fetch / run old commands from history)
886
889
887 * New extension: mglob (%mglob magic), for powerful glob / find /filter
890 * New extension: mglob (%mglob magic), for powerful glob / find /filter
888 like functionality
891 like functionality
889
892
890 % maghistory.py: %hist -g PATTERM greps the history for pattern
893 % maghistory.py: %hist -g PATTERM greps the history for pattern
891
894
892 2007-05-24 Walter Doerwald <walter@livinglogic.de>
895 2007-05-24 Walter Doerwald <walter@livinglogic.de>
893
896
894 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
897 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
895 browse the IPython input history
898 browse the IPython input history
896
899
897 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
900 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
898 (mapped to "i") can be used to put the object under the curser in the input
901 (mapped to "i") can be used to put the object under the curser in the input
899 line. pickinputattr (mapped to "I") does the same for the attribute under
902 line. pickinputattr (mapped to "I") does the same for the attribute under
900 the cursor.
903 the cursor.
901
904
902 2007-05-24 Ville Vainio <vivainio@gmail.com>
905 2007-05-24 Ville Vainio <vivainio@gmail.com>
903
906
904 * Grand magic cleansing (changeset [2380]):
907 * Grand magic cleansing (changeset [2380]):
905
908
906 * Introduce ipy_legacy.py where the following magics were
909 * Introduce ipy_legacy.py where the following magics were
907 moved:
910 moved:
908
911
909 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
912 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
910
913
911 If you need them, either use default profile or "import ipy_legacy"
914 If you need them, either use default profile or "import ipy_legacy"
912 in your ipy_user_conf.py
915 in your ipy_user_conf.py
913
916
914 * Move sh and scipy profile to Extensions from UserConfig. this implies
917 * Move sh and scipy profile to Extensions from UserConfig. this implies
915 you should not edit them, but you don't need to run %upgrade when
918 you should not edit them, but you don't need to run %upgrade when
916 upgrading IPython anymore.
919 upgrading IPython anymore.
917
920
918 * %hist/%history now operates in "raw" mode by default. To get the old
921 * %hist/%history now operates in "raw" mode by default. To get the old
919 behaviour, run '%hist -n' (native mode).
922 behaviour, run '%hist -n' (native mode).
920
923
921 * split ipy_stock_completers.py to ipy_stock_completers.py and
924 * split ipy_stock_completers.py to ipy_stock_completers.py and
922 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
925 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
923 installed as default.
926 installed as default.
924
927
925 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
928 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
926 handling.
929 handling.
927
930
928 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
931 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
929 input if readline is available.
932 input if readline is available.
930
933
931 2007-05-23 Ville Vainio <vivainio@gmail.com>
934 2007-05-23 Ville Vainio <vivainio@gmail.com>
932
935
933 * macro.py: %store uses __getstate__ properly
936 * macro.py: %store uses __getstate__ properly
934
937
935 * exesetup.py: added new setup script for creating
938 * exesetup.py: added new setup script for creating
936 standalone IPython executables with py2exe (i.e.
939 standalone IPython executables with py2exe (i.e.
937 no python installation required).
940 no python installation required).
938
941
939 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
942 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
940 its place.
943 its place.
941
944
942 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
945 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
943
946
944 2007-05-21 Ville Vainio <vivainio@gmail.com>
947 2007-05-21 Ville Vainio <vivainio@gmail.com>
945
948
946 * platutil_win32.py (set_term_title): handle
949 * platutil_win32.py (set_term_title): handle
947 failure of 'title' system call properly.
950 failure of 'title' system call properly.
948
951
949 2007-05-17 Walter Doerwald <walter@livinglogic.de>
952 2007-05-17 Walter Doerwald <walter@livinglogic.de>
950
953
951 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
954 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
952 (Bug detected by Paul Mueller).
955 (Bug detected by Paul Mueller).
953
956
954 2007-05-16 Ville Vainio <vivainio@gmail.com>
957 2007-05-16 Ville Vainio <vivainio@gmail.com>
955
958
956 * ipy_profile_sci.py, ipython_win_post_install.py: Create
959 * ipy_profile_sci.py, ipython_win_post_install.py: Create
957 new "sci" profile, effectively a modern version of the old
960 new "sci" profile, effectively a modern version of the old
958 "scipy" profile (which is now slated for deprecation).
961 "scipy" profile (which is now slated for deprecation).
959
962
960 2007-05-15 Ville Vainio <vivainio@gmail.com>
963 2007-05-15 Ville Vainio <vivainio@gmail.com>
961
964
962 * pycolorize.py, pycolor.1: Paul Mueller's patches that
965 * pycolorize.py, pycolor.1: Paul Mueller's patches that
963 make pycolorize read input from stdin when run without arguments.
966 make pycolorize read input from stdin when run without arguments.
964
967
965 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
968 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
966
969
967 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
970 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
968 it in sh profile (instead of ipy_system_conf.py).
971 it in sh profile (instead of ipy_system_conf.py).
969
972
970 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
973 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
971 aliases are now lower case on windows (MyCommand.exe => mycommand).
974 aliases are now lower case on windows (MyCommand.exe => mycommand).
972
975
973 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
976 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
974 Macros are now callable objects that inherit from ipapi.IPyAutocall,
977 Macros are now callable objects that inherit from ipapi.IPyAutocall,
975 i.e. get autocalled regardless of system autocall setting.
978 i.e. get autocalled regardless of system autocall setting.
976
979
977 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
980 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
978
981
979 * IPython/rlineimpl.py: check for clear_history in readline and
982 * IPython/rlineimpl.py: check for clear_history in readline and
980 make it a dummy no-op if not available. This function isn't
983 make it a dummy no-op if not available. This function isn't
981 guaranteed to be in the API and appeared in Python 2.4, so we need
984 guaranteed to be in the API and appeared in Python 2.4, so we need
982 to check it ourselves. Also, clean up this file quite a bit.
985 to check it ourselves. Also, clean up this file quite a bit.
983
986
984 * ipython.1: update man page and full manual with information
987 * ipython.1: update man page and full manual with information
985 about threads (remove outdated warning). Closes #151.
988 about threads (remove outdated warning). Closes #151.
986
989
987 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
990 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
988
991
989 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
992 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
990 in trunk (note that this made it into the 0.8.1 release already,
993 in trunk (note that this made it into the 0.8.1 release already,
991 but the changelogs didn't get coordinated). Many thanks to Gael
994 but the changelogs didn't get coordinated). Many thanks to Gael
992 Varoquaux <gael.varoquaux-AT-normalesup.org>
995 Varoquaux <gael.varoquaux-AT-normalesup.org>
993
996
994 2007-05-09 *** Released version 0.8.1
997 2007-05-09 *** Released version 0.8.1
995
998
996 2007-05-10 Walter Doerwald <walter@livinglogic.de>
999 2007-05-10 Walter Doerwald <walter@livinglogic.de>
997
1000
998 * IPython/Extensions/igrid.py: Incorporate html help into
1001 * IPython/Extensions/igrid.py: Incorporate html help into
999 the module, so we don't have to search for the file.
1002 the module, so we don't have to search for the file.
1000
1003
1001 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1004 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1002
1005
1003 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1006 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1004
1007
1005 2007-04-30 Ville Vainio <vivainio@gmail.com>
1008 2007-04-30 Ville Vainio <vivainio@gmail.com>
1006
1009
1007 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1010 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1008 user has illegal (non-ascii) home directory name
1011 user has illegal (non-ascii) home directory name
1009
1012
1010 2007-04-27 Ville Vainio <vivainio@gmail.com>
1013 2007-04-27 Ville Vainio <vivainio@gmail.com>
1011
1014
1012 * platutils_win32.py: implement set_term_title for windows
1015 * platutils_win32.py: implement set_term_title for windows
1013
1016
1014 * Update version number
1017 * Update version number
1015
1018
1016 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1019 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1017
1020
1018 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1021 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1019
1022
1020 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1023 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1021 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1024 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1022 bug discovered by Ville).
1025 bug discovered by Ville).
1023
1026
1024 2007-04-26 Ville Vainio <vivainio@gmail.com>
1027 2007-04-26 Ville Vainio <vivainio@gmail.com>
1025
1028
1026 * Extensions/ipy_completers.py: Olivier's module completer now
1029 * Extensions/ipy_completers.py: Olivier's module completer now
1027 saves the list of root modules if it takes > 4 secs on the first run.
1030 saves the list of root modules if it takes > 4 secs on the first run.
1028
1031
1029 * Magic.py (%rehashx): %rehashx now clears the completer cache
1032 * Magic.py (%rehashx): %rehashx now clears the completer cache
1030
1033
1031
1034
1032 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1035 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1033
1036
1034 * ipython.el: fix incorrect color scheme, reported by Stefan.
1037 * ipython.el: fix incorrect color scheme, reported by Stefan.
1035 Closes #149.
1038 Closes #149.
1036
1039
1037 * IPython/PyColorize.py (Parser.format2): fix state-handling
1040 * IPython/PyColorize.py (Parser.format2): fix state-handling
1038 logic. I still don't like how that code handles state, but at
1041 logic. I still don't like how that code handles state, but at
1039 least now it should be correct, if inelegant. Closes #146.
1042 least now it should be correct, if inelegant. Closes #146.
1040
1043
1041 2007-04-25 Ville Vainio <vivainio@gmail.com>
1044 2007-04-25 Ville Vainio <vivainio@gmail.com>
1042
1045
1043 * Extensions/ipy_which.py: added extension for %which magic, works
1046 * Extensions/ipy_which.py: added extension for %which magic, works
1044 a lot like unix 'which' but also finds and expands aliases, and
1047 a lot like unix 'which' but also finds and expands aliases, and
1045 allows wildcards.
1048 allows wildcards.
1046
1049
1047 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1050 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1048 as opposed to returning nothing.
1051 as opposed to returning nothing.
1049
1052
1050 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1053 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1051 ipy_stock_completers on default profile, do import on sh profile.
1054 ipy_stock_completers on default profile, do import on sh profile.
1052
1055
1053 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1056 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1054
1057
1055 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1058 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1056 like ipython.py foo.py which raised a IndexError.
1059 like ipython.py foo.py which raised a IndexError.
1057
1060
1058 2007-04-21 Ville Vainio <vivainio@gmail.com>
1061 2007-04-21 Ville Vainio <vivainio@gmail.com>
1059
1062
1060 * Extensions/ipy_extutil.py: added extension to manage other ipython
1063 * Extensions/ipy_extutil.py: added extension to manage other ipython
1061 extensions. Now only supports 'ls' == list extensions.
1064 extensions. Now only supports 'ls' == list extensions.
1062
1065
1063 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1066 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1064
1067
1065 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1068 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1066 would prevent use of the exception system outside of a running
1069 would prevent use of the exception system outside of a running
1067 IPython instance.
1070 IPython instance.
1068
1071
1069 2007-04-20 Ville Vainio <vivainio@gmail.com>
1072 2007-04-20 Ville Vainio <vivainio@gmail.com>
1070
1073
1071 * Extensions/ipy_render.py: added extension for easy
1074 * Extensions/ipy_render.py: added extension for easy
1072 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1075 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1073 'Iptl' template notation,
1076 'Iptl' template notation,
1074
1077
1075 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1078 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1076 safer & faster 'import' completer.
1079 safer & faster 'import' completer.
1077
1080
1078 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1081 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1079 and _ip.defalias(name, command).
1082 and _ip.defalias(name, command).
1080
1083
1081 * Extensions/ipy_exportdb.py: New extension for exporting all the
1084 * Extensions/ipy_exportdb.py: New extension for exporting all the
1082 %store'd data in a portable format (normal ipapi calls like
1085 %store'd data in a portable format (normal ipapi calls like
1083 defmacro() etc.)
1086 defmacro() etc.)
1084
1087
1085 2007-04-19 Ville Vainio <vivainio@gmail.com>
1088 2007-04-19 Ville Vainio <vivainio@gmail.com>
1086
1089
1087 * upgrade_dir.py: skip junk files like *.pyc
1090 * upgrade_dir.py: skip junk files like *.pyc
1088
1091
1089 * Release.py: version number to 0.8.1
1092 * Release.py: version number to 0.8.1
1090
1093
1091 2007-04-18 Ville Vainio <vivainio@gmail.com>
1094 2007-04-18 Ville Vainio <vivainio@gmail.com>
1092
1095
1093 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1096 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1094 and later on win32.
1097 and later on win32.
1095
1098
1096 2007-04-16 Ville Vainio <vivainio@gmail.com>
1099 2007-04-16 Ville Vainio <vivainio@gmail.com>
1097
1100
1098 * iplib.py (showtraceback): Do not crash when running w/o readline.
1101 * iplib.py (showtraceback): Do not crash when running w/o readline.
1099
1102
1100 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1103 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1101
1104
1102 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1105 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1103 sorted (case sensitive with files and dirs mixed).
1106 sorted (case sensitive with files and dirs mixed).
1104
1107
1105 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1108 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1106
1109
1107 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1110 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1108
1111
1109 2007-04-10 *** Released version 0.8.0
1112 2007-04-10 *** Released version 0.8.0
1110
1113
1111 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1114 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1112
1115
1113 * Tag 0.8.0 for release.
1116 * Tag 0.8.0 for release.
1114
1117
1115 * IPython/iplib.py (reloadhist): add API function to cleanly
1118 * IPython/iplib.py (reloadhist): add API function to cleanly
1116 reload the readline history, which was growing inappropriately on
1119 reload the readline history, which was growing inappropriately on
1117 every %run call.
1120 every %run call.
1118
1121
1119 * win32_manual_post_install.py (run): apply last part of Nicolas
1122 * win32_manual_post_install.py (run): apply last part of Nicolas
1120 Pernetty's patch (I'd accidentally applied it in a different
1123 Pernetty's patch (I'd accidentally applied it in a different
1121 directory and this particular file didn't get patched).
1124 directory and this particular file didn't get patched).
1122
1125
1123 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1126 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1124
1127
1125 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1128 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1126 find the main thread id and use the proper API call. Thanks to
1129 find the main thread id and use the proper API call. Thanks to
1127 Stefan for the fix.
1130 Stefan for the fix.
1128
1131
1129 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1132 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1130 unit tests to reflect fixed ticket #52, and add more tests sent by
1133 unit tests to reflect fixed ticket #52, and add more tests sent by
1131 him.
1134 him.
1132
1135
1133 * IPython/iplib.py (raw_input): restore the readline completer
1136 * IPython/iplib.py (raw_input): restore the readline completer
1134 state on every input, in case third-party code messed it up.
1137 state on every input, in case third-party code messed it up.
1135 (_prefilter): revert recent addition of early-escape checks which
1138 (_prefilter): revert recent addition of early-escape checks which
1136 prevent many valid alias calls from working.
1139 prevent many valid alias calls from working.
1137
1140
1138 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1141 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1139 flag for sigint handler so we don't run a full signal() call on
1142 flag for sigint handler so we don't run a full signal() call on
1140 each runcode access.
1143 each runcode access.
1141
1144
1142 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1145 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1143 message.
1146 message.
1144
1147
1145 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1148 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1146
1149
1147 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1150 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1148 asynchronous exceptions working, i.e., Ctrl-C can actually
1151 asynchronous exceptions working, i.e., Ctrl-C can actually
1149 interrupt long-running code in the multithreaded shells.
1152 interrupt long-running code in the multithreaded shells.
1150
1153
1151 This is using Tomer Filiba's great ctypes-based trick:
1154 This is using Tomer Filiba's great ctypes-based trick:
1152 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1155 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1153 this in the past, but hadn't been able to make it work before. So
1156 this in the past, but hadn't been able to make it work before. So
1154 far it looks like it's actually running, but this needs more
1157 far it looks like it's actually running, but this needs more
1155 testing. If it really works, I'll be *very* happy, and we'll owe
1158 testing. If it really works, I'll be *very* happy, and we'll owe
1156 a huge thank you to Tomer. My current implementation is ugly,
1159 a huge thank you to Tomer. My current implementation is ugly,
1157 hackish and uses nasty globals, but I don't want to try and clean
1160 hackish and uses nasty globals, but I don't want to try and clean
1158 anything up until we know if it actually works.
1161 anything up until we know if it actually works.
1159
1162
1160 NOTE: this feature needs ctypes to work. ctypes is included in
1163 NOTE: this feature needs ctypes to work. ctypes is included in
1161 Python2.5, but 2.4 users will need to manually install it. This
1164 Python2.5, but 2.4 users will need to manually install it. This
1162 feature makes multi-threaded shells so much more usable that it's
1165 feature makes multi-threaded shells so much more usable that it's
1163 a minor price to pay (ctypes is very easy to install, already a
1166 a minor price to pay (ctypes is very easy to install, already a
1164 requirement for win32 and available in major linux distros).
1167 requirement for win32 and available in major linux distros).
1165
1168
1166 2007-04-04 Ville Vainio <vivainio@gmail.com>
1169 2007-04-04 Ville Vainio <vivainio@gmail.com>
1167
1170
1168 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1171 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1169 Moved implementations of 'bundled' completers to ipy_completers.py,
1172 Moved implementations of 'bundled' completers to ipy_completers.py,
1170 they are only enabled in ipy_stock_completers.py.
1173 they are only enabled in ipy_stock_completers.py.
1171
1174
1172 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1175 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1173
1176
1174 * IPython/PyColorize.py (Parser.format2): Fix identation of
1177 * IPython/PyColorize.py (Parser.format2): Fix identation of
1175 colorzied output and return early if color scheme is NoColor, to
1178 colorzied output and return early if color scheme is NoColor, to
1176 avoid unnecessary and expensive tokenization. Closes #131.
1179 avoid unnecessary and expensive tokenization. Closes #131.
1177
1180
1178 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1181 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1179
1182
1180 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1183 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1181 has a critical bug (a missing import that makes post-mortem not
1184 has a critical bug (a missing import that makes post-mortem not
1182 work at all). Unfortunately as of this time, this is the version
1185 work at all). Unfortunately as of this time, this is the version
1183 shipped with Ubuntu Edgy, so quite a few people have this one. I
1186 shipped with Ubuntu Edgy, so quite a few people have this one. I
1184 hope Edgy will update to a more recent package.
1187 hope Edgy will update to a more recent package.
1185
1188
1186 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1189 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1187
1190
1188 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1191 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1189 set by Stefan (only the first part had been applied before).
1192 set by Stefan (only the first part had been applied before).
1190
1193
1191 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1194 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1192 remove usage of the dangerous pkgutil.walk_packages(). See
1195 remove usage of the dangerous pkgutil.walk_packages(). See
1193 details in comments left in the code.
1196 details in comments left in the code.
1194
1197
1195 * IPython/Magic.py (magic_whos): add support for numpy arrays
1198 * IPython/Magic.py (magic_whos): add support for numpy arrays
1196 similar to what we had for Numeric.
1199 similar to what we had for Numeric.
1197
1200
1198 * IPython/completer.py (IPCompleter.complete): extend the
1201 * IPython/completer.py (IPCompleter.complete): extend the
1199 complete() call API to support completions by other mechanisms
1202 complete() call API to support completions by other mechanisms
1200 than readline. Closes #109.
1203 than readline. Closes #109.
1201
1204
1202 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1205 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1203 protect against a bug in Python's execfile(). Closes #123.
1206 protect against a bug in Python's execfile(). Closes #123.
1204
1207
1205 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1208 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1206
1209
1207 * IPython/iplib.py (split_user_input): ensure that when splitting
1210 * IPython/iplib.py (split_user_input): ensure that when splitting
1208 user input, the part that can be treated as a python name is pure
1211 user input, the part that can be treated as a python name is pure
1209 ascii (Python identifiers MUST be pure ascii). Part of the
1212 ascii (Python identifiers MUST be pure ascii). Part of the
1210 ongoing Unicode support work.
1213 ongoing Unicode support work.
1211
1214
1212 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1215 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1213 actual prompt number, without any coloring. This allows users to
1216 actual prompt number, without any coloring. This allows users to
1214 produce numbered prompts with their own colors. Added after a
1217 produce numbered prompts with their own colors. Added after a
1215 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1218 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1216
1219
1217 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1220 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1218
1221
1219 * IPython/Extensions/igrid.py: Map the return key
1222 * IPython/Extensions/igrid.py: Map the return key
1220 to enter() and shift-return to enterattr().
1223 to enter() and shift-return to enterattr().
1221
1224
1222 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1225 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1223
1226
1224 * IPython/Magic.py (magic_psearch): add unicode support by
1227 * IPython/Magic.py (magic_psearch): add unicode support by
1225 encoding to ascii the input, since this routine also only deals
1228 encoding to ascii the input, since this routine also only deals
1226 with valid Python names. Fixes a bug reported by Stefan.
1229 with valid Python names. Fixes a bug reported by Stefan.
1227
1230
1228 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1231 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1229
1232
1230 * IPython/Magic.py (_inspect): convert unicode input into ascii
1233 * IPython/Magic.py (_inspect): convert unicode input into ascii
1231 before trying to evaluate it as a Python identifier. This fixes a
1234 before trying to evaluate it as a Python identifier. This fixes a
1232 problem that the new unicode support had introduced when analyzing
1235 problem that the new unicode support had introduced when analyzing
1233 long definition lines for functions.
1236 long definition lines for functions.
1234
1237
1235 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1238 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1236
1239
1237 * IPython/Extensions/igrid.py: Fix picking. Using
1240 * IPython/Extensions/igrid.py: Fix picking. Using
1238 igrid with wxPython 2.6 and -wthread should work now.
1241 igrid with wxPython 2.6 and -wthread should work now.
1239 igrid.display() simply tries to create a frame without
1242 igrid.display() simply tries to create a frame without
1240 an application. Only if this fails an application is created.
1243 an application. Only if this fails an application is created.
1241
1244
1242 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1245 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1243
1246
1244 * IPython/Extensions/path.py: Updated to version 2.2.
1247 * IPython/Extensions/path.py: Updated to version 2.2.
1245
1248
1246 2007-03-23 Ville Vainio <vivainio@gmail.com>
1249 2007-03-23 Ville Vainio <vivainio@gmail.com>
1247
1250
1248 * iplib.py: recursive alias expansion now works better, so that
1251 * iplib.py: recursive alias expansion now works better, so that
1249 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1252 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1250 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1253 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1251
1254
1252 * Extensions/ipy_gnuglobal.py added, provides %global magic
1255 * Extensions/ipy_gnuglobal.py added, provides %global magic
1253 for users of http://www.gnu.org/software/global
1256 for users of http://www.gnu.org/software/global
1254
1257
1255 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1258 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1256 Closes #52. Patch by Stefan van der Walt.
1259 Closes #52. Patch by Stefan van der Walt.
1257
1260
1258 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1261 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1259
1262
1260 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1263 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1261 respect the __file__ attribute when using %run. Thanks to a bug
1264 respect the __file__ attribute when using %run. Thanks to a bug
1262 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1265 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1263
1266
1264 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1267 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1265
1268
1266 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1269 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1267 input. Patch sent by Stefan.
1270 input. Patch sent by Stefan.
1268
1271
1269 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1272 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1270 * IPython/Extensions/ipy_stock_completer.py
1273 * IPython/Extensions/ipy_stock_completer.py
1271 shlex_split, fix bug in shlex_split. len function
1274 shlex_split, fix bug in shlex_split. len function
1272 call was missing an if statement. Caused shlex_split to
1275 call was missing an if statement. Caused shlex_split to
1273 sometimes return "" as last element.
1276 sometimes return "" as last element.
1274
1277
1275 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1278 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1276
1279
1277 * IPython/completer.py
1280 * IPython/completer.py
1278 (IPCompleter.file_matches.single_dir_expand): fix a problem
1281 (IPCompleter.file_matches.single_dir_expand): fix a problem
1279 reported by Stefan, where directories containign a single subdir
1282 reported by Stefan, where directories containign a single subdir
1280 would be completed too early.
1283 would be completed too early.
1281
1284
1282 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1285 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1283 pylab import *' when -pylab is given be optional. A new flag,
1286 pylab import *' when -pylab is given be optional. A new flag,
1284 pylab_import_all controls this behavior, the default is True for
1287 pylab_import_all controls this behavior, the default is True for
1285 backwards compatibility.
1288 backwards compatibility.
1286
1289
1287 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1290 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1288 modified) R. Bernstein's patch for fully syntax highlighted
1291 modified) R. Bernstein's patch for fully syntax highlighted
1289 tracebacks. The functionality is also available under ultraTB for
1292 tracebacks. The functionality is also available under ultraTB for
1290 non-ipython users (someone using ultraTB but outside an ipython
1293 non-ipython users (someone using ultraTB but outside an ipython
1291 session). They can select the color scheme by setting the
1294 session). They can select the color scheme by setting the
1292 module-level global DEFAULT_SCHEME. The highlight functionality
1295 module-level global DEFAULT_SCHEME. The highlight functionality
1293 also works when debugging.
1296 also works when debugging.
1294
1297
1295 * IPython/genutils.py (IOStream.close): small patch by
1298 * IPython/genutils.py (IOStream.close): small patch by
1296 R. Bernstein for improved pydb support.
1299 R. Bernstein for improved pydb support.
1297
1300
1298 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1301 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1299 DaveS <davls@telus.net> to improve support of debugging under
1302 DaveS <davls@telus.net> to improve support of debugging under
1300 NTEmacs, including improved pydb behavior.
1303 NTEmacs, including improved pydb behavior.
1301
1304
1302 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1305 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1303 Python 2.5, where the stats object API changed a little. Thanks
1306 Python 2.5, where the stats object API changed a little. Thanks
1304 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1307 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1305
1308
1306 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1309 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1307 Pernetty's patch to improve support for (X)Emacs under Win32.
1310 Pernetty's patch to improve support for (X)Emacs under Win32.
1308
1311
1309 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1312 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1310
1313
1311 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1314 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1312 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1315 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1313 a report by Nik Tautenhahn.
1316 a report by Nik Tautenhahn.
1314
1317
1315 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1318 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1316
1319
1317 * setup.py: Add the igrid help files to the list of data files
1320 * setup.py: Add the igrid help files to the list of data files
1318 to be installed alongside igrid.
1321 to be installed alongside igrid.
1319 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1322 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1320 Show the input object of the igrid browser as the window tile.
1323 Show the input object of the igrid browser as the window tile.
1321 Show the object the cursor is on in the statusbar.
1324 Show the object the cursor is on in the statusbar.
1322
1325
1323 2007-03-15 Ville Vainio <vivainio@gmail.com>
1326 2007-03-15 Ville Vainio <vivainio@gmail.com>
1324
1327
1325 * Extensions/ipy_stock_completers.py: Fixed exception
1328 * Extensions/ipy_stock_completers.py: Fixed exception
1326 on mismatching quotes in %run completer. Patch by
1329 on mismatching quotes in %run completer. Patch by
1327 Jorgen Stenarson. Closes #127.
1330 Jorgen Stenarson. Closes #127.
1328
1331
1329 2007-03-14 Ville Vainio <vivainio@gmail.com>
1332 2007-03-14 Ville Vainio <vivainio@gmail.com>
1330
1333
1331 * Extensions/ext_rehashdir.py: Do not do auto_alias
1334 * Extensions/ext_rehashdir.py: Do not do auto_alias
1332 in %rehashdir, it clobbers %store'd aliases.
1335 in %rehashdir, it clobbers %store'd aliases.
1333
1336
1334 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1337 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1335 (beefed up %env) imported for sh profile.
1338 (beefed up %env) imported for sh profile.
1336
1339
1337 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1340 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1338
1341
1339 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1342 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1340 as the default browser.
1343 as the default browser.
1341 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1344 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1342 As igrid displays all attributes it ever encounters, fetch() (which has
1345 As igrid displays all attributes it ever encounters, fetch() (which has
1343 been renamed to _fetch()) doesn't have to recalculate the display attributes
1346 been renamed to _fetch()) doesn't have to recalculate the display attributes
1344 every time a new item is fetched. This should speed up scrolling.
1347 every time a new item is fetched. This should speed up scrolling.
1345
1348
1346 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1349 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1347
1350
1348 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1351 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1349 Schmolck's recently reported tab-completion bug (my previous one
1352 Schmolck's recently reported tab-completion bug (my previous one
1350 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1353 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1351
1354
1352 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1355 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1353
1356
1354 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1357 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1355 Close help window if exiting igrid.
1358 Close help window if exiting igrid.
1356
1359
1357 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1360 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1358
1361
1359 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1362 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1360 before calling functions from readline.
1363 before calling functions from readline.
1361
1364
1362 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1365 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1363
1366
1364 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1367 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1365 igrid is a wxPython-based display object for ipipe. If your system has
1368 igrid is a wxPython-based display object for ipipe. If your system has
1366 wx installed igrid will be the default display. Without wx ipipe falls
1369 wx installed igrid will be the default display. Without wx ipipe falls
1367 back to ibrowse (which needs curses). If no curses is installed ipipe
1370 back to ibrowse (which needs curses). If no curses is installed ipipe
1368 falls back to idump.
1371 falls back to idump.
1369
1372
1370 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1373 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1371
1374
1372 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1375 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1373 my changes from yesterday, they introduced bugs. Will reactivate
1376 my changes from yesterday, they introduced bugs. Will reactivate
1374 once I get a correct solution, which will be much easier thanks to
1377 once I get a correct solution, which will be much easier thanks to
1375 Dan Milstein's new prefilter test suite.
1378 Dan Milstein's new prefilter test suite.
1376
1379
1377 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1380 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1378
1381
1379 * IPython/iplib.py (split_user_input): fix input splitting so we
1382 * IPython/iplib.py (split_user_input): fix input splitting so we
1380 don't attempt attribute accesses on things that can't possibly be
1383 don't attempt attribute accesses on things that can't possibly be
1381 valid Python attributes. After a bug report by Alex Schmolck.
1384 valid Python attributes. After a bug report by Alex Schmolck.
1382 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1385 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1383 %magic with explicit % prefix.
1386 %magic with explicit % prefix.
1384
1387
1385 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1388 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1386
1389
1387 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1390 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1388 avoid a DeprecationWarning from GTK.
1391 avoid a DeprecationWarning from GTK.
1389
1392
1390 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1393 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1391
1394
1392 * IPython/genutils.py (clock): I modified clock() to return total
1395 * IPython/genutils.py (clock): I modified clock() to return total
1393 time, user+system. This is a more commonly needed metric. I also
1396 time, user+system. This is a more commonly needed metric. I also
1394 introduced the new clocku/clocks to get only user/system time if
1397 introduced the new clocku/clocks to get only user/system time if
1395 one wants those instead.
1398 one wants those instead.
1396
1399
1397 ***WARNING: API CHANGE*** clock() used to return only user time,
1400 ***WARNING: API CHANGE*** clock() used to return only user time,
1398 so if you want exactly the same results as before, use clocku
1401 so if you want exactly the same results as before, use clocku
1399 instead.
1402 instead.
1400
1403
1401 2007-02-22 Ville Vainio <vivainio@gmail.com>
1404 2007-02-22 Ville Vainio <vivainio@gmail.com>
1402
1405
1403 * IPython/Extensions/ipy_p4.py: Extension for improved
1406 * IPython/Extensions/ipy_p4.py: Extension for improved
1404 p4 (perforce version control system) experience.
1407 p4 (perforce version control system) experience.
1405 Adds %p4 magic with p4 command completion and
1408 Adds %p4 magic with p4 command completion and
1406 automatic -G argument (marshall output as python dict)
1409 automatic -G argument (marshall output as python dict)
1407
1410
1408 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1411 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1409
1412
1410 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1413 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1411 stop marks.
1414 stop marks.
1412 (ClearingMixin): a simple mixin to easily make a Demo class clear
1415 (ClearingMixin): a simple mixin to easily make a Demo class clear
1413 the screen in between blocks and have empty marquees. The
1416 the screen in between blocks and have empty marquees. The
1414 ClearDemo and ClearIPDemo classes that use it are included.
1417 ClearDemo and ClearIPDemo classes that use it are included.
1415
1418
1416 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1419 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1417
1420
1418 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1421 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1419 protect against exceptions at Python shutdown time. Patch
1422 protect against exceptions at Python shutdown time. Patch
1420 sumbmitted to upstream.
1423 sumbmitted to upstream.
1421
1424
1422 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1425 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1423
1426
1424 * IPython/Extensions/ibrowse.py: If entering the first object level
1427 * IPython/Extensions/ibrowse.py: If entering the first object level
1425 (i.e. the object for which the browser has been started) fails,
1428 (i.e. the object for which the browser has been started) fails,
1426 now the error is raised directly (aborting the browser) instead of
1429 now the error is raised directly (aborting the browser) instead of
1427 running into an empty levels list later.
1430 running into an empty levels list later.
1428
1431
1429 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1432 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1430
1433
1431 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1434 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1432 for the noitem object.
1435 for the noitem object.
1433
1436
1434 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1437 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1435
1438
1436 * IPython/completer.py (Completer.attr_matches): Fix small
1439 * IPython/completer.py (Completer.attr_matches): Fix small
1437 tab-completion bug with Enthought Traits objects with units.
1440 tab-completion bug with Enthought Traits objects with units.
1438 Thanks to a bug report by Tom Denniston
1441 Thanks to a bug report by Tom Denniston
1439 <tom.denniston-AT-alum.dartmouth.org>.
1442 <tom.denniston-AT-alum.dartmouth.org>.
1440
1443
1441 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1444 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1442
1445
1443 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1446 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1444 bug where only .ipy or .py would be completed. Once the first
1447 bug where only .ipy or .py would be completed. Once the first
1445 argument to %run has been given, all completions are valid because
1448 argument to %run has been given, all completions are valid because
1446 they are the arguments to the script, which may well be non-python
1449 they are the arguments to the script, which may well be non-python
1447 filenames.
1450 filenames.
1448
1451
1449 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1452 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1450 to irunner to allow it to correctly support real doctesting of
1453 to irunner to allow it to correctly support real doctesting of
1451 out-of-process ipython code.
1454 out-of-process ipython code.
1452
1455
1453 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1456 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1454 title an option (-noterm_title) because it completely breaks
1457 title an option (-noterm_title) because it completely breaks
1455 doctesting.
1458 doctesting.
1456
1459
1457 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1460 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1458
1461
1459 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1462 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1460
1463
1461 * IPython/irunner.py (main): fix small bug where extensions were
1464 * IPython/irunner.py (main): fix small bug where extensions were
1462 not being correctly recognized.
1465 not being correctly recognized.
1463
1466
1464 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1467 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1465
1468
1466 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1469 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1467 a string containing a single line yields the string itself as the
1470 a string containing a single line yields the string itself as the
1468 only item.
1471 only item.
1469
1472
1470 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1473 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1471 object if it's the same as the one on the last level (This avoids
1474 object if it's the same as the one on the last level (This avoids
1472 infinite recursion for one line strings).
1475 infinite recursion for one line strings).
1473
1476
1474 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1477 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1475
1478
1476 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1479 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1477 all output streams before printing tracebacks. This ensures that
1480 all output streams before printing tracebacks. This ensures that
1478 user output doesn't end up interleaved with traceback output.
1481 user output doesn't end up interleaved with traceback output.
1479
1482
1480 2007-01-10 Ville Vainio <vivainio@gmail.com>
1483 2007-01-10 Ville Vainio <vivainio@gmail.com>
1481
1484
1482 * Extensions/envpersist.py: Turbocharged %env that remembers
1485 * Extensions/envpersist.py: Turbocharged %env that remembers
1483 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1486 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1484 "%env VISUAL=jed".
1487 "%env VISUAL=jed".
1485
1488
1486 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1489 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1487
1490
1488 * IPython/iplib.py (showtraceback): ensure that we correctly call
1491 * IPython/iplib.py (showtraceback): ensure that we correctly call
1489 custom handlers in all cases (some with pdb were slipping through,
1492 custom handlers in all cases (some with pdb were slipping through,
1490 but I'm not exactly sure why).
1493 but I'm not exactly sure why).
1491
1494
1492 * IPython/Debugger.py (Tracer.__init__): added new class to
1495 * IPython/Debugger.py (Tracer.__init__): added new class to
1493 support set_trace-like usage of IPython's enhanced debugger.
1496 support set_trace-like usage of IPython's enhanced debugger.
1494
1497
1495 2006-12-24 Ville Vainio <vivainio@gmail.com>
1498 2006-12-24 Ville Vainio <vivainio@gmail.com>
1496
1499
1497 * ipmaker.py: more informative message when ipy_user_conf
1500 * ipmaker.py: more informative message when ipy_user_conf
1498 import fails (suggest running %upgrade).
1501 import fails (suggest running %upgrade).
1499
1502
1500 * tools/run_ipy_in_profiler.py: Utility to see where
1503 * tools/run_ipy_in_profiler.py: Utility to see where
1501 the time during IPython startup is spent.
1504 the time during IPython startup is spent.
1502
1505
1503 2006-12-20 Ville Vainio <vivainio@gmail.com>
1506 2006-12-20 Ville Vainio <vivainio@gmail.com>
1504
1507
1505 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1508 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1506
1509
1507 * ipapi.py: Add new ipapi method, expand_alias.
1510 * ipapi.py: Add new ipapi method, expand_alias.
1508
1511
1509 * Release.py: Bump up version to 0.7.4.svn
1512 * Release.py: Bump up version to 0.7.4.svn
1510
1513
1511 2006-12-17 Ville Vainio <vivainio@gmail.com>
1514 2006-12-17 Ville Vainio <vivainio@gmail.com>
1512
1515
1513 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1516 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1514 to work properly on posix too
1517 to work properly on posix too
1515
1518
1516 * Release.py: Update revnum (version is still just 0.7.3).
1519 * Release.py: Update revnum (version is still just 0.7.3).
1517
1520
1518 2006-12-15 Ville Vainio <vivainio@gmail.com>
1521 2006-12-15 Ville Vainio <vivainio@gmail.com>
1519
1522
1520 * scripts/ipython_win_post_install: create ipython.py in
1523 * scripts/ipython_win_post_install: create ipython.py in
1521 prefix + "/scripts".
1524 prefix + "/scripts".
1522
1525
1523 * Release.py: Update version to 0.7.3.
1526 * Release.py: Update version to 0.7.3.
1524
1527
1525 2006-12-14 Ville Vainio <vivainio@gmail.com>
1528 2006-12-14 Ville Vainio <vivainio@gmail.com>
1526
1529
1527 * scripts/ipython_win_post_install: Overwrite old shortcuts
1530 * scripts/ipython_win_post_install: Overwrite old shortcuts
1528 if they already exist
1531 if they already exist
1529
1532
1530 * Release.py: release 0.7.3rc2
1533 * Release.py: release 0.7.3rc2
1531
1534
1532 2006-12-13 Ville Vainio <vivainio@gmail.com>
1535 2006-12-13 Ville Vainio <vivainio@gmail.com>
1533
1536
1534 * Branch and update Release.py for 0.7.3rc1
1537 * Branch and update Release.py for 0.7.3rc1
1535
1538
1536 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1539 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1537
1540
1538 * IPython/Shell.py (IPShellWX): update for current WX naming
1541 * IPython/Shell.py (IPShellWX): update for current WX naming
1539 conventions, to avoid a deprecation warning with current WX
1542 conventions, to avoid a deprecation warning with current WX
1540 versions. Thanks to a report by Danny Shevitz.
1543 versions. Thanks to a report by Danny Shevitz.
1541
1544
1542 2006-12-12 Ville Vainio <vivainio@gmail.com>
1545 2006-12-12 Ville Vainio <vivainio@gmail.com>
1543
1546
1544 * ipmaker.py: apply david cournapeau's patch to make
1547 * ipmaker.py: apply david cournapeau's patch to make
1545 import_some work properly even when ipythonrc does
1548 import_some work properly even when ipythonrc does
1546 import_some on empty list (it was an old bug!).
1549 import_some on empty list (it was an old bug!).
1547
1550
1548 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1551 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1549 Add deprecation note to ipythonrc and a url to wiki
1552 Add deprecation note to ipythonrc and a url to wiki
1550 in ipy_user_conf.py
1553 in ipy_user_conf.py
1551
1554
1552
1555
1553 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1556 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1554 as if it was typed on IPython command prompt, i.e.
1557 as if it was typed on IPython command prompt, i.e.
1555 as IPython script.
1558 as IPython script.
1556
1559
1557 * example-magic.py, magic_grepl.py: remove outdated examples
1560 * example-magic.py, magic_grepl.py: remove outdated examples
1558
1561
1559 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1562 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1560
1563
1561 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1564 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1562 is called before any exception has occurred.
1565 is called before any exception has occurred.
1563
1566
1564 2006-12-08 Ville Vainio <vivainio@gmail.com>
1567 2006-12-08 Ville Vainio <vivainio@gmail.com>
1565
1568
1566 * Extensions/ipy_stock_completers.py: fix cd completer
1569 * Extensions/ipy_stock_completers.py: fix cd completer
1567 to translate /'s to \'s again.
1570 to translate /'s to \'s again.
1568
1571
1569 * completer.py: prevent traceback on file completions w/
1572 * completer.py: prevent traceback on file completions w/
1570 backslash.
1573 backslash.
1571
1574
1572 * Release.py: Update release number to 0.7.3b3 for release
1575 * Release.py: Update release number to 0.7.3b3 for release
1573
1576
1574 2006-12-07 Ville Vainio <vivainio@gmail.com>
1577 2006-12-07 Ville Vainio <vivainio@gmail.com>
1575
1578
1576 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1579 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1577 while executing external code. Provides more shell-like behaviour
1580 while executing external code. Provides more shell-like behaviour
1578 and overall better response to ctrl + C / ctrl + break.
1581 and overall better response to ctrl + C / ctrl + break.
1579
1582
1580 * tools/make_tarball.py: new script to create tarball straight from svn
1583 * tools/make_tarball.py: new script to create tarball straight from svn
1581 (setup.py sdist doesn't work on win32).
1584 (setup.py sdist doesn't work on win32).
1582
1585
1583 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1586 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1584 on dirnames with spaces and use the default completer instead.
1587 on dirnames with spaces and use the default completer instead.
1585
1588
1586 * Revision.py: Change version to 0.7.3b2 for release.
1589 * Revision.py: Change version to 0.7.3b2 for release.
1587
1590
1588 2006-12-05 Ville Vainio <vivainio@gmail.com>
1591 2006-12-05 Ville Vainio <vivainio@gmail.com>
1589
1592
1590 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1593 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1591 pydb patch 4 (rm debug printing, py 2.5 checking)
1594 pydb patch 4 (rm debug printing, py 2.5 checking)
1592
1595
1593 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1596 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1594 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1597 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1595 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1598 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1596 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1599 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1597 object the cursor was on before the refresh. The command "markrange" is
1600 object the cursor was on before the refresh. The command "markrange" is
1598 mapped to "%" now.
1601 mapped to "%" now.
1599 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1602 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1600
1603
1601 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1604 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1602
1605
1603 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1606 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1604 interactive debugger on the last traceback, without having to call
1607 interactive debugger on the last traceback, without having to call
1605 %pdb and rerun your code. Made minor changes in various modules,
1608 %pdb and rerun your code. Made minor changes in various modules,
1606 should automatically recognize pydb if available.
1609 should automatically recognize pydb if available.
1607
1610
1608 2006-11-28 Ville Vainio <vivainio@gmail.com>
1611 2006-11-28 Ville Vainio <vivainio@gmail.com>
1609
1612
1610 * completer.py: If the text start with !, show file completions
1613 * completer.py: If the text start with !, show file completions
1611 properly. This helps when trying to complete command name
1614 properly. This helps when trying to complete command name
1612 for shell escapes.
1615 for shell escapes.
1613
1616
1614 2006-11-27 Ville Vainio <vivainio@gmail.com>
1617 2006-11-27 Ville Vainio <vivainio@gmail.com>
1615
1618
1616 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1619 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1617 der Walt. Clean up svn and hg completers by using a common
1620 der Walt. Clean up svn and hg completers by using a common
1618 vcs_completer.
1621 vcs_completer.
1619
1622
1620 2006-11-26 Ville Vainio <vivainio@gmail.com>
1623 2006-11-26 Ville Vainio <vivainio@gmail.com>
1621
1624
1622 * Remove ipconfig and %config; you should use _ip.options structure
1625 * Remove ipconfig and %config; you should use _ip.options structure
1623 directly instead!
1626 directly instead!
1624
1627
1625 * genutils.py: add wrap_deprecated function for deprecating callables
1628 * genutils.py: add wrap_deprecated function for deprecating callables
1626
1629
1627 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1630 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1628 _ip.system instead. ipalias is redundant.
1631 _ip.system instead. ipalias is redundant.
1629
1632
1630 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1633 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1631 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1634 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1632 explicit.
1635 explicit.
1633
1636
1634 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1637 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1635 completer. Try it by entering 'hg ' and pressing tab.
1638 completer. Try it by entering 'hg ' and pressing tab.
1636
1639
1637 * macro.py: Give Macro a useful __repr__ method
1640 * macro.py: Give Macro a useful __repr__ method
1638
1641
1639 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1642 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1640
1643
1641 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1644 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1642 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1645 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1643 we don't get a duplicate ipipe module, where registration of the xrepr
1646 we don't get a duplicate ipipe module, where registration of the xrepr
1644 implementation for Text is useless.
1647 implementation for Text is useless.
1645
1648
1646 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1649 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1647
1650
1648 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1651 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1649
1652
1650 2006-11-24 Ville Vainio <vivainio@gmail.com>
1653 2006-11-24 Ville Vainio <vivainio@gmail.com>
1651
1654
1652 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1655 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1653 try to use "cProfile" instead of the slower pure python
1656 try to use "cProfile" instead of the slower pure python
1654 "profile"
1657 "profile"
1655
1658
1656 2006-11-23 Ville Vainio <vivainio@gmail.com>
1659 2006-11-23 Ville Vainio <vivainio@gmail.com>
1657
1660
1658 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1661 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1659 Qt+IPython+Designer link in documentation.
1662 Qt+IPython+Designer link in documentation.
1660
1663
1661 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1664 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1662 correct Pdb object to %pydb.
1665 correct Pdb object to %pydb.
1663
1666
1664
1667
1665 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1668 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1666 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1669 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1667 generic xrepr(), otherwise the list implementation would kick in.
1670 generic xrepr(), otherwise the list implementation would kick in.
1668
1671
1669 2006-11-21 Ville Vainio <vivainio@gmail.com>
1672 2006-11-21 Ville Vainio <vivainio@gmail.com>
1670
1673
1671 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1674 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1672 with one from UserConfig.
1675 with one from UserConfig.
1673
1676
1674 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1677 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1675 it was missing which broke the sh profile.
1678 it was missing which broke the sh profile.
1676
1679
1677 * completer.py: file completer now uses explicit '/' instead
1680 * completer.py: file completer now uses explicit '/' instead
1678 of os.path.join, expansion of 'foo' was broken on win32
1681 of os.path.join, expansion of 'foo' was broken on win32
1679 if there was one directory with name 'foobar'.
1682 if there was one directory with name 'foobar'.
1680
1683
1681 * A bunch of patches from Kirill Smelkov:
1684 * A bunch of patches from Kirill Smelkov:
1682
1685
1683 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1686 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1684
1687
1685 * [patch 7/9] Implement %page -r (page in raw mode) -
1688 * [patch 7/9] Implement %page -r (page in raw mode) -
1686
1689
1687 * [patch 5/9] ScientificPython webpage has moved
1690 * [patch 5/9] ScientificPython webpage has moved
1688
1691
1689 * [patch 4/9] The manual mentions %ds, should be %dhist
1692 * [patch 4/9] The manual mentions %ds, should be %dhist
1690
1693
1691 * [patch 3/9] Kill old bits from %prun doc.
1694 * [patch 3/9] Kill old bits from %prun doc.
1692
1695
1693 * [patch 1/9] Fix typos here and there.
1696 * [patch 1/9] Fix typos here and there.
1694
1697
1695 2006-11-08 Ville Vainio <vivainio@gmail.com>
1698 2006-11-08 Ville Vainio <vivainio@gmail.com>
1696
1699
1697 * completer.py (attr_matches): catch all exceptions raised
1700 * completer.py (attr_matches): catch all exceptions raised
1698 by eval of expr with dots.
1701 by eval of expr with dots.
1699
1702
1700 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1703 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1701
1704
1702 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1705 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1703 input if it starts with whitespace. This allows you to paste
1706 input if it starts with whitespace. This allows you to paste
1704 indented input from any editor without manually having to type in
1707 indented input from any editor without manually having to type in
1705 the 'if 1:', which is convenient when working interactively.
1708 the 'if 1:', which is convenient when working interactively.
1706 Slightly modifed version of a patch by Bo Peng
1709 Slightly modifed version of a patch by Bo Peng
1707 <bpeng-AT-rice.edu>.
1710 <bpeng-AT-rice.edu>.
1708
1711
1709 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1712 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1710
1713
1711 * IPython/irunner.py (main): modified irunner so it automatically
1714 * IPython/irunner.py (main): modified irunner so it automatically
1712 recognizes the right runner to use based on the extension (.py for
1715 recognizes the right runner to use based on the extension (.py for
1713 python, .ipy for ipython and .sage for sage).
1716 python, .ipy for ipython and .sage for sage).
1714
1717
1715 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1718 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1716 visible in ipapi as ip.config(), to programatically control the
1719 visible in ipapi as ip.config(), to programatically control the
1717 internal rc object. There's an accompanying %config magic for
1720 internal rc object. There's an accompanying %config magic for
1718 interactive use, which has been enhanced to match the
1721 interactive use, which has been enhanced to match the
1719 funtionality in ipconfig.
1722 funtionality in ipconfig.
1720
1723
1721 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1724 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1722 so it's not just a toggle, it now takes an argument. Add support
1725 so it's not just a toggle, it now takes an argument. Add support
1723 for a customizable header when making system calls, as the new
1726 for a customizable header when making system calls, as the new
1724 system_header variable in the ipythonrc file.
1727 system_header variable in the ipythonrc file.
1725
1728
1726 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1729 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1727
1730
1728 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1731 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1729 generic functions (using Philip J. Eby's simplegeneric package).
1732 generic functions (using Philip J. Eby's simplegeneric package).
1730 This makes it possible to customize the display of third-party classes
1733 This makes it possible to customize the display of third-party classes
1731 without having to monkeypatch them. xiter() no longer supports a mode
1734 without having to monkeypatch them. xiter() no longer supports a mode
1732 argument and the XMode class has been removed. The same functionality can
1735 argument and the XMode class has been removed. The same functionality can
1733 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1736 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1734 One consequence of the switch to generic functions is that xrepr() and
1737 One consequence of the switch to generic functions is that xrepr() and
1735 xattrs() implementation must define the default value for the mode
1738 xattrs() implementation must define the default value for the mode
1736 argument themselves and xattrs() implementations must return real
1739 argument themselves and xattrs() implementations must return real
1737 descriptors.
1740 descriptors.
1738
1741
1739 * IPython/external: This new subpackage will contain all third-party
1742 * IPython/external: This new subpackage will contain all third-party
1740 packages that are bundled with IPython. (The first one is simplegeneric).
1743 packages that are bundled with IPython. (The first one is simplegeneric).
1741
1744
1742 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1745 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1743 directory which as been dropped in r1703.
1746 directory which as been dropped in r1703.
1744
1747
1745 * IPython/Extensions/ipipe.py (iless): Fixed.
1748 * IPython/Extensions/ipipe.py (iless): Fixed.
1746
1749
1747 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1750 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1748
1751
1749 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1752 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1750
1753
1751 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1754 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1752 handling in variable expansion so that shells and magics recognize
1755 handling in variable expansion so that shells and magics recognize
1753 function local scopes correctly. Bug reported by Brian.
1756 function local scopes correctly. Bug reported by Brian.
1754
1757
1755 * scripts/ipython: remove the very first entry in sys.path which
1758 * scripts/ipython: remove the very first entry in sys.path which
1756 Python auto-inserts for scripts, so that sys.path under IPython is
1759 Python auto-inserts for scripts, so that sys.path under IPython is
1757 as similar as possible to that under plain Python.
1760 as similar as possible to that under plain Python.
1758
1761
1759 * IPython/completer.py (IPCompleter.file_matches): Fix
1762 * IPython/completer.py (IPCompleter.file_matches): Fix
1760 tab-completion so that quotes are not closed unless the completion
1763 tab-completion so that quotes are not closed unless the completion
1761 is unambiguous. After a request by Stefan. Minor cleanups in
1764 is unambiguous. After a request by Stefan. Minor cleanups in
1762 ipy_stock_completers.
1765 ipy_stock_completers.
1763
1766
1764 2006-11-02 Ville Vainio <vivainio@gmail.com>
1767 2006-11-02 Ville Vainio <vivainio@gmail.com>
1765
1768
1766 * ipy_stock_completers.py: Add %run and %cd completers.
1769 * ipy_stock_completers.py: Add %run and %cd completers.
1767
1770
1768 * completer.py: Try running custom completer for both
1771 * completer.py: Try running custom completer for both
1769 "foo" and "%foo" if the command is just "foo". Ignore case
1772 "foo" and "%foo" if the command is just "foo". Ignore case
1770 when filtering possible completions.
1773 when filtering possible completions.
1771
1774
1772 * UserConfig/ipy_user_conf.py: install stock completers as default
1775 * UserConfig/ipy_user_conf.py: install stock completers as default
1773
1776
1774 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1777 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1775 simplified readline history save / restore through a wrapper
1778 simplified readline history save / restore through a wrapper
1776 function
1779 function
1777
1780
1778
1781
1779 2006-10-31 Ville Vainio <vivainio@gmail.com>
1782 2006-10-31 Ville Vainio <vivainio@gmail.com>
1780
1783
1781 * strdispatch.py, completer.py, ipy_stock_completers.py:
1784 * strdispatch.py, completer.py, ipy_stock_completers.py:
1782 Allow str_key ("command") in completer hooks. Implement
1785 Allow str_key ("command") in completer hooks. Implement
1783 trivial completer for 'import' (stdlib modules only). Rename
1786 trivial completer for 'import' (stdlib modules only). Rename
1784 ipy_linux_package_managers.py to ipy_stock_completers.py.
1787 ipy_linux_package_managers.py to ipy_stock_completers.py.
1785 SVN completer.
1788 SVN completer.
1786
1789
1787 * Extensions/ledit.py: %magic line editor for easily and
1790 * Extensions/ledit.py: %magic line editor for easily and
1788 incrementally manipulating lists of strings. The magic command
1791 incrementally manipulating lists of strings. The magic command
1789 name is %led.
1792 name is %led.
1790
1793
1791 2006-10-30 Ville Vainio <vivainio@gmail.com>
1794 2006-10-30 Ville Vainio <vivainio@gmail.com>
1792
1795
1793 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1796 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1794 Bernsteins's patches for pydb integration.
1797 Bernsteins's patches for pydb integration.
1795 http://bashdb.sourceforge.net/pydb/
1798 http://bashdb.sourceforge.net/pydb/
1796
1799
1797 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1800 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1798 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1801 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1799 custom completer hook to allow the users to implement their own
1802 custom completer hook to allow the users to implement their own
1800 completers. See ipy_linux_package_managers.py for example. The
1803 completers. See ipy_linux_package_managers.py for example. The
1801 hook name is 'complete_command'.
1804 hook name is 'complete_command'.
1802
1805
1803 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1806 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1804
1807
1805 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1808 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1806 Numeric leftovers.
1809 Numeric leftovers.
1807
1810
1808 * ipython.el (py-execute-region): apply Stefan's patch to fix
1811 * ipython.el (py-execute-region): apply Stefan's patch to fix
1809 garbled results if the python shell hasn't been previously started.
1812 garbled results if the python shell hasn't been previously started.
1810
1813
1811 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1814 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1812 pretty generic function and useful for other things.
1815 pretty generic function and useful for other things.
1813
1816
1814 * IPython/OInspect.py (getsource): Add customizable source
1817 * IPython/OInspect.py (getsource): Add customizable source
1815 extractor. After a request/patch form W. Stein (SAGE).
1818 extractor. After a request/patch form W. Stein (SAGE).
1816
1819
1817 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1820 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1818 window size to a more reasonable value from what pexpect does,
1821 window size to a more reasonable value from what pexpect does,
1819 since their choice causes wrapping bugs with long input lines.
1822 since their choice causes wrapping bugs with long input lines.
1820
1823
1821 2006-10-28 Ville Vainio <vivainio@gmail.com>
1824 2006-10-28 Ville Vainio <vivainio@gmail.com>
1822
1825
1823 * Magic.py (%run): Save and restore the readline history from
1826 * Magic.py (%run): Save and restore the readline history from
1824 file around %run commands to prevent side effects from
1827 file around %run commands to prevent side effects from
1825 %runned programs that might use readline (e.g. pydb).
1828 %runned programs that might use readline (e.g. pydb).
1826
1829
1827 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1830 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1828 invoking the pydb enhanced debugger.
1831 invoking the pydb enhanced debugger.
1829
1832
1830 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1833 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1831
1834
1832 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1835 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1833 call the base class method and propagate the return value to
1836 call the base class method and propagate the return value to
1834 ifile. This is now done by path itself.
1837 ifile. This is now done by path itself.
1835
1838
1836 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1839 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1837
1840
1838 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1841 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1839 api: set_crash_handler(), to expose the ability to change the
1842 api: set_crash_handler(), to expose the ability to change the
1840 internal crash handler.
1843 internal crash handler.
1841
1844
1842 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1845 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1843 the various parameters of the crash handler so that apps using
1846 the various parameters of the crash handler so that apps using
1844 IPython as their engine can customize crash handling. Ipmlemented
1847 IPython as their engine can customize crash handling. Ipmlemented
1845 at the request of SAGE.
1848 at the request of SAGE.
1846
1849
1847 2006-10-14 Ville Vainio <vivainio@gmail.com>
1850 2006-10-14 Ville Vainio <vivainio@gmail.com>
1848
1851
1849 * Magic.py, ipython.el: applied first "safe" part of Rocky
1852 * Magic.py, ipython.el: applied first "safe" part of Rocky
1850 Bernstein's patch set for pydb integration.
1853 Bernstein's patch set for pydb integration.
1851
1854
1852 * Magic.py (%unalias, %alias): %store'd aliases can now be
1855 * Magic.py (%unalias, %alias): %store'd aliases can now be
1853 removed with '%unalias'. %alias w/o args now shows most
1856 removed with '%unalias'. %alias w/o args now shows most
1854 interesting (stored / manually defined) aliases last
1857 interesting (stored / manually defined) aliases last
1855 where they catch the eye w/o scrolling.
1858 where they catch the eye w/o scrolling.
1856
1859
1857 * Magic.py (%rehashx), ext_rehashdir.py: files with
1860 * Magic.py (%rehashx), ext_rehashdir.py: files with
1858 'py' extension are always considered executable, even
1861 'py' extension are always considered executable, even
1859 when not in PATHEXT environment variable.
1862 when not in PATHEXT environment variable.
1860
1863
1861 2006-10-12 Ville Vainio <vivainio@gmail.com>
1864 2006-10-12 Ville Vainio <vivainio@gmail.com>
1862
1865
1863 * jobctrl.py: Add new "jobctrl" extension for spawning background
1866 * jobctrl.py: Add new "jobctrl" extension for spawning background
1864 processes with "&find /". 'import jobctrl' to try it out. Requires
1867 processes with "&find /". 'import jobctrl' to try it out. Requires
1865 'subprocess' module, standard in python 2.4+.
1868 'subprocess' module, standard in python 2.4+.
1866
1869
1867 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1870 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1868 so if foo -> bar and bar -> baz, then foo -> baz.
1871 so if foo -> bar and bar -> baz, then foo -> baz.
1869
1872
1870 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1873 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1871
1874
1872 * IPython/Magic.py (Magic.parse_options): add a new posix option
1875 * IPython/Magic.py (Magic.parse_options): add a new posix option
1873 to allow parsing of input args in magics that doesn't strip quotes
1876 to allow parsing of input args in magics that doesn't strip quotes
1874 (if posix=False). This also closes %timeit bug reported by
1877 (if posix=False). This also closes %timeit bug reported by
1875 Stefan.
1878 Stefan.
1876
1879
1877 2006-10-03 Ville Vainio <vivainio@gmail.com>
1880 2006-10-03 Ville Vainio <vivainio@gmail.com>
1878
1881
1879 * iplib.py (raw_input, interact): Return ValueError catching for
1882 * iplib.py (raw_input, interact): Return ValueError catching for
1880 raw_input. Fixes infinite loop for sys.stdin.close() or
1883 raw_input. Fixes infinite loop for sys.stdin.close() or
1881 sys.stdout.close().
1884 sys.stdout.close().
1882
1885
1883 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1886 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1884
1887
1885 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1888 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1886 to help in handling doctests. irunner is now pretty useful for
1889 to help in handling doctests. irunner is now pretty useful for
1887 running standalone scripts and simulate a full interactive session
1890 running standalone scripts and simulate a full interactive session
1888 in a format that can be then pasted as a doctest.
1891 in a format that can be then pasted as a doctest.
1889
1892
1890 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1893 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1891 on top of the default (useless) ones. This also fixes the nasty
1894 on top of the default (useless) ones. This also fixes the nasty
1892 way in which 2.5's Quitter() exits (reverted [1785]).
1895 way in which 2.5's Quitter() exits (reverted [1785]).
1893
1896
1894 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1897 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1895 2.5.
1898 2.5.
1896
1899
1897 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1900 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1898 color scheme is updated as well when color scheme is changed
1901 color scheme is updated as well when color scheme is changed
1899 interactively.
1902 interactively.
1900
1903
1901 2006-09-27 Ville Vainio <vivainio@gmail.com>
1904 2006-09-27 Ville Vainio <vivainio@gmail.com>
1902
1905
1903 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1906 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1904 infinite loop and just exit. It's a hack, but will do for a while.
1907 infinite loop and just exit. It's a hack, but will do for a while.
1905
1908
1906 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1909 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1907
1910
1908 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1911 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1909 the constructor, this makes it possible to get a list of only directories
1912 the constructor, this makes it possible to get a list of only directories
1910 or only files.
1913 or only files.
1911
1914
1912 2006-08-12 Ville Vainio <vivainio@gmail.com>
1915 2006-08-12 Ville Vainio <vivainio@gmail.com>
1913
1916
1914 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1917 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1915 they broke unittest
1918 they broke unittest
1916
1919
1917 2006-08-11 Ville Vainio <vivainio@gmail.com>
1920 2006-08-11 Ville Vainio <vivainio@gmail.com>
1918
1921
1919 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1922 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1920 by resolving issue properly, i.e. by inheriting FakeModule
1923 by resolving issue properly, i.e. by inheriting FakeModule
1921 from types.ModuleType. Pickling ipython interactive data
1924 from types.ModuleType. Pickling ipython interactive data
1922 should still work as usual (testing appreciated).
1925 should still work as usual (testing appreciated).
1923
1926
1924 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1927 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1925
1928
1926 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1929 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1927 running under python 2.3 with code from 2.4 to fix a bug with
1930 running under python 2.3 with code from 2.4 to fix a bug with
1928 help(). Reported by the Debian maintainers, Norbert Tretkowski
1931 help(). Reported by the Debian maintainers, Norbert Tretkowski
1929 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1932 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1930 <afayolle-AT-debian.org>.
1933 <afayolle-AT-debian.org>.
1931
1934
1932 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1935 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1933
1936
1934 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1937 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1935 (which was displaying "quit" twice).
1938 (which was displaying "quit" twice).
1936
1939
1937 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1940 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1938
1941
1939 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1942 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1940 the mode argument).
1943 the mode argument).
1941
1944
1942 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1945 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1943
1946
1944 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1947 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1945 not running under IPython.
1948 not running under IPython.
1946
1949
1947 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1950 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1948 and make it iterable (iterating over the attribute itself). Add two new
1951 and make it iterable (iterating over the attribute itself). Add two new
1949 magic strings for __xattrs__(): If the string starts with "-", the attribute
1952 magic strings for __xattrs__(): If the string starts with "-", the attribute
1950 will not be displayed in ibrowse's detail view (but it can still be
1953 will not be displayed in ibrowse's detail view (but it can still be
1951 iterated over). This makes it possible to add attributes that are large
1954 iterated over). This makes it possible to add attributes that are large
1952 lists or generator methods to the detail view. Replace magic attribute names
1955 lists or generator methods to the detail view. Replace magic attribute names
1953 and _attrname() and _getattr() with "descriptors": For each type of magic
1956 and _attrname() and _getattr() with "descriptors": For each type of magic
1954 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1957 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1955 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1958 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1956 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1959 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1957 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1960 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1958 are still supported.
1961 are still supported.
1959
1962
1960 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1963 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1961 fails in ibrowse.fetch(), the exception object is added as the last item
1964 fails in ibrowse.fetch(), the exception object is added as the last item
1962 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1965 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1963 a generator throws an exception midway through execution.
1966 a generator throws an exception midway through execution.
1964
1967
1965 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1968 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1966 encoding into methods.
1969 encoding into methods.
1967
1970
1968 2006-07-26 Ville Vainio <vivainio@gmail.com>
1971 2006-07-26 Ville Vainio <vivainio@gmail.com>
1969
1972
1970 * iplib.py: history now stores multiline input as single
1973 * iplib.py: history now stores multiline input as single
1971 history entries. Patch by Jorgen Cederlof.
1974 history entries. Patch by Jorgen Cederlof.
1972
1975
1973 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1976 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1974
1977
1975 * IPython/Extensions/ibrowse.py: Make cursor visible over
1978 * IPython/Extensions/ibrowse.py: Make cursor visible over
1976 non existing attributes.
1979 non existing attributes.
1977
1980
1978 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1981 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1979
1982
1980 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1983 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1981 error output of the running command doesn't mess up the screen.
1984 error output of the running command doesn't mess up the screen.
1982
1985
1983 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1986 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1984
1987
1985 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1988 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1986 argument. This sorts the items themselves.
1989 argument. This sorts the items themselves.
1987
1990
1988 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1991 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1989
1992
1990 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1993 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1991 Compile expression strings into code objects. This should speed
1994 Compile expression strings into code objects. This should speed
1992 up ifilter and friends somewhat.
1995 up ifilter and friends somewhat.
1993
1996
1994 2006-07-08 Ville Vainio <vivainio@gmail.com>
1997 2006-07-08 Ville Vainio <vivainio@gmail.com>
1995
1998
1996 * Magic.py: %cpaste now strips > from the beginning of lines
1999 * Magic.py: %cpaste now strips > from the beginning of lines
1997 to ease pasting quoted code from emails. Contributed by
2000 to ease pasting quoted code from emails. Contributed by
1998 Stefan van der Walt.
2001 Stefan van der Walt.
1999
2002
2000 2006-06-29 Ville Vainio <vivainio@gmail.com>
2003 2006-06-29 Ville Vainio <vivainio@gmail.com>
2001
2004
2002 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2005 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2003 mode, patch contributed by Darren Dale. NEEDS TESTING!
2006 mode, patch contributed by Darren Dale. NEEDS TESTING!
2004
2007
2005 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2008 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2006
2009
2007 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2010 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2008 a blue background. Fix fetching new display rows when the browser
2011 a blue background. Fix fetching new display rows when the browser
2009 scrolls more than a screenful (e.g. by using the goto command).
2012 scrolls more than a screenful (e.g. by using the goto command).
2010
2013
2011 2006-06-27 Ville Vainio <vivainio@gmail.com>
2014 2006-06-27 Ville Vainio <vivainio@gmail.com>
2012
2015
2013 * Magic.py (_inspect, _ofind) Apply David Huard's
2016 * Magic.py (_inspect, _ofind) Apply David Huard's
2014 patch for displaying the correct docstring for 'property'
2017 patch for displaying the correct docstring for 'property'
2015 attributes.
2018 attributes.
2016
2019
2017 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2020 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2018
2021
2019 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2022 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2020 commands into the methods implementing them.
2023 commands into the methods implementing them.
2021
2024
2022 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2025 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2023
2026
2024 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2027 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2025 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2028 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2026 autoindent support was authored by Jin Liu.
2029 autoindent support was authored by Jin Liu.
2027
2030
2028 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2031 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2029
2032
2030 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2033 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2031 for keymaps with a custom class that simplifies handling.
2034 for keymaps with a custom class that simplifies handling.
2032
2035
2033 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2036 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2034
2037
2035 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2038 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2036 resizing. This requires Python 2.5 to work.
2039 resizing. This requires Python 2.5 to work.
2037
2040
2038 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2041 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2039
2042
2040 * IPython/Extensions/ibrowse.py: Add two new commands to
2043 * IPython/Extensions/ibrowse.py: Add two new commands to
2041 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2044 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2042 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2045 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2043 attributes again. Remapped the help command to "?". Display
2046 attributes again. Remapped the help command to "?". Display
2044 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2047 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2045 as keys for the "home" and "end" commands. Add three new commands
2048 as keys for the "home" and "end" commands. Add three new commands
2046 to the input mode for "find" and friends: "delend" (CTRL-K)
2049 to the input mode for "find" and friends: "delend" (CTRL-K)
2047 deletes to the end of line. "incsearchup" searches upwards in the
2050 deletes to the end of line. "incsearchup" searches upwards in the
2048 command history for an input that starts with the text before the cursor.
2051 command history for an input that starts with the text before the cursor.
2049 "incsearchdown" does the same downwards. Removed a bogus mapping of
2052 "incsearchdown" does the same downwards. Removed a bogus mapping of
2050 the x key to "delete".
2053 the x key to "delete".
2051
2054
2052 2006-06-15 Ville Vainio <vivainio@gmail.com>
2055 2006-06-15 Ville Vainio <vivainio@gmail.com>
2053
2056
2054 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2057 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2055 used to create prompts dynamically, instead of the "old" way of
2058 used to create prompts dynamically, instead of the "old" way of
2056 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2059 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2057 way still works (it's invoked by the default hook), of course.
2060 way still works (it's invoked by the default hook), of course.
2058
2061
2059 * Prompts.py: added generate_output_prompt hook for altering output
2062 * Prompts.py: added generate_output_prompt hook for altering output
2060 prompt
2063 prompt
2061
2064
2062 * Release.py: Changed version string to 0.7.3.svn.
2065 * Release.py: Changed version string to 0.7.3.svn.
2063
2066
2064 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2067 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2065
2068
2066 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2069 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2067 the call to fetch() always tries to fetch enough data for at least one
2070 the call to fetch() always tries to fetch enough data for at least one
2068 full screen. This makes it possible to simply call moveto(0,0,True) in
2071 full screen. This makes it possible to simply call moveto(0,0,True) in
2069 the constructor. Fix typos and removed the obsolete goto attribute.
2072 the constructor. Fix typos and removed the obsolete goto attribute.
2070
2073
2071 2006-06-12 Ville Vainio <vivainio@gmail.com>
2074 2006-06-12 Ville Vainio <vivainio@gmail.com>
2072
2075
2073 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2076 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2074 allowing $variable interpolation within multiline statements,
2077 allowing $variable interpolation within multiline statements,
2075 though so far only with "sh" profile for a testing period.
2078 though so far only with "sh" profile for a testing period.
2076 The patch also enables splitting long commands with \ but it
2079 The patch also enables splitting long commands with \ but it
2077 doesn't work properly yet.
2080 doesn't work properly yet.
2078
2081
2079 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2082 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2080
2083
2081 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2084 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2082 input history and the position of the cursor in the input history for
2085 input history and the position of the cursor in the input history for
2083 the find, findbackwards and goto command.
2086 the find, findbackwards and goto command.
2084
2087
2085 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2088 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2086
2089
2087 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2090 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2088 implements the basic functionality of browser commands that require
2091 implements the basic functionality of browser commands that require
2089 input. Reimplement the goto, find and findbackwards commands as
2092 input. Reimplement the goto, find and findbackwards commands as
2090 subclasses of _CommandInput. Add an input history and keymaps to those
2093 subclasses of _CommandInput. Add an input history and keymaps to those
2091 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2094 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2092 execute commands.
2095 execute commands.
2093
2096
2094 2006-06-07 Ville Vainio <vivainio@gmail.com>
2097 2006-06-07 Ville Vainio <vivainio@gmail.com>
2095
2098
2096 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2099 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2097 running the batch files instead of leaving the session open.
2100 running the batch files instead of leaving the session open.
2098
2101
2099 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2102 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2100
2103
2101 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2104 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2102 the original fix was incomplete. Patch submitted by W. Maier.
2105 the original fix was incomplete. Patch submitted by W. Maier.
2103
2106
2104 2006-06-07 Ville Vainio <vivainio@gmail.com>
2107 2006-06-07 Ville Vainio <vivainio@gmail.com>
2105
2108
2106 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2109 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2107 Confirmation prompts can be supressed by 'quiet' option.
2110 Confirmation prompts can be supressed by 'quiet' option.
2108 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2111 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2109
2112
2110 2006-06-06 *** Released version 0.7.2
2113 2006-06-06 *** Released version 0.7.2
2111
2114
2112 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2115 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2113
2116
2114 * IPython/Release.py (version): Made 0.7.2 final for release.
2117 * IPython/Release.py (version): Made 0.7.2 final for release.
2115 Repo tagged and release cut.
2118 Repo tagged and release cut.
2116
2119
2117 2006-06-05 Ville Vainio <vivainio@gmail.com>
2120 2006-06-05 Ville Vainio <vivainio@gmail.com>
2118
2121
2119 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2122 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2120 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2123 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2121
2124
2122 * upgrade_dir.py: try import 'path' module a bit harder
2125 * upgrade_dir.py: try import 'path' module a bit harder
2123 (for %upgrade)
2126 (for %upgrade)
2124
2127
2125 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2128 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2126
2129
2127 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2130 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2128 instead of looping 20 times.
2131 instead of looping 20 times.
2129
2132
2130 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2133 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2131 correctly at initialization time. Bug reported by Krishna Mohan
2134 correctly at initialization time. Bug reported by Krishna Mohan
2132 Gundu <gkmohan-AT-gmail.com> on the user list.
2135 Gundu <gkmohan-AT-gmail.com> on the user list.
2133
2136
2134 * IPython/Release.py (version): Mark 0.7.2 version to start
2137 * IPython/Release.py (version): Mark 0.7.2 version to start
2135 testing for release on 06/06.
2138 testing for release on 06/06.
2136
2139
2137 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2140 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2138
2141
2139 * scripts/irunner: thin script interface so users don't have to
2142 * scripts/irunner: thin script interface so users don't have to
2140 find the module and call it as an executable, since modules rarely
2143 find the module and call it as an executable, since modules rarely
2141 live in people's PATH.
2144 live in people's PATH.
2142
2145
2143 * IPython/irunner.py (InteractiveRunner.__init__): added
2146 * IPython/irunner.py (InteractiveRunner.__init__): added
2144 delaybeforesend attribute to control delays with newer versions of
2147 delaybeforesend attribute to control delays with newer versions of
2145 pexpect. Thanks to detailed help from pexpect's author, Noah
2148 pexpect. Thanks to detailed help from pexpect's author, Noah
2146 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2149 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2147 correctly (it works in NoColor mode).
2150 correctly (it works in NoColor mode).
2148
2151
2149 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2152 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2150 SAGE list, from improper log() calls.
2153 SAGE list, from improper log() calls.
2151
2154
2152 2006-05-31 Ville Vainio <vivainio@gmail.com>
2155 2006-05-31 Ville Vainio <vivainio@gmail.com>
2153
2156
2154 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2157 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2155 with args in parens to work correctly with dirs that have spaces.
2158 with args in parens to work correctly with dirs that have spaces.
2156
2159
2157 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2160 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2158
2161
2159 * IPython/Logger.py (Logger.logstart): add option to log raw input
2162 * IPython/Logger.py (Logger.logstart): add option to log raw input
2160 instead of the processed one. A -r flag was added to the
2163 instead of the processed one. A -r flag was added to the
2161 %logstart magic used for controlling logging.
2164 %logstart magic used for controlling logging.
2162
2165
2163 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2166 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2164
2167
2165 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2168 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2166 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2169 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2167 recognize the option. After a bug report by Will Maier. This
2170 recognize the option. After a bug report by Will Maier. This
2168 closes #64 (will do it after confirmation from W. Maier).
2171 closes #64 (will do it after confirmation from W. Maier).
2169
2172
2170 * IPython/irunner.py: New module to run scripts as if manually
2173 * IPython/irunner.py: New module to run scripts as if manually
2171 typed into an interactive environment, based on pexpect. After a
2174 typed into an interactive environment, based on pexpect. After a
2172 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2175 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2173 ipython-user list. Simple unittests in the tests/ directory.
2176 ipython-user list. Simple unittests in the tests/ directory.
2174
2177
2175 * tools/release: add Will Maier, OpenBSD port maintainer, to
2178 * tools/release: add Will Maier, OpenBSD port maintainer, to
2176 recepients list. We are now officially part of the OpenBSD ports:
2179 recepients list. We are now officially part of the OpenBSD ports:
2177 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2180 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2178 work.
2181 work.
2179
2182
2180 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2183 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2181
2184
2182 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2185 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2183 so that it doesn't break tkinter apps.
2186 so that it doesn't break tkinter apps.
2184
2187
2185 * IPython/iplib.py (_prefilter): fix bug where aliases would
2188 * IPython/iplib.py (_prefilter): fix bug where aliases would
2186 shadow variables when autocall was fully off. Reported by SAGE
2189 shadow variables when autocall was fully off. Reported by SAGE
2187 author William Stein.
2190 author William Stein.
2188
2191
2189 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2192 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2190 at what detail level strings are computed when foo? is requested.
2193 at what detail level strings are computed when foo? is requested.
2191 This allows users to ask for example that the string form of an
2194 This allows users to ask for example that the string form of an
2192 object is only computed when foo?? is called, or even never, by
2195 object is only computed when foo?? is called, or even never, by
2193 setting the object_info_string_level >= 2 in the configuration
2196 setting the object_info_string_level >= 2 in the configuration
2194 file. This new option has been added and documented. After a
2197 file. This new option has been added and documented. After a
2195 request by SAGE to be able to control the printing of very large
2198 request by SAGE to be able to control the printing of very large
2196 objects more easily.
2199 objects more easily.
2197
2200
2198 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2201 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2199
2202
2200 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2203 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2201 from sys.argv, to be 100% consistent with how Python itself works
2204 from sys.argv, to be 100% consistent with how Python itself works
2202 (as seen for example with python -i file.py). After a bug report
2205 (as seen for example with python -i file.py). After a bug report
2203 by Jeffrey Collins.
2206 by Jeffrey Collins.
2204
2207
2205 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2208 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2206 nasty bug which was preventing custom namespaces with -pylab,
2209 nasty bug which was preventing custom namespaces with -pylab,
2207 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2210 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2208 compatibility (long gone from mpl).
2211 compatibility (long gone from mpl).
2209
2212
2210 * IPython/ipapi.py (make_session): name change: create->make. We
2213 * IPython/ipapi.py (make_session): name change: create->make. We
2211 use make in other places (ipmaker,...), it's shorter and easier to
2214 use make in other places (ipmaker,...), it's shorter and easier to
2212 type and say, etc. I'm trying to clean things before 0.7.2 so
2215 type and say, etc. I'm trying to clean things before 0.7.2 so
2213 that I can keep things stable wrt to ipapi in the chainsaw branch.
2216 that I can keep things stable wrt to ipapi in the chainsaw branch.
2214
2217
2215 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2218 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2216 python-mode recognizes our debugger mode. Add support for
2219 python-mode recognizes our debugger mode. Add support for
2217 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2220 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2218 <m.liu.jin-AT-gmail.com> originally written by
2221 <m.liu.jin-AT-gmail.com> originally written by
2219 doxgen-AT-newsmth.net (with minor modifications for xemacs
2222 doxgen-AT-newsmth.net (with minor modifications for xemacs
2220 compatibility)
2223 compatibility)
2221
2224
2222 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2225 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2223 tracebacks when walking the stack so that the stack tracking system
2226 tracebacks when walking the stack so that the stack tracking system
2224 in emacs' python-mode can identify the frames correctly.
2227 in emacs' python-mode can identify the frames correctly.
2225
2228
2226 * IPython/ipmaker.py (make_IPython): make the internal (and
2229 * IPython/ipmaker.py (make_IPython): make the internal (and
2227 default config) autoedit_syntax value false by default. Too many
2230 default config) autoedit_syntax value false by default. Too many
2228 users have complained to me (both on and off-list) about problems
2231 users have complained to me (both on and off-list) about problems
2229 with this option being on by default, so I'm making it default to
2232 with this option being on by default, so I'm making it default to
2230 off. It can still be enabled by anyone via the usual mechanisms.
2233 off. It can still be enabled by anyone via the usual mechanisms.
2231
2234
2232 * IPython/completer.py (Completer.attr_matches): add support for
2235 * IPython/completer.py (Completer.attr_matches): add support for
2233 PyCrust-style _getAttributeNames magic method. Patch contributed
2236 PyCrust-style _getAttributeNames magic method. Patch contributed
2234 by <mscott-AT-goldenspud.com>. Closes #50.
2237 by <mscott-AT-goldenspud.com>. Closes #50.
2235
2238
2236 * IPython/iplib.py (InteractiveShell.__init__): remove the
2239 * IPython/iplib.py (InteractiveShell.__init__): remove the
2237 deletion of exit/quit from __builtin__, which can break
2240 deletion of exit/quit from __builtin__, which can break
2238 third-party tools like the Zope debugging console. The
2241 third-party tools like the Zope debugging console. The
2239 %exit/%quit magics remain. In general, it's probably a good idea
2242 %exit/%quit magics remain. In general, it's probably a good idea
2240 not to delete anything from __builtin__, since we never know what
2243 not to delete anything from __builtin__, since we never know what
2241 that will break. In any case, python now (for 2.5) will support
2244 that will break. In any case, python now (for 2.5) will support
2242 'real' exit/quit, so this issue is moot. Closes #55.
2245 'real' exit/quit, so this issue is moot. Closes #55.
2243
2246
2244 * IPython/genutils.py (with_obj): rename the 'with' function to
2247 * IPython/genutils.py (with_obj): rename the 'with' function to
2245 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2248 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2246 becomes a language keyword. Closes #53.
2249 becomes a language keyword. Closes #53.
2247
2250
2248 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2251 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2249 __file__ attribute to this so it fools more things into thinking
2252 __file__ attribute to this so it fools more things into thinking
2250 it is a real module. Closes #59.
2253 it is a real module. Closes #59.
2251
2254
2252 * IPython/Magic.py (magic_edit): add -n option to open the editor
2255 * IPython/Magic.py (magic_edit): add -n option to open the editor
2253 at a specific line number. After a patch by Stefan van der Walt.
2256 at a specific line number. After a patch by Stefan van der Walt.
2254
2257
2255 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2258 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2256
2259
2257 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2260 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2258 reason the file could not be opened. After automatic crash
2261 reason the file could not be opened. After automatic crash
2259 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2262 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2260 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2263 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2261 (_should_recompile): Don't fire editor if using %bg, since there
2264 (_should_recompile): Don't fire editor if using %bg, since there
2262 is no file in the first place. From the same report as above.
2265 is no file in the first place. From the same report as above.
2263 (raw_input): protect against faulty third-party prefilters. After
2266 (raw_input): protect against faulty third-party prefilters. After
2264 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2267 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2265 while running under SAGE.
2268 while running under SAGE.
2266
2269
2267 2006-05-23 Ville Vainio <vivainio@gmail.com>
2270 2006-05-23 Ville Vainio <vivainio@gmail.com>
2268
2271
2269 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2272 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2270 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2273 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2271 now returns None (again), unless dummy is specifically allowed by
2274 now returns None (again), unless dummy is specifically allowed by
2272 ipapi.get(allow_dummy=True).
2275 ipapi.get(allow_dummy=True).
2273
2276
2274 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2277 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2275
2278
2276 * IPython: remove all 2.2-compatibility objects and hacks from
2279 * IPython: remove all 2.2-compatibility objects and hacks from
2277 everywhere, since we only support 2.3 at this point. Docs
2280 everywhere, since we only support 2.3 at this point. Docs
2278 updated.
2281 updated.
2279
2282
2280 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2283 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2281 Anything requiring extra validation can be turned into a Python
2284 Anything requiring extra validation can be turned into a Python
2282 property in the future. I used a property for the db one b/c
2285 property in the future. I used a property for the db one b/c
2283 there was a nasty circularity problem with the initialization
2286 there was a nasty circularity problem with the initialization
2284 order, which right now I don't have time to clean up.
2287 order, which right now I don't have time to clean up.
2285
2288
2286 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2289 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2287 another locking bug reported by Jorgen. I'm not 100% sure though,
2290 another locking bug reported by Jorgen. I'm not 100% sure though,
2288 so more testing is needed...
2291 so more testing is needed...
2289
2292
2290 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2293 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2291
2294
2292 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2295 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2293 local variables from any routine in user code (typically executed
2296 local variables from any routine in user code (typically executed
2294 with %run) directly into the interactive namespace. Very useful
2297 with %run) directly into the interactive namespace. Very useful
2295 when doing complex debugging.
2298 when doing complex debugging.
2296 (IPythonNotRunning): Changed the default None object to a dummy
2299 (IPythonNotRunning): Changed the default None object to a dummy
2297 whose attributes can be queried as well as called without
2300 whose attributes can be queried as well as called without
2298 exploding, to ease writing code which works transparently both in
2301 exploding, to ease writing code which works transparently both in
2299 and out of ipython and uses some of this API.
2302 and out of ipython and uses some of this API.
2300
2303
2301 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2304 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2302
2305
2303 * IPython/hooks.py (result_display): Fix the fact that our display
2306 * IPython/hooks.py (result_display): Fix the fact that our display
2304 hook was using str() instead of repr(), as the default python
2307 hook was using str() instead of repr(), as the default python
2305 console does. This had gone unnoticed b/c it only happened if
2308 console does. This had gone unnoticed b/c it only happened if
2306 %Pprint was off, but the inconsistency was there.
2309 %Pprint was off, but the inconsistency was there.
2307
2310
2308 2006-05-15 Ville Vainio <vivainio@gmail.com>
2311 2006-05-15 Ville Vainio <vivainio@gmail.com>
2309
2312
2310 * Oinspect.py: Only show docstring for nonexisting/binary files
2313 * Oinspect.py: Only show docstring for nonexisting/binary files
2311 when doing object??, closing ticket #62
2314 when doing object??, closing ticket #62
2312
2315
2313 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2316 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2314
2317
2315 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2318 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2316 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2319 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2317 was being released in a routine which hadn't checked if it had
2320 was being released in a routine which hadn't checked if it had
2318 been the one to acquire it.
2321 been the one to acquire it.
2319
2322
2320 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2323 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2321
2324
2322 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2325 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2323
2326
2324 2006-04-11 Ville Vainio <vivainio@gmail.com>
2327 2006-04-11 Ville Vainio <vivainio@gmail.com>
2325
2328
2326 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2329 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2327 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2330 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2328 prefilters, allowing stuff like magics and aliases in the file.
2331 prefilters, allowing stuff like magics and aliases in the file.
2329
2332
2330 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2333 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2331 added. Supported now are "%clear in" and "%clear out" (clear input and
2334 added. Supported now are "%clear in" and "%clear out" (clear input and
2332 output history, respectively). Also fixed CachedOutput.flush to
2335 output history, respectively). Also fixed CachedOutput.flush to
2333 properly flush the output cache.
2336 properly flush the output cache.
2334
2337
2335 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2338 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2336 half-success (and fail explicitly).
2339 half-success (and fail explicitly).
2337
2340
2338 2006-03-28 Ville Vainio <vivainio@gmail.com>
2341 2006-03-28 Ville Vainio <vivainio@gmail.com>
2339
2342
2340 * iplib.py: Fix quoting of aliases so that only argless ones
2343 * iplib.py: Fix quoting of aliases so that only argless ones
2341 are quoted
2344 are quoted
2342
2345
2343 2006-03-28 Ville Vainio <vivainio@gmail.com>
2346 2006-03-28 Ville Vainio <vivainio@gmail.com>
2344
2347
2345 * iplib.py: Quote aliases with spaces in the name.
2348 * iplib.py: Quote aliases with spaces in the name.
2346 "c:\program files\blah\bin" is now legal alias target.
2349 "c:\program files\blah\bin" is now legal alias target.
2347
2350
2348 * ext_rehashdir.py: Space no longer allowed as arg
2351 * ext_rehashdir.py: Space no longer allowed as arg
2349 separator, since space is legal in path names.
2352 separator, since space is legal in path names.
2350
2353
2351 2006-03-16 Ville Vainio <vivainio@gmail.com>
2354 2006-03-16 Ville Vainio <vivainio@gmail.com>
2352
2355
2353 * upgrade_dir.py: Take path.py from Extensions, correcting
2356 * upgrade_dir.py: Take path.py from Extensions, correcting
2354 %upgrade magic
2357 %upgrade magic
2355
2358
2356 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2359 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2357
2360
2358 * hooks.py: Only enclose editor binary in quotes if legal and
2361 * hooks.py: Only enclose editor binary in quotes if legal and
2359 necessary (space in the name, and is an existing file). Fixes a bug
2362 necessary (space in the name, and is an existing file). Fixes a bug
2360 reported by Zachary Pincus.
2363 reported by Zachary Pincus.
2361
2364
2362 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2365 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2363
2366
2364 * Manual: thanks to a tip on proper color handling for Emacs, by
2367 * Manual: thanks to a tip on proper color handling for Emacs, by
2365 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2368 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2366
2369
2367 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2370 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2368 by applying the provided patch. Thanks to Liu Jin
2371 by applying the provided patch. Thanks to Liu Jin
2369 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2372 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2370 XEmacs/Linux, I'm trusting the submitter that it actually helps
2373 XEmacs/Linux, I'm trusting the submitter that it actually helps
2371 under win32/GNU Emacs. Will revisit if any problems are reported.
2374 under win32/GNU Emacs. Will revisit if any problems are reported.
2372
2375
2373 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2376 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2374
2377
2375 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2378 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2376 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2379 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2377
2380
2378 2006-03-12 Ville Vainio <vivainio@gmail.com>
2381 2006-03-12 Ville Vainio <vivainio@gmail.com>
2379
2382
2380 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2383 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2381 Torsten Marek.
2384 Torsten Marek.
2382
2385
2383 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2386 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2384
2387
2385 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2388 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2386 line ranges works again.
2389 line ranges works again.
2387
2390
2388 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2391 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2389
2392
2390 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2393 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2391 and friends, after a discussion with Zach Pincus on ipython-user.
2394 and friends, after a discussion with Zach Pincus on ipython-user.
2392 I'm not 100% sure, but after thinking about it quite a bit, it may
2395 I'm not 100% sure, but after thinking about it quite a bit, it may
2393 be OK. Testing with the multithreaded shells didn't reveal any
2396 be OK. Testing with the multithreaded shells didn't reveal any
2394 problems, but let's keep an eye out.
2397 problems, but let's keep an eye out.
2395
2398
2396 In the process, I fixed a few things which were calling
2399 In the process, I fixed a few things which were calling
2397 self.InteractiveTB() directly (like safe_execfile), which is a
2400 self.InteractiveTB() directly (like safe_execfile), which is a
2398 mistake: ALL exception reporting should be done by calling
2401 mistake: ALL exception reporting should be done by calling
2399 self.showtraceback(), which handles state and tab-completion and
2402 self.showtraceback(), which handles state and tab-completion and
2400 more.
2403 more.
2401
2404
2402 2006-03-01 Ville Vainio <vivainio@gmail.com>
2405 2006-03-01 Ville Vainio <vivainio@gmail.com>
2403
2406
2404 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2407 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2405 To use, do "from ipipe import *".
2408 To use, do "from ipipe import *".
2406
2409
2407 2006-02-24 Ville Vainio <vivainio@gmail.com>
2410 2006-02-24 Ville Vainio <vivainio@gmail.com>
2408
2411
2409 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2412 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2410 "cleanly" and safely than the older upgrade mechanism.
2413 "cleanly" and safely than the older upgrade mechanism.
2411
2414
2412 2006-02-21 Ville Vainio <vivainio@gmail.com>
2415 2006-02-21 Ville Vainio <vivainio@gmail.com>
2413
2416
2414 * Magic.py: %save works again.
2417 * Magic.py: %save works again.
2415
2418
2416 2006-02-15 Ville Vainio <vivainio@gmail.com>
2419 2006-02-15 Ville Vainio <vivainio@gmail.com>
2417
2420
2418 * Magic.py: %Pprint works again
2421 * Magic.py: %Pprint works again
2419
2422
2420 * Extensions/ipy_sane_defaults.py: Provide everything provided
2423 * Extensions/ipy_sane_defaults.py: Provide everything provided
2421 in default ipythonrc, to make it possible to have a completely empty
2424 in default ipythonrc, to make it possible to have a completely empty
2422 ipythonrc (and thus completely rc-file free configuration)
2425 ipythonrc (and thus completely rc-file free configuration)
2423
2426
2424 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2427 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2425
2428
2426 * IPython/hooks.py (editor): quote the call to the editor command,
2429 * IPython/hooks.py (editor): quote the call to the editor command,
2427 to allow commands with spaces in them. Problem noted by watching
2430 to allow commands with spaces in them. Problem noted by watching
2428 Ian Oswald's video about textpad under win32 at
2431 Ian Oswald's video about textpad under win32 at
2429 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2432 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2430
2433
2431 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2434 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2432 describing magics (we haven't used @ for a loong time).
2435 describing magics (we haven't used @ for a loong time).
2433
2436
2434 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2437 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2435 contributed by marienz to close
2438 contributed by marienz to close
2436 http://www.scipy.net/roundup/ipython/issue53.
2439 http://www.scipy.net/roundup/ipython/issue53.
2437
2440
2438 2006-02-10 Ville Vainio <vivainio@gmail.com>
2441 2006-02-10 Ville Vainio <vivainio@gmail.com>
2439
2442
2440 * genutils.py: getoutput now works in win32 too
2443 * genutils.py: getoutput now works in win32 too
2441
2444
2442 * completer.py: alias and magic completion only invoked
2445 * completer.py: alias and magic completion only invoked
2443 at the first "item" in the line, to avoid "cd %store"
2446 at the first "item" in the line, to avoid "cd %store"
2444 nonsense.
2447 nonsense.
2445
2448
2446 2006-02-09 Ville Vainio <vivainio@gmail.com>
2449 2006-02-09 Ville Vainio <vivainio@gmail.com>
2447
2450
2448 * test/*: Added a unit testing framework (finally).
2451 * test/*: Added a unit testing framework (finally).
2449 '%run runtests.py' to run test_*.
2452 '%run runtests.py' to run test_*.
2450
2453
2451 * ipapi.py: Exposed runlines and set_custom_exc
2454 * ipapi.py: Exposed runlines and set_custom_exc
2452
2455
2453 2006-02-07 Ville Vainio <vivainio@gmail.com>
2456 2006-02-07 Ville Vainio <vivainio@gmail.com>
2454
2457
2455 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2458 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2456 instead use "f(1 2)" as before.
2459 instead use "f(1 2)" as before.
2457
2460
2458 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2461 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2459
2462
2460 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2463 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2461 facilities, for demos processed by the IPython input filter
2464 facilities, for demos processed by the IPython input filter
2462 (IPythonDemo), and for running a script one-line-at-a-time as a
2465 (IPythonDemo), and for running a script one-line-at-a-time as a
2463 demo, both for pure Python (LineDemo) and for IPython-processed
2466 demo, both for pure Python (LineDemo) and for IPython-processed
2464 input (IPythonLineDemo). After a request by Dave Kohel, from the
2467 input (IPythonLineDemo). After a request by Dave Kohel, from the
2465 SAGE team.
2468 SAGE team.
2466 (Demo.edit): added an edit() method to the demo objects, to edit
2469 (Demo.edit): added an edit() method to the demo objects, to edit
2467 the in-memory copy of the last executed block.
2470 the in-memory copy of the last executed block.
2468
2471
2469 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2472 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2470 processing to %edit, %macro and %save. These commands can now be
2473 processing to %edit, %macro and %save. These commands can now be
2471 invoked on the unprocessed input as it was typed by the user
2474 invoked on the unprocessed input as it was typed by the user
2472 (without any prefilters applied). After requests by the SAGE team
2475 (without any prefilters applied). After requests by the SAGE team
2473 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2476 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2474
2477
2475 2006-02-01 Ville Vainio <vivainio@gmail.com>
2478 2006-02-01 Ville Vainio <vivainio@gmail.com>
2476
2479
2477 * setup.py, eggsetup.py: easy_install ipython==dev works
2480 * setup.py, eggsetup.py: easy_install ipython==dev works
2478 correctly now (on Linux)
2481 correctly now (on Linux)
2479
2482
2480 * ipy_user_conf,ipmaker: user config changes, removed spurious
2483 * ipy_user_conf,ipmaker: user config changes, removed spurious
2481 warnings
2484 warnings
2482
2485
2483 * iplib: if rc.banner is string, use it as is.
2486 * iplib: if rc.banner is string, use it as is.
2484
2487
2485 * Magic: %pycat accepts a string argument and pages it's contents.
2488 * Magic: %pycat accepts a string argument and pages it's contents.
2486
2489
2487
2490
2488 2006-01-30 Ville Vainio <vivainio@gmail.com>
2491 2006-01-30 Ville Vainio <vivainio@gmail.com>
2489
2492
2490 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2493 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2491 Now %store and bookmarks work through PickleShare, meaning that
2494 Now %store and bookmarks work through PickleShare, meaning that
2492 concurrent access is possible and all ipython sessions see the
2495 concurrent access is possible and all ipython sessions see the
2493 same database situation all the time, instead of snapshot of
2496 same database situation all the time, instead of snapshot of
2494 the situation when the session was started. Hence, %bookmark
2497 the situation when the session was started. Hence, %bookmark
2495 results are immediately accessible from othes sessions. The database
2498 results are immediately accessible from othes sessions. The database
2496 is also available for use by user extensions. See:
2499 is also available for use by user extensions. See:
2497 http://www.python.org/pypi/pickleshare
2500 http://www.python.org/pypi/pickleshare
2498
2501
2499 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2502 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2500
2503
2501 * aliases can now be %store'd
2504 * aliases can now be %store'd
2502
2505
2503 * path.py moved to Extensions so that pickleshare does not need
2506 * path.py moved to Extensions so that pickleshare does not need
2504 IPython-specific import. Extensions added to pythonpath right
2507 IPython-specific import. Extensions added to pythonpath right
2505 at __init__.
2508 at __init__.
2506
2509
2507 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2510 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2508 called with _ip.system and the pre-transformed command string.
2511 called with _ip.system and the pre-transformed command string.
2509
2512
2510 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2513 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2511
2514
2512 * IPython/iplib.py (interact): Fix that we were not catching
2515 * IPython/iplib.py (interact): Fix that we were not catching
2513 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2516 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2514 logic here had to change, but it's fixed now.
2517 logic here had to change, but it's fixed now.
2515
2518
2516 2006-01-29 Ville Vainio <vivainio@gmail.com>
2519 2006-01-29 Ville Vainio <vivainio@gmail.com>
2517
2520
2518 * iplib.py: Try to import pyreadline on Windows.
2521 * iplib.py: Try to import pyreadline on Windows.
2519
2522
2520 2006-01-27 Ville Vainio <vivainio@gmail.com>
2523 2006-01-27 Ville Vainio <vivainio@gmail.com>
2521
2524
2522 * iplib.py: Expose ipapi as _ip in builtin namespace.
2525 * iplib.py: Expose ipapi as _ip in builtin namespace.
2523 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2526 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2524 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2527 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2525 syntax now produce _ip.* variant of the commands.
2528 syntax now produce _ip.* variant of the commands.
2526
2529
2527 * "_ip.options().autoedit_syntax = 2" automatically throws
2530 * "_ip.options().autoedit_syntax = 2" automatically throws
2528 user to editor for syntax error correction without prompting.
2531 user to editor for syntax error correction without prompting.
2529
2532
2530 2006-01-27 Ville Vainio <vivainio@gmail.com>
2533 2006-01-27 Ville Vainio <vivainio@gmail.com>
2531
2534
2532 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2535 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2533 'ipython' at argv[0]) executed through command line.
2536 'ipython' at argv[0]) executed through command line.
2534 NOTE: this DEPRECATES calling ipython with multiple scripts
2537 NOTE: this DEPRECATES calling ipython with multiple scripts
2535 ("ipython a.py b.py c.py")
2538 ("ipython a.py b.py c.py")
2536
2539
2537 * iplib.py, hooks.py: Added configurable input prefilter,
2540 * iplib.py, hooks.py: Added configurable input prefilter,
2538 named 'input_prefilter'. See ext_rescapture.py for example
2541 named 'input_prefilter'. See ext_rescapture.py for example
2539 usage.
2542 usage.
2540
2543
2541 * ext_rescapture.py, Magic.py: Better system command output capture
2544 * ext_rescapture.py, Magic.py: Better system command output capture
2542 through 'var = !ls' (deprecates user-visible %sc). Same notation
2545 through 'var = !ls' (deprecates user-visible %sc). Same notation
2543 applies for magics, 'var = %alias' assigns alias list to var.
2546 applies for magics, 'var = %alias' assigns alias list to var.
2544
2547
2545 * ipapi.py: added meta() for accessing extension-usable data store.
2548 * ipapi.py: added meta() for accessing extension-usable data store.
2546
2549
2547 * iplib.py: added InteractiveShell.getapi(). New magics should be
2550 * iplib.py: added InteractiveShell.getapi(). New magics should be
2548 written doing self.getapi() instead of using the shell directly.
2551 written doing self.getapi() instead of using the shell directly.
2549
2552
2550 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2553 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2551 %store foo >> ~/myfoo.txt to store variables to files (in clean
2554 %store foo >> ~/myfoo.txt to store variables to files (in clean
2552 textual form, not a restorable pickle).
2555 textual form, not a restorable pickle).
2553
2556
2554 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2557 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2555
2558
2556 * usage.py, Magic.py: added %quickref
2559 * usage.py, Magic.py: added %quickref
2557
2560
2558 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2561 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2559
2562
2560 * GetoptErrors when invoking magics etc. with wrong args
2563 * GetoptErrors when invoking magics etc. with wrong args
2561 are now more helpful:
2564 are now more helpful:
2562 GetoptError: option -l not recognized (allowed: "qb" )
2565 GetoptError: option -l not recognized (allowed: "qb" )
2563
2566
2564 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2567 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2565
2568
2566 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2569 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2567 computationally intensive blocks don't appear to stall the demo.
2570 computationally intensive blocks don't appear to stall the demo.
2568
2571
2569 2006-01-24 Ville Vainio <vivainio@gmail.com>
2572 2006-01-24 Ville Vainio <vivainio@gmail.com>
2570
2573
2571 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2574 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2572 value to manipulate resulting history entry.
2575 value to manipulate resulting history entry.
2573
2576
2574 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2577 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2575 to instance methods of IPApi class, to make extending an embedded
2578 to instance methods of IPApi class, to make extending an embedded
2576 IPython feasible. See ext_rehashdir.py for example usage.
2579 IPython feasible. See ext_rehashdir.py for example usage.
2577
2580
2578 * Merged 1071-1076 from branches/0.7.1
2581 * Merged 1071-1076 from branches/0.7.1
2579
2582
2580
2583
2581 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2584 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2582
2585
2583 * tools/release (daystamp): Fix build tools to use the new
2586 * tools/release (daystamp): Fix build tools to use the new
2584 eggsetup.py script to build lightweight eggs.
2587 eggsetup.py script to build lightweight eggs.
2585
2588
2586 * Applied changesets 1062 and 1064 before 0.7.1 release.
2589 * Applied changesets 1062 and 1064 before 0.7.1 release.
2587
2590
2588 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2591 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2589 see the raw input history (without conversions like %ls ->
2592 see the raw input history (without conversions like %ls ->
2590 ipmagic("ls")). After a request from W. Stein, SAGE
2593 ipmagic("ls")). After a request from W. Stein, SAGE
2591 (http://modular.ucsd.edu/sage) developer. This information is
2594 (http://modular.ucsd.edu/sage) developer. This information is
2592 stored in the input_hist_raw attribute of the IPython instance, so
2595 stored in the input_hist_raw attribute of the IPython instance, so
2593 developers can access it if needed (it's an InputList instance).
2596 developers can access it if needed (it's an InputList instance).
2594
2597
2595 * Versionstring = 0.7.2.svn
2598 * Versionstring = 0.7.2.svn
2596
2599
2597 * eggsetup.py: A separate script for constructing eggs, creates
2600 * eggsetup.py: A separate script for constructing eggs, creates
2598 proper launch scripts even on Windows (an .exe file in
2601 proper launch scripts even on Windows (an .exe file in
2599 \python24\scripts).
2602 \python24\scripts).
2600
2603
2601 * ipapi.py: launch_new_instance, launch entry point needed for the
2604 * ipapi.py: launch_new_instance, launch entry point needed for the
2602 egg.
2605 egg.
2603
2606
2604 2006-01-23 Ville Vainio <vivainio@gmail.com>
2607 2006-01-23 Ville Vainio <vivainio@gmail.com>
2605
2608
2606 * Added %cpaste magic for pasting python code
2609 * Added %cpaste magic for pasting python code
2607
2610
2608 2006-01-22 Ville Vainio <vivainio@gmail.com>
2611 2006-01-22 Ville Vainio <vivainio@gmail.com>
2609
2612
2610 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2613 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2611
2614
2612 * Versionstring = 0.7.2.svn
2615 * Versionstring = 0.7.2.svn
2613
2616
2614 * eggsetup.py: A separate script for constructing eggs, creates
2617 * eggsetup.py: A separate script for constructing eggs, creates
2615 proper launch scripts even on Windows (an .exe file in
2618 proper launch scripts even on Windows (an .exe file in
2616 \python24\scripts).
2619 \python24\scripts).
2617
2620
2618 * ipapi.py: launch_new_instance, launch entry point needed for the
2621 * ipapi.py: launch_new_instance, launch entry point needed for the
2619 egg.
2622 egg.
2620
2623
2621 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2624 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2622
2625
2623 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2626 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2624 %pfile foo would print the file for foo even if it was a binary.
2627 %pfile foo would print the file for foo even if it was a binary.
2625 Now, extensions '.so' and '.dll' are skipped.
2628 Now, extensions '.so' and '.dll' are skipped.
2626
2629
2627 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2630 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2628 bug, where macros would fail in all threaded modes. I'm not 100%
2631 bug, where macros would fail in all threaded modes. I'm not 100%
2629 sure, so I'm going to put out an rc instead of making a release
2632 sure, so I'm going to put out an rc instead of making a release
2630 today, and wait for feedback for at least a few days.
2633 today, and wait for feedback for at least a few days.
2631
2634
2632 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2635 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2633 it...) the handling of pasting external code with autoindent on.
2636 it...) the handling of pasting external code with autoindent on.
2634 To get out of a multiline input, the rule will appear for most
2637 To get out of a multiline input, the rule will appear for most
2635 users unchanged: two blank lines or change the indent level
2638 users unchanged: two blank lines or change the indent level
2636 proposed by IPython. But there is a twist now: you can
2639 proposed by IPython. But there is a twist now: you can
2637 add/subtract only *one or two spaces*. If you add/subtract three
2640 add/subtract only *one or two spaces*. If you add/subtract three
2638 or more (unless you completely delete the line), IPython will
2641 or more (unless you completely delete the line), IPython will
2639 accept that line, and you'll need to enter a second one of pure
2642 accept that line, and you'll need to enter a second one of pure
2640 whitespace. I know it sounds complicated, but I can't find a
2643 whitespace. I know it sounds complicated, but I can't find a
2641 different solution that covers all the cases, with the right
2644 different solution that covers all the cases, with the right
2642 heuristics. Hopefully in actual use, nobody will really notice
2645 heuristics. Hopefully in actual use, nobody will really notice
2643 all these strange rules and things will 'just work'.
2646 all these strange rules and things will 'just work'.
2644
2647
2645 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2648 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2646
2649
2647 * IPython/iplib.py (interact): catch exceptions which can be
2650 * IPython/iplib.py (interact): catch exceptions which can be
2648 triggered asynchronously by signal handlers. Thanks to an
2651 triggered asynchronously by signal handlers. Thanks to an
2649 automatic crash report, submitted by Colin Kingsley
2652 automatic crash report, submitted by Colin Kingsley
2650 <tercel-AT-gentoo.org>.
2653 <tercel-AT-gentoo.org>.
2651
2654
2652 2006-01-20 Ville Vainio <vivainio@gmail.com>
2655 2006-01-20 Ville Vainio <vivainio@gmail.com>
2653
2656
2654 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2657 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2655 (%rehashdir, very useful, try it out) of how to extend ipython
2658 (%rehashdir, very useful, try it out) of how to extend ipython
2656 with new magics. Also added Extensions dir to pythonpath to make
2659 with new magics. Also added Extensions dir to pythonpath to make
2657 importing extensions easy.
2660 importing extensions easy.
2658
2661
2659 * %store now complains when trying to store interactively declared
2662 * %store now complains when trying to store interactively declared
2660 classes / instances of those classes.
2663 classes / instances of those classes.
2661
2664
2662 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2665 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2663 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2666 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2664 if they exist, and ipy_user_conf.py with some defaults is created for
2667 if they exist, and ipy_user_conf.py with some defaults is created for
2665 the user.
2668 the user.
2666
2669
2667 * Startup rehashing done by the config file, not InterpreterExec.
2670 * Startup rehashing done by the config file, not InterpreterExec.
2668 This means system commands are available even without selecting the
2671 This means system commands are available even without selecting the
2669 pysh profile. It's the sensible default after all.
2672 pysh profile. It's the sensible default after all.
2670
2673
2671 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2674 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2672
2675
2673 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2676 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2674 multiline code with autoindent on working. But I am really not
2677 multiline code with autoindent on working. But I am really not
2675 sure, so this needs more testing. Will commit a debug-enabled
2678 sure, so this needs more testing. Will commit a debug-enabled
2676 version for now, while I test it some more, so that Ville and
2679 version for now, while I test it some more, so that Ville and
2677 others may also catch any problems. Also made
2680 others may also catch any problems. Also made
2678 self.indent_current_str() a method, to ensure that there's no
2681 self.indent_current_str() a method, to ensure that there's no
2679 chance of the indent space count and the corresponding string
2682 chance of the indent space count and the corresponding string
2680 falling out of sync. All code needing the string should just call
2683 falling out of sync. All code needing the string should just call
2681 the method.
2684 the method.
2682
2685
2683 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2686 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2684
2687
2685 * IPython/Magic.py (magic_edit): fix check for when users don't
2688 * IPython/Magic.py (magic_edit): fix check for when users don't
2686 save their output files, the try/except was in the wrong section.
2689 save their output files, the try/except was in the wrong section.
2687
2690
2688 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2691 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2689
2692
2690 * IPython/Magic.py (magic_run): fix __file__ global missing from
2693 * IPython/Magic.py (magic_run): fix __file__ global missing from
2691 script's namespace when executed via %run. After a report by
2694 script's namespace when executed via %run. After a report by
2692 Vivian.
2695 Vivian.
2693
2696
2694 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2697 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2695 when using python 2.4. The parent constructor changed in 2.4, and
2698 when using python 2.4. The parent constructor changed in 2.4, and
2696 we need to track it directly (we can't call it, as it messes up
2699 we need to track it directly (we can't call it, as it messes up
2697 readline and tab-completion inside our pdb would stop working).
2700 readline and tab-completion inside our pdb would stop working).
2698 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2701 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2699
2702
2700 2006-01-16 Ville Vainio <vivainio@gmail.com>
2703 2006-01-16 Ville Vainio <vivainio@gmail.com>
2701
2704
2702 * Ipython/magic.py: Reverted back to old %edit functionality
2705 * Ipython/magic.py: Reverted back to old %edit functionality
2703 that returns file contents on exit.
2706 that returns file contents on exit.
2704
2707
2705 * IPython/path.py: Added Jason Orendorff's "path" module to
2708 * IPython/path.py: Added Jason Orendorff's "path" module to
2706 IPython tree, http://www.jorendorff.com/articles/python/path/.
2709 IPython tree, http://www.jorendorff.com/articles/python/path/.
2707 You can get path objects conveniently through %sc, and !!, e.g.:
2710 You can get path objects conveniently through %sc, and !!, e.g.:
2708 sc files=ls
2711 sc files=ls
2709 for p in files.paths: # or files.p
2712 for p in files.paths: # or files.p
2710 print p,p.mtime
2713 print p,p.mtime
2711
2714
2712 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2715 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2713 now work again without considering the exclusion regexp -
2716 now work again without considering the exclusion regexp -
2714 hence, things like ',foo my/path' turn to 'foo("my/path")'
2717 hence, things like ',foo my/path' turn to 'foo("my/path")'
2715 instead of syntax error.
2718 instead of syntax error.
2716
2719
2717
2720
2718 2006-01-14 Ville Vainio <vivainio@gmail.com>
2721 2006-01-14 Ville Vainio <vivainio@gmail.com>
2719
2722
2720 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2723 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2721 ipapi decorators for python 2.4 users, options() provides access to rc
2724 ipapi decorators for python 2.4 users, options() provides access to rc
2722 data.
2725 data.
2723
2726
2724 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2727 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2725 as path separators (even on Linux ;-). Space character after
2728 as path separators (even on Linux ;-). Space character after
2726 backslash (as yielded by tab completer) is still space;
2729 backslash (as yielded by tab completer) is still space;
2727 "%cd long\ name" works as expected.
2730 "%cd long\ name" works as expected.
2728
2731
2729 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2732 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2730 as "chain of command", with priority. API stays the same,
2733 as "chain of command", with priority. API stays the same,
2731 TryNext exception raised by a hook function signals that
2734 TryNext exception raised by a hook function signals that
2732 current hook failed and next hook should try handling it, as
2735 current hook failed and next hook should try handling it, as
2733 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2736 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2734 requested configurable display hook, which is now implemented.
2737 requested configurable display hook, which is now implemented.
2735
2738
2736 2006-01-13 Ville Vainio <vivainio@gmail.com>
2739 2006-01-13 Ville Vainio <vivainio@gmail.com>
2737
2740
2738 * IPython/platutils*.py: platform specific utility functions,
2741 * IPython/platutils*.py: platform specific utility functions,
2739 so far only set_term_title is implemented (change terminal
2742 so far only set_term_title is implemented (change terminal
2740 label in windowing systems). %cd now changes the title to
2743 label in windowing systems). %cd now changes the title to
2741 current dir.
2744 current dir.
2742
2745
2743 * IPython/Release.py: Added myself to "authors" list,
2746 * IPython/Release.py: Added myself to "authors" list,
2744 had to create new files.
2747 had to create new files.
2745
2748
2746 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2749 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2747 shell escape; not a known bug but had potential to be one in the
2750 shell escape; not a known bug but had potential to be one in the
2748 future.
2751 future.
2749
2752
2750 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2753 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2751 extension API for IPython! See the module for usage example. Fix
2754 extension API for IPython! See the module for usage example. Fix
2752 OInspect for docstring-less magic functions.
2755 OInspect for docstring-less magic functions.
2753
2756
2754
2757
2755 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2758 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2756
2759
2757 * IPython/iplib.py (raw_input): temporarily deactivate all
2760 * IPython/iplib.py (raw_input): temporarily deactivate all
2758 attempts at allowing pasting of code with autoindent on. It
2761 attempts at allowing pasting of code with autoindent on. It
2759 introduced bugs (reported by Prabhu) and I can't seem to find a
2762 introduced bugs (reported by Prabhu) and I can't seem to find a
2760 robust combination which works in all cases. Will have to revisit
2763 robust combination which works in all cases. Will have to revisit
2761 later.
2764 later.
2762
2765
2763 * IPython/genutils.py: remove isspace() function. We've dropped
2766 * IPython/genutils.py: remove isspace() function. We've dropped
2764 2.2 compatibility, so it's OK to use the string method.
2767 2.2 compatibility, so it's OK to use the string method.
2765
2768
2766 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2769 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2767
2770
2768 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2771 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2769 matching what NOT to autocall on, to include all python binary
2772 matching what NOT to autocall on, to include all python binary
2770 operators (including things like 'and', 'or', 'is' and 'in').
2773 operators (including things like 'and', 'or', 'is' and 'in').
2771 Prompted by a bug report on 'foo & bar', but I realized we had
2774 Prompted by a bug report on 'foo & bar', but I realized we had
2772 many more potential bug cases with other operators. The regexp is
2775 many more potential bug cases with other operators. The regexp is
2773 self.re_exclude_auto, it's fairly commented.
2776 self.re_exclude_auto, it's fairly commented.
2774
2777
2775 2006-01-12 Ville Vainio <vivainio@gmail.com>
2778 2006-01-12 Ville Vainio <vivainio@gmail.com>
2776
2779
2777 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2780 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2778 Prettified and hardened string/backslash quoting with ipsystem(),
2781 Prettified and hardened string/backslash quoting with ipsystem(),
2779 ipalias() and ipmagic(). Now even \ characters are passed to
2782 ipalias() and ipmagic(). Now even \ characters are passed to
2780 %magics, !shell escapes and aliases exactly as they are in the
2783 %magics, !shell escapes and aliases exactly as they are in the
2781 ipython command line. Should improve backslash experience,
2784 ipython command line. Should improve backslash experience,
2782 particularly in Windows (path delimiter for some commands that
2785 particularly in Windows (path delimiter for some commands that
2783 won't understand '/'), but Unix benefits as well (regexps). %cd
2786 won't understand '/'), but Unix benefits as well (regexps). %cd
2784 magic still doesn't support backslash path delimiters, though. Also
2787 magic still doesn't support backslash path delimiters, though. Also
2785 deleted all pretense of supporting multiline command strings in
2788 deleted all pretense of supporting multiline command strings in
2786 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2789 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2787
2790
2788 * doc/build_doc_instructions.txt added. Documentation on how to
2791 * doc/build_doc_instructions.txt added. Documentation on how to
2789 use doc/update_manual.py, added yesterday. Both files contributed
2792 use doc/update_manual.py, added yesterday. Both files contributed
2790 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2793 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2791 doc/*.sh for deprecation at a later date.
2794 doc/*.sh for deprecation at a later date.
2792
2795
2793 * /ipython.py Added ipython.py to root directory for
2796 * /ipython.py Added ipython.py to root directory for
2794 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2797 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2795 ipython.py) and development convenience (no need to keep doing
2798 ipython.py) and development convenience (no need to keep doing
2796 "setup.py install" between changes).
2799 "setup.py install" between changes).
2797
2800
2798 * Made ! and !! shell escapes work (again) in multiline expressions:
2801 * Made ! and !! shell escapes work (again) in multiline expressions:
2799 if 1:
2802 if 1:
2800 !ls
2803 !ls
2801 !!ls
2804 !!ls
2802
2805
2803 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2806 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2804
2807
2805 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2808 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2806 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2809 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2807 module in case-insensitive installation. Was causing crashes
2810 module in case-insensitive installation. Was causing crashes
2808 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2811 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2809
2812
2810 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2813 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2811 <marienz-AT-gentoo.org>, closes
2814 <marienz-AT-gentoo.org>, closes
2812 http://www.scipy.net/roundup/ipython/issue51.
2815 http://www.scipy.net/roundup/ipython/issue51.
2813
2816
2814 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2817 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2815
2818
2816 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2819 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2817 problem of excessive CPU usage under *nix and keyboard lag under
2820 problem of excessive CPU usage under *nix and keyboard lag under
2818 win32.
2821 win32.
2819
2822
2820 2006-01-10 *** Released version 0.7.0
2823 2006-01-10 *** Released version 0.7.0
2821
2824
2822 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2825 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2823
2826
2824 * IPython/Release.py (revision): tag version number to 0.7.0,
2827 * IPython/Release.py (revision): tag version number to 0.7.0,
2825 ready for release.
2828 ready for release.
2826
2829
2827 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2830 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2828 it informs the user of the name of the temp. file used. This can
2831 it informs the user of the name of the temp. file used. This can
2829 help if you decide later to reuse that same file, so you know
2832 help if you decide later to reuse that same file, so you know
2830 where to copy the info from.
2833 where to copy the info from.
2831
2834
2832 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2835 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2833
2836
2834 * setup_bdist_egg.py: little script to build an egg. Added
2837 * setup_bdist_egg.py: little script to build an egg. Added
2835 support in the release tools as well.
2838 support in the release tools as well.
2836
2839
2837 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2840 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2838
2841
2839 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2842 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2840 version selection (new -wxversion command line and ipythonrc
2843 version selection (new -wxversion command line and ipythonrc
2841 parameter). Patch contributed by Arnd Baecker
2844 parameter). Patch contributed by Arnd Baecker
2842 <arnd.baecker-AT-web.de>.
2845 <arnd.baecker-AT-web.de>.
2843
2846
2844 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2847 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2845 embedded instances, for variables defined at the interactive
2848 embedded instances, for variables defined at the interactive
2846 prompt of the embedded ipython. Reported by Arnd.
2849 prompt of the embedded ipython. Reported by Arnd.
2847
2850
2848 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2851 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2849 it can be used as a (stateful) toggle, or with a direct parameter.
2852 it can be used as a (stateful) toggle, or with a direct parameter.
2850
2853
2851 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2854 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2852 could be triggered in certain cases and cause the traceback
2855 could be triggered in certain cases and cause the traceback
2853 printer not to work.
2856 printer not to work.
2854
2857
2855 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2858 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2856
2859
2857 * IPython/iplib.py (_should_recompile): Small fix, closes
2860 * IPython/iplib.py (_should_recompile): Small fix, closes
2858 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2861 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2859
2862
2860 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2863 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2861
2864
2862 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2865 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2863 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2866 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2864 Moad for help with tracking it down.
2867 Moad for help with tracking it down.
2865
2868
2866 * IPython/iplib.py (handle_auto): fix autocall handling for
2869 * IPython/iplib.py (handle_auto): fix autocall handling for
2867 objects which support BOTH __getitem__ and __call__ (so that f [x]
2870 objects which support BOTH __getitem__ and __call__ (so that f [x]
2868 is left alone, instead of becoming f([x]) automatically).
2871 is left alone, instead of becoming f([x]) automatically).
2869
2872
2870 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2873 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2871 Ville's patch.
2874 Ville's patch.
2872
2875
2873 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2876 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2874
2877
2875 * IPython/iplib.py (handle_auto): changed autocall semantics to
2878 * IPython/iplib.py (handle_auto): changed autocall semantics to
2876 include 'smart' mode, where the autocall transformation is NOT
2879 include 'smart' mode, where the autocall transformation is NOT
2877 applied if there are no arguments on the line. This allows you to
2880 applied if there are no arguments on the line. This allows you to
2878 just type 'foo' if foo is a callable to see its internal form,
2881 just type 'foo' if foo is a callable to see its internal form,
2879 instead of having it called with no arguments (typically a
2882 instead of having it called with no arguments (typically a
2880 mistake). The old 'full' autocall still exists: for that, you
2883 mistake). The old 'full' autocall still exists: for that, you
2881 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2884 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2882
2885
2883 * IPython/completer.py (Completer.attr_matches): add
2886 * IPython/completer.py (Completer.attr_matches): add
2884 tab-completion support for Enthoughts' traits. After a report by
2887 tab-completion support for Enthoughts' traits. After a report by
2885 Arnd and a patch by Prabhu.
2888 Arnd and a patch by Prabhu.
2886
2889
2887 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2890 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2888
2891
2889 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2892 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2890 Schmolck's patch to fix inspect.getinnerframes().
2893 Schmolck's patch to fix inspect.getinnerframes().
2891
2894
2892 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2895 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2893 for embedded instances, regarding handling of namespaces and items
2896 for embedded instances, regarding handling of namespaces and items
2894 added to the __builtin__ one. Multiple embedded instances and
2897 added to the __builtin__ one. Multiple embedded instances and
2895 recursive embeddings should work better now (though I'm not sure
2898 recursive embeddings should work better now (though I'm not sure
2896 I've got all the corner cases fixed, that code is a bit of a brain
2899 I've got all the corner cases fixed, that code is a bit of a brain
2897 twister).
2900 twister).
2898
2901
2899 * IPython/Magic.py (magic_edit): added support to edit in-memory
2902 * IPython/Magic.py (magic_edit): added support to edit in-memory
2900 macros (automatically creates the necessary temp files). %edit
2903 macros (automatically creates the necessary temp files). %edit
2901 also doesn't return the file contents anymore, it's just noise.
2904 also doesn't return the file contents anymore, it's just noise.
2902
2905
2903 * IPython/completer.py (Completer.attr_matches): revert change to
2906 * IPython/completer.py (Completer.attr_matches): revert change to
2904 complete only on attributes listed in __all__. I realized it
2907 complete only on attributes listed in __all__. I realized it
2905 cripples the tab-completion system as a tool for exploring the
2908 cripples the tab-completion system as a tool for exploring the
2906 internals of unknown libraries (it renders any non-__all__
2909 internals of unknown libraries (it renders any non-__all__
2907 attribute off-limits). I got bit by this when trying to see
2910 attribute off-limits). I got bit by this when trying to see
2908 something inside the dis module.
2911 something inside the dis module.
2909
2912
2910 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2913 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2911
2914
2912 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2915 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2913 namespace for users and extension writers to hold data in. This
2916 namespace for users and extension writers to hold data in. This
2914 follows the discussion in
2917 follows the discussion in
2915 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2918 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2916
2919
2917 * IPython/completer.py (IPCompleter.complete): small patch to help
2920 * IPython/completer.py (IPCompleter.complete): small patch to help
2918 tab-completion under Emacs, after a suggestion by John Barnard
2921 tab-completion under Emacs, after a suggestion by John Barnard
2919 <barnarj-AT-ccf.org>.
2922 <barnarj-AT-ccf.org>.
2920
2923
2921 * IPython/Magic.py (Magic.extract_input_slices): added support for
2924 * IPython/Magic.py (Magic.extract_input_slices): added support for
2922 the slice notation in magics to use N-M to represent numbers N...M
2925 the slice notation in magics to use N-M to represent numbers N...M
2923 (closed endpoints). This is used by %macro and %save.
2926 (closed endpoints). This is used by %macro and %save.
2924
2927
2925 * IPython/completer.py (Completer.attr_matches): for modules which
2928 * IPython/completer.py (Completer.attr_matches): for modules which
2926 define __all__, complete only on those. After a patch by Jeffrey
2929 define __all__, complete only on those. After a patch by Jeffrey
2927 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2930 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2928 speed up this routine.
2931 speed up this routine.
2929
2932
2930 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2933 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2931 don't know if this is the end of it, but the behavior now is
2934 don't know if this is the end of it, but the behavior now is
2932 certainly much more correct. Note that coupled with macros,
2935 certainly much more correct. Note that coupled with macros,
2933 slightly surprising (at first) behavior may occur: a macro will in
2936 slightly surprising (at first) behavior may occur: a macro will in
2934 general expand to multiple lines of input, so upon exiting, the
2937 general expand to multiple lines of input, so upon exiting, the
2935 in/out counters will both be bumped by the corresponding amount
2938 in/out counters will both be bumped by the corresponding amount
2936 (as if the macro's contents had been typed interactively). Typing
2939 (as if the macro's contents had been typed interactively). Typing
2937 %hist will reveal the intermediate (silently processed) lines.
2940 %hist will reveal the intermediate (silently processed) lines.
2938
2941
2939 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2942 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2940 pickle to fail (%run was overwriting __main__ and not restoring
2943 pickle to fail (%run was overwriting __main__ and not restoring
2941 it, but pickle relies on __main__ to operate).
2944 it, but pickle relies on __main__ to operate).
2942
2945
2943 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2946 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2944 using properties, but forgot to make the main InteractiveShell
2947 using properties, but forgot to make the main InteractiveShell
2945 class a new-style class. Properties fail silently, and
2948 class a new-style class. Properties fail silently, and
2946 mysteriously, with old-style class (getters work, but
2949 mysteriously, with old-style class (getters work, but
2947 setters don't do anything).
2950 setters don't do anything).
2948
2951
2949 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2952 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2950
2953
2951 * IPython/Magic.py (magic_history): fix history reporting bug (I
2954 * IPython/Magic.py (magic_history): fix history reporting bug (I
2952 know some nasties are still there, I just can't seem to find a
2955 know some nasties are still there, I just can't seem to find a
2953 reproducible test case to track them down; the input history is
2956 reproducible test case to track them down; the input history is
2954 falling out of sync...)
2957 falling out of sync...)
2955
2958
2956 * IPython/iplib.py (handle_shell_escape): fix bug where both
2959 * IPython/iplib.py (handle_shell_escape): fix bug where both
2957 aliases and system accesses where broken for indented code (such
2960 aliases and system accesses where broken for indented code (such
2958 as loops).
2961 as loops).
2959
2962
2960 * IPython/genutils.py (shell): fix small but critical bug for
2963 * IPython/genutils.py (shell): fix small but critical bug for
2961 win32 system access.
2964 win32 system access.
2962
2965
2963 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2966 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2964
2967
2965 * IPython/iplib.py (showtraceback): remove use of the
2968 * IPython/iplib.py (showtraceback): remove use of the
2966 sys.last_{type/value/traceback} structures, which are non
2969 sys.last_{type/value/traceback} structures, which are non
2967 thread-safe.
2970 thread-safe.
2968 (_prefilter): change control flow to ensure that we NEVER
2971 (_prefilter): change control flow to ensure that we NEVER
2969 introspect objects when autocall is off. This will guarantee that
2972 introspect objects when autocall is off. This will guarantee that
2970 having an input line of the form 'x.y', where access to attribute
2973 having an input line of the form 'x.y', where access to attribute
2971 'y' has side effects, doesn't trigger the side effect TWICE. It
2974 'y' has side effects, doesn't trigger the side effect TWICE. It
2972 is important to note that, with autocall on, these side effects
2975 is important to note that, with autocall on, these side effects
2973 can still happen.
2976 can still happen.
2974 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2977 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2975 trio. IPython offers these three kinds of special calls which are
2978 trio. IPython offers these three kinds of special calls which are
2976 not python code, and it's a good thing to have their call method
2979 not python code, and it's a good thing to have their call method
2977 be accessible as pure python functions (not just special syntax at
2980 be accessible as pure python functions (not just special syntax at
2978 the command line). It gives us a better internal implementation
2981 the command line). It gives us a better internal implementation
2979 structure, as well as exposing these for user scripting more
2982 structure, as well as exposing these for user scripting more
2980 cleanly.
2983 cleanly.
2981
2984
2982 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2985 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2983 file. Now that they'll be more likely to be used with the
2986 file. Now that they'll be more likely to be used with the
2984 persistance system (%store), I want to make sure their module path
2987 persistance system (%store), I want to make sure their module path
2985 doesn't change in the future, so that we don't break things for
2988 doesn't change in the future, so that we don't break things for
2986 users' persisted data.
2989 users' persisted data.
2987
2990
2988 * IPython/iplib.py (autoindent_update): move indentation
2991 * IPython/iplib.py (autoindent_update): move indentation
2989 management into the _text_ processing loop, not the keyboard
2992 management into the _text_ processing loop, not the keyboard
2990 interactive one. This is necessary to correctly process non-typed
2993 interactive one. This is necessary to correctly process non-typed
2991 multiline input (such as macros).
2994 multiline input (such as macros).
2992
2995
2993 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2996 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2994 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2997 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2995 which was producing problems in the resulting manual.
2998 which was producing problems in the resulting manual.
2996 (magic_whos): improve reporting of instances (show their class,
2999 (magic_whos): improve reporting of instances (show their class,
2997 instead of simply printing 'instance' which isn't terribly
3000 instead of simply printing 'instance' which isn't terribly
2998 informative).
3001 informative).
2999
3002
3000 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3003 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3001 (minor mods) to support network shares under win32.
3004 (minor mods) to support network shares under win32.
3002
3005
3003 * IPython/winconsole.py (get_console_size): add new winconsole
3006 * IPython/winconsole.py (get_console_size): add new winconsole
3004 module and fixes to page_dumb() to improve its behavior under
3007 module and fixes to page_dumb() to improve its behavior under
3005 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3008 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3006
3009
3007 * IPython/Magic.py (Macro): simplified Macro class to just
3010 * IPython/Magic.py (Macro): simplified Macro class to just
3008 subclass list. We've had only 2.2 compatibility for a very long
3011 subclass list. We've had only 2.2 compatibility for a very long
3009 time, yet I was still avoiding subclassing the builtin types. No
3012 time, yet I was still avoiding subclassing the builtin types. No
3010 more (I'm also starting to use properties, though I won't shift to
3013 more (I'm also starting to use properties, though I won't shift to
3011 2.3-specific features quite yet).
3014 2.3-specific features quite yet).
3012 (magic_store): added Ville's patch for lightweight variable
3015 (magic_store): added Ville's patch for lightweight variable
3013 persistence, after a request on the user list by Matt Wilkie
3016 persistence, after a request on the user list by Matt Wilkie
3014 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3017 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3015 details.
3018 details.
3016
3019
3017 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3020 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3018 changed the default logfile name from 'ipython.log' to
3021 changed the default logfile name from 'ipython.log' to
3019 'ipython_log.py'. These logs are real python files, and now that
3022 'ipython_log.py'. These logs are real python files, and now that
3020 we have much better multiline support, people are more likely to
3023 we have much better multiline support, people are more likely to
3021 want to use them as such. Might as well name them correctly.
3024 want to use them as such. Might as well name them correctly.
3022
3025
3023 * IPython/Magic.py: substantial cleanup. While we can't stop
3026 * IPython/Magic.py: substantial cleanup. While we can't stop
3024 using magics as mixins, due to the existing customizations 'out
3027 using magics as mixins, due to the existing customizations 'out
3025 there' which rely on the mixin naming conventions, at least I
3028 there' which rely on the mixin naming conventions, at least I
3026 cleaned out all cross-class name usage. So once we are OK with
3029 cleaned out all cross-class name usage. So once we are OK with
3027 breaking compatibility, the two systems can be separated.
3030 breaking compatibility, the two systems can be separated.
3028
3031
3029 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3032 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3030 anymore, and the class is a fair bit less hideous as well. New
3033 anymore, and the class is a fair bit less hideous as well. New
3031 features were also introduced: timestamping of input, and logging
3034 features were also introduced: timestamping of input, and logging
3032 of output results. These are user-visible with the -t and -o
3035 of output results. These are user-visible with the -t and -o
3033 options to %logstart. Closes
3036 options to %logstart. Closes
3034 http://www.scipy.net/roundup/ipython/issue11 and a request by
3037 http://www.scipy.net/roundup/ipython/issue11 and a request by
3035 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3038 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3036
3039
3037 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3040 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3038
3041
3039 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3042 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3040 better handle backslashes in paths. See the thread 'More Windows
3043 better handle backslashes in paths. See the thread 'More Windows
3041 questions part 2 - \/ characters revisited' on the iypthon user
3044 questions part 2 - \/ characters revisited' on the iypthon user
3042 list:
3045 list:
3043 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3046 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3044
3047
3045 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3048 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3046
3049
3047 (InteractiveShell.__init__): change threaded shells to not use the
3050 (InteractiveShell.__init__): change threaded shells to not use the
3048 ipython crash handler. This was causing more problems than not,
3051 ipython crash handler. This was causing more problems than not,
3049 as exceptions in the main thread (GUI code, typically) would
3052 as exceptions in the main thread (GUI code, typically) would
3050 always show up as a 'crash', when they really weren't.
3053 always show up as a 'crash', when they really weren't.
3051
3054
3052 The colors and exception mode commands (%colors/%xmode) have been
3055 The colors and exception mode commands (%colors/%xmode) have been
3053 synchronized to also take this into account, so users can get
3056 synchronized to also take this into account, so users can get
3054 verbose exceptions for their threaded code as well. I also added
3057 verbose exceptions for their threaded code as well. I also added
3055 support for activating pdb inside this exception handler as well,
3058 support for activating pdb inside this exception handler as well,
3056 so now GUI authors can use IPython's enhanced pdb at runtime.
3059 so now GUI authors can use IPython's enhanced pdb at runtime.
3057
3060
3058 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3061 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3059 true by default, and add it to the shipped ipythonrc file. Since
3062 true by default, and add it to the shipped ipythonrc file. Since
3060 this asks the user before proceeding, I think it's OK to make it
3063 this asks the user before proceeding, I think it's OK to make it
3061 true by default.
3064 true by default.
3062
3065
3063 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3066 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3064 of the previous special-casing of input in the eval loop. I think
3067 of the previous special-casing of input in the eval loop. I think
3065 this is cleaner, as they really are commands and shouldn't have
3068 this is cleaner, as they really are commands and shouldn't have
3066 a special role in the middle of the core code.
3069 a special role in the middle of the core code.
3067
3070
3068 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3071 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3069
3072
3070 * IPython/iplib.py (edit_syntax_error): added support for
3073 * IPython/iplib.py (edit_syntax_error): added support for
3071 automatically reopening the editor if the file had a syntax error
3074 automatically reopening the editor if the file had a syntax error
3072 in it. Thanks to scottt who provided the patch at:
3075 in it. Thanks to scottt who provided the patch at:
3073 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3076 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3074 version committed).
3077 version committed).
3075
3078
3076 * IPython/iplib.py (handle_normal): add suport for multi-line
3079 * IPython/iplib.py (handle_normal): add suport for multi-line
3077 input with emtpy lines. This fixes
3080 input with emtpy lines. This fixes
3078 http://www.scipy.net/roundup/ipython/issue43 and a similar
3081 http://www.scipy.net/roundup/ipython/issue43 and a similar
3079 discussion on the user list.
3082 discussion on the user list.
3080
3083
3081 WARNING: a behavior change is necessarily introduced to support
3084 WARNING: a behavior change is necessarily introduced to support
3082 blank lines: now a single blank line with whitespace does NOT
3085 blank lines: now a single blank line with whitespace does NOT
3083 break the input loop, which means that when autoindent is on, by
3086 break the input loop, which means that when autoindent is on, by
3084 default hitting return on the next (indented) line does NOT exit.
3087 default hitting return on the next (indented) line does NOT exit.
3085
3088
3086 Instead, to exit a multiline input you can either have:
3089 Instead, to exit a multiline input you can either have:
3087
3090
3088 - TWO whitespace lines (just hit return again), or
3091 - TWO whitespace lines (just hit return again), or
3089 - a single whitespace line of a different length than provided
3092 - a single whitespace line of a different length than provided
3090 by the autoindent (add or remove a space).
3093 by the autoindent (add or remove a space).
3091
3094
3092 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3095 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3093 module to better organize all readline-related functionality.
3096 module to better organize all readline-related functionality.
3094 I've deleted FlexCompleter and put all completion clases here.
3097 I've deleted FlexCompleter and put all completion clases here.
3095
3098
3096 * IPython/iplib.py (raw_input): improve indentation management.
3099 * IPython/iplib.py (raw_input): improve indentation management.
3097 It is now possible to paste indented code with autoindent on, and
3100 It is now possible to paste indented code with autoindent on, and
3098 the code is interpreted correctly (though it still looks bad on
3101 the code is interpreted correctly (though it still looks bad on
3099 screen, due to the line-oriented nature of ipython).
3102 screen, due to the line-oriented nature of ipython).
3100 (MagicCompleter.complete): change behavior so that a TAB key on an
3103 (MagicCompleter.complete): change behavior so that a TAB key on an
3101 otherwise empty line actually inserts a tab, instead of completing
3104 otherwise empty line actually inserts a tab, instead of completing
3102 on the entire global namespace. This makes it easier to use the
3105 on the entire global namespace. This makes it easier to use the
3103 TAB key for indentation. After a request by Hans Meine
3106 TAB key for indentation. After a request by Hans Meine
3104 <hans_meine-AT-gmx.net>
3107 <hans_meine-AT-gmx.net>
3105 (_prefilter): add support so that typing plain 'exit' or 'quit'
3108 (_prefilter): add support so that typing plain 'exit' or 'quit'
3106 does a sensible thing. Originally I tried to deviate as little as
3109 does a sensible thing. Originally I tried to deviate as little as
3107 possible from the default python behavior, but even that one may
3110 possible from the default python behavior, but even that one may
3108 change in this direction (thread on python-dev to that effect).
3111 change in this direction (thread on python-dev to that effect).
3109 Regardless, ipython should do the right thing even if CPython's
3112 Regardless, ipython should do the right thing even if CPython's
3110 '>>>' prompt doesn't.
3113 '>>>' prompt doesn't.
3111 (InteractiveShell): removed subclassing code.InteractiveConsole
3114 (InteractiveShell): removed subclassing code.InteractiveConsole
3112 class. By now we'd overridden just about all of its methods: I've
3115 class. By now we'd overridden just about all of its methods: I've
3113 copied the remaining two over, and now ipython is a standalone
3116 copied the remaining two over, and now ipython is a standalone
3114 class. This will provide a clearer picture for the chainsaw
3117 class. This will provide a clearer picture for the chainsaw
3115 branch refactoring.
3118 branch refactoring.
3116
3119
3117 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3120 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3118
3121
3119 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3122 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3120 failures for objects which break when dir() is called on them.
3123 failures for objects which break when dir() is called on them.
3121
3124
3122 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3125 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3123 distinct local and global namespaces in the completer API. This
3126 distinct local and global namespaces in the completer API. This
3124 change allows us to properly handle completion with distinct
3127 change allows us to properly handle completion with distinct
3125 scopes, including in embedded instances (this had never really
3128 scopes, including in embedded instances (this had never really
3126 worked correctly).
3129 worked correctly).
3127
3130
3128 Note: this introduces a change in the constructor for
3131 Note: this introduces a change in the constructor for
3129 MagicCompleter, as a new global_namespace parameter is now the
3132 MagicCompleter, as a new global_namespace parameter is now the
3130 second argument (the others were bumped one position).
3133 second argument (the others were bumped one position).
3131
3134
3132 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3135 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3133
3136
3134 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3137 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3135 embedded instances (which can be done now thanks to Vivian's
3138 embedded instances (which can be done now thanks to Vivian's
3136 frame-handling fixes for pdb).
3139 frame-handling fixes for pdb).
3137 (InteractiveShell.__init__): Fix namespace handling problem in
3140 (InteractiveShell.__init__): Fix namespace handling problem in
3138 embedded instances. We were overwriting __main__ unconditionally,
3141 embedded instances. We were overwriting __main__ unconditionally,
3139 and this should only be done for 'full' (non-embedded) IPython;
3142 and this should only be done for 'full' (non-embedded) IPython;
3140 embedded instances must respect the caller's __main__. Thanks to
3143 embedded instances must respect the caller's __main__. Thanks to
3141 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3144 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3142
3145
3143 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3146 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3144
3147
3145 * setup.py: added download_url to setup(). This registers the
3148 * setup.py: added download_url to setup(). This registers the
3146 download address at PyPI, which is not only useful to humans
3149 download address at PyPI, which is not only useful to humans
3147 browsing the site, but is also picked up by setuptools (the Eggs
3150 browsing the site, but is also picked up by setuptools (the Eggs
3148 machinery). Thanks to Ville and R. Kern for the info/discussion
3151 machinery). Thanks to Ville and R. Kern for the info/discussion
3149 on this.
3152 on this.
3150
3153
3151 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3154 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3152
3155
3153 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3156 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3154 This brings a lot of nice functionality to the pdb mode, which now
3157 This brings a lot of nice functionality to the pdb mode, which now
3155 has tab-completion, syntax highlighting, and better stack handling
3158 has tab-completion, syntax highlighting, and better stack handling
3156 than before. Many thanks to Vivian De Smedt
3159 than before. Many thanks to Vivian De Smedt
3157 <vivian-AT-vdesmedt.com> for the original patches.
3160 <vivian-AT-vdesmedt.com> for the original patches.
3158
3161
3159 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3162 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3160
3163
3161 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3164 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3162 sequence to consistently accept the banner argument. The
3165 sequence to consistently accept the banner argument. The
3163 inconsistency was tripping SAGE, thanks to Gary Zablackis
3166 inconsistency was tripping SAGE, thanks to Gary Zablackis
3164 <gzabl-AT-yahoo.com> for the report.
3167 <gzabl-AT-yahoo.com> for the report.
3165
3168
3166 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3169 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3167
3170
3168 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3171 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3169 Fix bug where a naked 'alias' call in the ipythonrc file would
3172 Fix bug where a naked 'alias' call in the ipythonrc file would
3170 cause a crash. Bug reported by Jorgen Stenarson.
3173 cause a crash. Bug reported by Jorgen Stenarson.
3171
3174
3172 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3175 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3173
3176
3174 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3177 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3175 startup time.
3178 startup time.
3176
3179
3177 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3180 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3178 instances had introduced a bug with globals in normal code. Now
3181 instances had introduced a bug with globals in normal code. Now
3179 it's working in all cases.
3182 it's working in all cases.
3180
3183
3181 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3184 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3182 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3185 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3183 has been introduced to set the default case sensitivity of the
3186 has been introduced to set the default case sensitivity of the
3184 searches. Users can still select either mode at runtime on a
3187 searches. Users can still select either mode at runtime on a
3185 per-search basis.
3188 per-search basis.
3186
3189
3187 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3190 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3188
3191
3189 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3192 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3190 attributes in wildcard searches for subclasses. Modified version
3193 attributes in wildcard searches for subclasses. Modified version
3191 of a patch by Jorgen.
3194 of a patch by Jorgen.
3192
3195
3193 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3196 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3194
3197
3195 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3198 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3196 embedded instances. I added a user_global_ns attribute to the
3199 embedded instances. I added a user_global_ns attribute to the
3197 InteractiveShell class to handle this.
3200 InteractiveShell class to handle this.
3198
3201
3199 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3202 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3200
3203
3201 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3204 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3202 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3205 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3203 (reported under win32, but may happen also in other platforms).
3206 (reported under win32, but may happen also in other platforms).
3204 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3207 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3205
3208
3206 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3209 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3207
3210
3208 * IPython/Magic.py (magic_psearch): new support for wildcard
3211 * IPython/Magic.py (magic_psearch): new support for wildcard
3209 patterns. Now, typing ?a*b will list all names which begin with a
3212 patterns. Now, typing ?a*b will list all names which begin with a
3210 and end in b, for example. The %psearch magic has full
3213 and end in b, for example. The %psearch magic has full
3211 docstrings. Many thanks to JΓΆrgen Stenarson
3214 docstrings. Many thanks to JΓΆrgen Stenarson
3212 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3215 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3213 implementing this functionality.
3216 implementing this functionality.
3214
3217
3215 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3218 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3216
3219
3217 * Manual: fixed long-standing annoyance of double-dashes (as in
3220 * Manual: fixed long-standing annoyance of double-dashes (as in
3218 --prefix=~, for example) being stripped in the HTML version. This
3221 --prefix=~, for example) being stripped in the HTML version. This
3219 is a latex2html bug, but a workaround was provided. Many thanks
3222 is a latex2html bug, but a workaround was provided. Many thanks
3220 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3223 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3221 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3224 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3222 rolling. This seemingly small issue had tripped a number of users
3225 rolling. This seemingly small issue had tripped a number of users
3223 when first installing, so I'm glad to see it gone.
3226 when first installing, so I'm glad to see it gone.
3224
3227
3225 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3228 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3226
3229
3227 * IPython/Extensions/numeric_formats.py: fix missing import,
3230 * IPython/Extensions/numeric_formats.py: fix missing import,
3228 reported by Stephen Walton.
3231 reported by Stephen Walton.
3229
3232
3230 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3233 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3231
3234
3232 * IPython/demo.py: finish demo module, fully documented now.
3235 * IPython/demo.py: finish demo module, fully documented now.
3233
3236
3234 * IPython/genutils.py (file_read): simple little utility to read a
3237 * IPython/genutils.py (file_read): simple little utility to read a
3235 file and ensure it's closed afterwards.
3238 file and ensure it's closed afterwards.
3236
3239
3237 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3240 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3238
3241
3239 * IPython/demo.py (Demo.__init__): added support for individually
3242 * IPython/demo.py (Demo.__init__): added support for individually
3240 tagging blocks for automatic execution.
3243 tagging blocks for automatic execution.
3241
3244
3242 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3245 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3243 syntax-highlighted python sources, requested by John.
3246 syntax-highlighted python sources, requested by John.
3244
3247
3245 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3248 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3246
3249
3247 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3250 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3248 finishing.
3251 finishing.
3249
3252
3250 * IPython/genutils.py (shlex_split): moved from Magic to here,
3253 * IPython/genutils.py (shlex_split): moved from Magic to here,
3251 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3254 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3252
3255
3253 * IPython/demo.py (Demo.__init__): added support for silent
3256 * IPython/demo.py (Demo.__init__): added support for silent
3254 blocks, improved marks as regexps, docstrings written.
3257 blocks, improved marks as regexps, docstrings written.
3255 (Demo.__init__): better docstring, added support for sys.argv.
3258 (Demo.__init__): better docstring, added support for sys.argv.
3256
3259
3257 * IPython/genutils.py (marquee): little utility used by the demo
3260 * IPython/genutils.py (marquee): little utility used by the demo
3258 code, handy in general.
3261 code, handy in general.
3259
3262
3260 * IPython/demo.py (Demo.__init__): new class for interactive
3263 * IPython/demo.py (Demo.__init__): new class for interactive
3261 demos. Not documented yet, I just wrote it in a hurry for
3264 demos. Not documented yet, I just wrote it in a hurry for
3262 scipy'05. Will docstring later.
3265 scipy'05. Will docstring later.
3263
3266
3264 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3267 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3265
3268
3266 * IPython/Shell.py (sigint_handler): Drastic simplification which
3269 * IPython/Shell.py (sigint_handler): Drastic simplification which
3267 also seems to make Ctrl-C work correctly across threads! This is
3270 also seems to make Ctrl-C work correctly across threads! This is
3268 so simple, that I can't beleive I'd missed it before. Needs more
3271 so simple, that I can't beleive I'd missed it before. Needs more
3269 testing, though.
3272 testing, though.
3270 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3273 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3271 like this before...
3274 like this before...
3272
3275
3273 * IPython/genutils.py (get_home_dir): add protection against
3276 * IPython/genutils.py (get_home_dir): add protection against
3274 non-dirs in win32 registry.
3277 non-dirs in win32 registry.
3275
3278
3276 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3279 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3277 bug where dict was mutated while iterating (pysh crash).
3280 bug where dict was mutated while iterating (pysh crash).
3278
3281
3279 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3282 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3280
3283
3281 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3284 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3282 spurious newlines added by this routine. After a report by
3285 spurious newlines added by this routine. After a report by
3283 F. Mantegazza.
3286 F. Mantegazza.
3284
3287
3285 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3288 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3286
3289
3287 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3290 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3288 calls. These were a leftover from the GTK 1.x days, and can cause
3291 calls. These were a leftover from the GTK 1.x days, and can cause
3289 problems in certain cases (after a report by John Hunter).
3292 problems in certain cases (after a report by John Hunter).
3290
3293
3291 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3294 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3292 os.getcwd() fails at init time. Thanks to patch from David Remahl
3295 os.getcwd() fails at init time. Thanks to patch from David Remahl
3293 <chmod007-AT-mac.com>.
3296 <chmod007-AT-mac.com>.
3294 (InteractiveShell.__init__): prevent certain special magics from
3297 (InteractiveShell.__init__): prevent certain special magics from
3295 being shadowed by aliases. Closes
3298 being shadowed by aliases. Closes
3296 http://www.scipy.net/roundup/ipython/issue41.
3299 http://www.scipy.net/roundup/ipython/issue41.
3297
3300
3298 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3301 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3299
3302
3300 * IPython/iplib.py (InteractiveShell.complete): Added new
3303 * IPython/iplib.py (InteractiveShell.complete): Added new
3301 top-level completion method to expose the completion mechanism
3304 top-level completion method to expose the completion mechanism
3302 beyond readline-based environments.
3305 beyond readline-based environments.
3303
3306
3304 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3307 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3305
3308
3306 * tools/ipsvnc (svnversion): fix svnversion capture.
3309 * tools/ipsvnc (svnversion): fix svnversion capture.
3307
3310
3308 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3311 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3309 attribute to self, which was missing. Before, it was set by a
3312 attribute to self, which was missing. Before, it was set by a
3310 routine which in certain cases wasn't being called, so the
3313 routine which in certain cases wasn't being called, so the
3311 instance could end up missing the attribute. This caused a crash.
3314 instance could end up missing the attribute. This caused a crash.
3312 Closes http://www.scipy.net/roundup/ipython/issue40.
3315 Closes http://www.scipy.net/roundup/ipython/issue40.
3313
3316
3314 2005-08-16 Fernando Perez <fperez@colorado.edu>
3317 2005-08-16 Fernando Perez <fperez@colorado.edu>
3315
3318
3316 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3319 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3317 contains non-string attribute. Closes
3320 contains non-string attribute. Closes
3318 http://www.scipy.net/roundup/ipython/issue38.
3321 http://www.scipy.net/roundup/ipython/issue38.
3319
3322
3320 2005-08-14 Fernando Perez <fperez@colorado.edu>
3323 2005-08-14 Fernando Perez <fperez@colorado.edu>
3321
3324
3322 * tools/ipsvnc: Minor improvements, to add changeset info.
3325 * tools/ipsvnc: Minor improvements, to add changeset info.
3323
3326
3324 2005-08-12 Fernando Perez <fperez@colorado.edu>
3327 2005-08-12 Fernando Perez <fperez@colorado.edu>
3325
3328
3326 * IPython/iplib.py (runsource): remove self.code_to_run_src
3329 * IPython/iplib.py (runsource): remove self.code_to_run_src
3327 attribute. I realized this is nothing more than
3330 attribute. I realized this is nothing more than
3328 '\n'.join(self.buffer), and having the same data in two different
3331 '\n'.join(self.buffer), and having the same data in two different
3329 places is just asking for synchronization bugs. This may impact
3332 places is just asking for synchronization bugs. This may impact
3330 people who have custom exception handlers, so I need to warn
3333 people who have custom exception handlers, so I need to warn
3331 ipython-dev about it (F. Mantegazza may use them).
3334 ipython-dev about it (F. Mantegazza may use them).
3332
3335
3333 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3336 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3334
3337
3335 * IPython/genutils.py: fix 2.2 compatibility (generators)
3338 * IPython/genutils.py: fix 2.2 compatibility (generators)
3336
3339
3337 2005-07-18 Fernando Perez <fperez@colorado.edu>
3340 2005-07-18 Fernando Perez <fperez@colorado.edu>
3338
3341
3339 * IPython/genutils.py (get_home_dir): fix to help users with
3342 * IPython/genutils.py (get_home_dir): fix to help users with
3340 invalid $HOME under win32.
3343 invalid $HOME under win32.
3341
3344
3342 2005-07-17 Fernando Perez <fperez@colorado.edu>
3345 2005-07-17 Fernando Perez <fperez@colorado.edu>
3343
3346
3344 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3347 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3345 some old hacks and clean up a bit other routines; code should be
3348 some old hacks and clean up a bit other routines; code should be
3346 simpler and a bit faster.
3349 simpler and a bit faster.
3347
3350
3348 * IPython/iplib.py (interact): removed some last-resort attempts
3351 * IPython/iplib.py (interact): removed some last-resort attempts
3349 to survive broken stdout/stderr. That code was only making it
3352 to survive broken stdout/stderr. That code was only making it
3350 harder to abstract out the i/o (necessary for gui integration),
3353 harder to abstract out the i/o (necessary for gui integration),
3351 and the crashes it could prevent were extremely rare in practice
3354 and the crashes it could prevent were extremely rare in practice
3352 (besides being fully user-induced in a pretty violent manner).
3355 (besides being fully user-induced in a pretty violent manner).
3353
3356
3354 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3357 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3355 Nothing major yet, but the code is simpler to read; this should
3358 Nothing major yet, but the code is simpler to read; this should
3356 make it easier to do more serious modifications in the future.
3359 make it easier to do more serious modifications in the future.
3357
3360
3358 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3361 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3359 which broke in .15 (thanks to a report by Ville).
3362 which broke in .15 (thanks to a report by Ville).
3360
3363
3361 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3364 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3362 be quite correct, I know next to nothing about unicode). This
3365 be quite correct, I know next to nothing about unicode). This
3363 will allow unicode strings to be used in prompts, amongst other
3366 will allow unicode strings to be used in prompts, amongst other
3364 cases. It also will prevent ipython from crashing when unicode
3367 cases. It also will prevent ipython from crashing when unicode
3365 shows up unexpectedly in many places. If ascii encoding fails, we
3368 shows up unexpectedly in many places. If ascii encoding fails, we
3366 assume utf_8. Currently the encoding is not a user-visible
3369 assume utf_8. Currently the encoding is not a user-visible
3367 setting, though it could be made so if there is demand for it.
3370 setting, though it could be made so if there is demand for it.
3368
3371
3369 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3372 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3370
3373
3371 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3374 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3372
3375
3373 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3376 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3374
3377
3375 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3378 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3376 code can work transparently for 2.2/2.3.
3379 code can work transparently for 2.2/2.3.
3377
3380
3378 2005-07-16 Fernando Perez <fperez@colorado.edu>
3381 2005-07-16 Fernando Perez <fperez@colorado.edu>
3379
3382
3380 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3383 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3381 out of the color scheme table used for coloring exception
3384 out of the color scheme table used for coloring exception
3382 tracebacks. This allows user code to add new schemes at runtime.
3385 tracebacks. This allows user code to add new schemes at runtime.
3383 This is a minimally modified version of the patch at
3386 This is a minimally modified version of the patch at
3384 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3387 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3385 for the contribution.
3388 for the contribution.
3386
3389
3387 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3390 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3388 slightly modified version of the patch in
3391 slightly modified version of the patch in
3389 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3392 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3390 to remove the previous try/except solution (which was costlier).
3393 to remove the previous try/except solution (which was costlier).
3391 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3394 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3392
3395
3393 2005-06-08 Fernando Perez <fperez@colorado.edu>
3396 2005-06-08 Fernando Perez <fperez@colorado.edu>
3394
3397
3395 * IPython/iplib.py (write/write_err): Add methods to abstract all
3398 * IPython/iplib.py (write/write_err): Add methods to abstract all
3396 I/O a bit more.
3399 I/O a bit more.
3397
3400
3398 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3401 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3399 warning, reported by Aric Hagberg, fix by JD Hunter.
3402 warning, reported by Aric Hagberg, fix by JD Hunter.
3400
3403
3401 2005-06-02 *** Released version 0.6.15
3404 2005-06-02 *** Released version 0.6.15
3402
3405
3403 2005-06-01 Fernando Perez <fperez@colorado.edu>
3406 2005-06-01 Fernando Perez <fperez@colorado.edu>
3404
3407
3405 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3408 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3406 tab-completion of filenames within open-quoted strings. Note that
3409 tab-completion of filenames within open-quoted strings. Note that
3407 this requires that in ~/.ipython/ipythonrc, users change the
3410 this requires that in ~/.ipython/ipythonrc, users change the
3408 readline delimiters configuration to read:
3411 readline delimiters configuration to read:
3409
3412
3410 readline_remove_delims -/~
3413 readline_remove_delims -/~
3411
3414
3412
3415
3413 2005-05-31 *** Released version 0.6.14
3416 2005-05-31 *** Released version 0.6.14
3414
3417
3415 2005-05-29 Fernando Perez <fperez@colorado.edu>
3418 2005-05-29 Fernando Perez <fperez@colorado.edu>
3416
3419
3417 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3420 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3418 with files not on the filesystem. Reported by Eliyahu Sandler
3421 with files not on the filesystem. Reported by Eliyahu Sandler
3419 <eli@gondolin.net>
3422 <eli@gondolin.net>
3420
3423
3421 2005-05-22 Fernando Perez <fperez@colorado.edu>
3424 2005-05-22 Fernando Perez <fperez@colorado.edu>
3422
3425
3423 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3426 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3424 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3427 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3425
3428
3426 2005-05-19 Fernando Perez <fperez@colorado.edu>
3429 2005-05-19 Fernando Perez <fperez@colorado.edu>
3427
3430
3428 * IPython/iplib.py (safe_execfile): close a file which could be
3431 * IPython/iplib.py (safe_execfile): close a file which could be
3429 left open (causing problems in win32, which locks open files).
3432 left open (causing problems in win32, which locks open files).
3430 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3433 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3431
3434
3432 2005-05-18 Fernando Perez <fperez@colorado.edu>
3435 2005-05-18 Fernando Perez <fperez@colorado.edu>
3433
3436
3434 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3437 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3435 keyword arguments correctly to safe_execfile().
3438 keyword arguments correctly to safe_execfile().
3436
3439
3437 2005-05-13 Fernando Perez <fperez@colorado.edu>
3440 2005-05-13 Fernando Perez <fperez@colorado.edu>
3438
3441
3439 * ipython.1: Added info about Qt to manpage, and threads warning
3442 * ipython.1: Added info about Qt to manpage, and threads warning
3440 to usage page (invoked with --help).
3443 to usage page (invoked with --help).
3441
3444
3442 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3445 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3443 new matcher (it goes at the end of the priority list) to do
3446 new matcher (it goes at the end of the priority list) to do
3444 tab-completion on named function arguments. Submitted by George
3447 tab-completion on named function arguments. Submitted by George
3445 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3448 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3446 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3449 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3447 for more details.
3450 for more details.
3448
3451
3449 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3452 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3450 SystemExit exceptions in the script being run. Thanks to a report
3453 SystemExit exceptions in the script being run. Thanks to a report
3451 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3454 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3452 producing very annoying behavior when running unit tests.
3455 producing very annoying behavior when running unit tests.
3453
3456
3454 2005-05-12 Fernando Perez <fperez@colorado.edu>
3457 2005-05-12 Fernando Perez <fperez@colorado.edu>
3455
3458
3456 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3459 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3457 which I'd broken (again) due to a changed regexp. In the process,
3460 which I'd broken (again) due to a changed regexp. In the process,
3458 added ';' as an escape to auto-quote the whole line without
3461 added ';' as an escape to auto-quote the whole line without
3459 splitting its arguments. Thanks to a report by Jerry McRae
3462 splitting its arguments. Thanks to a report by Jerry McRae
3460 <qrs0xyc02-AT-sneakemail.com>.
3463 <qrs0xyc02-AT-sneakemail.com>.
3461
3464
3462 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3465 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3463 possible crashes caused by a TokenError. Reported by Ed Schofield
3466 possible crashes caused by a TokenError. Reported by Ed Schofield
3464 <schofield-AT-ftw.at>.
3467 <schofield-AT-ftw.at>.
3465
3468
3466 2005-05-06 Fernando Perez <fperez@colorado.edu>
3469 2005-05-06 Fernando Perez <fperez@colorado.edu>
3467
3470
3468 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3471 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3469
3472
3470 2005-04-29 Fernando Perez <fperez@colorado.edu>
3473 2005-04-29 Fernando Perez <fperez@colorado.edu>
3471
3474
3472 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3475 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3473 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3476 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3474 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3477 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3475 which provides support for Qt interactive usage (similar to the
3478 which provides support for Qt interactive usage (similar to the
3476 existing one for WX and GTK). This had been often requested.
3479 existing one for WX and GTK). This had been often requested.
3477
3480
3478 2005-04-14 *** Released version 0.6.13
3481 2005-04-14 *** Released version 0.6.13
3479
3482
3480 2005-04-08 Fernando Perez <fperez@colorado.edu>
3483 2005-04-08 Fernando Perez <fperez@colorado.edu>
3481
3484
3482 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3485 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3483 from _ofind, which gets called on almost every input line. Now,
3486 from _ofind, which gets called on almost every input line. Now,
3484 we only try to get docstrings if they are actually going to be
3487 we only try to get docstrings if they are actually going to be
3485 used (the overhead of fetching unnecessary docstrings can be
3488 used (the overhead of fetching unnecessary docstrings can be
3486 noticeable for certain objects, such as Pyro proxies).
3489 noticeable for certain objects, such as Pyro proxies).
3487
3490
3488 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3491 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3489 for completers. For some reason I had been passing them the state
3492 for completers. For some reason I had been passing them the state
3490 variable, which completers never actually need, and was in
3493 variable, which completers never actually need, and was in
3491 conflict with the rlcompleter API. Custom completers ONLY need to
3494 conflict with the rlcompleter API. Custom completers ONLY need to
3492 take the text parameter.
3495 take the text parameter.
3493
3496
3494 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3497 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3495 work correctly in pysh. I've also moved all the logic which used
3498 work correctly in pysh. I've also moved all the logic which used
3496 to be in pysh.py here, which will prevent problems with future
3499 to be in pysh.py here, which will prevent problems with future
3497 upgrades. However, this time I must warn users to update their
3500 upgrades. However, this time I must warn users to update their
3498 pysh profile to include the line
3501 pysh profile to include the line
3499
3502
3500 import_all IPython.Extensions.InterpreterExec
3503 import_all IPython.Extensions.InterpreterExec
3501
3504
3502 because otherwise things won't work for them. They MUST also
3505 because otherwise things won't work for them. They MUST also
3503 delete pysh.py and the line
3506 delete pysh.py and the line
3504
3507
3505 execfile pysh.py
3508 execfile pysh.py
3506
3509
3507 from their ipythonrc-pysh.
3510 from their ipythonrc-pysh.
3508
3511
3509 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3512 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3510 robust in the face of objects whose dir() returns non-strings
3513 robust in the face of objects whose dir() returns non-strings
3511 (which it shouldn't, but some broken libs like ITK do). Thanks to
3514 (which it shouldn't, but some broken libs like ITK do). Thanks to
3512 a patch by John Hunter (implemented differently, though). Also
3515 a patch by John Hunter (implemented differently, though). Also
3513 minor improvements by using .extend instead of + on lists.
3516 minor improvements by using .extend instead of + on lists.
3514
3517
3515 * pysh.py:
3518 * pysh.py:
3516
3519
3517 2005-04-06 Fernando Perez <fperez@colorado.edu>
3520 2005-04-06 Fernando Perez <fperez@colorado.edu>
3518
3521
3519 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3522 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3520 by default, so that all users benefit from it. Those who don't
3523 by default, so that all users benefit from it. Those who don't
3521 want it can still turn it off.
3524 want it can still turn it off.
3522
3525
3523 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3526 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3524 config file, I'd forgotten about this, so users were getting it
3527 config file, I'd forgotten about this, so users were getting it
3525 off by default.
3528 off by default.
3526
3529
3527 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3530 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3528 consistency. Now magics can be called in multiline statements,
3531 consistency. Now magics can be called in multiline statements,
3529 and python variables can be expanded in magic calls via $var.
3532 and python variables can be expanded in magic calls via $var.
3530 This makes the magic system behave just like aliases or !system
3533 This makes the magic system behave just like aliases or !system
3531 calls.
3534 calls.
3532
3535
3533 2005-03-28 Fernando Perez <fperez@colorado.edu>
3536 2005-03-28 Fernando Perez <fperez@colorado.edu>
3534
3537
3535 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3538 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3536 expensive string additions for building command. Add support for
3539 expensive string additions for building command. Add support for
3537 trailing ';' when autocall is used.
3540 trailing ';' when autocall is used.
3538
3541
3539 2005-03-26 Fernando Perez <fperez@colorado.edu>
3542 2005-03-26 Fernando Perez <fperez@colorado.edu>
3540
3543
3541 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3544 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3542 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3545 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3543 ipython.el robust against prompts with any number of spaces
3546 ipython.el robust against prompts with any number of spaces
3544 (including 0) after the ':' character.
3547 (including 0) after the ':' character.
3545
3548
3546 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3549 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3547 continuation prompt, which misled users to think the line was
3550 continuation prompt, which misled users to think the line was
3548 already indented. Closes debian Bug#300847, reported to me by
3551 already indented. Closes debian Bug#300847, reported to me by
3549 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3552 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3550
3553
3551 2005-03-23 Fernando Perez <fperez@colorado.edu>
3554 2005-03-23 Fernando Perez <fperez@colorado.edu>
3552
3555
3553 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3556 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3554 properly aligned if they have embedded newlines.
3557 properly aligned if they have embedded newlines.
3555
3558
3556 * IPython/iplib.py (runlines): Add a public method to expose
3559 * IPython/iplib.py (runlines): Add a public method to expose
3557 IPython's code execution machinery, so that users can run strings
3560 IPython's code execution machinery, so that users can run strings
3558 as if they had been typed at the prompt interactively.
3561 as if they had been typed at the prompt interactively.
3559 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3562 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3560 methods which can call the system shell, but with python variable
3563 methods which can call the system shell, but with python variable
3561 expansion. The three such methods are: __IPYTHON__.system,
3564 expansion. The three such methods are: __IPYTHON__.system,
3562 .getoutput and .getoutputerror. These need to be documented in a
3565 .getoutput and .getoutputerror. These need to be documented in a
3563 'public API' section (to be written) of the manual.
3566 'public API' section (to be written) of the manual.
3564
3567
3565 2005-03-20 Fernando Perez <fperez@colorado.edu>
3568 2005-03-20 Fernando Perez <fperez@colorado.edu>
3566
3569
3567 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3570 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3568 for custom exception handling. This is quite powerful, and it
3571 for custom exception handling. This is quite powerful, and it
3569 allows for user-installable exception handlers which can trap
3572 allows for user-installable exception handlers which can trap
3570 custom exceptions at runtime and treat them separately from
3573 custom exceptions at runtime and treat them separately from
3571 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3574 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3572 Mantegazza <mantegazza-AT-ill.fr>.
3575 Mantegazza <mantegazza-AT-ill.fr>.
3573 (InteractiveShell.set_custom_completer): public API function to
3576 (InteractiveShell.set_custom_completer): public API function to
3574 add new completers at runtime.
3577 add new completers at runtime.
3575
3578
3576 2005-03-19 Fernando Perez <fperez@colorado.edu>
3579 2005-03-19 Fernando Perez <fperez@colorado.edu>
3577
3580
3578 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3581 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3579 allow objects which provide their docstrings via non-standard
3582 allow objects which provide their docstrings via non-standard
3580 mechanisms (like Pyro proxies) to still be inspected by ipython's
3583 mechanisms (like Pyro proxies) to still be inspected by ipython's
3581 ? system.
3584 ? system.
3582
3585
3583 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3586 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3584 automatic capture system. I tried quite hard to make it work
3587 automatic capture system. I tried quite hard to make it work
3585 reliably, and simply failed. I tried many combinations with the
3588 reliably, and simply failed. I tried many combinations with the
3586 subprocess module, but eventually nothing worked in all needed
3589 subprocess module, but eventually nothing worked in all needed
3587 cases (not blocking stdin for the child, duplicating stdout
3590 cases (not blocking stdin for the child, duplicating stdout
3588 without blocking, etc). The new %sc/%sx still do capture to these
3591 without blocking, etc). The new %sc/%sx still do capture to these
3589 magical list/string objects which make shell use much more
3592 magical list/string objects which make shell use much more
3590 conveninent, so not all is lost.
3593 conveninent, so not all is lost.
3591
3594
3592 XXX - FIX MANUAL for the change above!
3595 XXX - FIX MANUAL for the change above!
3593
3596
3594 (runsource): I copied code.py's runsource() into ipython to modify
3597 (runsource): I copied code.py's runsource() into ipython to modify
3595 it a bit. Now the code object and source to be executed are
3598 it a bit. Now the code object and source to be executed are
3596 stored in ipython. This makes this info accessible to third-party
3599 stored in ipython. This makes this info accessible to third-party
3597 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3600 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3598 Mantegazza <mantegazza-AT-ill.fr>.
3601 Mantegazza <mantegazza-AT-ill.fr>.
3599
3602
3600 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3603 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3601 history-search via readline (like C-p/C-n). I'd wanted this for a
3604 history-search via readline (like C-p/C-n). I'd wanted this for a
3602 long time, but only recently found out how to do it. For users
3605 long time, but only recently found out how to do it. For users
3603 who already have their ipythonrc files made and want this, just
3606 who already have their ipythonrc files made and want this, just
3604 add:
3607 add:
3605
3608
3606 readline_parse_and_bind "\e[A": history-search-backward
3609 readline_parse_and_bind "\e[A": history-search-backward
3607 readline_parse_and_bind "\e[B": history-search-forward
3610 readline_parse_and_bind "\e[B": history-search-forward
3608
3611
3609 2005-03-18 Fernando Perez <fperez@colorado.edu>
3612 2005-03-18 Fernando Perez <fperez@colorado.edu>
3610
3613
3611 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3614 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3612 LSString and SList classes which allow transparent conversions
3615 LSString and SList classes which allow transparent conversions
3613 between list mode and whitespace-separated string.
3616 between list mode and whitespace-separated string.
3614 (magic_r): Fix recursion problem in %r.
3617 (magic_r): Fix recursion problem in %r.
3615
3618
3616 * IPython/genutils.py (LSString): New class to be used for
3619 * IPython/genutils.py (LSString): New class to be used for
3617 automatic storage of the results of all alias/system calls in _o
3620 automatic storage of the results of all alias/system calls in _o
3618 and _e (stdout/err). These provide a .l/.list attribute which
3621 and _e (stdout/err). These provide a .l/.list attribute which
3619 does automatic splitting on newlines. This means that for most
3622 does automatic splitting on newlines. This means that for most
3620 uses, you'll never need to do capturing of output with %sc/%sx
3623 uses, you'll never need to do capturing of output with %sc/%sx
3621 anymore, since ipython keeps this always done for you. Note that
3624 anymore, since ipython keeps this always done for you. Note that
3622 only the LAST results are stored, the _o/e variables are
3625 only the LAST results are stored, the _o/e variables are
3623 overwritten on each call. If you need to save their contents
3626 overwritten on each call. If you need to save their contents
3624 further, simply bind them to any other name.
3627 further, simply bind them to any other name.
3625
3628
3626 2005-03-17 Fernando Perez <fperez@colorado.edu>
3629 2005-03-17 Fernando Perez <fperez@colorado.edu>
3627
3630
3628 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3631 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3629 prompt namespace handling.
3632 prompt namespace handling.
3630
3633
3631 2005-03-16 Fernando Perez <fperez@colorado.edu>
3634 2005-03-16 Fernando Perez <fperez@colorado.edu>
3632
3635
3633 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3636 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3634 classic prompts to be '>>> ' (final space was missing, and it
3637 classic prompts to be '>>> ' (final space was missing, and it
3635 trips the emacs python mode).
3638 trips the emacs python mode).
3636 (BasePrompt.__str__): Added safe support for dynamic prompt
3639 (BasePrompt.__str__): Added safe support for dynamic prompt
3637 strings. Now you can set your prompt string to be '$x', and the
3640 strings. Now you can set your prompt string to be '$x', and the
3638 value of x will be printed from your interactive namespace. The
3641 value of x will be printed from your interactive namespace. The
3639 interpolation syntax includes the full Itpl support, so
3642 interpolation syntax includes the full Itpl support, so
3640 ${foo()+x+bar()} is a valid prompt string now, and the function
3643 ${foo()+x+bar()} is a valid prompt string now, and the function
3641 calls will be made at runtime.
3644 calls will be made at runtime.
3642
3645
3643 2005-03-15 Fernando Perez <fperez@colorado.edu>
3646 2005-03-15 Fernando Perez <fperez@colorado.edu>
3644
3647
3645 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3648 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3646 avoid name clashes in pylab. %hist still works, it just forwards
3649 avoid name clashes in pylab. %hist still works, it just forwards
3647 the call to %history.
3650 the call to %history.
3648
3651
3649 2005-03-02 *** Released version 0.6.12
3652 2005-03-02 *** Released version 0.6.12
3650
3653
3651 2005-03-02 Fernando Perez <fperez@colorado.edu>
3654 2005-03-02 Fernando Perez <fperez@colorado.edu>
3652
3655
3653 * IPython/iplib.py (handle_magic): log magic calls properly as
3656 * IPython/iplib.py (handle_magic): log magic calls properly as
3654 ipmagic() function calls.
3657 ipmagic() function calls.
3655
3658
3656 * IPython/Magic.py (magic_time): Improved %time to support
3659 * IPython/Magic.py (magic_time): Improved %time to support
3657 statements and provide wall-clock as well as CPU time.
3660 statements and provide wall-clock as well as CPU time.
3658
3661
3659 2005-02-27 Fernando Perez <fperez@colorado.edu>
3662 2005-02-27 Fernando Perez <fperez@colorado.edu>
3660
3663
3661 * IPython/hooks.py: New hooks module, to expose user-modifiable
3664 * IPython/hooks.py: New hooks module, to expose user-modifiable
3662 IPython functionality in a clean manner. For now only the editor
3665 IPython functionality in a clean manner. For now only the editor
3663 hook is actually written, and other thigns which I intend to turn
3666 hook is actually written, and other thigns which I intend to turn
3664 into proper hooks aren't yet there. The display and prefilter
3667 into proper hooks aren't yet there. The display and prefilter
3665 stuff, for example, should be hooks. But at least now the
3668 stuff, for example, should be hooks. But at least now the
3666 framework is in place, and the rest can be moved here with more
3669 framework is in place, and the rest can be moved here with more
3667 time later. IPython had had a .hooks variable for a long time for
3670 time later. IPython had had a .hooks variable for a long time for
3668 this purpose, but I'd never actually used it for anything.
3671 this purpose, but I'd never actually used it for anything.
3669
3672
3670 2005-02-26 Fernando Perez <fperez@colorado.edu>
3673 2005-02-26 Fernando Perez <fperez@colorado.edu>
3671
3674
3672 * IPython/ipmaker.py (make_IPython): make the default ipython
3675 * IPython/ipmaker.py (make_IPython): make the default ipython
3673 directory be called _ipython under win32, to follow more the
3676 directory be called _ipython under win32, to follow more the
3674 naming peculiarities of that platform (where buggy software like
3677 naming peculiarities of that platform (where buggy software like
3675 Visual Sourcesafe breaks with .named directories). Reported by
3678 Visual Sourcesafe breaks with .named directories). Reported by
3676 Ville Vainio.
3679 Ville Vainio.
3677
3680
3678 2005-02-23 Fernando Perez <fperez@colorado.edu>
3681 2005-02-23 Fernando Perez <fperez@colorado.edu>
3679
3682
3680 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3683 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3681 auto_aliases for win32 which were causing problems. Users can
3684 auto_aliases for win32 which were causing problems. Users can
3682 define the ones they personally like.
3685 define the ones they personally like.
3683
3686
3684 2005-02-21 Fernando Perez <fperez@colorado.edu>
3687 2005-02-21 Fernando Perez <fperez@colorado.edu>
3685
3688
3686 * IPython/Magic.py (magic_time): new magic to time execution of
3689 * IPython/Magic.py (magic_time): new magic to time execution of
3687 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3690 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3688
3691
3689 2005-02-19 Fernando Perez <fperez@colorado.edu>
3692 2005-02-19 Fernando Perez <fperez@colorado.edu>
3690
3693
3691 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3694 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3692 into keys (for prompts, for example).
3695 into keys (for prompts, for example).
3693
3696
3694 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3697 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3695 prompts in case users want them. This introduces a small behavior
3698 prompts in case users want them. This introduces a small behavior
3696 change: ipython does not automatically add a space to all prompts
3699 change: ipython does not automatically add a space to all prompts
3697 anymore. To get the old prompts with a space, users should add it
3700 anymore. To get the old prompts with a space, users should add it
3698 manually to their ipythonrc file, so for example prompt_in1 should
3701 manually to their ipythonrc file, so for example prompt_in1 should
3699 now read 'In [\#]: ' instead of 'In [\#]:'.
3702 now read 'In [\#]: ' instead of 'In [\#]:'.
3700 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3703 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3701 file) to control left-padding of secondary prompts.
3704 file) to control left-padding of secondary prompts.
3702
3705
3703 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3706 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3704 the profiler can't be imported. Fix for Debian, which removed
3707 the profiler can't be imported. Fix for Debian, which removed
3705 profile.py because of License issues. I applied a slightly
3708 profile.py because of License issues. I applied a slightly
3706 modified version of the original Debian patch at
3709 modified version of the original Debian patch at
3707 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3710 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3708
3711
3709 2005-02-17 Fernando Perez <fperez@colorado.edu>
3712 2005-02-17 Fernando Perez <fperez@colorado.edu>
3710
3713
3711 * IPython/genutils.py (native_line_ends): Fix bug which would
3714 * IPython/genutils.py (native_line_ends): Fix bug which would
3712 cause improper line-ends under win32 b/c I was not opening files
3715 cause improper line-ends under win32 b/c I was not opening files
3713 in binary mode. Bug report and fix thanks to Ville.
3716 in binary mode. Bug report and fix thanks to Ville.
3714
3717
3715 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3718 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3716 trying to catch spurious foo[1] autocalls. My fix actually broke
3719 trying to catch spurious foo[1] autocalls. My fix actually broke
3717 ',/' autoquote/call with explicit escape (bad regexp).
3720 ',/' autoquote/call with explicit escape (bad regexp).
3718
3721
3719 2005-02-15 *** Released version 0.6.11
3722 2005-02-15 *** Released version 0.6.11
3720
3723
3721 2005-02-14 Fernando Perez <fperez@colorado.edu>
3724 2005-02-14 Fernando Perez <fperez@colorado.edu>
3722
3725
3723 * IPython/background_jobs.py: New background job management
3726 * IPython/background_jobs.py: New background job management
3724 subsystem. This is implemented via a new set of classes, and
3727 subsystem. This is implemented via a new set of classes, and
3725 IPython now provides a builtin 'jobs' object for background job
3728 IPython now provides a builtin 'jobs' object for background job
3726 execution. A convenience %bg magic serves as a lightweight
3729 execution. A convenience %bg magic serves as a lightweight
3727 frontend for starting the more common type of calls. This was
3730 frontend for starting the more common type of calls. This was
3728 inspired by discussions with B. Granger and the BackgroundCommand
3731 inspired by discussions with B. Granger and the BackgroundCommand
3729 class described in the book Python Scripting for Computational
3732 class described in the book Python Scripting for Computational
3730 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3733 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3731 (although ultimately no code from this text was used, as IPython's
3734 (although ultimately no code from this text was used, as IPython's
3732 system is a separate implementation).
3735 system is a separate implementation).
3733
3736
3734 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3737 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3735 to control the completion of single/double underscore names
3738 to control the completion of single/double underscore names
3736 separately. As documented in the example ipytonrc file, the
3739 separately. As documented in the example ipytonrc file, the
3737 readline_omit__names variable can now be set to 2, to omit even
3740 readline_omit__names variable can now be set to 2, to omit even
3738 single underscore names. Thanks to a patch by Brian Wong
3741 single underscore names. Thanks to a patch by Brian Wong
3739 <BrianWong-AT-AirgoNetworks.Com>.
3742 <BrianWong-AT-AirgoNetworks.Com>.
3740 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3743 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3741 be autocalled as foo([1]) if foo were callable. A problem for
3744 be autocalled as foo([1]) if foo were callable. A problem for
3742 things which are both callable and implement __getitem__.
3745 things which are both callable and implement __getitem__.
3743 (init_readline): Fix autoindentation for win32. Thanks to a patch
3746 (init_readline): Fix autoindentation for win32. Thanks to a patch
3744 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3747 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3745
3748
3746 2005-02-12 Fernando Perez <fperez@colorado.edu>
3749 2005-02-12 Fernando Perez <fperez@colorado.edu>
3747
3750
3748 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3751 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3749 which I had written long ago to sort out user error messages which
3752 which I had written long ago to sort out user error messages which
3750 may occur during startup. This seemed like a good idea initially,
3753 may occur during startup. This seemed like a good idea initially,
3751 but it has proven a disaster in retrospect. I don't want to
3754 but it has proven a disaster in retrospect. I don't want to
3752 change much code for now, so my fix is to set the internal 'debug'
3755 change much code for now, so my fix is to set the internal 'debug'
3753 flag to true everywhere, whose only job was precisely to control
3756 flag to true everywhere, whose only job was precisely to control
3754 this subsystem. This closes issue 28 (as well as avoiding all
3757 this subsystem. This closes issue 28 (as well as avoiding all
3755 sorts of strange hangups which occur from time to time).
3758 sorts of strange hangups which occur from time to time).
3756
3759
3757 2005-02-07 Fernando Perez <fperez@colorado.edu>
3760 2005-02-07 Fernando Perez <fperez@colorado.edu>
3758
3761
3759 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3762 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3760 previous call produced a syntax error.
3763 previous call produced a syntax error.
3761
3764
3762 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3765 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3763 classes without constructor.
3766 classes without constructor.
3764
3767
3765 2005-02-06 Fernando Perez <fperez@colorado.edu>
3768 2005-02-06 Fernando Perez <fperez@colorado.edu>
3766
3769
3767 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3770 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3768 completions with the results of each matcher, so we return results
3771 completions with the results of each matcher, so we return results
3769 to the user from all namespaces. This breaks with ipython
3772 to the user from all namespaces. This breaks with ipython
3770 tradition, but I think it's a nicer behavior. Now you get all
3773 tradition, but I think it's a nicer behavior. Now you get all
3771 possible completions listed, from all possible namespaces (python,
3774 possible completions listed, from all possible namespaces (python,
3772 filesystem, magics...) After a request by John Hunter
3775 filesystem, magics...) After a request by John Hunter
3773 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3776 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3774
3777
3775 2005-02-05 Fernando Perez <fperez@colorado.edu>
3778 2005-02-05 Fernando Perez <fperez@colorado.edu>
3776
3779
3777 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3780 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3778 the call had quote characters in it (the quotes were stripped).
3781 the call had quote characters in it (the quotes were stripped).
3779
3782
3780 2005-01-31 Fernando Perez <fperez@colorado.edu>
3783 2005-01-31 Fernando Perez <fperez@colorado.edu>
3781
3784
3782 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3785 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3783 Itpl.itpl() to make the code more robust against psyco
3786 Itpl.itpl() to make the code more robust against psyco
3784 optimizations.
3787 optimizations.
3785
3788
3786 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3789 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3787 of causing an exception. Quicker, cleaner.
3790 of causing an exception. Quicker, cleaner.
3788
3791
3789 2005-01-28 Fernando Perez <fperez@colorado.edu>
3792 2005-01-28 Fernando Perez <fperez@colorado.edu>
3790
3793
3791 * scripts/ipython_win_post_install.py (install): hardcode
3794 * scripts/ipython_win_post_install.py (install): hardcode
3792 sys.prefix+'python.exe' as the executable path. It turns out that
3795 sys.prefix+'python.exe' as the executable path. It turns out that
3793 during the post-installation run, sys.executable resolves to the
3796 during the post-installation run, sys.executable resolves to the
3794 name of the binary installer! I should report this as a distutils
3797 name of the binary installer! I should report this as a distutils
3795 bug, I think. I updated the .10 release with this tiny fix, to
3798 bug, I think. I updated the .10 release with this tiny fix, to
3796 avoid annoying the lists further.
3799 avoid annoying the lists further.
3797
3800
3798 2005-01-27 *** Released version 0.6.10
3801 2005-01-27 *** Released version 0.6.10
3799
3802
3800 2005-01-27 Fernando Perez <fperez@colorado.edu>
3803 2005-01-27 Fernando Perez <fperez@colorado.edu>
3801
3804
3802 * IPython/numutils.py (norm): Added 'inf' as optional name for
3805 * IPython/numutils.py (norm): Added 'inf' as optional name for
3803 L-infinity norm, included references to mathworld.com for vector
3806 L-infinity norm, included references to mathworld.com for vector
3804 norm definitions.
3807 norm definitions.
3805 (amin/amax): added amin/amax for array min/max. Similar to what
3808 (amin/amax): added amin/amax for array min/max. Similar to what
3806 pylab ships with after the recent reorganization of names.
3809 pylab ships with after the recent reorganization of names.
3807 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3810 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3808
3811
3809 * ipython.el: committed Alex's recent fixes and improvements.
3812 * ipython.el: committed Alex's recent fixes and improvements.
3810 Tested with python-mode from CVS, and it looks excellent. Since
3813 Tested with python-mode from CVS, and it looks excellent. Since
3811 python-mode hasn't released anything in a while, I'm temporarily
3814 python-mode hasn't released anything in a while, I'm temporarily
3812 putting a copy of today's CVS (v 4.70) of python-mode in:
3815 putting a copy of today's CVS (v 4.70) of python-mode in:
3813 http://ipython.scipy.org/tmp/python-mode.el
3816 http://ipython.scipy.org/tmp/python-mode.el
3814
3817
3815 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3818 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3816 sys.executable for the executable name, instead of assuming it's
3819 sys.executable for the executable name, instead of assuming it's
3817 called 'python.exe' (the post-installer would have produced broken
3820 called 'python.exe' (the post-installer would have produced broken
3818 setups on systems with a differently named python binary).
3821 setups on systems with a differently named python binary).
3819
3822
3820 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3823 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3821 references to os.linesep, to make the code more
3824 references to os.linesep, to make the code more
3822 platform-independent. This is also part of the win32 coloring
3825 platform-independent. This is also part of the win32 coloring
3823 fixes.
3826 fixes.
3824
3827
3825 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3828 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3826 lines, which actually cause coloring bugs because the length of
3829 lines, which actually cause coloring bugs because the length of
3827 the line is very difficult to correctly compute with embedded
3830 the line is very difficult to correctly compute with embedded
3828 escapes. This was the source of all the coloring problems under
3831 escapes. This was the source of all the coloring problems under
3829 Win32. I think that _finally_, Win32 users have a properly
3832 Win32. I think that _finally_, Win32 users have a properly
3830 working ipython in all respects. This would never have happened
3833 working ipython in all respects. This would never have happened
3831 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3834 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3832
3835
3833 2005-01-26 *** Released version 0.6.9
3836 2005-01-26 *** Released version 0.6.9
3834
3837
3835 2005-01-25 Fernando Perez <fperez@colorado.edu>
3838 2005-01-25 Fernando Perez <fperez@colorado.edu>
3836
3839
3837 * setup.py: finally, we have a true Windows installer, thanks to
3840 * setup.py: finally, we have a true Windows installer, thanks to
3838 the excellent work of Viktor Ransmayr
3841 the excellent work of Viktor Ransmayr
3839 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3842 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3840 Windows users. The setup routine is quite a bit cleaner thanks to
3843 Windows users. The setup routine is quite a bit cleaner thanks to
3841 this, and the post-install script uses the proper functions to
3844 this, and the post-install script uses the proper functions to
3842 allow a clean de-installation using the standard Windows Control
3845 allow a clean de-installation using the standard Windows Control
3843 Panel.
3846 Panel.
3844
3847
3845 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3848 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3846 environment variable under all OSes (including win32) if
3849 environment variable under all OSes (including win32) if
3847 available. This will give consistency to win32 users who have set
3850 available. This will give consistency to win32 users who have set
3848 this variable for any reason. If os.environ['HOME'] fails, the
3851 this variable for any reason. If os.environ['HOME'] fails, the
3849 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3852 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3850
3853
3851 2005-01-24 Fernando Perez <fperez@colorado.edu>
3854 2005-01-24 Fernando Perez <fperez@colorado.edu>
3852
3855
3853 * IPython/numutils.py (empty_like): add empty_like(), similar to
3856 * IPython/numutils.py (empty_like): add empty_like(), similar to
3854 zeros_like() but taking advantage of the new empty() Numeric routine.
3857 zeros_like() but taking advantage of the new empty() Numeric routine.
3855
3858
3856 2005-01-23 *** Released version 0.6.8
3859 2005-01-23 *** Released version 0.6.8
3857
3860
3858 2005-01-22 Fernando Perez <fperez@colorado.edu>
3861 2005-01-22 Fernando Perez <fperez@colorado.edu>
3859
3862
3860 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3863 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3861 automatic show() calls. After discussing things with JDH, it
3864 automatic show() calls. After discussing things with JDH, it
3862 turns out there are too many corner cases where this can go wrong.
3865 turns out there are too many corner cases where this can go wrong.
3863 It's best not to try to be 'too smart', and simply have ipython
3866 It's best not to try to be 'too smart', and simply have ipython
3864 reproduce as much as possible the default behavior of a normal
3867 reproduce as much as possible the default behavior of a normal
3865 python shell.
3868 python shell.
3866
3869
3867 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3870 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3868 line-splitting regexp and _prefilter() to avoid calling getattr()
3871 line-splitting regexp and _prefilter() to avoid calling getattr()
3869 on assignments. This closes
3872 on assignments. This closes
3870 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3873 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3871 readline uses getattr(), so a simple <TAB> keypress is still
3874 readline uses getattr(), so a simple <TAB> keypress is still
3872 enough to trigger getattr() calls on an object.
3875 enough to trigger getattr() calls on an object.
3873
3876
3874 2005-01-21 Fernando Perez <fperez@colorado.edu>
3877 2005-01-21 Fernando Perez <fperez@colorado.edu>
3875
3878
3876 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3879 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3877 docstring under pylab so it doesn't mask the original.
3880 docstring under pylab so it doesn't mask the original.
3878
3881
3879 2005-01-21 *** Released version 0.6.7
3882 2005-01-21 *** Released version 0.6.7
3880
3883
3881 2005-01-21 Fernando Perez <fperez@colorado.edu>
3884 2005-01-21 Fernando Perez <fperez@colorado.edu>
3882
3885
3883 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3886 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3884 signal handling for win32 users in multithreaded mode.
3887 signal handling for win32 users in multithreaded mode.
3885
3888
3886 2005-01-17 Fernando Perez <fperez@colorado.edu>
3889 2005-01-17 Fernando Perez <fperez@colorado.edu>
3887
3890
3888 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3891 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3889 instances with no __init__. After a crash report by Norbert Nemec
3892 instances with no __init__. After a crash report by Norbert Nemec
3890 <Norbert-AT-nemec-online.de>.
3893 <Norbert-AT-nemec-online.de>.
3891
3894
3892 2005-01-14 Fernando Perez <fperez@colorado.edu>
3895 2005-01-14 Fernando Perez <fperez@colorado.edu>
3893
3896
3894 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3897 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3895 names for verbose exceptions, when multiple dotted names and the
3898 names for verbose exceptions, when multiple dotted names and the
3896 'parent' object were present on the same line.
3899 'parent' object were present on the same line.
3897
3900
3898 2005-01-11 Fernando Perez <fperez@colorado.edu>
3901 2005-01-11 Fernando Perez <fperez@colorado.edu>
3899
3902
3900 * IPython/genutils.py (flag_calls): new utility to trap and flag
3903 * IPython/genutils.py (flag_calls): new utility to trap and flag
3901 calls in functions. I need it to clean up matplotlib support.
3904 calls in functions. I need it to clean up matplotlib support.
3902 Also removed some deprecated code in genutils.
3905 Also removed some deprecated code in genutils.
3903
3906
3904 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3907 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3905 that matplotlib scripts called with %run, which don't call show()
3908 that matplotlib scripts called with %run, which don't call show()
3906 themselves, still have their plotting windows open.
3909 themselves, still have their plotting windows open.
3907
3910
3908 2005-01-05 Fernando Perez <fperez@colorado.edu>
3911 2005-01-05 Fernando Perez <fperez@colorado.edu>
3909
3912
3910 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3913 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3911 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3914 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3912
3915
3913 2004-12-19 Fernando Perez <fperez@colorado.edu>
3916 2004-12-19 Fernando Perez <fperez@colorado.edu>
3914
3917
3915 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3918 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3916 parent_runcode, which was an eyesore. The same result can be
3919 parent_runcode, which was an eyesore. The same result can be
3917 obtained with Python's regular superclass mechanisms.
3920 obtained with Python's regular superclass mechanisms.
3918
3921
3919 2004-12-17 Fernando Perez <fperez@colorado.edu>
3922 2004-12-17 Fernando Perez <fperez@colorado.edu>
3920
3923
3921 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3924 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3922 reported by Prabhu.
3925 reported by Prabhu.
3923 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3926 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3924 sys.stderr) instead of explicitly calling sys.stderr. This helps
3927 sys.stderr) instead of explicitly calling sys.stderr. This helps
3925 maintain our I/O abstractions clean, for future GUI embeddings.
3928 maintain our I/O abstractions clean, for future GUI embeddings.
3926
3929
3927 * IPython/genutils.py (info): added new utility for sys.stderr
3930 * IPython/genutils.py (info): added new utility for sys.stderr
3928 unified info message handling (thin wrapper around warn()).
3931 unified info message handling (thin wrapper around warn()).
3929
3932
3930 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3933 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3931 composite (dotted) names on verbose exceptions.
3934 composite (dotted) names on verbose exceptions.
3932 (VerboseTB.nullrepr): harden against another kind of errors which
3935 (VerboseTB.nullrepr): harden against another kind of errors which
3933 Python's inspect module can trigger, and which were crashing
3936 Python's inspect module can trigger, and which were crashing
3934 IPython. Thanks to a report by Marco Lombardi
3937 IPython. Thanks to a report by Marco Lombardi
3935 <mlombard-AT-ma010192.hq.eso.org>.
3938 <mlombard-AT-ma010192.hq.eso.org>.
3936
3939
3937 2004-12-13 *** Released version 0.6.6
3940 2004-12-13 *** Released version 0.6.6
3938
3941
3939 2004-12-12 Fernando Perez <fperez@colorado.edu>
3942 2004-12-12 Fernando Perez <fperez@colorado.edu>
3940
3943
3941 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3944 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3942 generated by pygtk upon initialization if it was built without
3945 generated by pygtk upon initialization if it was built without
3943 threads (for matplotlib users). After a crash reported by
3946 threads (for matplotlib users). After a crash reported by
3944 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3947 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3945
3948
3946 * IPython/ipmaker.py (make_IPython): fix small bug in the
3949 * IPython/ipmaker.py (make_IPython): fix small bug in the
3947 import_some parameter for multiple imports.
3950 import_some parameter for multiple imports.
3948
3951
3949 * IPython/iplib.py (ipmagic): simplified the interface of
3952 * IPython/iplib.py (ipmagic): simplified the interface of
3950 ipmagic() to take a single string argument, just as it would be
3953 ipmagic() to take a single string argument, just as it would be
3951 typed at the IPython cmd line.
3954 typed at the IPython cmd line.
3952 (ipalias): Added new ipalias() with an interface identical to
3955 (ipalias): Added new ipalias() with an interface identical to
3953 ipmagic(). This completes exposing a pure python interface to the
3956 ipmagic(). This completes exposing a pure python interface to the
3954 alias and magic system, which can be used in loops or more complex
3957 alias and magic system, which can be used in loops or more complex
3955 code where IPython's automatic line mangling is not active.
3958 code where IPython's automatic line mangling is not active.
3956
3959
3957 * IPython/genutils.py (timing): changed interface of timing to
3960 * IPython/genutils.py (timing): changed interface of timing to
3958 simply run code once, which is the most common case. timings()
3961 simply run code once, which is the most common case. timings()
3959 remains unchanged, for the cases where you want multiple runs.
3962 remains unchanged, for the cases where you want multiple runs.
3960
3963
3961 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3964 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3962 bug where Python2.2 crashes with exec'ing code which does not end
3965 bug where Python2.2 crashes with exec'ing code which does not end
3963 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3966 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3964 before.
3967 before.
3965
3968
3966 2004-12-10 Fernando Perez <fperez@colorado.edu>
3969 2004-12-10 Fernando Perez <fperez@colorado.edu>
3967
3970
3968 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3971 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3969 -t to -T, to accomodate the new -t flag in %run (the %run and
3972 -t to -T, to accomodate the new -t flag in %run (the %run and
3970 %prun options are kind of intermixed, and it's not easy to change
3973 %prun options are kind of intermixed, and it's not easy to change
3971 this with the limitations of python's getopt).
3974 this with the limitations of python's getopt).
3972
3975
3973 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3976 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3974 the execution of scripts. It's not as fine-tuned as timeit.py,
3977 the execution of scripts. It's not as fine-tuned as timeit.py,
3975 but it works from inside ipython (and under 2.2, which lacks
3978 but it works from inside ipython (and under 2.2, which lacks
3976 timeit.py). Optionally a number of runs > 1 can be given for
3979 timeit.py). Optionally a number of runs > 1 can be given for
3977 timing very short-running code.
3980 timing very short-running code.
3978
3981
3979 * IPython/genutils.py (uniq_stable): new routine which returns a
3982 * IPython/genutils.py (uniq_stable): new routine which returns a
3980 list of unique elements in any iterable, but in stable order of
3983 list of unique elements in any iterable, but in stable order of
3981 appearance. I needed this for the ultraTB fixes, and it's a handy
3984 appearance. I needed this for the ultraTB fixes, and it's a handy
3982 utility.
3985 utility.
3983
3986
3984 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3987 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3985 dotted names in Verbose exceptions. This had been broken since
3988 dotted names in Verbose exceptions. This had been broken since
3986 the very start, now x.y will properly be printed in a Verbose
3989 the very start, now x.y will properly be printed in a Verbose
3987 traceback, instead of x being shown and y appearing always as an
3990 traceback, instead of x being shown and y appearing always as an
3988 'undefined global'. Getting this to work was a bit tricky,
3991 'undefined global'. Getting this to work was a bit tricky,
3989 because by default python tokenizers are stateless. Saved by
3992 because by default python tokenizers are stateless. Saved by
3990 python's ability to easily add a bit of state to an arbitrary
3993 python's ability to easily add a bit of state to an arbitrary
3991 function (without needing to build a full-blown callable object).
3994 function (without needing to build a full-blown callable object).
3992
3995
3993 Also big cleanup of this code, which had horrendous runtime
3996 Also big cleanup of this code, which had horrendous runtime
3994 lookups of zillions of attributes for colorization. Moved all
3997 lookups of zillions of attributes for colorization. Moved all
3995 this code into a few templates, which make it cleaner and quicker.
3998 this code into a few templates, which make it cleaner and quicker.
3996
3999
3997 Printout quality was also improved for Verbose exceptions: one
4000 Printout quality was also improved for Verbose exceptions: one
3998 variable per line, and memory addresses are printed (this can be
4001 variable per line, and memory addresses are printed (this can be
3999 quite handy in nasty debugging situations, which is what Verbose
4002 quite handy in nasty debugging situations, which is what Verbose
4000 is for).
4003 is for).
4001
4004
4002 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4005 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4003 the command line as scripts to be loaded by embedded instances.
4006 the command line as scripts to be loaded by embedded instances.
4004 Doing so has the potential for an infinite recursion if there are
4007 Doing so has the potential for an infinite recursion if there are
4005 exceptions thrown in the process. This fixes a strange crash
4008 exceptions thrown in the process. This fixes a strange crash
4006 reported by Philippe MULLER <muller-AT-irit.fr>.
4009 reported by Philippe MULLER <muller-AT-irit.fr>.
4007
4010
4008 2004-12-09 Fernando Perez <fperez@colorado.edu>
4011 2004-12-09 Fernando Perez <fperez@colorado.edu>
4009
4012
4010 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4013 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4011 to reflect new names in matplotlib, which now expose the
4014 to reflect new names in matplotlib, which now expose the
4012 matlab-compatible interface via a pylab module instead of the
4015 matlab-compatible interface via a pylab module instead of the
4013 'matlab' name. The new code is backwards compatible, so users of
4016 'matlab' name. The new code is backwards compatible, so users of
4014 all matplotlib versions are OK. Patch by J. Hunter.
4017 all matplotlib versions are OK. Patch by J. Hunter.
4015
4018
4016 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4019 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4017 of __init__ docstrings for instances (class docstrings are already
4020 of __init__ docstrings for instances (class docstrings are already
4018 automatically printed). Instances with customized docstrings
4021 automatically printed). Instances with customized docstrings
4019 (indep. of the class) are also recognized and all 3 separate
4022 (indep. of the class) are also recognized and all 3 separate
4020 docstrings are printed (instance, class, constructor). After some
4023 docstrings are printed (instance, class, constructor). After some
4021 comments/suggestions by J. Hunter.
4024 comments/suggestions by J. Hunter.
4022
4025
4023 2004-12-05 Fernando Perez <fperez@colorado.edu>
4026 2004-12-05 Fernando Perez <fperez@colorado.edu>
4024
4027
4025 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4028 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4026 warnings when tab-completion fails and triggers an exception.
4029 warnings when tab-completion fails and triggers an exception.
4027
4030
4028 2004-12-03 Fernando Perez <fperez@colorado.edu>
4031 2004-12-03 Fernando Perez <fperez@colorado.edu>
4029
4032
4030 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4033 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4031 be triggered when using 'run -p'. An incorrect option flag was
4034 be triggered when using 'run -p'. An incorrect option flag was
4032 being set ('d' instead of 'D').
4035 being set ('d' instead of 'D').
4033 (manpage): fix missing escaped \- sign.
4036 (manpage): fix missing escaped \- sign.
4034
4037
4035 2004-11-30 *** Released version 0.6.5
4038 2004-11-30 *** Released version 0.6.5
4036
4039
4037 2004-11-30 Fernando Perez <fperez@colorado.edu>
4040 2004-11-30 Fernando Perez <fperez@colorado.edu>
4038
4041
4039 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4042 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4040 setting with -d option.
4043 setting with -d option.
4041
4044
4042 * setup.py (docfiles): Fix problem where the doc glob I was using
4045 * setup.py (docfiles): Fix problem where the doc glob I was using
4043 was COMPLETELY BROKEN. It was giving the right files by pure
4046 was COMPLETELY BROKEN. It was giving the right files by pure
4044 accident, but failed once I tried to include ipython.el. Note:
4047 accident, but failed once I tried to include ipython.el. Note:
4045 glob() does NOT allow you to do exclusion on multiple endings!
4048 glob() does NOT allow you to do exclusion on multiple endings!
4046
4049
4047 2004-11-29 Fernando Perez <fperez@colorado.edu>
4050 2004-11-29 Fernando Perez <fperez@colorado.edu>
4048
4051
4049 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4052 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4050 the manpage as the source. Better formatting & consistency.
4053 the manpage as the source. Better formatting & consistency.
4051
4054
4052 * IPython/Magic.py (magic_run): Added new -d option, to run
4055 * IPython/Magic.py (magic_run): Added new -d option, to run
4053 scripts under the control of the python pdb debugger. Note that
4056 scripts under the control of the python pdb debugger. Note that
4054 this required changing the %prun option -d to -D, to avoid a clash
4057 this required changing the %prun option -d to -D, to avoid a clash
4055 (since %run must pass options to %prun, and getopt is too dumb to
4058 (since %run must pass options to %prun, and getopt is too dumb to
4056 handle options with string values with embedded spaces). Thanks
4059 handle options with string values with embedded spaces). Thanks
4057 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4060 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4058 (magic_who_ls): added type matching to %who and %whos, so that one
4061 (magic_who_ls): added type matching to %who and %whos, so that one
4059 can filter their output to only include variables of certain
4062 can filter their output to only include variables of certain
4060 types. Another suggestion by Matthew.
4063 types. Another suggestion by Matthew.
4061 (magic_whos): Added memory summaries in kb and Mb for arrays.
4064 (magic_whos): Added memory summaries in kb and Mb for arrays.
4062 (magic_who): Improve formatting (break lines every 9 vars).
4065 (magic_who): Improve formatting (break lines every 9 vars).
4063
4066
4064 2004-11-28 Fernando Perez <fperez@colorado.edu>
4067 2004-11-28 Fernando Perez <fperez@colorado.edu>
4065
4068
4066 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4069 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4067 cache when empty lines were present.
4070 cache when empty lines were present.
4068
4071
4069 2004-11-24 Fernando Perez <fperez@colorado.edu>
4072 2004-11-24 Fernando Perez <fperez@colorado.edu>
4070
4073
4071 * IPython/usage.py (__doc__): document the re-activated threading
4074 * IPython/usage.py (__doc__): document the re-activated threading
4072 options for WX and GTK.
4075 options for WX and GTK.
4073
4076
4074 2004-11-23 Fernando Perez <fperez@colorado.edu>
4077 2004-11-23 Fernando Perez <fperez@colorado.edu>
4075
4078
4076 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4079 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4077 the -wthread and -gthread options, along with a new -tk one to try
4080 the -wthread and -gthread options, along with a new -tk one to try
4078 and coordinate Tk threading with wx/gtk. The tk support is very
4081 and coordinate Tk threading with wx/gtk. The tk support is very
4079 platform dependent, since it seems to require Tcl and Tk to be
4082 platform dependent, since it seems to require Tcl and Tk to be
4080 built with threads (Fedora1/2 appears NOT to have it, but in
4083 built with threads (Fedora1/2 appears NOT to have it, but in
4081 Prabhu's Debian boxes it works OK). But even with some Tk
4084 Prabhu's Debian boxes it works OK). But even with some Tk
4082 limitations, this is a great improvement.
4085 limitations, this is a great improvement.
4083
4086
4084 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4087 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4085 info in user prompts. Patch by Prabhu.
4088 info in user prompts. Patch by Prabhu.
4086
4089
4087 2004-11-18 Fernando Perez <fperez@colorado.edu>
4090 2004-11-18 Fernando Perez <fperez@colorado.edu>
4088
4091
4089 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4092 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4090 EOFErrors and bail, to avoid infinite loops if a non-terminating
4093 EOFErrors and bail, to avoid infinite loops if a non-terminating
4091 file is fed into ipython. Patch submitted in issue 19 by user,
4094 file is fed into ipython. Patch submitted in issue 19 by user,
4092 many thanks.
4095 many thanks.
4093
4096
4094 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4097 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4095 autoquote/parens in continuation prompts, which can cause lots of
4098 autoquote/parens in continuation prompts, which can cause lots of
4096 problems. Closes roundup issue 20.
4099 problems. Closes roundup issue 20.
4097
4100
4098 2004-11-17 Fernando Perez <fperez@colorado.edu>
4101 2004-11-17 Fernando Perez <fperez@colorado.edu>
4099
4102
4100 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4103 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4101 reported as debian bug #280505. I'm not sure my local changelog
4104 reported as debian bug #280505. I'm not sure my local changelog
4102 entry has the proper debian format (Jack?).
4105 entry has the proper debian format (Jack?).
4103
4106
4104 2004-11-08 *** Released version 0.6.4
4107 2004-11-08 *** Released version 0.6.4
4105
4108
4106 2004-11-08 Fernando Perez <fperez@colorado.edu>
4109 2004-11-08 Fernando Perez <fperez@colorado.edu>
4107
4110
4108 * IPython/iplib.py (init_readline): Fix exit message for Windows
4111 * IPython/iplib.py (init_readline): Fix exit message for Windows
4109 when readline is active. Thanks to a report by Eric Jones
4112 when readline is active. Thanks to a report by Eric Jones
4110 <eric-AT-enthought.com>.
4113 <eric-AT-enthought.com>.
4111
4114
4112 2004-11-07 Fernando Perez <fperez@colorado.edu>
4115 2004-11-07 Fernando Perez <fperez@colorado.edu>
4113
4116
4114 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4117 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4115 sometimes seen by win2k/cygwin users.
4118 sometimes seen by win2k/cygwin users.
4116
4119
4117 2004-11-06 Fernando Perez <fperez@colorado.edu>
4120 2004-11-06 Fernando Perez <fperez@colorado.edu>
4118
4121
4119 * IPython/iplib.py (interact): Change the handling of %Exit from
4122 * IPython/iplib.py (interact): Change the handling of %Exit from
4120 trying to propagate a SystemExit to an internal ipython flag.
4123 trying to propagate a SystemExit to an internal ipython flag.
4121 This is less elegant than using Python's exception mechanism, but
4124 This is less elegant than using Python's exception mechanism, but
4122 I can't get that to work reliably with threads, so under -pylab
4125 I can't get that to work reliably with threads, so under -pylab
4123 %Exit was hanging IPython. Cross-thread exception handling is
4126 %Exit was hanging IPython. Cross-thread exception handling is
4124 really a bitch. Thaks to a bug report by Stephen Walton
4127 really a bitch. Thaks to a bug report by Stephen Walton
4125 <stephen.walton-AT-csun.edu>.
4128 <stephen.walton-AT-csun.edu>.
4126
4129
4127 2004-11-04 Fernando Perez <fperez@colorado.edu>
4130 2004-11-04 Fernando Perez <fperez@colorado.edu>
4128
4131
4129 * IPython/iplib.py (raw_input_original): store a pointer to the
4132 * IPython/iplib.py (raw_input_original): store a pointer to the
4130 true raw_input to harden against code which can modify it
4133 true raw_input to harden against code which can modify it
4131 (wx.py.PyShell does this and would otherwise crash ipython).
4134 (wx.py.PyShell does this and would otherwise crash ipython).
4132 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4135 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4133
4136
4134 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4137 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4135 Ctrl-C problem, which does not mess up the input line.
4138 Ctrl-C problem, which does not mess up the input line.
4136
4139
4137 2004-11-03 Fernando Perez <fperez@colorado.edu>
4140 2004-11-03 Fernando Perez <fperez@colorado.edu>
4138
4141
4139 * IPython/Release.py: Changed licensing to BSD, in all files.
4142 * IPython/Release.py: Changed licensing to BSD, in all files.
4140 (name): lowercase name for tarball/RPM release.
4143 (name): lowercase name for tarball/RPM release.
4141
4144
4142 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4145 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4143 use throughout ipython.
4146 use throughout ipython.
4144
4147
4145 * IPython/Magic.py (Magic._ofind): Switch to using the new
4148 * IPython/Magic.py (Magic._ofind): Switch to using the new
4146 OInspect.getdoc() function.
4149 OInspect.getdoc() function.
4147
4150
4148 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4151 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4149 of the line currently being canceled via Ctrl-C. It's extremely
4152 of the line currently being canceled via Ctrl-C. It's extremely
4150 ugly, but I don't know how to do it better (the problem is one of
4153 ugly, but I don't know how to do it better (the problem is one of
4151 handling cross-thread exceptions).
4154 handling cross-thread exceptions).
4152
4155
4153 2004-10-28 Fernando Perez <fperez@colorado.edu>
4156 2004-10-28 Fernando Perez <fperez@colorado.edu>
4154
4157
4155 * IPython/Shell.py (signal_handler): add signal handlers to trap
4158 * IPython/Shell.py (signal_handler): add signal handlers to trap
4156 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4159 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4157 report by Francesc Alted.
4160 report by Francesc Alted.
4158
4161
4159 2004-10-21 Fernando Perez <fperez@colorado.edu>
4162 2004-10-21 Fernando Perez <fperez@colorado.edu>
4160
4163
4161 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4164 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4162 to % for pysh syntax extensions.
4165 to % for pysh syntax extensions.
4163
4166
4164 2004-10-09 Fernando Perez <fperez@colorado.edu>
4167 2004-10-09 Fernando Perez <fperez@colorado.edu>
4165
4168
4166 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4169 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4167 arrays to print a more useful summary, without calling str(arr).
4170 arrays to print a more useful summary, without calling str(arr).
4168 This avoids the problem of extremely lengthy computations which
4171 This avoids the problem of extremely lengthy computations which
4169 occur if arr is large, and appear to the user as a system lockup
4172 occur if arr is large, and appear to the user as a system lockup
4170 with 100% cpu activity. After a suggestion by Kristian Sandberg
4173 with 100% cpu activity. After a suggestion by Kristian Sandberg
4171 <Kristian.Sandberg@colorado.edu>.
4174 <Kristian.Sandberg@colorado.edu>.
4172 (Magic.__init__): fix bug in global magic escapes not being
4175 (Magic.__init__): fix bug in global magic escapes not being
4173 correctly set.
4176 correctly set.
4174
4177
4175 2004-10-08 Fernando Perez <fperez@colorado.edu>
4178 2004-10-08 Fernando Perez <fperez@colorado.edu>
4176
4179
4177 * IPython/Magic.py (__license__): change to absolute imports of
4180 * IPython/Magic.py (__license__): change to absolute imports of
4178 ipython's own internal packages, to start adapting to the absolute
4181 ipython's own internal packages, to start adapting to the absolute
4179 import requirement of PEP-328.
4182 import requirement of PEP-328.
4180
4183
4181 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4184 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4182 files, and standardize author/license marks through the Release
4185 files, and standardize author/license marks through the Release
4183 module instead of having per/file stuff (except for files with
4186 module instead of having per/file stuff (except for files with
4184 particular licenses, like the MIT/PSF-licensed codes).
4187 particular licenses, like the MIT/PSF-licensed codes).
4185
4188
4186 * IPython/Debugger.py: remove dead code for python 2.1
4189 * IPython/Debugger.py: remove dead code for python 2.1
4187
4190
4188 2004-10-04 Fernando Perez <fperez@colorado.edu>
4191 2004-10-04 Fernando Perez <fperez@colorado.edu>
4189
4192
4190 * IPython/iplib.py (ipmagic): New function for accessing magics
4193 * IPython/iplib.py (ipmagic): New function for accessing magics
4191 via a normal python function call.
4194 via a normal python function call.
4192
4195
4193 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4196 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4194 from '@' to '%', to accomodate the new @decorator syntax of python
4197 from '@' to '%', to accomodate the new @decorator syntax of python
4195 2.4.
4198 2.4.
4196
4199
4197 2004-09-29 Fernando Perez <fperez@colorado.edu>
4200 2004-09-29 Fernando Perez <fperez@colorado.edu>
4198
4201
4199 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4202 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4200 matplotlib.use to prevent running scripts which try to switch
4203 matplotlib.use to prevent running scripts which try to switch
4201 interactive backends from within ipython. This will just crash
4204 interactive backends from within ipython. This will just crash
4202 the python interpreter, so we can't allow it (but a detailed error
4205 the python interpreter, so we can't allow it (but a detailed error
4203 is given to the user).
4206 is given to the user).
4204
4207
4205 2004-09-28 Fernando Perez <fperez@colorado.edu>
4208 2004-09-28 Fernando Perez <fperez@colorado.edu>
4206
4209
4207 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4210 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4208 matplotlib-related fixes so that using @run with non-matplotlib
4211 matplotlib-related fixes so that using @run with non-matplotlib
4209 scripts doesn't pop up spurious plot windows. This requires
4212 scripts doesn't pop up spurious plot windows. This requires
4210 matplotlib >= 0.63, where I had to make some changes as well.
4213 matplotlib >= 0.63, where I had to make some changes as well.
4211
4214
4212 * IPython/ipmaker.py (make_IPython): update version requirement to
4215 * IPython/ipmaker.py (make_IPython): update version requirement to
4213 python 2.2.
4216 python 2.2.
4214
4217
4215 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4218 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4216 banner arg for embedded customization.
4219 banner arg for embedded customization.
4217
4220
4218 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4221 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4219 explicit uses of __IP as the IPython's instance name. Now things
4222 explicit uses of __IP as the IPython's instance name. Now things
4220 are properly handled via the shell.name value. The actual code
4223 are properly handled via the shell.name value. The actual code
4221 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4224 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4222 is much better than before. I'll clean things completely when the
4225 is much better than before. I'll clean things completely when the
4223 magic stuff gets a real overhaul.
4226 magic stuff gets a real overhaul.
4224
4227
4225 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4228 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4226 minor changes to debian dir.
4229 minor changes to debian dir.
4227
4230
4228 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4231 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4229 pointer to the shell itself in the interactive namespace even when
4232 pointer to the shell itself in the interactive namespace even when
4230 a user-supplied dict is provided. This is needed for embedding
4233 a user-supplied dict is provided. This is needed for embedding
4231 purposes (found by tests with Michel Sanner).
4234 purposes (found by tests with Michel Sanner).
4232
4235
4233 2004-09-27 Fernando Perez <fperez@colorado.edu>
4236 2004-09-27 Fernando Perez <fperez@colorado.edu>
4234
4237
4235 * IPython/UserConfig/ipythonrc: remove []{} from
4238 * IPython/UserConfig/ipythonrc: remove []{} from
4236 readline_remove_delims, so that things like [modname.<TAB> do
4239 readline_remove_delims, so that things like [modname.<TAB> do
4237 proper completion. This disables [].TAB, but that's a less common
4240 proper completion. This disables [].TAB, but that's a less common
4238 case than module names in list comprehensions, for example.
4241 case than module names in list comprehensions, for example.
4239 Thanks to a report by Andrea Riciputi.
4242 Thanks to a report by Andrea Riciputi.
4240
4243
4241 2004-09-09 Fernando Perez <fperez@colorado.edu>
4244 2004-09-09 Fernando Perez <fperez@colorado.edu>
4242
4245
4243 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4246 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4244 blocking problems in win32 and osx. Fix by John.
4247 blocking problems in win32 and osx. Fix by John.
4245
4248
4246 2004-09-08 Fernando Perez <fperez@colorado.edu>
4249 2004-09-08 Fernando Perez <fperez@colorado.edu>
4247
4250
4248 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4251 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4249 for Win32 and OSX. Fix by John Hunter.
4252 for Win32 and OSX. Fix by John Hunter.
4250
4253
4251 2004-08-30 *** Released version 0.6.3
4254 2004-08-30 *** Released version 0.6.3
4252
4255
4253 2004-08-30 Fernando Perez <fperez@colorado.edu>
4256 2004-08-30 Fernando Perez <fperez@colorado.edu>
4254
4257
4255 * setup.py (isfile): Add manpages to list of dependent files to be
4258 * setup.py (isfile): Add manpages to list of dependent files to be
4256 updated.
4259 updated.
4257
4260
4258 2004-08-27 Fernando Perez <fperez@colorado.edu>
4261 2004-08-27 Fernando Perez <fperez@colorado.edu>
4259
4262
4260 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4263 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4261 for now. They don't really work with standalone WX/GTK code
4264 for now. They don't really work with standalone WX/GTK code
4262 (though matplotlib IS working fine with both of those backends).
4265 (though matplotlib IS working fine with both of those backends).
4263 This will neeed much more testing. I disabled most things with
4266 This will neeed much more testing. I disabled most things with
4264 comments, so turning it back on later should be pretty easy.
4267 comments, so turning it back on later should be pretty easy.
4265
4268
4266 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4269 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4267 autocalling of expressions like r'foo', by modifying the line
4270 autocalling of expressions like r'foo', by modifying the line
4268 split regexp. Closes
4271 split regexp. Closes
4269 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4272 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4270 Riley <ipythonbugs-AT-sabi.net>.
4273 Riley <ipythonbugs-AT-sabi.net>.
4271 (InteractiveShell.mainloop): honor --nobanner with banner
4274 (InteractiveShell.mainloop): honor --nobanner with banner
4272 extensions.
4275 extensions.
4273
4276
4274 * IPython/Shell.py: Significant refactoring of all classes, so
4277 * IPython/Shell.py: Significant refactoring of all classes, so
4275 that we can really support ALL matplotlib backends and threading
4278 that we can really support ALL matplotlib backends and threading
4276 models (John spotted a bug with Tk which required this). Now we
4279 models (John spotted a bug with Tk which required this). Now we
4277 should support single-threaded, WX-threads and GTK-threads, both
4280 should support single-threaded, WX-threads and GTK-threads, both
4278 for generic code and for matplotlib.
4281 for generic code and for matplotlib.
4279
4282
4280 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4283 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4281 -pylab, to simplify things for users. Will also remove the pylab
4284 -pylab, to simplify things for users. Will also remove the pylab
4282 profile, since now all of matplotlib configuration is directly
4285 profile, since now all of matplotlib configuration is directly
4283 handled here. This also reduces startup time.
4286 handled here. This also reduces startup time.
4284
4287
4285 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4288 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4286 shell wasn't being correctly called. Also in IPShellWX.
4289 shell wasn't being correctly called. Also in IPShellWX.
4287
4290
4288 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4291 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4289 fine-tune banner.
4292 fine-tune banner.
4290
4293
4291 * IPython/numutils.py (spike): Deprecate these spike functions,
4294 * IPython/numutils.py (spike): Deprecate these spike functions,
4292 delete (long deprecated) gnuplot_exec handler.
4295 delete (long deprecated) gnuplot_exec handler.
4293
4296
4294 2004-08-26 Fernando Perez <fperez@colorado.edu>
4297 2004-08-26 Fernando Perez <fperez@colorado.edu>
4295
4298
4296 * ipython.1: Update for threading options, plus some others which
4299 * ipython.1: Update for threading options, plus some others which
4297 were missing.
4300 were missing.
4298
4301
4299 * IPython/ipmaker.py (__call__): Added -wthread option for
4302 * IPython/ipmaker.py (__call__): Added -wthread option for
4300 wxpython thread handling. Make sure threading options are only
4303 wxpython thread handling. Make sure threading options are only
4301 valid at the command line.
4304 valid at the command line.
4302
4305
4303 * scripts/ipython: moved shell selection into a factory function
4306 * scripts/ipython: moved shell selection into a factory function
4304 in Shell.py, to keep the starter script to a minimum.
4307 in Shell.py, to keep the starter script to a minimum.
4305
4308
4306 2004-08-25 Fernando Perez <fperez@colorado.edu>
4309 2004-08-25 Fernando Perez <fperez@colorado.edu>
4307
4310
4308 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4311 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4309 John. Along with some recent changes he made to matplotlib, the
4312 John. Along with some recent changes he made to matplotlib, the
4310 next versions of both systems should work very well together.
4313 next versions of both systems should work very well together.
4311
4314
4312 2004-08-24 Fernando Perez <fperez@colorado.edu>
4315 2004-08-24 Fernando Perez <fperez@colorado.edu>
4313
4316
4314 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4317 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4315 tried to switch the profiling to using hotshot, but I'm getting
4318 tried to switch the profiling to using hotshot, but I'm getting
4316 strange errors from prof.runctx() there. I may be misreading the
4319 strange errors from prof.runctx() there. I may be misreading the
4317 docs, but it looks weird. For now the profiling code will
4320 docs, but it looks weird. For now the profiling code will
4318 continue to use the standard profiler.
4321 continue to use the standard profiler.
4319
4322
4320 2004-08-23 Fernando Perez <fperez@colorado.edu>
4323 2004-08-23 Fernando Perez <fperez@colorado.edu>
4321
4324
4322 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4325 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4323 threaded shell, by John Hunter. It's not quite ready yet, but
4326 threaded shell, by John Hunter. It's not quite ready yet, but
4324 close.
4327 close.
4325
4328
4326 2004-08-22 Fernando Perez <fperez@colorado.edu>
4329 2004-08-22 Fernando Perez <fperez@colorado.edu>
4327
4330
4328 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4331 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4329 in Magic and ultraTB.
4332 in Magic and ultraTB.
4330
4333
4331 * ipython.1: document threading options in manpage.
4334 * ipython.1: document threading options in manpage.
4332
4335
4333 * scripts/ipython: Changed name of -thread option to -gthread,
4336 * scripts/ipython: Changed name of -thread option to -gthread,
4334 since this is GTK specific. I want to leave the door open for a
4337 since this is GTK specific. I want to leave the door open for a
4335 -wthread option for WX, which will most likely be necessary. This
4338 -wthread option for WX, which will most likely be necessary. This
4336 change affects usage and ipmaker as well.
4339 change affects usage and ipmaker as well.
4337
4340
4338 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4341 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4339 handle the matplotlib shell issues. Code by John Hunter
4342 handle the matplotlib shell issues. Code by John Hunter
4340 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4343 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4341 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4344 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4342 broken (and disabled for end users) for now, but it puts the
4345 broken (and disabled for end users) for now, but it puts the
4343 infrastructure in place.
4346 infrastructure in place.
4344
4347
4345 2004-08-21 Fernando Perez <fperez@colorado.edu>
4348 2004-08-21 Fernando Perez <fperez@colorado.edu>
4346
4349
4347 * ipythonrc-pylab: Add matplotlib support.
4350 * ipythonrc-pylab: Add matplotlib support.
4348
4351
4349 * matplotlib_config.py: new files for matplotlib support, part of
4352 * matplotlib_config.py: new files for matplotlib support, part of
4350 the pylab profile.
4353 the pylab profile.
4351
4354
4352 * IPython/usage.py (__doc__): documented the threading options.
4355 * IPython/usage.py (__doc__): documented the threading options.
4353
4356
4354 2004-08-20 Fernando Perez <fperez@colorado.edu>
4357 2004-08-20 Fernando Perez <fperez@colorado.edu>
4355
4358
4356 * ipython: Modified the main calling routine to handle the -thread
4359 * ipython: Modified the main calling routine to handle the -thread
4357 and -mpthread options. This needs to be done as a top-level hack,
4360 and -mpthread options. This needs to be done as a top-level hack,
4358 because it determines which class to instantiate for IPython
4361 because it determines which class to instantiate for IPython
4359 itself.
4362 itself.
4360
4363
4361 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4364 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4362 classes to support multithreaded GTK operation without blocking,
4365 classes to support multithreaded GTK operation without blocking,
4363 and matplotlib with all backends. This is a lot of still very
4366 and matplotlib with all backends. This is a lot of still very
4364 experimental code, and threads are tricky. So it may still have a
4367 experimental code, and threads are tricky. So it may still have a
4365 few rough edges... This code owes a lot to
4368 few rough edges... This code owes a lot to
4366 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4369 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4367 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4370 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4368 to John Hunter for all the matplotlib work.
4371 to John Hunter for all the matplotlib work.
4369
4372
4370 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4373 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4371 options for gtk thread and matplotlib support.
4374 options for gtk thread and matplotlib support.
4372
4375
4373 2004-08-16 Fernando Perez <fperez@colorado.edu>
4376 2004-08-16 Fernando Perez <fperez@colorado.edu>
4374
4377
4375 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4378 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4376 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4379 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4377 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4380 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4378
4381
4379 2004-08-11 Fernando Perez <fperez@colorado.edu>
4382 2004-08-11 Fernando Perez <fperez@colorado.edu>
4380
4383
4381 * setup.py (isfile): Fix build so documentation gets updated for
4384 * setup.py (isfile): Fix build so documentation gets updated for
4382 rpms (it was only done for .tgz builds).
4385 rpms (it was only done for .tgz builds).
4383
4386
4384 2004-08-10 Fernando Perez <fperez@colorado.edu>
4387 2004-08-10 Fernando Perez <fperez@colorado.edu>
4385
4388
4386 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4389 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4387
4390
4388 * iplib.py : Silence syntax error exceptions in tab-completion.
4391 * iplib.py : Silence syntax error exceptions in tab-completion.
4389
4392
4390 2004-08-05 Fernando Perez <fperez@colorado.edu>
4393 2004-08-05 Fernando Perez <fperez@colorado.edu>
4391
4394
4392 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4395 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4393 'color off' mark for continuation prompts. This was causing long
4396 'color off' mark for continuation prompts. This was causing long
4394 continuation lines to mis-wrap.
4397 continuation lines to mis-wrap.
4395
4398
4396 2004-08-01 Fernando Perez <fperez@colorado.edu>
4399 2004-08-01 Fernando Perez <fperez@colorado.edu>
4397
4400
4398 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4401 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4399 for building ipython to be a parameter. All this is necessary
4402 for building ipython to be a parameter. All this is necessary
4400 right now to have a multithreaded version, but this insane
4403 right now to have a multithreaded version, but this insane
4401 non-design will be cleaned up soon. For now, it's a hack that
4404 non-design will be cleaned up soon. For now, it's a hack that
4402 works.
4405 works.
4403
4406
4404 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4407 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4405 args in various places. No bugs so far, but it's a dangerous
4408 args in various places. No bugs so far, but it's a dangerous
4406 practice.
4409 practice.
4407
4410
4408 2004-07-31 Fernando Perez <fperez@colorado.edu>
4411 2004-07-31 Fernando Perez <fperez@colorado.edu>
4409
4412
4410 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4413 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4411 fix completion of files with dots in their names under most
4414 fix completion of files with dots in their names under most
4412 profiles (pysh was OK because the completion order is different).
4415 profiles (pysh was OK because the completion order is different).
4413
4416
4414 2004-07-27 Fernando Perez <fperez@colorado.edu>
4417 2004-07-27 Fernando Perez <fperez@colorado.edu>
4415
4418
4416 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4419 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4417 keywords manually, b/c the one in keyword.py was removed in python
4420 keywords manually, b/c the one in keyword.py was removed in python
4418 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4421 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4419 This is NOT a bug under python 2.3 and earlier.
4422 This is NOT a bug under python 2.3 and earlier.
4420
4423
4421 2004-07-26 Fernando Perez <fperez@colorado.edu>
4424 2004-07-26 Fernando Perez <fperez@colorado.edu>
4422
4425
4423 * IPython/ultraTB.py (VerboseTB.text): Add another
4426 * IPython/ultraTB.py (VerboseTB.text): Add another
4424 linecache.checkcache() call to try to prevent inspect.py from
4427 linecache.checkcache() call to try to prevent inspect.py from
4425 crashing under python 2.3. I think this fixes
4428 crashing under python 2.3. I think this fixes
4426 http://www.scipy.net/roundup/ipython/issue17.
4429 http://www.scipy.net/roundup/ipython/issue17.
4427
4430
4428 2004-07-26 *** Released version 0.6.2
4431 2004-07-26 *** Released version 0.6.2
4429
4432
4430 2004-07-26 Fernando Perez <fperez@colorado.edu>
4433 2004-07-26 Fernando Perez <fperez@colorado.edu>
4431
4434
4432 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4435 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4433 fail for any number.
4436 fail for any number.
4434 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4437 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4435 empty bookmarks.
4438 empty bookmarks.
4436
4439
4437 2004-07-26 *** Released version 0.6.1
4440 2004-07-26 *** Released version 0.6.1
4438
4441
4439 2004-07-26 Fernando Perez <fperez@colorado.edu>
4442 2004-07-26 Fernando Perez <fperez@colorado.edu>
4440
4443
4441 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4444 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4442
4445
4443 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4446 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4444 escaping '()[]{}' in filenames.
4447 escaping '()[]{}' in filenames.
4445
4448
4446 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4449 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4447 Python 2.2 users who lack a proper shlex.split.
4450 Python 2.2 users who lack a proper shlex.split.
4448
4451
4449 2004-07-19 Fernando Perez <fperez@colorado.edu>
4452 2004-07-19 Fernando Perez <fperez@colorado.edu>
4450
4453
4451 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4454 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4452 for reading readline's init file. I follow the normal chain:
4455 for reading readline's init file. I follow the normal chain:
4453 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4456 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4454 report by Mike Heeter. This closes
4457 report by Mike Heeter. This closes
4455 http://www.scipy.net/roundup/ipython/issue16.
4458 http://www.scipy.net/roundup/ipython/issue16.
4456
4459
4457 2004-07-18 Fernando Perez <fperez@colorado.edu>
4460 2004-07-18 Fernando Perez <fperez@colorado.edu>
4458
4461
4459 * IPython/iplib.py (__init__): Add better handling of '\' under
4462 * IPython/iplib.py (__init__): Add better handling of '\' under
4460 Win32 for filenames. After a patch by Ville.
4463 Win32 for filenames. After a patch by Ville.
4461
4464
4462 2004-07-17 Fernando Perez <fperez@colorado.edu>
4465 2004-07-17 Fernando Perez <fperez@colorado.edu>
4463
4466
4464 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4467 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4465 autocalling would be triggered for 'foo is bar' if foo is
4468 autocalling would be triggered for 'foo is bar' if foo is
4466 callable. I also cleaned up the autocall detection code to use a
4469 callable. I also cleaned up the autocall detection code to use a
4467 regexp, which is faster. Bug reported by Alexander Schmolck.
4470 regexp, which is faster. Bug reported by Alexander Schmolck.
4468
4471
4469 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4472 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4470 '?' in them would confuse the help system. Reported by Alex
4473 '?' in them would confuse the help system. Reported by Alex
4471 Schmolck.
4474 Schmolck.
4472
4475
4473 2004-07-16 Fernando Perez <fperez@colorado.edu>
4476 2004-07-16 Fernando Perez <fperez@colorado.edu>
4474
4477
4475 * IPython/GnuplotInteractive.py (__all__): added plot2.
4478 * IPython/GnuplotInteractive.py (__all__): added plot2.
4476
4479
4477 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4480 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4478 plotting dictionaries, lists or tuples of 1d arrays.
4481 plotting dictionaries, lists or tuples of 1d arrays.
4479
4482
4480 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4483 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4481 optimizations.
4484 optimizations.
4482
4485
4483 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4486 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4484 the information which was there from Janko's original IPP code:
4487 the information which was there from Janko's original IPP code:
4485
4488
4486 03.05.99 20:53 porto.ifm.uni-kiel.de
4489 03.05.99 20:53 porto.ifm.uni-kiel.de
4487 --Started changelog.
4490 --Started changelog.
4488 --make clear do what it say it does
4491 --make clear do what it say it does
4489 --added pretty output of lines from inputcache
4492 --added pretty output of lines from inputcache
4490 --Made Logger a mixin class, simplifies handling of switches
4493 --Made Logger a mixin class, simplifies handling of switches
4491 --Added own completer class. .string<TAB> expands to last history
4494 --Added own completer class. .string<TAB> expands to last history
4492 line which starts with string. The new expansion is also present
4495 line which starts with string. The new expansion is also present
4493 with Ctrl-r from the readline library. But this shows, who this
4496 with Ctrl-r from the readline library. But this shows, who this
4494 can be done for other cases.
4497 can be done for other cases.
4495 --Added convention that all shell functions should accept a
4498 --Added convention that all shell functions should accept a
4496 parameter_string This opens the door for different behaviour for
4499 parameter_string This opens the door for different behaviour for
4497 each function. @cd is a good example of this.
4500 each function. @cd is a good example of this.
4498
4501
4499 04.05.99 12:12 porto.ifm.uni-kiel.de
4502 04.05.99 12:12 porto.ifm.uni-kiel.de
4500 --added logfile rotation
4503 --added logfile rotation
4501 --added new mainloop method which freezes first the namespace
4504 --added new mainloop method which freezes first the namespace
4502
4505
4503 07.05.99 21:24 porto.ifm.uni-kiel.de
4506 07.05.99 21:24 porto.ifm.uni-kiel.de
4504 --added the docreader classes. Now there is a help system.
4507 --added the docreader classes. Now there is a help system.
4505 -This is only a first try. Currently it's not easy to put new
4508 -This is only a first try. Currently it's not easy to put new
4506 stuff in the indices. But this is the way to go. Info would be
4509 stuff in the indices. But this is the way to go. Info would be
4507 better, but HTML is every where and not everybody has an info
4510 better, but HTML is every where and not everybody has an info
4508 system installed and it's not so easy to change html-docs to info.
4511 system installed and it's not so easy to change html-docs to info.
4509 --added global logfile option
4512 --added global logfile option
4510 --there is now a hook for object inspection method pinfo needs to
4513 --there is now a hook for object inspection method pinfo needs to
4511 be provided for this. Can be reached by two '??'.
4514 be provided for this. Can be reached by two '??'.
4512
4515
4513 08.05.99 20:51 porto.ifm.uni-kiel.de
4516 08.05.99 20:51 porto.ifm.uni-kiel.de
4514 --added a README
4517 --added a README
4515 --bug in rc file. Something has changed so functions in the rc
4518 --bug in rc file. Something has changed so functions in the rc
4516 file need to reference the shell and not self. Not clear if it's a
4519 file need to reference the shell and not self. Not clear if it's a
4517 bug or feature.
4520 bug or feature.
4518 --changed rc file for new behavior
4521 --changed rc file for new behavior
4519
4522
4520 2004-07-15 Fernando Perez <fperez@colorado.edu>
4523 2004-07-15 Fernando Perez <fperez@colorado.edu>
4521
4524
4522 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4525 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4523 cache was falling out of sync in bizarre manners when multi-line
4526 cache was falling out of sync in bizarre manners when multi-line
4524 input was present. Minor optimizations and cleanup.
4527 input was present. Minor optimizations and cleanup.
4525
4528
4526 (Logger): Remove old Changelog info for cleanup. This is the
4529 (Logger): Remove old Changelog info for cleanup. This is the
4527 information which was there from Janko's original code:
4530 information which was there from Janko's original code:
4528
4531
4529 Changes to Logger: - made the default log filename a parameter
4532 Changes to Logger: - made the default log filename a parameter
4530
4533
4531 - put a check for lines beginning with !@? in log(). Needed
4534 - put a check for lines beginning with !@? in log(). Needed
4532 (even if the handlers properly log their lines) for mid-session
4535 (even if the handlers properly log their lines) for mid-session
4533 logging activation to work properly. Without this, lines logged
4536 logging activation to work properly. Without this, lines logged
4534 in mid session, which get read from the cache, would end up
4537 in mid session, which get read from the cache, would end up
4535 'bare' (with !@? in the open) in the log. Now they are caught
4538 'bare' (with !@? in the open) in the log. Now they are caught
4536 and prepended with a #.
4539 and prepended with a #.
4537
4540
4538 * IPython/iplib.py (InteractiveShell.init_readline): added check
4541 * IPython/iplib.py (InteractiveShell.init_readline): added check
4539 in case MagicCompleter fails to be defined, so we don't crash.
4542 in case MagicCompleter fails to be defined, so we don't crash.
4540
4543
4541 2004-07-13 Fernando Perez <fperez@colorado.edu>
4544 2004-07-13 Fernando Perez <fperez@colorado.edu>
4542
4545
4543 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4546 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4544 of EPS if the requested filename ends in '.eps'.
4547 of EPS if the requested filename ends in '.eps'.
4545
4548
4546 2004-07-04 Fernando Perez <fperez@colorado.edu>
4549 2004-07-04 Fernando Perez <fperez@colorado.edu>
4547
4550
4548 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4551 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4549 escaping of quotes when calling the shell.
4552 escaping of quotes when calling the shell.
4550
4553
4551 2004-07-02 Fernando Perez <fperez@colorado.edu>
4554 2004-07-02 Fernando Perez <fperez@colorado.edu>
4552
4555
4553 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4556 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4554 gettext not working because we were clobbering '_'. Fixes
4557 gettext not working because we were clobbering '_'. Fixes
4555 http://www.scipy.net/roundup/ipython/issue6.
4558 http://www.scipy.net/roundup/ipython/issue6.
4556
4559
4557 2004-07-01 Fernando Perez <fperez@colorado.edu>
4560 2004-07-01 Fernando Perez <fperez@colorado.edu>
4558
4561
4559 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4562 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4560 into @cd. Patch by Ville.
4563 into @cd. Patch by Ville.
4561
4564
4562 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4565 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4563 new function to store things after ipmaker runs. Patch by Ville.
4566 new function to store things after ipmaker runs. Patch by Ville.
4564 Eventually this will go away once ipmaker is removed and the class
4567 Eventually this will go away once ipmaker is removed and the class
4565 gets cleaned up, but for now it's ok. Key functionality here is
4568 gets cleaned up, but for now it's ok. Key functionality here is
4566 the addition of the persistent storage mechanism, a dict for
4569 the addition of the persistent storage mechanism, a dict for
4567 keeping data across sessions (for now just bookmarks, but more can
4570 keeping data across sessions (for now just bookmarks, but more can
4568 be implemented later).
4571 be implemented later).
4569
4572
4570 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4573 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4571 persistent across sections. Patch by Ville, I modified it
4574 persistent across sections. Patch by Ville, I modified it
4572 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4575 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4573 added a '-l' option to list all bookmarks.
4576 added a '-l' option to list all bookmarks.
4574
4577
4575 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4578 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4576 center for cleanup. Registered with atexit.register(). I moved
4579 center for cleanup. Registered with atexit.register(). I moved
4577 here the old exit_cleanup(). After a patch by Ville.
4580 here the old exit_cleanup(). After a patch by Ville.
4578
4581
4579 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4582 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4580 characters in the hacked shlex_split for python 2.2.
4583 characters in the hacked shlex_split for python 2.2.
4581
4584
4582 * IPython/iplib.py (file_matches): more fixes to filenames with
4585 * IPython/iplib.py (file_matches): more fixes to filenames with
4583 whitespace in them. It's not perfect, but limitations in python's
4586 whitespace in them. It's not perfect, but limitations in python's
4584 readline make it impossible to go further.
4587 readline make it impossible to go further.
4585
4588
4586 2004-06-29 Fernando Perez <fperez@colorado.edu>
4589 2004-06-29 Fernando Perez <fperez@colorado.edu>
4587
4590
4588 * IPython/iplib.py (file_matches): escape whitespace correctly in
4591 * IPython/iplib.py (file_matches): escape whitespace correctly in
4589 filename completions. Bug reported by Ville.
4592 filename completions. Bug reported by Ville.
4590
4593
4591 2004-06-28 Fernando Perez <fperez@colorado.edu>
4594 2004-06-28 Fernando Perez <fperez@colorado.edu>
4592
4595
4593 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4596 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4594 the history file will be called 'history-PROFNAME' (or just
4597 the history file will be called 'history-PROFNAME' (or just
4595 'history' if no profile is loaded). I was getting annoyed at
4598 'history' if no profile is loaded). I was getting annoyed at
4596 getting my Numerical work history clobbered by pysh sessions.
4599 getting my Numerical work history clobbered by pysh sessions.
4597
4600
4598 * IPython/iplib.py (InteractiveShell.__init__): Internal
4601 * IPython/iplib.py (InteractiveShell.__init__): Internal
4599 getoutputerror() function so that we can honor the system_verbose
4602 getoutputerror() function so that we can honor the system_verbose
4600 flag for _all_ system calls. I also added escaping of #
4603 flag for _all_ system calls. I also added escaping of #
4601 characters here to avoid confusing Itpl.
4604 characters here to avoid confusing Itpl.
4602
4605
4603 * IPython/Magic.py (shlex_split): removed call to shell in
4606 * IPython/Magic.py (shlex_split): removed call to shell in
4604 parse_options and replaced it with shlex.split(). The annoying
4607 parse_options and replaced it with shlex.split(). The annoying
4605 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4608 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4606 to backport it from 2.3, with several frail hacks (the shlex
4609 to backport it from 2.3, with several frail hacks (the shlex
4607 module is rather limited in 2.2). Thanks to a suggestion by Ville
4610 module is rather limited in 2.2). Thanks to a suggestion by Ville
4608 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4611 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4609 problem.
4612 problem.
4610
4613
4611 (Magic.magic_system_verbose): new toggle to print the actual
4614 (Magic.magic_system_verbose): new toggle to print the actual
4612 system calls made by ipython. Mainly for debugging purposes.
4615 system calls made by ipython. Mainly for debugging purposes.
4613
4616
4614 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4617 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4615 doesn't support persistence. Reported (and fix suggested) by
4618 doesn't support persistence. Reported (and fix suggested) by
4616 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4619 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4617
4620
4618 2004-06-26 Fernando Perez <fperez@colorado.edu>
4621 2004-06-26 Fernando Perez <fperez@colorado.edu>
4619
4622
4620 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4623 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4621 continue prompts.
4624 continue prompts.
4622
4625
4623 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4626 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4624 function (basically a big docstring) and a few more things here to
4627 function (basically a big docstring) and a few more things here to
4625 speedup startup. pysh.py is now very lightweight. We want because
4628 speedup startup. pysh.py is now very lightweight. We want because
4626 it gets execfile'd, while InterpreterExec gets imported, so
4629 it gets execfile'd, while InterpreterExec gets imported, so
4627 byte-compilation saves time.
4630 byte-compilation saves time.
4628
4631
4629 2004-06-25 Fernando Perez <fperez@colorado.edu>
4632 2004-06-25 Fernando Perez <fperez@colorado.edu>
4630
4633
4631 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4634 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4632 -NUM', which was recently broken.
4635 -NUM', which was recently broken.
4633
4636
4634 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4637 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4635 in multi-line input (but not !!, which doesn't make sense there).
4638 in multi-line input (but not !!, which doesn't make sense there).
4636
4639
4637 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4640 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4638 It's just too useful, and people can turn it off in the less
4641 It's just too useful, and people can turn it off in the less
4639 common cases where it's a problem.
4642 common cases where it's a problem.
4640
4643
4641 2004-06-24 Fernando Perez <fperez@colorado.edu>
4644 2004-06-24 Fernando Perez <fperez@colorado.edu>
4642
4645
4643 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4646 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4644 special syntaxes (like alias calling) is now allied in multi-line
4647 special syntaxes (like alias calling) is now allied in multi-line
4645 input. This is still _very_ experimental, but it's necessary for
4648 input. This is still _very_ experimental, but it's necessary for
4646 efficient shell usage combining python looping syntax with system
4649 efficient shell usage combining python looping syntax with system
4647 calls. For now it's restricted to aliases, I don't think it
4650 calls. For now it's restricted to aliases, I don't think it
4648 really even makes sense to have this for magics.
4651 really even makes sense to have this for magics.
4649
4652
4650 2004-06-23 Fernando Perez <fperez@colorado.edu>
4653 2004-06-23 Fernando Perez <fperez@colorado.edu>
4651
4654
4652 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4655 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4653 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4656 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4654
4657
4655 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4658 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4656 extensions under Windows (after code sent by Gary Bishop). The
4659 extensions under Windows (after code sent by Gary Bishop). The
4657 extensions considered 'executable' are stored in IPython's rc
4660 extensions considered 'executable' are stored in IPython's rc
4658 structure as win_exec_ext.
4661 structure as win_exec_ext.
4659
4662
4660 * IPython/genutils.py (shell): new function, like system() but
4663 * IPython/genutils.py (shell): new function, like system() but
4661 without return value. Very useful for interactive shell work.
4664 without return value. Very useful for interactive shell work.
4662
4665
4663 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4666 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4664 delete aliases.
4667 delete aliases.
4665
4668
4666 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4669 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4667 sure that the alias table doesn't contain python keywords.
4670 sure that the alias table doesn't contain python keywords.
4668
4671
4669 2004-06-21 Fernando Perez <fperez@colorado.edu>
4672 2004-06-21 Fernando Perez <fperez@colorado.edu>
4670
4673
4671 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4674 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4672 non-existent items are found in $PATH. Reported by Thorsten.
4675 non-existent items are found in $PATH. Reported by Thorsten.
4673
4676
4674 2004-06-20 Fernando Perez <fperez@colorado.edu>
4677 2004-06-20 Fernando Perez <fperez@colorado.edu>
4675
4678
4676 * IPython/iplib.py (complete): modified the completer so that the
4679 * IPython/iplib.py (complete): modified the completer so that the
4677 order of priorities can be easily changed at runtime.
4680 order of priorities can be easily changed at runtime.
4678
4681
4679 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4682 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4680 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4683 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4681
4684
4682 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4685 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4683 expand Python variables prepended with $ in all system calls. The
4686 expand Python variables prepended with $ in all system calls. The
4684 same was done to InteractiveShell.handle_shell_escape. Now all
4687 same was done to InteractiveShell.handle_shell_escape. Now all
4685 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4688 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4686 expansion of python variables and expressions according to the
4689 expansion of python variables and expressions according to the
4687 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4690 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4688
4691
4689 Though PEP-215 has been rejected, a similar (but simpler) one
4692 Though PEP-215 has been rejected, a similar (but simpler) one
4690 seems like it will go into Python 2.4, PEP-292 -
4693 seems like it will go into Python 2.4, PEP-292 -
4691 http://www.python.org/peps/pep-0292.html.
4694 http://www.python.org/peps/pep-0292.html.
4692
4695
4693 I'll keep the full syntax of PEP-215, since IPython has since the
4696 I'll keep the full syntax of PEP-215, since IPython has since the
4694 start used Ka-Ping Yee's reference implementation discussed there
4697 start used Ka-Ping Yee's reference implementation discussed there
4695 (Itpl), and I actually like the powerful semantics it offers.
4698 (Itpl), and I actually like the powerful semantics it offers.
4696
4699
4697 In order to access normal shell variables, the $ has to be escaped
4700 In order to access normal shell variables, the $ has to be escaped
4698 via an extra $. For example:
4701 via an extra $. For example:
4699
4702
4700 In [7]: PATH='a python variable'
4703 In [7]: PATH='a python variable'
4701
4704
4702 In [8]: !echo $PATH
4705 In [8]: !echo $PATH
4703 a python variable
4706 a python variable
4704
4707
4705 In [9]: !echo $$PATH
4708 In [9]: !echo $$PATH
4706 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4709 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4707
4710
4708 (Magic.parse_options): escape $ so the shell doesn't evaluate
4711 (Magic.parse_options): escape $ so the shell doesn't evaluate
4709 things prematurely.
4712 things prematurely.
4710
4713
4711 * IPython/iplib.py (InteractiveShell.call_alias): added the
4714 * IPython/iplib.py (InteractiveShell.call_alias): added the
4712 ability for aliases to expand python variables via $.
4715 ability for aliases to expand python variables via $.
4713
4716
4714 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4717 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4715 system, now there's a @rehash/@rehashx pair of magics. These work
4718 system, now there's a @rehash/@rehashx pair of magics. These work
4716 like the csh rehash command, and can be invoked at any time. They
4719 like the csh rehash command, and can be invoked at any time. They
4717 build a table of aliases to everything in the user's $PATH
4720 build a table of aliases to everything in the user's $PATH
4718 (@rehash uses everything, @rehashx is slower but only adds
4721 (@rehash uses everything, @rehashx is slower but only adds
4719 executable files). With this, the pysh.py-based shell profile can
4722 executable files). With this, the pysh.py-based shell profile can
4720 now simply call rehash upon startup, and full access to all
4723 now simply call rehash upon startup, and full access to all
4721 programs in the user's path is obtained.
4724 programs in the user's path is obtained.
4722
4725
4723 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4726 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4724 functionality is now fully in place. I removed the old dynamic
4727 functionality is now fully in place. I removed the old dynamic
4725 code generation based approach, in favor of a much lighter one
4728 code generation based approach, in favor of a much lighter one
4726 based on a simple dict. The advantage is that this allows me to
4729 based on a simple dict. The advantage is that this allows me to
4727 now have thousands of aliases with negligible cost (unthinkable
4730 now have thousands of aliases with negligible cost (unthinkable
4728 with the old system).
4731 with the old system).
4729
4732
4730 2004-06-19 Fernando Perez <fperez@colorado.edu>
4733 2004-06-19 Fernando Perez <fperez@colorado.edu>
4731
4734
4732 * IPython/iplib.py (__init__): extended MagicCompleter class to
4735 * IPython/iplib.py (__init__): extended MagicCompleter class to
4733 also complete (last in priority) on user aliases.
4736 also complete (last in priority) on user aliases.
4734
4737
4735 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4738 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4736 call to eval.
4739 call to eval.
4737 (ItplNS.__init__): Added a new class which functions like Itpl,
4740 (ItplNS.__init__): Added a new class which functions like Itpl,
4738 but allows configuring the namespace for the evaluation to occur
4741 but allows configuring the namespace for the evaluation to occur
4739 in.
4742 in.
4740
4743
4741 2004-06-18 Fernando Perez <fperez@colorado.edu>
4744 2004-06-18 Fernando Perez <fperez@colorado.edu>
4742
4745
4743 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4746 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4744 better message when 'exit' or 'quit' are typed (a common newbie
4747 better message when 'exit' or 'quit' are typed (a common newbie
4745 confusion).
4748 confusion).
4746
4749
4747 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4750 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4748 check for Windows users.
4751 check for Windows users.
4749
4752
4750 * IPython/iplib.py (InteractiveShell.user_setup): removed
4753 * IPython/iplib.py (InteractiveShell.user_setup): removed
4751 disabling of colors for Windows. I'll test at runtime and issue a
4754 disabling of colors for Windows. I'll test at runtime and issue a
4752 warning if Gary's readline isn't found, as to nudge users to
4755 warning if Gary's readline isn't found, as to nudge users to
4753 download it.
4756 download it.
4754
4757
4755 2004-06-16 Fernando Perez <fperez@colorado.edu>
4758 2004-06-16 Fernando Perez <fperez@colorado.edu>
4756
4759
4757 * IPython/genutils.py (Stream.__init__): changed to print errors
4760 * IPython/genutils.py (Stream.__init__): changed to print errors
4758 to sys.stderr. I had a circular dependency here. Now it's
4761 to sys.stderr. I had a circular dependency here. Now it's
4759 possible to run ipython as IDLE's shell (consider this pre-alpha,
4762 possible to run ipython as IDLE's shell (consider this pre-alpha,
4760 since true stdout things end up in the starting terminal instead
4763 since true stdout things end up in the starting terminal instead
4761 of IDLE's out).
4764 of IDLE's out).
4762
4765
4763 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4766 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4764 users who haven't # updated their prompt_in2 definitions. Remove
4767 users who haven't # updated their prompt_in2 definitions. Remove
4765 eventually.
4768 eventually.
4766 (multiple_replace): added credit to original ASPN recipe.
4769 (multiple_replace): added credit to original ASPN recipe.
4767
4770
4768 2004-06-15 Fernando Perez <fperez@colorado.edu>
4771 2004-06-15 Fernando Perez <fperez@colorado.edu>
4769
4772
4770 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4773 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4771 list of auto-defined aliases.
4774 list of auto-defined aliases.
4772
4775
4773 2004-06-13 Fernando Perez <fperez@colorado.edu>
4776 2004-06-13 Fernando Perez <fperez@colorado.edu>
4774
4777
4775 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4778 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4776 install was really requested (so setup.py can be used for other
4779 install was really requested (so setup.py can be used for other
4777 things under Windows).
4780 things under Windows).
4778
4781
4779 2004-06-10 Fernando Perez <fperez@colorado.edu>
4782 2004-06-10 Fernando Perez <fperez@colorado.edu>
4780
4783
4781 * IPython/Logger.py (Logger.create_log): Manually remove any old
4784 * IPython/Logger.py (Logger.create_log): Manually remove any old
4782 backup, since os.remove may fail under Windows. Fixes bug
4785 backup, since os.remove may fail under Windows. Fixes bug
4783 reported by Thorsten.
4786 reported by Thorsten.
4784
4787
4785 2004-06-09 Fernando Perez <fperez@colorado.edu>
4788 2004-06-09 Fernando Perez <fperez@colorado.edu>
4786
4789
4787 * examples/example-embed.py: fixed all references to %n (replaced
4790 * examples/example-embed.py: fixed all references to %n (replaced
4788 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4791 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4789 for all examples and the manual as well.
4792 for all examples and the manual as well.
4790
4793
4791 2004-06-08 Fernando Perez <fperez@colorado.edu>
4794 2004-06-08 Fernando Perez <fperez@colorado.edu>
4792
4795
4793 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4796 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4794 alignment and color management. All 3 prompt subsystems now
4797 alignment and color management. All 3 prompt subsystems now
4795 inherit from BasePrompt.
4798 inherit from BasePrompt.
4796
4799
4797 * tools/release: updates for windows installer build and tag rpms
4800 * tools/release: updates for windows installer build and tag rpms
4798 with python version (since paths are fixed).
4801 with python version (since paths are fixed).
4799
4802
4800 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4803 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4801 which will become eventually obsolete. Also fixed the default
4804 which will become eventually obsolete. Also fixed the default
4802 prompt_in2 to use \D, so at least new users start with the correct
4805 prompt_in2 to use \D, so at least new users start with the correct
4803 defaults.
4806 defaults.
4804 WARNING: Users with existing ipythonrc files will need to apply
4807 WARNING: Users with existing ipythonrc files will need to apply
4805 this fix manually!
4808 this fix manually!
4806
4809
4807 * setup.py: make windows installer (.exe). This is finally the
4810 * setup.py: make windows installer (.exe). This is finally the
4808 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4811 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4809 which I hadn't included because it required Python 2.3 (or recent
4812 which I hadn't included because it required Python 2.3 (or recent
4810 distutils).
4813 distutils).
4811
4814
4812 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4815 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4813 usage of new '\D' escape.
4816 usage of new '\D' escape.
4814
4817
4815 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4818 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4816 lacks os.getuid())
4819 lacks os.getuid())
4817 (CachedOutput.set_colors): Added the ability to turn coloring
4820 (CachedOutput.set_colors): Added the ability to turn coloring
4818 on/off with @colors even for manually defined prompt colors. It
4821 on/off with @colors even for manually defined prompt colors. It
4819 uses a nasty global, but it works safely and via the generic color
4822 uses a nasty global, but it works safely and via the generic color
4820 handling mechanism.
4823 handling mechanism.
4821 (Prompt2.__init__): Introduced new escape '\D' for continuation
4824 (Prompt2.__init__): Introduced new escape '\D' for continuation
4822 prompts. It represents the counter ('\#') as dots.
4825 prompts. It represents the counter ('\#') as dots.
4823 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4826 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4824 need to update their ipythonrc files and replace '%n' with '\D' in
4827 need to update their ipythonrc files and replace '%n' with '\D' in
4825 their prompt_in2 settings everywhere. Sorry, but there's
4828 their prompt_in2 settings everywhere. Sorry, but there's
4826 otherwise no clean way to get all prompts to properly align. The
4829 otherwise no clean way to get all prompts to properly align. The
4827 ipythonrc shipped with IPython has been updated.
4830 ipythonrc shipped with IPython has been updated.
4828
4831
4829 2004-06-07 Fernando Perez <fperez@colorado.edu>
4832 2004-06-07 Fernando Perez <fperez@colorado.edu>
4830
4833
4831 * setup.py (isfile): Pass local_icons option to latex2html, so the
4834 * setup.py (isfile): Pass local_icons option to latex2html, so the
4832 resulting HTML file is self-contained. Thanks to
4835 resulting HTML file is self-contained. Thanks to
4833 dryice-AT-liu.com.cn for the tip.
4836 dryice-AT-liu.com.cn for the tip.
4834
4837
4835 * pysh.py: I created a new profile 'shell', which implements a
4838 * pysh.py: I created a new profile 'shell', which implements a
4836 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4839 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4837 system shell, nor will it become one anytime soon. It's mainly
4840 system shell, nor will it become one anytime soon. It's mainly
4838 meant to illustrate the use of the new flexible bash-like prompts.
4841 meant to illustrate the use of the new flexible bash-like prompts.
4839 I guess it could be used by hardy souls for true shell management,
4842 I guess it could be used by hardy souls for true shell management,
4840 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4843 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4841 profile. This uses the InterpreterExec extension provided by
4844 profile. This uses the InterpreterExec extension provided by
4842 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4845 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4843
4846
4844 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4847 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4845 auto-align itself with the length of the previous input prompt
4848 auto-align itself with the length of the previous input prompt
4846 (taking into account the invisible color escapes).
4849 (taking into account the invisible color escapes).
4847 (CachedOutput.__init__): Large restructuring of this class. Now
4850 (CachedOutput.__init__): Large restructuring of this class. Now
4848 all three prompts (primary1, primary2, output) are proper objects,
4851 all three prompts (primary1, primary2, output) are proper objects,
4849 managed by the 'parent' CachedOutput class. The code is still a
4852 managed by the 'parent' CachedOutput class. The code is still a
4850 bit hackish (all prompts share state via a pointer to the cache),
4853 bit hackish (all prompts share state via a pointer to the cache),
4851 but it's overall far cleaner than before.
4854 but it's overall far cleaner than before.
4852
4855
4853 * IPython/genutils.py (getoutputerror): modified to add verbose,
4856 * IPython/genutils.py (getoutputerror): modified to add verbose,
4854 debug and header options. This makes the interface of all getout*
4857 debug and header options. This makes the interface of all getout*
4855 functions uniform.
4858 functions uniform.
4856 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4859 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4857
4860
4858 * IPython/Magic.py (Magic.default_option): added a function to
4861 * IPython/Magic.py (Magic.default_option): added a function to
4859 allow registering default options for any magic command. This
4862 allow registering default options for any magic command. This
4860 makes it easy to have profiles which customize the magics globally
4863 makes it easy to have profiles which customize the magics globally
4861 for a certain use. The values set through this function are
4864 for a certain use. The values set through this function are
4862 picked up by the parse_options() method, which all magics should
4865 picked up by the parse_options() method, which all magics should
4863 use to parse their options.
4866 use to parse their options.
4864
4867
4865 * IPython/genutils.py (warn): modified the warnings framework to
4868 * IPython/genutils.py (warn): modified the warnings framework to
4866 use the Term I/O class. I'm trying to slowly unify all of
4869 use the Term I/O class. I'm trying to slowly unify all of
4867 IPython's I/O operations to pass through Term.
4870 IPython's I/O operations to pass through Term.
4868
4871
4869 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4872 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4870 the secondary prompt to correctly match the length of the primary
4873 the secondary prompt to correctly match the length of the primary
4871 one for any prompt. Now multi-line code will properly line up
4874 one for any prompt. Now multi-line code will properly line up
4872 even for path dependent prompts, such as the new ones available
4875 even for path dependent prompts, such as the new ones available
4873 via the prompt_specials.
4876 via the prompt_specials.
4874
4877
4875 2004-06-06 Fernando Perez <fperez@colorado.edu>
4878 2004-06-06 Fernando Perez <fperez@colorado.edu>
4876
4879
4877 * IPython/Prompts.py (prompt_specials): Added the ability to have
4880 * IPython/Prompts.py (prompt_specials): Added the ability to have
4878 bash-like special sequences in the prompts, which get
4881 bash-like special sequences in the prompts, which get
4879 automatically expanded. Things like hostname, current working
4882 automatically expanded. Things like hostname, current working
4880 directory and username are implemented already, but it's easy to
4883 directory and username are implemented already, but it's easy to
4881 add more in the future. Thanks to a patch by W.J. van der Laan
4884 add more in the future. Thanks to a patch by W.J. van der Laan
4882 <gnufnork-AT-hetdigitalegat.nl>
4885 <gnufnork-AT-hetdigitalegat.nl>
4883 (prompt_specials): Added color support for prompt strings, so
4886 (prompt_specials): Added color support for prompt strings, so
4884 users can define arbitrary color setups for their prompts.
4887 users can define arbitrary color setups for their prompts.
4885
4888
4886 2004-06-05 Fernando Perez <fperez@colorado.edu>
4889 2004-06-05 Fernando Perez <fperez@colorado.edu>
4887
4890
4888 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4891 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4889 code to load Gary Bishop's readline and configure it
4892 code to load Gary Bishop's readline and configure it
4890 automatically. Thanks to Gary for help on this.
4893 automatically. Thanks to Gary for help on this.
4891
4894
4892 2004-06-01 Fernando Perez <fperez@colorado.edu>
4895 2004-06-01 Fernando Perez <fperez@colorado.edu>
4893
4896
4894 * IPython/Logger.py (Logger.create_log): fix bug for logging
4897 * IPython/Logger.py (Logger.create_log): fix bug for logging
4895 with no filename (previous fix was incomplete).
4898 with no filename (previous fix was incomplete).
4896
4899
4897 2004-05-25 Fernando Perez <fperez@colorado.edu>
4900 2004-05-25 Fernando Perez <fperez@colorado.edu>
4898
4901
4899 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4902 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4900 parens would get passed to the shell.
4903 parens would get passed to the shell.
4901
4904
4902 2004-05-20 Fernando Perez <fperez@colorado.edu>
4905 2004-05-20 Fernando Perez <fperez@colorado.edu>
4903
4906
4904 * IPython/Magic.py (Magic.magic_prun): changed default profile
4907 * IPython/Magic.py (Magic.magic_prun): changed default profile
4905 sort order to 'time' (the more common profiling need).
4908 sort order to 'time' (the more common profiling need).
4906
4909
4907 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4910 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4908 so that source code shown is guaranteed in sync with the file on
4911 so that source code shown is guaranteed in sync with the file on
4909 disk (also changed in psource). Similar fix to the one for
4912 disk (also changed in psource). Similar fix to the one for
4910 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4913 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4911 <yann.ledu-AT-noos.fr>.
4914 <yann.ledu-AT-noos.fr>.
4912
4915
4913 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4916 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4914 with a single option would not be correctly parsed. Closes
4917 with a single option would not be correctly parsed. Closes
4915 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4918 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4916 introduced in 0.6.0 (on 2004-05-06).
4919 introduced in 0.6.0 (on 2004-05-06).
4917
4920
4918 2004-05-13 *** Released version 0.6.0
4921 2004-05-13 *** Released version 0.6.0
4919
4922
4920 2004-05-13 Fernando Perez <fperez@colorado.edu>
4923 2004-05-13 Fernando Perez <fperez@colorado.edu>
4921
4924
4922 * debian/: Added debian/ directory to CVS, so that debian support
4925 * debian/: Added debian/ directory to CVS, so that debian support
4923 is publicly accessible. The debian package is maintained by Jack
4926 is publicly accessible. The debian package is maintained by Jack
4924 Moffit <jack-AT-xiph.org>.
4927 Moffit <jack-AT-xiph.org>.
4925
4928
4926 * Documentation: included the notes about an ipython-based system
4929 * Documentation: included the notes about an ipython-based system
4927 shell (the hypothetical 'pysh') into the new_design.pdf document,
4930 shell (the hypothetical 'pysh') into the new_design.pdf document,
4928 so that these ideas get distributed to users along with the
4931 so that these ideas get distributed to users along with the
4929 official documentation.
4932 official documentation.
4930
4933
4931 2004-05-10 Fernando Perez <fperez@colorado.edu>
4934 2004-05-10 Fernando Perez <fperez@colorado.edu>
4932
4935
4933 * IPython/Logger.py (Logger.create_log): fix recently introduced
4936 * IPython/Logger.py (Logger.create_log): fix recently introduced
4934 bug (misindented line) where logstart would fail when not given an
4937 bug (misindented line) where logstart would fail when not given an
4935 explicit filename.
4938 explicit filename.
4936
4939
4937 2004-05-09 Fernando Perez <fperez@colorado.edu>
4940 2004-05-09 Fernando Perez <fperez@colorado.edu>
4938
4941
4939 * IPython/Magic.py (Magic.parse_options): skip system call when
4942 * IPython/Magic.py (Magic.parse_options): skip system call when
4940 there are no options to look for. Faster, cleaner for the common
4943 there are no options to look for. Faster, cleaner for the common
4941 case.
4944 case.
4942
4945
4943 * Documentation: many updates to the manual: describing Windows
4946 * Documentation: many updates to the manual: describing Windows
4944 support better, Gnuplot updates, credits, misc small stuff. Also
4947 support better, Gnuplot updates, credits, misc small stuff. Also
4945 updated the new_design doc a bit.
4948 updated the new_design doc a bit.
4946
4949
4947 2004-05-06 *** Released version 0.6.0.rc1
4950 2004-05-06 *** Released version 0.6.0.rc1
4948
4951
4949 2004-05-06 Fernando Perez <fperez@colorado.edu>
4952 2004-05-06 Fernando Perez <fperez@colorado.edu>
4950
4953
4951 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4954 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4952 operations to use the vastly more efficient list/''.join() method.
4955 operations to use the vastly more efficient list/''.join() method.
4953 (FormattedTB.text): Fix
4956 (FormattedTB.text): Fix
4954 http://www.scipy.net/roundup/ipython/issue12 - exception source
4957 http://www.scipy.net/roundup/ipython/issue12 - exception source
4955 extract not updated after reload. Thanks to Mike Salib
4958 extract not updated after reload. Thanks to Mike Salib
4956 <msalib-AT-mit.edu> for pinning the source of the problem.
4959 <msalib-AT-mit.edu> for pinning the source of the problem.
4957 Fortunately, the solution works inside ipython and doesn't require
4960 Fortunately, the solution works inside ipython and doesn't require
4958 any changes to python proper.
4961 any changes to python proper.
4959
4962
4960 * IPython/Magic.py (Magic.parse_options): Improved to process the
4963 * IPython/Magic.py (Magic.parse_options): Improved to process the
4961 argument list as a true shell would (by actually using the
4964 argument list as a true shell would (by actually using the
4962 underlying system shell). This way, all @magics automatically get
4965 underlying system shell). This way, all @magics automatically get
4963 shell expansion for variables. Thanks to a comment by Alex
4966 shell expansion for variables. Thanks to a comment by Alex
4964 Schmolck.
4967 Schmolck.
4965
4968
4966 2004-04-04 Fernando Perez <fperez@colorado.edu>
4969 2004-04-04 Fernando Perez <fperez@colorado.edu>
4967
4970
4968 * IPython/iplib.py (InteractiveShell.interact): Added a special
4971 * IPython/iplib.py (InteractiveShell.interact): Added a special
4969 trap for a debugger quit exception, which is basically impossible
4972 trap for a debugger quit exception, which is basically impossible
4970 to handle by normal mechanisms, given what pdb does to the stack.
4973 to handle by normal mechanisms, given what pdb does to the stack.
4971 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4974 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4972
4975
4973 2004-04-03 Fernando Perez <fperez@colorado.edu>
4976 2004-04-03 Fernando Perez <fperez@colorado.edu>
4974
4977
4975 * IPython/genutils.py (Term): Standardized the names of the Term
4978 * IPython/genutils.py (Term): Standardized the names of the Term
4976 class streams to cin/cout/cerr, following C++ naming conventions
4979 class streams to cin/cout/cerr, following C++ naming conventions
4977 (I can't use in/out/err because 'in' is not a valid attribute
4980 (I can't use in/out/err because 'in' is not a valid attribute
4978 name).
4981 name).
4979
4982
4980 * IPython/iplib.py (InteractiveShell.interact): don't increment
4983 * IPython/iplib.py (InteractiveShell.interact): don't increment
4981 the prompt if there's no user input. By Daniel 'Dang' Griffith
4984 the prompt if there's no user input. By Daniel 'Dang' Griffith
4982 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4985 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4983 Francois Pinard.
4986 Francois Pinard.
4984
4987
4985 2004-04-02 Fernando Perez <fperez@colorado.edu>
4988 2004-04-02 Fernando Perez <fperez@colorado.edu>
4986
4989
4987 * IPython/genutils.py (Stream.__init__): Modified to survive at
4990 * IPython/genutils.py (Stream.__init__): Modified to survive at
4988 least importing in contexts where stdin/out/err aren't true file
4991 least importing in contexts where stdin/out/err aren't true file
4989 objects, such as PyCrust (they lack fileno() and mode). However,
4992 objects, such as PyCrust (they lack fileno() and mode). However,
4990 the recovery facilities which rely on these things existing will
4993 the recovery facilities which rely on these things existing will
4991 not work.
4994 not work.
4992
4995
4993 2004-04-01 Fernando Perez <fperez@colorado.edu>
4996 2004-04-01 Fernando Perez <fperez@colorado.edu>
4994
4997
4995 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4998 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4996 use the new getoutputerror() function, so it properly
4999 use the new getoutputerror() function, so it properly
4997 distinguishes stdout/err.
5000 distinguishes stdout/err.
4998
5001
4999 * IPython/genutils.py (getoutputerror): added a function to
5002 * IPython/genutils.py (getoutputerror): added a function to
5000 capture separately the standard output and error of a command.
5003 capture separately the standard output and error of a command.
5001 After a comment from dang on the mailing lists. This code is
5004 After a comment from dang on the mailing lists. This code is
5002 basically a modified version of commands.getstatusoutput(), from
5005 basically a modified version of commands.getstatusoutput(), from
5003 the standard library.
5006 the standard library.
5004
5007
5005 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5008 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5006 '!!' as a special syntax (shorthand) to access @sx.
5009 '!!' as a special syntax (shorthand) to access @sx.
5007
5010
5008 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5011 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5009 command and return its output as a list split on '\n'.
5012 command and return its output as a list split on '\n'.
5010
5013
5011 2004-03-31 Fernando Perez <fperez@colorado.edu>
5014 2004-03-31 Fernando Perez <fperez@colorado.edu>
5012
5015
5013 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5016 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5014 method to dictionaries used as FakeModule instances if they lack
5017 method to dictionaries used as FakeModule instances if they lack
5015 it. At least pydoc in python2.3 breaks for runtime-defined
5018 it. At least pydoc in python2.3 breaks for runtime-defined
5016 functions without this hack. At some point I need to _really_
5019 functions without this hack. At some point I need to _really_
5017 understand what FakeModule is doing, because it's a gross hack.
5020 understand what FakeModule is doing, because it's a gross hack.
5018 But it solves Arnd's problem for now...
5021 But it solves Arnd's problem for now...
5019
5022
5020 2004-02-27 Fernando Perez <fperez@colorado.edu>
5023 2004-02-27 Fernando Perez <fperez@colorado.edu>
5021
5024
5022 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5025 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5023 mode would behave erratically. Also increased the number of
5026 mode would behave erratically. Also increased the number of
5024 possible logs in rotate mod to 999. Thanks to Rod Holland
5027 possible logs in rotate mod to 999. Thanks to Rod Holland
5025 <rhh@StructureLABS.com> for the report and fixes.
5028 <rhh@StructureLABS.com> for the report and fixes.
5026
5029
5027 2004-02-26 Fernando Perez <fperez@colorado.edu>
5030 2004-02-26 Fernando Perez <fperez@colorado.edu>
5028
5031
5029 * IPython/genutils.py (page): Check that the curses module really
5032 * IPython/genutils.py (page): Check that the curses module really
5030 has the initscr attribute before trying to use it. For some
5033 has the initscr attribute before trying to use it. For some
5031 reason, the Solaris curses module is missing this. I think this
5034 reason, the Solaris curses module is missing this. I think this
5032 should be considered a Solaris python bug, but I'm not sure.
5035 should be considered a Solaris python bug, but I'm not sure.
5033
5036
5034 2004-01-17 Fernando Perez <fperez@colorado.edu>
5037 2004-01-17 Fernando Perez <fperez@colorado.edu>
5035
5038
5036 * IPython/genutils.py (Stream.__init__): Changes to try to make
5039 * IPython/genutils.py (Stream.__init__): Changes to try to make
5037 ipython robust against stdin/out/err being closed by the user.
5040 ipython robust against stdin/out/err being closed by the user.
5038 This is 'user error' (and blocks a normal python session, at least
5041 This is 'user error' (and blocks a normal python session, at least
5039 the stdout case). However, Ipython should be able to survive such
5042 the stdout case). However, Ipython should be able to survive such
5040 instances of abuse as gracefully as possible. To simplify the
5043 instances of abuse as gracefully as possible. To simplify the
5041 coding and maintain compatibility with Gary Bishop's Term
5044 coding and maintain compatibility with Gary Bishop's Term
5042 contributions, I've made use of classmethods for this. I think
5045 contributions, I've made use of classmethods for this. I think
5043 this introduces a dependency on python 2.2.
5046 this introduces a dependency on python 2.2.
5044
5047
5045 2004-01-13 Fernando Perez <fperez@colorado.edu>
5048 2004-01-13 Fernando Perez <fperez@colorado.edu>
5046
5049
5047 * IPython/numutils.py (exp_safe): simplified the code a bit and
5050 * IPython/numutils.py (exp_safe): simplified the code a bit and
5048 removed the need for importing the kinds module altogether.
5051 removed the need for importing the kinds module altogether.
5049
5052
5050 2004-01-06 Fernando Perez <fperez@colorado.edu>
5053 2004-01-06 Fernando Perez <fperez@colorado.edu>
5051
5054
5052 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5055 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5053 a magic function instead, after some community feedback. No
5056 a magic function instead, after some community feedback. No
5054 special syntax will exist for it, but its name is deliberately
5057 special syntax will exist for it, but its name is deliberately
5055 very short.
5058 very short.
5056
5059
5057 2003-12-20 Fernando Perez <fperez@colorado.edu>
5060 2003-12-20 Fernando Perez <fperez@colorado.edu>
5058
5061
5059 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5062 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5060 new functionality, to automagically assign the result of a shell
5063 new functionality, to automagically assign the result of a shell
5061 command to a variable. I'll solicit some community feedback on
5064 command to a variable. I'll solicit some community feedback on
5062 this before making it permanent.
5065 this before making it permanent.
5063
5066
5064 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5067 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5065 requested about callables for which inspect couldn't obtain a
5068 requested about callables for which inspect couldn't obtain a
5066 proper argspec. Thanks to a crash report sent by Etienne
5069 proper argspec. Thanks to a crash report sent by Etienne
5067 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5070 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5068
5071
5069 2003-12-09 Fernando Perez <fperez@colorado.edu>
5072 2003-12-09 Fernando Perez <fperez@colorado.edu>
5070
5073
5071 * IPython/genutils.py (page): patch for the pager to work across
5074 * IPython/genutils.py (page): patch for the pager to work across
5072 various versions of Windows. By Gary Bishop.
5075 various versions of Windows. By Gary Bishop.
5073
5076
5074 2003-12-04 Fernando Perez <fperez@colorado.edu>
5077 2003-12-04 Fernando Perez <fperez@colorado.edu>
5075
5078
5076 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5079 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5077 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5080 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5078 While I tested this and it looks ok, there may still be corner
5081 While I tested this and it looks ok, there may still be corner
5079 cases I've missed.
5082 cases I've missed.
5080
5083
5081 2003-12-01 Fernando Perez <fperez@colorado.edu>
5084 2003-12-01 Fernando Perez <fperez@colorado.edu>
5082
5085
5083 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5086 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5084 where a line like 'p,q=1,2' would fail because the automagic
5087 where a line like 'p,q=1,2' would fail because the automagic
5085 system would be triggered for @p.
5088 system would be triggered for @p.
5086
5089
5087 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5090 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5088 cleanups, code unmodified.
5091 cleanups, code unmodified.
5089
5092
5090 * IPython/genutils.py (Term): added a class for IPython to handle
5093 * IPython/genutils.py (Term): added a class for IPython to handle
5091 output. In most cases it will just be a proxy for stdout/err, but
5094 output. In most cases it will just be a proxy for stdout/err, but
5092 having this allows modifications to be made for some platforms,
5095 having this allows modifications to be made for some platforms,
5093 such as handling color escapes under Windows. All of this code
5096 such as handling color escapes under Windows. All of this code
5094 was contributed by Gary Bishop, with minor modifications by me.
5097 was contributed by Gary Bishop, with minor modifications by me.
5095 The actual changes affect many files.
5098 The actual changes affect many files.
5096
5099
5097 2003-11-30 Fernando Perez <fperez@colorado.edu>
5100 2003-11-30 Fernando Perez <fperez@colorado.edu>
5098
5101
5099 * IPython/iplib.py (file_matches): new completion code, courtesy
5102 * IPython/iplib.py (file_matches): new completion code, courtesy
5100 of Jeff Collins. This enables filename completion again under
5103 of Jeff Collins. This enables filename completion again under
5101 python 2.3, which disabled it at the C level.
5104 python 2.3, which disabled it at the C level.
5102
5105
5103 2003-11-11 Fernando Perez <fperez@colorado.edu>
5106 2003-11-11 Fernando Perez <fperez@colorado.edu>
5104
5107
5105 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5108 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5106 for Numeric.array(map(...)), but often convenient.
5109 for Numeric.array(map(...)), but often convenient.
5107
5110
5108 2003-11-05 Fernando Perez <fperez@colorado.edu>
5111 2003-11-05 Fernando Perez <fperez@colorado.edu>
5109
5112
5110 * IPython/numutils.py (frange): Changed a call from int() to
5113 * IPython/numutils.py (frange): Changed a call from int() to
5111 int(round()) to prevent a problem reported with arange() in the
5114 int(round()) to prevent a problem reported with arange() in the
5112 numpy list.
5115 numpy list.
5113
5116
5114 2003-10-06 Fernando Perez <fperez@colorado.edu>
5117 2003-10-06 Fernando Perez <fperez@colorado.edu>
5115
5118
5116 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5119 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5117 prevent crashes if sys lacks an argv attribute (it happens with
5120 prevent crashes if sys lacks an argv attribute (it happens with
5118 embedded interpreters which build a bare-bones sys module).
5121 embedded interpreters which build a bare-bones sys module).
5119 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5122 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5120
5123
5121 2003-09-24 Fernando Perez <fperez@colorado.edu>
5124 2003-09-24 Fernando Perez <fperez@colorado.edu>
5122
5125
5123 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5126 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5124 to protect against poorly written user objects where __getattr__
5127 to protect against poorly written user objects where __getattr__
5125 raises exceptions other than AttributeError. Thanks to a bug
5128 raises exceptions other than AttributeError. Thanks to a bug
5126 report by Oliver Sander <osander-AT-gmx.de>.
5129 report by Oliver Sander <osander-AT-gmx.de>.
5127
5130
5128 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5131 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5129 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5132 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5130
5133
5131 2003-09-09 Fernando Perez <fperez@colorado.edu>
5134 2003-09-09 Fernando Perez <fperez@colorado.edu>
5132
5135
5133 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5136 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5134 unpacking a list whith a callable as first element would
5137 unpacking a list whith a callable as first element would
5135 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5138 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5136 Collins.
5139 Collins.
5137
5140
5138 2003-08-25 *** Released version 0.5.0
5141 2003-08-25 *** Released version 0.5.0
5139
5142
5140 2003-08-22 Fernando Perez <fperez@colorado.edu>
5143 2003-08-22 Fernando Perez <fperez@colorado.edu>
5141
5144
5142 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5145 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5143 improperly defined user exceptions. Thanks to feedback from Mark
5146 improperly defined user exceptions. Thanks to feedback from Mark
5144 Russell <mrussell-AT-verio.net>.
5147 Russell <mrussell-AT-verio.net>.
5145
5148
5146 2003-08-20 Fernando Perez <fperez@colorado.edu>
5149 2003-08-20 Fernando Perez <fperez@colorado.edu>
5147
5150
5148 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5151 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5149 printing so that it would print multi-line string forms starting
5152 printing so that it would print multi-line string forms starting
5150 with a new line. This way the formatting is better respected for
5153 with a new line. This way the formatting is better respected for
5151 objects which work hard to make nice string forms.
5154 objects which work hard to make nice string forms.
5152
5155
5153 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5156 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5154 autocall would overtake data access for objects with both
5157 autocall would overtake data access for objects with both
5155 __getitem__ and __call__.
5158 __getitem__ and __call__.
5156
5159
5157 2003-08-19 *** Released version 0.5.0-rc1
5160 2003-08-19 *** Released version 0.5.0-rc1
5158
5161
5159 2003-08-19 Fernando Perez <fperez@colorado.edu>
5162 2003-08-19 Fernando Perez <fperez@colorado.edu>
5160
5163
5161 * IPython/deep_reload.py (load_tail): single tiny change here
5164 * IPython/deep_reload.py (load_tail): single tiny change here
5162 seems to fix the long-standing bug of dreload() failing to work
5165 seems to fix the long-standing bug of dreload() failing to work
5163 for dotted names. But this module is pretty tricky, so I may have
5166 for dotted names. But this module is pretty tricky, so I may have
5164 missed some subtlety. Needs more testing!.
5167 missed some subtlety. Needs more testing!.
5165
5168
5166 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5169 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5167 exceptions which have badly implemented __str__ methods.
5170 exceptions which have badly implemented __str__ methods.
5168 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5171 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5169 which I've been getting reports about from Python 2.3 users. I
5172 which I've been getting reports about from Python 2.3 users. I
5170 wish I had a simple test case to reproduce the problem, so I could
5173 wish I had a simple test case to reproduce the problem, so I could
5171 either write a cleaner workaround or file a bug report if
5174 either write a cleaner workaround or file a bug report if
5172 necessary.
5175 necessary.
5173
5176
5174 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5177 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5175 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5178 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5176 a bug report by Tjabo Kloppenburg.
5179 a bug report by Tjabo Kloppenburg.
5177
5180
5178 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5181 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5179 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5182 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5180 seems rather unstable. Thanks to a bug report by Tjabo
5183 seems rather unstable. Thanks to a bug report by Tjabo
5181 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5184 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5182
5185
5183 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5186 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5184 this out soon because of the critical fixes in the inner loop for
5187 this out soon because of the critical fixes in the inner loop for
5185 generators.
5188 generators.
5186
5189
5187 * IPython/Magic.py (Magic.getargspec): removed. This (and
5190 * IPython/Magic.py (Magic.getargspec): removed. This (and
5188 _get_def) have been obsoleted by OInspect for a long time, I
5191 _get_def) have been obsoleted by OInspect for a long time, I
5189 hadn't noticed that they were dead code.
5192 hadn't noticed that they were dead code.
5190 (Magic._ofind): restored _ofind functionality for a few literals
5193 (Magic._ofind): restored _ofind functionality for a few literals
5191 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5194 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5192 for things like "hello".capitalize?, since that would require a
5195 for things like "hello".capitalize?, since that would require a
5193 potentially dangerous eval() again.
5196 potentially dangerous eval() again.
5194
5197
5195 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5198 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5196 logic a bit more to clean up the escapes handling and minimize the
5199 logic a bit more to clean up the escapes handling and minimize the
5197 use of _ofind to only necessary cases. The interactive 'feel' of
5200 use of _ofind to only necessary cases. The interactive 'feel' of
5198 IPython should have improved quite a bit with the changes in
5201 IPython should have improved quite a bit with the changes in
5199 _prefilter and _ofind (besides being far safer than before).
5202 _prefilter and _ofind (besides being far safer than before).
5200
5203
5201 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5204 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5202 obscure, never reported). Edit would fail to find the object to
5205 obscure, never reported). Edit would fail to find the object to
5203 edit under some circumstances.
5206 edit under some circumstances.
5204 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5207 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5205 which were causing double-calling of generators. Those eval calls
5208 which were causing double-calling of generators. Those eval calls
5206 were _very_ dangerous, since code with side effects could be
5209 were _very_ dangerous, since code with side effects could be
5207 triggered. As they say, 'eval is evil'... These were the
5210 triggered. As they say, 'eval is evil'... These were the
5208 nastiest evals in IPython. Besides, _ofind is now far simpler,
5211 nastiest evals in IPython. Besides, _ofind is now far simpler,
5209 and it should also be quite a bit faster. Its use of inspect is
5212 and it should also be quite a bit faster. Its use of inspect is
5210 also safer, so perhaps some of the inspect-related crashes I've
5213 also safer, so perhaps some of the inspect-related crashes I've
5211 seen lately with Python 2.3 might be taken care of. That will
5214 seen lately with Python 2.3 might be taken care of. That will
5212 need more testing.
5215 need more testing.
5213
5216
5214 2003-08-17 Fernando Perez <fperez@colorado.edu>
5217 2003-08-17 Fernando Perez <fperez@colorado.edu>
5215
5218
5216 * IPython/iplib.py (InteractiveShell._prefilter): significant
5219 * IPython/iplib.py (InteractiveShell._prefilter): significant
5217 simplifications to the logic for handling user escapes. Faster
5220 simplifications to the logic for handling user escapes. Faster
5218 and simpler code.
5221 and simpler code.
5219
5222
5220 2003-08-14 Fernando Perez <fperez@colorado.edu>
5223 2003-08-14 Fernando Perez <fperez@colorado.edu>
5221
5224
5222 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5225 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5223 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5226 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5224 but it should be quite a bit faster. And the recursive version
5227 but it should be quite a bit faster. And the recursive version
5225 generated O(log N) intermediate storage for all rank>1 arrays,
5228 generated O(log N) intermediate storage for all rank>1 arrays,
5226 even if they were contiguous.
5229 even if they were contiguous.
5227 (l1norm): Added this function.
5230 (l1norm): Added this function.
5228 (norm): Added this function for arbitrary norms (including
5231 (norm): Added this function for arbitrary norms (including
5229 l-infinity). l1 and l2 are still special cases for convenience
5232 l-infinity). l1 and l2 are still special cases for convenience
5230 and speed.
5233 and speed.
5231
5234
5232 2003-08-03 Fernando Perez <fperez@colorado.edu>
5235 2003-08-03 Fernando Perez <fperez@colorado.edu>
5233
5236
5234 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5237 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5235 exceptions, which now raise PendingDeprecationWarnings in Python
5238 exceptions, which now raise PendingDeprecationWarnings in Python
5236 2.3. There were some in Magic and some in Gnuplot2.
5239 2.3. There were some in Magic and some in Gnuplot2.
5237
5240
5238 2003-06-30 Fernando Perez <fperez@colorado.edu>
5241 2003-06-30 Fernando Perez <fperez@colorado.edu>
5239
5242
5240 * IPython/genutils.py (page): modified to call curses only for
5243 * IPython/genutils.py (page): modified to call curses only for
5241 terminals where TERM=='xterm'. After problems under many other
5244 terminals where TERM=='xterm'. After problems under many other
5242 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5245 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5243
5246
5244 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5247 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5245 would be triggered when readline was absent. This was just an old
5248 would be triggered when readline was absent. This was just an old
5246 debugging statement I'd forgotten to take out.
5249 debugging statement I'd forgotten to take out.
5247
5250
5248 2003-06-20 Fernando Perez <fperez@colorado.edu>
5251 2003-06-20 Fernando Perez <fperez@colorado.edu>
5249
5252
5250 * IPython/genutils.py (clock): modified to return only user time
5253 * IPython/genutils.py (clock): modified to return only user time
5251 (not counting system time), after a discussion on scipy. While
5254 (not counting system time), after a discussion on scipy. While
5252 system time may be a useful quantity occasionally, it may much
5255 system time may be a useful quantity occasionally, it may much
5253 more easily be skewed by occasional swapping or other similar
5256 more easily be skewed by occasional swapping or other similar
5254 activity.
5257 activity.
5255
5258
5256 2003-06-05 Fernando Perez <fperez@colorado.edu>
5259 2003-06-05 Fernando Perez <fperez@colorado.edu>
5257
5260
5258 * IPython/numutils.py (identity): new function, for building
5261 * IPython/numutils.py (identity): new function, for building
5259 arbitrary rank Kronecker deltas (mostly backwards compatible with
5262 arbitrary rank Kronecker deltas (mostly backwards compatible with
5260 Numeric.identity)
5263 Numeric.identity)
5261
5264
5262 2003-06-03 Fernando Perez <fperez@colorado.edu>
5265 2003-06-03 Fernando Perez <fperez@colorado.edu>
5263
5266
5264 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5267 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5265 arguments passed to magics with spaces, to allow trailing '\' to
5268 arguments passed to magics with spaces, to allow trailing '\' to
5266 work normally (mainly for Windows users).
5269 work normally (mainly for Windows users).
5267
5270
5268 2003-05-29 Fernando Perez <fperez@colorado.edu>
5271 2003-05-29 Fernando Perez <fperez@colorado.edu>
5269
5272
5270 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5273 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5271 instead of pydoc.help. This fixes a bizarre behavior where
5274 instead of pydoc.help. This fixes a bizarre behavior where
5272 printing '%s' % locals() would trigger the help system. Now
5275 printing '%s' % locals() would trigger the help system. Now
5273 ipython behaves like normal python does.
5276 ipython behaves like normal python does.
5274
5277
5275 Note that if one does 'from pydoc import help', the bizarre
5278 Note that if one does 'from pydoc import help', the bizarre
5276 behavior returns, but this will also happen in normal python, so
5279 behavior returns, but this will also happen in normal python, so
5277 it's not an ipython bug anymore (it has to do with how pydoc.help
5280 it's not an ipython bug anymore (it has to do with how pydoc.help
5278 is implemented).
5281 is implemented).
5279
5282
5280 2003-05-22 Fernando Perez <fperez@colorado.edu>
5283 2003-05-22 Fernando Perez <fperez@colorado.edu>
5281
5284
5282 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5285 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5283 return [] instead of None when nothing matches, also match to end
5286 return [] instead of None when nothing matches, also match to end
5284 of line. Patch by Gary Bishop.
5287 of line. Patch by Gary Bishop.
5285
5288
5286 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5289 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5287 protection as before, for files passed on the command line. This
5290 protection as before, for files passed on the command line. This
5288 prevents the CrashHandler from kicking in if user files call into
5291 prevents the CrashHandler from kicking in if user files call into
5289 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5292 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5290 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5293 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5291
5294
5292 2003-05-20 *** Released version 0.4.0
5295 2003-05-20 *** Released version 0.4.0
5293
5296
5294 2003-05-20 Fernando Perez <fperez@colorado.edu>
5297 2003-05-20 Fernando Perez <fperez@colorado.edu>
5295
5298
5296 * setup.py: added support for manpages. It's a bit hackish b/c of
5299 * setup.py: added support for manpages. It's a bit hackish b/c of
5297 a bug in the way the bdist_rpm distutils target handles gzipped
5300 a bug in the way the bdist_rpm distutils target handles gzipped
5298 manpages, but it works. After a patch by Jack.
5301 manpages, but it works. After a patch by Jack.
5299
5302
5300 2003-05-19 Fernando Perez <fperez@colorado.edu>
5303 2003-05-19 Fernando Perez <fperez@colorado.edu>
5301
5304
5302 * IPython/numutils.py: added a mockup of the kinds module, since
5305 * IPython/numutils.py: added a mockup of the kinds module, since
5303 it was recently removed from Numeric. This way, numutils will
5306 it was recently removed from Numeric. This way, numutils will
5304 work for all users even if they are missing kinds.
5307 work for all users even if they are missing kinds.
5305
5308
5306 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5309 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5307 failure, which can occur with SWIG-wrapped extensions. After a
5310 failure, which can occur with SWIG-wrapped extensions. After a
5308 crash report from Prabhu.
5311 crash report from Prabhu.
5309
5312
5310 2003-05-16 Fernando Perez <fperez@colorado.edu>
5313 2003-05-16 Fernando Perez <fperez@colorado.edu>
5311
5314
5312 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5315 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5313 protect ipython from user code which may call directly
5316 protect ipython from user code which may call directly
5314 sys.excepthook (this looks like an ipython crash to the user, even
5317 sys.excepthook (this looks like an ipython crash to the user, even
5315 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5318 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5316 This is especially important to help users of WxWindows, but may
5319 This is especially important to help users of WxWindows, but may
5317 also be useful in other cases.
5320 also be useful in other cases.
5318
5321
5319 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5322 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5320 an optional tb_offset to be specified, and to preserve exception
5323 an optional tb_offset to be specified, and to preserve exception
5321 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5324 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5322
5325
5323 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5326 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5324
5327
5325 2003-05-15 Fernando Perez <fperez@colorado.edu>
5328 2003-05-15 Fernando Perez <fperez@colorado.edu>
5326
5329
5327 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5330 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5328 installing for a new user under Windows.
5331 installing for a new user under Windows.
5329
5332
5330 2003-05-12 Fernando Perez <fperez@colorado.edu>
5333 2003-05-12 Fernando Perez <fperez@colorado.edu>
5331
5334
5332 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5335 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5333 handler for Emacs comint-based lines. Currently it doesn't do
5336 handler for Emacs comint-based lines. Currently it doesn't do
5334 much (but importantly, it doesn't update the history cache). In
5337 much (but importantly, it doesn't update the history cache). In
5335 the future it may be expanded if Alex needs more functionality
5338 the future it may be expanded if Alex needs more functionality
5336 there.
5339 there.
5337
5340
5338 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5341 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5339 info to crash reports.
5342 info to crash reports.
5340
5343
5341 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5344 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5342 just like Python's -c. Also fixed crash with invalid -color
5345 just like Python's -c. Also fixed crash with invalid -color
5343 option value at startup. Thanks to Will French
5346 option value at startup. Thanks to Will French
5344 <wfrench-AT-bestweb.net> for the bug report.
5347 <wfrench-AT-bestweb.net> for the bug report.
5345
5348
5346 2003-05-09 Fernando Perez <fperez@colorado.edu>
5349 2003-05-09 Fernando Perez <fperez@colorado.edu>
5347
5350
5348 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5351 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5349 to EvalDict (it's a mapping, after all) and simplified its code
5352 to EvalDict (it's a mapping, after all) and simplified its code
5350 quite a bit, after a nice discussion on c.l.py where Gustavo
5353 quite a bit, after a nice discussion on c.l.py where Gustavo
5351 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5354 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5352
5355
5353 2003-04-30 Fernando Perez <fperez@colorado.edu>
5356 2003-04-30 Fernando Perez <fperez@colorado.edu>
5354
5357
5355 * IPython/genutils.py (timings_out): modified it to reduce its
5358 * IPython/genutils.py (timings_out): modified it to reduce its
5356 overhead in the common reps==1 case.
5359 overhead in the common reps==1 case.
5357
5360
5358 2003-04-29 Fernando Perez <fperez@colorado.edu>
5361 2003-04-29 Fernando Perez <fperez@colorado.edu>
5359
5362
5360 * IPython/genutils.py (timings_out): Modified to use the resource
5363 * IPython/genutils.py (timings_out): Modified to use the resource
5361 module, which avoids the wraparound problems of time.clock().
5364 module, which avoids the wraparound problems of time.clock().
5362
5365
5363 2003-04-17 *** Released version 0.2.15pre4
5366 2003-04-17 *** Released version 0.2.15pre4
5364
5367
5365 2003-04-17 Fernando Perez <fperez@colorado.edu>
5368 2003-04-17 Fernando Perez <fperez@colorado.edu>
5366
5369
5367 * setup.py (scriptfiles): Split windows-specific stuff over to a
5370 * setup.py (scriptfiles): Split windows-specific stuff over to a
5368 separate file, in an attempt to have a Windows GUI installer.
5371 separate file, in an attempt to have a Windows GUI installer.
5369 That didn't work, but part of the groundwork is done.
5372 That didn't work, but part of the groundwork is done.
5370
5373
5371 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5374 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5372 indent/unindent with 4 spaces. Particularly useful in combination
5375 indent/unindent with 4 spaces. Particularly useful in combination
5373 with the new auto-indent option.
5376 with the new auto-indent option.
5374
5377
5375 2003-04-16 Fernando Perez <fperez@colorado.edu>
5378 2003-04-16 Fernando Perez <fperez@colorado.edu>
5376
5379
5377 * IPython/Magic.py: various replacements of self.rc for
5380 * IPython/Magic.py: various replacements of self.rc for
5378 self.shell.rc. A lot more remains to be done to fully disentangle
5381 self.shell.rc. A lot more remains to be done to fully disentangle
5379 this class from the main Shell class.
5382 this class from the main Shell class.
5380
5383
5381 * IPython/GnuplotRuntime.py: added checks for mouse support so
5384 * IPython/GnuplotRuntime.py: added checks for mouse support so
5382 that we don't try to enable it if the current gnuplot doesn't
5385 that we don't try to enable it if the current gnuplot doesn't
5383 really support it. Also added checks so that we don't try to
5386 really support it. Also added checks so that we don't try to
5384 enable persist under Windows (where Gnuplot doesn't recognize the
5387 enable persist under Windows (where Gnuplot doesn't recognize the
5385 option).
5388 option).
5386
5389
5387 * IPython/iplib.py (InteractiveShell.interact): Added optional
5390 * IPython/iplib.py (InteractiveShell.interact): Added optional
5388 auto-indenting code, after a patch by King C. Shu
5391 auto-indenting code, after a patch by King C. Shu
5389 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5392 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5390 get along well with pasting indented code. If I ever figure out
5393 get along well with pasting indented code. If I ever figure out
5391 how to make that part go well, it will become on by default.
5394 how to make that part go well, it will become on by default.
5392
5395
5393 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5396 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5394 crash ipython if there was an unmatched '%' in the user's prompt
5397 crash ipython if there was an unmatched '%' in the user's prompt
5395 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5398 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5396
5399
5397 * IPython/iplib.py (InteractiveShell.interact): removed the
5400 * IPython/iplib.py (InteractiveShell.interact): removed the
5398 ability to ask the user whether he wants to crash or not at the
5401 ability to ask the user whether he wants to crash or not at the
5399 'last line' exception handler. Calling functions at that point
5402 'last line' exception handler. Calling functions at that point
5400 changes the stack, and the error reports would have incorrect
5403 changes the stack, and the error reports would have incorrect
5401 tracebacks.
5404 tracebacks.
5402
5405
5403 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5406 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5404 pass through a peger a pretty-printed form of any object. After a
5407 pass through a peger a pretty-printed form of any object. After a
5405 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5408 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5406
5409
5407 2003-04-14 Fernando Perez <fperez@colorado.edu>
5410 2003-04-14 Fernando Perez <fperez@colorado.edu>
5408
5411
5409 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5412 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5410 all files in ~ would be modified at first install (instead of
5413 all files in ~ would be modified at first install (instead of
5411 ~/.ipython). This could be potentially disastrous, as the
5414 ~/.ipython). This could be potentially disastrous, as the
5412 modification (make line-endings native) could damage binary files.
5415 modification (make line-endings native) could damage binary files.
5413
5416
5414 2003-04-10 Fernando Perez <fperez@colorado.edu>
5417 2003-04-10 Fernando Perez <fperez@colorado.edu>
5415
5418
5416 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5419 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5417 handle only lines which are invalid python. This now means that
5420 handle only lines which are invalid python. This now means that
5418 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5421 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5419 for the bug report.
5422 for the bug report.
5420
5423
5421 2003-04-01 Fernando Perez <fperez@colorado.edu>
5424 2003-04-01 Fernando Perez <fperez@colorado.edu>
5422
5425
5423 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5426 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5424 where failing to set sys.last_traceback would crash pdb.pm().
5427 where failing to set sys.last_traceback would crash pdb.pm().
5425 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5428 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5426 report.
5429 report.
5427
5430
5428 2003-03-25 Fernando Perez <fperez@colorado.edu>
5431 2003-03-25 Fernando Perez <fperez@colorado.edu>
5429
5432
5430 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5433 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5431 before printing it (it had a lot of spurious blank lines at the
5434 before printing it (it had a lot of spurious blank lines at the
5432 end).
5435 end).
5433
5436
5434 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5437 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5435 output would be sent 21 times! Obviously people don't use this
5438 output would be sent 21 times! Obviously people don't use this
5436 too often, or I would have heard about it.
5439 too often, or I would have heard about it.
5437
5440
5438 2003-03-24 Fernando Perez <fperez@colorado.edu>
5441 2003-03-24 Fernando Perez <fperez@colorado.edu>
5439
5442
5440 * setup.py (scriptfiles): renamed the data_files parameter from
5443 * setup.py (scriptfiles): renamed the data_files parameter from
5441 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5444 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5442 for the patch.
5445 for the patch.
5443
5446
5444 2003-03-20 Fernando Perez <fperez@colorado.edu>
5447 2003-03-20 Fernando Perez <fperez@colorado.edu>
5445
5448
5446 * IPython/genutils.py (error): added error() and fatal()
5449 * IPython/genutils.py (error): added error() and fatal()
5447 functions.
5450 functions.
5448
5451
5449 2003-03-18 *** Released version 0.2.15pre3
5452 2003-03-18 *** Released version 0.2.15pre3
5450
5453
5451 2003-03-18 Fernando Perez <fperez@colorado.edu>
5454 2003-03-18 Fernando Perez <fperez@colorado.edu>
5452
5455
5453 * setupext/install_data_ext.py
5456 * setupext/install_data_ext.py
5454 (install_data_ext.initialize_options): Class contributed by Jack
5457 (install_data_ext.initialize_options): Class contributed by Jack
5455 Moffit for fixing the old distutils hack. He is sending this to
5458 Moffit for fixing the old distutils hack. He is sending this to
5456 the distutils folks so in the future we may not need it as a
5459 the distutils folks so in the future we may not need it as a
5457 private fix.
5460 private fix.
5458
5461
5459 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5462 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5460 changes for Debian packaging. See his patch for full details.
5463 changes for Debian packaging. See his patch for full details.
5461 The old distutils hack of making the ipythonrc* files carry a
5464 The old distutils hack of making the ipythonrc* files carry a
5462 bogus .py extension is gone, at last. Examples were moved to a
5465 bogus .py extension is gone, at last. Examples were moved to a
5463 separate subdir under doc/, and the separate executable scripts
5466 separate subdir under doc/, and the separate executable scripts
5464 now live in their own directory. Overall a great cleanup. The
5467 now live in their own directory. Overall a great cleanup. The
5465 manual was updated to use the new files, and setup.py has been
5468 manual was updated to use the new files, and setup.py has been
5466 fixed for this setup.
5469 fixed for this setup.
5467
5470
5468 * IPython/PyColorize.py (Parser.usage): made non-executable and
5471 * IPython/PyColorize.py (Parser.usage): made non-executable and
5469 created a pycolor wrapper around it to be included as a script.
5472 created a pycolor wrapper around it to be included as a script.
5470
5473
5471 2003-03-12 *** Released version 0.2.15pre2
5474 2003-03-12 *** Released version 0.2.15pre2
5472
5475
5473 2003-03-12 Fernando Perez <fperez@colorado.edu>
5476 2003-03-12 Fernando Perez <fperez@colorado.edu>
5474
5477
5475 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5478 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5476 long-standing problem with garbage characters in some terminals.
5479 long-standing problem with garbage characters in some terminals.
5477 The issue was really that the \001 and \002 escapes must _only_ be
5480 The issue was really that the \001 and \002 escapes must _only_ be
5478 passed to input prompts (which call readline), but _never_ to
5481 passed to input prompts (which call readline), but _never_ to
5479 normal text to be printed on screen. I changed ColorANSI to have
5482 normal text to be printed on screen. I changed ColorANSI to have
5480 two classes: TermColors and InputTermColors, each with the
5483 two classes: TermColors and InputTermColors, each with the
5481 appropriate escapes for input prompts or normal text. The code in
5484 appropriate escapes for input prompts or normal text. The code in
5482 Prompts.py got slightly more complicated, but this very old and
5485 Prompts.py got slightly more complicated, but this very old and
5483 annoying bug is finally fixed.
5486 annoying bug is finally fixed.
5484
5487
5485 All the credit for nailing down the real origin of this problem
5488 All the credit for nailing down the real origin of this problem
5486 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5489 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5487 *Many* thanks to him for spending quite a bit of effort on this.
5490 *Many* thanks to him for spending quite a bit of effort on this.
5488
5491
5489 2003-03-05 *** Released version 0.2.15pre1
5492 2003-03-05 *** Released version 0.2.15pre1
5490
5493
5491 2003-03-03 Fernando Perez <fperez@colorado.edu>
5494 2003-03-03 Fernando Perez <fperez@colorado.edu>
5492
5495
5493 * IPython/FakeModule.py: Moved the former _FakeModule to a
5496 * IPython/FakeModule.py: Moved the former _FakeModule to a
5494 separate file, because it's also needed by Magic (to fix a similar
5497 separate file, because it's also needed by Magic (to fix a similar
5495 pickle-related issue in @run).
5498 pickle-related issue in @run).
5496
5499
5497 2003-03-02 Fernando Perez <fperez@colorado.edu>
5500 2003-03-02 Fernando Perez <fperez@colorado.edu>
5498
5501
5499 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5502 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5500 the autocall option at runtime.
5503 the autocall option at runtime.
5501 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5504 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5502 across Magic.py to start separating Magic from InteractiveShell.
5505 across Magic.py to start separating Magic from InteractiveShell.
5503 (Magic._ofind): Fixed to return proper namespace for dotted
5506 (Magic._ofind): Fixed to return proper namespace for dotted
5504 names. Before, a dotted name would always return 'not currently
5507 names. Before, a dotted name would always return 'not currently
5505 defined', because it would find the 'parent'. s.x would be found,
5508 defined', because it would find the 'parent'. s.x would be found,
5506 but since 'x' isn't defined by itself, it would get confused.
5509 but since 'x' isn't defined by itself, it would get confused.
5507 (Magic.magic_run): Fixed pickling problems reported by Ralf
5510 (Magic.magic_run): Fixed pickling problems reported by Ralf
5508 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5511 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5509 that I'd used when Mike Heeter reported similar issues at the
5512 that I'd used when Mike Heeter reported similar issues at the
5510 top-level, but now for @run. It boils down to injecting the
5513 top-level, but now for @run. It boils down to injecting the
5511 namespace where code is being executed with something that looks
5514 namespace where code is being executed with something that looks
5512 enough like a module to fool pickle.dump(). Since a pickle stores
5515 enough like a module to fool pickle.dump(). Since a pickle stores
5513 a named reference to the importing module, we need this for
5516 a named reference to the importing module, we need this for
5514 pickles to save something sensible.
5517 pickles to save something sensible.
5515
5518
5516 * IPython/ipmaker.py (make_IPython): added an autocall option.
5519 * IPython/ipmaker.py (make_IPython): added an autocall option.
5517
5520
5518 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5521 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5519 the auto-eval code. Now autocalling is an option, and the code is
5522 the auto-eval code. Now autocalling is an option, and the code is
5520 also vastly safer. There is no more eval() involved at all.
5523 also vastly safer. There is no more eval() involved at all.
5521
5524
5522 2003-03-01 Fernando Perez <fperez@colorado.edu>
5525 2003-03-01 Fernando Perez <fperez@colorado.edu>
5523
5526
5524 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5527 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5525 dict with named keys instead of a tuple.
5528 dict with named keys instead of a tuple.
5526
5529
5527 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5530 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5528
5531
5529 * setup.py (make_shortcut): Fixed message about directories
5532 * setup.py (make_shortcut): Fixed message about directories
5530 created during Windows installation (the directories were ok, just
5533 created during Windows installation (the directories were ok, just
5531 the printed message was misleading). Thanks to Chris Liechti
5534 the printed message was misleading). Thanks to Chris Liechti
5532 <cliechti-AT-gmx.net> for the heads up.
5535 <cliechti-AT-gmx.net> for the heads up.
5533
5536
5534 2003-02-21 Fernando Perez <fperez@colorado.edu>
5537 2003-02-21 Fernando Perez <fperez@colorado.edu>
5535
5538
5536 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5539 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5537 of ValueError exception when checking for auto-execution. This
5540 of ValueError exception when checking for auto-execution. This
5538 one is raised by things like Numeric arrays arr.flat when the
5541 one is raised by things like Numeric arrays arr.flat when the
5539 array is non-contiguous.
5542 array is non-contiguous.
5540
5543
5541 2003-01-31 Fernando Perez <fperez@colorado.edu>
5544 2003-01-31 Fernando Perez <fperez@colorado.edu>
5542
5545
5543 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5546 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5544 not return any value at all (even though the command would get
5547 not return any value at all (even though the command would get
5545 executed).
5548 executed).
5546 (xsys): Flush stdout right after printing the command to ensure
5549 (xsys): Flush stdout right after printing the command to ensure
5547 proper ordering of commands and command output in the total
5550 proper ordering of commands and command output in the total
5548 output.
5551 output.
5549 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5552 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5550 system/getoutput as defaults. The old ones are kept for
5553 system/getoutput as defaults. The old ones are kept for
5551 compatibility reasons, so no code which uses this library needs
5554 compatibility reasons, so no code which uses this library needs
5552 changing.
5555 changing.
5553
5556
5554 2003-01-27 *** Released version 0.2.14
5557 2003-01-27 *** Released version 0.2.14
5555
5558
5556 2003-01-25 Fernando Perez <fperez@colorado.edu>
5559 2003-01-25 Fernando Perez <fperez@colorado.edu>
5557
5560
5558 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5561 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5559 functions defined in previous edit sessions could not be re-edited
5562 functions defined in previous edit sessions could not be re-edited
5560 (because the temp files were immediately removed). Now temp files
5563 (because the temp files were immediately removed). Now temp files
5561 are removed only at IPython's exit.
5564 are removed only at IPython's exit.
5562 (Magic.magic_run): Improved @run to perform shell-like expansions
5565 (Magic.magic_run): Improved @run to perform shell-like expansions
5563 on its arguments (~users and $VARS). With this, @run becomes more
5566 on its arguments (~users and $VARS). With this, @run becomes more
5564 like a normal command-line.
5567 like a normal command-line.
5565
5568
5566 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5569 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5567 bugs related to embedding and cleaned up that code. A fairly
5570 bugs related to embedding and cleaned up that code. A fairly
5568 important one was the impossibility to access the global namespace
5571 important one was the impossibility to access the global namespace
5569 through the embedded IPython (only local variables were visible).
5572 through the embedded IPython (only local variables were visible).
5570
5573
5571 2003-01-14 Fernando Perez <fperez@colorado.edu>
5574 2003-01-14 Fernando Perez <fperez@colorado.edu>
5572
5575
5573 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5576 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5574 auto-calling to be a bit more conservative. Now it doesn't get
5577 auto-calling to be a bit more conservative. Now it doesn't get
5575 triggered if any of '!=()<>' are in the rest of the input line, to
5578 triggered if any of '!=()<>' are in the rest of the input line, to
5576 allow comparing callables. Thanks to Alex for the heads up.
5579 allow comparing callables. Thanks to Alex for the heads up.
5577
5580
5578 2003-01-07 Fernando Perez <fperez@colorado.edu>
5581 2003-01-07 Fernando Perez <fperez@colorado.edu>
5579
5582
5580 * IPython/genutils.py (page): fixed estimation of the number of
5583 * IPython/genutils.py (page): fixed estimation of the number of
5581 lines in a string to be paged to simply count newlines. This
5584 lines in a string to be paged to simply count newlines. This
5582 prevents over-guessing due to embedded escape sequences. A better
5585 prevents over-guessing due to embedded escape sequences. A better
5583 long-term solution would involve stripping out the control chars
5586 long-term solution would involve stripping out the control chars
5584 for the count, but it's potentially so expensive I just don't
5587 for the count, but it's potentially so expensive I just don't
5585 think it's worth doing.
5588 think it's worth doing.
5586
5589
5587 2002-12-19 *** Released version 0.2.14pre50
5590 2002-12-19 *** Released version 0.2.14pre50
5588
5591
5589 2002-12-19 Fernando Perez <fperez@colorado.edu>
5592 2002-12-19 Fernando Perez <fperez@colorado.edu>
5590
5593
5591 * tools/release (version): Changed release scripts to inform
5594 * tools/release (version): Changed release scripts to inform
5592 Andrea and build a NEWS file with a list of recent changes.
5595 Andrea and build a NEWS file with a list of recent changes.
5593
5596
5594 * IPython/ColorANSI.py (__all__): changed terminal detection
5597 * IPython/ColorANSI.py (__all__): changed terminal detection
5595 code. Seems to work better for xterms without breaking
5598 code. Seems to work better for xterms without breaking
5596 konsole. Will need more testing to determine if WinXP and Mac OSX
5599 konsole. Will need more testing to determine if WinXP and Mac OSX
5597 also work ok.
5600 also work ok.
5598
5601
5599 2002-12-18 *** Released version 0.2.14pre49
5602 2002-12-18 *** Released version 0.2.14pre49
5600
5603
5601 2002-12-18 Fernando Perez <fperez@colorado.edu>
5604 2002-12-18 Fernando Perez <fperez@colorado.edu>
5602
5605
5603 * Docs: added new info about Mac OSX, from Andrea.
5606 * Docs: added new info about Mac OSX, from Andrea.
5604
5607
5605 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5608 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5606 allow direct plotting of python strings whose format is the same
5609 allow direct plotting of python strings whose format is the same
5607 of gnuplot data files.
5610 of gnuplot data files.
5608
5611
5609 2002-12-16 Fernando Perez <fperez@colorado.edu>
5612 2002-12-16 Fernando Perez <fperez@colorado.edu>
5610
5613
5611 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5614 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5612 value of exit question to be acknowledged.
5615 value of exit question to be acknowledged.
5613
5616
5614 2002-12-03 Fernando Perez <fperez@colorado.edu>
5617 2002-12-03 Fernando Perez <fperez@colorado.edu>
5615
5618
5616 * IPython/ipmaker.py: removed generators, which had been added
5619 * IPython/ipmaker.py: removed generators, which had been added
5617 by mistake in an earlier debugging run. This was causing trouble
5620 by mistake in an earlier debugging run. This was causing trouble
5618 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5621 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5619 for pointing this out.
5622 for pointing this out.
5620
5623
5621 2002-11-17 Fernando Perez <fperez@colorado.edu>
5624 2002-11-17 Fernando Perez <fperez@colorado.edu>
5622
5625
5623 * Manual: updated the Gnuplot section.
5626 * Manual: updated the Gnuplot section.
5624
5627
5625 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5628 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5626 a much better split of what goes in Runtime and what goes in
5629 a much better split of what goes in Runtime and what goes in
5627 Interactive.
5630 Interactive.
5628
5631
5629 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5632 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5630 being imported from iplib.
5633 being imported from iplib.
5631
5634
5632 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5635 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5633 for command-passing. Now the global Gnuplot instance is called
5636 for command-passing. Now the global Gnuplot instance is called
5634 'gp' instead of 'g', which was really a far too fragile and
5637 'gp' instead of 'g', which was really a far too fragile and
5635 common name.
5638 common name.
5636
5639
5637 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5640 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5638 bounding boxes generated by Gnuplot for square plots.
5641 bounding boxes generated by Gnuplot for square plots.
5639
5642
5640 * IPython/genutils.py (popkey): new function added. I should
5643 * IPython/genutils.py (popkey): new function added. I should
5641 suggest this on c.l.py as a dict method, it seems useful.
5644 suggest this on c.l.py as a dict method, it seems useful.
5642
5645
5643 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5646 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5644 to transparently handle PostScript generation. MUCH better than
5647 to transparently handle PostScript generation. MUCH better than
5645 the previous plot_eps/replot_eps (which I removed now). The code
5648 the previous plot_eps/replot_eps (which I removed now). The code
5646 is also fairly clean and well documented now (including
5649 is also fairly clean and well documented now (including
5647 docstrings).
5650 docstrings).
5648
5651
5649 2002-11-13 Fernando Perez <fperez@colorado.edu>
5652 2002-11-13 Fernando Perez <fperez@colorado.edu>
5650
5653
5651 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5654 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5652 (inconsistent with options).
5655 (inconsistent with options).
5653
5656
5654 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5657 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5655 manually disabled, I don't know why. Fixed it.
5658 manually disabled, I don't know why. Fixed it.
5656 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5659 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5657 eps output.
5660 eps output.
5658
5661
5659 2002-11-12 Fernando Perez <fperez@colorado.edu>
5662 2002-11-12 Fernando Perez <fperez@colorado.edu>
5660
5663
5661 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5664 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5662 don't propagate up to caller. Fixes crash reported by François
5665 don't propagate up to caller. Fixes crash reported by François
5663 Pinard.
5666 Pinard.
5664
5667
5665 2002-11-09 Fernando Perez <fperez@colorado.edu>
5668 2002-11-09 Fernando Perez <fperez@colorado.edu>
5666
5669
5667 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5670 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5668 history file for new users.
5671 history file for new users.
5669 (make_IPython): fixed bug where initial install would leave the
5672 (make_IPython): fixed bug where initial install would leave the
5670 user running in the .ipython dir.
5673 user running in the .ipython dir.
5671 (make_IPython): fixed bug where config dir .ipython would be
5674 (make_IPython): fixed bug where config dir .ipython would be
5672 created regardless of the given -ipythondir option. Thanks to Cory
5675 created regardless of the given -ipythondir option. Thanks to Cory
5673 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5676 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5674
5677
5675 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5678 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5676 type confirmations. Will need to use it in all of IPython's code
5679 type confirmations. Will need to use it in all of IPython's code
5677 consistently.
5680 consistently.
5678
5681
5679 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5682 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5680 context to print 31 lines instead of the default 5. This will make
5683 context to print 31 lines instead of the default 5. This will make
5681 the crash reports extremely detailed in case the problem is in
5684 the crash reports extremely detailed in case the problem is in
5682 libraries I don't have access to.
5685 libraries I don't have access to.
5683
5686
5684 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5687 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5685 line of defense' code to still crash, but giving users fair
5688 line of defense' code to still crash, but giving users fair
5686 warning. I don't want internal errors to go unreported: if there's
5689 warning. I don't want internal errors to go unreported: if there's
5687 an internal problem, IPython should crash and generate a full
5690 an internal problem, IPython should crash and generate a full
5688 report.
5691 report.
5689
5692
5690 2002-11-08 Fernando Perez <fperez@colorado.edu>
5693 2002-11-08 Fernando Perez <fperez@colorado.edu>
5691
5694
5692 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5695 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5693 otherwise uncaught exceptions which can appear if people set
5696 otherwise uncaught exceptions which can appear if people set
5694 sys.stdout to something badly broken. Thanks to a crash report
5697 sys.stdout to something badly broken. Thanks to a crash report
5695 from henni-AT-mail.brainbot.com.
5698 from henni-AT-mail.brainbot.com.
5696
5699
5697 2002-11-04 Fernando Perez <fperez@colorado.edu>
5700 2002-11-04 Fernando Perez <fperez@colorado.edu>
5698
5701
5699 * IPython/iplib.py (InteractiveShell.interact): added
5702 * IPython/iplib.py (InteractiveShell.interact): added
5700 __IPYTHON__active to the builtins. It's a flag which goes on when
5703 __IPYTHON__active to the builtins. It's a flag which goes on when
5701 the interaction starts and goes off again when it stops. This
5704 the interaction starts and goes off again when it stops. This
5702 allows embedding code to detect being inside IPython. Before this
5705 allows embedding code to detect being inside IPython. Before this
5703 was done via __IPYTHON__, but that only shows that an IPython
5706 was done via __IPYTHON__, but that only shows that an IPython
5704 instance has been created.
5707 instance has been created.
5705
5708
5706 * IPython/Magic.py (Magic.magic_env): I realized that in a
5709 * IPython/Magic.py (Magic.magic_env): I realized that in a
5707 UserDict, instance.data holds the data as a normal dict. So I
5710 UserDict, instance.data holds the data as a normal dict. So I
5708 modified @env to return os.environ.data instead of rebuilding a
5711 modified @env to return os.environ.data instead of rebuilding a
5709 dict by hand.
5712 dict by hand.
5710
5713
5711 2002-11-02 Fernando Perez <fperez@colorado.edu>
5714 2002-11-02 Fernando Perez <fperez@colorado.edu>
5712
5715
5713 * IPython/genutils.py (warn): changed so that level 1 prints no
5716 * IPython/genutils.py (warn): changed so that level 1 prints no
5714 header. Level 2 is now the default (with 'WARNING' header, as
5717 header. Level 2 is now the default (with 'WARNING' header, as
5715 before). I think I tracked all places where changes were needed in
5718 before). I think I tracked all places where changes were needed in
5716 IPython, but outside code using the old level numbering may have
5719 IPython, but outside code using the old level numbering may have
5717 broken.
5720 broken.
5718
5721
5719 * IPython/iplib.py (InteractiveShell.runcode): added this to
5722 * IPython/iplib.py (InteractiveShell.runcode): added this to
5720 handle the tracebacks in SystemExit traps correctly. The previous
5723 handle the tracebacks in SystemExit traps correctly. The previous
5721 code (through interact) was printing more of the stack than
5724 code (through interact) was printing more of the stack than
5722 necessary, showing IPython internal code to the user.
5725 necessary, showing IPython internal code to the user.
5723
5726
5724 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5727 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5725 default. Now that the default at the confirmation prompt is yes,
5728 default. Now that the default at the confirmation prompt is yes,
5726 it's not so intrusive. François' argument that ipython sessions
5729 it's not so intrusive. François' argument that ipython sessions
5727 tend to be complex enough not to lose them from an accidental C-d,
5730 tend to be complex enough not to lose them from an accidental C-d,
5728 is a valid one.
5731 is a valid one.
5729
5732
5730 * IPython/iplib.py (InteractiveShell.interact): added a
5733 * IPython/iplib.py (InteractiveShell.interact): added a
5731 showtraceback() call to the SystemExit trap, and modified the exit
5734 showtraceback() call to the SystemExit trap, and modified the exit
5732 confirmation to have yes as the default.
5735 confirmation to have yes as the default.
5733
5736
5734 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5737 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5735 this file. It's been gone from the code for a long time, this was
5738 this file. It's been gone from the code for a long time, this was
5736 simply leftover junk.
5739 simply leftover junk.
5737
5740
5738 2002-11-01 Fernando Perez <fperez@colorado.edu>
5741 2002-11-01 Fernando Perez <fperez@colorado.edu>
5739
5742
5740 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5743 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5741 added. If set, IPython now traps EOF and asks for
5744 added. If set, IPython now traps EOF and asks for
5742 confirmation. After a request by François Pinard.
5745 confirmation. After a request by François Pinard.
5743
5746
5744 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5747 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5745 of @abort, and with a new (better) mechanism for handling the
5748 of @abort, and with a new (better) mechanism for handling the
5746 exceptions.
5749 exceptions.
5747
5750
5748 2002-10-27 Fernando Perez <fperez@colorado.edu>
5751 2002-10-27 Fernando Perez <fperez@colorado.edu>
5749
5752
5750 * IPython/usage.py (__doc__): updated the --help information and
5753 * IPython/usage.py (__doc__): updated the --help information and
5751 the ipythonrc file to indicate that -log generates
5754 the ipythonrc file to indicate that -log generates
5752 ./ipython.log. Also fixed the corresponding info in @logstart.
5755 ./ipython.log. Also fixed the corresponding info in @logstart.
5753 This and several other fixes in the manuals thanks to reports by
5756 This and several other fixes in the manuals thanks to reports by
5754 François Pinard <pinard-AT-iro.umontreal.ca>.
5757 François Pinard <pinard-AT-iro.umontreal.ca>.
5755
5758
5756 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5759 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5757 refer to @logstart (instead of @log, which doesn't exist).
5760 refer to @logstart (instead of @log, which doesn't exist).
5758
5761
5759 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5762 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5760 AttributeError crash. Thanks to Christopher Armstrong
5763 AttributeError crash. Thanks to Christopher Armstrong
5761 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5764 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5762 introduced recently (in 0.2.14pre37) with the fix to the eval
5765 introduced recently (in 0.2.14pre37) with the fix to the eval
5763 problem mentioned below.
5766 problem mentioned below.
5764
5767
5765 2002-10-17 Fernando Perez <fperez@colorado.edu>
5768 2002-10-17 Fernando Perez <fperez@colorado.edu>
5766
5769
5767 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5770 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5768 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5771 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5769
5772
5770 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5773 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5771 this function to fix a problem reported by Alex Schmolck. He saw
5774 this function to fix a problem reported by Alex Schmolck. He saw
5772 it with list comprehensions and generators, which were getting
5775 it with list comprehensions and generators, which were getting
5773 called twice. The real problem was an 'eval' call in testing for
5776 called twice. The real problem was an 'eval' call in testing for
5774 automagic which was evaluating the input line silently.
5777 automagic which was evaluating the input line silently.
5775
5778
5776 This is a potentially very nasty bug, if the input has side
5779 This is a potentially very nasty bug, if the input has side
5777 effects which must not be repeated. The code is much cleaner now,
5780 effects which must not be repeated. The code is much cleaner now,
5778 without any blanket 'except' left and with a regexp test for
5781 without any blanket 'except' left and with a regexp test for
5779 actual function names.
5782 actual function names.
5780
5783
5781 But an eval remains, which I'm not fully comfortable with. I just
5784 But an eval remains, which I'm not fully comfortable with. I just
5782 don't know how to find out if an expression could be a callable in
5785 don't know how to find out if an expression could be a callable in
5783 the user's namespace without doing an eval on the string. However
5786 the user's namespace without doing an eval on the string. However
5784 that string is now much more strictly checked so that no code
5787 that string is now much more strictly checked so that no code
5785 slips by, so the eval should only happen for things that can
5788 slips by, so the eval should only happen for things that can
5786 really be only function/method names.
5789 really be only function/method names.
5787
5790
5788 2002-10-15 Fernando Perez <fperez@colorado.edu>
5791 2002-10-15 Fernando Perez <fperez@colorado.edu>
5789
5792
5790 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5793 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5791 OSX information to main manual, removed README_Mac_OSX file from
5794 OSX information to main manual, removed README_Mac_OSX file from
5792 distribution. Also updated credits for recent additions.
5795 distribution. Also updated credits for recent additions.
5793
5796
5794 2002-10-10 Fernando Perez <fperez@colorado.edu>
5797 2002-10-10 Fernando Perez <fperez@colorado.edu>
5795
5798
5796 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5799 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5797 terminal-related issues. Many thanks to Andrea Riciputi
5800 terminal-related issues. Many thanks to Andrea Riciputi
5798 <andrea.riciputi-AT-libero.it> for writing it.
5801 <andrea.riciputi-AT-libero.it> for writing it.
5799
5802
5800 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5803 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5801 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5804 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5802
5805
5803 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5806 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5804 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5807 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5805 <syver-en-AT-online.no> who both submitted patches for this problem.
5808 <syver-en-AT-online.no> who both submitted patches for this problem.
5806
5809
5807 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5810 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5808 global embedding to make sure that things don't overwrite user
5811 global embedding to make sure that things don't overwrite user
5809 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5812 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5810
5813
5811 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5814 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5812 compatibility. Thanks to Hayden Callow
5815 compatibility. Thanks to Hayden Callow
5813 <h.callow-AT-elec.canterbury.ac.nz>
5816 <h.callow-AT-elec.canterbury.ac.nz>
5814
5817
5815 2002-10-04 Fernando Perez <fperez@colorado.edu>
5818 2002-10-04 Fernando Perez <fperez@colorado.edu>
5816
5819
5817 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5820 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5818 Gnuplot.File objects.
5821 Gnuplot.File objects.
5819
5822
5820 2002-07-23 Fernando Perez <fperez@colorado.edu>
5823 2002-07-23 Fernando Perez <fperez@colorado.edu>
5821
5824
5822 * IPython/genutils.py (timing): Added timings() and timing() for
5825 * IPython/genutils.py (timing): Added timings() and timing() for
5823 quick access to the most commonly needed data, the execution
5826 quick access to the most commonly needed data, the execution
5824 times. Old timing() renamed to timings_out().
5827 times. Old timing() renamed to timings_out().
5825
5828
5826 2002-07-18 Fernando Perez <fperez@colorado.edu>
5829 2002-07-18 Fernando Perez <fperez@colorado.edu>
5827
5830
5828 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5831 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5829 bug with nested instances disrupting the parent's tab completion.
5832 bug with nested instances disrupting the parent's tab completion.
5830
5833
5831 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5834 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5832 all_completions code to begin the emacs integration.
5835 all_completions code to begin the emacs integration.
5833
5836
5834 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5837 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5835 argument to allow titling individual arrays when plotting.
5838 argument to allow titling individual arrays when plotting.
5836
5839
5837 2002-07-15 Fernando Perez <fperez@colorado.edu>
5840 2002-07-15 Fernando Perez <fperez@colorado.edu>
5838
5841
5839 * setup.py (make_shortcut): changed to retrieve the value of
5842 * setup.py (make_shortcut): changed to retrieve the value of
5840 'Program Files' directory from the registry (this value changes in
5843 'Program Files' directory from the registry (this value changes in
5841 non-english versions of Windows). Thanks to Thomas Fanslau
5844 non-english versions of Windows). Thanks to Thomas Fanslau
5842 <tfanslau-AT-gmx.de> for the report.
5845 <tfanslau-AT-gmx.de> for the report.
5843
5846
5844 2002-07-10 Fernando Perez <fperez@colorado.edu>
5847 2002-07-10 Fernando Perez <fperez@colorado.edu>
5845
5848
5846 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5849 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5847 a bug in pdb, which crashes if a line with only whitespace is
5850 a bug in pdb, which crashes if a line with only whitespace is
5848 entered. Bug report submitted to sourceforge.
5851 entered. Bug report submitted to sourceforge.
5849
5852
5850 2002-07-09 Fernando Perez <fperez@colorado.edu>
5853 2002-07-09 Fernando Perez <fperez@colorado.edu>
5851
5854
5852 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5855 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5853 reporting exceptions (it's a bug in inspect.py, I just set a
5856 reporting exceptions (it's a bug in inspect.py, I just set a
5854 workaround).
5857 workaround).
5855
5858
5856 2002-07-08 Fernando Perez <fperez@colorado.edu>
5859 2002-07-08 Fernando Perez <fperez@colorado.edu>
5857
5860
5858 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5861 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5859 __IPYTHON__ in __builtins__ to show up in user_ns.
5862 __IPYTHON__ in __builtins__ to show up in user_ns.
5860
5863
5861 2002-07-03 Fernando Perez <fperez@colorado.edu>
5864 2002-07-03 Fernando Perez <fperez@colorado.edu>
5862
5865
5863 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5866 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5864 name from @gp_set_instance to @gp_set_default.
5867 name from @gp_set_instance to @gp_set_default.
5865
5868
5866 * IPython/ipmaker.py (make_IPython): default editor value set to
5869 * IPython/ipmaker.py (make_IPython): default editor value set to
5867 '0' (a string), to match the rc file. Otherwise will crash when
5870 '0' (a string), to match the rc file. Otherwise will crash when
5868 .strip() is called on it.
5871 .strip() is called on it.
5869
5872
5870
5873
5871 2002-06-28 Fernando Perez <fperez@colorado.edu>
5874 2002-06-28 Fernando Perez <fperez@colorado.edu>
5872
5875
5873 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5876 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5874 of files in current directory when a file is executed via
5877 of files in current directory when a file is executed via
5875 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5878 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5876
5879
5877 * setup.py (manfiles): fix for rpm builds, submitted by RA
5880 * setup.py (manfiles): fix for rpm builds, submitted by RA
5878 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5881 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5879
5882
5880 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5883 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5881 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5884 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5882 string!). A. Schmolck caught this one.
5885 string!). A. Schmolck caught this one.
5883
5886
5884 2002-06-27 Fernando Perez <fperez@colorado.edu>
5887 2002-06-27 Fernando Perez <fperez@colorado.edu>
5885
5888
5886 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5889 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5887 defined files at the cmd line. __name__ wasn't being set to
5890 defined files at the cmd line. __name__ wasn't being set to
5888 __main__.
5891 __main__.
5889
5892
5890 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5893 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5891 regular lists and tuples besides Numeric arrays.
5894 regular lists and tuples besides Numeric arrays.
5892
5895
5893 * IPython/Prompts.py (CachedOutput.__call__): Added output
5896 * IPython/Prompts.py (CachedOutput.__call__): Added output
5894 supression for input ending with ';'. Similar to Mathematica and
5897 supression for input ending with ';'. Similar to Mathematica and
5895 Matlab. The _* vars and Out[] list are still updated, just like
5898 Matlab. The _* vars and Out[] list are still updated, just like
5896 Mathematica behaves.
5899 Mathematica behaves.
5897
5900
5898 2002-06-25 Fernando Perez <fperez@colorado.edu>
5901 2002-06-25 Fernando Perez <fperez@colorado.edu>
5899
5902
5900 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5903 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5901 .ini extensions for profiels under Windows.
5904 .ini extensions for profiels under Windows.
5902
5905
5903 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5906 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5904 string form. Fix contributed by Alexander Schmolck
5907 string form. Fix contributed by Alexander Schmolck
5905 <a.schmolck-AT-gmx.net>
5908 <a.schmolck-AT-gmx.net>
5906
5909
5907 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5910 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5908 pre-configured Gnuplot instance.
5911 pre-configured Gnuplot instance.
5909
5912
5910 2002-06-21 Fernando Perez <fperez@colorado.edu>
5913 2002-06-21 Fernando Perez <fperez@colorado.edu>
5911
5914
5912 * IPython/numutils.py (exp_safe): new function, works around the
5915 * IPython/numutils.py (exp_safe): new function, works around the
5913 underflow problems in Numeric.
5916 underflow problems in Numeric.
5914 (log2): New fn. Safe log in base 2: returns exact integer answer
5917 (log2): New fn. Safe log in base 2: returns exact integer answer
5915 for exact integer powers of 2.
5918 for exact integer powers of 2.
5916
5919
5917 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5920 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5918 properly.
5921 properly.
5919
5922
5920 2002-06-20 Fernando Perez <fperez@colorado.edu>
5923 2002-06-20 Fernando Perez <fperez@colorado.edu>
5921
5924
5922 * IPython/genutils.py (timing): new function like
5925 * IPython/genutils.py (timing): new function like
5923 Mathematica's. Similar to time_test, but returns more info.
5926 Mathematica's. Similar to time_test, but returns more info.
5924
5927
5925 2002-06-18 Fernando Perez <fperez@colorado.edu>
5928 2002-06-18 Fernando Perez <fperez@colorado.edu>
5926
5929
5927 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5930 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5928 according to Mike Heeter's suggestions.
5931 according to Mike Heeter's suggestions.
5929
5932
5930 2002-06-16 Fernando Perez <fperez@colorado.edu>
5933 2002-06-16 Fernando Perez <fperez@colorado.edu>
5931
5934
5932 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5935 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5933 system. GnuplotMagic is gone as a user-directory option. New files
5936 system. GnuplotMagic is gone as a user-directory option. New files
5934 make it easier to use all the gnuplot stuff both from external
5937 make it easier to use all the gnuplot stuff both from external
5935 programs as well as from IPython. Had to rewrite part of
5938 programs as well as from IPython. Had to rewrite part of
5936 hardcopy() b/c of a strange bug: often the ps files simply don't
5939 hardcopy() b/c of a strange bug: often the ps files simply don't
5937 get created, and require a repeat of the command (often several
5940 get created, and require a repeat of the command (often several
5938 times).
5941 times).
5939
5942
5940 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5943 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5941 resolve output channel at call time, so that if sys.stderr has
5944 resolve output channel at call time, so that if sys.stderr has
5942 been redirected by user this gets honored.
5945 been redirected by user this gets honored.
5943
5946
5944 2002-06-13 Fernando Perez <fperez@colorado.edu>
5947 2002-06-13 Fernando Perez <fperez@colorado.edu>
5945
5948
5946 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5949 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5947 IPShell. Kept a copy with the old names to avoid breaking people's
5950 IPShell. Kept a copy with the old names to avoid breaking people's
5948 embedded code.
5951 embedded code.
5949
5952
5950 * IPython/ipython: simplified it to the bare minimum after
5953 * IPython/ipython: simplified it to the bare minimum after
5951 Holger's suggestions. Added info about how to use it in
5954 Holger's suggestions. Added info about how to use it in
5952 PYTHONSTARTUP.
5955 PYTHONSTARTUP.
5953
5956
5954 * IPython/Shell.py (IPythonShell): changed the options passing
5957 * IPython/Shell.py (IPythonShell): changed the options passing
5955 from a string with funky %s replacements to a straight list. Maybe
5958 from a string with funky %s replacements to a straight list. Maybe
5956 a bit more typing, but it follows sys.argv conventions, so there's
5959 a bit more typing, but it follows sys.argv conventions, so there's
5957 less special-casing to remember.
5960 less special-casing to remember.
5958
5961
5959 2002-06-12 Fernando Perez <fperez@colorado.edu>
5962 2002-06-12 Fernando Perez <fperez@colorado.edu>
5960
5963
5961 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5964 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5962 command. Thanks to a suggestion by Mike Heeter.
5965 command. Thanks to a suggestion by Mike Heeter.
5963 (Magic.magic_pfile): added behavior to look at filenames if given
5966 (Magic.magic_pfile): added behavior to look at filenames if given
5964 arg is not a defined object.
5967 arg is not a defined object.
5965 (Magic.magic_save): New @save function to save code snippets. Also
5968 (Magic.magic_save): New @save function to save code snippets. Also
5966 a Mike Heeter idea.
5969 a Mike Heeter idea.
5967
5970
5968 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5971 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5969 plot() and replot(). Much more convenient now, especially for
5972 plot() and replot(). Much more convenient now, especially for
5970 interactive use.
5973 interactive use.
5971
5974
5972 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5975 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5973 filenames.
5976 filenames.
5974
5977
5975 2002-06-02 Fernando Perez <fperez@colorado.edu>
5978 2002-06-02 Fernando Perez <fperez@colorado.edu>
5976
5979
5977 * IPython/Struct.py (Struct.__init__): modified to admit
5980 * IPython/Struct.py (Struct.__init__): modified to admit
5978 initialization via another struct.
5981 initialization via another struct.
5979
5982
5980 * IPython/genutils.py (SystemExec.__init__): New stateful
5983 * IPython/genutils.py (SystemExec.__init__): New stateful
5981 interface to xsys and bq. Useful for writing system scripts.
5984 interface to xsys and bq. Useful for writing system scripts.
5982
5985
5983 2002-05-30 Fernando Perez <fperez@colorado.edu>
5986 2002-05-30 Fernando Perez <fperez@colorado.edu>
5984
5987
5985 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5988 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5986 documents. This will make the user download smaller (it's getting
5989 documents. This will make the user download smaller (it's getting
5987 too big).
5990 too big).
5988
5991
5989 2002-05-29 Fernando Perez <fperez@colorado.edu>
5992 2002-05-29 Fernando Perez <fperez@colorado.edu>
5990
5993
5991 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5994 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5992 fix problems with shelve and pickle. Seems to work, but I don't
5995 fix problems with shelve and pickle. Seems to work, but I don't
5993 know if corner cases break it. Thanks to Mike Heeter
5996 know if corner cases break it. Thanks to Mike Heeter
5994 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5997 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5995
5998
5996 2002-05-24 Fernando Perez <fperez@colorado.edu>
5999 2002-05-24 Fernando Perez <fperez@colorado.edu>
5997
6000
5998 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
6001 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5999 macros having broken.
6002 macros having broken.
6000
6003
6001 2002-05-21 Fernando Perez <fperez@colorado.edu>
6004 2002-05-21 Fernando Perez <fperez@colorado.edu>
6002
6005
6003 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6006 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6004 introduced logging bug: all history before logging started was
6007 introduced logging bug: all history before logging started was
6005 being written one character per line! This came from the redesign
6008 being written one character per line! This came from the redesign
6006 of the input history as a special list which slices to strings,
6009 of the input history as a special list which slices to strings,
6007 not to lists.
6010 not to lists.
6008
6011
6009 2002-05-20 Fernando Perez <fperez@colorado.edu>
6012 2002-05-20 Fernando Perez <fperez@colorado.edu>
6010
6013
6011 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6014 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6012 be an attribute of all classes in this module. The design of these
6015 be an attribute of all classes in this module. The design of these
6013 classes needs some serious overhauling.
6016 classes needs some serious overhauling.
6014
6017
6015 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6018 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6016 which was ignoring '_' in option names.
6019 which was ignoring '_' in option names.
6017
6020
6018 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6021 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6019 'Verbose_novars' to 'Context' and made it the new default. It's a
6022 'Verbose_novars' to 'Context' and made it the new default. It's a
6020 bit more readable and also safer than verbose.
6023 bit more readable and also safer than verbose.
6021
6024
6022 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6025 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6023 triple-quoted strings.
6026 triple-quoted strings.
6024
6027
6025 * IPython/OInspect.py (__all__): new module exposing the object
6028 * IPython/OInspect.py (__all__): new module exposing the object
6026 introspection facilities. Now the corresponding magics are dummy
6029 introspection facilities. Now the corresponding magics are dummy
6027 wrappers around this. Having this module will make it much easier
6030 wrappers around this. Having this module will make it much easier
6028 to put these functions into our modified pdb.
6031 to put these functions into our modified pdb.
6029 This new object inspector system uses the new colorizing module,
6032 This new object inspector system uses the new colorizing module,
6030 so source code and other things are nicely syntax highlighted.
6033 so source code and other things are nicely syntax highlighted.
6031
6034
6032 2002-05-18 Fernando Perez <fperez@colorado.edu>
6035 2002-05-18 Fernando Perez <fperez@colorado.edu>
6033
6036
6034 * IPython/ColorANSI.py: Split the coloring tools into a separate
6037 * IPython/ColorANSI.py: Split the coloring tools into a separate
6035 module so I can use them in other code easier (they were part of
6038 module so I can use them in other code easier (they were part of
6036 ultraTB).
6039 ultraTB).
6037
6040
6038 2002-05-17 Fernando Perez <fperez@colorado.edu>
6041 2002-05-17 Fernando Perez <fperez@colorado.edu>
6039
6042
6040 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6043 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6041 fixed it to set the global 'g' also to the called instance, as
6044 fixed it to set the global 'g' also to the called instance, as
6042 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6045 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6043 user's 'g' variables).
6046 user's 'g' variables).
6044
6047
6045 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6048 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6046 global variables (aliases to _ih,_oh) so that users which expect
6049 global variables (aliases to _ih,_oh) so that users which expect
6047 In[5] or Out[7] to work aren't unpleasantly surprised.
6050 In[5] or Out[7] to work aren't unpleasantly surprised.
6048 (InputList.__getslice__): new class to allow executing slices of
6051 (InputList.__getslice__): new class to allow executing slices of
6049 input history directly. Very simple class, complements the use of
6052 input history directly. Very simple class, complements the use of
6050 macros.
6053 macros.
6051
6054
6052 2002-05-16 Fernando Perez <fperez@colorado.edu>
6055 2002-05-16 Fernando Perez <fperez@colorado.edu>
6053
6056
6054 * setup.py (docdirbase): make doc directory be just doc/IPython
6057 * setup.py (docdirbase): make doc directory be just doc/IPython
6055 without version numbers, it will reduce clutter for users.
6058 without version numbers, it will reduce clutter for users.
6056
6059
6057 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6060 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6058 execfile call to prevent possible memory leak. See for details:
6061 execfile call to prevent possible memory leak. See for details:
6059 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6062 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6060
6063
6061 2002-05-15 Fernando Perez <fperez@colorado.edu>
6064 2002-05-15 Fernando Perez <fperez@colorado.edu>
6062
6065
6063 * IPython/Magic.py (Magic.magic_psource): made the object
6066 * IPython/Magic.py (Magic.magic_psource): made the object
6064 introspection names be more standard: pdoc, pdef, pfile and
6067 introspection names be more standard: pdoc, pdef, pfile and
6065 psource. They all print/page their output, and it makes
6068 psource. They all print/page their output, and it makes
6066 remembering them easier. Kept old names for compatibility as
6069 remembering them easier. Kept old names for compatibility as
6067 aliases.
6070 aliases.
6068
6071
6069 2002-05-14 Fernando Perez <fperez@colorado.edu>
6072 2002-05-14 Fernando Perez <fperez@colorado.edu>
6070
6073
6071 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6074 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6072 what the mouse problem was. The trick is to use gnuplot with temp
6075 what the mouse problem was. The trick is to use gnuplot with temp
6073 files and NOT with pipes (for data communication), because having
6076 files and NOT with pipes (for data communication), because having
6074 both pipes and the mouse on is bad news.
6077 both pipes and the mouse on is bad news.
6075
6078
6076 2002-05-13 Fernando Perez <fperez@colorado.edu>
6079 2002-05-13 Fernando Perez <fperez@colorado.edu>
6077
6080
6078 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6081 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6079 bug. Information would be reported about builtins even when
6082 bug. Information would be reported about builtins even when
6080 user-defined functions overrode them.
6083 user-defined functions overrode them.
6081
6084
6082 2002-05-11 Fernando Perez <fperez@colorado.edu>
6085 2002-05-11 Fernando Perez <fperez@colorado.edu>
6083
6086
6084 * IPython/__init__.py (__all__): removed FlexCompleter from
6087 * IPython/__init__.py (__all__): removed FlexCompleter from
6085 __all__ so that things don't fail in platforms without readline.
6088 __all__ so that things don't fail in platforms without readline.
6086
6089
6087 2002-05-10 Fernando Perez <fperez@colorado.edu>
6090 2002-05-10 Fernando Perez <fperez@colorado.edu>
6088
6091
6089 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6092 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6090 it requires Numeric, effectively making Numeric a dependency for
6093 it requires Numeric, effectively making Numeric a dependency for
6091 IPython.
6094 IPython.
6092
6095
6093 * Released 0.2.13
6096 * Released 0.2.13
6094
6097
6095 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6098 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6096 profiler interface. Now all the major options from the profiler
6099 profiler interface. Now all the major options from the profiler
6097 module are directly supported in IPython, both for single
6100 module are directly supported in IPython, both for single
6098 expressions (@prun) and for full programs (@run -p).
6101 expressions (@prun) and for full programs (@run -p).
6099
6102
6100 2002-05-09 Fernando Perez <fperez@colorado.edu>
6103 2002-05-09 Fernando Perez <fperez@colorado.edu>
6101
6104
6102 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6105 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6103 magic properly formatted for screen.
6106 magic properly formatted for screen.
6104
6107
6105 * setup.py (make_shortcut): Changed things to put pdf version in
6108 * setup.py (make_shortcut): Changed things to put pdf version in
6106 doc/ instead of doc/manual (had to change lyxport a bit).
6109 doc/ instead of doc/manual (had to change lyxport a bit).
6107
6110
6108 * IPython/Magic.py (Profile.string_stats): made profile runs go
6111 * IPython/Magic.py (Profile.string_stats): made profile runs go
6109 through pager (they are long and a pager allows searching, saving,
6112 through pager (they are long and a pager allows searching, saving,
6110 etc.)
6113 etc.)
6111
6114
6112 2002-05-08 Fernando Perez <fperez@colorado.edu>
6115 2002-05-08 Fernando Perez <fperez@colorado.edu>
6113
6116
6114 * Released 0.2.12
6117 * Released 0.2.12
6115
6118
6116 2002-05-06 Fernando Perez <fperez@colorado.edu>
6119 2002-05-06 Fernando Perez <fperez@colorado.edu>
6117
6120
6118 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6121 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6119 introduced); 'hist n1 n2' was broken.
6122 introduced); 'hist n1 n2' was broken.
6120 (Magic.magic_pdb): added optional on/off arguments to @pdb
6123 (Magic.magic_pdb): added optional on/off arguments to @pdb
6121 (Magic.magic_run): added option -i to @run, which executes code in
6124 (Magic.magic_run): added option -i to @run, which executes code in
6122 the IPython namespace instead of a clean one. Also added @irun as
6125 the IPython namespace instead of a clean one. Also added @irun as
6123 an alias to @run -i.
6126 an alias to @run -i.
6124
6127
6125 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6128 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6126 fixed (it didn't really do anything, the namespaces were wrong).
6129 fixed (it didn't really do anything, the namespaces were wrong).
6127
6130
6128 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6131 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6129
6132
6130 * IPython/__init__.py (__all__): Fixed package namespace, now
6133 * IPython/__init__.py (__all__): Fixed package namespace, now
6131 'import IPython' does give access to IPython.<all> as
6134 'import IPython' does give access to IPython.<all> as
6132 expected. Also renamed __release__ to Release.
6135 expected. Also renamed __release__ to Release.
6133
6136
6134 * IPython/Debugger.py (__license__): created new Pdb class which
6137 * IPython/Debugger.py (__license__): created new Pdb class which
6135 functions like a drop-in for the normal pdb.Pdb but does NOT
6138 functions like a drop-in for the normal pdb.Pdb but does NOT
6136 import readline by default. This way it doesn't muck up IPython's
6139 import readline by default. This way it doesn't muck up IPython's
6137 readline handling, and now tab-completion finally works in the
6140 readline handling, and now tab-completion finally works in the
6138 debugger -- sort of. It completes things globally visible, but the
6141 debugger -- sort of. It completes things globally visible, but the
6139 completer doesn't track the stack as pdb walks it. That's a bit
6142 completer doesn't track the stack as pdb walks it. That's a bit
6140 tricky, and I'll have to implement it later.
6143 tricky, and I'll have to implement it later.
6141
6144
6142 2002-05-05 Fernando Perez <fperez@colorado.edu>
6145 2002-05-05 Fernando Perez <fperez@colorado.edu>
6143
6146
6144 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6147 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6145 magic docstrings when printed via ? (explicit \'s were being
6148 magic docstrings when printed via ? (explicit \'s were being
6146 printed).
6149 printed).
6147
6150
6148 * IPython/ipmaker.py (make_IPython): fixed namespace
6151 * IPython/ipmaker.py (make_IPython): fixed namespace
6149 identification bug. Now variables loaded via logs or command-line
6152 identification bug. Now variables loaded via logs or command-line
6150 files are recognized in the interactive namespace by @who.
6153 files are recognized in the interactive namespace by @who.
6151
6154
6152 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6155 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6153 log replay system stemming from the string form of Structs.
6156 log replay system stemming from the string form of Structs.
6154
6157
6155 * IPython/Magic.py (Macro.__init__): improved macros to properly
6158 * IPython/Magic.py (Macro.__init__): improved macros to properly
6156 handle magic commands in them.
6159 handle magic commands in them.
6157 (Magic.magic_logstart): usernames are now expanded so 'logstart
6160 (Magic.magic_logstart): usernames are now expanded so 'logstart
6158 ~/mylog' now works.
6161 ~/mylog' now works.
6159
6162
6160 * IPython/iplib.py (complete): fixed bug where paths starting with
6163 * IPython/iplib.py (complete): fixed bug where paths starting with
6161 '/' would be completed as magic names.
6164 '/' would be completed as magic names.
6162
6165
6163 2002-05-04 Fernando Perez <fperez@colorado.edu>
6166 2002-05-04 Fernando Perez <fperez@colorado.edu>
6164
6167
6165 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6168 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6166 allow running full programs under the profiler's control.
6169 allow running full programs under the profiler's control.
6167
6170
6168 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6171 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6169 mode to report exceptions verbosely but without formatting
6172 mode to report exceptions verbosely but without formatting
6170 variables. This addresses the issue of ipython 'freezing' (it's
6173 variables. This addresses the issue of ipython 'freezing' (it's
6171 not frozen, but caught in an expensive formatting loop) when huge
6174 not frozen, but caught in an expensive formatting loop) when huge
6172 variables are in the context of an exception.
6175 variables are in the context of an exception.
6173 (VerboseTB.text): Added '--->' markers at line where exception was
6176 (VerboseTB.text): Added '--->' markers at line where exception was
6174 triggered. Much clearer to read, especially in NoColor modes.
6177 triggered. Much clearer to read, especially in NoColor modes.
6175
6178
6176 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6179 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6177 implemented in reverse when changing to the new parse_options().
6180 implemented in reverse when changing to the new parse_options().
6178
6181
6179 2002-05-03 Fernando Perez <fperez@colorado.edu>
6182 2002-05-03 Fernando Perez <fperez@colorado.edu>
6180
6183
6181 * IPython/Magic.py (Magic.parse_options): new function so that
6184 * IPython/Magic.py (Magic.parse_options): new function so that
6182 magics can parse options easier.
6185 magics can parse options easier.
6183 (Magic.magic_prun): new function similar to profile.run(),
6186 (Magic.magic_prun): new function similar to profile.run(),
6184 suggested by Chris Hart.
6187 suggested by Chris Hart.
6185 (Magic.magic_cd): fixed behavior so that it only changes if
6188 (Magic.magic_cd): fixed behavior so that it only changes if
6186 directory actually is in history.
6189 directory actually is in history.
6187
6190
6188 * IPython/usage.py (__doc__): added information about potential
6191 * IPython/usage.py (__doc__): added information about potential
6189 slowness of Verbose exception mode when there are huge data
6192 slowness of Verbose exception mode when there are huge data
6190 structures to be formatted (thanks to Archie Paulson).
6193 structures to be formatted (thanks to Archie Paulson).
6191
6194
6192 * IPython/ipmaker.py (make_IPython): Changed default logging
6195 * IPython/ipmaker.py (make_IPython): Changed default logging
6193 (when simply called with -log) to use curr_dir/ipython.log in
6196 (when simply called with -log) to use curr_dir/ipython.log in
6194 rotate mode. Fixed crash which was occuring with -log before
6197 rotate mode. Fixed crash which was occuring with -log before
6195 (thanks to Jim Boyle).
6198 (thanks to Jim Boyle).
6196
6199
6197 2002-05-01 Fernando Perez <fperez@colorado.edu>
6200 2002-05-01 Fernando Perez <fperez@colorado.edu>
6198
6201
6199 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6202 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6200 was nasty -- though somewhat of a corner case).
6203 was nasty -- though somewhat of a corner case).
6201
6204
6202 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6205 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6203 text (was a bug).
6206 text (was a bug).
6204
6207
6205 2002-04-30 Fernando Perez <fperez@colorado.edu>
6208 2002-04-30 Fernando Perez <fperez@colorado.edu>
6206
6209
6207 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6210 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6208 a print after ^D or ^C from the user so that the In[] prompt
6211 a print after ^D or ^C from the user so that the In[] prompt
6209 doesn't over-run the gnuplot one.
6212 doesn't over-run the gnuplot one.
6210
6213
6211 2002-04-29 Fernando Perez <fperez@colorado.edu>
6214 2002-04-29 Fernando Perez <fperez@colorado.edu>
6212
6215
6213 * Released 0.2.10
6216 * Released 0.2.10
6214
6217
6215 * IPython/__release__.py (version): get date dynamically.
6218 * IPython/__release__.py (version): get date dynamically.
6216
6219
6217 * Misc. documentation updates thanks to Arnd's comments. Also ran
6220 * Misc. documentation updates thanks to Arnd's comments. Also ran
6218 a full spellcheck on the manual (hadn't been done in a while).
6221 a full spellcheck on the manual (hadn't been done in a while).
6219
6222
6220 2002-04-27 Fernando Perez <fperez@colorado.edu>
6223 2002-04-27 Fernando Perez <fperez@colorado.edu>
6221
6224
6222 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6225 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6223 starting a log in mid-session would reset the input history list.
6226 starting a log in mid-session would reset the input history list.
6224
6227
6225 2002-04-26 Fernando Perez <fperez@colorado.edu>
6228 2002-04-26 Fernando Perez <fperez@colorado.edu>
6226
6229
6227 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6230 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6228 all files were being included in an update. Now anything in
6231 all files were being included in an update. Now anything in
6229 UserConfig that matches [A-Za-z]*.py will go (this excludes
6232 UserConfig that matches [A-Za-z]*.py will go (this excludes
6230 __init__.py)
6233 __init__.py)
6231
6234
6232 2002-04-25 Fernando Perez <fperez@colorado.edu>
6235 2002-04-25 Fernando Perez <fperez@colorado.edu>
6233
6236
6234 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6237 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6235 to __builtins__ so that any form of embedded or imported code can
6238 to __builtins__ so that any form of embedded or imported code can
6236 test for being inside IPython.
6239 test for being inside IPython.
6237
6240
6238 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6241 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6239 changed to GnuplotMagic because it's now an importable module,
6242 changed to GnuplotMagic because it's now an importable module,
6240 this makes the name follow that of the standard Gnuplot module.
6243 this makes the name follow that of the standard Gnuplot module.
6241 GnuplotMagic can now be loaded at any time in mid-session.
6244 GnuplotMagic can now be loaded at any time in mid-session.
6242
6245
6243 2002-04-24 Fernando Perez <fperez@colorado.edu>
6246 2002-04-24 Fernando Perez <fperez@colorado.edu>
6244
6247
6245 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6248 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6246 the globals (IPython has its own namespace) and the
6249 the globals (IPython has its own namespace) and the
6247 PhysicalQuantity stuff is much better anyway.
6250 PhysicalQuantity stuff is much better anyway.
6248
6251
6249 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6252 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6250 embedding example to standard user directory for
6253 embedding example to standard user directory for
6251 distribution. Also put it in the manual.
6254 distribution. Also put it in the manual.
6252
6255
6253 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6256 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6254 instance as first argument (so it doesn't rely on some obscure
6257 instance as first argument (so it doesn't rely on some obscure
6255 hidden global).
6258 hidden global).
6256
6259
6257 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6260 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6258 delimiters. While it prevents ().TAB from working, it allows
6261 delimiters. While it prevents ().TAB from working, it allows
6259 completions in open (... expressions. This is by far a more common
6262 completions in open (... expressions. This is by far a more common
6260 case.
6263 case.
6261
6264
6262 2002-04-23 Fernando Perez <fperez@colorado.edu>
6265 2002-04-23 Fernando Perez <fperez@colorado.edu>
6263
6266
6264 * IPython/Extensions/InterpreterPasteInput.py: new
6267 * IPython/Extensions/InterpreterPasteInput.py: new
6265 syntax-processing module for pasting lines with >>> or ... at the
6268 syntax-processing module for pasting lines with >>> or ... at the
6266 start.
6269 start.
6267
6270
6268 * IPython/Extensions/PhysicalQ_Interactive.py
6271 * IPython/Extensions/PhysicalQ_Interactive.py
6269 (PhysicalQuantityInteractive.__int__): fixed to work with either
6272 (PhysicalQuantityInteractive.__int__): fixed to work with either
6270 Numeric or math.
6273 Numeric or math.
6271
6274
6272 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6275 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6273 provided profiles. Now we have:
6276 provided profiles. Now we have:
6274 -math -> math module as * and cmath with its own namespace.
6277 -math -> math module as * and cmath with its own namespace.
6275 -numeric -> Numeric as *, plus gnuplot & grace
6278 -numeric -> Numeric as *, plus gnuplot & grace
6276 -physics -> same as before
6279 -physics -> same as before
6277
6280
6278 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6281 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6279 user-defined magics wouldn't be found by @magic if they were
6282 user-defined magics wouldn't be found by @magic if they were
6280 defined as class methods. Also cleaned up the namespace search
6283 defined as class methods. Also cleaned up the namespace search
6281 logic and the string building (to use %s instead of many repeated
6284 logic and the string building (to use %s instead of many repeated
6282 string adds).
6285 string adds).
6283
6286
6284 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6287 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6285 of user-defined magics to operate with class methods (cleaner, in
6288 of user-defined magics to operate with class methods (cleaner, in
6286 line with the gnuplot code).
6289 line with the gnuplot code).
6287
6290
6288 2002-04-22 Fernando Perez <fperez@colorado.edu>
6291 2002-04-22 Fernando Perez <fperez@colorado.edu>
6289
6292
6290 * setup.py: updated dependency list so that manual is updated when
6293 * setup.py: updated dependency list so that manual is updated when
6291 all included files change.
6294 all included files change.
6292
6295
6293 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6296 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6294 the delimiter removal option (the fix is ugly right now).
6297 the delimiter removal option (the fix is ugly right now).
6295
6298
6296 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6299 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6297 all of the math profile (quicker loading, no conflict between
6300 all of the math profile (quicker loading, no conflict between
6298 g-9.8 and g-gnuplot).
6301 g-9.8 and g-gnuplot).
6299
6302
6300 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6303 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6301 name of post-mortem files to IPython_crash_report.txt.
6304 name of post-mortem files to IPython_crash_report.txt.
6302
6305
6303 * Cleanup/update of the docs. Added all the new readline info and
6306 * Cleanup/update of the docs. Added all the new readline info and
6304 formatted all lists as 'real lists'.
6307 formatted all lists as 'real lists'.
6305
6308
6306 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6309 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6307 tab-completion options, since the full readline parse_and_bind is
6310 tab-completion options, since the full readline parse_and_bind is
6308 now accessible.
6311 now accessible.
6309
6312
6310 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6313 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6311 handling of readline options. Now users can specify any string to
6314 handling of readline options. Now users can specify any string to
6312 be passed to parse_and_bind(), as well as the delimiters to be
6315 be passed to parse_and_bind(), as well as the delimiters to be
6313 removed.
6316 removed.
6314 (InteractiveShell.__init__): Added __name__ to the global
6317 (InteractiveShell.__init__): Added __name__ to the global
6315 namespace so that things like Itpl which rely on its existence
6318 namespace so that things like Itpl which rely on its existence
6316 don't crash.
6319 don't crash.
6317 (InteractiveShell._prefilter): Defined the default with a _ so
6320 (InteractiveShell._prefilter): Defined the default with a _ so
6318 that prefilter() is easier to override, while the default one
6321 that prefilter() is easier to override, while the default one
6319 remains available.
6322 remains available.
6320
6323
6321 2002-04-18 Fernando Perez <fperez@colorado.edu>
6324 2002-04-18 Fernando Perez <fperez@colorado.edu>
6322
6325
6323 * Added information about pdb in the docs.
6326 * Added information about pdb in the docs.
6324
6327
6325 2002-04-17 Fernando Perez <fperez@colorado.edu>
6328 2002-04-17 Fernando Perez <fperez@colorado.edu>
6326
6329
6327 * IPython/ipmaker.py (make_IPython): added rc_override option to
6330 * IPython/ipmaker.py (make_IPython): added rc_override option to
6328 allow passing config options at creation time which may override
6331 allow passing config options at creation time which may override
6329 anything set in the config files or command line. This is
6332 anything set in the config files or command line. This is
6330 particularly useful for configuring embedded instances.
6333 particularly useful for configuring embedded instances.
6331
6334
6332 2002-04-15 Fernando Perez <fperez@colorado.edu>
6335 2002-04-15 Fernando Perez <fperez@colorado.edu>
6333
6336
6334 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6337 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6335 crash embedded instances because of the input cache falling out of
6338 crash embedded instances because of the input cache falling out of
6336 sync with the output counter.
6339 sync with the output counter.
6337
6340
6338 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6341 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6339 mode which calls pdb after an uncaught exception in IPython itself.
6342 mode which calls pdb after an uncaught exception in IPython itself.
6340
6343
6341 2002-04-14 Fernando Perez <fperez@colorado.edu>
6344 2002-04-14 Fernando Perez <fperez@colorado.edu>
6342
6345
6343 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6346 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6344 readline, fix it back after each call.
6347 readline, fix it back after each call.
6345
6348
6346 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6349 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6347 method to force all access via __call__(), which guarantees that
6350 method to force all access via __call__(), which guarantees that
6348 traceback references are properly deleted.
6351 traceback references are properly deleted.
6349
6352
6350 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6353 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6351 improve printing when pprint is in use.
6354 improve printing when pprint is in use.
6352
6355
6353 2002-04-13 Fernando Perez <fperez@colorado.edu>
6356 2002-04-13 Fernando Perez <fperez@colorado.edu>
6354
6357
6355 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6358 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6356 exceptions aren't caught anymore. If the user triggers one, he
6359 exceptions aren't caught anymore. If the user triggers one, he
6357 should know why he's doing it and it should go all the way up,
6360 should know why he's doing it and it should go all the way up,
6358 just like any other exception. So now @abort will fully kill the
6361 just like any other exception. So now @abort will fully kill the
6359 embedded interpreter and the embedding code (unless that happens
6362 embedded interpreter and the embedding code (unless that happens
6360 to catch SystemExit).
6363 to catch SystemExit).
6361
6364
6362 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6365 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6363 and a debugger() method to invoke the interactive pdb debugger
6366 and a debugger() method to invoke the interactive pdb debugger
6364 after printing exception information. Also added the corresponding
6367 after printing exception information. Also added the corresponding
6365 -pdb option and @pdb magic to control this feature, and updated
6368 -pdb option and @pdb magic to control this feature, and updated
6366 the docs. After a suggestion from Christopher Hart
6369 the docs. After a suggestion from Christopher Hart
6367 (hart-AT-caltech.edu).
6370 (hart-AT-caltech.edu).
6368
6371
6369 2002-04-12 Fernando Perez <fperez@colorado.edu>
6372 2002-04-12 Fernando Perez <fperez@colorado.edu>
6370
6373
6371 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6374 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6372 the exception handlers defined by the user (not the CrashHandler)
6375 the exception handlers defined by the user (not the CrashHandler)
6373 so that user exceptions don't trigger an ipython bug report.
6376 so that user exceptions don't trigger an ipython bug report.
6374
6377
6375 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6378 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6376 configurable (it should have always been so).
6379 configurable (it should have always been so).
6377
6380
6378 2002-03-26 Fernando Perez <fperez@colorado.edu>
6381 2002-03-26 Fernando Perez <fperez@colorado.edu>
6379
6382
6380 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6383 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6381 and there to fix embedding namespace issues. This should all be
6384 and there to fix embedding namespace issues. This should all be
6382 done in a more elegant way.
6385 done in a more elegant way.
6383
6386
6384 2002-03-25 Fernando Perez <fperez@colorado.edu>
6387 2002-03-25 Fernando Perez <fperez@colorado.edu>
6385
6388
6386 * IPython/genutils.py (get_home_dir): Try to make it work under
6389 * IPython/genutils.py (get_home_dir): Try to make it work under
6387 win9x also.
6390 win9x also.
6388
6391
6389 2002-03-20 Fernando Perez <fperez@colorado.edu>
6392 2002-03-20 Fernando Perez <fperez@colorado.edu>
6390
6393
6391 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6394 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6392 sys.displayhook untouched upon __init__.
6395 sys.displayhook untouched upon __init__.
6393
6396
6394 2002-03-19 Fernando Perez <fperez@colorado.edu>
6397 2002-03-19 Fernando Perez <fperez@colorado.edu>
6395
6398
6396 * Released 0.2.9 (for embedding bug, basically).
6399 * Released 0.2.9 (for embedding bug, basically).
6397
6400
6398 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6401 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6399 exceptions so that enclosing shell's state can be restored.
6402 exceptions so that enclosing shell's state can be restored.
6400
6403
6401 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6404 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6402 naming conventions in the .ipython/ dir.
6405 naming conventions in the .ipython/ dir.
6403
6406
6404 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6407 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6405 from delimiters list so filenames with - in them get expanded.
6408 from delimiters list so filenames with - in them get expanded.
6406
6409
6407 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6410 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6408 sys.displayhook not being properly restored after an embedded call.
6411 sys.displayhook not being properly restored after an embedded call.
6409
6412
6410 2002-03-18 Fernando Perez <fperez@colorado.edu>
6413 2002-03-18 Fernando Perez <fperez@colorado.edu>
6411
6414
6412 * Released 0.2.8
6415 * Released 0.2.8
6413
6416
6414 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6417 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6415 some files weren't being included in a -upgrade.
6418 some files weren't being included in a -upgrade.
6416 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6419 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6417 on' so that the first tab completes.
6420 on' so that the first tab completes.
6418 (InteractiveShell.handle_magic): fixed bug with spaces around
6421 (InteractiveShell.handle_magic): fixed bug with spaces around
6419 quotes breaking many magic commands.
6422 quotes breaking many magic commands.
6420
6423
6421 * setup.py: added note about ignoring the syntax error messages at
6424 * setup.py: added note about ignoring the syntax error messages at
6422 installation.
6425 installation.
6423
6426
6424 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6427 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6425 streamlining the gnuplot interface, now there's only one magic @gp.
6428 streamlining the gnuplot interface, now there's only one magic @gp.
6426
6429
6427 2002-03-17 Fernando Perez <fperez@colorado.edu>
6430 2002-03-17 Fernando Perez <fperez@colorado.edu>
6428
6431
6429 * IPython/UserConfig/magic_gnuplot.py: new name for the
6432 * IPython/UserConfig/magic_gnuplot.py: new name for the
6430 example-magic_pm.py file. Much enhanced system, now with a shell
6433 example-magic_pm.py file. Much enhanced system, now with a shell
6431 for communicating directly with gnuplot, one command at a time.
6434 for communicating directly with gnuplot, one command at a time.
6432
6435
6433 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6436 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6434 setting __name__=='__main__'.
6437 setting __name__=='__main__'.
6435
6438
6436 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6439 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6437 mini-shell for accessing gnuplot from inside ipython. Should
6440 mini-shell for accessing gnuplot from inside ipython. Should
6438 extend it later for grace access too. Inspired by Arnd's
6441 extend it later for grace access too. Inspired by Arnd's
6439 suggestion.
6442 suggestion.
6440
6443
6441 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6444 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6442 calling magic functions with () in their arguments. Thanks to Arnd
6445 calling magic functions with () in their arguments. Thanks to Arnd
6443 Baecker for pointing this to me.
6446 Baecker for pointing this to me.
6444
6447
6445 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6448 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6446 infinitely for integer or complex arrays (only worked with floats).
6449 infinitely for integer or complex arrays (only worked with floats).
6447
6450
6448 2002-03-16 Fernando Perez <fperez@colorado.edu>
6451 2002-03-16 Fernando Perez <fperez@colorado.edu>
6449
6452
6450 * setup.py: Merged setup and setup_windows into a single script
6453 * setup.py: Merged setup and setup_windows into a single script
6451 which properly handles things for windows users.
6454 which properly handles things for windows users.
6452
6455
6453 2002-03-15 Fernando Perez <fperez@colorado.edu>
6456 2002-03-15 Fernando Perez <fperez@colorado.edu>
6454
6457
6455 * Big change to the manual: now the magics are all automatically
6458 * Big change to the manual: now the magics are all automatically
6456 documented. This information is generated from their docstrings
6459 documented. This information is generated from their docstrings
6457 and put in a latex file included by the manual lyx file. This way
6460 and put in a latex file included by the manual lyx file. This way
6458 we get always up to date information for the magics. The manual
6461 we get always up to date information for the magics. The manual
6459 now also has proper version information, also auto-synced.
6462 now also has proper version information, also auto-synced.
6460
6463
6461 For this to work, an undocumented --magic_docstrings option was added.
6464 For this to work, an undocumented --magic_docstrings option was added.
6462
6465
6463 2002-03-13 Fernando Perez <fperez@colorado.edu>
6466 2002-03-13 Fernando Perez <fperez@colorado.edu>
6464
6467
6465 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6468 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6466 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6469 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6467
6470
6468 2002-03-12 Fernando Perez <fperez@colorado.edu>
6471 2002-03-12 Fernando Perez <fperez@colorado.edu>
6469
6472
6470 * IPython/ultraTB.py (TermColors): changed color escapes again to
6473 * IPython/ultraTB.py (TermColors): changed color escapes again to
6471 fix the (old, reintroduced) line-wrapping bug. Basically, if
6474 fix the (old, reintroduced) line-wrapping bug. Basically, if
6472 \001..\002 aren't given in the color escapes, lines get wrapped
6475 \001..\002 aren't given in the color escapes, lines get wrapped
6473 weirdly. But giving those screws up old xterms and emacs terms. So
6476 weirdly. But giving those screws up old xterms and emacs terms. So
6474 I added some logic for emacs terms to be ok, but I can't identify old
6477 I added some logic for emacs terms to be ok, but I can't identify old
6475 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6478 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6476
6479
6477 2002-03-10 Fernando Perez <fperez@colorado.edu>
6480 2002-03-10 Fernando Perez <fperez@colorado.edu>
6478
6481
6479 * IPython/usage.py (__doc__): Various documentation cleanups and
6482 * IPython/usage.py (__doc__): Various documentation cleanups and
6480 updates, both in usage docstrings and in the manual.
6483 updates, both in usage docstrings and in the manual.
6481
6484
6482 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6485 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6483 handling of caching. Set minimum acceptabe value for having a
6486 handling of caching. Set minimum acceptabe value for having a
6484 cache at 20 values.
6487 cache at 20 values.
6485
6488
6486 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6489 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6487 install_first_time function to a method, renamed it and added an
6490 install_first_time function to a method, renamed it and added an
6488 'upgrade' mode. Now people can update their config directory with
6491 'upgrade' mode. Now people can update their config directory with
6489 a simple command line switch (-upgrade, also new).
6492 a simple command line switch (-upgrade, also new).
6490
6493
6491 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6494 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6492 @file (convenient for automagic users under Python >= 2.2).
6495 @file (convenient for automagic users under Python >= 2.2).
6493 Removed @files (it seemed more like a plural than an abbrev. of
6496 Removed @files (it seemed more like a plural than an abbrev. of
6494 'file show').
6497 'file show').
6495
6498
6496 * IPython/iplib.py (install_first_time): Fixed crash if there were
6499 * IPython/iplib.py (install_first_time): Fixed crash if there were
6497 backup files ('~') in .ipython/ install directory.
6500 backup files ('~') in .ipython/ install directory.
6498
6501
6499 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6502 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6500 system. Things look fine, but these changes are fairly
6503 system. Things look fine, but these changes are fairly
6501 intrusive. Test them for a few days.
6504 intrusive. Test them for a few days.
6502
6505
6503 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6506 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6504 the prompts system. Now all in/out prompt strings are user
6507 the prompts system. Now all in/out prompt strings are user
6505 controllable. This is particularly useful for embedding, as one
6508 controllable. This is particularly useful for embedding, as one
6506 can tag embedded instances with particular prompts.
6509 can tag embedded instances with particular prompts.
6507
6510
6508 Also removed global use of sys.ps1/2, which now allows nested
6511 Also removed global use of sys.ps1/2, which now allows nested
6509 embeddings without any problems. Added command-line options for
6512 embeddings without any problems. Added command-line options for
6510 the prompt strings.
6513 the prompt strings.
6511
6514
6512 2002-03-08 Fernando Perez <fperez@colorado.edu>
6515 2002-03-08 Fernando Perez <fperez@colorado.edu>
6513
6516
6514 * IPython/UserConfig/example-embed-short.py (ipshell): added
6517 * IPython/UserConfig/example-embed-short.py (ipshell): added
6515 example file with the bare minimum code for embedding.
6518 example file with the bare minimum code for embedding.
6516
6519
6517 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6520 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6518 functionality for the embeddable shell to be activated/deactivated
6521 functionality for the embeddable shell to be activated/deactivated
6519 either globally or at each call.
6522 either globally or at each call.
6520
6523
6521 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6524 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6522 rewriting the prompt with '--->' for auto-inputs with proper
6525 rewriting the prompt with '--->' for auto-inputs with proper
6523 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6526 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6524 this is handled by the prompts class itself, as it should.
6527 this is handled by the prompts class itself, as it should.
6525
6528
6526 2002-03-05 Fernando Perez <fperez@colorado.edu>
6529 2002-03-05 Fernando Perez <fperez@colorado.edu>
6527
6530
6528 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6531 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6529 @logstart to avoid name clashes with the math log function.
6532 @logstart to avoid name clashes with the math log function.
6530
6533
6531 * Big updates to X/Emacs section of the manual.
6534 * Big updates to X/Emacs section of the manual.
6532
6535
6533 * Removed ipython_emacs. Milan explained to me how to pass
6536 * Removed ipython_emacs. Milan explained to me how to pass
6534 arguments to ipython through Emacs. Some day I'm going to end up
6537 arguments to ipython through Emacs. Some day I'm going to end up
6535 learning some lisp...
6538 learning some lisp...
6536
6539
6537 2002-03-04 Fernando Perez <fperez@colorado.edu>
6540 2002-03-04 Fernando Perez <fperez@colorado.edu>
6538
6541
6539 * IPython/ipython_emacs: Created script to be used as the
6542 * IPython/ipython_emacs: Created script to be used as the
6540 py-python-command Emacs variable so we can pass IPython
6543 py-python-command Emacs variable so we can pass IPython
6541 parameters. I can't figure out how to tell Emacs directly to pass
6544 parameters. I can't figure out how to tell Emacs directly to pass
6542 parameters to IPython, so a dummy shell script will do it.
6545 parameters to IPython, so a dummy shell script will do it.
6543
6546
6544 Other enhancements made for things to work better under Emacs'
6547 Other enhancements made for things to work better under Emacs'
6545 various types of terminals. Many thanks to Milan Zamazal
6548 various types of terminals. Many thanks to Milan Zamazal
6546 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6549 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6547
6550
6548 2002-03-01 Fernando Perez <fperez@colorado.edu>
6551 2002-03-01 Fernando Perez <fperez@colorado.edu>
6549
6552
6550 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6553 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6551 that loading of readline is now optional. This gives better
6554 that loading of readline is now optional. This gives better
6552 control to emacs users.
6555 control to emacs users.
6553
6556
6554 * IPython/ultraTB.py (__date__): Modified color escape sequences
6557 * IPython/ultraTB.py (__date__): Modified color escape sequences
6555 and now things work fine under xterm and in Emacs' term buffers
6558 and now things work fine under xterm and in Emacs' term buffers
6556 (though not shell ones). Well, in emacs you get colors, but all
6559 (though not shell ones). Well, in emacs you get colors, but all
6557 seem to be 'light' colors (no difference between dark and light
6560 seem to be 'light' colors (no difference between dark and light
6558 ones). But the garbage chars are gone, and also in xterms. It
6561 ones). But the garbage chars are gone, and also in xterms. It
6559 seems that now I'm using 'cleaner' ansi sequences.
6562 seems that now I'm using 'cleaner' ansi sequences.
6560
6563
6561 2002-02-21 Fernando Perez <fperez@colorado.edu>
6564 2002-02-21 Fernando Perez <fperez@colorado.edu>
6562
6565
6563 * Released 0.2.7 (mainly to publish the scoping fix).
6566 * Released 0.2.7 (mainly to publish the scoping fix).
6564
6567
6565 * IPython/Logger.py (Logger.logstate): added. A corresponding
6568 * IPython/Logger.py (Logger.logstate): added. A corresponding
6566 @logstate magic was created.
6569 @logstate magic was created.
6567
6570
6568 * IPython/Magic.py: fixed nested scoping problem under Python
6571 * IPython/Magic.py: fixed nested scoping problem under Python
6569 2.1.x (automagic wasn't working).
6572 2.1.x (automagic wasn't working).
6570
6573
6571 2002-02-20 Fernando Perez <fperez@colorado.edu>
6574 2002-02-20 Fernando Perez <fperez@colorado.edu>
6572
6575
6573 * Released 0.2.6.
6576 * Released 0.2.6.
6574
6577
6575 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6578 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6576 option so that logs can come out without any headers at all.
6579 option so that logs can come out without any headers at all.
6577
6580
6578 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6581 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6579 SciPy.
6582 SciPy.
6580
6583
6581 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6584 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6582 that embedded IPython calls don't require vars() to be explicitly
6585 that embedded IPython calls don't require vars() to be explicitly
6583 passed. Now they are extracted from the caller's frame (code
6586 passed. Now they are extracted from the caller's frame (code
6584 snatched from Eric Jones' weave). Added better documentation to
6587 snatched from Eric Jones' weave). Added better documentation to
6585 the section on embedding and the example file.
6588 the section on embedding and the example file.
6586
6589
6587 * IPython/genutils.py (page): Changed so that under emacs, it just
6590 * IPython/genutils.py (page): Changed so that under emacs, it just
6588 prints the string. You can then page up and down in the emacs
6591 prints the string. You can then page up and down in the emacs
6589 buffer itself. This is how the builtin help() works.
6592 buffer itself. This is how the builtin help() works.
6590
6593
6591 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6594 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6592 macro scoping: macros need to be executed in the user's namespace
6595 macro scoping: macros need to be executed in the user's namespace
6593 to work as if they had been typed by the user.
6596 to work as if they had been typed by the user.
6594
6597
6595 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6598 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6596 execute automatically (no need to type 'exec...'). They then
6599 execute automatically (no need to type 'exec...'). They then
6597 behave like 'true macros'. The printing system was also modified
6600 behave like 'true macros'. The printing system was also modified
6598 for this to work.
6601 for this to work.
6599
6602
6600 2002-02-19 Fernando Perez <fperez@colorado.edu>
6603 2002-02-19 Fernando Perez <fperez@colorado.edu>
6601
6604
6602 * IPython/genutils.py (page_file): new function for paging files
6605 * IPython/genutils.py (page_file): new function for paging files
6603 in an OS-independent way. Also necessary for file viewing to work
6606 in an OS-independent way. Also necessary for file viewing to work
6604 well inside Emacs buffers.
6607 well inside Emacs buffers.
6605 (page): Added checks for being in an emacs buffer.
6608 (page): Added checks for being in an emacs buffer.
6606 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6609 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6607 same bug in iplib.
6610 same bug in iplib.
6608
6611
6609 2002-02-18 Fernando Perez <fperez@colorado.edu>
6612 2002-02-18 Fernando Perez <fperez@colorado.edu>
6610
6613
6611 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6614 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6612 of readline so that IPython can work inside an Emacs buffer.
6615 of readline so that IPython can work inside an Emacs buffer.
6613
6616
6614 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6617 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6615 method signatures (they weren't really bugs, but it looks cleaner
6618 method signatures (they weren't really bugs, but it looks cleaner
6616 and keeps PyChecker happy).
6619 and keeps PyChecker happy).
6617
6620
6618 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6621 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6619 for implementing various user-defined hooks. Currently only
6622 for implementing various user-defined hooks. Currently only
6620 display is done.
6623 display is done.
6621
6624
6622 * IPython/Prompts.py (CachedOutput._display): changed display
6625 * IPython/Prompts.py (CachedOutput._display): changed display
6623 functions so that they can be dynamically changed by users easily.
6626 functions so that they can be dynamically changed by users easily.
6624
6627
6625 * IPython/Extensions/numeric_formats.py (num_display): added an
6628 * IPython/Extensions/numeric_formats.py (num_display): added an
6626 extension for printing NumPy arrays in flexible manners. It
6629 extension for printing NumPy arrays in flexible manners. It
6627 doesn't do anything yet, but all the structure is in
6630 doesn't do anything yet, but all the structure is in
6628 place. Ultimately the plan is to implement output format control
6631 place. Ultimately the plan is to implement output format control
6629 like in Octave.
6632 like in Octave.
6630
6633
6631 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6634 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6632 methods are found at run-time by all the automatic machinery.
6635 methods are found at run-time by all the automatic machinery.
6633
6636
6634 2002-02-17 Fernando Perez <fperez@colorado.edu>
6637 2002-02-17 Fernando Perez <fperez@colorado.edu>
6635
6638
6636 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6639 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6637 whole file a little.
6640 whole file a little.
6638
6641
6639 * ToDo: closed this document. Now there's a new_design.lyx
6642 * ToDo: closed this document. Now there's a new_design.lyx
6640 document for all new ideas. Added making a pdf of it for the
6643 document for all new ideas. Added making a pdf of it for the
6641 end-user distro.
6644 end-user distro.
6642
6645
6643 * IPython/Logger.py (Logger.switch_log): Created this to replace
6646 * IPython/Logger.py (Logger.switch_log): Created this to replace
6644 logon() and logoff(). It also fixes a nasty crash reported by
6647 logon() and logoff(). It also fixes a nasty crash reported by
6645 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6648 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6646
6649
6647 * IPython/iplib.py (complete): got auto-completion to work with
6650 * IPython/iplib.py (complete): got auto-completion to work with
6648 automagic (I had wanted this for a long time).
6651 automagic (I had wanted this for a long time).
6649
6652
6650 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6653 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6651 to @file, since file() is now a builtin and clashes with automagic
6654 to @file, since file() is now a builtin and clashes with automagic
6652 for @file.
6655 for @file.
6653
6656
6654 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6657 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6655 of this was previously in iplib, which had grown to more than 2000
6658 of this was previously in iplib, which had grown to more than 2000
6656 lines, way too long. No new functionality, but it makes managing
6659 lines, way too long. No new functionality, but it makes managing
6657 the code a bit easier.
6660 the code a bit easier.
6658
6661
6659 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6662 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6660 information to crash reports.
6663 information to crash reports.
6661
6664
6662 2002-02-12 Fernando Perez <fperez@colorado.edu>
6665 2002-02-12 Fernando Perez <fperez@colorado.edu>
6663
6666
6664 * Released 0.2.5.
6667 * Released 0.2.5.
6665
6668
6666 2002-02-11 Fernando Perez <fperez@colorado.edu>
6669 2002-02-11 Fernando Perez <fperez@colorado.edu>
6667
6670
6668 * Wrote a relatively complete Windows installer. It puts
6671 * Wrote a relatively complete Windows installer. It puts
6669 everything in place, creates Start Menu entries and fixes the
6672 everything in place, creates Start Menu entries and fixes the
6670 color issues. Nothing fancy, but it works.
6673 color issues. Nothing fancy, but it works.
6671
6674
6672 2002-02-10 Fernando Perez <fperez@colorado.edu>
6675 2002-02-10 Fernando Perez <fperez@colorado.edu>
6673
6676
6674 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6677 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6675 os.path.expanduser() call so that we can type @run ~/myfile.py and
6678 os.path.expanduser() call so that we can type @run ~/myfile.py and
6676 have thigs work as expected.
6679 have thigs work as expected.
6677
6680
6678 * IPython/genutils.py (page): fixed exception handling so things
6681 * IPython/genutils.py (page): fixed exception handling so things
6679 work both in Unix and Windows correctly. Quitting a pager triggers
6682 work both in Unix and Windows correctly. Quitting a pager triggers
6680 an IOError/broken pipe in Unix, and in windows not finding a pager
6683 an IOError/broken pipe in Unix, and in windows not finding a pager
6681 is also an IOError, so I had to actually look at the return value
6684 is also an IOError, so I had to actually look at the return value
6682 of the exception, not just the exception itself. Should be ok now.
6685 of the exception, not just the exception itself. Should be ok now.
6683
6686
6684 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6687 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6685 modified to allow case-insensitive color scheme changes.
6688 modified to allow case-insensitive color scheme changes.
6686
6689
6687 2002-02-09 Fernando Perez <fperez@colorado.edu>
6690 2002-02-09 Fernando Perez <fperez@colorado.edu>
6688
6691
6689 * IPython/genutils.py (native_line_ends): new function to leave
6692 * IPython/genutils.py (native_line_ends): new function to leave
6690 user config files with os-native line-endings.
6693 user config files with os-native line-endings.
6691
6694
6692 * README and manual updates.
6695 * README and manual updates.
6693
6696
6694 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6697 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6695 instead of StringType to catch Unicode strings.
6698 instead of StringType to catch Unicode strings.
6696
6699
6697 * IPython/genutils.py (filefind): fixed bug for paths with
6700 * IPython/genutils.py (filefind): fixed bug for paths with
6698 embedded spaces (very common in Windows).
6701 embedded spaces (very common in Windows).
6699
6702
6700 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6703 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6701 files under Windows, so that they get automatically associated
6704 files under Windows, so that they get automatically associated
6702 with a text editor. Windows makes it a pain to handle
6705 with a text editor. Windows makes it a pain to handle
6703 extension-less files.
6706 extension-less files.
6704
6707
6705 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6708 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6706 warning about readline only occur for Posix. In Windows there's no
6709 warning about readline only occur for Posix. In Windows there's no
6707 way to get readline, so why bother with the warning.
6710 way to get readline, so why bother with the warning.
6708
6711
6709 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6712 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6710 for __str__ instead of dir(self), since dir() changed in 2.2.
6713 for __str__ instead of dir(self), since dir() changed in 2.2.
6711
6714
6712 * Ported to Windows! Tested on XP, I suspect it should work fine
6715 * Ported to Windows! Tested on XP, I suspect it should work fine
6713 on NT/2000, but I don't think it will work on 98 et al. That
6716 on NT/2000, but I don't think it will work on 98 et al. That
6714 series of Windows is such a piece of junk anyway that I won't try
6717 series of Windows is such a piece of junk anyway that I won't try
6715 porting it there. The XP port was straightforward, showed a few
6718 porting it there. The XP port was straightforward, showed a few
6716 bugs here and there (fixed all), in particular some string
6719 bugs here and there (fixed all), in particular some string
6717 handling stuff which required considering Unicode strings (which
6720 handling stuff which required considering Unicode strings (which
6718 Windows uses). This is good, but hasn't been too tested :) No
6721 Windows uses). This is good, but hasn't been too tested :) No
6719 fancy installer yet, I'll put a note in the manual so people at
6722 fancy installer yet, I'll put a note in the manual so people at
6720 least make manually a shortcut.
6723 least make manually a shortcut.
6721
6724
6722 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6725 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6723 into a single one, "colors". This now controls both prompt and
6726 into a single one, "colors". This now controls both prompt and
6724 exception color schemes, and can be changed both at startup
6727 exception color schemes, and can be changed both at startup
6725 (either via command-line switches or via ipythonrc files) and at
6728 (either via command-line switches or via ipythonrc files) and at
6726 runtime, with @colors.
6729 runtime, with @colors.
6727 (Magic.magic_run): renamed @prun to @run and removed the old
6730 (Magic.magic_run): renamed @prun to @run and removed the old
6728 @run. The two were too similar to warrant keeping both.
6731 @run. The two were too similar to warrant keeping both.
6729
6732
6730 2002-02-03 Fernando Perez <fperez@colorado.edu>
6733 2002-02-03 Fernando Perez <fperez@colorado.edu>
6731
6734
6732 * IPython/iplib.py (install_first_time): Added comment on how to
6735 * IPython/iplib.py (install_first_time): Added comment on how to
6733 configure the color options for first-time users. Put a <return>
6736 configure the color options for first-time users. Put a <return>
6734 request at the end so that small-terminal users get a chance to
6737 request at the end so that small-terminal users get a chance to
6735 read the startup info.
6738 read the startup info.
6736
6739
6737 2002-01-23 Fernando Perez <fperez@colorado.edu>
6740 2002-01-23 Fernando Perez <fperez@colorado.edu>
6738
6741
6739 * IPython/iplib.py (CachedOutput.update): Changed output memory
6742 * IPython/iplib.py (CachedOutput.update): Changed output memory
6740 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6743 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6741 input history we still use _i. Did this b/c these variable are
6744 input history we still use _i. Did this b/c these variable are
6742 very commonly used in interactive work, so the less we need to
6745 very commonly used in interactive work, so the less we need to
6743 type the better off we are.
6746 type the better off we are.
6744 (Magic.magic_prun): updated @prun to better handle the namespaces
6747 (Magic.magic_prun): updated @prun to better handle the namespaces
6745 the file will run in, including a fix for __name__ not being set
6748 the file will run in, including a fix for __name__ not being set
6746 before.
6749 before.
6747
6750
6748 2002-01-20 Fernando Perez <fperez@colorado.edu>
6751 2002-01-20 Fernando Perez <fperez@colorado.edu>
6749
6752
6750 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6753 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6751 extra garbage for Python 2.2. Need to look more carefully into
6754 extra garbage for Python 2.2. Need to look more carefully into
6752 this later.
6755 this later.
6753
6756
6754 2002-01-19 Fernando Perez <fperez@colorado.edu>
6757 2002-01-19 Fernando Perez <fperez@colorado.edu>
6755
6758
6756 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6759 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6757 display SyntaxError exceptions properly formatted when they occur
6760 display SyntaxError exceptions properly formatted when they occur
6758 (they can be triggered by imported code).
6761 (they can be triggered by imported code).
6759
6762
6760 2002-01-18 Fernando Perez <fperez@colorado.edu>
6763 2002-01-18 Fernando Perez <fperez@colorado.edu>
6761
6764
6762 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6765 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6763 SyntaxError exceptions are reported nicely formatted, instead of
6766 SyntaxError exceptions are reported nicely formatted, instead of
6764 spitting out only offset information as before.
6767 spitting out only offset information as before.
6765 (Magic.magic_prun): Added the @prun function for executing
6768 (Magic.magic_prun): Added the @prun function for executing
6766 programs with command line args inside IPython.
6769 programs with command line args inside IPython.
6767
6770
6768 2002-01-16 Fernando Perez <fperez@colorado.edu>
6771 2002-01-16 Fernando Perez <fperez@colorado.edu>
6769
6772
6770 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6773 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6771 to *not* include the last item given in a range. This brings their
6774 to *not* include the last item given in a range. This brings their
6772 behavior in line with Python's slicing:
6775 behavior in line with Python's slicing:
6773 a[n1:n2] -> a[n1]...a[n2-1]
6776 a[n1:n2] -> a[n1]...a[n2-1]
6774 It may be a bit less convenient, but I prefer to stick to Python's
6777 It may be a bit less convenient, but I prefer to stick to Python's
6775 conventions *everywhere*, so users never have to wonder.
6778 conventions *everywhere*, so users never have to wonder.
6776 (Magic.magic_macro): Added @macro function to ease the creation of
6779 (Magic.magic_macro): Added @macro function to ease the creation of
6777 macros.
6780 macros.
6778
6781
6779 2002-01-05 Fernando Perez <fperez@colorado.edu>
6782 2002-01-05 Fernando Perez <fperez@colorado.edu>
6780
6783
6781 * Released 0.2.4.
6784 * Released 0.2.4.
6782
6785
6783 * IPython/iplib.py (Magic.magic_pdef):
6786 * IPython/iplib.py (Magic.magic_pdef):
6784 (InteractiveShell.safe_execfile): report magic lines and error
6787 (InteractiveShell.safe_execfile): report magic lines and error
6785 lines without line numbers so one can easily copy/paste them for
6788 lines without line numbers so one can easily copy/paste them for
6786 re-execution.
6789 re-execution.
6787
6790
6788 * Updated manual with recent changes.
6791 * Updated manual with recent changes.
6789
6792
6790 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6793 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6791 docstring printing when class? is called. Very handy for knowing
6794 docstring printing when class? is called. Very handy for knowing
6792 how to create class instances (as long as __init__ is well
6795 how to create class instances (as long as __init__ is well
6793 documented, of course :)
6796 documented, of course :)
6794 (Magic.magic_doc): print both class and constructor docstrings.
6797 (Magic.magic_doc): print both class and constructor docstrings.
6795 (Magic.magic_pdef): give constructor info if passed a class and
6798 (Magic.magic_pdef): give constructor info if passed a class and
6796 __call__ info for callable object instances.
6799 __call__ info for callable object instances.
6797
6800
6798 2002-01-04 Fernando Perez <fperez@colorado.edu>
6801 2002-01-04 Fernando Perez <fperez@colorado.edu>
6799
6802
6800 * Made deep_reload() off by default. It doesn't always work
6803 * Made deep_reload() off by default. It doesn't always work
6801 exactly as intended, so it's probably safer to have it off. It's
6804 exactly as intended, so it's probably safer to have it off. It's
6802 still available as dreload() anyway, so nothing is lost.
6805 still available as dreload() anyway, so nothing is lost.
6803
6806
6804 2002-01-02 Fernando Perez <fperez@colorado.edu>
6807 2002-01-02 Fernando Perez <fperez@colorado.edu>
6805
6808
6806 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6809 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6807 so I wanted an updated release).
6810 so I wanted an updated release).
6808
6811
6809 2001-12-27 Fernando Perez <fperez@colorado.edu>
6812 2001-12-27 Fernando Perez <fperez@colorado.edu>
6810
6813
6811 * IPython/iplib.py (InteractiveShell.interact): Added the original
6814 * IPython/iplib.py (InteractiveShell.interact): Added the original
6812 code from 'code.py' for this module in order to change the
6815 code from 'code.py' for this module in order to change the
6813 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6816 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6814 the history cache would break when the user hit Ctrl-C, and
6817 the history cache would break when the user hit Ctrl-C, and
6815 interact() offers no way to add any hooks to it.
6818 interact() offers no way to add any hooks to it.
6816
6819
6817 2001-12-23 Fernando Perez <fperez@colorado.edu>
6820 2001-12-23 Fernando Perez <fperez@colorado.edu>
6818
6821
6819 * setup.py: added check for 'MANIFEST' before trying to remove
6822 * setup.py: added check for 'MANIFEST' before trying to remove
6820 it. Thanks to Sean Reifschneider.
6823 it. Thanks to Sean Reifschneider.
6821
6824
6822 2001-12-22 Fernando Perez <fperez@colorado.edu>
6825 2001-12-22 Fernando Perez <fperez@colorado.edu>
6823
6826
6824 * Released 0.2.2.
6827 * Released 0.2.2.
6825
6828
6826 * Finished (reasonably) writing the manual. Later will add the
6829 * Finished (reasonably) writing the manual. Later will add the
6827 python-standard navigation stylesheets, but for the time being
6830 python-standard navigation stylesheets, but for the time being
6828 it's fairly complete. Distribution will include html and pdf
6831 it's fairly complete. Distribution will include html and pdf
6829 versions.
6832 versions.
6830
6833
6831 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6834 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6832 (MayaVi author).
6835 (MayaVi author).
6833
6836
6834 2001-12-21 Fernando Perez <fperez@colorado.edu>
6837 2001-12-21 Fernando Perez <fperez@colorado.edu>
6835
6838
6836 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6839 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6837 good public release, I think (with the manual and the distutils
6840 good public release, I think (with the manual and the distutils
6838 installer). The manual can use some work, but that can go
6841 installer). The manual can use some work, but that can go
6839 slowly. Otherwise I think it's quite nice for end users. Next
6842 slowly. Otherwise I think it's quite nice for end users. Next
6840 summer, rewrite the guts of it...
6843 summer, rewrite the guts of it...
6841
6844
6842 * Changed format of ipythonrc files to use whitespace as the
6845 * Changed format of ipythonrc files to use whitespace as the
6843 separator instead of an explicit '='. Cleaner.
6846 separator instead of an explicit '='. Cleaner.
6844
6847
6845 2001-12-20 Fernando Perez <fperez@colorado.edu>
6848 2001-12-20 Fernando Perez <fperez@colorado.edu>
6846
6849
6847 * Started a manual in LyX. For now it's just a quick merge of the
6850 * Started a manual in LyX. For now it's just a quick merge of the
6848 various internal docstrings and READMEs. Later it may grow into a
6851 various internal docstrings and READMEs. Later it may grow into a
6849 nice, full-blown manual.
6852 nice, full-blown manual.
6850
6853
6851 * Set up a distutils based installer. Installation should now be
6854 * Set up a distutils based installer. Installation should now be
6852 trivially simple for end-users.
6855 trivially simple for end-users.
6853
6856
6854 2001-12-11 Fernando Perez <fperez@colorado.edu>
6857 2001-12-11 Fernando Perez <fperez@colorado.edu>
6855
6858
6856 * Released 0.2.0. First public release, announced it at
6859 * Released 0.2.0. First public release, announced it at
6857 comp.lang.python. From now on, just bugfixes...
6860 comp.lang.python. From now on, just bugfixes...
6858
6861
6859 * Went through all the files, set copyright/license notices and
6862 * Went through all the files, set copyright/license notices and
6860 cleaned up things. Ready for release.
6863 cleaned up things. Ready for release.
6861
6864
6862 2001-12-10 Fernando Perez <fperez@colorado.edu>
6865 2001-12-10 Fernando Perez <fperez@colorado.edu>
6863
6866
6864 * Changed the first-time installer not to use tarfiles. It's more
6867 * Changed the first-time installer not to use tarfiles. It's more
6865 robust now and less unix-dependent. Also makes it easier for
6868 robust now and less unix-dependent. Also makes it easier for
6866 people to later upgrade versions.
6869 people to later upgrade versions.
6867
6870
6868 * Changed @exit to @abort to reflect the fact that it's pretty
6871 * Changed @exit to @abort to reflect the fact that it's pretty
6869 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6872 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6870 becomes significant only when IPyhton is embedded: in that case,
6873 becomes significant only when IPyhton is embedded: in that case,
6871 C-D closes IPython only, but @abort kills the enclosing program
6874 C-D closes IPython only, but @abort kills the enclosing program
6872 too (unless it had called IPython inside a try catching
6875 too (unless it had called IPython inside a try catching
6873 SystemExit).
6876 SystemExit).
6874
6877
6875 * Created Shell module which exposes the actuall IPython Shell
6878 * Created Shell module which exposes the actuall IPython Shell
6876 classes, currently the normal and the embeddable one. This at
6879 classes, currently the normal and the embeddable one. This at
6877 least offers a stable interface we won't need to change when
6880 least offers a stable interface we won't need to change when
6878 (later) the internals are rewritten. That rewrite will be confined
6881 (later) the internals are rewritten. That rewrite will be confined
6879 to iplib and ipmaker, but the Shell interface should remain as is.
6882 to iplib and ipmaker, but the Shell interface should remain as is.
6880
6883
6881 * Added embed module which offers an embeddable IPShell object,
6884 * Added embed module which offers an embeddable IPShell object,
6882 useful to fire up IPython *inside* a running program. Great for
6885 useful to fire up IPython *inside* a running program. Great for
6883 debugging or dynamical data analysis.
6886 debugging or dynamical data analysis.
6884
6887
6885 2001-12-08 Fernando Perez <fperez@colorado.edu>
6888 2001-12-08 Fernando Perez <fperez@colorado.edu>
6886
6889
6887 * Fixed small bug preventing seeing info from methods of defined
6890 * Fixed small bug preventing seeing info from methods of defined
6888 objects (incorrect namespace in _ofind()).
6891 objects (incorrect namespace in _ofind()).
6889
6892
6890 * Documentation cleanup. Moved the main usage docstrings to a
6893 * Documentation cleanup. Moved the main usage docstrings to a
6891 separate file, usage.py (cleaner to maintain, and hopefully in the
6894 separate file, usage.py (cleaner to maintain, and hopefully in the
6892 future some perlpod-like way of producing interactive, man and
6895 future some perlpod-like way of producing interactive, man and
6893 html docs out of it will be found).
6896 html docs out of it will be found).
6894
6897
6895 * Added @profile to see your profile at any time.
6898 * Added @profile to see your profile at any time.
6896
6899
6897 * Added @p as an alias for 'print'. It's especially convenient if
6900 * Added @p as an alias for 'print'. It's especially convenient if
6898 using automagic ('p x' prints x).
6901 using automagic ('p x' prints x).
6899
6902
6900 * Small cleanups and fixes after a pychecker run.
6903 * Small cleanups and fixes after a pychecker run.
6901
6904
6902 * Changed the @cd command to handle @cd - and @cd -<n> for
6905 * Changed the @cd command to handle @cd - and @cd -<n> for
6903 visiting any directory in _dh.
6906 visiting any directory in _dh.
6904
6907
6905 * Introduced _dh, a history of visited directories. @dhist prints
6908 * Introduced _dh, a history of visited directories. @dhist prints
6906 it out with numbers.
6909 it out with numbers.
6907
6910
6908 2001-12-07 Fernando Perez <fperez@colorado.edu>
6911 2001-12-07 Fernando Perez <fperez@colorado.edu>
6909
6912
6910 * Released 0.1.22
6913 * Released 0.1.22
6911
6914
6912 * Made initialization a bit more robust against invalid color
6915 * Made initialization a bit more robust against invalid color
6913 options in user input (exit, not traceback-crash).
6916 options in user input (exit, not traceback-crash).
6914
6917
6915 * Changed the bug crash reporter to write the report only in the
6918 * Changed the bug crash reporter to write the report only in the
6916 user's .ipython directory. That way IPython won't litter people's
6919 user's .ipython directory. That way IPython won't litter people's
6917 hard disks with crash files all over the place. Also print on
6920 hard disks with crash files all over the place. Also print on
6918 screen the necessary mail command.
6921 screen the necessary mail command.
6919
6922
6920 * With the new ultraTB, implemented LightBG color scheme for light
6923 * With the new ultraTB, implemented LightBG color scheme for light
6921 background terminals. A lot of people like white backgrounds, so I
6924 background terminals. A lot of people like white backgrounds, so I
6922 guess we should at least give them something readable.
6925 guess we should at least give them something readable.
6923
6926
6924 2001-12-06 Fernando Perez <fperez@colorado.edu>
6927 2001-12-06 Fernando Perez <fperez@colorado.edu>
6925
6928
6926 * Modified the structure of ultraTB. Now there's a proper class
6929 * Modified the structure of ultraTB. Now there's a proper class
6927 for tables of color schemes which allow adding schemes easily and
6930 for tables of color schemes which allow adding schemes easily and
6928 switching the active scheme without creating a new instance every
6931 switching the active scheme without creating a new instance every
6929 time (which was ridiculous). The syntax for creating new schemes
6932 time (which was ridiculous). The syntax for creating new schemes
6930 is also cleaner. I think ultraTB is finally done, with a clean
6933 is also cleaner. I think ultraTB is finally done, with a clean
6931 class structure. Names are also much cleaner (now there's proper
6934 class structure. Names are also much cleaner (now there's proper
6932 color tables, no need for every variable to also have 'color' in
6935 color tables, no need for every variable to also have 'color' in
6933 its name).
6936 its name).
6934
6937
6935 * Broke down genutils into separate files. Now genutils only
6938 * Broke down genutils into separate files. Now genutils only
6936 contains utility functions, and classes have been moved to their
6939 contains utility functions, and classes have been moved to their
6937 own files (they had enough independent functionality to warrant
6940 own files (they had enough independent functionality to warrant
6938 it): ConfigLoader, OutputTrap, Struct.
6941 it): ConfigLoader, OutputTrap, Struct.
6939
6942
6940 2001-12-05 Fernando Perez <fperez@colorado.edu>
6943 2001-12-05 Fernando Perez <fperez@colorado.edu>
6941
6944
6942 * IPython turns 21! Released version 0.1.21, as a candidate for
6945 * IPython turns 21! Released version 0.1.21, as a candidate for
6943 public consumption. If all goes well, release in a few days.
6946 public consumption. If all goes well, release in a few days.
6944
6947
6945 * Fixed path bug (files in Extensions/ directory wouldn't be found
6948 * Fixed path bug (files in Extensions/ directory wouldn't be found
6946 unless IPython/ was explicitly in sys.path).
6949 unless IPython/ was explicitly in sys.path).
6947
6950
6948 * Extended the FlexCompleter class as MagicCompleter to allow
6951 * Extended the FlexCompleter class as MagicCompleter to allow
6949 completion of @-starting lines.
6952 completion of @-starting lines.
6950
6953
6951 * Created __release__.py file as a central repository for release
6954 * Created __release__.py file as a central repository for release
6952 info that other files can read from.
6955 info that other files can read from.
6953
6956
6954 * Fixed small bug in logging: when logging was turned on in
6957 * Fixed small bug in logging: when logging was turned on in
6955 mid-session, old lines with special meanings (!@?) were being
6958 mid-session, old lines with special meanings (!@?) were being
6956 logged without the prepended comment, which is necessary since
6959 logged without the prepended comment, which is necessary since
6957 they are not truly valid python syntax. This should make session
6960 they are not truly valid python syntax. This should make session
6958 restores produce less errors.
6961 restores produce less errors.
6959
6962
6960 * The namespace cleanup forced me to make a FlexCompleter class
6963 * The namespace cleanup forced me to make a FlexCompleter class
6961 which is nothing but a ripoff of rlcompleter, but with selectable
6964 which is nothing but a ripoff of rlcompleter, but with selectable
6962 namespace (rlcompleter only works in __main__.__dict__). I'll try
6965 namespace (rlcompleter only works in __main__.__dict__). I'll try
6963 to submit a note to the authors to see if this change can be
6966 to submit a note to the authors to see if this change can be
6964 incorporated in future rlcompleter releases (Dec.6: done)
6967 incorporated in future rlcompleter releases (Dec.6: done)
6965
6968
6966 * More fixes to namespace handling. It was a mess! Now all
6969 * More fixes to namespace handling. It was a mess! Now all
6967 explicit references to __main__.__dict__ are gone (except when
6970 explicit references to __main__.__dict__ are gone (except when
6968 really needed) and everything is handled through the namespace
6971 really needed) and everything is handled through the namespace
6969 dicts in the IPython instance. We seem to be getting somewhere
6972 dicts in the IPython instance. We seem to be getting somewhere
6970 with this, finally...
6973 with this, finally...
6971
6974
6972 * Small documentation updates.
6975 * Small documentation updates.
6973
6976
6974 * Created the Extensions directory under IPython (with an
6977 * Created the Extensions directory under IPython (with an
6975 __init__.py). Put the PhysicalQ stuff there. This directory should
6978 __init__.py). Put the PhysicalQ stuff there. This directory should
6976 be used for all special-purpose extensions.
6979 be used for all special-purpose extensions.
6977
6980
6978 * File renaming:
6981 * File renaming:
6979 ipythonlib --> ipmaker
6982 ipythonlib --> ipmaker
6980 ipplib --> iplib
6983 ipplib --> iplib
6981 This makes a bit more sense in terms of what these files actually do.
6984 This makes a bit more sense in terms of what these files actually do.
6982
6985
6983 * Moved all the classes and functions in ipythonlib to ipplib, so
6986 * Moved all the classes and functions in ipythonlib to ipplib, so
6984 now ipythonlib only has make_IPython(). This will ease up its
6987 now ipythonlib only has make_IPython(). This will ease up its
6985 splitting in smaller functional chunks later.
6988 splitting in smaller functional chunks later.
6986
6989
6987 * Cleaned up (done, I think) output of @whos. Better column
6990 * Cleaned up (done, I think) output of @whos. Better column
6988 formatting, and now shows str(var) for as much as it can, which is
6991 formatting, and now shows str(var) for as much as it can, which is
6989 typically what one gets with a 'print var'.
6992 typically what one gets with a 'print var'.
6990
6993
6991 2001-12-04 Fernando Perez <fperez@colorado.edu>
6994 2001-12-04 Fernando Perez <fperez@colorado.edu>
6992
6995
6993 * Fixed namespace problems. Now builtin/IPyhton/user names get
6996 * Fixed namespace problems. Now builtin/IPyhton/user names get
6994 properly reported in their namespace. Internal namespace handling
6997 properly reported in their namespace. Internal namespace handling
6995 is finally getting decent (not perfect yet, but much better than
6998 is finally getting decent (not perfect yet, but much better than
6996 the ad-hoc mess we had).
6999 the ad-hoc mess we had).
6997
7000
6998 * Removed -exit option. If people just want to run a python
7001 * Removed -exit option. If people just want to run a python
6999 script, that's what the normal interpreter is for. Less
7002 script, that's what the normal interpreter is for. Less
7000 unnecessary options, less chances for bugs.
7003 unnecessary options, less chances for bugs.
7001
7004
7002 * Added a crash handler which generates a complete post-mortem if
7005 * Added a crash handler which generates a complete post-mortem if
7003 IPython crashes. This will help a lot in tracking bugs down the
7006 IPython crashes. This will help a lot in tracking bugs down the
7004 road.
7007 road.
7005
7008
7006 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7009 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7007 which were boud to functions being reassigned would bypass the
7010 which were boud to functions being reassigned would bypass the
7008 logger, breaking the sync of _il with the prompt counter. This
7011 logger, breaking the sync of _il with the prompt counter. This
7009 would then crash IPython later when a new line was logged.
7012 would then crash IPython later when a new line was logged.
7010
7013
7011 2001-12-02 Fernando Perez <fperez@colorado.edu>
7014 2001-12-02 Fernando Perez <fperez@colorado.edu>
7012
7015
7013 * Made IPython a package. This means people don't have to clutter
7016 * Made IPython a package. This means people don't have to clutter
7014 their sys.path with yet another directory. Changed the INSTALL
7017 their sys.path with yet another directory. Changed the INSTALL
7015 file accordingly.
7018 file accordingly.
7016
7019
7017 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7020 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7018 sorts its output (so @who shows it sorted) and @whos formats the
7021 sorts its output (so @who shows it sorted) and @whos formats the
7019 table according to the width of the first column. Nicer, easier to
7022 table according to the width of the first column. Nicer, easier to
7020 read. Todo: write a generic table_format() which takes a list of
7023 read. Todo: write a generic table_format() which takes a list of
7021 lists and prints it nicely formatted, with optional row/column
7024 lists and prints it nicely formatted, with optional row/column
7022 separators and proper padding and justification.
7025 separators and proper padding and justification.
7023
7026
7024 * Released 0.1.20
7027 * Released 0.1.20
7025
7028
7026 * Fixed bug in @log which would reverse the inputcache list (a
7029 * Fixed bug in @log which would reverse the inputcache list (a
7027 copy operation was missing).
7030 copy operation was missing).
7028
7031
7029 * Code cleanup. @config was changed to use page(). Better, since
7032 * Code cleanup. @config was changed to use page(). Better, since
7030 its output is always quite long.
7033 its output is always quite long.
7031
7034
7032 * Itpl is back as a dependency. I was having too many problems
7035 * Itpl is back as a dependency. I was having too many problems
7033 getting the parametric aliases to work reliably, and it's just
7036 getting the parametric aliases to work reliably, and it's just
7034 easier to code weird string operations with it than playing %()s
7037 easier to code weird string operations with it than playing %()s
7035 games. It's only ~6k, so I don't think it's too big a deal.
7038 games. It's only ~6k, so I don't think it's too big a deal.
7036
7039
7037 * Found (and fixed) a very nasty bug with history. !lines weren't
7040 * Found (and fixed) a very nasty bug with history. !lines weren't
7038 getting cached, and the out of sync caches would crash
7041 getting cached, and the out of sync caches would crash
7039 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7042 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7040 division of labor a bit better. Bug fixed, cleaner structure.
7043 division of labor a bit better. Bug fixed, cleaner structure.
7041
7044
7042 2001-12-01 Fernando Perez <fperez@colorado.edu>
7045 2001-12-01 Fernando Perez <fperez@colorado.edu>
7043
7046
7044 * Released 0.1.19
7047 * Released 0.1.19
7045
7048
7046 * Added option -n to @hist to prevent line number printing. Much
7049 * Added option -n to @hist to prevent line number printing. Much
7047 easier to copy/paste code this way.
7050 easier to copy/paste code this way.
7048
7051
7049 * Created global _il to hold the input list. Allows easy
7052 * Created global _il to hold the input list. Allows easy
7050 re-execution of blocks of code by slicing it (inspired by Janko's
7053 re-execution of blocks of code by slicing it (inspired by Janko's
7051 comment on 'macros').
7054 comment on 'macros').
7052
7055
7053 * Small fixes and doc updates.
7056 * Small fixes and doc updates.
7054
7057
7055 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7058 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7056 much too fragile with automagic. Handles properly multi-line
7059 much too fragile with automagic. Handles properly multi-line
7057 statements and takes parameters.
7060 statements and takes parameters.
7058
7061
7059 2001-11-30 Fernando Perez <fperez@colorado.edu>
7062 2001-11-30 Fernando Perez <fperez@colorado.edu>
7060
7063
7061 * Version 0.1.18 released.
7064 * Version 0.1.18 released.
7062
7065
7063 * Fixed nasty namespace bug in initial module imports.
7066 * Fixed nasty namespace bug in initial module imports.
7064
7067
7065 * Added copyright/license notes to all code files (except
7068 * Added copyright/license notes to all code files (except
7066 DPyGetOpt). For the time being, LGPL. That could change.
7069 DPyGetOpt). For the time being, LGPL. That could change.
7067
7070
7068 * Rewrote a much nicer README, updated INSTALL, cleaned up
7071 * Rewrote a much nicer README, updated INSTALL, cleaned up
7069 ipythonrc-* samples.
7072 ipythonrc-* samples.
7070
7073
7071 * Overall code/documentation cleanup. Basically ready for
7074 * Overall code/documentation cleanup. Basically ready for
7072 release. Only remaining thing: licence decision (LGPL?).
7075 release. Only remaining thing: licence decision (LGPL?).
7073
7076
7074 * Converted load_config to a class, ConfigLoader. Now recursion
7077 * Converted load_config to a class, ConfigLoader. Now recursion
7075 control is better organized. Doesn't include the same file twice.
7078 control is better organized. Doesn't include the same file twice.
7076
7079
7077 2001-11-29 Fernando Perez <fperez@colorado.edu>
7080 2001-11-29 Fernando Perez <fperez@colorado.edu>
7078
7081
7079 * Got input history working. Changed output history variables from
7082 * Got input history working. Changed output history variables from
7080 _p to _o so that _i is for input and _o for output. Just cleaner
7083 _p to _o so that _i is for input and _o for output. Just cleaner
7081 convention.
7084 convention.
7082
7085
7083 * Implemented parametric aliases. This pretty much allows the
7086 * Implemented parametric aliases. This pretty much allows the
7084 alias system to offer full-blown shell convenience, I think.
7087 alias system to offer full-blown shell convenience, I think.
7085
7088
7086 * Version 0.1.17 released, 0.1.18 opened.
7089 * Version 0.1.17 released, 0.1.18 opened.
7087
7090
7088 * dot_ipython/ipythonrc (alias): added documentation.
7091 * dot_ipython/ipythonrc (alias): added documentation.
7089 (xcolor): Fixed small bug (xcolors -> xcolor)
7092 (xcolor): Fixed small bug (xcolors -> xcolor)
7090
7093
7091 * Changed the alias system. Now alias is a magic command to define
7094 * Changed the alias system. Now alias is a magic command to define
7092 aliases just like the shell. Rationale: the builtin magics should
7095 aliases just like the shell. Rationale: the builtin magics should
7093 be there for things deeply connected to IPython's
7096 be there for things deeply connected to IPython's
7094 architecture. And this is a much lighter system for what I think
7097 architecture. And this is a much lighter system for what I think
7095 is the really important feature: allowing users to define quickly
7098 is the really important feature: allowing users to define quickly
7096 magics that will do shell things for them, so they can customize
7099 magics that will do shell things for them, so they can customize
7097 IPython easily to match their work habits. If someone is really
7100 IPython easily to match their work habits. If someone is really
7098 desperate to have another name for a builtin alias, they can
7101 desperate to have another name for a builtin alias, they can
7099 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7102 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7100 works.
7103 works.
7101
7104
7102 2001-11-28 Fernando Perez <fperez@colorado.edu>
7105 2001-11-28 Fernando Perez <fperez@colorado.edu>
7103
7106
7104 * Changed @file so that it opens the source file at the proper
7107 * Changed @file so that it opens the source file at the proper
7105 line. Since it uses less, if your EDITOR environment is
7108 line. Since it uses less, if your EDITOR environment is
7106 configured, typing v will immediately open your editor of choice
7109 configured, typing v will immediately open your editor of choice
7107 right at the line where the object is defined. Not as quick as
7110 right at the line where the object is defined. Not as quick as
7108 having a direct @edit command, but for all intents and purposes it
7111 having a direct @edit command, but for all intents and purposes it
7109 works. And I don't have to worry about writing @edit to deal with
7112 works. And I don't have to worry about writing @edit to deal with
7110 all the editors, less does that.
7113 all the editors, less does that.
7111
7114
7112 * Version 0.1.16 released, 0.1.17 opened.
7115 * Version 0.1.16 released, 0.1.17 opened.
7113
7116
7114 * Fixed some nasty bugs in the page/page_dumb combo that could
7117 * Fixed some nasty bugs in the page/page_dumb combo that could
7115 crash IPython.
7118 crash IPython.
7116
7119
7117 2001-11-27 Fernando Perez <fperez@colorado.edu>
7120 2001-11-27 Fernando Perez <fperez@colorado.edu>
7118
7121
7119 * Version 0.1.15 released, 0.1.16 opened.
7122 * Version 0.1.15 released, 0.1.16 opened.
7120
7123
7121 * Finally got ? and ?? to work for undefined things: now it's
7124 * Finally got ? and ?? to work for undefined things: now it's
7122 possible to type {}.get? and get information about the get method
7125 possible to type {}.get? and get information about the get method
7123 of dicts, or os.path? even if only os is defined (so technically
7126 of dicts, or os.path? even if only os is defined (so technically
7124 os.path isn't). Works at any level. For example, after import os,
7127 os.path isn't). Works at any level. For example, after import os,
7125 os?, os.path?, os.path.abspath? all work. This is great, took some
7128 os?, os.path?, os.path.abspath? all work. This is great, took some
7126 work in _ofind.
7129 work in _ofind.
7127
7130
7128 * Fixed more bugs with logging. The sanest way to do it was to add
7131 * Fixed more bugs with logging. The sanest way to do it was to add
7129 to @log a 'mode' parameter. Killed two in one shot (this mode
7132 to @log a 'mode' parameter. Killed two in one shot (this mode
7130 option was a request of Janko's). I think it's finally clean
7133 option was a request of Janko's). I think it's finally clean
7131 (famous last words).
7134 (famous last words).
7132
7135
7133 * Added a page_dumb() pager which does a decent job of paging on
7136 * Added a page_dumb() pager which does a decent job of paging on
7134 screen, if better things (like less) aren't available. One less
7137 screen, if better things (like less) aren't available. One less
7135 unix dependency (someday maybe somebody will port this to
7138 unix dependency (someday maybe somebody will port this to
7136 windows).
7139 windows).
7137
7140
7138 * Fixed problem in magic_log: would lock of logging out if log
7141 * Fixed problem in magic_log: would lock of logging out if log
7139 creation failed (because it would still think it had succeeded).
7142 creation failed (because it would still think it had succeeded).
7140
7143
7141 * Improved the page() function using curses to auto-detect screen
7144 * Improved the page() function using curses to auto-detect screen
7142 size. Now it can make a much better decision on whether to print
7145 size. Now it can make a much better decision on whether to print
7143 or page a string. Option screen_length was modified: a value 0
7146 or page a string. Option screen_length was modified: a value 0
7144 means auto-detect, and that's the default now.
7147 means auto-detect, and that's the default now.
7145
7148
7146 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7149 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7147 go out. I'll test it for a few days, then talk to Janko about
7150 go out. I'll test it for a few days, then talk to Janko about
7148 licences and announce it.
7151 licences and announce it.
7149
7152
7150 * Fixed the length of the auto-generated ---> prompt which appears
7153 * Fixed the length of the auto-generated ---> prompt which appears
7151 for auto-parens and auto-quotes. Getting this right isn't trivial,
7154 for auto-parens and auto-quotes. Getting this right isn't trivial,
7152 with all the color escapes, different prompt types and optional
7155 with all the color escapes, different prompt types and optional
7153 separators. But it seems to be working in all the combinations.
7156 separators. But it seems to be working in all the combinations.
7154
7157
7155 2001-11-26 Fernando Perez <fperez@colorado.edu>
7158 2001-11-26 Fernando Perez <fperez@colorado.edu>
7156
7159
7157 * Wrote a regexp filter to get option types from the option names
7160 * Wrote a regexp filter to get option types from the option names
7158 string. This eliminates the need to manually keep two duplicate
7161 string. This eliminates the need to manually keep two duplicate
7159 lists.
7162 lists.
7160
7163
7161 * Removed the unneeded check_option_names. Now options are handled
7164 * Removed the unneeded check_option_names. Now options are handled
7162 in a much saner manner and it's easy to visually check that things
7165 in a much saner manner and it's easy to visually check that things
7163 are ok.
7166 are ok.
7164
7167
7165 * Updated version numbers on all files I modified to carry a
7168 * Updated version numbers on all files I modified to carry a
7166 notice so Janko and Nathan have clear version markers.
7169 notice so Janko and Nathan have clear version markers.
7167
7170
7168 * Updated docstring for ultraTB with my changes. I should send
7171 * Updated docstring for ultraTB with my changes. I should send
7169 this to Nathan.
7172 this to Nathan.
7170
7173
7171 * Lots of small fixes. Ran everything through pychecker again.
7174 * Lots of small fixes. Ran everything through pychecker again.
7172
7175
7173 * Made loading of deep_reload an cmd line option. If it's not too
7176 * Made loading of deep_reload an cmd line option. If it's not too
7174 kosher, now people can just disable it. With -nodeep_reload it's
7177 kosher, now people can just disable it. With -nodeep_reload it's
7175 still available as dreload(), it just won't overwrite reload().
7178 still available as dreload(), it just won't overwrite reload().
7176
7179
7177 * Moved many options to the no| form (-opt and -noopt
7180 * Moved many options to the no| form (-opt and -noopt
7178 accepted). Cleaner.
7181 accepted). Cleaner.
7179
7182
7180 * Changed magic_log so that if called with no parameters, it uses
7183 * Changed magic_log so that if called with no parameters, it uses
7181 'rotate' mode. That way auto-generated logs aren't automatically
7184 'rotate' mode. That way auto-generated logs aren't automatically
7182 over-written. For normal logs, now a backup is made if it exists
7185 over-written. For normal logs, now a backup is made if it exists
7183 (only 1 level of backups). A new 'backup' mode was added to the
7186 (only 1 level of backups). A new 'backup' mode was added to the
7184 Logger class to support this. This was a request by Janko.
7187 Logger class to support this. This was a request by Janko.
7185
7188
7186 * Added @logoff/@logon to stop/restart an active log.
7189 * Added @logoff/@logon to stop/restart an active log.
7187
7190
7188 * Fixed a lot of bugs in log saving/replay. It was pretty
7191 * Fixed a lot of bugs in log saving/replay. It was pretty
7189 broken. Now special lines (!@,/) appear properly in the command
7192 broken. Now special lines (!@,/) appear properly in the command
7190 history after a log replay.
7193 history after a log replay.
7191
7194
7192 * Tried and failed to implement full session saving via pickle. My
7195 * Tried and failed to implement full session saving via pickle. My
7193 idea was to pickle __main__.__dict__, but modules can't be
7196 idea was to pickle __main__.__dict__, but modules can't be
7194 pickled. This would be a better alternative to replaying logs, but
7197 pickled. This would be a better alternative to replaying logs, but
7195 seems quite tricky to get to work. Changed -session to be called
7198 seems quite tricky to get to work. Changed -session to be called
7196 -logplay, which more accurately reflects what it does. And if we
7199 -logplay, which more accurately reflects what it does. And if we
7197 ever get real session saving working, -session is now available.
7200 ever get real session saving working, -session is now available.
7198
7201
7199 * Implemented color schemes for prompts also. As for tracebacks,
7202 * Implemented color schemes for prompts also. As for tracebacks,
7200 currently only NoColor and Linux are supported. But now the
7203 currently only NoColor and Linux are supported. But now the
7201 infrastructure is in place, based on a generic ColorScheme
7204 infrastructure is in place, based on a generic ColorScheme
7202 class. So writing and activating new schemes both for the prompts
7205 class. So writing and activating new schemes both for the prompts
7203 and the tracebacks should be straightforward.
7206 and the tracebacks should be straightforward.
7204
7207
7205 * Version 0.1.13 released, 0.1.14 opened.
7208 * Version 0.1.13 released, 0.1.14 opened.
7206
7209
7207 * Changed handling of options for output cache. Now counter is
7210 * Changed handling of options for output cache. Now counter is
7208 hardwired starting at 1 and one specifies the maximum number of
7211 hardwired starting at 1 and one specifies the maximum number of
7209 entries *in the outcache* (not the max prompt counter). This is
7212 entries *in the outcache* (not the max prompt counter). This is
7210 much better, since many statements won't increase the cache
7213 much better, since many statements won't increase the cache
7211 count. It also eliminated some confusing options, now there's only
7214 count. It also eliminated some confusing options, now there's only
7212 one: cache_size.
7215 one: cache_size.
7213
7216
7214 * Added 'alias' magic function and magic_alias option in the
7217 * Added 'alias' magic function and magic_alias option in the
7215 ipythonrc file. Now the user can easily define whatever names he
7218 ipythonrc file. Now the user can easily define whatever names he
7216 wants for the magic functions without having to play weird
7219 wants for the magic functions without having to play weird
7217 namespace games. This gives IPython a real shell-like feel.
7220 namespace games. This gives IPython a real shell-like feel.
7218
7221
7219 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7222 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7220 @ or not).
7223 @ or not).
7221
7224
7222 This was one of the last remaining 'visible' bugs (that I know
7225 This was one of the last remaining 'visible' bugs (that I know
7223 of). I think if I can clean up the session loading so it works
7226 of). I think if I can clean up the session loading so it works
7224 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7227 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7225 about licensing).
7228 about licensing).
7226
7229
7227 2001-11-25 Fernando Perez <fperez@colorado.edu>
7230 2001-11-25 Fernando Perez <fperez@colorado.edu>
7228
7231
7229 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7232 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7230 there's a cleaner distinction between what ? and ?? show.
7233 there's a cleaner distinction between what ? and ?? show.
7231
7234
7232 * Added screen_length option. Now the user can define his own
7235 * Added screen_length option. Now the user can define his own
7233 screen size for page() operations.
7236 screen size for page() operations.
7234
7237
7235 * Implemented magic shell-like functions with automatic code
7238 * Implemented magic shell-like functions with automatic code
7236 generation. Now adding another function is just a matter of adding
7239 generation. Now adding another function is just a matter of adding
7237 an entry to a dict, and the function is dynamically generated at
7240 an entry to a dict, and the function is dynamically generated at
7238 run-time. Python has some really cool features!
7241 run-time. Python has some really cool features!
7239
7242
7240 * Renamed many options to cleanup conventions a little. Now all
7243 * Renamed many options to cleanup conventions a little. Now all
7241 are lowercase, and only underscores where needed. Also in the code
7244 are lowercase, and only underscores where needed. Also in the code
7242 option name tables are clearer.
7245 option name tables are clearer.
7243
7246
7244 * Changed prompts a little. Now input is 'In [n]:' instead of
7247 * Changed prompts a little. Now input is 'In [n]:' instead of
7245 'In[n]:='. This allows it the numbers to be aligned with the
7248 'In[n]:='. This allows it the numbers to be aligned with the
7246 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7249 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7247 Python (it was a Mathematica thing). The '...' continuation prompt
7250 Python (it was a Mathematica thing). The '...' continuation prompt
7248 was also changed a little to align better.
7251 was also changed a little to align better.
7249
7252
7250 * Fixed bug when flushing output cache. Not all _p<n> variables
7253 * Fixed bug when flushing output cache. Not all _p<n> variables
7251 exist, so their deletion needs to be wrapped in a try:
7254 exist, so their deletion needs to be wrapped in a try:
7252
7255
7253 * Figured out how to properly use inspect.formatargspec() (it
7256 * Figured out how to properly use inspect.formatargspec() (it
7254 requires the args preceded by *). So I removed all the code from
7257 requires the args preceded by *). So I removed all the code from
7255 _get_pdef in Magic, which was just replicating that.
7258 _get_pdef in Magic, which was just replicating that.
7256
7259
7257 * Added test to prefilter to allow redefining magic function names
7260 * Added test to prefilter to allow redefining magic function names
7258 as variables. This is ok, since the @ form is always available,
7261 as variables. This is ok, since the @ form is always available,
7259 but whe should allow the user to define a variable called 'ls' if
7262 but whe should allow the user to define a variable called 'ls' if
7260 he needs it.
7263 he needs it.
7261
7264
7262 * Moved the ToDo information from README into a separate ToDo.
7265 * Moved the ToDo information from README into a separate ToDo.
7263
7266
7264 * General code cleanup and small bugfixes. I think it's close to a
7267 * General code cleanup and small bugfixes. I think it's close to a
7265 state where it can be released, obviously with a big 'beta'
7268 state where it can be released, obviously with a big 'beta'
7266 warning on it.
7269 warning on it.
7267
7270
7268 * Got the magic function split to work. Now all magics are defined
7271 * Got the magic function split to work. Now all magics are defined
7269 in a separate class. It just organizes things a bit, and now
7272 in a separate class. It just organizes things a bit, and now
7270 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7273 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7271 was too long).
7274 was too long).
7272
7275
7273 * Changed @clear to @reset to avoid potential confusions with
7276 * Changed @clear to @reset to avoid potential confusions with
7274 the shell command clear. Also renamed @cl to @clear, which does
7277 the shell command clear. Also renamed @cl to @clear, which does
7275 exactly what people expect it to from their shell experience.
7278 exactly what people expect it to from their shell experience.
7276
7279
7277 Added a check to the @reset command (since it's so
7280 Added a check to the @reset command (since it's so
7278 destructive, it's probably a good idea to ask for confirmation).
7281 destructive, it's probably a good idea to ask for confirmation).
7279 But now reset only works for full namespace resetting. Since the
7282 But now reset only works for full namespace resetting. Since the
7280 del keyword is already there for deleting a few specific
7283 del keyword is already there for deleting a few specific
7281 variables, I don't see the point of having a redundant magic
7284 variables, I don't see the point of having a redundant magic
7282 function for the same task.
7285 function for the same task.
7283
7286
7284 2001-11-24 Fernando Perez <fperez@colorado.edu>
7287 2001-11-24 Fernando Perez <fperez@colorado.edu>
7285
7288
7286 * Updated the builtin docs (esp. the ? ones).
7289 * Updated the builtin docs (esp. the ? ones).
7287
7290
7288 * Ran all the code through pychecker. Not terribly impressed with
7291 * Ran all the code through pychecker. Not terribly impressed with
7289 it: lots of spurious warnings and didn't really find anything of
7292 it: lots of spurious warnings and didn't really find anything of
7290 substance (just a few modules being imported and not used).
7293 substance (just a few modules being imported and not used).
7291
7294
7292 * Implemented the new ultraTB functionality into IPython. New
7295 * Implemented the new ultraTB functionality into IPython. New
7293 option: xcolors. This chooses color scheme. xmode now only selects
7296 option: xcolors. This chooses color scheme. xmode now only selects
7294 between Plain and Verbose. Better orthogonality.
7297 between Plain and Verbose. Better orthogonality.
7295
7298
7296 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7299 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7297 mode and color scheme for the exception handlers. Now it's
7300 mode and color scheme for the exception handlers. Now it's
7298 possible to have the verbose traceback with no coloring.
7301 possible to have the verbose traceback with no coloring.
7299
7302
7300 2001-11-23 Fernando Perez <fperez@colorado.edu>
7303 2001-11-23 Fernando Perez <fperez@colorado.edu>
7301
7304
7302 * Version 0.1.12 released, 0.1.13 opened.
7305 * Version 0.1.12 released, 0.1.13 opened.
7303
7306
7304 * Removed option to set auto-quote and auto-paren escapes by
7307 * Removed option to set auto-quote and auto-paren escapes by
7305 user. The chances of breaking valid syntax are just too high. If
7308 user. The chances of breaking valid syntax are just too high. If
7306 someone *really* wants, they can always dig into the code.
7309 someone *really* wants, they can always dig into the code.
7307
7310
7308 * Made prompt separators configurable.
7311 * Made prompt separators configurable.
7309
7312
7310 2001-11-22 Fernando Perez <fperez@colorado.edu>
7313 2001-11-22 Fernando Perez <fperez@colorado.edu>
7311
7314
7312 * Small bugfixes in many places.
7315 * Small bugfixes in many places.
7313
7316
7314 * Removed the MyCompleter class from ipplib. It seemed redundant
7317 * Removed the MyCompleter class from ipplib. It seemed redundant
7315 with the C-p,C-n history search functionality. Less code to
7318 with the C-p,C-n history search functionality. Less code to
7316 maintain.
7319 maintain.
7317
7320
7318 * Moved all the original ipython.py code into ipythonlib.py. Right
7321 * Moved all the original ipython.py code into ipythonlib.py. Right
7319 now it's just one big dump into a function called make_IPython, so
7322 now it's just one big dump into a function called make_IPython, so
7320 no real modularity has been gained. But at least it makes the
7323 no real modularity has been gained. But at least it makes the
7321 wrapper script tiny, and since ipythonlib is a module, it gets
7324 wrapper script tiny, and since ipythonlib is a module, it gets
7322 compiled and startup is much faster.
7325 compiled and startup is much faster.
7323
7326
7324 This is a reasobably 'deep' change, so we should test it for a
7327 This is a reasobably 'deep' change, so we should test it for a
7325 while without messing too much more with the code.
7328 while without messing too much more with the code.
7326
7329
7327 2001-11-21 Fernando Perez <fperez@colorado.edu>
7330 2001-11-21 Fernando Perez <fperez@colorado.edu>
7328
7331
7329 * Version 0.1.11 released, 0.1.12 opened for further work.
7332 * Version 0.1.11 released, 0.1.12 opened for further work.
7330
7333
7331 * Removed dependency on Itpl. It was only needed in one place. It
7334 * Removed dependency on Itpl. It was only needed in one place. It
7332 would be nice if this became part of python, though. It makes life
7335 would be nice if this became part of python, though. It makes life
7333 *a lot* easier in some cases.
7336 *a lot* easier in some cases.
7334
7337
7335 * Simplified the prefilter code a bit. Now all handlers are
7338 * Simplified the prefilter code a bit. Now all handlers are
7336 expected to explicitly return a value (at least a blank string).
7339 expected to explicitly return a value (at least a blank string).
7337
7340
7338 * Heavy edits in ipplib. Removed the help system altogether. Now
7341 * Heavy edits in ipplib. Removed the help system altogether. Now
7339 obj?/?? is used for inspecting objects, a magic @doc prints
7342 obj?/?? is used for inspecting objects, a magic @doc prints
7340 docstrings, and full-blown Python help is accessed via the 'help'
7343 docstrings, and full-blown Python help is accessed via the 'help'
7341 keyword. This cleans up a lot of code (less to maintain) and does
7344 keyword. This cleans up a lot of code (less to maintain) and does
7342 the job. Since 'help' is now a standard Python component, might as
7345 the job. Since 'help' is now a standard Python component, might as
7343 well use it and remove duplicate functionality.
7346 well use it and remove duplicate functionality.
7344
7347
7345 Also removed the option to use ipplib as a standalone program. By
7348 Also removed the option to use ipplib as a standalone program. By
7346 now it's too dependent on other parts of IPython to function alone.
7349 now it's too dependent on other parts of IPython to function alone.
7347
7350
7348 * Fixed bug in genutils.pager. It would crash if the pager was
7351 * Fixed bug in genutils.pager. It would crash if the pager was
7349 exited immediately after opening (broken pipe).
7352 exited immediately after opening (broken pipe).
7350
7353
7351 * Trimmed down the VerboseTB reporting a little. The header is
7354 * Trimmed down the VerboseTB reporting a little. The header is
7352 much shorter now and the repeated exception arguments at the end
7355 much shorter now and the repeated exception arguments at the end
7353 have been removed. For interactive use the old header seemed a bit
7356 have been removed. For interactive use the old header seemed a bit
7354 excessive.
7357 excessive.
7355
7358
7356 * Fixed small bug in output of @whos for variables with multi-word
7359 * Fixed small bug in output of @whos for variables with multi-word
7357 types (only first word was displayed).
7360 types (only first word was displayed).
7358
7361
7359 2001-11-17 Fernando Perez <fperez@colorado.edu>
7362 2001-11-17 Fernando Perez <fperez@colorado.edu>
7360
7363
7361 * Version 0.1.10 released, 0.1.11 opened for further work.
7364 * Version 0.1.10 released, 0.1.11 opened for further work.
7362
7365
7363 * Modified dirs and friends. dirs now *returns* the stack (not
7366 * Modified dirs and friends. dirs now *returns* the stack (not
7364 prints), so one can manipulate it as a variable. Convenient to
7367 prints), so one can manipulate it as a variable. Convenient to
7365 travel along many directories.
7368 travel along many directories.
7366
7369
7367 * Fixed bug in magic_pdef: would only work with functions with
7370 * Fixed bug in magic_pdef: would only work with functions with
7368 arguments with default values.
7371 arguments with default values.
7369
7372
7370 2001-11-14 Fernando Perez <fperez@colorado.edu>
7373 2001-11-14 Fernando Perez <fperez@colorado.edu>
7371
7374
7372 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7375 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7373 example with IPython. Various other minor fixes and cleanups.
7376 example with IPython. Various other minor fixes and cleanups.
7374
7377
7375 * Version 0.1.9 released, 0.1.10 opened for further work.
7378 * Version 0.1.9 released, 0.1.10 opened for further work.
7376
7379
7377 * Added sys.path to the list of directories searched in the
7380 * Added sys.path to the list of directories searched in the
7378 execfile= option. It used to be the current directory and the
7381 execfile= option. It used to be the current directory and the
7379 user's IPYTHONDIR only.
7382 user's IPYTHONDIR only.
7380
7383
7381 2001-11-13 Fernando Perez <fperez@colorado.edu>
7384 2001-11-13 Fernando Perez <fperez@colorado.edu>
7382
7385
7383 * Reinstated the raw_input/prefilter separation that Janko had
7386 * Reinstated the raw_input/prefilter separation that Janko had
7384 initially. This gives a more convenient setup for extending the
7387 initially. This gives a more convenient setup for extending the
7385 pre-processor from the outside: raw_input always gets a string,
7388 pre-processor from the outside: raw_input always gets a string,
7386 and prefilter has to process it. We can then redefine prefilter
7389 and prefilter has to process it. We can then redefine prefilter
7387 from the outside and implement extensions for special
7390 from the outside and implement extensions for special
7388 purposes.
7391 purposes.
7389
7392
7390 Today I got one for inputting PhysicalQuantity objects
7393 Today I got one for inputting PhysicalQuantity objects
7391 (from Scientific) without needing any function calls at
7394 (from Scientific) without needing any function calls at
7392 all. Extremely convenient, and it's all done as a user-level
7395 all. Extremely convenient, and it's all done as a user-level
7393 extension (no IPython code was touched). Now instead of:
7396 extension (no IPython code was touched). Now instead of:
7394 a = PhysicalQuantity(4.2,'m/s**2')
7397 a = PhysicalQuantity(4.2,'m/s**2')
7395 one can simply say
7398 one can simply say
7396 a = 4.2 m/s**2
7399 a = 4.2 m/s**2
7397 or even
7400 or even
7398 a = 4.2 m/s^2
7401 a = 4.2 m/s^2
7399
7402
7400 I use this, but it's also a proof of concept: IPython really is
7403 I use this, but it's also a proof of concept: IPython really is
7401 fully user-extensible, even at the level of the parsing of the
7404 fully user-extensible, even at the level of the parsing of the
7402 command line. It's not trivial, but it's perfectly doable.
7405 command line. It's not trivial, but it's perfectly doable.
7403
7406
7404 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7407 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7405 the problem of modules being loaded in the inverse order in which
7408 the problem of modules being loaded in the inverse order in which
7406 they were defined in
7409 they were defined in
7407
7410
7408 * Version 0.1.8 released, 0.1.9 opened for further work.
7411 * Version 0.1.8 released, 0.1.9 opened for further work.
7409
7412
7410 * Added magics pdef, source and file. They respectively show the
7413 * Added magics pdef, source and file. They respectively show the
7411 definition line ('prototype' in C), source code and full python
7414 definition line ('prototype' in C), source code and full python
7412 file for any callable object. The object inspector oinfo uses
7415 file for any callable object. The object inspector oinfo uses
7413 these to show the same information.
7416 these to show the same information.
7414
7417
7415 * Version 0.1.7 released, 0.1.8 opened for further work.
7418 * Version 0.1.7 released, 0.1.8 opened for further work.
7416
7419
7417 * Separated all the magic functions into a class called Magic. The
7420 * Separated all the magic functions into a class called Magic. The
7418 InteractiveShell class was becoming too big for Xemacs to handle
7421 InteractiveShell class was becoming too big for Xemacs to handle
7419 (de-indenting a line would lock it up for 10 seconds while it
7422 (de-indenting a line would lock it up for 10 seconds while it
7420 backtracked on the whole class!)
7423 backtracked on the whole class!)
7421
7424
7422 FIXME: didn't work. It can be done, but right now namespaces are
7425 FIXME: didn't work. It can be done, but right now namespaces are
7423 all messed up. Do it later (reverted it for now, so at least
7426 all messed up. Do it later (reverted it for now, so at least
7424 everything works as before).
7427 everything works as before).
7425
7428
7426 * Got the object introspection system (magic_oinfo) working! I
7429 * Got the object introspection system (magic_oinfo) working! I
7427 think this is pretty much ready for release to Janko, so he can
7430 think this is pretty much ready for release to Janko, so he can
7428 test it for a while and then announce it. Pretty much 100% of what
7431 test it for a while and then announce it. Pretty much 100% of what
7429 I wanted for the 'phase 1' release is ready. Happy, tired.
7432 I wanted for the 'phase 1' release is ready. Happy, tired.
7430
7433
7431 2001-11-12 Fernando Perez <fperez@colorado.edu>
7434 2001-11-12 Fernando Perez <fperez@colorado.edu>
7432
7435
7433 * Version 0.1.6 released, 0.1.7 opened for further work.
7436 * Version 0.1.6 released, 0.1.7 opened for further work.
7434
7437
7435 * Fixed bug in printing: it used to test for truth before
7438 * Fixed bug in printing: it used to test for truth before
7436 printing, so 0 wouldn't print. Now checks for None.
7439 printing, so 0 wouldn't print. Now checks for None.
7437
7440
7438 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7441 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7439 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7442 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7440 reaches by hand into the outputcache. Think of a better way to do
7443 reaches by hand into the outputcache. Think of a better way to do
7441 this later.
7444 this later.
7442
7445
7443 * Various small fixes thanks to Nathan's comments.
7446 * Various small fixes thanks to Nathan's comments.
7444
7447
7445 * Changed magic_pprint to magic_Pprint. This way it doesn't
7448 * Changed magic_pprint to magic_Pprint. This way it doesn't
7446 collide with pprint() and the name is consistent with the command
7449 collide with pprint() and the name is consistent with the command
7447 line option.
7450 line option.
7448
7451
7449 * Changed prompt counter behavior to be fully like
7452 * Changed prompt counter behavior to be fully like
7450 Mathematica's. That is, even input that doesn't return a result
7453 Mathematica's. That is, even input that doesn't return a result
7451 raises the prompt counter. The old behavior was kind of confusing
7454 raises the prompt counter. The old behavior was kind of confusing
7452 (getting the same prompt number several times if the operation
7455 (getting the same prompt number several times if the operation
7453 didn't return a result).
7456 didn't return a result).
7454
7457
7455 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7458 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7456
7459
7457 * Fixed -Classic mode (wasn't working anymore).
7460 * Fixed -Classic mode (wasn't working anymore).
7458
7461
7459 * Added colored prompts using Nathan's new code. Colors are
7462 * Added colored prompts using Nathan's new code. Colors are
7460 currently hardwired, they can be user-configurable. For
7463 currently hardwired, they can be user-configurable. For
7461 developers, they can be chosen in file ipythonlib.py, at the
7464 developers, they can be chosen in file ipythonlib.py, at the
7462 beginning of the CachedOutput class def.
7465 beginning of the CachedOutput class def.
7463
7466
7464 2001-11-11 Fernando Perez <fperez@colorado.edu>
7467 2001-11-11 Fernando Perez <fperez@colorado.edu>
7465
7468
7466 * Version 0.1.5 released, 0.1.6 opened for further work.
7469 * Version 0.1.5 released, 0.1.6 opened for further work.
7467
7470
7468 * Changed magic_env to *return* the environment as a dict (not to
7471 * Changed magic_env to *return* the environment as a dict (not to
7469 print it). This way it prints, but it can also be processed.
7472 print it). This way it prints, but it can also be processed.
7470
7473
7471 * Added Verbose exception reporting to interactive
7474 * Added Verbose exception reporting to interactive
7472 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7475 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7473 traceback. Had to make some changes to the ultraTB file. This is
7476 traceback. Had to make some changes to the ultraTB file. This is
7474 probably the last 'big' thing in my mental todo list. This ties
7477 probably the last 'big' thing in my mental todo list. This ties
7475 in with the next entry:
7478 in with the next entry:
7476
7479
7477 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7480 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7478 has to specify is Plain, Color or Verbose for all exception
7481 has to specify is Plain, Color or Verbose for all exception
7479 handling.
7482 handling.
7480
7483
7481 * Removed ShellServices option. All this can really be done via
7484 * Removed ShellServices option. All this can really be done via
7482 the magic system. It's easier to extend, cleaner and has automatic
7485 the magic system. It's easier to extend, cleaner and has automatic
7483 namespace protection and documentation.
7486 namespace protection and documentation.
7484
7487
7485 2001-11-09 Fernando Perez <fperez@colorado.edu>
7488 2001-11-09 Fernando Perez <fperez@colorado.edu>
7486
7489
7487 * Fixed bug in output cache flushing (missing parameter to
7490 * Fixed bug in output cache flushing (missing parameter to
7488 __init__). Other small bugs fixed (found using pychecker).
7491 __init__). Other small bugs fixed (found using pychecker).
7489
7492
7490 * Version 0.1.4 opened for bugfixing.
7493 * Version 0.1.4 opened for bugfixing.
7491
7494
7492 2001-11-07 Fernando Perez <fperez@colorado.edu>
7495 2001-11-07 Fernando Perez <fperez@colorado.edu>
7493
7496
7494 * Version 0.1.3 released, mainly because of the raw_input bug.
7497 * Version 0.1.3 released, mainly because of the raw_input bug.
7495
7498
7496 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7499 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7497 and when testing for whether things were callable, a call could
7500 and when testing for whether things were callable, a call could
7498 actually be made to certain functions. They would get called again
7501 actually be made to certain functions. They would get called again
7499 once 'really' executed, with a resulting double call. A disaster
7502 once 'really' executed, with a resulting double call. A disaster
7500 in many cases (list.reverse() would never work!).
7503 in many cases (list.reverse() would never work!).
7501
7504
7502 * Removed prefilter() function, moved its code to raw_input (which
7505 * Removed prefilter() function, moved its code to raw_input (which
7503 after all was just a near-empty caller for prefilter). This saves
7506 after all was just a near-empty caller for prefilter). This saves
7504 a function call on every prompt, and simplifies the class a tiny bit.
7507 a function call on every prompt, and simplifies the class a tiny bit.
7505
7508
7506 * Fix _ip to __ip name in magic example file.
7509 * Fix _ip to __ip name in magic example file.
7507
7510
7508 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7511 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7509 work with non-gnu versions of tar.
7512 work with non-gnu versions of tar.
7510
7513
7511 2001-11-06 Fernando Perez <fperez@colorado.edu>
7514 2001-11-06 Fernando Perez <fperez@colorado.edu>
7512
7515
7513 * Version 0.1.2. Just to keep track of the recent changes.
7516 * Version 0.1.2. Just to keep track of the recent changes.
7514
7517
7515 * Fixed nasty bug in output prompt routine. It used to check 'if
7518 * Fixed nasty bug in output prompt routine. It used to check 'if
7516 arg != None...'. Problem is, this fails if arg implements a
7519 arg != None...'. Problem is, this fails if arg implements a
7517 special comparison (__cmp__) which disallows comparing to
7520 special comparison (__cmp__) which disallows comparing to
7518 None. Found it when trying to use the PhysicalQuantity module from
7521 None. Found it when trying to use the PhysicalQuantity module from
7519 ScientificPython.
7522 ScientificPython.
7520
7523
7521 2001-11-05 Fernando Perez <fperez@colorado.edu>
7524 2001-11-05 Fernando Perez <fperez@colorado.edu>
7522
7525
7523 * Also added dirs. Now the pushd/popd/dirs family functions
7526 * Also added dirs. Now the pushd/popd/dirs family functions
7524 basically like the shell, with the added convenience of going home
7527 basically like the shell, with the added convenience of going home
7525 when called with no args.
7528 when called with no args.
7526
7529
7527 * pushd/popd slightly modified to mimic shell behavior more
7530 * pushd/popd slightly modified to mimic shell behavior more
7528 closely.
7531 closely.
7529
7532
7530 * Added env,pushd,popd from ShellServices as magic functions. I
7533 * Added env,pushd,popd from ShellServices as magic functions. I
7531 think the cleanest will be to port all desired functions from
7534 think the cleanest will be to port all desired functions from
7532 ShellServices as magics and remove ShellServices altogether. This
7535 ShellServices as magics and remove ShellServices altogether. This
7533 will provide a single, clean way of adding functionality
7536 will provide a single, clean way of adding functionality
7534 (shell-type or otherwise) to IP.
7537 (shell-type or otherwise) to IP.
7535
7538
7536 2001-11-04 Fernando Perez <fperez@colorado.edu>
7539 2001-11-04 Fernando Perez <fperez@colorado.edu>
7537
7540
7538 * Added .ipython/ directory to sys.path. This way users can keep
7541 * Added .ipython/ directory to sys.path. This way users can keep
7539 customizations there and access them via import.
7542 customizations there and access them via import.
7540
7543
7541 2001-11-03 Fernando Perez <fperez@colorado.edu>
7544 2001-11-03 Fernando Perez <fperez@colorado.edu>
7542
7545
7543 * Opened version 0.1.1 for new changes.
7546 * Opened version 0.1.1 for new changes.
7544
7547
7545 * Changed version number to 0.1.0: first 'public' release, sent to
7548 * Changed version number to 0.1.0: first 'public' release, sent to
7546 Nathan and Janko.
7549 Nathan and Janko.
7547
7550
7548 * Lots of small fixes and tweaks.
7551 * Lots of small fixes and tweaks.
7549
7552
7550 * Minor changes to whos format. Now strings are shown, snipped if
7553 * Minor changes to whos format. Now strings are shown, snipped if
7551 too long.
7554 too long.
7552
7555
7553 * Changed ShellServices to work on __main__ so they show up in @who
7556 * Changed ShellServices to work on __main__ so they show up in @who
7554
7557
7555 * Help also works with ? at the end of a line:
7558 * Help also works with ? at the end of a line:
7556 ?sin and sin?
7559 ?sin and sin?
7557 both produce the same effect. This is nice, as often I use the
7560 both produce the same effect. This is nice, as often I use the
7558 tab-complete to find the name of a method, but I used to then have
7561 tab-complete to find the name of a method, but I used to then have
7559 to go to the beginning of the line to put a ? if I wanted more
7562 to go to the beginning of the line to put a ? if I wanted more
7560 info. Now I can just add the ? and hit return. Convenient.
7563 info. Now I can just add the ? and hit return. Convenient.
7561
7564
7562 2001-11-02 Fernando Perez <fperez@colorado.edu>
7565 2001-11-02 Fernando Perez <fperez@colorado.edu>
7563
7566
7564 * Python version check (>=2.1) added.
7567 * Python version check (>=2.1) added.
7565
7568
7566 * Added LazyPython documentation. At this point the docs are quite
7569 * Added LazyPython documentation. At this point the docs are quite
7567 a mess. A cleanup is in order.
7570 a mess. A cleanup is in order.
7568
7571
7569 * Auto-installer created. For some bizarre reason, the zipfiles
7572 * Auto-installer created. For some bizarre reason, the zipfiles
7570 module isn't working on my system. So I made a tar version
7573 module isn't working on my system. So I made a tar version
7571 (hopefully the command line options in various systems won't kill
7574 (hopefully the command line options in various systems won't kill
7572 me).
7575 me).
7573
7576
7574 * Fixes to Struct in genutils. Now all dictionary-like methods are
7577 * Fixes to Struct in genutils. Now all dictionary-like methods are
7575 protected (reasonably).
7578 protected (reasonably).
7576
7579
7577 * Added pager function to genutils and changed ? to print usage
7580 * Added pager function to genutils and changed ? to print usage
7578 note through it (it was too long).
7581 note through it (it was too long).
7579
7582
7580 * Added the LazyPython functionality. Works great! I changed the
7583 * Added the LazyPython functionality. Works great! I changed the
7581 auto-quote escape to ';', it's on home row and next to '. But
7584 auto-quote escape to ';', it's on home row and next to '. But
7582 both auto-quote and auto-paren (still /) escapes are command-line
7585 both auto-quote and auto-paren (still /) escapes are command-line
7583 parameters.
7586 parameters.
7584
7587
7585
7588
7586 2001-11-01 Fernando Perez <fperez@colorado.edu>
7589 2001-11-01 Fernando Perez <fperez@colorado.edu>
7587
7590
7588 * Version changed to 0.0.7. Fairly large change: configuration now
7591 * Version changed to 0.0.7. Fairly large change: configuration now
7589 is all stored in a directory, by default .ipython. There, all
7592 is all stored in a directory, by default .ipython. There, all
7590 config files have normal looking names (not .names)
7593 config files have normal looking names (not .names)
7591
7594
7592 * Version 0.0.6 Released first to Lucas and Archie as a test
7595 * Version 0.0.6 Released first to Lucas and Archie as a test
7593 run. Since it's the first 'semi-public' release, change version to
7596 run. Since it's the first 'semi-public' release, change version to
7594 > 0.0.6 for any changes now.
7597 > 0.0.6 for any changes now.
7595
7598
7596 * Stuff I had put in the ipplib.py changelog:
7599 * Stuff I had put in the ipplib.py changelog:
7597
7600
7598 Changes to InteractiveShell:
7601 Changes to InteractiveShell:
7599
7602
7600 - Made the usage message a parameter.
7603 - Made the usage message a parameter.
7601
7604
7602 - Require the name of the shell variable to be given. It's a bit
7605 - Require the name of the shell variable to be given. It's a bit
7603 of a hack, but allows the name 'shell' not to be hardwired in the
7606 of a hack, but allows the name 'shell' not to be hardwired in the
7604 magic (@) handler, which is problematic b/c it requires
7607 magic (@) handler, which is problematic b/c it requires
7605 polluting the global namespace with 'shell'. This in turn is
7608 polluting the global namespace with 'shell'. This in turn is
7606 fragile: if a user redefines a variable called shell, things
7609 fragile: if a user redefines a variable called shell, things
7607 break.
7610 break.
7608
7611
7609 - magic @: all functions available through @ need to be defined
7612 - magic @: all functions available through @ need to be defined
7610 as magic_<name>, even though they can be called simply as
7613 as magic_<name>, even though they can be called simply as
7611 @<name>. This allows the special command @magic to gather
7614 @<name>. This allows the special command @magic to gather
7612 information automatically about all existing magic functions,
7615 information automatically about all existing magic functions,
7613 even if they are run-time user extensions, by parsing the shell
7616 even if they are run-time user extensions, by parsing the shell
7614 instance __dict__ looking for special magic_ names.
7617 instance __dict__ looking for special magic_ names.
7615
7618
7616 - mainloop: added *two* local namespace parameters. This allows
7619 - mainloop: added *two* local namespace parameters. This allows
7617 the class to differentiate between parameters which were there
7620 the class to differentiate between parameters which were there
7618 before and after command line initialization was processed. This
7621 before and after command line initialization was processed. This
7619 way, later @who can show things loaded at startup by the
7622 way, later @who can show things loaded at startup by the
7620 user. This trick was necessary to make session saving/reloading
7623 user. This trick was necessary to make session saving/reloading
7621 really work: ideally after saving/exiting/reloading a session,
7624 really work: ideally after saving/exiting/reloading a session,
7622 *everything* should look the same, including the output of @who. I
7625 *everything* should look the same, including the output of @who. I
7623 was only able to make this work with this double namespace
7626 was only able to make this work with this double namespace
7624 trick.
7627 trick.
7625
7628
7626 - added a header to the logfile which allows (almost) full
7629 - added a header to the logfile which allows (almost) full
7627 session restoring.
7630 session restoring.
7628
7631
7629 - prepend lines beginning with @ or !, with a and log
7632 - prepend lines beginning with @ or !, with a and log
7630 them. Why? !lines: may be useful to know what you did @lines:
7633 them. Why? !lines: may be useful to know what you did @lines:
7631 they may affect session state. So when restoring a session, at
7634 they may affect session state. So when restoring a session, at
7632 least inform the user of their presence. I couldn't quite get
7635 least inform the user of their presence. I couldn't quite get
7633 them to properly re-execute, but at least the user is warned.
7636 them to properly re-execute, but at least the user is warned.
7634
7637
7635 * Started ChangeLog.
7638 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now