##// END OF EJS Templates
docs: remove -twisted, add -pydb
Ville M. Vainio -
Show More

The requested changes are too big and content was truncated. Show full diff

@@ -1,7654 +1,7664 b''
1 2008-06-03 Ville Vainio <vivainio@gmail.com>
2
3 * ipython.rst, ipython.1: remove -twisted from man page,
4 add -pydb to both man page and manual.
5
6 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
7
8 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
9 disabled.
10
1 2008-05-31 *** Released version 0.8.4
11 2008-05-31 *** Released version 0.8.4
2
12
3 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
13 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
4
14
5 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
15 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
6 disabled.
16 disabled.
7
17
8 * IPython/Shell.py (_select_shell): completely disable -twisted.
18 * IPython/Shell.py (_select_shell): completely disable -twisted.
9 This code is of dubious quality and normal users should not
19 This code is of dubious quality and normal users should not
10 encounter it until we can clarify things further, even under
20 encounter it until we can clarify things further, even under
11 win32. Since we need a quick emergency 0.8.4 release, it is now
21 win32. Since we need a quick emergency 0.8.4 release, it is now
12 disabled completely. Users who want to run it can use the
22 disabled completely. Users who want to run it can use the
13 following command (it's easy to put it in an alias or script):
23 following command (it's easy to put it in an alias or script):
14
24
15 python -c"from IPython import twshell;twshell.IPShellTwisted().mainloop()"
25 python -c"from IPython import twshell;twshell.IPShellTwisted().mainloop()"
16
26
17 2008-05-30 Ville Vainio <vivainio@gmail.com>
27 2008-05-30 Ville Vainio <vivainio@gmail.com>
18
28
19 * shell.py: disable -twisted on non-win32 platforms.
29 * shell.py: disable -twisted on non-win32 platforms.
20 import sets module on python 2.3.
30 import sets module on python 2.3.
21
31
22 * ipy_profile_sh.py: disable ipy_signals. Now, ipython
32 * ipy_profile_sh.py: disable ipy_signals. Now, ipython
23 is verified to work with python 2.3
33 is verified to work with python 2.3
24
34
25 * Release.py: update version to 0.8.4 for quick point fix
35 * Release.py: update version to 0.8.4 for quick point fix
26
36
27 2008-05-28 *** Released version 0.8.3
37 2008-05-28 *** Released version 0.8.3
28
38
29 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
39 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
30
40
31 * ../win32_manual_post_install.py (run): Fix the windows installer
41 * ../win32_manual_post_install.py (run): Fix the windows installer
32 so the links to the docs are correct.
42 so the links to the docs are correct.
33
43
34 * IPython/ultraTB.py: flush stderr after writing to it to fix
44 * IPython/ultraTB.py: flush stderr after writing to it to fix
35 problems with exception traceback ordering in some platforms.
45 problems with exception traceback ordering in some platforms.
36 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
46 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
37
47
38 * IPython/Magic.py (magic_cpaste): add stripping of continuation
48 * IPython/Magic.py (magic_cpaste): add stripping of continuation
39 prompts, feature requested by Stefan vdW.
49 prompts, feature requested by Stefan vdW.
40
50
41 * ../setup.py: updates to build and release tools in preparation
51 * ../setup.py: updates to build and release tools in preparation
42 for 0.8.3 release.
52 for 0.8.3 release.
43
53
44 2008-05-27 Ville Vainio <vivainio@gmail.com>
54 2008-05-27 Ville Vainio <vivainio@gmail.com>
45
55
46 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
56 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
47 for minimal environments (e.g. Maemo sdk python)
57 for minimal environments (e.g. Maemo sdk python)
48
58
49 * Magic.py: cpaste strips whitespace before >>> (allow pasting
59 * Magic.py: cpaste strips whitespace before >>> (allow pasting
50 doctests)
60 doctests)
51
61
52 * ipy_completers.py: cd completer now does recursive path expand
62 * ipy_completers.py: cd completer now does recursive path expand
53 (old behaviour is buggy on some readline versions)
63 (old behaviour is buggy on some readline versions)
54
64
55 2008-05-14 Ville Vainio <vivainio@gmail.com>
65 2008-05-14 Ville Vainio <vivainio@gmail.com>
56
66
57 * Extensions/ipy_greedycompleter.py:
67 * Extensions/ipy_greedycompleter.py:
58 New extension that enables a bit more "relaxed" tab
68 New extension that enables a bit more "relaxed" tab
59 completer that evaluates code without safety checks
69 completer that evaluates code without safety checks
60 (i.e. there can be side effects like function calls)
70 (i.e. there can be side effects like function calls)
61
71
62 2008-04-20 Ville Vainio <vivainio@gmail.com>
72 2008-04-20 Ville Vainio <vivainio@gmail.com>
63
73
64 * Extensions/ipy_lookfor.py: add %lookfor magic command
74 * Extensions/ipy_lookfor.py: add %lookfor magic command
65 (search docstrings for words) by Pauli Virtanen. Close #245.
75 (search docstrings for words) by Pauli Virtanen. Close #245.
66
76
67 * Extension/ipy_jot.py: %jot and %read magics, analogous
77 * Extension/ipy_jot.py: %jot and %read magics, analogous
68 to %store but you can specify some notes. Not read
78 to %store but you can specify some notes. Not read
69 in automatically on startup, you need %read.
79 in automatically on startup, you need %read.
70 Contributed by Yichun Wei.
80 Contributed by Yichun Wei.
71
81
72 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
82 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
73
83
74 * IPython/genutils.py (page): apply workaround to curses bug that
84 * IPython/genutils.py (page): apply workaround to curses bug that
75 can leave terminal corrupted after a call to initscr().
85 can leave terminal corrupted after a call to initscr().
76
86
77 2008-04-15 Ville Vainio <vivainio@gmail.com>
87 2008-04-15 Ville Vainio <vivainio@gmail.com>
78
88
79 * genutils.py: SList.grep supports 'field' argument
89 * genutils.py: SList.grep supports 'field' argument
80
90
81 * ipy_completers.py: module completer looks inside
91 * ipy_completers.py: module completer looks inside
82 .egg zip files (patch by mc). Close #196.
92 .egg zip files (patch by mc). Close #196.
83
93
84 2008-04-09 Ville Vainio <vivainio@gmail.com>
94 2008-04-09 Ville Vainio <vivainio@gmail.com>
85
95
86 * deep_reload.py: do not crash on from __future__ import
96 * deep_reload.py: do not crash on from __future__ import
87 absolute_import. Close #244.
97 absolute_import. Close #244.
88
98
89 2008-04-02 Ville Vainio <vivainio@gmail.com>
99 2008-04-02 Ville Vainio <vivainio@gmail.com>
90
100
91 * ipy_winpdb.py: New extension for winpdb integration. %wdb
101 * ipy_winpdb.py: New extension for winpdb integration. %wdb
92 test.py is winpdb equivalent of %run -d test.py. winpdb is a
102 test.py is winpdb equivalent of %run -d test.py. winpdb is a
93 crossplatform remote GUI debugger based on wxpython.
103 crossplatform remote GUI debugger based on wxpython.
94
104
95 2008-03-29 Ville Vainio <vivainio@gmail.com>
105 2008-03-29 Ville Vainio <vivainio@gmail.com>
96
106
97 * ipython.rst, do_sphinx.py: New documentation base, based on
107 * ipython.rst, do_sphinx.py: New documentation base, based on
98 reStucturedText and Sphinx (html/pdf generation). The old Lyx
108 reStucturedText and Sphinx (html/pdf generation). The old Lyx
99 based documentation will not be updated anymore.
109 based documentation will not be updated anymore.
100
110
101 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
111 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
102
112
103 2008-03-24 Ville Vainio <vivainio@gmail.com>
113 2008-03-24 Ville Vainio <vivainio@gmail.com>
104
114
105 * ipython.rst, do_sphinx.py: New documentation base, based on
115 * ipython.rst, do_sphinx.py: New documentation base, based on
106 reStucturedText and Sphinx (html/pdf generation). The old Lyx
116 reStucturedText and Sphinx (html/pdf generation). The old Lyx
107 based documentation will not be updated anymore.
117 based documentation will not be updated anymore.
108
118
109 ipython.rst has up to date documentation on matters that were not
119 ipython.rst has up to date documentation on matters that were not
110 documented at all, and it also removes various
120 documented at all, and it also removes various
111 misdocumented/deprecated features.
121 misdocumented/deprecated features.
112
122
113 2008-03-22 Ville Vainio <vivainio@gmail.com>
123 2008-03-22 Ville Vainio <vivainio@gmail.com>
114
124
115 * Shell.py: Merge mtexp branch:
125 * Shell.py: Merge mtexp branch:
116 https://code.launchpad.net/~ipython/ipython/mtexp
126 https://code.launchpad.net/~ipython/ipython/mtexp
117
127
118 Privides simpler and more robust MTInteractiveShell that won't
128 Privides simpler and more robust MTInteractiveShell that won't
119 deadlock, even when the worker thread (GUI) stops doing runcode()
129 deadlock, even when the worker thread (GUI) stops doing runcode()
120 regularly. r71.
130 regularly. r71.
121
131
122 2008-03-20 Ville Vainio <vivainio@gmail.com>
132 2008-03-20 Ville Vainio <vivainio@gmail.com>
123
133
124 * twshell.py: New shell that runs IPython code in Twisted reactor.
134 * twshell.py: New shell that runs IPython code in Twisted reactor.
125 Launch by doing ipython -twisted. r67.
135 Launch by doing ipython -twisted. r67.
126
136
127 2008-03-19 Ville Vainio <vivainio@gmail.com>
137 2008-03-19 Ville Vainio <vivainio@gmail.com>
128
138
129 * Magic.py: %rehashx works correctly when shadowed system commands
139 * Magic.py: %rehashx works correctly when shadowed system commands
130 have upper case characters (e.g. Print.exe). r64.
140 have upper case characters (e.g. Print.exe). r64.
131
141
132 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
142 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
133 knows options to commands, based on bzrtools. Uses bzrlib
143 knows options to commands, based on bzrtools. Uses bzrlib
134 directly. r66.
144 directly. r66.
135
145
136 2008-03-16 Ville Vainio <vivainio@gmail.com>
146 2008-03-16 Ville Vainio <vivainio@gmail.com>
137
147
138 * make_tarball.py: Fixed for bzr.
148 * make_tarball.py: Fixed for bzr.
139
149
140 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
150 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
141
151
142 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
152 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
143 by Erich Heine.
153 by Erich Heine.
144
154
145 2008-03-12 Ville Vainio <vivainio@gmail.com>
155 2008-03-12 Ville Vainio <vivainio@gmail.com>
146
156
147 * ipmaker.py: Force (reload?) import of ipy_user_conf and
157 * ipmaker.py: Force (reload?) import of ipy_user_conf and
148 ipy_profile_foo, so that embedded instances can be relaunched and
158 ipy_profile_foo, so that embedded instances can be relaunched and
149 configuration is still done. r50
159 configuration is still done. r50
150
160
151 * ipapi.py, test_embed.py: Allow specifying shell class in
161 * ipapi.py, test_embed.py: Allow specifying shell class in
152 launch_new_instance & make_new instance. Use this in
162 launch_new_instance & make_new instance. Use this in
153 test_embed.py. r51.
163 test_embed.py. r51.
154
164
155 test_embed.py is also a good and simple demo of embedding IPython.
165 test_embed.py is also a good and simple demo of embedding IPython.
156
166
157
167
158 2008-03-10 Ville Vainio <vivainio@gmail.com>
168 2008-03-10 Ville Vainio <vivainio@gmail.com>
159
169
160 * tool/update_revnum.py: Change to bzr revisioning scheme in
170 * tool/update_revnum.py: Change to bzr revisioning scheme in
161 revision numbers.
171 revision numbers.
162
172
163 * Shell.py: Threading improvements:
173 * Shell.py: Threading improvements:
164
174
165 In multithreaded shells, do not hang on macros and o.autoexec
175 In multithreaded shells, do not hang on macros and o.autoexec
166 commands (or anything executed with _ip.runlines()) anymore. Allow
176 commands (or anything executed with _ip.runlines()) anymore. Allow
167 recursive execution of IPython code in
177 recursive execution of IPython code in
168 MTInteractiveShell.runsource by checking if we are already in
178 MTInteractiveShell.runsource by checking if we are already in
169 worker thread, and execute code directly if we are. r48.
179 worker thread, and execute code directly if we are. r48.
170
180
171 MTInteractiveShell.runsource: execute code directly if worker
181 MTInteractiveShell.runsource: execute code directly if worker
172 thread is not running yet (this is the case in config files). r49.
182 thread is not running yet (this is the case in config files). r49.
173
183
174 2008-03-09 Ville Vainio <vivainio@gmail.com>
184 2008-03-09 Ville Vainio <vivainio@gmail.com>
175
185
176 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
186 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
177 argument of previous command in sh profile. Similar to bash '!$'.
187 argument of previous command in sh profile. Similar to bash '!$'.
178 LA(3) or $LA(3) stands for last argument of input history command
188 LA(3) or $LA(3) stands for last argument of input history command
179 3.
189 3.
180
190
181 * Shell.py: -pylab names don't clutter %whos listing.
191 * Shell.py: -pylab names don't clutter %whos listing.
182
192
183 2008-03-07 Ville Vainio <vivainio@gmail.com>
193 2008-03-07 Ville Vainio <vivainio@gmail.com>
184
194
185 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
195 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
186 autoreloading modules; try %autoreload and %aimport. Close #154.
196 autoreloading modules; try %autoreload and %aimport. Close #154.
187 Uses the new pre_runcode_hook.
197 Uses the new pre_runcode_hook.
188
198
189 2008-02-24 Ville Vainio <vivainio@gmail.com>
199 2008-02-24 Ville Vainio <vivainio@gmail.com>
190
200
191 * platutils_posix.py: freeze_term_title works
201 * platutils_posix.py: freeze_term_title works
192
202
193 2008-02-21 Ville Vainio <vivainio@gmail.com>
203 2008-02-21 Ville Vainio <vivainio@gmail.com>
194
204
195 * Magic.py: %quickref does not crash with empty docstring
205 * Magic.py: %quickref does not crash with empty docstring
196
206
197 2008-02-20 Ville Vainio <vivainio@gmail.com>
207 2008-02-20 Ville Vainio <vivainio@gmail.com>
198
208
199 * completer.py: do not treat [](){} as protectable chars anymore,
209 * completer.py: do not treat [](){} as protectable chars anymore,
200 close #233.
210 close #233.
201
211
202 * completer.py: do not treat [](){} as protectable chars anymore
212 * completer.py: do not treat [](){} as protectable chars anymore
203
213
204 * magic.py, test_cpaste.py: Allow different prefix for pasting
214 * magic.py, test_cpaste.py: Allow different prefix for pasting
205 from email
215 from email
206
216
207 2008-02-17 Ville Vainio <vivainio@gmail.com>
217 2008-02-17 Ville Vainio <vivainio@gmail.com>
208
218
209 * Switched over to Launchpad/bzr as primary VCS.
219 * Switched over to Launchpad/bzr as primary VCS.
210
220
211 2008-02-14 Ville Vainio <vivainio@gmail.com>
221 2008-02-14 Ville Vainio <vivainio@gmail.com>
212
222
213 * ipapi.py: _ip.runlines() is now much more liberal about
223 * ipapi.py: _ip.runlines() is now much more liberal about
214 indentation - it cleans up the scripts it gets
224 indentation - it cleans up the scripts it gets
215
225
216 2008-02-14 Ville Vainio <vivainio@gmail.com>
226 2008-02-14 Ville Vainio <vivainio@gmail.com>
217
227
218 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
228 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
219 Changes to it (later on) are too numerous to list in ChangeLog
229 Changes to it (later on) are too numerous to list in ChangeLog
220 until it stabilizes
230 until it stabilizes
221
231
222 2008-02-07 Darren Dale <darren.dale@cornell.edu>
232 2008-02-07 Darren Dale <darren.dale@cornell.edu>
223
233
224 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
234 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
225 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
235 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
226 interaction in the interpreter (like Tkinter does), but it seems to
236 interaction in the interpreter (like Tkinter does), but it seems to
227 partially interfere with the IPython implementation and exec_()
237 partially interfere with the IPython implementation and exec_()
228 still seems to block. So we disable the PyQt implementation and
238 still seems to block. So we disable the PyQt implementation and
229 stick with the IPython one for now.
239 stick with the IPython one for now.
230
240
231 2008-02-02 Walter Doerwald <walter@livinglogic.de>
241 2008-02-02 Walter Doerwald <walter@livinglogic.de>
232
242
233 * ipipe.py: A new ipipe table has been added: ialias produces all
243 * ipipe.py: A new ipipe table has been added: ialias produces all
234 entries from IPython's alias table.
244 entries from IPython's alias table.
235
245
236 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
246 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
237
247
238 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
248 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
239 of KBINT in threaded shells. After code provided by Marc in #212.
249 of KBINT in threaded shells. After code provided by Marc in #212.
240
250
241 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
251 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
242
252
243 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
253 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
244 that could occur due to a race condition in threaded shells.
254 that could occur due to a race condition in threaded shells.
245 Thanks to code provided by Marc, as #210.
255 Thanks to code provided by Marc, as #210.
246
256
247 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
257 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
248
258
249 * IPython/Magic.py (magic_doctest_mode): respect the user's
259 * IPython/Magic.py (magic_doctest_mode): respect the user's
250 settings for input separators rather than overriding them. After
260 settings for input separators rather than overriding them. After
251 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
261 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
252
262
253 * IPython/history.py (magic_history): Add support for declaring an
263 * IPython/history.py (magic_history): Add support for declaring an
254 output file directly from the history command.
264 output file directly from the history command.
255
265
256 2008-01-21 Walter Doerwald <walter@livinglogic.de>
266 2008-01-21 Walter Doerwald <walter@livinglogic.de>
257
267
258 * ipipe.py: Register ipipe's displayhooks via the generic function
268 * ipipe.py: Register ipipe's displayhooks via the generic function
259 generics.result_display() instead of using ipapi.set_hook().
269 generics.result_display() instead of using ipapi.set_hook().
260
270
261 2008-01-19 Walter Doerwald <walter@livinglogic.de>
271 2008-01-19 Walter Doerwald <walter@livinglogic.de>
262
272
263 * ibrowse.py, igrid.py, ipipe.py:
273 * ibrowse.py, igrid.py, ipipe.py:
264 The input object can now be passed to the constructor of the display classes.
274 The input object can now be passed to the constructor of the display classes.
265 This makes it possible to use them with objects that implement __or__.
275 This makes it possible to use them with objects that implement __or__.
266 Use this constructor in the displayhook instead of piping.
276 Use this constructor in the displayhook instead of piping.
267
277
268 * ipipe.py: Importing astyle.py is done as late as possible to
278 * ipipe.py: Importing astyle.py is done as late as possible to
269 avoid problems with circular imports.
279 avoid problems with circular imports.
270
280
271 2008-01-19 Ville Vainio <vivainio@gmail.com>
281 2008-01-19 Ville Vainio <vivainio@gmail.com>
272
282
273 * hooks.py, iplib.py: Added 'shell_hook' to customize how
283 * hooks.py, iplib.py: Added 'shell_hook' to customize how
274 IPython calls shell.
284 IPython calls shell.
275
285
276 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
286 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
277 how IPython pages text (%page, %pycat, %pdoc etc.)
287 how IPython pages text (%page, %pycat, %pdoc etc.)
278
288
279 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
289 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
280 and '%kill' to kill hanging processes that won't obey ctrl+C.
290 and '%kill' to kill hanging processes that won't obey ctrl+C.
281
291
282 2008-01-16 Ville Vainio <vivainio@gmail.com>
292 2008-01-16 Ville Vainio <vivainio@gmail.com>
283
293
284 * ipy_completers.py: pyw extension support for %run completer.
294 * ipy_completers.py: pyw extension support for %run completer.
285
295
286 2008-01-11 Ville Vainio <vivainio@gmail.com>
296 2008-01-11 Ville Vainio <vivainio@gmail.com>
287
297
288 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
298 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
289 of ipython commands to be run when IPython has started up
299 of ipython commands to be run when IPython has started up
290 (just before running the scripts and -c arg on command line).
300 (just before running the scripts and -c arg on command line).
291
301
292 * ipy_user_conf.py: Added an example on how to change term
302 * ipy_user_conf.py: Added an example on how to change term
293 colors in config file (through using autoexec).
303 colors in config file (through using autoexec).
294
304
295 * completer.py, test_completer.py: Ability to specify custom
305 * completer.py, test_completer.py: Ability to specify custom
296 get_endidx to replace readline.get_endidx. For emacs users.
306 get_endidx to replace readline.get_endidx. For emacs users.
297
307
298 2008-01-10 Ville Vainio <vivainio@gmail.com>
308 2008-01-10 Ville Vainio <vivainio@gmail.com>
299
309
300 * Prompts.py (set_p_str): do not crash on illegal prompt strings
310 * Prompts.py (set_p_str): do not crash on illegal prompt strings
301
311
302 2008-01-08 Ville Vainio <vivainio@gmail.com>
312 2008-01-08 Ville Vainio <vivainio@gmail.com>
303
313
304 * '%macro -r' (raw mode) is now default in sh profile.
314 * '%macro -r' (raw mode) is now default in sh profile.
305
315
306 2007-12-31 Ville Vainio <vivainio@gmail.com>
316 2007-12-31 Ville Vainio <vivainio@gmail.com>
307
317
308 * completer.py: custom completer matching is now case sensitive
318 * completer.py: custom completer matching is now case sensitive
309 (#207).
319 (#207).
310
320
311 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
321 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
312 an attempt to prevent occasional crashes.
322 an attempt to prevent occasional crashes.
313
323
314 * CrashHandler.py: Crash log dump now asks user to press enter
324 * CrashHandler.py: Crash log dump now asks user to press enter
315 before exiting.
325 before exiting.
316
326
317 * Store _ip in user_ns instead of __builtin__, enabling safer
327 * Store _ip in user_ns instead of __builtin__, enabling safer
318 coexistence of multiple IPython instances in the same python
328 coexistence of multiple IPython instances in the same python
319 interpreter (#197).
329 interpreter (#197).
320
330
321 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
331 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
322 switch to enable pydb in post-mortem debugging and %run -d.
332 switch to enable pydb in post-mortem debugging and %run -d.
323
333
324 2007-12-28 Ville Vainio <vivainio@gmail.com>
334 2007-12-28 Ville Vainio <vivainio@gmail.com>
325
335
326 * ipy_server.py: TCP socket server for "remote control" of an IPython
336 * ipy_server.py: TCP socket server for "remote control" of an IPython
327 instance.
337 instance.
328
338
329 * Debugger.py: Change to PSF license
339 * Debugger.py: Change to PSF license
330
340
331 * simplegeneric.py: Add license & author notes.
341 * simplegeneric.py: Add license & author notes.
332
342
333 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
343 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
334 to navigate file system with a custom completer. Run
344 to navigate file system with a custom completer. Run
335 ipy_fsops.test_pathobj() to play with it.
345 ipy_fsops.test_pathobj() to play with it.
336
346
337 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
347 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
338
348
339 * IPython/dtutils.py: Add utilities for interactively running
349 * IPython/dtutils.py: Add utilities for interactively running
340 doctests. Still needs work to more easily handle the namespace of
350 doctests. Still needs work to more easily handle the namespace of
341 the package one may be working on, but the basics are in place.
351 the package one may be working on, but the basics are in place.
342
352
343 2007-12-27 Ville Vainio <vivainio@gmail.com>
353 2007-12-27 Ville Vainio <vivainio@gmail.com>
344
354
345 * ipy_completers.py: Applied arno's patch to get proper list of
355 * ipy_completers.py: Applied arno's patch to get proper list of
346 packages in import completer. Closes #196.
356 packages in import completer. Closes #196.
347
357
348 2007-12-20 Ville Vainio <vivainio@gmail.com>
358 2007-12-20 Ville Vainio <vivainio@gmail.com>
349
359
350 * completer.py, generics.py(complete_object): Allow
360 * completer.py, generics.py(complete_object): Allow
351 custom complers based on python objects via simplegeneric.
361 custom complers based on python objects via simplegeneric.
352 See generics.py / my_demo_complete_object
362 See generics.py / my_demo_complete_object
353
363
354 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
364 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
355
365
356 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
366 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
357 behavior to prompt objects, useful for display hooks to adjust
367 behavior to prompt objects, useful for display hooks to adjust
358 themselves depending on whether prompts will be there or not.
368 themselves depending on whether prompts will be there or not.
359
369
360 2007-12-13 Ville Vainio <vivainio@gmail.com>
370 2007-12-13 Ville Vainio <vivainio@gmail.com>
361
371
362 * iplib.py(raw_input): unix readline does not allow unicode in
372 * iplib.py(raw_input): unix readline does not allow unicode in
363 history, encode to normal string. After patch by Tiago.
373 history, encode to normal string. After patch by Tiago.
364 Close #201
374 Close #201
365
375
366 2007-12-12 Ville Vainio <vivainio@gmail.com>
376 2007-12-12 Ville Vainio <vivainio@gmail.com>
367
377
368 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
378 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
369 current directory.
379 current directory.
370
380
371 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
381 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
372
382
373 * IPython/Shell.py (_select_shell): add support for controlling
383 * IPython/Shell.py (_select_shell): add support for controlling
374 the pylab threading mode directly at the command line, without
384 the pylab threading mode directly at the command line, without
375 having to modify MPL config files. Added unit tests for this
385 having to modify MPL config files. Added unit tests for this
376 feature, though manual/docs update is still pending, will do later.
386 feature, though manual/docs update is still pending, will do later.
377
387
378 2007-12-11 Ville Vainio <vivainio@gmail.com>
388 2007-12-11 Ville Vainio <vivainio@gmail.com>
379
389
380 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
390 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
381 use in scripts)
391 use in scripts)
382
392
383 2007-12-07 Ville Vainio <vivainio@gmail.com>
393 2007-12-07 Ville Vainio <vivainio@gmail.com>
384
394
385 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
395 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
386 anymore (to \#) - even if it is a comment char that is implicitly
396 anymore (to \#) - even if it is a comment char that is implicitly
387 escaped in some unix shells in interactive mode, it is ok to leave
397 escaped in some unix shells in interactive mode, it is ok to leave
388 it in IPython as such.
398 it in IPython as such.
389
399
390
400
391 2007-12-01 Robert Kern <robert.kern@gmail.com>
401 2007-12-01 Robert Kern <robert.kern@gmail.com>
392
402
393 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
403 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
394 inspect.findsource(). It can now find source lines inside zipped
404 inspect.findsource(). It can now find source lines inside zipped
395 packages.
405 packages.
396
406
397 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
407 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
398 in the frame's namespace before trusting the filename in the code object
408 in the frame's namespace before trusting the filename in the code object
399 which created the frame.
409 which created the frame.
400
410
401 2007-11-29 *** Released version 0.8.2
411 2007-11-29 *** Released version 0.8.2
402
412
403 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
413 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
404
414
405 * IPython/Logger.py (Logger.logstop): add a proper logstop()
415 * IPython/Logger.py (Logger.logstop): add a proper logstop()
406 method to fully stop the logger, along with a corresponding
416 method to fully stop the logger, along with a corresponding
407 %logstop magic for interactive use.
417 %logstop magic for interactive use.
408
418
409 * IPython/Extensions/ipy_host_completers.py: added new host
419 * IPython/Extensions/ipy_host_completers.py: added new host
410 completers functionality, contributed by Gael Pasgrimaud
420 completers functionality, contributed by Gael Pasgrimaud
411 <gawel-AT-afpy.org>.
421 <gawel-AT-afpy.org>.
412
422
413 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
423 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
414
424
415 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
425 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
416 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
426 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
417 options handling. Unicode fix in %whos (committed a while ago)
427 options handling. Unicode fix in %whos (committed a while ago)
418 was also contributed by Paul.
428 was also contributed by Paul.
419
429
420 2007-11-23 Darren Dale <darren.dale@cornell.edu>
430 2007-11-23 Darren Dale <darren.dale@cornell.edu>
421 * ipy_traits_completer.py: let traits_completer respect the user's
431 * ipy_traits_completer.py: let traits_completer respect the user's
422 readline_omit__names setting.
432 readline_omit__names setting.
423
433
424 2007-11-08 Ville Vainio <vivainio@gmail.com>
434 2007-11-08 Ville Vainio <vivainio@gmail.com>
425
435
426 * ipy_completers.py (import completer): assume 'xml' module exists.
436 * ipy_completers.py (import completer): assume 'xml' module exists.
427 Do not add every module twice anymore. Closes #196.
437 Do not add every module twice anymore. Closes #196.
428
438
429 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
439 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
430 completer that uses apt-cache to search for existing packages.
440 completer that uses apt-cache to search for existing packages.
431
441
432 2007-11-06 Ville Vainio <vivainio@gmail.com>
442 2007-11-06 Ville Vainio <vivainio@gmail.com>
433
443
434 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
444 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
435 true. Closes #194.
445 true. Closes #194.
436
446
437 2007-11-01 Brian Granger <ellisonbg@gmail.com>
447 2007-11-01 Brian Granger <ellisonbg@gmail.com>
438
448
439 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
449 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
440 working with OS X 10.5 libedit implementation of readline.
450 working with OS X 10.5 libedit implementation of readline.
441
451
442 2007-10-24 Ville Vainio <vivainio@gmail.com>
452 2007-10-24 Ville Vainio <vivainio@gmail.com>
443
453
444 * iplib.py(user_setup): To route around buggy installations where
454 * iplib.py(user_setup): To route around buggy installations where
445 UserConfig is not available, create a minimal _ipython.
455 UserConfig is not available, create a minimal _ipython.
446
456
447 * iplib.py: Unicode fixes from Jorgen.
457 * iplib.py: Unicode fixes from Jorgen.
448
458
449 * genutils.py: Slist now has new method 'fields()' for extraction of
459 * genutils.py: Slist now has new method 'fields()' for extraction of
450 whitespace-separated fields from line-oriented data.
460 whitespace-separated fields from line-oriented data.
451
461
452 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
462 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
453
463
454 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
464 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
455 when querying objects with no __class__ attribute (such as
465 when querying objects with no __class__ attribute (such as
456 f2py-generated modules).
466 f2py-generated modules).
457
467
458 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
468 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
459
469
460 * IPython/Magic.py (magic_time): track compilation time and report
470 * IPython/Magic.py (magic_time): track compilation time and report
461 it if longer than 0.1s (fix done to %time and %timeit). After a
471 it if longer than 0.1s (fix done to %time and %timeit). After a
462 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
472 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
463
473
464 2007-09-18 Ville Vainio <vivainio@gmail.com>
474 2007-09-18 Ville Vainio <vivainio@gmail.com>
465
475
466 * genutils.py(make_quoted_expr): Do not use Itpl, it does
476 * genutils.py(make_quoted_expr): Do not use Itpl, it does
467 not support unicode at the moment. Fixes (many) magic calls with
477 not support unicode at the moment. Fixes (many) magic calls with
468 special characters.
478 special characters.
469
479
470 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
480 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
471
481
472 * IPython/genutils.py (doctest_reload): expose the doctest
482 * IPython/genutils.py (doctest_reload): expose the doctest
473 reloader to the user so that people can easily reset doctest while
483 reloader to the user so that people can easily reset doctest while
474 using it interactively. Fixes a problem reported by Jorgen.
484 using it interactively. Fixes a problem reported by Jorgen.
475
485
476 * IPython/iplib.py (InteractiveShell.__init__): protect the
486 * IPython/iplib.py (InteractiveShell.__init__): protect the
477 FakeModule instances used for __main__ in %run calls from
487 FakeModule instances used for __main__ in %run calls from
478 deletion, so that user code defined in them isn't left with
488 deletion, so that user code defined in them isn't left with
479 dangling references due to the Python module deletion machinery.
489 dangling references due to the Python module deletion machinery.
480 This should fix the problems reported by Darren.
490 This should fix the problems reported by Darren.
481
491
482 2007-09-10 Darren Dale <dd55@cornell.edu>
492 2007-09-10 Darren Dale <dd55@cornell.edu>
483
493
484 * Cleanup of IPShellQt and IPShellQt4
494 * Cleanup of IPShellQt and IPShellQt4
485
495
486 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
496 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
487
497
488 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
498 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
489 doctest support.
499 doctest support.
490
500
491 * IPython/iplib.py (safe_execfile): minor docstring improvements.
501 * IPython/iplib.py (safe_execfile): minor docstring improvements.
492
502
493 2007-09-08 Ville Vainio <vivainio@gmail.com>
503 2007-09-08 Ville Vainio <vivainio@gmail.com>
494
504
495 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
505 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
496 directory, not the target directory.
506 directory, not the target directory.
497
507
498 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
508 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
499 exception that won't print the tracebacks. Switched many magics to
509 exception that won't print the tracebacks. Switched many magics to
500 raise them on error situations, also GetoptError is not printed
510 raise them on error situations, also GetoptError is not printed
501 anymore.
511 anymore.
502
512
503 2007-09-07 Ville Vainio <vivainio@gmail.com>
513 2007-09-07 Ville Vainio <vivainio@gmail.com>
504
514
505 * iplib.py: do not auto-alias "dir", it screws up other dir auto
515 * iplib.py: do not auto-alias "dir", it screws up other dir auto
506 aliases.
516 aliases.
507
517
508 * genutils.py: SList.grep() implemented.
518 * genutils.py: SList.grep() implemented.
509
519
510 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
520 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
511 for easy "out of the box" setup of several common editors, so that
521 for easy "out of the box" setup of several common editors, so that
512 e.g. '%edit os.path.isfile' will jump to the correct line
522 e.g. '%edit os.path.isfile' will jump to the correct line
513 automatically. Contributions for command lines of your favourite
523 automatically. Contributions for command lines of your favourite
514 editors welcome.
524 editors welcome.
515
525
516 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
526 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
517
527
518 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
528 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
519 preventing source display in certain cases. In reality I think
529 preventing source display in certain cases. In reality I think
520 the problem is with Ubuntu's Python build, but this change works
530 the problem is with Ubuntu's Python build, but this change works
521 around the issue in some cases (not in all, unfortunately). I'd
531 around the issue in some cases (not in all, unfortunately). I'd
522 filed a Python bug on this with more details, but in the change of
532 filed a Python bug on this with more details, but in the change of
523 bug trackers it seems to have been lost.
533 bug trackers it seems to have been lost.
524
534
525 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
535 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
526 not the same, it's not self-documenting, doesn't allow range
536 not the same, it's not self-documenting, doesn't allow range
527 selection, and sorts alphabetically instead of numerically.
537 selection, and sorts alphabetically instead of numerically.
528 (magic_r): restore %r. No, "up + enter. One char magic" is not
538 (magic_r): restore %r. No, "up + enter. One char magic" is not
529 the same thing, since %r takes parameters to allow fast retrieval
539 the same thing, since %r takes parameters to allow fast retrieval
530 of old commands. I've received emails from users who use this a
540 of old commands. I've received emails from users who use this a
531 LOT, so it stays.
541 LOT, so it stays.
532 (magic_automagic): restore %automagic. "use _ip.option.automagic"
542 (magic_automagic): restore %automagic. "use _ip.option.automagic"
533 is not a valid replacement b/c it doesn't provide an complete
543 is not a valid replacement b/c it doesn't provide an complete
534 explanation (which the automagic docstring does).
544 explanation (which the automagic docstring does).
535 (magic_autocall): restore %autocall, with improved docstring.
545 (magic_autocall): restore %autocall, with improved docstring.
536 Same argument as for others, "use _ip.options.autocall" is not a
546 Same argument as for others, "use _ip.options.autocall" is not a
537 valid replacement.
547 valid replacement.
538 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
548 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
539 tutorials and online docs.
549 tutorials and online docs.
540
550
541 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
551 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
542
552
543 * IPython/usage.py (quick_reference): mention magics in quickref,
553 * IPython/usage.py (quick_reference): mention magics in quickref,
544 modified main banner to mention %quickref.
554 modified main banner to mention %quickref.
545
555
546 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
556 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
547
557
548 2007-09-06 Ville Vainio <vivainio@gmail.com>
558 2007-09-06 Ville Vainio <vivainio@gmail.com>
549
559
550 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
560 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
551 Callable aliases now pass the _ip as first arg. This breaks
561 Callable aliases now pass the _ip as first arg. This breaks
552 compatibility with earlier 0.8.2.svn series! (though they should
562 compatibility with earlier 0.8.2.svn series! (though they should
553 not have been in use yet outside these few extensions)
563 not have been in use yet outside these few extensions)
554
564
555 2007-09-05 Ville Vainio <vivainio@gmail.com>
565 2007-09-05 Ville Vainio <vivainio@gmail.com>
556
566
557 * external/mglob.py: expand('dirname') => ['dirname'], instead
567 * external/mglob.py: expand('dirname') => ['dirname'], instead
558 of ['dirname/foo','dirname/bar', ...].
568 of ['dirname/foo','dirname/bar', ...].
559
569
560 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
570 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
561 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
571 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
562 is useful for others as well).
572 is useful for others as well).
563
573
564 * iplib.py: on callable aliases (as opposed to old style aliases),
574 * iplib.py: on callable aliases (as opposed to old style aliases),
565 do var_expand() immediately, and use make_quoted_expr instead
575 do var_expand() immediately, and use make_quoted_expr instead
566 of hardcoded r"""
576 of hardcoded r"""
567
577
568 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
578 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
569 if not available load ipy_fsops.py for cp, mv, etc. replacements
579 if not available load ipy_fsops.py for cp, mv, etc. replacements
570
580
571 * OInspect.py, ipy_which.py: improve %which and obj? for callable
581 * OInspect.py, ipy_which.py: improve %which and obj? for callable
572 aliases
582 aliases
573
583
574 2007-09-04 Ville Vainio <vivainio@gmail.com>
584 2007-09-04 Ville Vainio <vivainio@gmail.com>
575
585
576 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
586 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
577 Relicensed under BSD with the authors approval.
587 Relicensed under BSD with the authors approval.
578
588
579 * ipmaker.py, usage.py: Remove %magic from default banner, improve
589 * ipmaker.py, usage.py: Remove %magic from default banner, improve
580 %quickref
590 %quickref
581
591
582 2007-09-03 Ville Vainio <vivainio@gmail.com>
592 2007-09-03 Ville Vainio <vivainio@gmail.com>
583
593
584 * Magic.py: %time now passes expression through prefilter,
594 * Magic.py: %time now passes expression through prefilter,
585 allowing IPython syntax.
595 allowing IPython syntax.
586
596
587 2007-09-01 Ville Vainio <vivainio@gmail.com>
597 2007-09-01 Ville Vainio <vivainio@gmail.com>
588
598
589 * ipmaker.py: Always show full traceback when newstyle config fails
599 * ipmaker.py: Always show full traceback when newstyle config fails
590
600
591 2007-08-27 Ville Vainio <vivainio@gmail.com>
601 2007-08-27 Ville Vainio <vivainio@gmail.com>
592
602
593 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
603 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
594
604
595 2007-08-26 Ville Vainio <vivainio@gmail.com>
605 2007-08-26 Ville Vainio <vivainio@gmail.com>
596
606
597 * ipmaker.py: Command line args have the highest priority again
607 * ipmaker.py: Command line args have the highest priority again
598
608
599 * iplib.py, ipmaker.py: -i command line argument now behaves as in
609 * iplib.py, ipmaker.py: -i command line argument now behaves as in
600 normal python, i.e. leaves the IPython session running after -c
610 normal python, i.e. leaves the IPython session running after -c
601 command or running a batch file from command line.
611 command or running a batch file from command line.
602
612
603 2007-08-22 Ville Vainio <vivainio@gmail.com>
613 2007-08-22 Ville Vainio <vivainio@gmail.com>
604
614
605 * iplib.py: no extra empty (last) line in raw hist w/ multiline
615 * iplib.py: no extra empty (last) line in raw hist w/ multiline
606 statements
616 statements
607
617
608 * logger.py: Fix bug where blank lines in history were not
618 * logger.py: Fix bug where blank lines in history were not
609 added until AFTER adding the current line; translated and raw
619 added until AFTER adding the current line; translated and raw
610 history should finally be in sync with prompt now.
620 history should finally be in sync with prompt now.
611
621
612 * ipy_completers.py: quick_completer now makes it easy to create
622 * ipy_completers.py: quick_completer now makes it easy to create
613 trivial custom completers
623 trivial custom completers
614
624
615 * clearcmd.py: shadow history compression & erasing, fixed input hist
625 * clearcmd.py: shadow history compression & erasing, fixed input hist
616 clearing.
626 clearing.
617
627
618 * envpersist.py, history.py: %env (sh profile only), %hist completers
628 * envpersist.py, history.py: %env (sh profile only), %hist completers
619
629
620 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
630 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
621 term title now include the drive letter, and always use / instead of
631 term title now include the drive letter, and always use / instead of
622 os.sep (as per recommended approach for win32 ipython in general).
632 os.sep (as per recommended approach for win32 ipython in general).
623
633
624 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
634 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
625 plain python scripts from ipykit command line by running
635 plain python scripts from ipykit command line by running
626 "py myscript.py", even w/o installed python.
636 "py myscript.py", even w/o installed python.
627
637
628 2007-08-21 Ville Vainio <vivainio@gmail.com>
638 2007-08-21 Ville Vainio <vivainio@gmail.com>
629
639
630 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
640 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
631 (for backwards compatibility)
641 (for backwards compatibility)
632
642
633 * history.py: switch back to %hist -t from %hist -r as default.
643 * history.py: switch back to %hist -t from %hist -r as default.
634 At least until raw history is fixed for good.
644 At least until raw history is fixed for good.
635
645
636 2007-08-20 Ville Vainio <vivainio@gmail.com>
646 2007-08-20 Ville Vainio <vivainio@gmail.com>
637
647
638 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
648 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
639 locate alias redeclarations etc. Also, avoid handling
649 locate alias redeclarations etc. Also, avoid handling
640 _ip.IP.alias_table directly, prefer using _ip.defalias.
650 _ip.IP.alias_table directly, prefer using _ip.defalias.
641
651
642
652
643 2007-08-15 Ville Vainio <vivainio@gmail.com>
653 2007-08-15 Ville Vainio <vivainio@gmail.com>
644
654
645 * prefilter.py: ! is now always served first
655 * prefilter.py: ! is now always served first
646
656
647 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
657 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
648
658
649 * IPython/iplib.py (safe_execfile): fix the SystemExit
659 * IPython/iplib.py (safe_execfile): fix the SystemExit
650 auto-suppression code to work in Python2.4 (the internal structure
660 auto-suppression code to work in Python2.4 (the internal structure
651 of that exception changed and I'd only tested the code with 2.5).
661 of that exception changed and I'd only tested the code with 2.5).
652 Bug reported by a SciPy attendee.
662 Bug reported by a SciPy attendee.
653
663
654 2007-08-13 Ville Vainio <vivainio@gmail.com>
664 2007-08-13 Ville Vainio <vivainio@gmail.com>
655
665
656 * prefilter.py: reverted !c:/bin/foo fix, made % in
666 * prefilter.py: reverted !c:/bin/foo fix, made % in
657 multiline specials work again
667 multiline specials work again
658
668
659 2007-08-13 Ville Vainio <vivainio@gmail.com>
669 2007-08-13 Ville Vainio <vivainio@gmail.com>
660
670
661 * prefilter.py: Take more care to special-case !, so that
671 * prefilter.py: Take more care to special-case !, so that
662 !c:/bin/foo.exe works.
672 !c:/bin/foo.exe works.
663
673
664 * setup.py: if we are building eggs, strip all docs and
674 * setup.py: if we are building eggs, strip all docs and
665 examples (it doesn't make sense to bytecompile examples,
675 examples (it doesn't make sense to bytecompile examples,
666 and docs would be in an awkward place anyway).
676 and docs would be in an awkward place anyway).
667
677
668 * Ryan Krauss' patch fixes start menu shortcuts when IPython
678 * Ryan Krauss' patch fixes start menu shortcuts when IPython
669 is installed into a directory that has spaces in the name.
679 is installed into a directory that has spaces in the name.
670
680
671 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
681 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
672
682
673 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
683 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
674 doctest profile and %doctest_mode, so they actually generate the
684 doctest profile and %doctest_mode, so they actually generate the
675 blank lines needed by doctest to separate individual tests.
685 blank lines needed by doctest to separate individual tests.
676
686
677 * IPython/iplib.py (safe_execfile): modify so that running code
687 * IPython/iplib.py (safe_execfile): modify so that running code
678 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
688 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
679 doesn't get a printed traceback. Any other value in sys.exit(),
689 doesn't get a printed traceback. Any other value in sys.exit(),
680 including the empty call, still generates a traceback. This
690 including the empty call, still generates a traceback. This
681 enables use of %run without having to pass '-e' for codes that
691 enables use of %run without having to pass '-e' for codes that
682 correctly set the exit status flag.
692 correctly set the exit status flag.
683
693
684 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
694 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
685
695
686 * IPython/iplib.py (InteractiveShell.post_config_initialization):
696 * IPython/iplib.py (InteractiveShell.post_config_initialization):
687 fix problems with doctests failing when run inside IPython due to
697 fix problems with doctests failing when run inside IPython due to
688 IPython's modifications of sys.displayhook.
698 IPython's modifications of sys.displayhook.
689
699
690 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
700 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
691
701
692 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
702 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
693 a string with names.
703 a string with names.
694
704
695 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
705 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
696
706
697 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
707 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
698 magic to toggle on/off the doctest pasting support without having
708 magic to toggle on/off the doctest pasting support without having
699 to leave a session to switch to a separate profile.
709 to leave a session to switch to a separate profile.
700
710
701 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
711 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
702
712
703 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
713 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
704 introduce a blank line between inputs, to conform to doctest
714 introduce a blank line between inputs, to conform to doctest
705 requirements.
715 requirements.
706
716
707 * IPython/OInspect.py (Inspector.pinfo): fix another part where
717 * IPython/OInspect.py (Inspector.pinfo): fix another part where
708 auto-generated docstrings for new-style classes were showing up.
718 auto-generated docstrings for new-style classes were showing up.
709
719
710 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
720 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
711
721
712 * api_changes: Add new file to track backward-incompatible
722 * api_changes: Add new file to track backward-incompatible
713 user-visible changes.
723 user-visible changes.
714
724
715 2007-08-06 Ville Vainio <vivainio@gmail.com>
725 2007-08-06 Ville Vainio <vivainio@gmail.com>
716
726
717 * ipmaker.py: fix bug where user_config_ns didn't exist at all
727 * ipmaker.py: fix bug where user_config_ns didn't exist at all
718 before all the config files were handled.
728 before all the config files were handled.
719
729
720 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
730 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
721
731
722 * IPython/irunner.py (RunnerFactory): Add new factory class for
732 * IPython/irunner.py (RunnerFactory): Add new factory class for
723 creating reusable runners based on filenames.
733 creating reusable runners based on filenames.
724
734
725 * IPython/Extensions/ipy_profile_doctest.py: New profile for
735 * IPython/Extensions/ipy_profile_doctest.py: New profile for
726 doctest support. It sets prompts/exceptions as similar to
736 doctest support. It sets prompts/exceptions as similar to
727 standard Python as possible, so that ipython sessions in this
737 standard Python as possible, so that ipython sessions in this
728 profile can be easily pasted as doctests with minimal
738 profile can be easily pasted as doctests with minimal
729 modifications. It also enables pasting of doctests from external
739 modifications. It also enables pasting of doctests from external
730 sources (even if they have leading whitespace), so that you can
740 sources (even if they have leading whitespace), so that you can
731 rerun doctests from existing sources.
741 rerun doctests from existing sources.
732
742
733 * IPython/iplib.py (_prefilter): fix a buglet where after entering
743 * IPython/iplib.py (_prefilter): fix a buglet where after entering
734 some whitespace, the prompt would become a continuation prompt
744 some whitespace, the prompt would become a continuation prompt
735 with no way of exiting it other than Ctrl-C. This fix brings us
745 with no way of exiting it other than Ctrl-C. This fix brings us
736 into conformity with how the default python prompt works.
746 into conformity with how the default python prompt works.
737
747
738 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
748 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
739 Add support for pasting not only lines that start with '>>>', but
749 Add support for pasting not only lines that start with '>>>', but
740 also with ' >>>'. That is, arbitrary whitespace can now precede
750 also with ' >>>'. That is, arbitrary whitespace can now precede
741 the prompts. This makes the system useful for pasting doctests
751 the prompts. This makes the system useful for pasting doctests
742 from docstrings back into a normal session.
752 from docstrings back into a normal session.
743
753
744 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
754 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
745
755
746 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
756 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
747 r1357, which had killed multiple invocations of an embedded
757 r1357, which had killed multiple invocations of an embedded
748 ipython (this means that example-embed has been broken for over 1
758 ipython (this means that example-embed has been broken for over 1
749 year!!!). Rather than possibly breaking the batch stuff for which
759 year!!!). Rather than possibly breaking the batch stuff for which
750 the code in iplib.py/interact was introduced, I worked around the
760 the code in iplib.py/interact was introduced, I worked around the
751 problem in the embedding class in Shell.py. We really need a
761 problem in the embedding class in Shell.py. We really need a
752 bloody test suite for this code, I'm sick of finding stuff that
762 bloody test suite for this code, I'm sick of finding stuff that
753 used to work breaking left and right every time I use an old
763 used to work breaking left and right every time I use an old
754 feature I hadn't touched in a few months.
764 feature I hadn't touched in a few months.
755 (kill_embedded): Add a new magic that only shows up in embedded
765 (kill_embedded): Add a new magic that only shows up in embedded
756 mode, to allow users to permanently deactivate an embedded instance.
766 mode, to allow users to permanently deactivate an embedded instance.
757
767
758 2007-08-01 Ville Vainio <vivainio@gmail.com>
768 2007-08-01 Ville Vainio <vivainio@gmail.com>
759
769
760 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
770 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
761 history gets out of sync on runlines (e.g. when running macros).
771 history gets out of sync on runlines (e.g. when running macros).
762
772
763 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
773 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
764
774
765 * IPython/Magic.py (magic_colors): fix win32-related error message
775 * IPython/Magic.py (magic_colors): fix win32-related error message
766 that could appear under *nix when readline was missing. Patch by
776 that could appear under *nix when readline was missing. Patch by
767 Scott Jackson, closes #175.
777 Scott Jackson, closes #175.
768
778
769 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
779 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
770
780
771 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
781 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
772 completer that it traits-aware, so that traits objects don't show
782 completer that it traits-aware, so that traits objects don't show
773 all of their internal attributes all the time.
783 all of their internal attributes all the time.
774
784
775 * IPython/genutils.py (dir2): moved this code from inside
785 * IPython/genutils.py (dir2): moved this code from inside
776 completer.py to expose it publicly, so I could use it in the
786 completer.py to expose it publicly, so I could use it in the
777 wildcards bugfix.
787 wildcards bugfix.
778
788
779 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
789 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
780 Stefan with Traits.
790 Stefan with Traits.
781
791
782 * IPython/completer.py (Completer.attr_matches): change internal
792 * IPython/completer.py (Completer.attr_matches): change internal
783 var name from 'object' to 'obj', since 'object' is now a builtin
793 var name from 'object' to 'obj', since 'object' is now a builtin
784 and this can lead to weird bugs if reusing this code elsewhere.
794 and this can lead to weird bugs if reusing this code elsewhere.
785
795
786 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
796 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
787
797
788 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
798 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
789 'foo?' and update the code to prevent printing of default
799 'foo?' and update the code to prevent printing of default
790 docstrings that started appearing after I added support for
800 docstrings that started appearing after I added support for
791 new-style classes. The approach I'm using isn't ideal (I just
801 new-style classes. The approach I'm using isn't ideal (I just
792 special-case those strings) but I'm not sure how to more robustly
802 special-case those strings) but I'm not sure how to more robustly
793 differentiate between truly user-written strings and Python's
803 differentiate between truly user-written strings and Python's
794 automatic ones.
804 automatic ones.
795
805
796 2007-07-09 Ville Vainio <vivainio@gmail.com>
806 2007-07-09 Ville Vainio <vivainio@gmail.com>
797
807
798 * completer.py: Applied Matthew Neeley's patch:
808 * completer.py: Applied Matthew Neeley's patch:
799 Dynamic attributes from trait_names and _getAttributeNames are added
809 Dynamic attributes from trait_names and _getAttributeNames are added
800 to the list of tab completions, but when this happens, the attribute
810 to the list of tab completions, but when this happens, the attribute
801 list is turned into a set, so the attributes are unordered when
811 list is turned into a set, so the attributes are unordered when
802 printed, which makes it hard to find the right completion. This patch
812 printed, which makes it hard to find the right completion. This patch
803 turns this set back into a list and sort it.
813 turns this set back into a list and sort it.
804
814
805 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
815 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
806
816
807 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
817 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
808 classes in various inspector functions.
818 classes in various inspector functions.
809
819
810 2007-06-28 Ville Vainio <vivainio@gmail.com>
820 2007-06-28 Ville Vainio <vivainio@gmail.com>
811
821
812 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
822 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
813 Implement "shadow" namespace, and callable aliases that reside there.
823 Implement "shadow" namespace, and callable aliases that reside there.
814 Use them by:
824 Use them by:
815
825
816 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
826 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
817
827
818 foo hello world
828 foo hello world
819 (gets translated to:)
829 (gets translated to:)
820 _sh.foo(r"""hello world""")
830 _sh.foo(r"""hello world""")
821
831
822 In practice, this kind of alias can take the role of a magic function
832 In practice, this kind of alias can take the role of a magic function
823
833
824 * New generic inspect_object, called on obj? and obj??
834 * New generic inspect_object, called on obj? and obj??
825
835
826 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
836 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
827
837
828 * IPython/ultraTB.py (findsource): fix a problem with
838 * IPython/ultraTB.py (findsource): fix a problem with
829 inspect.getfile that can cause crashes during traceback construction.
839 inspect.getfile that can cause crashes during traceback construction.
830
840
831 2007-06-14 Ville Vainio <vivainio@gmail.com>
841 2007-06-14 Ville Vainio <vivainio@gmail.com>
832
842
833 * iplib.py (handle_auto): Try to use ascii for printing "--->"
843 * iplib.py (handle_auto): Try to use ascii for printing "--->"
834 autocall rewrite indication, becausesometimes unicode fails to print
844 autocall rewrite indication, becausesometimes unicode fails to print
835 properly (and you get ' - - - '). Use plain uncoloured ---> for
845 properly (and you get ' - - - '). Use plain uncoloured ---> for
836 unicode.
846 unicode.
837
847
838 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
848 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
839
849
840 . pickleshare 'hash' commands (hget, hset, hcompress,
850 . pickleshare 'hash' commands (hget, hset, hcompress,
841 hdict) for efficient shadow history storage.
851 hdict) for efficient shadow history storage.
842
852
843 2007-06-13 Ville Vainio <vivainio@gmail.com>
853 2007-06-13 Ville Vainio <vivainio@gmail.com>
844
854
845 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
855 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
846 Added kw arg 'interactive', tell whether vars should be visible
856 Added kw arg 'interactive', tell whether vars should be visible
847 with %whos.
857 with %whos.
848
858
849 2007-06-11 Ville Vainio <vivainio@gmail.com>
859 2007-06-11 Ville Vainio <vivainio@gmail.com>
850
860
851 * pspersistence.py, Magic.py, iplib.py: directory history now saved
861 * pspersistence.py, Magic.py, iplib.py: directory history now saved
852 to db
862 to db
853
863
854 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
864 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
855 Also, it exits IPython immediately after evaluating the command (just like
865 Also, it exits IPython immediately after evaluating the command (just like
856 std python)
866 std python)
857
867
858 2007-06-05 Walter Doerwald <walter@livinglogic.de>
868 2007-06-05 Walter Doerwald <walter@livinglogic.de>
859
869
860 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
870 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
861 Python string and captures the output. (Idea and original patch by
871 Python string and captures the output. (Idea and original patch by
862 Stefan van der Walt)
872 Stefan van der Walt)
863
873
864 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
874 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
865
875
866 * IPython/ultraTB.py (VerboseTB.text): update printing of
876 * IPython/ultraTB.py (VerboseTB.text): update printing of
867 exception types for Python 2.5 (now all exceptions in the stdlib
877 exception types for Python 2.5 (now all exceptions in the stdlib
868 are new-style classes).
878 are new-style classes).
869
879
870 2007-05-31 Walter Doerwald <walter@livinglogic.de>
880 2007-05-31 Walter Doerwald <walter@livinglogic.de>
871
881
872 * IPython/Extensions/igrid.py: Add new commands refresh and
882 * IPython/Extensions/igrid.py: Add new commands refresh and
873 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
883 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
874 the iterator once (refresh) or after every x seconds (refresh_timer).
884 the iterator once (refresh) or after every x seconds (refresh_timer).
875 Add a working implementation of "searchexpression", where the text
885 Add a working implementation of "searchexpression", where the text
876 entered is not the text to search for, but an expression that must
886 entered is not the text to search for, but an expression that must
877 be true. Added display of shortcuts to the menu. Added commands "pickinput"
887 be true. Added display of shortcuts to the menu. Added commands "pickinput"
878 and "pickinputattr" that put the object or attribute under the cursor
888 and "pickinputattr" that put the object or attribute under the cursor
879 in the input line. Split the statusbar to be able to display the currently
889 in the input line. Split the statusbar to be able to display the currently
880 active refresh interval. (Patch by Nik Tautenhahn)
890 active refresh interval. (Patch by Nik Tautenhahn)
881
891
882 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
892 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
883
893
884 * fixing set_term_title to use ctypes as default
894 * fixing set_term_title to use ctypes as default
885
895
886 * fixing set_term_title fallback to work when curent dir
896 * fixing set_term_title fallback to work when curent dir
887 is on a windows network share
897 is on a windows network share
888
898
889 2007-05-28 Ville Vainio <vivainio@gmail.com>
899 2007-05-28 Ville Vainio <vivainio@gmail.com>
890
900
891 * %cpaste: strip + with > from left (diffs).
901 * %cpaste: strip + with > from left (diffs).
892
902
893 * iplib.py: Fix crash when readline not installed
903 * iplib.py: Fix crash when readline not installed
894
904
895 2007-05-26 Ville Vainio <vivainio@gmail.com>
905 2007-05-26 Ville Vainio <vivainio@gmail.com>
896
906
897 * generics.py: introduce easy to extend result_display generic
907 * generics.py: introduce easy to extend result_display generic
898 function (using simplegeneric.py).
908 function (using simplegeneric.py).
899
909
900 * Fixed the append functionality of %set.
910 * Fixed the append functionality of %set.
901
911
902 2007-05-25 Ville Vainio <vivainio@gmail.com>
912 2007-05-25 Ville Vainio <vivainio@gmail.com>
903
913
904 * New magic: %rep (fetch / run old commands from history)
914 * New magic: %rep (fetch / run old commands from history)
905
915
906 * New extension: mglob (%mglob magic), for powerful glob / find /filter
916 * New extension: mglob (%mglob magic), for powerful glob / find /filter
907 like functionality
917 like functionality
908
918
909 % maghistory.py: %hist -g PATTERM greps the history for pattern
919 % maghistory.py: %hist -g PATTERM greps the history for pattern
910
920
911 2007-05-24 Walter Doerwald <walter@livinglogic.de>
921 2007-05-24 Walter Doerwald <walter@livinglogic.de>
912
922
913 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
923 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
914 browse the IPython input history
924 browse the IPython input history
915
925
916 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
926 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
917 (mapped to "i") can be used to put the object under the curser in the input
927 (mapped to "i") can be used to put the object under the curser in the input
918 line. pickinputattr (mapped to "I") does the same for the attribute under
928 line. pickinputattr (mapped to "I") does the same for the attribute under
919 the cursor.
929 the cursor.
920
930
921 2007-05-24 Ville Vainio <vivainio@gmail.com>
931 2007-05-24 Ville Vainio <vivainio@gmail.com>
922
932
923 * Grand magic cleansing (changeset [2380]):
933 * Grand magic cleansing (changeset [2380]):
924
934
925 * Introduce ipy_legacy.py where the following magics were
935 * Introduce ipy_legacy.py where the following magics were
926 moved:
936 moved:
927
937
928 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
938 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
929
939
930 If you need them, either use default profile or "import ipy_legacy"
940 If you need them, either use default profile or "import ipy_legacy"
931 in your ipy_user_conf.py
941 in your ipy_user_conf.py
932
942
933 * Move sh and scipy profile to Extensions from UserConfig. this implies
943 * Move sh and scipy profile to Extensions from UserConfig. this implies
934 you should not edit them, but you don't need to run %upgrade when
944 you should not edit them, but you don't need to run %upgrade when
935 upgrading IPython anymore.
945 upgrading IPython anymore.
936
946
937 * %hist/%history now operates in "raw" mode by default. To get the old
947 * %hist/%history now operates in "raw" mode by default. To get the old
938 behaviour, run '%hist -n' (native mode).
948 behaviour, run '%hist -n' (native mode).
939
949
940 * split ipy_stock_completers.py to ipy_stock_completers.py and
950 * split ipy_stock_completers.py to ipy_stock_completers.py and
941 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
951 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
942 installed as default.
952 installed as default.
943
953
944 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
954 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
945 handling.
955 handling.
946
956
947 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
957 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
948 input if readline is available.
958 input if readline is available.
949
959
950 2007-05-23 Ville Vainio <vivainio@gmail.com>
960 2007-05-23 Ville Vainio <vivainio@gmail.com>
951
961
952 * macro.py: %store uses __getstate__ properly
962 * macro.py: %store uses __getstate__ properly
953
963
954 * exesetup.py: added new setup script for creating
964 * exesetup.py: added new setup script for creating
955 standalone IPython executables with py2exe (i.e.
965 standalone IPython executables with py2exe (i.e.
956 no python installation required).
966 no python installation required).
957
967
958 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
968 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
959 its place.
969 its place.
960
970
961 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
971 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
962
972
963 2007-05-21 Ville Vainio <vivainio@gmail.com>
973 2007-05-21 Ville Vainio <vivainio@gmail.com>
964
974
965 * platutil_win32.py (set_term_title): handle
975 * platutil_win32.py (set_term_title): handle
966 failure of 'title' system call properly.
976 failure of 'title' system call properly.
967
977
968 2007-05-17 Walter Doerwald <walter@livinglogic.de>
978 2007-05-17 Walter Doerwald <walter@livinglogic.de>
969
979
970 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
980 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
971 (Bug detected by Paul Mueller).
981 (Bug detected by Paul Mueller).
972
982
973 2007-05-16 Ville Vainio <vivainio@gmail.com>
983 2007-05-16 Ville Vainio <vivainio@gmail.com>
974
984
975 * ipy_profile_sci.py, ipython_win_post_install.py: Create
985 * ipy_profile_sci.py, ipython_win_post_install.py: Create
976 new "sci" profile, effectively a modern version of the old
986 new "sci" profile, effectively a modern version of the old
977 "scipy" profile (which is now slated for deprecation).
987 "scipy" profile (which is now slated for deprecation).
978
988
979 2007-05-15 Ville Vainio <vivainio@gmail.com>
989 2007-05-15 Ville Vainio <vivainio@gmail.com>
980
990
981 * pycolorize.py, pycolor.1: Paul Mueller's patches that
991 * pycolorize.py, pycolor.1: Paul Mueller's patches that
982 make pycolorize read input from stdin when run without arguments.
992 make pycolorize read input from stdin when run without arguments.
983
993
984 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
994 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
985
995
986 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
996 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
987 it in sh profile (instead of ipy_system_conf.py).
997 it in sh profile (instead of ipy_system_conf.py).
988
998
989 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
999 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
990 aliases are now lower case on windows (MyCommand.exe => mycommand).
1000 aliases are now lower case on windows (MyCommand.exe => mycommand).
991
1001
992 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
1002 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
993 Macros are now callable objects that inherit from ipapi.IPyAutocall,
1003 Macros are now callable objects that inherit from ipapi.IPyAutocall,
994 i.e. get autocalled regardless of system autocall setting.
1004 i.e. get autocalled regardless of system autocall setting.
995
1005
996 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
1006 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
997
1007
998 * IPython/rlineimpl.py: check for clear_history in readline and
1008 * IPython/rlineimpl.py: check for clear_history in readline and
999 make it a dummy no-op if not available. This function isn't
1009 make it a dummy no-op if not available. This function isn't
1000 guaranteed to be in the API and appeared in Python 2.4, so we need
1010 guaranteed to be in the API and appeared in Python 2.4, so we need
1001 to check it ourselves. Also, clean up this file quite a bit.
1011 to check it ourselves. Also, clean up this file quite a bit.
1002
1012
1003 * ipython.1: update man page and full manual with information
1013 * ipython.1: update man page and full manual with information
1004 about threads (remove outdated warning). Closes #151.
1014 about threads (remove outdated warning). Closes #151.
1005
1015
1006 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
1016 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
1007
1017
1008 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
1018 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
1009 in trunk (note that this made it into the 0.8.1 release already,
1019 in trunk (note that this made it into the 0.8.1 release already,
1010 but the changelogs didn't get coordinated). Many thanks to Gael
1020 but the changelogs didn't get coordinated). Many thanks to Gael
1011 Varoquaux <gael.varoquaux-AT-normalesup.org>
1021 Varoquaux <gael.varoquaux-AT-normalesup.org>
1012
1022
1013 2007-05-09 *** Released version 0.8.1
1023 2007-05-09 *** Released version 0.8.1
1014
1024
1015 2007-05-10 Walter Doerwald <walter@livinglogic.de>
1025 2007-05-10 Walter Doerwald <walter@livinglogic.de>
1016
1026
1017 * IPython/Extensions/igrid.py: Incorporate html help into
1027 * IPython/Extensions/igrid.py: Incorporate html help into
1018 the module, so we don't have to search for the file.
1028 the module, so we don't have to search for the file.
1019
1029
1020 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1030 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1021
1031
1022 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1032 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1023
1033
1024 2007-04-30 Ville Vainio <vivainio@gmail.com>
1034 2007-04-30 Ville Vainio <vivainio@gmail.com>
1025
1035
1026 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1036 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1027 user has illegal (non-ascii) home directory name
1037 user has illegal (non-ascii) home directory name
1028
1038
1029 2007-04-27 Ville Vainio <vivainio@gmail.com>
1039 2007-04-27 Ville Vainio <vivainio@gmail.com>
1030
1040
1031 * platutils_win32.py: implement set_term_title for windows
1041 * platutils_win32.py: implement set_term_title for windows
1032
1042
1033 * Update version number
1043 * Update version number
1034
1044
1035 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1045 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1036
1046
1037 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1047 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1038
1048
1039 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1049 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1040 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1050 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1041 bug discovered by Ville).
1051 bug discovered by Ville).
1042
1052
1043 2007-04-26 Ville Vainio <vivainio@gmail.com>
1053 2007-04-26 Ville Vainio <vivainio@gmail.com>
1044
1054
1045 * Extensions/ipy_completers.py: Olivier's module completer now
1055 * Extensions/ipy_completers.py: Olivier's module completer now
1046 saves the list of root modules if it takes > 4 secs on the first run.
1056 saves the list of root modules if it takes > 4 secs on the first run.
1047
1057
1048 * Magic.py (%rehashx): %rehashx now clears the completer cache
1058 * Magic.py (%rehashx): %rehashx now clears the completer cache
1049
1059
1050
1060
1051 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1061 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1052
1062
1053 * ipython.el: fix incorrect color scheme, reported by Stefan.
1063 * ipython.el: fix incorrect color scheme, reported by Stefan.
1054 Closes #149.
1064 Closes #149.
1055
1065
1056 * IPython/PyColorize.py (Parser.format2): fix state-handling
1066 * IPython/PyColorize.py (Parser.format2): fix state-handling
1057 logic. I still don't like how that code handles state, but at
1067 logic. I still don't like how that code handles state, but at
1058 least now it should be correct, if inelegant. Closes #146.
1068 least now it should be correct, if inelegant. Closes #146.
1059
1069
1060 2007-04-25 Ville Vainio <vivainio@gmail.com>
1070 2007-04-25 Ville Vainio <vivainio@gmail.com>
1061
1071
1062 * Extensions/ipy_which.py: added extension for %which magic, works
1072 * Extensions/ipy_which.py: added extension for %which magic, works
1063 a lot like unix 'which' but also finds and expands aliases, and
1073 a lot like unix 'which' but also finds and expands aliases, and
1064 allows wildcards.
1074 allows wildcards.
1065
1075
1066 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1076 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1067 as opposed to returning nothing.
1077 as opposed to returning nothing.
1068
1078
1069 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1079 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1070 ipy_stock_completers on default profile, do import on sh profile.
1080 ipy_stock_completers on default profile, do import on sh profile.
1071
1081
1072 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1082 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1073
1083
1074 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1084 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1075 like ipython.py foo.py which raised a IndexError.
1085 like ipython.py foo.py which raised a IndexError.
1076
1086
1077 2007-04-21 Ville Vainio <vivainio@gmail.com>
1087 2007-04-21 Ville Vainio <vivainio@gmail.com>
1078
1088
1079 * Extensions/ipy_extutil.py: added extension to manage other ipython
1089 * Extensions/ipy_extutil.py: added extension to manage other ipython
1080 extensions. Now only supports 'ls' == list extensions.
1090 extensions. Now only supports 'ls' == list extensions.
1081
1091
1082 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1092 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1083
1093
1084 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1094 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1085 would prevent use of the exception system outside of a running
1095 would prevent use of the exception system outside of a running
1086 IPython instance.
1096 IPython instance.
1087
1097
1088 2007-04-20 Ville Vainio <vivainio@gmail.com>
1098 2007-04-20 Ville Vainio <vivainio@gmail.com>
1089
1099
1090 * Extensions/ipy_render.py: added extension for easy
1100 * Extensions/ipy_render.py: added extension for easy
1091 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1101 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1092 'Iptl' template notation,
1102 'Iptl' template notation,
1093
1103
1094 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1104 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1095 safer & faster 'import' completer.
1105 safer & faster 'import' completer.
1096
1106
1097 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1107 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1098 and _ip.defalias(name, command).
1108 and _ip.defalias(name, command).
1099
1109
1100 * Extensions/ipy_exportdb.py: New extension for exporting all the
1110 * Extensions/ipy_exportdb.py: New extension for exporting all the
1101 %store'd data in a portable format (normal ipapi calls like
1111 %store'd data in a portable format (normal ipapi calls like
1102 defmacro() etc.)
1112 defmacro() etc.)
1103
1113
1104 2007-04-19 Ville Vainio <vivainio@gmail.com>
1114 2007-04-19 Ville Vainio <vivainio@gmail.com>
1105
1115
1106 * upgrade_dir.py: skip junk files like *.pyc
1116 * upgrade_dir.py: skip junk files like *.pyc
1107
1117
1108 * Release.py: version number to 0.8.1
1118 * Release.py: version number to 0.8.1
1109
1119
1110 2007-04-18 Ville Vainio <vivainio@gmail.com>
1120 2007-04-18 Ville Vainio <vivainio@gmail.com>
1111
1121
1112 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1122 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1113 and later on win32.
1123 and later on win32.
1114
1124
1115 2007-04-16 Ville Vainio <vivainio@gmail.com>
1125 2007-04-16 Ville Vainio <vivainio@gmail.com>
1116
1126
1117 * iplib.py (showtraceback): Do not crash when running w/o readline.
1127 * iplib.py (showtraceback): Do not crash when running w/o readline.
1118
1128
1119 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1129 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1120
1130
1121 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1131 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1122 sorted (case sensitive with files and dirs mixed).
1132 sorted (case sensitive with files and dirs mixed).
1123
1133
1124 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1134 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1125
1135
1126 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1136 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1127
1137
1128 2007-04-10 *** Released version 0.8.0
1138 2007-04-10 *** Released version 0.8.0
1129
1139
1130 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1140 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1131
1141
1132 * Tag 0.8.0 for release.
1142 * Tag 0.8.0 for release.
1133
1143
1134 * IPython/iplib.py (reloadhist): add API function to cleanly
1144 * IPython/iplib.py (reloadhist): add API function to cleanly
1135 reload the readline history, which was growing inappropriately on
1145 reload the readline history, which was growing inappropriately on
1136 every %run call.
1146 every %run call.
1137
1147
1138 * win32_manual_post_install.py (run): apply last part of Nicolas
1148 * win32_manual_post_install.py (run): apply last part of Nicolas
1139 Pernetty's patch (I'd accidentally applied it in a different
1149 Pernetty's patch (I'd accidentally applied it in a different
1140 directory and this particular file didn't get patched).
1150 directory and this particular file didn't get patched).
1141
1151
1142 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1152 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1143
1153
1144 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1154 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1145 find the main thread id and use the proper API call. Thanks to
1155 find the main thread id and use the proper API call. Thanks to
1146 Stefan for the fix.
1156 Stefan for the fix.
1147
1157
1148 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1158 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1149 unit tests to reflect fixed ticket #52, and add more tests sent by
1159 unit tests to reflect fixed ticket #52, and add more tests sent by
1150 him.
1160 him.
1151
1161
1152 * IPython/iplib.py (raw_input): restore the readline completer
1162 * IPython/iplib.py (raw_input): restore the readline completer
1153 state on every input, in case third-party code messed it up.
1163 state on every input, in case third-party code messed it up.
1154 (_prefilter): revert recent addition of early-escape checks which
1164 (_prefilter): revert recent addition of early-escape checks which
1155 prevent many valid alias calls from working.
1165 prevent many valid alias calls from working.
1156
1166
1157 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1167 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1158 flag for sigint handler so we don't run a full signal() call on
1168 flag for sigint handler so we don't run a full signal() call on
1159 each runcode access.
1169 each runcode access.
1160
1170
1161 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1171 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1162 message.
1172 message.
1163
1173
1164 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1174 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1165
1175
1166 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1176 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1167 asynchronous exceptions working, i.e., Ctrl-C can actually
1177 asynchronous exceptions working, i.e., Ctrl-C can actually
1168 interrupt long-running code in the multithreaded shells.
1178 interrupt long-running code in the multithreaded shells.
1169
1179
1170 This is using Tomer Filiba's great ctypes-based trick:
1180 This is using Tomer Filiba's great ctypes-based trick:
1171 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1181 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1172 this in the past, but hadn't been able to make it work before. So
1182 this in the past, but hadn't been able to make it work before. So
1173 far it looks like it's actually running, but this needs more
1183 far it looks like it's actually running, but this needs more
1174 testing. If it really works, I'll be *very* happy, and we'll owe
1184 testing. If it really works, I'll be *very* happy, and we'll owe
1175 a huge thank you to Tomer. My current implementation is ugly,
1185 a huge thank you to Tomer. My current implementation is ugly,
1176 hackish and uses nasty globals, but I don't want to try and clean
1186 hackish and uses nasty globals, but I don't want to try and clean
1177 anything up until we know if it actually works.
1187 anything up until we know if it actually works.
1178
1188
1179 NOTE: this feature needs ctypes to work. ctypes is included in
1189 NOTE: this feature needs ctypes to work. ctypes is included in
1180 Python2.5, but 2.4 users will need to manually install it. This
1190 Python2.5, but 2.4 users will need to manually install it. This
1181 feature makes multi-threaded shells so much more usable that it's
1191 feature makes multi-threaded shells so much more usable that it's
1182 a minor price to pay (ctypes is very easy to install, already a
1192 a minor price to pay (ctypes is very easy to install, already a
1183 requirement for win32 and available in major linux distros).
1193 requirement for win32 and available in major linux distros).
1184
1194
1185 2007-04-04 Ville Vainio <vivainio@gmail.com>
1195 2007-04-04 Ville Vainio <vivainio@gmail.com>
1186
1196
1187 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1197 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1188 Moved implementations of 'bundled' completers to ipy_completers.py,
1198 Moved implementations of 'bundled' completers to ipy_completers.py,
1189 they are only enabled in ipy_stock_completers.py.
1199 they are only enabled in ipy_stock_completers.py.
1190
1200
1191 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1201 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1192
1202
1193 * IPython/PyColorize.py (Parser.format2): Fix identation of
1203 * IPython/PyColorize.py (Parser.format2): Fix identation of
1194 colorzied output and return early if color scheme is NoColor, to
1204 colorzied output and return early if color scheme is NoColor, to
1195 avoid unnecessary and expensive tokenization. Closes #131.
1205 avoid unnecessary and expensive tokenization. Closes #131.
1196
1206
1197 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1207 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1198
1208
1199 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1209 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1200 has a critical bug (a missing import that makes post-mortem not
1210 has a critical bug (a missing import that makes post-mortem not
1201 work at all). Unfortunately as of this time, this is the version
1211 work at all). Unfortunately as of this time, this is the version
1202 shipped with Ubuntu Edgy, so quite a few people have this one. I
1212 shipped with Ubuntu Edgy, so quite a few people have this one. I
1203 hope Edgy will update to a more recent package.
1213 hope Edgy will update to a more recent package.
1204
1214
1205 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1215 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1206
1216
1207 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1217 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1208 set by Stefan (only the first part had been applied before).
1218 set by Stefan (only the first part had been applied before).
1209
1219
1210 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1220 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1211 remove usage of the dangerous pkgutil.walk_packages(). See
1221 remove usage of the dangerous pkgutil.walk_packages(). See
1212 details in comments left in the code.
1222 details in comments left in the code.
1213
1223
1214 * IPython/Magic.py (magic_whos): add support for numpy arrays
1224 * IPython/Magic.py (magic_whos): add support for numpy arrays
1215 similar to what we had for Numeric.
1225 similar to what we had for Numeric.
1216
1226
1217 * IPython/completer.py (IPCompleter.complete): extend the
1227 * IPython/completer.py (IPCompleter.complete): extend the
1218 complete() call API to support completions by other mechanisms
1228 complete() call API to support completions by other mechanisms
1219 than readline. Closes #109.
1229 than readline. Closes #109.
1220
1230
1221 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1231 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1222 protect against a bug in Python's execfile(). Closes #123.
1232 protect against a bug in Python's execfile(). Closes #123.
1223
1233
1224 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1234 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1225
1235
1226 * IPython/iplib.py (split_user_input): ensure that when splitting
1236 * IPython/iplib.py (split_user_input): ensure that when splitting
1227 user input, the part that can be treated as a python name is pure
1237 user input, the part that can be treated as a python name is pure
1228 ascii (Python identifiers MUST be pure ascii). Part of the
1238 ascii (Python identifiers MUST be pure ascii). Part of the
1229 ongoing Unicode support work.
1239 ongoing Unicode support work.
1230
1240
1231 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1241 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1232 actual prompt number, without any coloring. This allows users to
1242 actual prompt number, without any coloring. This allows users to
1233 produce numbered prompts with their own colors. Added after a
1243 produce numbered prompts with their own colors. Added after a
1234 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1244 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1235
1245
1236 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1246 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1237
1247
1238 * IPython/Extensions/igrid.py: Map the return key
1248 * IPython/Extensions/igrid.py: Map the return key
1239 to enter() and shift-return to enterattr().
1249 to enter() and shift-return to enterattr().
1240
1250
1241 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1251 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1242
1252
1243 * IPython/Magic.py (magic_psearch): add unicode support by
1253 * IPython/Magic.py (magic_psearch): add unicode support by
1244 encoding to ascii the input, since this routine also only deals
1254 encoding to ascii the input, since this routine also only deals
1245 with valid Python names. Fixes a bug reported by Stefan.
1255 with valid Python names. Fixes a bug reported by Stefan.
1246
1256
1247 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1257 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1248
1258
1249 * IPython/Magic.py (_inspect): convert unicode input into ascii
1259 * IPython/Magic.py (_inspect): convert unicode input into ascii
1250 before trying to evaluate it as a Python identifier. This fixes a
1260 before trying to evaluate it as a Python identifier. This fixes a
1251 problem that the new unicode support had introduced when analyzing
1261 problem that the new unicode support had introduced when analyzing
1252 long definition lines for functions.
1262 long definition lines for functions.
1253
1263
1254 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1264 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1255
1265
1256 * IPython/Extensions/igrid.py: Fix picking. Using
1266 * IPython/Extensions/igrid.py: Fix picking. Using
1257 igrid with wxPython 2.6 and -wthread should work now.
1267 igrid with wxPython 2.6 and -wthread should work now.
1258 igrid.display() simply tries to create a frame without
1268 igrid.display() simply tries to create a frame without
1259 an application. Only if this fails an application is created.
1269 an application. Only if this fails an application is created.
1260
1270
1261 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1271 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1262
1272
1263 * IPython/Extensions/path.py: Updated to version 2.2.
1273 * IPython/Extensions/path.py: Updated to version 2.2.
1264
1274
1265 2007-03-23 Ville Vainio <vivainio@gmail.com>
1275 2007-03-23 Ville Vainio <vivainio@gmail.com>
1266
1276
1267 * iplib.py: recursive alias expansion now works better, so that
1277 * iplib.py: recursive alias expansion now works better, so that
1268 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1278 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1269 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1279 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1270
1280
1271 * Extensions/ipy_gnuglobal.py added, provides %global magic
1281 * Extensions/ipy_gnuglobal.py added, provides %global magic
1272 for users of http://www.gnu.org/software/global
1282 for users of http://www.gnu.org/software/global
1273
1283
1274 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1284 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1275 Closes #52. Patch by Stefan van der Walt.
1285 Closes #52. Patch by Stefan van der Walt.
1276
1286
1277 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1287 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1278
1288
1279 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1289 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1280 respect the __file__ attribute when using %run. Thanks to a bug
1290 respect the __file__ attribute when using %run. Thanks to a bug
1281 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1291 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1282
1292
1283 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1293 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1284
1294
1285 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1295 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1286 input. Patch sent by Stefan.
1296 input. Patch sent by Stefan.
1287
1297
1288 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1298 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1289 * IPython/Extensions/ipy_stock_completer.py
1299 * IPython/Extensions/ipy_stock_completer.py
1290 shlex_split, fix bug in shlex_split. len function
1300 shlex_split, fix bug in shlex_split. len function
1291 call was missing an if statement. Caused shlex_split to
1301 call was missing an if statement. Caused shlex_split to
1292 sometimes return "" as last element.
1302 sometimes return "" as last element.
1293
1303
1294 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1304 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1295
1305
1296 * IPython/completer.py
1306 * IPython/completer.py
1297 (IPCompleter.file_matches.single_dir_expand): fix a problem
1307 (IPCompleter.file_matches.single_dir_expand): fix a problem
1298 reported by Stefan, where directories containign a single subdir
1308 reported by Stefan, where directories containign a single subdir
1299 would be completed too early.
1309 would be completed too early.
1300
1310
1301 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1311 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1302 pylab import *' when -pylab is given be optional. A new flag,
1312 pylab import *' when -pylab is given be optional. A new flag,
1303 pylab_import_all controls this behavior, the default is True for
1313 pylab_import_all controls this behavior, the default is True for
1304 backwards compatibility.
1314 backwards compatibility.
1305
1315
1306 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1316 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1307 modified) R. Bernstein's patch for fully syntax highlighted
1317 modified) R. Bernstein's patch for fully syntax highlighted
1308 tracebacks. The functionality is also available under ultraTB for
1318 tracebacks. The functionality is also available under ultraTB for
1309 non-ipython users (someone using ultraTB but outside an ipython
1319 non-ipython users (someone using ultraTB but outside an ipython
1310 session). They can select the color scheme by setting the
1320 session). They can select the color scheme by setting the
1311 module-level global DEFAULT_SCHEME. The highlight functionality
1321 module-level global DEFAULT_SCHEME. The highlight functionality
1312 also works when debugging.
1322 also works when debugging.
1313
1323
1314 * IPython/genutils.py (IOStream.close): small patch by
1324 * IPython/genutils.py (IOStream.close): small patch by
1315 R. Bernstein for improved pydb support.
1325 R. Bernstein for improved pydb support.
1316
1326
1317 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1327 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1318 DaveS <davls@telus.net> to improve support of debugging under
1328 DaveS <davls@telus.net> to improve support of debugging under
1319 NTEmacs, including improved pydb behavior.
1329 NTEmacs, including improved pydb behavior.
1320
1330
1321 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1331 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1322 Python 2.5, where the stats object API changed a little. Thanks
1332 Python 2.5, where the stats object API changed a little. Thanks
1323 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1333 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1324
1334
1325 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1335 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1326 Pernetty's patch to improve support for (X)Emacs under Win32.
1336 Pernetty's patch to improve support for (X)Emacs under Win32.
1327
1337
1328 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1338 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1329
1339
1330 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1340 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1331 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1341 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1332 a report by Nik Tautenhahn.
1342 a report by Nik Tautenhahn.
1333
1343
1334 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1344 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1335
1345
1336 * setup.py: Add the igrid help files to the list of data files
1346 * setup.py: Add the igrid help files to the list of data files
1337 to be installed alongside igrid.
1347 to be installed alongside igrid.
1338 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1348 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1339 Show the input object of the igrid browser as the window tile.
1349 Show the input object of the igrid browser as the window tile.
1340 Show the object the cursor is on in the statusbar.
1350 Show the object the cursor is on in the statusbar.
1341
1351
1342 2007-03-15 Ville Vainio <vivainio@gmail.com>
1352 2007-03-15 Ville Vainio <vivainio@gmail.com>
1343
1353
1344 * Extensions/ipy_stock_completers.py: Fixed exception
1354 * Extensions/ipy_stock_completers.py: Fixed exception
1345 on mismatching quotes in %run completer. Patch by
1355 on mismatching quotes in %run completer. Patch by
1346 Jorgen Stenarson. Closes #127.
1356 Jorgen Stenarson. Closes #127.
1347
1357
1348 2007-03-14 Ville Vainio <vivainio@gmail.com>
1358 2007-03-14 Ville Vainio <vivainio@gmail.com>
1349
1359
1350 * Extensions/ext_rehashdir.py: Do not do auto_alias
1360 * Extensions/ext_rehashdir.py: Do not do auto_alias
1351 in %rehashdir, it clobbers %store'd aliases.
1361 in %rehashdir, it clobbers %store'd aliases.
1352
1362
1353 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1363 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1354 (beefed up %env) imported for sh profile.
1364 (beefed up %env) imported for sh profile.
1355
1365
1356 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1366 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1357
1367
1358 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1368 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1359 as the default browser.
1369 as the default browser.
1360 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1370 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1361 As igrid displays all attributes it ever encounters, fetch() (which has
1371 As igrid displays all attributes it ever encounters, fetch() (which has
1362 been renamed to _fetch()) doesn't have to recalculate the display attributes
1372 been renamed to _fetch()) doesn't have to recalculate the display attributes
1363 every time a new item is fetched. This should speed up scrolling.
1373 every time a new item is fetched. This should speed up scrolling.
1364
1374
1365 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1375 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1366
1376
1367 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1377 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1368 Schmolck's recently reported tab-completion bug (my previous one
1378 Schmolck's recently reported tab-completion bug (my previous one
1369 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1379 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1370
1380
1371 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1381 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1372
1382
1373 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1383 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1374 Close help window if exiting igrid.
1384 Close help window if exiting igrid.
1375
1385
1376 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1386 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1377
1387
1378 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1388 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1379 before calling functions from readline.
1389 before calling functions from readline.
1380
1390
1381 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1391 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1382
1392
1383 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1393 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1384 igrid is a wxPython-based display object for ipipe. If your system has
1394 igrid is a wxPython-based display object for ipipe. If your system has
1385 wx installed igrid will be the default display. Without wx ipipe falls
1395 wx installed igrid will be the default display. Without wx ipipe falls
1386 back to ibrowse (which needs curses). If no curses is installed ipipe
1396 back to ibrowse (which needs curses). If no curses is installed ipipe
1387 falls back to idump.
1397 falls back to idump.
1388
1398
1389 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1399 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1390
1400
1391 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1401 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1392 my changes from yesterday, they introduced bugs. Will reactivate
1402 my changes from yesterday, they introduced bugs. Will reactivate
1393 once I get a correct solution, which will be much easier thanks to
1403 once I get a correct solution, which will be much easier thanks to
1394 Dan Milstein's new prefilter test suite.
1404 Dan Milstein's new prefilter test suite.
1395
1405
1396 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1406 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1397
1407
1398 * IPython/iplib.py (split_user_input): fix input splitting so we
1408 * IPython/iplib.py (split_user_input): fix input splitting so we
1399 don't attempt attribute accesses on things that can't possibly be
1409 don't attempt attribute accesses on things that can't possibly be
1400 valid Python attributes. After a bug report by Alex Schmolck.
1410 valid Python attributes. After a bug report by Alex Schmolck.
1401 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1411 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1402 %magic with explicit % prefix.
1412 %magic with explicit % prefix.
1403
1413
1404 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1414 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1405
1415
1406 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1416 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1407 avoid a DeprecationWarning from GTK.
1417 avoid a DeprecationWarning from GTK.
1408
1418
1409 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1419 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1410
1420
1411 * IPython/genutils.py (clock): I modified clock() to return total
1421 * IPython/genutils.py (clock): I modified clock() to return total
1412 time, user+system. This is a more commonly needed metric. I also
1422 time, user+system. This is a more commonly needed metric. I also
1413 introduced the new clocku/clocks to get only user/system time if
1423 introduced the new clocku/clocks to get only user/system time if
1414 one wants those instead.
1424 one wants those instead.
1415
1425
1416 ***WARNING: API CHANGE*** clock() used to return only user time,
1426 ***WARNING: API CHANGE*** clock() used to return only user time,
1417 so if you want exactly the same results as before, use clocku
1427 so if you want exactly the same results as before, use clocku
1418 instead.
1428 instead.
1419
1429
1420 2007-02-22 Ville Vainio <vivainio@gmail.com>
1430 2007-02-22 Ville Vainio <vivainio@gmail.com>
1421
1431
1422 * IPython/Extensions/ipy_p4.py: Extension for improved
1432 * IPython/Extensions/ipy_p4.py: Extension for improved
1423 p4 (perforce version control system) experience.
1433 p4 (perforce version control system) experience.
1424 Adds %p4 magic with p4 command completion and
1434 Adds %p4 magic with p4 command completion and
1425 automatic -G argument (marshall output as python dict)
1435 automatic -G argument (marshall output as python dict)
1426
1436
1427 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1437 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1428
1438
1429 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1439 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1430 stop marks.
1440 stop marks.
1431 (ClearingMixin): a simple mixin to easily make a Demo class clear
1441 (ClearingMixin): a simple mixin to easily make a Demo class clear
1432 the screen in between blocks and have empty marquees. The
1442 the screen in between blocks and have empty marquees. The
1433 ClearDemo and ClearIPDemo classes that use it are included.
1443 ClearDemo and ClearIPDemo classes that use it are included.
1434
1444
1435 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1445 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1436
1446
1437 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1447 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1438 protect against exceptions at Python shutdown time. Patch
1448 protect against exceptions at Python shutdown time. Patch
1439 sumbmitted to upstream.
1449 sumbmitted to upstream.
1440
1450
1441 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1451 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1442
1452
1443 * IPython/Extensions/ibrowse.py: If entering the first object level
1453 * IPython/Extensions/ibrowse.py: If entering the first object level
1444 (i.e. the object for which the browser has been started) fails,
1454 (i.e. the object for which the browser has been started) fails,
1445 now the error is raised directly (aborting the browser) instead of
1455 now the error is raised directly (aborting the browser) instead of
1446 running into an empty levels list later.
1456 running into an empty levels list later.
1447
1457
1448 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1458 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1449
1459
1450 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1460 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1451 for the noitem object.
1461 for the noitem object.
1452
1462
1453 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1463 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1454
1464
1455 * IPython/completer.py (Completer.attr_matches): Fix small
1465 * IPython/completer.py (Completer.attr_matches): Fix small
1456 tab-completion bug with Enthought Traits objects with units.
1466 tab-completion bug with Enthought Traits objects with units.
1457 Thanks to a bug report by Tom Denniston
1467 Thanks to a bug report by Tom Denniston
1458 <tom.denniston-AT-alum.dartmouth.org>.
1468 <tom.denniston-AT-alum.dartmouth.org>.
1459
1469
1460 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1470 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1461
1471
1462 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1472 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1463 bug where only .ipy or .py would be completed. Once the first
1473 bug where only .ipy or .py would be completed. Once the first
1464 argument to %run has been given, all completions are valid because
1474 argument to %run has been given, all completions are valid because
1465 they are the arguments to the script, which may well be non-python
1475 they are the arguments to the script, which may well be non-python
1466 filenames.
1476 filenames.
1467
1477
1468 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1478 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1469 to irunner to allow it to correctly support real doctesting of
1479 to irunner to allow it to correctly support real doctesting of
1470 out-of-process ipython code.
1480 out-of-process ipython code.
1471
1481
1472 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1482 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1473 title an option (-noterm_title) because it completely breaks
1483 title an option (-noterm_title) because it completely breaks
1474 doctesting.
1484 doctesting.
1475
1485
1476 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1486 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1477
1487
1478 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1488 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1479
1489
1480 * IPython/irunner.py (main): fix small bug where extensions were
1490 * IPython/irunner.py (main): fix small bug where extensions were
1481 not being correctly recognized.
1491 not being correctly recognized.
1482
1492
1483 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1493 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1484
1494
1485 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1495 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1486 a string containing a single line yields the string itself as the
1496 a string containing a single line yields the string itself as the
1487 only item.
1497 only item.
1488
1498
1489 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1499 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1490 object if it's the same as the one on the last level (This avoids
1500 object if it's the same as the one on the last level (This avoids
1491 infinite recursion for one line strings).
1501 infinite recursion for one line strings).
1492
1502
1493 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1503 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1494
1504
1495 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1505 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1496 all output streams before printing tracebacks. This ensures that
1506 all output streams before printing tracebacks. This ensures that
1497 user output doesn't end up interleaved with traceback output.
1507 user output doesn't end up interleaved with traceback output.
1498
1508
1499 2007-01-10 Ville Vainio <vivainio@gmail.com>
1509 2007-01-10 Ville Vainio <vivainio@gmail.com>
1500
1510
1501 * Extensions/envpersist.py: Turbocharged %env that remembers
1511 * Extensions/envpersist.py: Turbocharged %env that remembers
1502 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1512 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1503 "%env VISUAL=jed".
1513 "%env VISUAL=jed".
1504
1514
1505 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1515 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1506
1516
1507 * IPython/iplib.py (showtraceback): ensure that we correctly call
1517 * IPython/iplib.py (showtraceback): ensure that we correctly call
1508 custom handlers in all cases (some with pdb were slipping through,
1518 custom handlers in all cases (some with pdb were slipping through,
1509 but I'm not exactly sure why).
1519 but I'm not exactly sure why).
1510
1520
1511 * IPython/Debugger.py (Tracer.__init__): added new class to
1521 * IPython/Debugger.py (Tracer.__init__): added new class to
1512 support set_trace-like usage of IPython's enhanced debugger.
1522 support set_trace-like usage of IPython's enhanced debugger.
1513
1523
1514 2006-12-24 Ville Vainio <vivainio@gmail.com>
1524 2006-12-24 Ville Vainio <vivainio@gmail.com>
1515
1525
1516 * ipmaker.py: more informative message when ipy_user_conf
1526 * ipmaker.py: more informative message when ipy_user_conf
1517 import fails (suggest running %upgrade).
1527 import fails (suggest running %upgrade).
1518
1528
1519 * tools/run_ipy_in_profiler.py: Utility to see where
1529 * tools/run_ipy_in_profiler.py: Utility to see where
1520 the time during IPython startup is spent.
1530 the time during IPython startup is spent.
1521
1531
1522 2006-12-20 Ville Vainio <vivainio@gmail.com>
1532 2006-12-20 Ville Vainio <vivainio@gmail.com>
1523
1533
1524 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1534 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1525
1535
1526 * ipapi.py: Add new ipapi method, expand_alias.
1536 * ipapi.py: Add new ipapi method, expand_alias.
1527
1537
1528 * Release.py: Bump up version to 0.7.4.svn
1538 * Release.py: Bump up version to 0.7.4.svn
1529
1539
1530 2006-12-17 Ville Vainio <vivainio@gmail.com>
1540 2006-12-17 Ville Vainio <vivainio@gmail.com>
1531
1541
1532 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1542 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1533 to work properly on posix too
1543 to work properly on posix too
1534
1544
1535 * Release.py: Update revnum (version is still just 0.7.3).
1545 * Release.py: Update revnum (version is still just 0.7.3).
1536
1546
1537 2006-12-15 Ville Vainio <vivainio@gmail.com>
1547 2006-12-15 Ville Vainio <vivainio@gmail.com>
1538
1548
1539 * scripts/ipython_win_post_install: create ipython.py in
1549 * scripts/ipython_win_post_install: create ipython.py in
1540 prefix + "/scripts".
1550 prefix + "/scripts".
1541
1551
1542 * Release.py: Update version to 0.7.3.
1552 * Release.py: Update version to 0.7.3.
1543
1553
1544 2006-12-14 Ville Vainio <vivainio@gmail.com>
1554 2006-12-14 Ville Vainio <vivainio@gmail.com>
1545
1555
1546 * scripts/ipython_win_post_install: Overwrite old shortcuts
1556 * scripts/ipython_win_post_install: Overwrite old shortcuts
1547 if they already exist
1557 if they already exist
1548
1558
1549 * Release.py: release 0.7.3rc2
1559 * Release.py: release 0.7.3rc2
1550
1560
1551 2006-12-13 Ville Vainio <vivainio@gmail.com>
1561 2006-12-13 Ville Vainio <vivainio@gmail.com>
1552
1562
1553 * Branch and update Release.py for 0.7.3rc1
1563 * Branch and update Release.py for 0.7.3rc1
1554
1564
1555 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1565 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1556
1566
1557 * IPython/Shell.py (IPShellWX): update for current WX naming
1567 * IPython/Shell.py (IPShellWX): update for current WX naming
1558 conventions, to avoid a deprecation warning with current WX
1568 conventions, to avoid a deprecation warning with current WX
1559 versions. Thanks to a report by Danny Shevitz.
1569 versions. Thanks to a report by Danny Shevitz.
1560
1570
1561 2006-12-12 Ville Vainio <vivainio@gmail.com>
1571 2006-12-12 Ville Vainio <vivainio@gmail.com>
1562
1572
1563 * ipmaker.py: apply david cournapeau's patch to make
1573 * ipmaker.py: apply david cournapeau's patch to make
1564 import_some work properly even when ipythonrc does
1574 import_some work properly even when ipythonrc does
1565 import_some on empty list (it was an old bug!).
1575 import_some on empty list (it was an old bug!).
1566
1576
1567 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1577 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1568 Add deprecation note to ipythonrc and a url to wiki
1578 Add deprecation note to ipythonrc and a url to wiki
1569 in ipy_user_conf.py
1579 in ipy_user_conf.py
1570
1580
1571
1581
1572 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1582 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1573 as if it was typed on IPython command prompt, i.e.
1583 as if it was typed on IPython command prompt, i.e.
1574 as IPython script.
1584 as IPython script.
1575
1585
1576 * example-magic.py, magic_grepl.py: remove outdated examples
1586 * example-magic.py, magic_grepl.py: remove outdated examples
1577
1587
1578 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1588 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1579
1589
1580 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1590 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1581 is called before any exception has occurred.
1591 is called before any exception has occurred.
1582
1592
1583 2006-12-08 Ville Vainio <vivainio@gmail.com>
1593 2006-12-08 Ville Vainio <vivainio@gmail.com>
1584
1594
1585 * Extensions/ipy_stock_completers.py: fix cd completer
1595 * Extensions/ipy_stock_completers.py: fix cd completer
1586 to translate /'s to \'s again.
1596 to translate /'s to \'s again.
1587
1597
1588 * completer.py: prevent traceback on file completions w/
1598 * completer.py: prevent traceback on file completions w/
1589 backslash.
1599 backslash.
1590
1600
1591 * Release.py: Update release number to 0.7.3b3 for release
1601 * Release.py: Update release number to 0.7.3b3 for release
1592
1602
1593 2006-12-07 Ville Vainio <vivainio@gmail.com>
1603 2006-12-07 Ville Vainio <vivainio@gmail.com>
1594
1604
1595 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1605 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1596 while executing external code. Provides more shell-like behaviour
1606 while executing external code. Provides more shell-like behaviour
1597 and overall better response to ctrl + C / ctrl + break.
1607 and overall better response to ctrl + C / ctrl + break.
1598
1608
1599 * tools/make_tarball.py: new script to create tarball straight from svn
1609 * tools/make_tarball.py: new script to create tarball straight from svn
1600 (setup.py sdist doesn't work on win32).
1610 (setup.py sdist doesn't work on win32).
1601
1611
1602 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1612 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1603 on dirnames with spaces and use the default completer instead.
1613 on dirnames with spaces and use the default completer instead.
1604
1614
1605 * Revision.py: Change version to 0.7.3b2 for release.
1615 * Revision.py: Change version to 0.7.3b2 for release.
1606
1616
1607 2006-12-05 Ville Vainio <vivainio@gmail.com>
1617 2006-12-05 Ville Vainio <vivainio@gmail.com>
1608
1618
1609 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1619 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1610 pydb patch 4 (rm debug printing, py 2.5 checking)
1620 pydb patch 4 (rm debug printing, py 2.5 checking)
1611
1621
1612 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1622 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1613 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1623 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1614 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1624 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1615 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1625 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1616 object the cursor was on before the refresh. The command "markrange" is
1626 object the cursor was on before the refresh. The command "markrange" is
1617 mapped to "%" now.
1627 mapped to "%" now.
1618 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1628 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1619
1629
1620 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1630 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1621
1631
1622 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1632 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1623 interactive debugger on the last traceback, without having to call
1633 interactive debugger on the last traceback, without having to call
1624 %pdb and rerun your code. Made minor changes in various modules,
1634 %pdb and rerun your code. Made minor changes in various modules,
1625 should automatically recognize pydb if available.
1635 should automatically recognize pydb if available.
1626
1636
1627 2006-11-28 Ville Vainio <vivainio@gmail.com>
1637 2006-11-28 Ville Vainio <vivainio@gmail.com>
1628
1638
1629 * completer.py: If the text start with !, show file completions
1639 * completer.py: If the text start with !, show file completions
1630 properly. This helps when trying to complete command name
1640 properly. This helps when trying to complete command name
1631 for shell escapes.
1641 for shell escapes.
1632
1642
1633 2006-11-27 Ville Vainio <vivainio@gmail.com>
1643 2006-11-27 Ville Vainio <vivainio@gmail.com>
1634
1644
1635 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1645 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1636 der Walt. Clean up svn and hg completers by using a common
1646 der Walt. Clean up svn and hg completers by using a common
1637 vcs_completer.
1647 vcs_completer.
1638
1648
1639 2006-11-26 Ville Vainio <vivainio@gmail.com>
1649 2006-11-26 Ville Vainio <vivainio@gmail.com>
1640
1650
1641 * Remove ipconfig and %config; you should use _ip.options structure
1651 * Remove ipconfig and %config; you should use _ip.options structure
1642 directly instead!
1652 directly instead!
1643
1653
1644 * genutils.py: add wrap_deprecated function for deprecating callables
1654 * genutils.py: add wrap_deprecated function for deprecating callables
1645
1655
1646 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1656 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1647 _ip.system instead. ipalias is redundant.
1657 _ip.system instead. ipalias is redundant.
1648
1658
1649 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1659 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1650 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1660 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1651 explicit.
1661 explicit.
1652
1662
1653 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1663 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1654 completer. Try it by entering 'hg ' and pressing tab.
1664 completer. Try it by entering 'hg ' and pressing tab.
1655
1665
1656 * macro.py: Give Macro a useful __repr__ method
1666 * macro.py: Give Macro a useful __repr__ method
1657
1667
1658 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1668 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1659
1669
1660 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1670 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1661 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1671 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1662 we don't get a duplicate ipipe module, where registration of the xrepr
1672 we don't get a duplicate ipipe module, where registration of the xrepr
1663 implementation for Text is useless.
1673 implementation for Text is useless.
1664
1674
1665 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1675 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1666
1676
1667 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1677 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1668
1678
1669 2006-11-24 Ville Vainio <vivainio@gmail.com>
1679 2006-11-24 Ville Vainio <vivainio@gmail.com>
1670
1680
1671 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1681 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1672 try to use "cProfile" instead of the slower pure python
1682 try to use "cProfile" instead of the slower pure python
1673 "profile"
1683 "profile"
1674
1684
1675 2006-11-23 Ville Vainio <vivainio@gmail.com>
1685 2006-11-23 Ville Vainio <vivainio@gmail.com>
1676
1686
1677 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1687 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1678 Qt+IPython+Designer link in documentation.
1688 Qt+IPython+Designer link in documentation.
1679
1689
1680 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1690 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1681 correct Pdb object to %pydb.
1691 correct Pdb object to %pydb.
1682
1692
1683
1693
1684 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1694 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1685 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1695 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1686 generic xrepr(), otherwise the list implementation would kick in.
1696 generic xrepr(), otherwise the list implementation would kick in.
1687
1697
1688 2006-11-21 Ville Vainio <vivainio@gmail.com>
1698 2006-11-21 Ville Vainio <vivainio@gmail.com>
1689
1699
1690 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1700 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1691 with one from UserConfig.
1701 with one from UserConfig.
1692
1702
1693 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1703 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1694 it was missing which broke the sh profile.
1704 it was missing which broke the sh profile.
1695
1705
1696 * completer.py: file completer now uses explicit '/' instead
1706 * completer.py: file completer now uses explicit '/' instead
1697 of os.path.join, expansion of 'foo' was broken on win32
1707 of os.path.join, expansion of 'foo' was broken on win32
1698 if there was one directory with name 'foobar'.
1708 if there was one directory with name 'foobar'.
1699
1709
1700 * A bunch of patches from Kirill Smelkov:
1710 * A bunch of patches from Kirill Smelkov:
1701
1711
1702 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1712 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1703
1713
1704 * [patch 7/9] Implement %page -r (page in raw mode) -
1714 * [patch 7/9] Implement %page -r (page in raw mode) -
1705
1715
1706 * [patch 5/9] ScientificPython webpage has moved
1716 * [patch 5/9] ScientificPython webpage has moved
1707
1717
1708 * [patch 4/9] The manual mentions %ds, should be %dhist
1718 * [patch 4/9] The manual mentions %ds, should be %dhist
1709
1719
1710 * [patch 3/9] Kill old bits from %prun doc.
1720 * [patch 3/9] Kill old bits from %prun doc.
1711
1721
1712 * [patch 1/9] Fix typos here and there.
1722 * [patch 1/9] Fix typos here and there.
1713
1723
1714 2006-11-08 Ville Vainio <vivainio@gmail.com>
1724 2006-11-08 Ville Vainio <vivainio@gmail.com>
1715
1725
1716 * completer.py (attr_matches): catch all exceptions raised
1726 * completer.py (attr_matches): catch all exceptions raised
1717 by eval of expr with dots.
1727 by eval of expr with dots.
1718
1728
1719 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1729 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1720
1730
1721 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1731 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1722 input if it starts with whitespace. This allows you to paste
1732 input if it starts with whitespace. This allows you to paste
1723 indented input from any editor without manually having to type in
1733 indented input from any editor without manually having to type in
1724 the 'if 1:', which is convenient when working interactively.
1734 the 'if 1:', which is convenient when working interactively.
1725 Slightly modifed version of a patch by Bo Peng
1735 Slightly modifed version of a patch by Bo Peng
1726 <bpeng-AT-rice.edu>.
1736 <bpeng-AT-rice.edu>.
1727
1737
1728 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1738 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1729
1739
1730 * IPython/irunner.py (main): modified irunner so it automatically
1740 * IPython/irunner.py (main): modified irunner so it automatically
1731 recognizes the right runner to use based on the extension (.py for
1741 recognizes the right runner to use based on the extension (.py for
1732 python, .ipy for ipython and .sage for sage).
1742 python, .ipy for ipython and .sage for sage).
1733
1743
1734 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1744 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1735 visible in ipapi as ip.config(), to programatically control the
1745 visible in ipapi as ip.config(), to programatically control the
1736 internal rc object. There's an accompanying %config magic for
1746 internal rc object. There's an accompanying %config magic for
1737 interactive use, which has been enhanced to match the
1747 interactive use, which has been enhanced to match the
1738 funtionality in ipconfig.
1748 funtionality in ipconfig.
1739
1749
1740 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1750 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1741 so it's not just a toggle, it now takes an argument. Add support
1751 so it's not just a toggle, it now takes an argument. Add support
1742 for a customizable header when making system calls, as the new
1752 for a customizable header when making system calls, as the new
1743 system_header variable in the ipythonrc file.
1753 system_header variable in the ipythonrc file.
1744
1754
1745 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1755 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1746
1756
1747 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1757 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1748 generic functions (using Philip J. Eby's simplegeneric package).
1758 generic functions (using Philip J. Eby's simplegeneric package).
1749 This makes it possible to customize the display of third-party classes
1759 This makes it possible to customize the display of third-party classes
1750 without having to monkeypatch them. xiter() no longer supports a mode
1760 without having to monkeypatch them. xiter() no longer supports a mode
1751 argument and the XMode class has been removed. The same functionality can
1761 argument and the XMode class has been removed. The same functionality can
1752 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1762 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1753 One consequence of the switch to generic functions is that xrepr() and
1763 One consequence of the switch to generic functions is that xrepr() and
1754 xattrs() implementation must define the default value for the mode
1764 xattrs() implementation must define the default value for the mode
1755 argument themselves and xattrs() implementations must return real
1765 argument themselves and xattrs() implementations must return real
1756 descriptors.
1766 descriptors.
1757
1767
1758 * IPython/external: This new subpackage will contain all third-party
1768 * IPython/external: This new subpackage will contain all third-party
1759 packages that are bundled with IPython. (The first one is simplegeneric).
1769 packages that are bundled with IPython. (The first one is simplegeneric).
1760
1770
1761 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1771 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1762 directory which as been dropped in r1703.
1772 directory which as been dropped in r1703.
1763
1773
1764 * IPython/Extensions/ipipe.py (iless): Fixed.
1774 * IPython/Extensions/ipipe.py (iless): Fixed.
1765
1775
1766 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1776 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1767
1777
1768 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1778 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1769
1779
1770 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1780 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1771 handling in variable expansion so that shells and magics recognize
1781 handling in variable expansion so that shells and magics recognize
1772 function local scopes correctly. Bug reported by Brian.
1782 function local scopes correctly. Bug reported by Brian.
1773
1783
1774 * scripts/ipython: remove the very first entry in sys.path which
1784 * scripts/ipython: remove the very first entry in sys.path which
1775 Python auto-inserts for scripts, so that sys.path under IPython is
1785 Python auto-inserts for scripts, so that sys.path under IPython is
1776 as similar as possible to that under plain Python.
1786 as similar as possible to that under plain Python.
1777
1787
1778 * IPython/completer.py (IPCompleter.file_matches): Fix
1788 * IPython/completer.py (IPCompleter.file_matches): Fix
1779 tab-completion so that quotes are not closed unless the completion
1789 tab-completion so that quotes are not closed unless the completion
1780 is unambiguous. After a request by Stefan. Minor cleanups in
1790 is unambiguous. After a request by Stefan. Minor cleanups in
1781 ipy_stock_completers.
1791 ipy_stock_completers.
1782
1792
1783 2006-11-02 Ville Vainio <vivainio@gmail.com>
1793 2006-11-02 Ville Vainio <vivainio@gmail.com>
1784
1794
1785 * ipy_stock_completers.py: Add %run and %cd completers.
1795 * ipy_stock_completers.py: Add %run and %cd completers.
1786
1796
1787 * completer.py: Try running custom completer for both
1797 * completer.py: Try running custom completer for both
1788 "foo" and "%foo" if the command is just "foo". Ignore case
1798 "foo" and "%foo" if the command is just "foo". Ignore case
1789 when filtering possible completions.
1799 when filtering possible completions.
1790
1800
1791 * UserConfig/ipy_user_conf.py: install stock completers as default
1801 * UserConfig/ipy_user_conf.py: install stock completers as default
1792
1802
1793 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1803 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1794 simplified readline history save / restore through a wrapper
1804 simplified readline history save / restore through a wrapper
1795 function
1805 function
1796
1806
1797
1807
1798 2006-10-31 Ville Vainio <vivainio@gmail.com>
1808 2006-10-31 Ville Vainio <vivainio@gmail.com>
1799
1809
1800 * strdispatch.py, completer.py, ipy_stock_completers.py:
1810 * strdispatch.py, completer.py, ipy_stock_completers.py:
1801 Allow str_key ("command") in completer hooks. Implement
1811 Allow str_key ("command") in completer hooks. Implement
1802 trivial completer for 'import' (stdlib modules only). Rename
1812 trivial completer for 'import' (stdlib modules only). Rename
1803 ipy_linux_package_managers.py to ipy_stock_completers.py.
1813 ipy_linux_package_managers.py to ipy_stock_completers.py.
1804 SVN completer.
1814 SVN completer.
1805
1815
1806 * Extensions/ledit.py: %magic line editor for easily and
1816 * Extensions/ledit.py: %magic line editor for easily and
1807 incrementally manipulating lists of strings. The magic command
1817 incrementally manipulating lists of strings. The magic command
1808 name is %led.
1818 name is %led.
1809
1819
1810 2006-10-30 Ville Vainio <vivainio@gmail.com>
1820 2006-10-30 Ville Vainio <vivainio@gmail.com>
1811
1821
1812 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1822 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1813 Bernsteins's patches for pydb integration.
1823 Bernsteins's patches for pydb integration.
1814 http://bashdb.sourceforge.net/pydb/
1824 http://bashdb.sourceforge.net/pydb/
1815
1825
1816 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1826 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1817 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1827 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1818 custom completer hook to allow the users to implement their own
1828 custom completer hook to allow the users to implement their own
1819 completers. See ipy_linux_package_managers.py for example. The
1829 completers. See ipy_linux_package_managers.py for example. The
1820 hook name is 'complete_command'.
1830 hook name is 'complete_command'.
1821
1831
1822 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1832 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1823
1833
1824 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1834 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1825 Numeric leftovers.
1835 Numeric leftovers.
1826
1836
1827 * ipython.el (py-execute-region): apply Stefan's patch to fix
1837 * ipython.el (py-execute-region): apply Stefan's patch to fix
1828 garbled results if the python shell hasn't been previously started.
1838 garbled results if the python shell hasn't been previously started.
1829
1839
1830 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1840 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1831 pretty generic function and useful for other things.
1841 pretty generic function and useful for other things.
1832
1842
1833 * IPython/OInspect.py (getsource): Add customizable source
1843 * IPython/OInspect.py (getsource): Add customizable source
1834 extractor. After a request/patch form W. Stein (SAGE).
1844 extractor. After a request/patch form W. Stein (SAGE).
1835
1845
1836 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1846 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1837 window size to a more reasonable value from what pexpect does,
1847 window size to a more reasonable value from what pexpect does,
1838 since their choice causes wrapping bugs with long input lines.
1848 since their choice causes wrapping bugs with long input lines.
1839
1849
1840 2006-10-28 Ville Vainio <vivainio@gmail.com>
1850 2006-10-28 Ville Vainio <vivainio@gmail.com>
1841
1851
1842 * Magic.py (%run): Save and restore the readline history from
1852 * Magic.py (%run): Save and restore the readline history from
1843 file around %run commands to prevent side effects from
1853 file around %run commands to prevent side effects from
1844 %runned programs that might use readline (e.g. pydb).
1854 %runned programs that might use readline (e.g. pydb).
1845
1855
1846 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1856 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1847 invoking the pydb enhanced debugger.
1857 invoking the pydb enhanced debugger.
1848
1858
1849 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1859 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1850
1860
1851 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1861 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1852 call the base class method and propagate the return value to
1862 call the base class method and propagate the return value to
1853 ifile. This is now done by path itself.
1863 ifile. This is now done by path itself.
1854
1864
1855 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1865 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1856
1866
1857 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1867 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1858 api: set_crash_handler(), to expose the ability to change the
1868 api: set_crash_handler(), to expose the ability to change the
1859 internal crash handler.
1869 internal crash handler.
1860
1870
1861 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1871 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1862 the various parameters of the crash handler so that apps using
1872 the various parameters of the crash handler so that apps using
1863 IPython as their engine can customize crash handling. Ipmlemented
1873 IPython as their engine can customize crash handling. Ipmlemented
1864 at the request of SAGE.
1874 at the request of SAGE.
1865
1875
1866 2006-10-14 Ville Vainio <vivainio@gmail.com>
1876 2006-10-14 Ville Vainio <vivainio@gmail.com>
1867
1877
1868 * Magic.py, ipython.el: applied first "safe" part of Rocky
1878 * Magic.py, ipython.el: applied first "safe" part of Rocky
1869 Bernstein's patch set for pydb integration.
1879 Bernstein's patch set for pydb integration.
1870
1880
1871 * Magic.py (%unalias, %alias): %store'd aliases can now be
1881 * Magic.py (%unalias, %alias): %store'd aliases can now be
1872 removed with '%unalias'. %alias w/o args now shows most
1882 removed with '%unalias'. %alias w/o args now shows most
1873 interesting (stored / manually defined) aliases last
1883 interesting (stored / manually defined) aliases last
1874 where they catch the eye w/o scrolling.
1884 where they catch the eye w/o scrolling.
1875
1885
1876 * Magic.py (%rehashx), ext_rehashdir.py: files with
1886 * Magic.py (%rehashx), ext_rehashdir.py: files with
1877 'py' extension are always considered executable, even
1887 'py' extension are always considered executable, even
1878 when not in PATHEXT environment variable.
1888 when not in PATHEXT environment variable.
1879
1889
1880 2006-10-12 Ville Vainio <vivainio@gmail.com>
1890 2006-10-12 Ville Vainio <vivainio@gmail.com>
1881
1891
1882 * jobctrl.py: Add new "jobctrl" extension for spawning background
1892 * jobctrl.py: Add new "jobctrl" extension for spawning background
1883 processes with "&find /". 'import jobctrl' to try it out. Requires
1893 processes with "&find /". 'import jobctrl' to try it out. Requires
1884 'subprocess' module, standard in python 2.4+.
1894 'subprocess' module, standard in python 2.4+.
1885
1895
1886 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1896 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1887 so if foo -> bar and bar -> baz, then foo -> baz.
1897 so if foo -> bar and bar -> baz, then foo -> baz.
1888
1898
1889 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1899 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1890
1900
1891 * IPython/Magic.py (Magic.parse_options): add a new posix option
1901 * IPython/Magic.py (Magic.parse_options): add a new posix option
1892 to allow parsing of input args in magics that doesn't strip quotes
1902 to allow parsing of input args in magics that doesn't strip quotes
1893 (if posix=False). This also closes %timeit bug reported by
1903 (if posix=False). This also closes %timeit bug reported by
1894 Stefan.
1904 Stefan.
1895
1905
1896 2006-10-03 Ville Vainio <vivainio@gmail.com>
1906 2006-10-03 Ville Vainio <vivainio@gmail.com>
1897
1907
1898 * iplib.py (raw_input, interact): Return ValueError catching for
1908 * iplib.py (raw_input, interact): Return ValueError catching for
1899 raw_input. Fixes infinite loop for sys.stdin.close() or
1909 raw_input. Fixes infinite loop for sys.stdin.close() or
1900 sys.stdout.close().
1910 sys.stdout.close().
1901
1911
1902 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1912 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1903
1913
1904 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1914 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1905 to help in handling doctests. irunner is now pretty useful for
1915 to help in handling doctests. irunner is now pretty useful for
1906 running standalone scripts and simulate a full interactive session
1916 running standalone scripts and simulate a full interactive session
1907 in a format that can be then pasted as a doctest.
1917 in a format that can be then pasted as a doctest.
1908
1918
1909 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1919 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1910 on top of the default (useless) ones. This also fixes the nasty
1920 on top of the default (useless) ones. This also fixes the nasty
1911 way in which 2.5's Quitter() exits (reverted [1785]).
1921 way in which 2.5's Quitter() exits (reverted [1785]).
1912
1922
1913 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1923 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1914 2.5.
1924 2.5.
1915
1925
1916 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1926 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1917 color scheme is updated as well when color scheme is changed
1927 color scheme is updated as well when color scheme is changed
1918 interactively.
1928 interactively.
1919
1929
1920 2006-09-27 Ville Vainio <vivainio@gmail.com>
1930 2006-09-27 Ville Vainio <vivainio@gmail.com>
1921
1931
1922 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1932 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1923 infinite loop and just exit. It's a hack, but will do for a while.
1933 infinite loop and just exit. It's a hack, but will do for a while.
1924
1934
1925 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1935 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1926
1936
1927 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1937 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1928 the constructor, this makes it possible to get a list of only directories
1938 the constructor, this makes it possible to get a list of only directories
1929 or only files.
1939 or only files.
1930
1940
1931 2006-08-12 Ville Vainio <vivainio@gmail.com>
1941 2006-08-12 Ville Vainio <vivainio@gmail.com>
1932
1942
1933 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1943 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1934 they broke unittest
1944 they broke unittest
1935
1945
1936 2006-08-11 Ville Vainio <vivainio@gmail.com>
1946 2006-08-11 Ville Vainio <vivainio@gmail.com>
1937
1947
1938 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1948 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1939 by resolving issue properly, i.e. by inheriting FakeModule
1949 by resolving issue properly, i.e. by inheriting FakeModule
1940 from types.ModuleType. Pickling ipython interactive data
1950 from types.ModuleType. Pickling ipython interactive data
1941 should still work as usual (testing appreciated).
1951 should still work as usual (testing appreciated).
1942
1952
1943 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1953 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1944
1954
1945 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1955 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1946 running under python 2.3 with code from 2.4 to fix a bug with
1956 running under python 2.3 with code from 2.4 to fix a bug with
1947 help(). Reported by the Debian maintainers, Norbert Tretkowski
1957 help(). Reported by the Debian maintainers, Norbert Tretkowski
1948 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1958 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1949 <afayolle-AT-debian.org>.
1959 <afayolle-AT-debian.org>.
1950
1960
1951 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1961 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1952
1962
1953 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1963 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1954 (which was displaying "quit" twice).
1964 (which was displaying "quit" twice).
1955
1965
1956 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1966 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1957
1967
1958 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1968 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1959 the mode argument).
1969 the mode argument).
1960
1970
1961 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1971 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1962
1972
1963 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1973 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1964 not running under IPython.
1974 not running under IPython.
1965
1975
1966 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1976 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1967 and make it iterable (iterating over the attribute itself). Add two new
1977 and make it iterable (iterating over the attribute itself). Add two new
1968 magic strings for __xattrs__(): If the string starts with "-", the attribute
1978 magic strings for __xattrs__(): If the string starts with "-", the attribute
1969 will not be displayed in ibrowse's detail view (but it can still be
1979 will not be displayed in ibrowse's detail view (but it can still be
1970 iterated over). This makes it possible to add attributes that are large
1980 iterated over). This makes it possible to add attributes that are large
1971 lists or generator methods to the detail view. Replace magic attribute names
1981 lists or generator methods to the detail view. Replace magic attribute names
1972 and _attrname() and _getattr() with "descriptors": For each type of magic
1982 and _attrname() and _getattr() with "descriptors": For each type of magic
1973 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1983 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1974 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1984 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1975 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1985 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1976 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1986 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1977 are still supported.
1987 are still supported.
1978
1988
1979 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1989 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1980 fails in ibrowse.fetch(), the exception object is added as the last item
1990 fails in ibrowse.fetch(), the exception object is added as the last item
1981 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1991 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1982 a generator throws an exception midway through execution.
1992 a generator throws an exception midway through execution.
1983
1993
1984 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1994 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1985 encoding into methods.
1995 encoding into methods.
1986
1996
1987 2006-07-26 Ville Vainio <vivainio@gmail.com>
1997 2006-07-26 Ville Vainio <vivainio@gmail.com>
1988
1998
1989 * iplib.py: history now stores multiline input as single
1999 * iplib.py: history now stores multiline input as single
1990 history entries. Patch by Jorgen Cederlof.
2000 history entries. Patch by Jorgen Cederlof.
1991
2001
1992 2006-07-18 Walter Doerwald <walter@livinglogic.de>
2002 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1993
2003
1994 * IPython/Extensions/ibrowse.py: Make cursor visible over
2004 * IPython/Extensions/ibrowse.py: Make cursor visible over
1995 non existing attributes.
2005 non existing attributes.
1996
2006
1997 2006-07-14 Walter Doerwald <walter@livinglogic.de>
2007 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1998
2008
1999 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
2009 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
2000 error output of the running command doesn't mess up the screen.
2010 error output of the running command doesn't mess up the screen.
2001
2011
2002 2006-07-13 Walter Doerwald <walter@livinglogic.de>
2012 2006-07-13 Walter Doerwald <walter@livinglogic.de>
2003
2013
2004 * IPython/Extensions/ipipe.py (isort): Make isort usable without
2014 * IPython/Extensions/ipipe.py (isort): Make isort usable without
2005 argument. This sorts the items themselves.
2015 argument. This sorts the items themselves.
2006
2016
2007 2006-07-12 Walter Doerwald <walter@livinglogic.de>
2017 2006-07-12 Walter Doerwald <walter@livinglogic.de>
2008
2018
2009 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
2019 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
2010 Compile expression strings into code objects. This should speed
2020 Compile expression strings into code objects. This should speed
2011 up ifilter and friends somewhat.
2021 up ifilter and friends somewhat.
2012
2022
2013 2006-07-08 Ville Vainio <vivainio@gmail.com>
2023 2006-07-08 Ville Vainio <vivainio@gmail.com>
2014
2024
2015 * Magic.py: %cpaste now strips > from the beginning of lines
2025 * Magic.py: %cpaste now strips > from the beginning of lines
2016 to ease pasting quoted code from emails. Contributed by
2026 to ease pasting quoted code from emails. Contributed by
2017 Stefan van der Walt.
2027 Stefan van der Walt.
2018
2028
2019 2006-06-29 Ville Vainio <vivainio@gmail.com>
2029 2006-06-29 Ville Vainio <vivainio@gmail.com>
2020
2030
2021 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2031 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2022 mode, patch contributed by Darren Dale. NEEDS TESTING!
2032 mode, patch contributed by Darren Dale. NEEDS TESTING!
2023
2033
2024 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2034 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2025
2035
2026 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2036 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2027 a blue background. Fix fetching new display rows when the browser
2037 a blue background. Fix fetching new display rows when the browser
2028 scrolls more than a screenful (e.g. by using the goto command).
2038 scrolls more than a screenful (e.g. by using the goto command).
2029
2039
2030 2006-06-27 Ville Vainio <vivainio@gmail.com>
2040 2006-06-27 Ville Vainio <vivainio@gmail.com>
2031
2041
2032 * Magic.py (_inspect, _ofind) Apply David Huard's
2042 * Magic.py (_inspect, _ofind) Apply David Huard's
2033 patch for displaying the correct docstring for 'property'
2043 patch for displaying the correct docstring for 'property'
2034 attributes.
2044 attributes.
2035
2045
2036 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2046 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2037
2047
2038 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2048 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2039 commands into the methods implementing them.
2049 commands into the methods implementing them.
2040
2050
2041 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2051 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2042
2052
2043 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2053 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2044 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2054 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2045 autoindent support was authored by Jin Liu.
2055 autoindent support was authored by Jin Liu.
2046
2056
2047 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2057 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2048
2058
2049 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2059 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2050 for keymaps with a custom class that simplifies handling.
2060 for keymaps with a custom class that simplifies handling.
2051
2061
2052 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2062 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2053
2063
2054 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2064 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2055 resizing. This requires Python 2.5 to work.
2065 resizing. This requires Python 2.5 to work.
2056
2066
2057 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2067 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2058
2068
2059 * IPython/Extensions/ibrowse.py: Add two new commands to
2069 * IPython/Extensions/ibrowse.py: Add two new commands to
2060 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2070 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2061 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2071 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2062 attributes again. Remapped the help command to "?". Display
2072 attributes again. Remapped the help command to "?". Display
2063 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2073 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2064 as keys for the "home" and "end" commands. Add three new commands
2074 as keys for the "home" and "end" commands. Add three new commands
2065 to the input mode for "find" and friends: "delend" (CTRL-K)
2075 to the input mode for "find" and friends: "delend" (CTRL-K)
2066 deletes to the end of line. "incsearchup" searches upwards in the
2076 deletes to the end of line. "incsearchup" searches upwards in the
2067 command history for an input that starts with the text before the cursor.
2077 command history for an input that starts with the text before the cursor.
2068 "incsearchdown" does the same downwards. Removed a bogus mapping of
2078 "incsearchdown" does the same downwards. Removed a bogus mapping of
2069 the x key to "delete".
2079 the x key to "delete".
2070
2080
2071 2006-06-15 Ville Vainio <vivainio@gmail.com>
2081 2006-06-15 Ville Vainio <vivainio@gmail.com>
2072
2082
2073 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2083 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2074 used to create prompts dynamically, instead of the "old" way of
2084 used to create prompts dynamically, instead of the "old" way of
2075 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2085 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2076 way still works (it's invoked by the default hook), of course.
2086 way still works (it's invoked by the default hook), of course.
2077
2087
2078 * Prompts.py: added generate_output_prompt hook for altering output
2088 * Prompts.py: added generate_output_prompt hook for altering output
2079 prompt
2089 prompt
2080
2090
2081 * Release.py: Changed version string to 0.7.3.svn.
2091 * Release.py: Changed version string to 0.7.3.svn.
2082
2092
2083 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2093 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2084
2094
2085 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2095 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2086 the call to fetch() always tries to fetch enough data for at least one
2096 the call to fetch() always tries to fetch enough data for at least one
2087 full screen. This makes it possible to simply call moveto(0,0,True) in
2097 full screen. This makes it possible to simply call moveto(0,0,True) in
2088 the constructor. Fix typos and removed the obsolete goto attribute.
2098 the constructor. Fix typos and removed the obsolete goto attribute.
2089
2099
2090 2006-06-12 Ville Vainio <vivainio@gmail.com>
2100 2006-06-12 Ville Vainio <vivainio@gmail.com>
2091
2101
2092 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2102 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2093 allowing $variable interpolation within multiline statements,
2103 allowing $variable interpolation within multiline statements,
2094 though so far only with "sh" profile for a testing period.
2104 though so far only with "sh" profile for a testing period.
2095 The patch also enables splitting long commands with \ but it
2105 The patch also enables splitting long commands with \ but it
2096 doesn't work properly yet.
2106 doesn't work properly yet.
2097
2107
2098 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2108 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2099
2109
2100 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2110 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2101 input history and the position of the cursor in the input history for
2111 input history and the position of the cursor in the input history for
2102 the find, findbackwards and goto command.
2112 the find, findbackwards and goto command.
2103
2113
2104 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2114 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2105
2115
2106 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2116 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2107 implements the basic functionality of browser commands that require
2117 implements the basic functionality of browser commands that require
2108 input. Reimplement the goto, find and findbackwards commands as
2118 input. Reimplement the goto, find and findbackwards commands as
2109 subclasses of _CommandInput. Add an input history and keymaps to those
2119 subclasses of _CommandInput. Add an input history and keymaps to those
2110 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2120 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2111 execute commands.
2121 execute commands.
2112
2122
2113 2006-06-07 Ville Vainio <vivainio@gmail.com>
2123 2006-06-07 Ville Vainio <vivainio@gmail.com>
2114
2124
2115 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2125 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2116 running the batch files instead of leaving the session open.
2126 running the batch files instead of leaving the session open.
2117
2127
2118 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2128 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2119
2129
2120 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2130 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2121 the original fix was incomplete. Patch submitted by W. Maier.
2131 the original fix was incomplete. Patch submitted by W. Maier.
2122
2132
2123 2006-06-07 Ville Vainio <vivainio@gmail.com>
2133 2006-06-07 Ville Vainio <vivainio@gmail.com>
2124
2134
2125 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2135 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2126 Confirmation prompts can be supressed by 'quiet' option.
2136 Confirmation prompts can be supressed by 'quiet' option.
2127 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2137 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2128
2138
2129 2006-06-06 *** Released version 0.7.2
2139 2006-06-06 *** Released version 0.7.2
2130
2140
2131 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2141 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2132
2142
2133 * IPython/Release.py (version): Made 0.7.2 final for release.
2143 * IPython/Release.py (version): Made 0.7.2 final for release.
2134 Repo tagged and release cut.
2144 Repo tagged and release cut.
2135
2145
2136 2006-06-05 Ville Vainio <vivainio@gmail.com>
2146 2006-06-05 Ville Vainio <vivainio@gmail.com>
2137
2147
2138 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2148 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2139 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2149 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2140
2150
2141 * upgrade_dir.py: try import 'path' module a bit harder
2151 * upgrade_dir.py: try import 'path' module a bit harder
2142 (for %upgrade)
2152 (for %upgrade)
2143
2153
2144 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2154 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2145
2155
2146 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2156 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2147 instead of looping 20 times.
2157 instead of looping 20 times.
2148
2158
2149 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2159 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2150 correctly at initialization time. Bug reported by Krishna Mohan
2160 correctly at initialization time. Bug reported by Krishna Mohan
2151 Gundu <gkmohan-AT-gmail.com> on the user list.
2161 Gundu <gkmohan-AT-gmail.com> on the user list.
2152
2162
2153 * IPython/Release.py (version): Mark 0.7.2 version to start
2163 * IPython/Release.py (version): Mark 0.7.2 version to start
2154 testing for release on 06/06.
2164 testing for release on 06/06.
2155
2165
2156 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2166 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2157
2167
2158 * scripts/irunner: thin script interface so users don't have to
2168 * scripts/irunner: thin script interface so users don't have to
2159 find the module and call it as an executable, since modules rarely
2169 find the module and call it as an executable, since modules rarely
2160 live in people's PATH.
2170 live in people's PATH.
2161
2171
2162 * IPython/irunner.py (InteractiveRunner.__init__): added
2172 * IPython/irunner.py (InteractiveRunner.__init__): added
2163 delaybeforesend attribute to control delays with newer versions of
2173 delaybeforesend attribute to control delays with newer versions of
2164 pexpect. Thanks to detailed help from pexpect's author, Noah
2174 pexpect. Thanks to detailed help from pexpect's author, Noah
2165 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2175 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2166 correctly (it works in NoColor mode).
2176 correctly (it works in NoColor mode).
2167
2177
2168 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2178 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2169 SAGE list, from improper log() calls.
2179 SAGE list, from improper log() calls.
2170
2180
2171 2006-05-31 Ville Vainio <vivainio@gmail.com>
2181 2006-05-31 Ville Vainio <vivainio@gmail.com>
2172
2182
2173 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2183 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2174 with args in parens to work correctly with dirs that have spaces.
2184 with args in parens to work correctly with dirs that have spaces.
2175
2185
2176 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2186 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2177
2187
2178 * IPython/Logger.py (Logger.logstart): add option to log raw input
2188 * IPython/Logger.py (Logger.logstart): add option to log raw input
2179 instead of the processed one. A -r flag was added to the
2189 instead of the processed one. A -r flag was added to the
2180 %logstart magic used for controlling logging.
2190 %logstart magic used for controlling logging.
2181
2191
2182 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2192 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2183
2193
2184 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2194 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2185 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2195 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2186 recognize the option. After a bug report by Will Maier. This
2196 recognize the option. After a bug report by Will Maier. This
2187 closes #64 (will do it after confirmation from W. Maier).
2197 closes #64 (will do it after confirmation from W. Maier).
2188
2198
2189 * IPython/irunner.py: New module to run scripts as if manually
2199 * IPython/irunner.py: New module to run scripts as if manually
2190 typed into an interactive environment, based on pexpect. After a
2200 typed into an interactive environment, based on pexpect. After a
2191 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2201 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2192 ipython-user list. Simple unittests in the tests/ directory.
2202 ipython-user list. Simple unittests in the tests/ directory.
2193
2203
2194 * tools/release: add Will Maier, OpenBSD port maintainer, to
2204 * tools/release: add Will Maier, OpenBSD port maintainer, to
2195 recepients list. We are now officially part of the OpenBSD ports:
2205 recepients list. We are now officially part of the OpenBSD ports:
2196 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2206 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2197 work.
2207 work.
2198
2208
2199 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2209 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2200
2210
2201 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2211 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2202 so that it doesn't break tkinter apps.
2212 so that it doesn't break tkinter apps.
2203
2213
2204 * IPython/iplib.py (_prefilter): fix bug where aliases would
2214 * IPython/iplib.py (_prefilter): fix bug where aliases would
2205 shadow variables when autocall was fully off. Reported by SAGE
2215 shadow variables when autocall was fully off. Reported by SAGE
2206 author William Stein.
2216 author William Stein.
2207
2217
2208 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2218 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2209 at what detail level strings are computed when foo? is requested.
2219 at what detail level strings are computed when foo? is requested.
2210 This allows users to ask for example that the string form of an
2220 This allows users to ask for example that the string form of an
2211 object is only computed when foo?? is called, or even never, by
2221 object is only computed when foo?? is called, or even never, by
2212 setting the object_info_string_level >= 2 in the configuration
2222 setting the object_info_string_level >= 2 in the configuration
2213 file. This new option has been added and documented. After a
2223 file. This new option has been added and documented. After a
2214 request by SAGE to be able to control the printing of very large
2224 request by SAGE to be able to control the printing of very large
2215 objects more easily.
2225 objects more easily.
2216
2226
2217 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2227 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2218
2228
2219 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2229 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2220 from sys.argv, to be 100% consistent with how Python itself works
2230 from sys.argv, to be 100% consistent with how Python itself works
2221 (as seen for example with python -i file.py). After a bug report
2231 (as seen for example with python -i file.py). After a bug report
2222 by Jeffrey Collins.
2232 by Jeffrey Collins.
2223
2233
2224 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2234 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2225 nasty bug which was preventing custom namespaces with -pylab,
2235 nasty bug which was preventing custom namespaces with -pylab,
2226 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2236 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2227 compatibility (long gone from mpl).
2237 compatibility (long gone from mpl).
2228
2238
2229 * IPython/ipapi.py (make_session): name change: create->make. We
2239 * IPython/ipapi.py (make_session): name change: create->make. We
2230 use make in other places (ipmaker,...), it's shorter and easier to
2240 use make in other places (ipmaker,...), it's shorter and easier to
2231 type and say, etc. I'm trying to clean things before 0.7.2 so
2241 type and say, etc. I'm trying to clean things before 0.7.2 so
2232 that I can keep things stable wrt to ipapi in the chainsaw branch.
2242 that I can keep things stable wrt to ipapi in the chainsaw branch.
2233
2243
2234 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2244 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2235 python-mode recognizes our debugger mode. Add support for
2245 python-mode recognizes our debugger mode. Add support for
2236 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2246 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2237 <m.liu.jin-AT-gmail.com> originally written by
2247 <m.liu.jin-AT-gmail.com> originally written by
2238 doxgen-AT-newsmth.net (with minor modifications for xemacs
2248 doxgen-AT-newsmth.net (with minor modifications for xemacs
2239 compatibility)
2249 compatibility)
2240
2250
2241 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2251 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2242 tracebacks when walking the stack so that the stack tracking system
2252 tracebacks when walking the stack so that the stack tracking system
2243 in emacs' python-mode can identify the frames correctly.
2253 in emacs' python-mode can identify the frames correctly.
2244
2254
2245 * IPython/ipmaker.py (make_IPython): make the internal (and
2255 * IPython/ipmaker.py (make_IPython): make the internal (and
2246 default config) autoedit_syntax value false by default. Too many
2256 default config) autoedit_syntax value false by default. Too many
2247 users have complained to me (both on and off-list) about problems
2257 users have complained to me (both on and off-list) about problems
2248 with this option being on by default, so I'm making it default to
2258 with this option being on by default, so I'm making it default to
2249 off. It can still be enabled by anyone via the usual mechanisms.
2259 off. It can still be enabled by anyone via the usual mechanisms.
2250
2260
2251 * IPython/completer.py (Completer.attr_matches): add support for
2261 * IPython/completer.py (Completer.attr_matches): add support for
2252 PyCrust-style _getAttributeNames magic method. Patch contributed
2262 PyCrust-style _getAttributeNames magic method. Patch contributed
2253 by <mscott-AT-goldenspud.com>. Closes #50.
2263 by <mscott-AT-goldenspud.com>. Closes #50.
2254
2264
2255 * IPython/iplib.py (InteractiveShell.__init__): remove the
2265 * IPython/iplib.py (InteractiveShell.__init__): remove the
2256 deletion of exit/quit from __builtin__, which can break
2266 deletion of exit/quit from __builtin__, which can break
2257 third-party tools like the Zope debugging console. The
2267 third-party tools like the Zope debugging console. The
2258 %exit/%quit magics remain. In general, it's probably a good idea
2268 %exit/%quit magics remain. In general, it's probably a good idea
2259 not to delete anything from __builtin__, since we never know what
2269 not to delete anything from __builtin__, since we never know what
2260 that will break. In any case, python now (for 2.5) will support
2270 that will break. In any case, python now (for 2.5) will support
2261 'real' exit/quit, so this issue is moot. Closes #55.
2271 'real' exit/quit, so this issue is moot. Closes #55.
2262
2272
2263 * IPython/genutils.py (with_obj): rename the 'with' function to
2273 * IPython/genutils.py (with_obj): rename the 'with' function to
2264 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2274 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2265 becomes a language keyword. Closes #53.
2275 becomes a language keyword. Closes #53.
2266
2276
2267 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2277 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2268 __file__ attribute to this so it fools more things into thinking
2278 __file__ attribute to this so it fools more things into thinking
2269 it is a real module. Closes #59.
2279 it is a real module. Closes #59.
2270
2280
2271 * IPython/Magic.py (magic_edit): add -n option to open the editor
2281 * IPython/Magic.py (magic_edit): add -n option to open the editor
2272 at a specific line number. After a patch by Stefan van der Walt.
2282 at a specific line number. After a patch by Stefan van der Walt.
2273
2283
2274 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2284 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2275
2285
2276 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2286 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2277 reason the file could not be opened. After automatic crash
2287 reason the file could not be opened. After automatic crash
2278 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2288 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2279 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2289 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2280 (_should_recompile): Don't fire editor if using %bg, since there
2290 (_should_recompile): Don't fire editor if using %bg, since there
2281 is no file in the first place. From the same report as above.
2291 is no file in the first place. From the same report as above.
2282 (raw_input): protect against faulty third-party prefilters. After
2292 (raw_input): protect against faulty third-party prefilters. After
2283 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2293 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2284 while running under SAGE.
2294 while running under SAGE.
2285
2295
2286 2006-05-23 Ville Vainio <vivainio@gmail.com>
2296 2006-05-23 Ville Vainio <vivainio@gmail.com>
2287
2297
2288 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2298 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2289 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2299 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2290 now returns None (again), unless dummy is specifically allowed by
2300 now returns None (again), unless dummy is specifically allowed by
2291 ipapi.get(allow_dummy=True).
2301 ipapi.get(allow_dummy=True).
2292
2302
2293 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2303 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2294
2304
2295 * IPython: remove all 2.2-compatibility objects and hacks from
2305 * IPython: remove all 2.2-compatibility objects and hacks from
2296 everywhere, since we only support 2.3 at this point. Docs
2306 everywhere, since we only support 2.3 at this point. Docs
2297 updated.
2307 updated.
2298
2308
2299 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2309 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2300 Anything requiring extra validation can be turned into a Python
2310 Anything requiring extra validation can be turned into a Python
2301 property in the future. I used a property for the db one b/c
2311 property in the future. I used a property for the db one b/c
2302 there was a nasty circularity problem with the initialization
2312 there was a nasty circularity problem with the initialization
2303 order, which right now I don't have time to clean up.
2313 order, which right now I don't have time to clean up.
2304
2314
2305 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2315 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2306 another locking bug reported by Jorgen. I'm not 100% sure though,
2316 another locking bug reported by Jorgen. I'm not 100% sure though,
2307 so more testing is needed...
2317 so more testing is needed...
2308
2318
2309 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2319 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2310
2320
2311 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2321 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2312 local variables from any routine in user code (typically executed
2322 local variables from any routine in user code (typically executed
2313 with %run) directly into the interactive namespace. Very useful
2323 with %run) directly into the interactive namespace. Very useful
2314 when doing complex debugging.
2324 when doing complex debugging.
2315 (IPythonNotRunning): Changed the default None object to a dummy
2325 (IPythonNotRunning): Changed the default None object to a dummy
2316 whose attributes can be queried as well as called without
2326 whose attributes can be queried as well as called without
2317 exploding, to ease writing code which works transparently both in
2327 exploding, to ease writing code which works transparently both in
2318 and out of ipython and uses some of this API.
2328 and out of ipython and uses some of this API.
2319
2329
2320 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2330 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2321
2331
2322 * IPython/hooks.py (result_display): Fix the fact that our display
2332 * IPython/hooks.py (result_display): Fix the fact that our display
2323 hook was using str() instead of repr(), as the default python
2333 hook was using str() instead of repr(), as the default python
2324 console does. This had gone unnoticed b/c it only happened if
2334 console does. This had gone unnoticed b/c it only happened if
2325 %Pprint was off, but the inconsistency was there.
2335 %Pprint was off, but the inconsistency was there.
2326
2336
2327 2006-05-15 Ville Vainio <vivainio@gmail.com>
2337 2006-05-15 Ville Vainio <vivainio@gmail.com>
2328
2338
2329 * Oinspect.py: Only show docstring for nonexisting/binary files
2339 * Oinspect.py: Only show docstring for nonexisting/binary files
2330 when doing object??, closing ticket #62
2340 when doing object??, closing ticket #62
2331
2341
2332 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2342 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2333
2343
2334 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2344 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2335 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2345 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2336 was being released in a routine which hadn't checked if it had
2346 was being released in a routine which hadn't checked if it had
2337 been the one to acquire it.
2347 been the one to acquire it.
2338
2348
2339 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2349 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2340
2350
2341 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2351 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2342
2352
2343 2006-04-11 Ville Vainio <vivainio@gmail.com>
2353 2006-04-11 Ville Vainio <vivainio@gmail.com>
2344
2354
2345 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2355 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2346 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2356 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2347 prefilters, allowing stuff like magics and aliases in the file.
2357 prefilters, allowing stuff like magics and aliases in the file.
2348
2358
2349 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2359 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2350 added. Supported now are "%clear in" and "%clear out" (clear input and
2360 added. Supported now are "%clear in" and "%clear out" (clear input and
2351 output history, respectively). Also fixed CachedOutput.flush to
2361 output history, respectively). Also fixed CachedOutput.flush to
2352 properly flush the output cache.
2362 properly flush the output cache.
2353
2363
2354 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2364 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2355 half-success (and fail explicitly).
2365 half-success (and fail explicitly).
2356
2366
2357 2006-03-28 Ville Vainio <vivainio@gmail.com>
2367 2006-03-28 Ville Vainio <vivainio@gmail.com>
2358
2368
2359 * iplib.py: Fix quoting of aliases so that only argless ones
2369 * iplib.py: Fix quoting of aliases so that only argless ones
2360 are quoted
2370 are quoted
2361
2371
2362 2006-03-28 Ville Vainio <vivainio@gmail.com>
2372 2006-03-28 Ville Vainio <vivainio@gmail.com>
2363
2373
2364 * iplib.py: Quote aliases with spaces in the name.
2374 * iplib.py: Quote aliases with spaces in the name.
2365 "c:\program files\blah\bin" is now legal alias target.
2375 "c:\program files\blah\bin" is now legal alias target.
2366
2376
2367 * ext_rehashdir.py: Space no longer allowed as arg
2377 * ext_rehashdir.py: Space no longer allowed as arg
2368 separator, since space is legal in path names.
2378 separator, since space is legal in path names.
2369
2379
2370 2006-03-16 Ville Vainio <vivainio@gmail.com>
2380 2006-03-16 Ville Vainio <vivainio@gmail.com>
2371
2381
2372 * upgrade_dir.py: Take path.py from Extensions, correcting
2382 * upgrade_dir.py: Take path.py from Extensions, correcting
2373 %upgrade magic
2383 %upgrade magic
2374
2384
2375 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2385 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2376
2386
2377 * hooks.py: Only enclose editor binary in quotes if legal and
2387 * hooks.py: Only enclose editor binary in quotes if legal and
2378 necessary (space in the name, and is an existing file). Fixes a bug
2388 necessary (space in the name, and is an existing file). Fixes a bug
2379 reported by Zachary Pincus.
2389 reported by Zachary Pincus.
2380
2390
2381 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2391 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2382
2392
2383 * Manual: thanks to a tip on proper color handling for Emacs, by
2393 * Manual: thanks to a tip on proper color handling for Emacs, by
2384 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2394 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2385
2395
2386 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2396 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2387 by applying the provided patch. Thanks to Liu Jin
2397 by applying the provided patch. Thanks to Liu Jin
2388 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2398 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2389 XEmacs/Linux, I'm trusting the submitter that it actually helps
2399 XEmacs/Linux, I'm trusting the submitter that it actually helps
2390 under win32/GNU Emacs. Will revisit if any problems are reported.
2400 under win32/GNU Emacs. Will revisit if any problems are reported.
2391
2401
2392 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2402 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2393
2403
2394 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2404 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2395 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2405 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2396
2406
2397 2006-03-12 Ville Vainio <vivainio@gmail.com>
2407 2006-03-12 Ville Vainio <vivainio@gmail.com>
2398
2408
2399 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2409 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2400 Torsten Marek.
2410 Torsten Marek.
2401
2411
2402 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2412 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2403
2413
2404 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2414 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2405 line ranges works again.
2415 line ranges works again.
2406
2416
2407 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2417 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2408
2418
2409 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2419 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2410 and friends, after a discussion with Zach Pincus on ipython-user.
2420 and friends, after a discussion with Zach Pincus on ipython-user.
2411 I'm not 100% sure, but after thinking about it quite a bit, it may
2421 I'm not 100% sure, but after thinking about it quite a bit, it may
2412 be OK. Testing with the multithreaded shells didn't reveal any
2422 be OK. Testing with the multithreaded shells didn't reveal any
2413 problems, but let's keep an eye out.
2423 problems, but let's keep an eye out.
2414
2424
2415 In the process, I fixed a few things which were calling
2425 In the process, I fixed a few things which were calling
2416 self.InteractiveTB() directly (like safe_execfile), which is a
2426 self.InteractiveTB() directly (like safe_execfile), which is a
2417 mistake: ALL exception reporting should be done by calling
2427 mistake: ALL exception reporting should be done by calling
2418 self.showtraceback(), which handles state and tab-completion and
2428 self.showtraceback(), which handles state and tab-completion and
2419 more.
2429 more.
2420
2430
2421 2006-03-01 Ville Vainio <vivainio@gmail.com>
2431 2006-03-01 Ville Vainio <vivainio@gmail.com>
2422
2432
2423 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2433 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2424 To use, do "from ipipe import *".
2434 To use, do "from ipipe import *".
2425
2435
2426 2006-02-24 Ville Vainio <vivainio@gmail.com>
2436 2006-02-24 Ville Vainio <vivainio@gmail.com>
2427
2437
2428 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2438 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2429 "cleanly" and safely than the older upgrade mechanism.
2439 "cleanly" and safely than the older upgrade mechanism.
2430
2440
2431 2006-02-21 Ville Vainio <vivainio@gmail.com>
2441 2006-02-21 Ville Vainio <vivainio@gmail.com>
2432
2442
2433 * Magic.py: %save works again.
2443 * Magic.py: %save works again.
2434
2444
2435 2006-02-15 Ville Vainio <vivainio@gmail.com>
2445 2006-02-15 Ville Vainio <vivainio@gmail.com>
2436
2446
2437 * Magic.py: %Pprint works again
2447 * Magic.py: %Pprint works again
2438
2448
2439 * Extensions/ipy_sane_defaults.py: Provide everything provided
2449 * Extensions/ipy_sane_defaults.py: Provide everything provided
2440 in default ipythonrc, to make it possible to have a completely empty
2450 in default ipythonrc, to make it possible to have a completely empty
2441 ipythonrc (and thus completely rc-file free configuration)
2451 ipythonrc (and thus completely rc-file free configuration)
2442
2452
2443 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2453 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2444
2454
2445 * IPython/hooks.py (editor): quote the call to the editor command,
2455 * IPython/hooks.py (editor): quote the call to the editor command,
2446 to allow commands with spaces in them. Problem noted by watching
2456 to allow commands with spaces in them. Problem noted by watching
2447 Ian Oswald's video about textpad under win32 at
2457 Ian Oswald's video about textpad under win32 at
2448 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2458 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2449
2459
2450 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2460 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2451 describing magics (we haven't used @ for a loong time).
2461 describing magics (we haven't used @ for a loong time).
2452
2462
2453 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2463 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2454 contributed by marienz to close
2464 contributed by marienz to close
2455 http://www.scipy.net/roundup/ipython/issue53.
2465 http://www.scipy.net/roundup/ipython/issue53.
2456
2466
2457 2006-02-10 Ville Vainio <vivainio@gmail.com>
2467 2006-02-10 Ville Vainio <vivainio@gmail.com>
2458
2468
2459 * genutils.py: getoutput now works in win32 too
2469 * genutils.py: getoutput now works in win32 too
2460
2470
2461 * completer.py: alias and magic completion only invoked
2471 * completer.py: alias and magic completion only invoked
2462 at the first "item" in the line, to avoid "cd %store"
2472 at the first "item" in the line, to avoid "cd %store"
2463 nonsense.
2473 nonsense.
2464
2474
2465 2006-02-09 Ville Vainio <vivainio@gmail.com>
2475 2006-02-09 Ville Vainio <vivainio@gmail.com>
2466
2476
2467 * test/*: Added a unit testing framework (finally).
2477 * test/*: Added a unit testing framework (finally).
2468 '%run runtests.py' to run test_*.
2478 '%run runtests.py' to run test_*.
2469
2479
2470 * ipapi.py: Exposed runlines and set_custom_exc
2480 * ipapi.py: Exposed runlines and set_custom_exc
2471
2481
2472 2006-02-07 Ville Vainio <vivainio@gmail.com>
2482 2006-02-07 Ville Vainio <vivainio@gmail.com>
2473
2483
2474 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2484 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2475 instead use "f(1 2)" as before.
2485 instead use "f(1 2)" as before.
2476
2486
2477 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2487 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2478
2488
2479 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2489 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2480 facilities, for demos processed by the IPython input filter
2490 facilities, for demos processed by the IPython input filter
2481 (IPythonDemo), and for running a script one-line-at-a-time as a
2491 (IPythonDemo), and for running a script one-line-at-a-time as a
2482 demo, both for pure Python (LineDemo) and for IPython-processed
2492 demo, both for pure Python (LineDemo) and for IPython-processed
2483 input (IPythonLineDemo). After a request by Dave Kohel, from the
2493 input (IPythonLineDemo). After a request by Dave Kohel, from the
2484 SAGE team.
2494 SAGE team.
2485 (Demo.edit): added an edit() method to the demo objects, to edit
2495 (Demo.edit): added an edit() method to the demo objects, to edit
2486 the in-memory copy of the last executed block.
2496 the in-memory copy of the last executed block.
2487
2497
2488 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2498 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2489 processing to %edit, %macro and %save. These commands can now be
2499 processing to %edit, %macro and %save. These commands can now be
2490 invoked on the unprocessed input as it was typed by the user
2500 invoked on the unprocessed input as it was typed by the user
2491 (without any prefilters applied). After requests by the SAGE team
2501 (without any prefilters applied). After requests by the SAGE team
2492 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2502 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2493
2503
2494 2006-02-01 Ville Vainio <vivainio@gmail.com>
2504 2006-02-01 Ville Vainio <vivainio@gmail.com>
2495
2505
2496 * setup.py, eggsetup.py: easy_install ipython==dev works
2506 * setup.py, eggsetup.py: easy_install ipython==dev works
2497 correctly now (on Linux)
2507 correctly now (on Linux)
2498
2508
2499 * ipy_user_conf,ipmaker: user config changes, removed spurious
2509 * ipy_user_conf,ipmaker: user config changes, removed spurious
2500 warnings
2510 warnings
2501
2511
2502 * iplib: if rc.banner is string, use it as is.
2512 * iplib: if rc.banner is string, use it as is.
2503
2513
2504 * Magic: %pycat accepts a string argument and pages it's contents.
2514 * Magic: %pycat accepts a string argument and pages it's contents.
2505
2515
2506
2516
2507 2006-01-30 Ville Vainio <vivainio@gmail.com>
2517 2006-01-30 Ville Vainio <vivainio@gmail.com>
2508
2518
2509 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2519 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2510 Now %store and bookmarks work through PickleShare, meaning that
2520 Now %store and bookmarks work through PickleShare, meaning that
2511 concurrent access is possible and all ipython sessions see the
2521 concurrent access is possible and all ipython sessions see the
2512 same database situation all the time, instead of snapshot of
2522 same database situation all the time, instead of snapshot of
2513 the situation when the session was started. Hence, %bookmark
2523 the situation when the session was started. Hence, %bookmark
2514 results are immediately accessible from othes sessions. The database
2524 results are immediately accessible from othes sessions. The database
2515 is also available for use by user extensions. See:
2525 is also available for use by user extensions. See:
2516 http://www.python.org/pypi/pickleshare
2526 http://www.python.org/pypi/pickleshare
2517
2527
2518 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2528 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2519
2529
2520 * aliases can now be %store'd
2530 * aliases can now be %store'd
2521
2531
2522 * path.py moved to Extensions so that pickleshare does not need
2532 * path.py moved to Extensions so that pickleshare does not need
2523 IPython-specific import. Extensions added to pythonpath right
2533 IPython-specific import. Extensions added to pythonpath right
2524 at __init__.
2534 at __init__.
2525
2535
2526 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2536 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2527 called with _ip.system and the pre-transformed command string.
2537 called with _ip.system and the pre-transformed command string.
2528
2538
2529 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2539 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2530
2540
2531 * IPython/iplib.py (interact): Fix that we were not catching
2541 * IPython/iplib.py (interact): Fix that we were not catching
2532 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2542 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2533 logic here had to change, but it's fixed now.
2543 logic here had to change, but it's fixed now.
2534
2544
2535 2006-01-29 Ville Vainio <vivainio@gmail.com>
2545 2006-01-29 Ville Vainio <vivainio@gmail.com>
2536
2546
2537 * iplib.py: Try to import pyreadline on Windows.
2547 * iplib.py: Try to import pyreadline on Windows.
2538
2548
2539 2006-01-27 Ville Vainio <vivainio@gmail.com>
2549 2006-01-27 Ville Vainio <vivainio@gmail.com>
2540
2550
2541 * iplib.py: Expose ipapi as _ip in builtin namespace.
2551 * iplib.py: Expose ipapi as _ip in builtin namespace.
2542 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2552 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2543 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2553 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2544 syntax now produce _ip.* variant of the commands.
2554 syntax now produce _ip.* variant of the commands.
2545
2555
2546 * "_ip.options().autoedit_syntax = 2" automatically throws
2556 * "_ip.options().autoedit_syntax = 2" automatically throws
2547 user to editor for syntax error correction without prompting.
2557 user to editor for syntax error correction without prompting.
2548
2558
2549 2006-01-27 Ville Vainio <vivainio@gmail.com>
2559 2006-01-27 Ville Vainio <vivainio@gmail.com>
2550
2560
2551 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2561 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2552 'ipython' at argv[0]) executed through command line.
2562 'ipython' at argv[0]) executed through command line.
2553 NOTE: this DEPRECATES calling ipython with multiple scripts
2563 NOTE: this DEPRECATES calling ipython with multiple scripts
2554 ("ipython a.py b.py c.py")
2564 ("ipython a.py b.py c.py")
2555
2565
2556 * iplib.py, hooks.py: Added configurable input prefilter,
2566 * iplib.py, hooks.py: Added configurable input prefilter,
2557 named 'input_prefilter'. See ext_rescapture.py for example
2567 named 'input_prefilter'. See ext_rescapture.py for example
2558 usage.
2568 usage.
2559
2569
2560 * ext_rescapture.py, Magic.py: Better system command output capture
2570 * ext_rescapture.py, Magic.py: Better system command output capture
2561 through 'var = !ls' (deprecates user-visible %sc). Same notation
2571 through 'var = !ls' (deprecates user-visible %sc). Same notation
2562 applies for magics, 'var = %alias' assigns alias list to var.
2572 applies for magics, 'var = %alias' assigns alias list to var.
2563
2573
2564 * ipapi.py: added meta() for accessing extension-usable data store.
2574 * ipapi.py: added meta() for accessing extension-usable data store.
2565
2575
2566 * iplib.py: added InteractiveShell.getapi(). New magics should be
2576 * iplib.py: added InteractiveShell.getapi(). New magics should be
2567 written doing self.getapi() instead of using the shell directly.
2577 written doing self.getapi() instead of using the shell directly.
2568
2578
2569 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2579 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2570 %store foo >> ~/myfoo.txt to store variables to files (in clean
2580 %store foo >> ~/myfoo.txt to store variables to files (in clean
2571 textual form, not a restorable pickle).
2581 textual form, not a restorable pickle).
2572
2582
2573 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2583 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2574
2584
2575 * usage.py, Magic.py: added %quickref
2585 * usage.py, Magic.py: added %quickref
2576
2586
2577 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2587 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2578
2588
2579 * GetoptErrors when invoking magics etc. with wrong args
2589 * GetoptErrors when invoking magics etc. with wrong args
2580 are now more helpful:
2590 are now more helpful:
2581 GetoptError: option -l not recognized (allowed: "qb" )
2591 GetoptError: option -l not recognized (allowed: "qb" )
2582
2592
2583 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2593 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2584
2594
2585 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2595 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2586 computationally intensive blocks don't appear to stall the demo.
2596 computationally intensive blocks don't appear to stall the demo.
2587
2597
2588 2006-01-24 Ville Vainio <vivainio@gmail.com>
2598 2006-01-24 Ville Vainio <vivainio@gmail.com>
2589
2599
2590 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2600 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2591 value to manipulate resulting history entry.
2601 value to manipulate resulting history entry.
2592
2602
2593 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2603 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2594 to instance methods of IPApi class, to make extending an embedded
2604 to instance methods of IPApi class, to make extending an embedded
2595 IPython feasible. See ext_rehashdir.py for example usage.
2605 IPython feasible. See ext_rehashdir.py for example usage.
2596
2606
2597 * Merged 1071-1076 from branches/0.7.1
2607 * Merged 1071-1076 from branches/0.7.1
2598
2608
2599
2609
2600 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2610 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2601
2611
2602 * tools/release (daystamp): Fix build tools to use the new
2612 * tools/release (daystamp): Fix build tools to use the new
2603 eggsetup.py script to build lightweight eggs.
2613 eggsetup.py script to build lightweight eggs.
2604
2614
2605 * Applied changesets 1062 and 1064 before 0.7.1 release.
2615 * Applied changesets 1062 and 1064 before 0.7.1 release.
2606
2616
2607 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2617 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2608 see the raw input history (without conversions like %ls ->
2618 see the raw input history (without conversions like %ls ->
2609 ipmagic("ls")). After a request from W. Stein, SAGE
2619 ipmagic("ls")). After a request from W. Stein, SAGE
2610 (http://modular.ucsd.edu/sage) developer. This information is
2620 (http://modular.ucsd.edu/sage) developer. This information is
2611 stored in the input_hist_raw attribute of the IPython instance, so
2621 stored in the input_hist_raw attribute of the IPython instance, so
2612 developers can access it if needed (it's an InputList instance).
2622 developers can access it if needed (it's an InputList instance).
2613
2623
2614 * Versionstring = 0.7.2.svn
2624 * Versionstring = 0.7.2.svn
2615
2625
2616 * eggsetup.py: A separate script for constructing eggs, creates
2626 * eggsetup.py: A separate script for constructing eggs, creates
2617 proper launch scripts even on Windows (an .exe file in
2627 proper launch scripts even on Windows (an .exe file in
2618 \python24\scripts).
2628 \python24\scripts).
2619
2629
2620 * ipapi.py: launch_new_instance, launch entry point needed for the
2630 * ipapi.py: launch_new_instance, launch entry point needed for the
2621 egg.
2631 egg.
2622
2632
2623 2006-01-23 Ville Vainio <vivainio@gmail.com>
2633 2006-01-23 Ville Vainio <vivainio@gmail.com>
2624
2634
2625 * Added %cpaste magic for pasting python code
2635 * Added %cpaste magic for pasting python code
2626
2636
2627 2006-01-22 Ville Vainio <vivainio@gmail.com>
2637 2006-01-22 Ville Vainio <vivainio@gmail.com>
2628
2638
2629 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2639 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2630
2640
2631 * Versionstring = 0.7.2.svn
2641 * Versionstring = 0.7.2.svn
2632
2642
2633 * eggsetup.py: A separate script for constructing eggs, creates
2643 * eggsetup.py: A separate script for constructing eggs, creates
2634 proper launch scripts even on Windows (an .exe file in
2644 proper launch scripts even on Windows (an .exe file in
2635 \python24\scripts).
2645 \python24\scripts).
2636
2646
2637 * ipapi.py: launch_new_instance, launch entry point needed for the
2647 * ipapi.py: launch_new_instance, launch entry point needed for the
2638 egg.
2648 egg.
2639
2649
2640 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2650 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2641
2651
2642 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2652 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2643 %pfile foo would print the file for foo even if it was a binary.
2653 %pfile foo would print the file for foo even if it was a binary.
2644 Now, extensions '.so' and '.dll' are skipped.
2654 Now, extensions '.so' and '.dll' are skipped.
2645
2655
2646 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2656 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2647 bug, where macros would fail in all threaded modes. I'm not 100%
2657 bug, where macros would fail in all threaded modes. I'm not 100%
2648 sure, so I'm going to put out an rc instead of making a release
2658 sure, so I'm going to put out an rc instead of making a release
2649 today, and wait for feedback for at least a few days.
2659 today, and wait for feedback for at least a few days.
2650
2660
2651 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2661 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2652 it...) the handling of pasting external code with autoindent on.
2662 it...) the handling of pasting external code with autoindent on.
2653 To get out of a multiline input, the rule will appear for most
2663 To get out of a multiline input, the rule will appear for most
2654 users unchanged: two blank lines or change the indent level
2664 users unchanged: two blank lines or change the indent level
2655 proposed by IPython. But there is a twist now: you can
2665 proposed by IPython. But there is a twist now: you can
2656 add/subtract only *one or two spaces*. If you add/subtract three
2666 add/subtract only *one or two spaces*. If you add/subtract three
2657 or more (unless you completely delete the line), IPython will
2667 or more (unless you completely delete the line), IPython will
2658 accept that line, and you'll need to enter a second one of pure
2668 accept that line, and you'll need to enter a second one of pure
2659 whitespace. I know it sounds complicated, but I can't find a
2669 whitespace. I know it sounds complicated, but I can't find a
2660 different solution that covers all the cases, with the right
2670 different solution that covers all the cases, with the right
2661 heuristics. Hopefully in actual use, nobody will really notice
2671 heuristics. Hopefully in actual use, nobody will really notice
2662 all these strange rules and things will 'just work'.
2672 all these strange rules and things will 'just work'.
2663
2673
2664 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2674 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2665
2675
2666 * IPython/iplib.py (interact): catch exceptions which can be
2676 * IPython/iplib.py (interact): catch exceptions which can be
2667 triggered asynchronously by signal handlers. Thanks to an
2677 triggered asynchronously by signal handlers. Thanks to an
2668 automatic crash report, submitted by Colin Kingsley
2678 automatic crash report, submitted by Colin Kingsley
2669 <tercel-AT-gentoo.org>.
2679 <tercel-AT-gentoo.org>.
2670
2680
2671 2006-01-20 Ville Vainio <vivainio@gmail.com>
2681 2006-01-20 Ville Vainio <vivainio@gmail.com>
2672
2682
2673 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2683 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2674 (%rehashdir, very useful, try it out) of how to extend ipython
2684 (%rehashdir, very useful, try it out) of how to extend ipython
2675 with new magics. Also added Extensions dir to pythonpath to make
2685 with new magics. Also added Extensions dir to pythonpath to make
2676 importing extensions easy.
2686 importing extensions easy.
2677
2687
2678 * %store now complains when trying to store interactively declared
2688 * %store now complains when trying to store interactively declared
2679 classes / instances of those classes.
2689 classes / instances of those classes.
2680
2690
2681 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2691 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2682 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2692 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2683 if they exist, and ipy_user_conf.py with some defaults is created for
2693 if they exist, and ipy_user_conf.py with some defaults is created for
2684 the user.
2694 the user.
2685
2695
2686 * Startup rehashing done by the config file, not InterpreterExec.
2696 * Startup rehashing done by the config file, not InterpreterExec.
2687 This means system commands are available even without selecting the
2697 This means system commands are available even without selecting the
2688 pysh profile. It's the sensible default after all.
2698 pysh profile. It's the sensible default after all.
2689
2699
2690 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2700 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2691
2701
2692 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2702 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2693 multiline code with autoindent on working. But I am really not
2703 multiline code with autoindent on working. But I am really not
2694 sure, so this needs more testing. Will commit a debug-enabled
2704 sure, so this needs more testing. Will commit a debug-enabled
2695 version for now, while I test it some more, so that Ville and
2705 version for now, while I test it some more, so that Ville and
2696 others may also catch any problems. Also made
2706 others may also catch any problems. Also made
2697 self.indent_current_str() a method, to ensure that there's no
2707 self.indent_current_str() a method, to ensure that there's no
2698 chance of the indent space count and the corresponding string
2708 chance of the indent space count and the corresponding string
2699 falling out of sync. All code needing the string should just call
2709 falling out of sync. All code needing the string should just call
2700 the method.
2710 the method.
2701
2711
2702 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2712 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2703
2713
2704 * IPython/Magic.py (magic_edit): fix check for when users don't
2714 * IPython/Magic.py (magic_edit): fix check for when users don't
2705 save their output files, the try/except was in the wrong section.
2715 save their output files, the try/except was in the wrong section.
2706
2716
2707 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2717 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2708
2718
2709 * IPython/Magic.py (magic_run): fix __file__ global missing from
2719 * IPython/Magic.py (magic_run): fix __file__ global missing from
2710 script's namespace when executed via %run. After a report by
2720 script's namespace when executed via %run. After a report by
2711 Vivian.
2721 Vivian.
2712
2722
2713 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2723 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2714 when using python 2.4. The parent constructor changed in 2.4, and
2724 when using python 2.4. The parent constructor changed in 2.4, and
2715 we need to track it directly (we can't call it, as it messes up
2725 we need to track it directly (we can't call it, as it messes up
2716 readline and tab-completion inside our pdb would stop working).
2726 readline and tab-completion inside our pdb would stop working).
2717 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2727 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2718
2728
2719 2006-01-16 Ville Vainio <vivainio@gmail.com>
2729 2006-01-16 Ville Vainio <vivainio@gmail.com>
2720
2730
2721 * Ipython/magic.py: Reverted back to old %edit functionality
2731 * Ipython/magic.py: Reverted back to old %edit functionality
2722 that returns file contents on exit.
2732 that returns file contents on exit.
2723
2733
2724 * IPython/path.py: Added Jason Orendorff's "path" module to
2734 * IPython/path.py: Added Jason Orendorff's "path" module to
2725 IPython tree, http://www.jorendorff.com/articles/python/path/.
2735 IPython tree, http://www.jorendorff.com/articles/python/path/.
2726 You can get path objects conveniently through %sc, and !!, e.g.:
2736 You can get path objects conveniently through %sc, and !!, e.g.:
2727 sc files=ls
2737 sc files=ls
2728 for p in files.paths: # or files.p
2738 for p in files.paths: # or files.p
2729 print p,p.mtime
2739 print p,p.mtime
2730
2740
2731 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2741 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2732 now work again without considering the exclusion regexp -
2742 now work again without considering the exclusion regexp -
2733 hence, things like ',foo my/path' turn to 'foo("my/path")'
2743 hence, things like ',foo my/path' turn to 'foo("my/path")'
2734 instead of syntax error.
2744 instead of syntax error.
2735
2745
2736
2746
2737 2006-01-14 Ville Vainio <vivainio@gmail.com>
2747 2006-01-14 Ville Vainio <vivainio@gmail.com>
2738
2748
2739 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2749 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2740 ipapi decorators for python 2.4 users, options() provides access to rc
2750 ipapi decorators for python 2.4 users, options() provides access to rc
2741 data.
2751 data.
2742
2752
2743 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2753 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2744 as path separators (even on Linux ;-). Space character after
2754 as path separators (even on Linux ;-). Space character after
2745 backslash (as yielded by tab completer) is still space;
2755 backslash (as yielded by tab completer) is still space;
2746 "%cd long\ name" works as expected.
2756 "%cd long\ name" works as expected.
2747
2757
2748 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2758 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2749 as "chain of command", with priority. API stays the same,
2759 as "chain of command", with priority. API stays the same,
2750 TryNext exception raised by a hook function signals that
2760 TryNext exception raised by a hook function signals that
2751 current hook failed and next hook should try handling it, as
2761 current hook failed and next hook should try handling it, as
2752 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
2762 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
2753 requested configurable display hook, which is now implemented.
2763 requested configurable display hook, which is now implemented.
2754
2764
2755 2006-01-13 Ville Vainio <vivainio@gmail.com>
2765 2006-01-13 Ville Vainio <vivainio@gmail.com>
2756
2766
2757 * IPython/platutils*.py: platform specific utility functions,
2767 * IPython/platutils*.py: platform specific utility functions,
2758 so far only set_term_title is implemented (change terminal
2768 so far only set_term_title is implemented (change terminal
2759 label in windowing systems). %cd now changes the title to
2769 label in windowing systems). %cd now changes the title to
2760 current dir.
2770 current dir.
2761
2771
2762 * IPython/Release.py: Added myself to "authors" list,
2772 * IPython/Release.py: Added myself to "authors" list,
2763 had to create new files.
2773 had to create new files.
2764
2774
2765 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2775 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2766 shell escape; not a known bug but had potential to be one in the
2776 shell escape; not a known bug but had potential to be one in the
2767 future.
2777 future.
2768
2778
2769 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2779 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2770 extension API for IPython! See the module for usage example. Fix
2780 extension API for IPython! See the module for usage example. Fix
2771 OInspect for docstring-less magic functions.
2781 OInspect for docstring-less magic functions.
2772
2782
2773
2783
2774 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2784 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2775
2785
2776 * IPython/iplib.py (raw_input): temporarily deactivate all
2786 * IPython/iplib.py (raw_input): temporarily deactivate all
2777 attempts at allowing pasting of code with autoindent on. It
2787 attempts at allowing pasting of code with autoindent on. It
2778 introduced bugs (reported by Prabhu) and I can't seem to find a
2788 introduced bugs (reported by Prabhu) and I can't seem to find a
2779 robust combination which works in all cases. Will have to revisit
2789 robust combination which works in all cases. Will have to revisit
2780 later.
2790 later.
2781
2791
2782 * IPython/genutils.py: remove isspace() function. We've dropped
2792 * IPython/genutils.py: remove isspace() function. We've dropped
2783 2.2 compatibility, so it's OK to use the string method.
2793 2.2 compatibility, so it's OK to use the string method.
2784
2794
2785 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2795 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2786
2796
2787 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2797 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2788 matching what NOT to autocall on, to include all python binary
2798 matching what NOT to autocall on, to include all python binary
2789 operators (including things like 'and', 'or', 'is' and 'in').
2799 operators (including things like 'and', 'or', 'is' and 'in').
2790 Prompted by a bug report on 'foo & bar', but I realized we had
2800 Prompted by a bug report on 'foo & bar', but I realized we had
2791 many more potential bug cases with other operators. The regexp is
2801 many more potential bug cases with other operators. The regexp is
2792 self.re_exclude_auto, it's fairly commented.
2802 self.re_exclude_auto, it's fairly commented.
2793
2803
2794 2006-01-12 Ville Vainio <vivainio@gmail.com>
2804 2006-01-12 Ville Vainio <vivainio@gmail.com>
2795
2805
2796 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2806 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2797 Prettified and hardened string/backslash quoting with ipsystem(),
2807 Prettified and hardened string/backslash quoting with ipsystem(),
2798 ipalias() and ipmagic(). Now even \ characters are passed to
2808 ipalias() and ipmagic(). Now even \ characters are passed to
2799 %magics, !shell escapes and aliases exactly as they are in the
2809 %magics, !shell escapes and aliases exactly as they are in the
2800 ipython command line. Should improve backslash experience,
2810 ipython command line. Should improve backslash experience,
2801 particularly in Windows (path delimiter for some commands that
2811 particularly in Windows (path delimiter for some commands that
2802 won't understand '/'), but Unix benefits as well (regexps). %cd
2812 won't understand '/'), but Unix benefits as well (regexps). %cd
2803 magic still doesn't support backslash path delimiters, though. Also
2813 magic still doesn't support backslash path delimiters, though. Also
2804 deleted all pretense of supporting multiline command strings in
2814 deleted all pretense of supporting multiline command strings in
2805 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2815 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2806
2816
2807 * doc/build_doc_instructions.txt added. Documentation on how to
2817 * doc/build_doc_instructions.txt added. Documentation on how to
2808 use doc/update_manual.py, added yesterday. Both files contributed
2818 use doc/update_manual.py, added yesterday. Both files contributed
2809 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2819 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2810 doc/*.sh for deprecation at a later date.
2820 doc/*.sh for deprecation at a later date.
2811
2821
2812 * /ipython.py Added ipython.py to root directory for
2822 * /ipython.py Added ipython.py to root directory for
2813 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2823 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2814 ipython.py) and development convenience (no need to keep doing
2824 ipython.py) and development convenience (no need to keep doing
2815 "setup.py install" between changes).
2825 "setup.py install" between changes).
2816
2826
2817 * Made ! and !! shell escapes work (again) in multiline expressions:
2827 * Made ! and !! shell escapes work (again) in multiline expressions:
2818 if 1:
2828 if 1:
2819 !ls
2829 !ls
2820 !!ls
2830 !!ls
2821
2831
2822 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2832 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2823
2833
2824 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2834 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2825 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2835 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2826 module in case-insensitive installation. Was causing crashes
2836 module in case-insensitive installation. Was causing crashes
2827 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2837 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2828
2838
2829 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2839 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2830 <marienz-AT-gentoo.org>, closes
2840 <marienz-AT-gentoo.org>, closes
2831 http://www.scipy.net/roundup/ipython/issue51.
2841 http://www.scipy.net/roundup/ipython/issue51.
2832
2842
2833 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2843 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2834
2844
2835 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2845 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2836 problem of excessive CPU usage under *nix and keyboard lag under
2846 problem of excessive CPU usage under *nix and keyboard lag under
2837 win32.
2847 win32.
2838
2848
2839 2006-01-10 *** Released version 0.7.0
2849 2006-01-10 *** Released version 0.7.0
2840
2850
2841 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2851 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2842
2852
2843 * IPython/Release.py (revision): tag version number to 0.7.0,
2853 * IPython/Release.py (revision): tag version number to 0.7.0,
2844 ready for release.
2854 ready for release.
2845
2855
2846 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2856 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2847 it informs the user of the name of the temp. file used. This can
2857 it informs the user of the name of the temp. file used. This can
2848 help if you decide later to reuse that same file, so you know
2858 help if you decide later to reuse that same file, so you know
2849 where to copy the info from.
2859 where to copy the info from.
2850
2860
2851 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2861 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2852
2862
2853 * setup_bdist_egg.py: little script to build an egg. Added
2863 * setup_bdist_egg.py: little script to build an egg. Added
2854 support in the release tools as well.
2864 support in the release tools as well.
2855
2865
2856 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2866 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2857
2867
2858 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2868 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2859 version selection (new -wxversion command line and ipythonrc
2869 version selection (new -wxversion command line and ipythonrc
2860 parameter). Patch contributed by Arnd Baecker
2870 parameter). Patch contributed by Arnd Baecker
2861 <arnd.baecker-AT-web.de>.
2871 <arnd.baecker-AT-web.de>.
2862
2872
2863 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2873 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2864 embedded instances, for variables defined at the interactive
2874 embedded instances, for variables defined at the interactive
2865 prompt of the embedded ipython. Reported by Arnd.
2875 prompt of the embedded ipython. Reported by Arnd.
2866
2876
2867 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2877 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2868 it can be used as a (stateful) toggle, or with a direct parameter.
2878 it can be used as a (stateful) toggle, or with a direct parameter.
2869
2879
2870 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2880 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2871 could be triggered in certain cases and cause the traceback
2881 could be triggered in certain cases and cause the traceback
2872 printer not to work.
2882 printer not to work.
2873
2883
2874 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2884 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2875
2885
2876 * IPython/iplib.py (_should_recompile): Small fix, closes
2886 * IPython/iplib.py (_should_recompile): Small fix, closes
2877 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2887 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2878
2888
2879 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2889 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2880
2890
2881 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2891 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2882 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2892 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2883 Moad for help with tracking it down.
2893 Moad for help with tracking it down.
2884
2894
2885 * IPython/iplib.py (handle_auto): fix autocall handling for
2895 * IPython/iplib.py (handle_auto): fix autocall handling for
2886 objects which support BOTH __getitem__ and __call__ (so that f [x]
2896 objects which support BOTH __getitem__ and __call__ (so that f [x]
2887 is left alone, instead of becoming f([x]) automatically).
2897 is left alone, instead of becoming f([x]) automatically).
2888
2898
2889 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2899 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2890 Ville's patch.
2900 Ville's patch.
2891
2901
2892 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2902 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2893
2903
2894 * IPython/iplib.py (handle_auto): changed autocall semantics to
2904 * IPython/iplib.py (handle_auto): changed autocall semantics to
2895 include 'smart' mode, where the autocall transformation is NOT
2905 include 'smart' mode, where the autocall transformation is NOT
2896 applied if there are no arguments on the line. This allows you to
2906 applied if there are no arguments on the line. This allows you to
2897 just type 'foo' if foo is a callable to see its internal form,
2907 just type 'foo' if foo is a callable to see its internal form,
2898 instead of having it called with no arguments (typically a
2908 instead of having it called with no arguments (typically a
2899 mistake). The old 'full' autocall still exists: for that, you
2909 mistake). The old 'full' autocall still exists: for that, you
2900 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2910 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2901
2911
2902 * IPython/completer.py (Completer.attr_matches): add
2912 * IPython/completer.py (Completer.attr_matches): add
2903 tab-completion support for Enthoughts' traits. After a report by
2913 tab-completion support for Enthoughts' traits. After a report by
2904 Arnd and a patch by Prabhu.
2914 Arnd and a patch by Prabhu.
2905
2915
2906 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2916 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2907
2917
2908 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2918 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2909 Schmolck's patch to fix inspect.getinnerframes().
2919 Schmolck's patch to fix inspect.getinnerframes().
2910
2920
2911 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2921 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2912 for embedded instances, regarding handling of namespaces and items
2922 for embedded instances, regarding handling of namespaces and items
2913 added to the __builtin__ one. Multiple embedded instances and
2923 added to the __builtin__ one. Multiple embedded instances and
2914 recursive embeddings should work better now (though I'm not sure
2924 recursive embeddings should work better now (though I'm not sure
2915 I've got all the corner cases fixed, that code is a bit of a brain
2925 I've got all the corner cases fixed, that code is a bit of a brain
2916 twister).
2926 twister).
2917
2927
2918 * IPython/Magic.py (magic_edit): added support to edit in-memory
2928 * IPython/Magic.py (magic_edit): added support to edit in-memory
2919 macros (automatically creates the necessary temp files). %edit
2929 macros (automatically creates the necessary temp files). %edit
2920 also doesn't return the file contents anymore, it's just noise.
2930 also doesn't return the file contents anymore, it's just noise.
2921
2931
2922 * IPython/completer.py (Completer.attr_matches): revert change to
2932 * IPython/completer.py (Completer.attr_matches): revert change to
2923 complete only on attributes listed in __all__. I realized it
2933 complete only on attributes listed in __all__. I realized it
2924 cripples the tab-completion system as a tool for exploring the
2934 cripples the tab-completion system as a tool for exploring the
2925 internals of unknown libraries (it renders any non-__all__
2935 internals of unknown libraries (it renders any non-__all__
2926 attribute off-limits). I got bit by this when trying to see
2936 attribute off-limits). I got bit by this when trying to see
2927 something inside the dis module.
2937 something inside the dis module.
2928
2938
2929 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2939 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2930
2940
2931 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2941 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2932 namespace for users and extension writers to hold data in. This
2942 namespace for users and extension writers to hold data in. This
2933 follows the discussion in
2943 follows the discussion in
2934 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2944 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2935
2945
2936 * IPython/completer.py (IPCompleter.complete): small patch to help
2946 * IPython/completer.py (IPCompleter.complete): small patch to help
2937 tab-completion under Emacs, after a suggestion by John Barnard
2947 tab-completion under Emacs, after a suggestion by John Barnard
2938 <barnarj-AT-ccf.org>.
2948 <barnarj-AT-ccf.org>.
2939
2949
2940 * IPython/Magic.py (Magic.extract_input_slices): added support for
2950 * IPython/Magic.py (Magic.extract_input_slices): added support for
2941 the slice notation in magics to use N-M to represent numbers N...M
2951 the slice notation in magics to use N-M to represent numbers N...M
2942 (closed endpoints). This is used by %macro and %save.
2952 (closed endpoints). This is used by %macro and %save.
2943
2953
2944 * IPython/completer.py (Completer.attr_matches): for modules which
2954 * IPython/completer.py (Completer.attr_matches): for modules which
2945 define __all__, complete only on those. After a patch by Jeffrey
2955 define __all__, complete only on those. After a patch by Jeffrey
2946 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2956 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2947 speed up this routine.
2957 speed up this routine.
2948
2958
2949 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2959 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2950 don't know if this is the end of it, but the behavior now is
2960 don't know if this is the end of it, but the behavior now is
2951 certainly much more correct. Note that coupled with macros,
2961 certainly much more correct. Note that coupled with macros,
2952 slightly surprising (at first) behavior may occur: a macro will in
2962 slightly surprising (at first) behavior may occur: a macro will in
2953 general expand to multiple lines of input, so upon exiting, the
2963 general expand to multiple lines of input, so upon exiting, the
2954 in/out counters will both be bumped by the corresponding amount
2964 in/out counters will both be bumped by the corresponding amount
2955 (as if the macro's contents had been typed interactively). Typing
2965 (as if the macro's contents had been typed interactively). Typing
2956 %hist will reveal the intermediate (silently processed) lines.
2966 %hist will reveal the intermediate (silently processed) lines.
2957
2967
2958 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2968 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2959 pickle to fail (%run was overwriting __main__ and not restoring
2969 pickle to fail (%run was overwriting __main__ and not restoring
2960 it, but pickle relies on __main__ to operate).
2970 it, but pickle relies on __main__ to operate).
2961
2971
2962 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2972 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2963 using properties, but forgot to make the main InteractiveShell
2973 using properties, but forgot to make the main InteractiveShell
2964 class a new-style class. Properties fail silently, and
2974 class a new-style class. Properties fail silently, and
2965 mysteriously, with old-style class (getters work, but
2975 mysteriously, with old-style class (getters work, but
2966 setters don't do anything).
2976 setters don't do anything).
2967
2977
2968 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2978 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2969
2979
2970 * IPython/Magic.py (magic_history): fix history reporting bug (I
2980 * IPython/Magic.py (magic_history): fix history reporting bug (I
2971 know some nasties are still there, I just can't seem to find a
2981 know some nasties are still there, I just can't seem to find a
2972 reproducible test case to track them down; the input history is
2982 reproducible test case to track them down; the input history is
2973 falling out of sync...)
2983 falling out of sync...)
2974
2984
2975 * IPython/iplib.py (handle_shell_escape): fix bug where both
2985 * IPython/iplib.py (handle_shell_escape): fix bug where both
2976 aliases and system accesses where broken for indented code (such
2986 aliases and system accesses where broken for indented code (such
2977 as loops).
2987 as loops).
2978
2988
2979 * IPython/genutils.py (shell): fix small but critical bug for
2989 * IPython/genutils.py (shell): fix small but critical bug for
2980 win32 system access.
2990 win32 system access.
2981
2991
2982 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2992 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2983
2993
2984 * IPython/iplib.py (showtraceback): remove use of the
2994 * IPython/iplib.py (showtraceback): remove use of the
2985 sys.last_{type/value/traceback} structures, which are non
2995 sys.last_{type/value/traceback} structures, which are non
2986 thread-safe.
2996 thread-safe.
2987 (_prefilter): change control flow to ensure that we NEVER
2997 (_prefilter): change control flow to ensure that we NEVER
2988 introspect objects when autocall is off. This will guarantee that
2998 introspect objects when autocall is off. This will guarantee that
2989 having an input line of the form 'x.y', where access to attribute
2999 having an input line of the form 'x.y', where access to attribute
2990 'y' has side effects, doesn't trigger the side effect TWICE. It
3000 'y' has side effects, doesn't trigger the side effect TWICE. It
2991 is important to note that, with autocall on, these side effects
3001 is important to note that, with autocall on, these side effects
2992 can still happen.
3002 can still happen.
2993 (ipsystem): new builtin, to complete the ip{magic/alias/system}
3003 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2994 trio. IPython offers these three kinds of special calls which are
3004 trio. IPython offers these three kinds of special calls which are
2995 not python code, and it's a good thing to have their call method
3005 not python code, and it's a good thing to have their call method
2996 be accessible as pure python functions (not just special syntax at
3006 be accessible as pure python functions (not just special syntax at
2997 the command line). It gives us a better internal implementation
3007 the command line). It gives us a better internal implementation
2998 structure, as well as exposing these for user scripting more
3008 structure, as well as exposing these for user scripting more
2999 cleanly.
3009 cleanly.
3000
3010
3001 * IPython/macro.py (Macro.__init__): moved macros to a standalone
3011 * IPython/macro.py (Macro.__init__): moved macros to a standalone
3002 file. Now that they'll be more likely to be used with the
3012 file. Now that they'll be more likely to be used with the
3003 persistance system (%store), I want to make sure their module path
3013 persistance system (%store), I want to make sure their module path
3004 doesn't change in the future, so that we don't break things for
3014 doesn't change in the future, so that we don't break things for
3005 users' persisted data.
3015 users' persisted data.
3006
3016
3007 * IPython/iplib.py (autoindent_update): move indentation
3017 * IPython/iplib.py (autoindent_update): move indentation
3008 management into the _text_ processing loop, not the keyboard
3018 management into the _text_ processing loop, not the keyboard
3009 interactive one. This is necessary to correctly process non-typed
3019 interactive one. This is necessary to correctly process non-typed
3010 multiline input (such as macros).
3020 multiline input (such as macros).
3011
3021
3012 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
3022 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
3013 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
3023 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
3014 which was producing problems in the resulting manual.
3024 which was producing problems in the resulting manual.
3015 (magic_whos): improve reporting of instances (show their class,
3025 (magic_whos): improve reporting of instances (show their class,
3016 instead of simply printing 'instance' which isn't terribly
3026 instead of simply printing 'instance' which isn't terribly
3017 informative).
3027 informative).
3018
3028
3019 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3029 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3020 (minor mods) to support network shares under win32.
3030 (minor mods) to support network shares under win32.
3021
3031
3022 * IPython/winconsole.py (get_console_size): add new winconsole
3032 * IPython/winconsole.py (get_console_size): add new winconsole
3023 module and fixes to page_dumb() to improve its behavior under
3033 module and fixes to page_dumb() to improve its behavior under
3024 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3034 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3025
3035
3026 * IPython/Magic.py (Macro): simplified Macro class to just
3036 * IPython/Magic.py (Macro): simplified Macro class to just
3027 subclass list. We've had only 2.2 compatibility for a very long
3037 subclass list. We've had only 2.2 compatibility for a very long
3028 time, yet I was still avoiding subclassing the builtin types. No
3038 time, yet I was still avoiding subclassing the builtin types. No
3029 more (I'm also starting to use properties, though I won't shift to
3039 more (I'm also starting to use properties, though I won't shift to
3030 2.3-specific features quite yet).
3040 2.3-specific features quite yet).
3031 (magic_store): added Ville's patch for lightweight variable
3041 (magic_store): added Ville's patch for lightweight variable
3032 persistence, after a request on the user list by Matt Wilkie
3042 persistence, after a request on the user list by Matt Wilkie
3033 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3043 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3034 details.
3044 details.
3035
3045
3036 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3046 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3037 changed the default logfile name from 'ipython.log' to
3047 changed the default logfile name from 'ipython.log' to
3038 'ipython_log.py'. These logs are real python files, and now that
3048 'ipython_log.py'. These logs are real python files, and now that
3039 we have much better multiline support, people are more likely to
3049 we have much better multiline support, people are more likely to
3040 want to use them as such. Might as well name them correctly.
3050 want to use them as such. Might as well name them correctly.
3041
3051
3042 * IPython/Magic.py: substantial cleanup. While we can't stop
3052 * IPython/Magic.py: substantial cleanup. While we can't stop
3043 using magics as mixins, due to the existing customizations 'out
3053 using magics as mixins, due to the existing customizations 'out
3044 there' which rely on the mixin naming conventions, at least I
3054 there' which rely on the mixin naming conventions, at least I
3045 cleaned out all cross-class name usage. So once we are OK with
3055 cleaned out all cross-class name usage. So once we are OK with
3046 breaking compatibility, the two systems can be separated.
3056 breaking compatibility, the two systems can be separated.
3047
3057
3048 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3058 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3049 anymore, and the class is a fair bit less hideous as well. New
3059 anymore, and the class is a fair bit less hideous as well. New
3050 features were also introduced: timestamping of input, and logging
3060 features were also introduced: timestamping of input, and logging
3051 of output results. These are user-visible with the -t and -o
3061 of output results. These are user-visible with the -t and -o
3052 options to %logstart. Closes
3062 options to %logstart. Closes
3053 http://www.scipy.net/roundup/ipython/issue11 and a request by
3063 http://www.scipy.net/roundup/ipython/issue11 and a request by
3054 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3064 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3055
3065
3056 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3066 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3057
3067
3058 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3068 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3059 better handle backslashes in paths. See the thread 'More Windows
3069 better handle backslashes in paths. See the thread 'More Windows
3060 questions part 2 - \/ characters revisited' on the iypthon user
3070 questions part 2 - \/ characters revisited' on the iypthon user
3061 list:
3071 list:
3062 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3072 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3063
3073
3064 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3074 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3065
3075
3066 (InteractiveShell.__init__): change threaded shells to not use the
3076 (InteractiveShell.__init__): change threaded shells to not use the
3067 ipython crash handler. This was causing more problems than not,
3077 ipython crash handler. This was causing more problems than not,
3068 as exceptions in the main thread (GUI code, typically) would
3078 as exceptions in the main thread (GUI code, typically) would
3069 always show up as a 'crash', when they really weren't.
3079 always show up as a 'crash', when they really weren't.
3070
3080
3071 The colors and exception mode commands (%colors/%xmode) have been
3081 The colors and exception mode commands (%colors/%xmode) have been
3072 synchronized to also take this into account, so users can get
3082 synchronized to also take this into account, so users can get
3073 verbose exceptions for their threaded code as well. I also added
3083 verbose exceptions for their threaded code as well. I also added
3074 support for activating pdb inside this exception handler as well,
3084 support for activating pdb inside this exception handler as well,
3075 so now GUI authors can use IPython's enhanced pdb at runtime.
3085 so now GUI authors can use IPython's enhanced pdb at runtime.
3076
3086
3077 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3087 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3078 true by default, and add it to the shipped ipythonrc file. Since
3088 true by default, and add it to the shipped ipythonrc file. Since
3079 this asks the user before proceeding, I think it's OK to make it
3089 this asks the user before proceeding, I think it's OK to make it
3080 true by default.
3090 true by default.
3081
3091
3082 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3092 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3083 of the previous special-casing of input in the eval loop. I think
3093 of the previous special-casing of input in the eval loop. I think
3084 this is cleaner, as they really are commands and shouldn't have
3094 this is cleaner, as they really are commands and shouldn't have
3085 a special role in the middle of the core code.
3095 a special role in the middle of the core code.
3086
3096
3087 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3097 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3088
3098
3089 * IPython/iplib.py (edit_syntax_error): added support for
3099 * IPython/iplib.py (edit_syntax_error): added support for
3090 automatically reopening the editor if the file had a syntax error
3100 automatically reopening the editor if the file had a syntax error
3091 in it. Thanks to scottt who provided the patch at:
3101 in it. Thanks to scottt who provided the patch at:
3092 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3102 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3093 version committed).
3103 version committed).
3094
3104
3095 * IPython/iplib.py (handle_normal): add suport for multi-line
3105 * IPython/iplib.py (handle_normal): add suport for multi-line
3096 input with emtpy lines. This fixes
3106 input with emtpy lines. This fixes
3097 http://www.scipy.net/roundup/ipython/issue43 and a similar
3107 http://www.scipy.net/roundup/ipython/issue43 and a similar
3098 discussion on the user list.
3108 discussion on the user list.
3099
3109
3100 WARNING: a behavior change is necessarily introduced to support
3110 WARNING: a behavior change is necessarily introduced to support
3101 blank lines: now a single blank line with whitespace does NOT
3111 blank lines: now a single blank line with whitespace does NOT
3102 break the input loop, which means that when autoindent is on, by
3112 break the input loop, which means that when autoindent is on, by
3103 default hitting return on the next (indented) line does NOT exit.
3113 default hitting return on the next (indented) line does NOT exit.
3104
3114
3105 Instead, to exit a multiline input you can either have:
3115 Instead, to exit a multiline input you can either have:
3106
3116
3107 - TWO whitespace lines (just hit return again), or
3117 - TWO whitespace lines (just hit return again), or
3108 - a single whitespace line of a different length than provided
3118 - a single whitespace line of a different length than provided
3109 by the autoindent (add or remove a space).
3119 by the autoindent (add or remove a space).
3110
3120
3111 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3121 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3112 module to better organize all readline-related functionality.
3122 module to better organize all readline-related functionality.
3113 I've deleted FlexCompleter and put all completion clases here.
3123 I've deleted FlexCompleter and put all completion clases here.
3114
3124
3115 * IPython/iplib.py (raw_input): improve indentation management.
3125 * IPython/iplib.py (raw_input): improve indentation management.
3116 It is now possible to paste indented code with autoindent on, and
3126 It is now possible to paste indented code with autoindent on, and
3117 the code is interpreted correctly (though it still looks bad on
3127 the code is interpreted correctly (though it still looks bad on
3118 screen, due to the line-oriented nature of ipython).
3128 screen, due to the line-oriented nature of ipython).
3119 (MagicCompleter.complete): change behavior so that a TAB key on an
3129 (MagicCompleter.complete): change behavior so that a TAB key on an
3120 otherwise empty line actually inserts a tab, instead of completing
3130 otherwise empty line actually inserts a tab, instead of completing
3121 on the entire global namespace. This makes it easier to use the
3131 on the entire global namespace. This makes it easier to use the
3122 TAB key for indentation. After a request by Hans Meine
3132 TAB key for indentation. After a request by Hans Meine
3123 <hans_meine-AT-gmx.net>
3133 <hans_meine-AT-gmx.net>
3124 (_prefilter): add support so that typing plain 'exit' or 'quit'
3134 (_prefilter): add support so that typing plain 'exit' or 'quit'
3125 does a sensible thing. Originally I tried to deviate as little as
3135 does a sensible thing. Originally I tried to deviate as little as
3126 possible from the default python behavior, but even that one may
3136 possible from the default python behavior, but even that one may
3127 change in this direction (thread on python-dev to that effect).
3137 change in this direction (thread on python-dev to that effect).
3128 Regardless, ipython should do the right thing even if CPython's
3138 Regardless, ipython should do the right thing even if CPython's
3129 '>>>' prompt doesn't.
3139 '>>>' prompt doesn't.
3130 (InteractiveShell): removed subclassing code.InteractiveConsole
3140 (InteractiveShell): removed subclassing code.InteractiveConsole
3131 class. By now we'd overridden just about all of its methods: I've
3141 class. By now we'd overridden just about all of its methods: I've
3132 copied the remaining two over, and now ipython is a standalone
3142 copied the remaining two over, and now ipython is a standalone
3133 class. This will provide a clearer picture for the chainsaw
3143 class. This will provide a clearer picture for the chainsaw
3134 branch refactoring.
3144 branch refactoring.
3135
3145
3136 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3146 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3137
3147
3138 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3148 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3139 failures for objects which break when dir() is called on them.
3149 failures for objects which break when dir() is called on them.
3140
3150
3141 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3151 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3142 distinct local and global namespaces in the completer API. This
3152 distinct local and global namespaces in the completer API. This
3143 change allows us to properly handle completion with distinct
3153 change allows us to properly handle completion with distinct
3144 scopes, including in embedded instances (this had never really
3154 scopes, including in embedded instances (this had never really
3145 worked correctly).
3155 worked correctly).
3146
3156
3147 Note: this introduces a change in the constructor for
3157 Note: this introduces a change in the constructor for
3148 MagicCompleter, as a new global_namespace parameter is now the
3158 MagicCompleter, as a new global_namespace parameter is now the
3149 second argument (the others were bumped one position).
3159 second argument (the others were bumped one position).
3150
3160
3151 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3161 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3152
3162
3153 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3163 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3154 embedded instances (which can be done now thanks to Vivian's
3164 embedded instances (which can be done now thanks to Vivian's
3155 frame-handling fixes for pdb).
3165 frame-handling fixes for pdb).
3156 (InteractiveShell.__init__): Fix namespace handling problem in
3166 (InteractiveShell.__init__): Fix namespace handling problem in
3157 embedded instances. We were overwriting __main__ unconditionally,
3167 embedded instances. We were overwriting __main__ unconditionally,
3158 and this should only be done for 'full' (non-embedded) IPython;
3168 and this should only be done for 'full' (non-embedded) IPython;
3159 embedded instances must respect the caller's __main__. Thanks to
3169 embedded instances must respect the caller's __main__. Thanks to
3160 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3170 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3161
3171
3162 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3172 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3163
3173
3164 * setup.py: added download_url to setup(). This registers the
3174 * setup.py: added download_url to setup(). This registers the
3165 download address at PyPI, which is not only useful to humans
3175 download address at PyPI, which is not only useful to humans
3166 browsing the site, but is also picked up by setuptools (the Eggs
3176 browsing the site, but is also picked up by setuptools (the Eggs
3167 machinery). Thanks to Ville and R. Kern for the info/discussion
3177 machinery). Thanks to Ville and R. Kern for the info/discussion
3168 on this.
3178 on this.
3169
3179
3170 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3180 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3171
3181
3172 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3182 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3173 This brings a lot of nice functionality to the pdb mode, which now
3183 This brings a lot of nice functionality to the pdb mode, which now
3174 has tab-completion, syntax highlighting, and better stack handling
3184 has tab-completion, syntax highlighting, and better stack handling
3175 than before. Many thanks to Vivian De Smedt
3185 than before. Many thanks to Vivian De Smedt
3176 <vivian-AT-vdesmedt.com> for the original patches.
3186 <vivian-AT-vdesmedt.com> for the original patches.
3177
3187
3178 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3188 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3179
3189
3180 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3190 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3181 sequence to consistently accept the banner argument. The
3191 sequence to consistently accept the banner argument. The
3182 inconsistency was tripping SAGE, thanks to Gary Zablackis
3192 inconsistency was tripping SAGE, thanks to Gary Zablackis
3183 <gzabl-AT-yahoo.com> for the report.
3193 <gzabl-AT-yahoo.com> for the report.
3184
3194
3185 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3195 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3186
3196
3187 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3197 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3188 Fix bug where a naked 'alias' call in the ipythonrc file would
3198 Fix bug where a naked 'alias' call in the ipythonrc file would
3189 cause a crash. Bug reported by Jorgen Stenarson.
3199 cause a crash. Bug reported by Jorgen Stenarson.
3190
3200
3191 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3201 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3192
3202
3193 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3203 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3194 startup time.
3204 startup time.
3195
3205
3196 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3206 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3197 instances had introduced a bug with globals in normal code. Now
3207 instances had introduced a bug with globals in normal code. Now
3198 it's working in all cases.
3208 it's working in all cases.
3199
3209
3200 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3210 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3201 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3211 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3202 has been introduced to set the default case sensitivity of the
3212 has been introduced to set the default case sensitivity of the
3203 searches. Users can still select either mode at runtime on a
3213 searches. Users can still select either mode at runtime on a
3204 per-search basis.
3214 per-search basis.
3205
3215
3206 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3216 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3207
3217
3208 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3218 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3209 attributes in wildcard searches for subclasses. Modified version
3219 attributes in wildcard searches for subclasses. Modified version
3210 of a patch by Jorgen.
3220 of a patch by Jorgen.
3211
3221
3212 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3222 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3213
3223
3214 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3224 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3215 embedded instances. I added a user_global_ns attribute to the
3225 embedded instances. I added a user_global_ns attribute to the
3216 InteractiveShell class to handle this.
3226 InteractiveShell class to handle this.
3217
3227
3218 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3228 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3219
3229
3220 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3230 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3221 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3231 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3222 (reported under win32, but may happen also in other platforms).
3232 (reported under win32, but may happen also in other platforms).
3223 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3233 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3224
3234
3225 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3235 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3226
3236
3227 * IPython/Magic.py (magic_psearch): new support for wildcard
3237 * IPython/Magic.py (magic_psearch): new support for wildcard
3228 patterns. Now, typing ?a*b will list all names which begin with a
3238 patterns. Now, typing ?a*b will list all names which begin with a
3229 and end in b, for example. The %psearch magic has full
3239 and end in b, for example. The %psearch magic has full
3230 docstrings. Many thanks to Jörgen Stenarson
3240 docstrings. Many thanks to Jörgen Stenarson
3231 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3241 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3232 implementing this functionality.
3242 implementing this functionality.
3233
3243
3234 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3244 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3235
3245
3236 * Manual: fixed long-standing annoyance of double-dashes (as in
3246 * Manual: fixed long-standing annoyance of double-dashes (as in
3237 --prefix=~, for example) being stripped in the HTML version. This
3247 --prefix=~, for example) being stripped in the HTML version. This
3238 is a latex2html bug, but a workaround was provided. Many thanks
3248 is a latex2html bug, but a workaround was provided. Many thanks
3239 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3249 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3240 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3250 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3241 rolling. This seemingly small issue had tripped a number of users
3251 rolling. This seemingly small issue had tripped a number of users
3242 when first installing, so I'm glad to see it gone.
3252 when first installing, so I'm glad to see it gone.
3243
3253
3244 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3254 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3245
3255
3246 * IPython/Extensions/numeric_formats.py: fix missing import,
3256 * IPython/Extensions/numeric_formats.py: fix missing import,
3247 reported by Stephen Walton.
3257 reported by Stephen Walton.
3248
3258
3249 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3259 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3250
3260
3251 * IPython/demo.py: finish demo module, fully documented now.
3261 * IPython/demo.py: finish demo module, fully documented now.
3252
3262
3253 * IPython/genutils.py (file_read): simple little utility to read a
3263 * IPython/genutils.py (file_read): simple little utility to read a
3254 file and ensure it's closed afterwards.
3264 file and ensure it's closed afterwards.
3255
3265
3256 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3266 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3257
3267
3258 * IPython/demo.py (Demo.__init__): added support for individually
3268 * IPython/demo.py (Demo.__init__): added support for individually
3259 tagging blocks for automatic execution.
3269 tagging blocks for automatic execution.
3260
3270
3261 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3271 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3262 syntax-highlighted python sources, requested by John.
3272 syntax-highlighted python sources, requested by John.
3263
3273
3264 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3274 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3265
3275
3266 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3276 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3267 finishing.
3277 finishing.
3268
3278
3269 * IPython/genutils.py (shlex_split): moved from Magic to here,
3279 * IPython/genutils.py (shlex_split): moved from Magic to here,
3270 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3280 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3271
3281
3272 * IPython/demo.py (Demo.__init__): added support for silent
3282 * IPython/demo.py (Demo.__init__): added support for silent
3273 blocks, improved marks as regexps, docstrings written.
3283 blocks, improved marks as regexps, docstrings written.
3274 (Demo.__init__): better docstring, added support for sys.argv.
3284 (Demo.__init__): better docstring, added support for sys.argv.
3275
3285
3276 * IPython/genutils.py (marquee): little utility used by the demo
3286 * IPython/genutils.py (marquee): little utility used by the demo
3277 code, handy in general.
3287 code, handy in general.
3278
3288
3279 * IPython/demo.py (Demo.__init__): new class for interactive
3289 * IPython/demo.py (Demo.__init__): new class for interactive
3280 demos. Not documented yet, I just wrote it in a hurry for
3290 demos. Not documented yet, I just wrote it in a hurry for
3281 scipy'05. Will docstring later.
3291 scipy'05. Will docstring later.
3282
3292
3283 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3293 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3284
3294
3285 * IPython/Shell.py (sigint_handler): Drastic simplification which
3295 * IPython/Shell.py (sigint_handler): Drastic simplification which
3286 also seems to make Ctrl-C work correctly across threads! This is
3296 also seems to make Ctrl-C work correctly across threads! This is
3287 so simple, that I can't beleive I'd missed it before. Needs more
3297 so simple, that I can't beleive I'd missed it before. Needs more
3288 testing, though.
3298 testing, though.
3289 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3299 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3290 like this before...
3300 like this before...
3291
3301
3292 * IPython/genutils.py (get_home_dir): add protection against
3302 * IPython/genutils.py (get_home_dir): add protection against
3293 non-dirs in win32 registry.
3303 non-dirs in win32 registry.
3294
3304
3295 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3305 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3296 bug where dict was mutated while iterating (pysh crash).
3306 bug where dict was mutated while iterating (pysh crash).
3297
3307
3298 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3308 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3299
3309
3300 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3310 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3301 spurious newlines added by this routine. After a report by
3311 spurious newlines added by this routine. After a report by
3302 F. Mantegazza.
3312 F. Mantegazza.
3303
3313
3304 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3314 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3305
3315
3306 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3316 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3307 calls. These were a leftover from the GTK 1.x days, and can cause
3317 calls. These were a leftover from the GTK 1.x days, and can cause
3308 problems in certain cases (after a report by John Hunter).
3318 problems in certain cases (after a report by John Hunter).
3309
3319
3310 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3320 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3311 os.getcwd() fails at init time. Thanks to patch from David Remahl
3321 os.getcwd() fails at init time. Thanks to patch from David Remahl
3312 <chmod007-AT-mac.com>.
3322 <chmod007-AT-mac.com>.
3313 (InteractiveShell.__init__): prevent certain special magics from
3323 (InteractiveShell.__init__): prevent certain special magics from
3314 being shadowed by aliases. Closes
3324 being shadowed by aliases. Closes
3315 http://www.scipy.net/roundup/ipython/issue41.
3325 http://www.scipy.net/roundup/ipython/issue41.
3316
3326
3317 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3327 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3318
3328
3319 * IPython/iplib.py (InteractiveShell.complete): Added new
3329 * IPython/iplib.py (InteractiveShell.complete): Added new
3320 top-level completion method to expose the completion mechanism
3330 top-level completion method to expose the completion mechanism
3321 beyond readline-based environments.
3331 beyond readline-based environments.
3322
3332
3323 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3333 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3324
3334
3325 * tools/ipsvnc (svnversion): fix svnversion capture.
3335 * tools/ipsvnc (svnversion): fix svnversion capture.
3326
3336
3327 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3337 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3328 attribute to self, which was missing. Before, it was set by a
3338 attribute to self, which was missing. Before, it was set by a
3329 routine which in certain cases wasn't being called, so the
3339 routine which in certain cases wasn't being called, so the
3330 instance could end up missing the attribute. This caused a crash.
3340 instance could end up missing the attribute. This caused a crash.
3331 Closes http://www.scipy.net/roundup/ipython/issue40.
3341 Closes http://www.scipy.net/roundup/ipython/issue40.
3332
3342
3333 2005-08-16 Fernando Perez <fperez@colorado.edu>
3343 2005-08-16 Fernando Perez <fperez@colorado.edu>
3334
3344
3335 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3345 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3336 contains non-string attribute. Closes
3346 contains non-string attribute. Closes
3337 http://www.scipy.net/roundup/ipython/issue38.
3347 http://www.scipy.net/roundup/ipython/issue38.
3338
3348
3339 2005-08-14 Fernando Perez <fperez@colorado.edu>
3349 2005-08-14 Fernando Perez <fperez@colorado.edu>
3340
3350
3341 * tools/ipsvnc: Minor improvements, to add changeset info.
3351 * tools/ipsvnc: Minor improvements, to add changeset info.
3342
3352
3343 2005-08-12 Fernando Perez <fperez@colorado.edu>
3353 2005-08-12 Fernando Perez <fperez@colorado.edu>
3344
3354
3345 * IPython/iplib.py (runsource): remove self.code_to_run_src
3355 * IPython/iplib.py (runsource): remove self.code_to_run_src
3346 attribute. I realized this is nothing more than
3356 attribute. I realized this is nothing more than
3347 '\n'.join(self.buffer), and having the same data in two different
3357 '\n'.join(self.buffer), and having the same data in two different
3348 places is just asking for synchronization bugs. This may impact
3358 places is just asking for synchronization bugs. This may impact
3349 people who have custom exception handlers, so I need to warn
3359 people who have custom exception handlers, so I need to warn
3350 ipython-dev about it (F. Mantegazza may use them).
3360 ipython-dev about it (F. Mantegazza may use them).
3351
3361
3352 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3362 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3353
3363
3354 * IPython/genutils.py: fix 2.2 compatibility (generators)
3364 * IPython/genutils.py: fix 2.2 compatibility (generators)
3355
3365
3356 2005-07-18 Fernando Perez <fperez@colorado.edu>
3366 2005-07-18 Fernando Perez <fperez@colorado.edu>
3357
3367
3358 * IPython/genutils.py (get_home_dir): fix to help users with
3368 * IPython/genutils.py (get_home_dir): fix to help users with
3359 invalid $HOME under win32.
3369 invalid $HOME under win32.
3360
3370
3361 2005-07-17 Fernando Perez <fperez@colorado.edu>
3371 2005-07-17 Fernando Perez <fperez@colorado.edu>
3362
3372
3363 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3373 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3364 some old hacks and clean up a bit other routines; code should be
3374 some old hacks and clean up a bit other routines; code should be
3365 simpler and a bit faster.
3375 simpler and a bit faster.
3366
3376
3367 * IPython/iplib.py (interact): removed some last-resort attempts
3377 * IPython/iplib.py (interact): removed some last-resort attempts
3368 to survive broken stdout/stderr. That code was only making it
3378 to survive broken stdout/stderr. That code was only making it
3369 harder to abstract out the i/o (necessary for gui integration),
3379 harder to abstract out the i/o (necessary for gui integration),
3370 and the crashes it could prevent were extremely rare in practice
3380 and the crashes it could prevent were extremely rare in practice
3371 (besides being fully user-induced in a pretty violent manner).
3381 (besides being fully user-induced in a pretty violent manner).
3372
3382
3373 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3383 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3374 Nothing major yet, but the code is simpler to read; this should
3384 Nothing major yet, but the code is simpler to read; this should
3375 make it easier to do more serious modifications in the future.
3385 make it easier to do more serious modifications in the future.
3376
3386
3377 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3387 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3378 which broke in .15 (thanks to a report by Ville).
3388 which broke in .15 (thanks to a report by Ville).
3379
3389
3380 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3390 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3381 be quite correct, I know next to nothing about unicode). This
3391 be quite correct, I know next to nothing about unicode). This
3382 will allow unicode strings to be used in prompts, amongst other
3392 will allow unicode strings to be used in prompts, amongst other
3383 cases. It also will prevent ipython from crashing when unicode
3393 cases. It also will prevent ipython from crashing when unicode
3384 shows up unexpectedly in many places. If ascii encoding fails, we
3394 shows up unexpectedly in many places. If ascii encoding fails, we
3385 assume utf_8. Currently the encoding is not a user-visible
3395 assume utf_8. Currently the encoding is not a user-visible
3386 setting, though it could be made so if there is demand for it.
3396 setting, though it could be made so if there is demand for it.
3387
3397
3388 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3398 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3389
3399
3390 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3400 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3391
3401
3392 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3402 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3393
3403
3394 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3404 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3395 code can work transparently for 2.2/2.3.
3405 code can work transparently for 2.2/2.3.
3396
3406
3397 2005-07-16 Fernando Perez <fperez@colorado.edu>
3407 2005-07-16 Fernando Perez <fperez@colorado.edu>
3398
3408
3399 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3409 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3400 out of the color scheme table used for coloring exception
3410 out of the color scheme table used for coloring exception
3401 tracebacks. This allows user code to add new schemes at runtime.
3411 tracebacks. This allows user code to add new schemes at runtime.
3402 This is a minimally modified version of the patch at
3412 This is a minimally modified version of the patch at
3403 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3413 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3404 for the contribution.
3414 for the contribution.
3405
3415
3406 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3416 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3407 slightly modified version of the patch in
3417 slightly modified version of the patch in
3408 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3418 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3409 to remove the previous try/except solution (which was costlier).
3419 to remove the previous try/except solution (which was costlier).
3410 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3420 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3411
3421
3412 2005-06-08 Fernando Perez <fperez@colorado.edu>
3422 2005-06-08 Fernando Perez <fperez@colorado.edu>
3413
3423
3414 * IPython/iplib.py (write/write_err): Add methods to abstract all
3424 * IPython/iplib.py (write/write_err): Add methods to abstract all
3415 I/O a bit more.
3425 I/O a bit more.
3416
3426
3417 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3427 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3418 warning, reported by Aric Hagberg, fix by JD Hunter.
3428 warning, reported by Aric Hagberg, fix by JD Hunter.
3419
3429
3420 2005-06-02 *** Released version 0.6.15
3430 2005-06-02 *** Released version 0.6.15
3421
3431
3422 2005-06-01 Fernando Perez <fperez@colorado.edu>
3432 2005-06-01 Fernando Perez <fperez@colorado.edu>
3423
3433
3424 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3434 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3425 tab-completion of filenames within open-quoted strings. Note that
3435 tab-completion of filenames within open-quoted strings. Note that
3426 this requires that in ~/.ipython/ipythonrc, users change the
3436 this requires that in ~/.ipython/ipythonrc, users change the
3427 readline delimiters configuration to read:
3437 readline delimiters configuration to read:
3428
3438
3429 readline_remove_delims -/~
3439 readline_remove_delims -/~
3430
3440
3431
3441
3432 2005-05-31 *** Released version 0.6.14
3442 2005-05-31 *** Released version 0.6.14
3433
3443
3434 2005-05-29 Fernando Perez <fperez@colorado.edu>
3444 2005-05-29 Fernando Perez <fperez@colorado.edu>
3435
3445
3436 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3446 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3437 with files not on the filesystem. Reported by Eliyahu Sandler
3447 with files not on the filesystem. Reported by Eliyahu Sandler
3438 <eli@gondolin.net>
3448 <eli@gondolin.net>
3439
3449
3440 2005-05-22 Fernando Perez <fperez@colorado.edu>
3450 2005-05-22 Fernando Perez <fperez@colorado.edu>
3441
3451
3442 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3452 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3443 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3453 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3444
3454
3445 2005-05-19 Fernando Perez <fperez@colorado.edu>
3455 2005-05-19 Fernando Perez <fperez@colorado.edu>
3446
3456
3447 * IPython/iplib.py (safe_execfile): close a file which could be
3457 * IPython/iplib.py (safe_execfile): close a file which could be
3448 left open (causing problems in win32, which locks open files).
3458 left open (causing problems in win32, which locks open files).
3449 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3459 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3450
3460
3451 2005-05-18 Fernando Perez <fperez@colorado.edu>
3461 2005-05-18 Fernando Perez <fperez@colorado.edu>
3452
3462
3453 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3463 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3454 keyword arguments correctly to safe_execfile().
3464 keyword arguments correctly to safe_execfile().
3455
3465
3456 2005-05-13 Fernando Perez <fperez@colorado.edu>
3466 2005-05-13 Fernando Perez <fperez@colorado.edu>
3457
3467
3458 * ipython.1: Added info about Qt to manpage, and threads warning
3468 * ipython.1: Added info about Qt to manpage, and threads warning
3459 to usage page (invoked with --help).
3469 to usage page (invoked with --help).
3460
3470
3461 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3471 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3462 new matcher (it goes at the end of the priority list) to do
3472 new matcher (it goes at the end of the priority list) to do
3463 tab-completion on named function arguments. Submitted by George
3473 tab-completion on named function arguments. Submitted by George
3464 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3474 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3465 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3475 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3466 for more details.
3476 for more details.
3467
3477
3468 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3478 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3469 SystemExit exceptions in the script being run. Thanks to a report
3479 SystemExit exceptions in the script being run. Thanks to a report
3470 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3480 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3471 producing very annoying behavior when running unit tests.
3481 producing very annoying behavior when running unit tests.
3472
3482
3473 2005-05-12 Fernando Perez <fperez@colorado.edu>
3483 2005-05-12 Fernando Perez <fperez@colorado.edu>
3474
3484
3475 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3485 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3476 which I'd broken (again) due to a changed regexp. In the process,
3486 which I'd broken (again) due to a changed regexp. In the process,
3477 added ';' as an escape to auto-quote the whole line without
3487 added ';' as an escape to auto-quote the whole line without
3478 splitting its arguments. Thanks to a report by Jerry McRae
3488 splitting its arguments. Thanks to a report by Jerry McRae
3479 <qrs0xyc02-AT-sneakemail.com>.
3489 <qrs0xyc02-AT-sneakemail.com>.
3480
3490
3481 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3491 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3482 possible crashes caused by a TokenError. Reported by Ed Schofield
3492 possible crashes caused by a TokenError. Reported by Ed Schofield
3483 <schofield-AT-ftw.at>.
3493 <schofield-AT-ftw.at>.
3484
3494
3485 2005-05-06 Fernando Perez <fperez@colorado.edu>
3495 2005-05-06 Fernando Perez <fperez@colorado.edu>
3486
3496
3487 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3497 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3488
3498
3489 2005-04-29 Fernando Perez <fperez@colorado.edu>
3499 2005-04-29 Fernando Perez <fperez@colorado.edu>
3490
3500
3491 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3501 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3492 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3502 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3493 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3503 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3494 which provides support for Qt interactive usage (similar to the
3504 which provides support for Qt interactive usage (similar to the
3495 existing one for WX and GTK). This had been often requested.
3505 existing one for WX and GTK). This had been often requested.
3496
3506
3497 2005-04-14 *** Released version 0.6.13
3507 2005-04-14 *** Released version 0.6.13
3498
3508
3499 2005-04-08 Fernando Perez <fperez@colorado.edu>
3509 2005-04-08 Fernando Perez <fperez@colorado.edu>
3500
3510
3501 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3511 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3502 from _ofind, which gets called on almost every input line. Now,
3512 from _ofind, which gets called on almost every input line. Now,
3503 we only try to get docstrings if they are actually going to be
3513 we only try to get docstrings if they are actually going to be
3504 used (the overhead of fetching unnecessary docstrings can be
3514 used (the overhead of fetching unnecessary docstrings can be
3505 noticeable for certain objects, such as Pyro proxies).
3515 noticeable for certain objects, such as Pyro proxies).
3506
3516
3507 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3517 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3508 for completers. For some reason I had been passing them the state
3518 for completers. For some reason I had been passing them the state
3509 variable, which completers never actually need, and was in
3519 variable, which completers never actually need, and was in
3510 conflict with the rlcompleter API. Custom completers ONLY need to
3520 conflict with the rlcompleter API. Custom completers ONLY need to
3511 take the text parameter.
3521 take the text parameter.
3512
3522
3513 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3523 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3514 work correctly in pysh. I've also moved all the logic which used
3524 work correctly in pysh. I've also moved all the logic which used
3515 to be in pysh.py here, which will prevent problems with future
3525 to be in pysh.py here, which will prevent problems with future
3516 upgrades. However, this time I must warn users to update their
3526 upgrades. However, this time I must warn users to update their
3517 pysh profile to include the line
3527 pysh profile to include the line
3518
3528
3519 import_all IPython.Extensions.InterpreterExec
3529 import_all IPython.Extensions.InterpreterExec
3520
3530
3521 because otherwise things won't work for them. They MUST also
3531 because otherwise things won't work for them. They MUST also
3522 delete pysh.py and the line
3532 delete pysh.py and the line
3523
3533
3524 execfile pysh.py
3534 execfile pysh.py
3525
3535
3526 from their ipythonrc-pysh.
3536 from their ipythonrc-pysh.
3527
3537
3528 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3538 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3529 robust in the face of objects whose dir() returns non-strings
3539 robust in the face of objects whose dir() returns non-strings
3530 (which it shouldn't, but some broken libs like ITK do). Thanks to
3540 (which it shouldn't, but some broken libs like ITK do). Thanks to
3531 a patch by John Hunter (implemented differently, though). Also
3541 a patch by John Hunter (implemented differently, though). Also
3532 minor improvements by using .extend instead of + on lists.
3542 minor improvements by using .extend instead of + on lists.
3533
3543
3534 * pysh.py:
3544 * pysh.py:
3535
3545
3536 2005-04-06 Fernando Perez <fperez@colorado.edu>
3546 2005-04-06 Fernando Perez <fperez@colorado.edu>
3537
3547
3538 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3548 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3539 by default, so that all users benefit from it. Those who don't
3549 by default, so that all users benefit from it. Those who don't
3540 want it can still turn it off.
3550 want it can still turn it off.
3541
3551
3542 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3552 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3543 config file, I'd forgotten about this, so users were getting it
3553 config file, I'd forgotten about this, so users were getting it
3544 off by default.
3554 off by default.
3545
3555
3546 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3556 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3547 consistency. Now magics can be called in multiline statements,
3557 consistency. Now magics can be called in multiline statements,
3548 and python variables can be expanded in magic calls via $var.
3558 and python variables can be expanded in magic calls via $var.
3549 This makes the magic system behave just like aliases or !system
3559 This makes the magic system behave just like aliases or !system
3550 calls.
3560 calls.
3551
3561
3552 2005-03-28 Fernando Perez <fperez@colorado.edu>
3562 2005-03-28 Fernando Perez <fperez@colorado.edu>
3553
3563
3554 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3564 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3555 expensive string additions for building command. Add support for
3565 expensive string additions for building command. Add support for
3556 trailing ';' when autocall is used.
3566 trailing ';' when autocall is used.
3557
3567
3558 2005-03-26 Fernando Perez <fperez@colorado.edu>
3568 2005-03-26 Fernando Perez <fperez@colorado.edu>
3559
3569
3560 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3570 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3561 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3571 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3562 ipython.el robust against prompts with any number of spaces
3572 ipython.el robust against prompts with any number of spaces
3563 (including 0) after the ':' character.
3573 (including 0) after the ':' character.
3564
3574
3565 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3575 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3566 continuation prompt, which misled users to think the line was
3576 continuation prompt, which misled users to think the line was
3567 already indented. Closes debian Bug#300847, reported to me by
3577 already indented. Closes debian Bug#300847, reported to me by
3568 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3578 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3569
3579
3570 2005-03-23 Fernando Perez <fperez@colorado.edu>
3580 2005-03-23 Fernando Perez <fperez@colorado.edu>
3571
3581
3572 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3582 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3573 properly aligned if they have embedded newlines.
3583 properly aligned if they have embedded newlines.
3574
3584
3575 * IPython/iplib.py (runlines): Add a public method to expose
3585 * IPython/iplib.py (runlines): Add a public method to expose
3576 IPython's code execution machinery, so that users can run strings
3586 IPython's code execution machinery, so that users can run strings
3577 as if they had been typed at the prompt interactively.
3587 as if they had been typed at the prompt interactively.
3578 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3588 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3579 methods which can call the system shell, but with python variable
3589 methods which can call the system shell, but with python variable
3580 expansion. The three such methods are: __IPYTHON__.system,
3590 expansion. The three such methods are: __IPYTHON__.system,
3581 .getoutput and .getoutputerror. These need to be documented in a
3591 .getoutput and .getoutputerror. These need to be documented in a
3582 'public API' section (to be written) of the manual.
3592 'public API' section (to be written) of the manual.
3583
3593
3584 2005-03-20 Fernando Perez <fperez@colorado.edu>
3594 2005-03-20 Fernando Perez <fperez@colorado.edu>
3585
3595
3586 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3596 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3587 for custom exception handling. This is quite powerful, and it
3597 for custom exception handling. This is quite powerful, and it
3588 allows for user-installable exception handlers which can trap
3598 allows for user-installable exception handlers which can trap
3589 custom exceptions at runtime and treat them separately from
3599 custom exceptions at runtime and treat them separately from
3590 IPython's default mechanisms. At the request of Frédéric
3600 IPython's default mechanisms. At the request of Frédéric
3591 Mantegazza <mantegazza-AT-ill.fr>.
3601 Mantegazza <mantegazza-AT-ill.fr>.
3592 (InteractiveShell.set_custom_completer): public API function to
3602 (InteractiveShell.set_custom_completer): public API function to
3593 add new completers at runtime.
3603 add new completers at runtime.
3594
3604
3595 2005-03-19 Fernando Perez <fperez@colorado.edu>
3605 2005-03-19 Fernando Perez <fperez@colorado.edu>
3596
3606
3597 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3607 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3598 allow objects which provide their docstrings via non-standard
3608 allow objects which provide their docstrings via non-standard
3599 mechanisms (like Pyro proxies) to still be inspected by ipython's
3609 mechanisms (like Pyro proxies) to still be inspected by ipython's
3600 ? system.
3610 ? system.
3601
3611
3602 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3612 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3603 automatic capture system. I tried quite hard to make it work
3613 automatic capture system. I tried quite hard to make it work
3604 reliably, and simply failed. I tried many combinations with the
3614 reliably, and simply failed. I tried many combinations with the
3605 subprocess module, but eventually nothing worked in all needed
3615 subprocess module, but eventually nothing worked in all needed
3606 cases (not blocking stdin for the child, duplicating stdout
3616 cases (not blocking stdin for the child, duplicating stdout
3607 without blocking, etc). The new %sc/%sx still do capture to these
3617 without blocking, etc). The new %sc/%sx still do capture to these
3608 magical list/string objects which make shell use much more
3618 magical list/string objects which make shell use much more
3609 conveninent, so not all is lost.
3619 conveninent, so not all is lost.
3610
3620
3611 XXX - FIX MANUAL for the change above!
3621 XXX - FIX MANUAL for the change above!
3612
3622
3613 (runsource): I copied code.py's runsource() into ipython to modify
3623 (runsource): I copied code.py's runsource() into ipython to modify
3614 it a bit. Now the code object and source to be executed are
3624 it a bit. Now the code object and source to be executed are
3615 stored in ipython. This makes this info accessible to third-party
3625 stored in ipython. This makes this info accessible to third-party
3616 tools, like custom exception handlers. After a request by Frédéric
3626 tools, like custom exception handlers. After a request by Frédéric
3617 Mantegazza <mantegazza-AT-ill.fr>.
3627 Mantegazza <mantegazza-AT-ill.fr>.
3618
3628
3619 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3629 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3620 history-search via readline (like C-p/C-n). I'd wanted this for a
3630 history-search via readline (like C-p/C-n). I'd wanted this for a
3621 long time, but only recently found out how to do it. For users
3631 long time, but only recently found out how to do it. For users
3622 who already have their ipythonrc files made and want this, just
3632 who already have their ipythonrc files made and want this, just
3623 add:
3633 add:
3624
3634
3625 readline_parse_and_bind "\e[A": history-search-backward
3635 readline_parse_and_bind "\e[A": history-search-backward
3626 readline_parse_and_bind "\e[B": history-search-forward
3636 readline_parse_and_bind "\e[B": history-search-forward
3627
3637
3628 2005-03-18 Fernando Perez <fperez@colorado.edu>
3638 2005-03-18 Fernando Perez <fperez@colorado.edu>
3629
3639
3630 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3640 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3631 LSString and SList classes which allow transparent conversions
3641 LSString and SList classes which allow transparent conversions
3632 between list mode and whitespace-separated string.
3642 between list mode and whitespace-separated string.
3633 (magic_r): Fix recursion problem in %r.
3643 (magic_r): Fix recursion problem in %r.
3634
3644
3635 * IPython/genutils.py (LSString): New class to be used for
3645 * IPython/genutils.py (LSString): New class to be used for
3636 automatic storage of the results of all alias/system calls in _o
3646 automatic storage of the results of all alias/system calls in _o
3637 and _e (stdout/err). These provide a .l/.list attribute which
3647 and _e (stdout/err). These provide a .l/.list attribute which
3638 does automatic splitting on newlines. This means that for most
3648 does automatic splitting on newlines. This means that for most
3639 uses, you'll never need to do capturing of output with %sc/%sx
3649 uses, you'll never need to do capturing of output with %sc/%sx
3640 anymore, since ipython keeps this always done for you. Note that
3650 anymore, since ipython keeps this always done for you. Note that
3641 only the LAST results are stored, the _o/e variables are
3651 only the LAST results are stored, the _o/e variables are
3642 overwritten on each call. If you need to save their contents
3652 overwritten on each call. If you need to save their contents
3643 further, simply bind them to any other name.
3653 further, simply bind them to any other name.
3644
3654
3645 2005-03-17 Fernando Perez <fperez@colorado.edu>
3655 2005-03-17 Fernando Perez <fperez@colorado.edu>
3646
3656
3647 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3657 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3648 prompt namespace handling.
3658 prompt namespace handling.
3649
3659
3650 2005-03-16 Fernando Perez <fperez@colorado.edu>
3660 2005-03-16 Fernando Perez <fperez@colorado.edu>
3651
3661
3652 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3662 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3653 classic prompts to be '>>> ' (final space was missing, and it
3663 classic prompts to be '>>> ' (final space was missing, and it
3654 trips the emacs python mode).
3664 trips the emacs python mode).
3655 (BasePrompt.__str__): Added safe support for dynamic prompt
3665 (BasePrompt.__str__): Added safe support for dynamic prompt
3656 strings. Now you can set your prompt string to be '$x', and the
3666 strings. Now you can set your prompt string to be '$x', and the
3657 value of x will be printed from your interactive namespace. The
3667 value of x will be printed from your interactive namespace. The
3658 interpolation syntax includes the full Itpl support, so
3668 interpolation syntax includes the full Itpl support, so
3659 ${foo()+x+bar()} is a valid prompt string now, and the function
3669 ${foo()+x+bar()} is a valid prompt string now, and the function
3660 calls will be made at runtime.
3670 calls will be made at runtime.
3661
3671
3662 2005-03-15 Fernando Perez <fperez@colorado.edu>
3672 2005-03-15 Fernando Perez <fperez@colorado.edu>
3663
3673
3664 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3674 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3665 avoid name clashes in pylab. %hist still works, it just forwards
3675 avoid name clashes in pylab. %hist still works, it just forwards
3666 the call to %history.
3676 the call to %history.
3667
3677
3668 2005-03-02 *** Released version 0.6.12
3678 2005-03-02 *** Released version 0.6.12
3669
3679
3670 2005-03-02 Fernando Perez <fperez@colorado.edu>
3680 2005-03-02 Fernando Perez <fperez@colorado.edu>
3671
3681
3672 * IPython/iplib.py (handle_magic): log magic calls properly as
3682 * IPython/iplib.py (handle_magic): log magic calls properly as
3673 ipmagic() function calls.
3683 ipmagic() function calls.
3674
3684
3675 * IPython/Magic.py (magic_time): Improved %time to support
3685 * IPython/Magic.py (magic_time): Improved %time to support
3676 statements and provide wall-clock as well as CPU time.
3686 statements and provide wall-clock as well as CPU time.
3677
3687
3678 2005-02-27 Fernando Perez <fperez@colorado.edu>
3688 2005-02-27 Fernando Perez <fperez@colorado.edu>
3679
3689
3680 * IPython/hooks.py: New hooks module, to expose user-modifiable
3690 * IPython/hooks.py: New hooks module, to expose user-modifiable
3681 IPython functionality in a clean manner. For now only the editor
3691 IPython functionality in a clean manner. For now only the editor
3682 hook is actually written, and other thigns which I intend to turn
3692 hook is actually written, and other thigns which I intend to turn
3683 into proper hooks aren't yet there. The display and prefilter
3693 into proper hooks aren't yet there. The display and prefilter
3684 stuff, for example, should be hooks. But at least now the
3694 stuff, for example, should be hooks. But at least now the
3685 framework is in place, and the rest can be moved here with more
3695 framework is in place, and the rest can be moved here with more
3686 time later. IPython had had a .hooks variable for a long time for
3696 time later. IPython had had a .hooks variable for a long time for
3687 this purpose, but I'd never actually used it for anything.
3697 this purpose, but I'd never actually used it for anything.
3688
3698
3689 2005-02-26 Fernando Perez <fperez@colorado.edu>
3699 2005-02-26 Fernando Perez <fperez@colorado.edu>
3690
3700
3691 * IPython/ipmaker.py (make_IPython): make the default ipython
3701 * IPython/ipmaker.py (make_IPython): make the default ipython
3692 directory be called _ipython under win32, to follow more the
3702 directory be called _ipython under win32, to follow more the
3693 naming peculiarities of that platform (where buggy software like
3703 naming peculiarities of that platform (where buggy software like
3694 Visual Sourcesafe breaks with .named directories). Reported by
3704 Visual Sourcesafe breaks with .named directories). Reported by
3695 Ville Vainio.
3705 Ville Vainio.
3696
3706
3697 2005-02-23 Fernando Perez <fperez@colorado.edu>
3707 2005-02-23 Fernando Perez <fperez@colorado.edu>
3698
3708
3699 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3709 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3700 auto_aliases for win32 which were causing problems. Users can
3710 auto_aliases for win32 which were causing problems. Users can
3701 define the ones they personally like.
3711 define the ones they personally like.
3702
3712
3703 2005-02-21 Fernando Perez <fperez@colorado.edu>
3713 2005-02-21 Fernando Perez <fperez@colorado.edu>
3704
3714
3705 * IPython/Magic.py (magic_time): new magic to time execution of
3715 * IPython/Magic.py (magic_time): new magic to time execution of
3706 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3716 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3707
3717
3708 2005-02-19 Fernando Perez <fperez@colorado.edu>
3718 2005-02-19 Fernando Perez <fperez@colorado.edu>
3709
3719
3710 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3720 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3711 into keys (for prompts, for example).
3721 into keys (for prompts, for example).
3712
3722
3713 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3723 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3714 prompts in case users want them. This introduces a small behavior
3724 prompts in case users want them. This introduces a small behavior
3715 change: ipython does not automatically add a space to all prompts
3725 change: ipython does not automatically add a space to all prompts
3716 anymore. To get the old prompts with a space, users should add it
3726 anymore. To get the old prompts with a space, users should add it
3717 manually to their ipythonrc file, so for example prompt_in1 should
3727 manually to their ipythonrc file, so for example prompt_in1 should
3718 now read 'In [\#]: ' instead of 'In [\#]:'.
3728 now read 'In [\#]: ' instead of 'In [\#]:'.
3719 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3729 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3720 file) to control left-padding of secondary prompts.
3730 file) to control left-padding of secondary prompts.
3721
3731
3722 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3732 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3723 the profiler can't be imported. Fix for Debian, which removed
3733 the profiler can't be imported. Fix for Debian, which removed
3724 profile.py because of License issues. I applied a slightly
3734 profile.py because of License issues. I applied a slightly
3725 modified version of the original Debian patch at
3735 modified version of the original Debian patch at
3726 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3736 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3727
3737
3728 2005-02-17 Fernando Perez <fperez@colorado.edu>
3738 2005-02-17 Fernando Perez <fperez@colorado.edu>
3729
3739
3730 * IPython/genutils.py (native_line_ends): Fix bug which would
3740 * IPython/genutils.py (native_line_ends): Fix bug which would
3731 cause improper line-ends under win32 b/c I was not opening files
3741 cause improper line-ends under win32 b/c I was not opening files
3732 in binary mode. Bug report and fix thanks to Ville.
3742 in binary mode. Bug report and fix thanks to Ville.
3733
3743
3734 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3744 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3735 trying to catch spurious foo[1] autocalls. My fix actually broke
3745 trying to catch spurious foo[1] autocalls. My fix actually broke
3736 ',/' autoquote/call with explicit escape (bad regexp).
3746 ',/' autoquote/call with explicit escape (bad regexp).
3737
3747
3738 2005-02-15 *** Released version 0.6.11
3748 2005-02-15 *** Released version 0.6.11
3739
3749
3740 2005-02-14 Fernando Perez <fperez@colorado.edu>
3750 2005-02-14 Fernando Perez <fperez@colorado.edu>
3741
3751
3742 * IPython/background_jobs.py: New background job management
3752 * IPython/background_jobs.py: New background job management
3743 subsystem. This is implemented via a new set of classes, and
3753 subsystem. This is implemented via a new set of classes, and
3744 IPython now provides a builtin 'jobs' object for background job
3754 IPython now provides a builtin 'jobs' object for background job
3745 execution. A convenience %bg magic serves as a lightweight
3755 execution. A convenience %bg magic serves as a lightweight
3746 frontend for starting the more common type of calls. This was
3756 frontend for starting the more common type of calls. This was
3747 inspired by discussions with B. Granger and the BackgroundCommand
3757 inspired by discussions with B. Granger and the BackgroundCommand
3748 class described in the book Python Scripting for Computational
3758 class described in the book Python Scripting for Computational
3749 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3759 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3750 (although ultimately no code from this text was used, as IPython's
3760 (although ultimately no code from this text was used, as IPython's
3751 system is a separate implementation).
3761 system is a separate implementation).
3752
3762
3753 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3763 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3754 to control the completion of single/double underscore names
3764 to control the completion of single/double underscore names
3755 separately. As documented in the example ipytonrc file, the
3765 separately. As documented in the example ipytonrc file, the
3756 readline_omit__names variable can now be set to 2, to omit even
3766 readline_omit__names variable can now be set to 2, to omit even
3757 single underscore names. Thanks to a patch by Brian Wong
3767 single underscore names. Thanks to a patch by Brian Wong
3758 <BrianWong-AT-AirgoNetworks.Com>.
3768 <BrianWong-AT-AirgoNetworks.Com>.
3759 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3769 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3760 be autocalled as foo([1]) if foo were callable. A problem for
3770 be autocalled as foo([1]) if foo were callable. A problem for
3761 things which are both callable and implement __getitem__.
3771 things which are both callable and implement __getitem__.
3762 (init_readline): Fix autoindentation for win32. Thanks to a patch
3772 (init_readline): Fix autoindentation for win32. Thanks to a patch
3763 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3773 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3764
3774
3765 2005-02-12 Fernando Perez <fperez@colorado.edu>
3775 2005-02-12 Fernando Perez <fperez@colorado.edu>
3766
3776
3767 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3777 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3768 which I had written long ago to sort out user error messages which
3778 which I had written long ago to sort out user error messages which
3769 may occur during startup. This seemed like a good idea initially,
3779 may occur during startup. This seemed like a good idea initially,
3770 but it has proven a disaster in retrospect. I don't want to
3780 but it has proven a disaster in retrospect. I don't want to
3771 change much code for now, so my fix is to set the internal 'debug'
3781 change much code for now, so my fix is to set the internal 'debug'
3772 flag to true everywhere, whose only job was precisely to control
3782 flag to true everywhere, whose only job was precisely to control
3773 this subsystem. This closes issue 28 (as well as avoiding all
3783 this subsystem. This closes issue 28 (as well as avoiding all
3774 sorts of strange hangups which occur from time to time).
3784 sorts of strange hangups which occur from time to time).
3775
3785
3776 2005-02-07 Fernando Perez <fperez@colorado.edu>
3786 2005-02-07 Fernando Perez <fperez@colorado.edu>
3777
3787
3778 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3788 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3779 previous call produced a syntax error.
3789 previous call produced a syntax error.
3780
3790
3781 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3791 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3782 classes without constructor.
3792 classes without constructor.
3783
3793
3784 2005-02-06 Fernando Perez <fperez@colorado.edu>
3794 2005-02-06 Fernando Perez <fperez@colorado.edu>
3785
3795
3786 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3796 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3787 completions with the results of each matcher, so we return results
3797 completions with the results of each matcher, so we return results
3788 to the user from all namespaces. This breaks with ipython
3798 to the user from all namespaces. This breaks with ipython
3789 tradition, but I think it's a nicer behavior. Now you get all
3799 tradition, but I think it's a nicer behavior. Now you get all
3790 possible completions listed, from all possible namespaces (python,
3800 possible completions listed, from all possible namespaces (python,
3791 filesystem, magics...) After a request by John Hunter
3801 filesystem, magics...) After a request by John Hunter
3792 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3802 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3793
3803
3794 2005-02-05 Fernando Perez <fperez@colorado.edu>
3804 2005-02-05 Fernando Perez <fperez@colorado.edu>
3795
3805
3796 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3806 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3797 the call had quote characters in it (the quotes were stripped).
3807 the call had quote characters in it (the quotes were stripped).
3798
3808
3799 2005-01-31 Fernando Perez <fperez@colorado.edu>
3809 2005-01-31 Fernando Perez <fperez@colorado.edu>
3800
3810
3801 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3811 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3802 Itpl.itpl() to make the code more robust against psyco
3812 Itpl.itpl() to make the code more robust against psyco
3803 optimizations.
3813 optimizations.
3804
3814
3805 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3815 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3806 of causing an exception. Quicker, cleaner.
3816 of causing an exception. Quicker, cleaner.
3807
3817
3808 2005-01-28 Fernando Perez <fperez@colorado.edu>
3818 2005-01-28 Fernando Perez <fperez@colorado.edu>
3809
3819
3810 * scripts/ipython_win_post_install.py (install): hardcode
3820 * scripts/ipython_win_post_install.py (install): hardcode
3811 sys.prefix+'python.exe' as the executable path. It turns out that
3821 sys.prefix+'python.exe' as the executable path. It turns out that
3812 during the post-installation run, sys.executable resolves to the
3822 during the post-installation run, sys.executable resolves to the
3813 name of the binary installer! I should report this as a distutils
3823 name of the binary installer! I should report this as a distutils
3814 bug, I think. I updated the .10 release with this tiny fix, to
3824 bug, I think. I updated the .10 release with this tiny fix, to
3815 avoid annoying the lists further.
3825 avoid annoying the lists further.
3816
3826
3817 2005-01-27 *** Released version 0.6.10
3827 2005-01-27 *** Released version 0.6.10
3818
3828
3819 2005-01-27 Fernando Perez <fperez@colorado.edu>
3829 2005-01-27 Fernando Perez <fperez@colorado.edu>
3820
3830
3821 * IPython/numutils.py (norm): Added 'inf' as optional name for
3831 * IPython/numutils.py (norm): Added 'inf' as optional name for
3822 L-infinity norm, included references to mathworld.com for vector
3832 L-infinity norm, included references to mathworld.com for vector
3823 norm definitions.
3833 norm definitions.
3824 (amin/amax): added amin/amax for array min/max. Similar to what
3834 (amin/amax): added amin/amax for array min/max. Similar to what
3825 pylab ships with after the recent reorganization of names.
3835 pylab ships with after the recent reorganization of names.
3826 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3836 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3827
3837
3828 * ipython.el: committed Alex's recent fixes and improvements.
3838 * ipython.el: committed Alex's recent fixes and improvements.
3829 Tested with python-mode from CVS, and it looks excellent. Since
3839 Tested with python-mode from CVS, and it looks excellent. Since
3830 python-mode hasn't released anything in a while, I'm temporarily
3840 python-mode hasn't released anything in a while, I'm temporarily
3831 putting a copy of today's CVS (v 4.70) of python-mode in:
3841 putting a copy of today's CVS (v 4.70) of python-mode in:
3832 http://ipython.scipy.org/tmp/python-mode.el
3842 http://ipython.scipy.org/tmp/python-mode.el
3833
3843
3834 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3844 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3835 sys.executable for the executable name, instead of assuming it's
3845 sys.executable for the executable name, instead of assuming it's
3836 called 'python.exe' (the post-installer would have produced broken
3846 called 'python.exe' (the post-installer would have produced broken
3837 setups on systems with a differently named python binary).
3847 setups on systems with a differently named python binary).
3838
3848
3839 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3849 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3840 references to os.linesep, to make the code more
3850 references to os.linesep, to make the code more
3841 platform-independent. This is also part of the win32 coloring
3851 platform-independent. This is also part of the win32 coloring
3842 fixes.
3852 fixes.
3843
3853
3844 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3854 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3845 lines, which actually cause coloring bugs because the length of
3855 lines, which actually cause coloring bugs because the length of
3846 the line is very difficult to correctly compute with embedded
3856 the line is very difficult to correctly compute with embedded
3847 escapes. This was the source of all the coloring problems under
3857 escapes. This was the source of all the coloring problems under
3848 Win32. I think that _finally_, Win32 users have a properly
3858 Win32. I think that _finally_, Win32 users have a properly
3849 working ipython in all respects. This would never have happened
3859 working ipython in all respects. This would never have happened
3850 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3860 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3851
3861
3852 2005-01-26 *** Released version 0.6.9
3862 2005-01-26 *** Released version 0.6.9
3853
3863
3854 2005-01-25 Fernando Perez <fperez@colorado.edu>
3864 2005-01-25 Fernando Perez <fperez@colorado.edu>
3855
3865
3856 * setup.py: finally, we have a true Windows installer, thanks to
3866 * setup.py: finally, we have a true Windows installer, thanks to
3857 the excellent work of Viktor Ransmayr
3867 the excellent work of Viktor Ransmayr
3858 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3868 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3859 Windows users. The setup routine is quite a bit cleaner thanks to
3869 Windows users. The setup routine is quite a bit cleaner thanks to
3860 this, and the post-install script uses the proper functions to
3870 this, and the post-install script uses the proper functions to
3861 allow a clean de-installation using the standard Windows Control
3871 allow a clean de-installation using the standard Windows Control
3862 Panel.
3872 Panel.
3863
3873
3864 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3874 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3865 environment variable under all OSes (including win32) if
3875 environment variable under all OSes (including win32) if
3866 available. This will give consistency to win32 users who have set
3876 available. This will give consistency to win32 users who have set
3867 this variable for any reason. If os.environ['HOME'] fails, the
3877 this variable for any reason. If os.environ['HOME'] fails, the
3868 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3878 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3869
3879
3870 2005-01-24 Fernando Perez <fperez@colorado.edu>
3880 2005-01-24 Fernando Perez <fperez@colorado.edu>
3871
3881
3872 * IPython/numutils.py (empty_like): add empty_like(), similar to
3882 * IPython/numutils.py (empty_like): add empty_like(), similar to
3873 zeros_like() but taking advantage of the new empty() Numeric routine.
3883 zeros_like() but taking advantage of the new empty() Numeric routine.
3874
3884
3875 2005-01-23 *** Released version 0.6.8
3885 2005-01-23 *** Released version 0.6.8
3876
3886
3877 2005-01-22 Fernando Perez <fperez@colorado.edu>
3887 2005-01-22 Fernando Perez <fperez@colorado.edu>
3878
3888
3879 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3889 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3880 automatic show() calls. After discussing things with JDH, it
3890 automatic show() calls. After discussing things with JDH, it
3881 turns out there are too many corner cases where this can go wrong.
3891 turns out there are too many corner cases where this can go wrong.
3882 It's best not to try to be 'too smart', and simply have ipython
3892 It's best not to try to be 'too smart', and simply have ipython
3883 reproduce as much as possible the default behavior of a normal
3893 reproduce as much as possible the default behavior of a normal
3884 python shell.
3894 python shell.
3885
3895
3886 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3896 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3887 line-splitting regexp and _prefilter() to avoid calling getattr()
3897 line-splitting regexp and _prefilter() to avoid calling getattr()
3888 on assignments. This closes
3898 on assignments. This closes
3889 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3899 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3890 readline uses getattr(), so a simple <TAB> keypress is still
3900 readline uses getattr(), so a simple <TAB> keypress is still
3891 enough to trigger getattr() calls on an object.
3901 enough to trigger getattr() calls on an object.
3892
3902
3893 2005-01-21 Fernando Perez <fperez@colorado.edu>
3903 2005-01-21 Fernando Perez <fperez@colorado.edu>
3894
3904
3895 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3905 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3896 docstring under pylab so it doesn't mask the original.
3906 docstring under pylab so it doesn't mask the original.
3897
3907
3898 2005-01-21 *** Released version 0.6.7
3908 2005-01-21 *** Released version 0.6.7
3899
3909
3900 2005-01-21 Fernando Perez <fperez@colorado.edu>
3910 2005-01-21 Fernando Perez <fperez@colorado.edu>
3901
3911
3902 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3912 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3903 signal handling for win32 users in multithreaded mode.
3913 signal handling for win32 users in multithreaded mode.
3904
3914
3905 2005-01-17 Fernando Perez <fperez@colorado.edu>
3915 2005-01-17 Fernando Perez <fperez@colorado.edu>
3906
3916
3907 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3917 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3908 instances with no __init__. After a crash report by Norbert Nemec
3918 instances with no __init__. After a crash report by Norbert Nemec
3909 <Norbert-AT-nemec-online.de>.
3919 <Norbert-AT-nemec-online.de>.
3910
3920
3911 2005-01-14 Fernando Perez <fperez@colorado.edu>
3921 2005-01-14 Fernando Perez <fperez@colorado.edu>
3912
3922
3913 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3923 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3914 names for verbose exceptions, when multiple dotted names and the
3924 names for verbose exceptions, when multiple dotted names and the
3915 'parent' object were present on the same line.
3925 'parent' object were present on the same line.
3916
3926
3917 2005-01-11 Fernando Perez <fperez@colorado.edu>
3927 2005-01-11 Fernando Perez <fperez@colorado.edu>
3918
3928
3919 * IPython/genutils.py (flag_calls): new utility to trap and flag
3929 * IPython/genutils.py (flag_calls): new utility to trap and flag
3920 calls in functions. I need it to clean up matplotlib support.
3930 calls in functions. I need it to clean up matplotlib support.
3921 Also removed some deprecated code in genutils.
3931 Also removed some deprecated code in genutils.
3922
3932
3923 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3933 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3924 that matplotlib scripts called with %run, which don't call show()
3934 that matplotlib scripts called with %run, which don't call show()
3925 themselves, still have their plotting windows open.
3935 themselves, still have their plotting windows open.
3926
3936
3927 2005-01-05 Fernando Perez <fperez@colorado.edu>
3937 2005-01-05 Fernando Perez <fperez@colorado.edu>
3928
3938
3929 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3939 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3930 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3940 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3931
3941
3932 2004-12-19 Fernando Perez <fperez@colorado.edu>
3942 2004-12-19 Fernando Perez <fperez@colorado.edu>
3933
3943
3934 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3944 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3935 parent_runcode, which was an eyesore. The same result can be
3945 parent_runcode, which was an eyesore. The same result can be
3936 obtained with Python's regular superclass mechanisms.
3946 obtained with Python's regular superclass mechanisms.
3937
3947
3938 2004-12-17 Fernando Perez <fperez@colorado.edu>
3948 2004-12-17 Fernando Perez <fperez@colorado.edu>
3939
3949
3940 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3950 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3941 reported by Prabhu.
3951 reported by Prabhu.
3942 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3952 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3943 sys.stderr) instead of explicitly calling sys.stderr. This helps
3953 sys.stderr) instead of explicitly calling sys.stderr. This helps
3944 maintain our I/O abstractions clean, for future GUI embeddings.
3954 maintain our I/O abstractions clean, for future GUI embeddings.
3945
3955
3946 * IPython/genutils.py (info): added new utility for sys.stderr
3956 * IPython/genutils.py (info): added new utility for sys.stderr
3947 unified info message handling (thin wrapper around warn()).
3957 unified info message handling (thin wrapper around warn()).
3948
3958
3949 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3959 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3950 composite (dotted) names on verbose exceptions.
3960 composite (dotted) names on verbose exceptions.
3951 (VerboseTB.nullrepr): harden against another kind of errors which
3961 (VerboseTB.nullrepr): harden against another kind of errors which
3952 Python's inspect module can trigger, and which were crashing
3962 Python's inspect module can trigger, and which were crashing
3953 IPython. Thanks to a report by Marco Lombardi
3963 IPython. Thanks to a report by Marco Lombardi
3954 <mlombard-AT-ma010192.hq.eso.org>.
3964 <mlombard-AT-ma010192.hq.eso.org>.
3955
3965
3956 2004-12-13 *** Released version 0.6.6
3966 2004-12-13 *** Released version 0.6.6
3957
3967
3958 2004-12-12 Fernando Perez <fperez@colorado.edu>
3968 2004-12-12 Fernando Perez <fperez@colorado.edu>
3959
3969
3960 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3970 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3961 generated by pygtk upon initialization if it was built without
3971 generated by pygtk upon initialization if it was built without
3962 threads (for matplotlib users). After a crash reported by
3972 threads (for matplotlib users). After a crash reported by
3963 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3973 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3964
3974
3965 * IPython/ipmaker.py (make_IPython): fix small bug in the
3975 * IPython/ipmaker.py (make_IPython): fix small bug in the
3966 import_some parameter for multiple imports.
3976 import_some parameter for multiple imports.
3967
3977
3968 * IPython/iplib.py (ipmagic): simplified the interface of
3978 * IPython/iplib.py (ipmagic): simplified the interface of
3969 ipmagic() to take a single string argument, just as it would be
3979 ipmagic() to take a single string argument, just as it would be
3970 typed at the IPython cmd line.
3980 typed at the IPython cmd line.
3971 (ipalias): Added new ipalias() with an interface identical to
3981 (ipalias): Added new ipalias() with an interface identical to
3972 ipmagic(). This completes exposing a pure python interface to the
3982 ipmagic(). This completes exposing a pure python interface to the
3973 alias and magic system, which can be used in loops or more complex
3983 alias and magic system, which can be used in loops or more complex
3974 code where IPython's automatic line mangling is not active.
3984 code where IPython's automatic line mangling is not active.
3975
3985
3976 * IPython/genutils.py (timing): changed interface of timing to
3986 * IPython/genutils.py (timing): changed interface of timing to
3977 simply run code once, which is the most common case. timings()
3987 simply run code once, which is the most common case. timings()
3978 remains unchanged, for the cases where you want multiple runs.
3988 remains unchanged, for the cases where you want multiple runs.
3979
3989
3980 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3990 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3981 bug where Python2.2 crashes with exec'ing code which does not end
3991 bug where Python2.2 crashes with exec'ing code which does not end
3982 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3992 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3983 before.
3993 before.
3984
3994
3985 2004-12-10 Fernando Perez <fperez@colorado.edu>
3995 2004-12-10 Fernando Perez <fperez@colorado.edu>
3986
3996
3987 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3997 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3988 -t to -T, to accomodate the new -t flag in %run (the %run and
3998 -t to -T, to accomodate the new -t flag in %run (the %run and
3989 %prun options are kind of intermixed, and it's not easy to change
3999 %prun options are kind of intermixed, and it's not easy to change
3990 this with the limitations of python's getopt).
4000 this with the limitations of python's getopt).
3991
4001
3992 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
4002 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3993 the execution of scripts. It's not as fine-tuned as timeit.py,
4003 the execution of scripts. It's not as fine-tuned as timeit.py,
3994 but it works from inside ipython (and under 2.2, which lacks
4004 but it works from inside ipython (and under 2.2, which lacks
3995 timeit.py). Optionally a number of runs > 1 can be given for
4005 timeit.py). Optionally a number of runs > 1 can be given for
3996 timing very short-running code.
4006 timing very short-running code.
3997
4007
3998 * IPython/genutils.py (uniq_stable): new routine which returns a
4008 * IPython/genutils.py (uniq_stable): new routine which returns a
3999 list of unique elements in any iterable, but in stable order of
4009 list of unique elements in any iterable, but in stable order of
4000 appearance. I needed this for the ultraTB fixes, and it's a handy
4010 appearance. I needed this for the ultraTB fixes, and it's a handy
4001 utility.
4011 utility.
4002
4012
4003 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
4013 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
4004 dotted names in Verbose exceptions. This had been broken since
4014 dotted names in Verbose exceptions. This had been broken since
4005 the very start, now x.y will properly be printed in a Verbose
4015 the very start, now x.y will properly be printed in a Verbose
4006 traceback, instead of x being shown and y appearing always as an
4016 traceback, instead of x being shown and y appearing always as an
4007 'undefined global'. Getting this to work was a bit tricky,
4017 'undefined global'. Getting this to work was a bit tricky,
4008 because by default python tokenizers are stateless. Saved by
4018 because by default python tokenizers are stateless. Saved by
4009 python's ability to easily add a bit of state to an arbitrary
4019 python's ability to easily add a bit of state to an arbitrary
4010 function (without needing to build a full-blown callable object).
4020 function (without needing to build a full-blown callable object).
4011
4021
4012 Also big cleanup of this code, which had horrendous runtime
4022 Also big cleanup of this code, which had horrendous runtime
4013 lookups of zillions of attributes for colorization. Moved all
4023 lookups of zillions of attributes for colorization. Moved all
4014 this code into a few templates, which make it cleaner and quicker.
4024 this code into a few templates, which make it cleaner and quicker.
4015
4025
4016 Printout quality was also improved for Verbose exceptions: one
4026 Printout quality was also improved for Verbose exceptions: one
4017 variable per line, and memory addresses are printed (this can be
4027 variable per line, and memory addresses are printed (this can be
4018 quite handy in nasty debugging situations, which is what Verbose
4028 quite handy in nasty debugging situations, which is what Verbose
4019 is for).
4029 is for).
4020
4030
4021 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4031 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4022 the command line as scripts to be loaded by embedded instances.
4032 the command line as scripts to be loaded by embedded instances.
4023 Doing so has the potential for an infinite recursion if there are
4033 Doing so has the potential for an infinite recursion if there are
4024 exceptions thrown in the process. This fixes a strange crash
4034 exceptions thrown in the process. This fixes a strange crash
4025 reported by Philippe MULLER <muller-AT-irit.fr>.
4035 reported by Philippe MULLER <muller-AT-irit.fr>.
4026
4036
4027 2004-12-09 Fernando Perez <fperez@colorado.edu>
4037 2004-12-09 Fernando Perez <fperez@colorado.edu>
4028
4038
4029 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4039 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4030 to reflect new names in matplotlib, which now expose the
4040 to reflect new names in matplotlib, which now expose the
4031 matlab-compatible interface via a pylab module instead of the
4041 matlab-compatible interface via a pylab module instead of the
4032 'matlab' name. The new code is backwards compatible, so users of
4042 'matlab' name. The new code is backwards compatible, so users of
4033 all matplotlib versions are OK. Patch by J. Hunter.
4043 all matplotlib versions are OK. Patch by J. Hunter.
4034
4044
4035 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4045 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4036 of __init__ docstrings for instances (class docstrings are already
4046 of __init__ docstrings for instances (class docstrings are already
4037 automatically printed). Instances with customized docstrings
4047 automatically printed). Instances with customized docstrings
4038 (indep. of the class) are also recognized and all 3 separate
4048 (indep. of the class) are also recognized and all 3 separate
4039 docstrings are printed (instance, class, constructor). After some
4049 docstrings are printed (instance, class, constructor). After some
4040 comments/suggestions by J. Hunter.
4050 comments/suggestions by J. Hunter.
4041
4051
4042 2004-12-05 Fernando Perez <fperez@colorado.edu>
4052 2004-12-05 Fernando Perez <fperez@colorado.edu>
4043
4053
4044 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4054 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4045 warnings when tab-completion fails and triggers an exception.
4055 warnings when tab-completion fails and triggers an exception.
4046
4056
4047 2004-12-03 Fernando Perez <fperez@colorado.edu>
4057 2004-12-03 Fernando Perez <fperez@colorado.edu>
4048
4058
4049 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4059 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4050 be triggered when using 'run -p'. An incorrect option flag was
4060 be triggered when using 'run -p'. An incorrect option flag was
4051 being set ('d' instead of 'D').
4061 being set ('d' instead of 'D').
4052 (manpage): fix missing escaped \- sign.
4062 (manpage): fix missing escaped \- sign.
4053
4063
4054 2004-11-30 *** Released version 0.6.5
4064 2004-11-30 *** Released version 0.6.5
4055
4065
4056 2004-11-30 Fernando Perez <fperez@colorado.edu>
4066 2004-11-30 Fernando Perez <fperez@colorado.edu>
4057
4067
4058 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4068 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4059 setting with -d option.
4069 setting with -d option.
4060
4070
4061 * setup.py (docfiles): Fix problem where the doc glob I was using
4071 * setup.py (docfiles): Fix problem where the doc glob I was using
4062 was COMPLETELY BROKEN. It was giving the right files by pure
4072 was COMPLETELY BROKEN. It was giving the right files by pure
4063 accident, but failed once I tried to include ipython.el. Note:
4073 accident, but failed once I tried to include ipython.el. Note:
4064 glob() does NOT allow you to do exclusion on multiple endings!
4074 glob() does NOT allow you to do exclusion on multiple endings!
4065
4075
4066 2004-11-29 Fernando Perez <fperez@colorado.edu>
4076 2004-11-29 Fernando Perez <fperez@colorado.edu>
4067
4077
4068 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4078 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4069 the manpage as the source. Better formatting & consistency.
4079 the manpage as the source. Better formatting & consistency.
4070
4080
4071 * IPython/Magic.py (magic_run): Added new -d option, to run
4081 * IPython/Magic.py (magic_run): Added new -d option, to run
4072 scripts under the control of the python pdb debugger. Note that
4082 scripts under the control of the python pdb debugger. Note that
4073 this required changing the %prun option -d to -D, to avoid a clash
4083 this required changing the %prun option -d to -D, to avoid a clash
4074 (since %run must pass options to %prun, and getopt is too dumb to
4084 (since %run must pass options to %prun, and getopt is too dumb to
4075 handle options with string values with embedded spaces). Thanks
4085 handle options with string values with embedded spaces). Thanks
4076 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4086 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4077 (magic_who_ls): added type matching to %who and %whos, so that one
4087 (magic_who_ls): added type matching to %who and %whos, so that one
4078 can filter their output to only include variables of certain
4088 can filter their output to only include variables of certain
4079 types. Another suggestion by Matthew.
4089 types. Another suggestion by Matthew.
4080 (magic_whos): Added memory summaries in kb and Mb for arrays.
4090 (magic_whos): Added memory summaries in kb and Mb for arrays.
4081 (magic_who): Improve formatting (break lines every 9 vars).
4091 (magic_who): Improve formatting (break lines every 9 vars).
4082
4092
4083 2004-11-28 Fernando Perez <fperez@colorado.edu>
4093 2004-11-28 Fernando Perez <fperez@colorado.edu>
4084
4094
4085 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4095 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4086 cache when empty lines were present.
4096 cache when empty lines were present.
4087
4097
4088 2004-11-24 Fernando Perez <fperez@colorado.edu>
4098 2004-11-24 Fernando Perez <fperez@colorado.edu>
4089
4099
4090 * IPython/usage.py (__doc__): document the re-activated threading
4100 * IPython/usage.py (__doc__): document the re-activated threading
4091 options for WX and GTK.
4101 options for WX and GTK.
4092
4102
4093 2004-11-23 Fernando Perez <fperez@colorado.edu>
4103 2004-11-23 Fernando Perez <fperez@colorado.edu>
4094
4104
4095 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4105 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4096 the -wthread and -gthread options, along with a new -tk one to try
4106 the -wthread and -gthread options, along with a new -tk one to try
4097 and coordinate Tk threading with wx/gtk. The tk support is very
4107 and coordinate Tk threading with wx/gtk. The tk support is very
4098 platform dependent, since it seems to require Tcl and Tk to be
4108 platform dependent, since it seems to require Tcl and Tk to be
4099 built with threads (Fedora1/2 appears NOT to have it, but in
4109 built with threads (Fedora1/2 appears NOT to have it, but in
4100 Prabhu's Debian boxes it works OK). But even with some Tk
4110 Prabhu's Debian boxes it works OK). But even with some Tk
4101 limitations, this is a great improvement.
4111 limitations, this is a great improvement.
4102
4112
4103 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4113 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4104 info in user prompts. Patch by Prabhu.
4114 info in user prompts. Patch by Prabhu.
4105
4115
4106 2004-11-18 Fernando Perez <fperez@colorado.edu>
4116 2004-11-18 Fernando Perez <fperez@colorado.edu>
4107
4117
4108 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4118 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4109 EOFErrors and bail, to avoid infinite loops if a non-terminating
4119 EOFErrors and bail, to avoid infinite loops if a non-terminating
4110 file is fed into ipython. Patch submitted in issue 19 by user,
4120 file is fed into ipython. Patch submitted in issue 19 by user,
4111 many thanks.
4121 many thanks.
4112
4122
4113 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4123 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4114 autoquote/parens in continuation prompts, which can cause lots of
4124 autoquote/parens in continuation prompts, which can cause lots of
4115 problems. Closes roundup issue 20.
4125 problems. Closes roundup issue 20.
4116
4126
4117 2004-11-17 Fernando Perez <fperez@colorado.edu>
4127 2004-11-17 Fernando Perez <fperez@colorado.edu>
4118
4128
4119 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4129 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4120 reported as debian bug #280505. I'm not sure my local changelog
4130 reported as debian bug #280505. I'm not sure my local changelog
4121 entry has the proper debian format (Jack?).
4131 entry has the proper debian format (Jack?).
4122
4132
4123 2004-11-08 *** Released version 0.6.4
4133 2004-11-08 *** Released version 0.6.4
4124
4134
4125 2004-11-08 Fernando Perez <fperez@colorado.edu>
4135 2004-11-08 Fernando Perez <fperez@colorado.edu>
4126
4136
4127 * IPython/iplib.py (init_readline): Fix exit message for Windows
4137 * IPython/iplib.py (init_readline): Fix exit message for Windows
4128 when readline is active. Thanks to a report by Eric Jones
4138 when readline is active. Thanks to a report by Eric Jones
4129 <eric-AT-enthought.com>.
4139 <eric-AT-enthought.com>.
4130
4140
4131 2004-11-07 Fernando Perez <fperez@colorado.edu>
4141 2004-11-07 Fernando Perez <fperez@colorado.edu>
4132
4142
4133 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4143 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4134 sometimes seen by win2k/cygwin users.
4144 sometimes seen by win2k/cygwin users.
4135
4145
4136 2004-11-06 Fernando Perez <fperez@colorado.edu>
4146 2004-11-06 Fernando Perez <fperez@colorado.edu>
4137
4147
4138 * IPython/iplib.py (interact): Change the handling of %Exit from
4148 * IPython/iplib.py (interact): Change the handling of %Exit from
4139 trying to propagate a SystemExit to an internal ipython flag.
4149 trying to propagate a SystemExit to an internal ipython flag.
4140 This is less elegant than using Python's exception mechanism, but
4150 This is less elegant than using Python's exception mechanism, but
4141 I can't get that to work reliably with threads, so under -pylab
4151 I can't get that to work reliably with threads, so under -pylab
4142 %Exit was hanging IPython. Cross-thread exception handling is
4152 %Exit was hanging IPython. Cross-thread exception handling is
4143 really a bitch. Thaks to a bug report by Stephen Walton
4153 really a bitch. Thaks to a bug report by Stephen Walton
4144 <stephen.walton-AT-csun.edu>.
4154 <stephen.walton-AT-csun.edu>.
4145
4155
4146 2004-11-04 Fernando Perez <fperez@colorado.edu>
4156 2004-11-04 Fernando Perez <fperez@colorado.edu>
4147
4157
4148 * IPython/iplib.py (raw_input_original): store a pointer to the
4158 * IPython/iplib.py (raw_input_original): store a pointer to the
4149 true raw_input to harden against code which can modify it
4159 true raw_input to harden against code which can modify it
4150 (wx.py.PyShell does this and would otherwise crash ipython).
4160 (wx.py.PyShell does this and would otherwise crash ipython).
4151 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4161 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4152
4162
4153 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4163 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4154 Ctrl-C problem, which does not mess up the input line.
4164 Ctrl-C problem, which does not mess up the input line.
4155
4165
4156 2004-11-03 Fernando Perez <fperez@colorado.edu>
4166 2004-11-03 Fernando Perez <fperez@colorado.edu>
4157
4167
4158 * IPython/Release.py: Changed licensing to BSD, in all files.
4168 * IPython/Release.py: Changed licensing to BSD, in all files.
4159 (name): lowercase name for tarball/RPM release.
4169 (name): lowercase name for tarball/RPM release.
4160
4170
4161 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4171 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4162 use throughout ipython.
4172 use throughout ipython.
4163
4173
4164 * IPython/Magic.py (Magic._ofind): Switch to using the new
4174 * IPython/Magic.py (Magic._ofind): Switch to using the new
4165 OInspect.getdoc() function.
4175 OInspect.getdoc() function.
4166
4176
4167 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4177 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4168 of the line currently being canceled via Ctrl-C. It's extremely
4178 of the line currently being canceled via Ctrl-C. It's extremely
4169 ugly, but I don't know how to do it better (the problem is one of
4179 ugly, but I don't know how to do it better (the problem is one of
4170 handling cross-thread exceptions).
4180 handling cross-thread exceptions).
4171
4181
4172 2004-10-28 Fernando Perez <fperez@colorado.edu>
4182 2004-10-28 Fernando Perez <fperez@colorado.edu>
4173
4183
4174 * IPython/Shell.py (signal_handler): add signal handlers to trap
4184 * IPython/Shell.py (signal_handler): add signal handlers to trap
4175 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4185 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4176 report by Francesc Alted.
4186 report by Francesc Alted.
4177
4187
4178 2004-10-21 Fernando Perez <fperez@colorado.edu>
4188 2004-10-21 Fernando Perez <fperez@colorado.edu>
4179
4189
4180 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4190 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4181 to % for pysh syntax extensions.
4191 to % for pysh syntax extensions.
4182
4192
4183 2004-10-09 Fernando Perez <fperez@colorado.edu>
4193 2004-10-09 Fernando Perez <fperez@colorado.edu>
4184
4194
4185 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4195 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4186 arrays to print a more useful summary, without calling str(arr).
4196 arrays to print a more useful summary, without calling str(arr).
4187 This avoids the problem of extremely lengthy computations which
4197 This avoids the problem of extremely lengthy computations which
4188 occur if arr is large, and appear to the user as a system lockup
4198 occur if arr is large, and appear to the user as a system lockup
4189 with 100% cpu activity. After a suggestion by Kristian Sandberg
4199 with 100% cpu activity. After a suggestion by Kristian Sandberg
4190 <Kristian.Sandberg@colorado.edu>.
4200 <Kristian.Sandberg@colorado.edu>.
4191 (Magic.__init__): fix bug in global magic escapes not being
4201 (Magic.__init__): fix bug in global magic escapes not being
4192 correctly set.
4202 correctly set.
4193
4203
4194 2004-10-08 Fernando Perez <fperez@colorado.edu>
4204 2004-10-08 Fernando Perez <fperez@colorado.edu>
4195
4205
4196 * IPython/Magic.py (__license__): change to absolute imports of
4206 * IPython/Magic.py (__license__): change to absolute imports of
4197 ipython's own internal packages, to start adapting to the absolute
4207 ipython's own internal packages, to start adapting to the absolute
4198 import requirement of PEP-328.
4208 import requirement of PEP-328.
4199
4209
4200 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4210 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4201 files, and standardize author/license marks through the Release
4211 files, and standardize author/license marks through the Release
4202 module instead of having per/file stuff (except for files with
4212 module instead of having per/file stuff (except for files with
4203 particular licenses, like the MIT/PSF-licensed codes).
4213 particular licenses, like the MIT/PSF-licensed codes).
4204
4214
4205 * IPython/Debugger.py: remove dead code for python 2.1
4215 * IPython/Debugger.py: remove dead code for python 2.1
4206
4216
4207 2004-10-04 Fernando Perez <fperez@colorado.edu>
4217 2004-10-04 Fernando Perez <fperez@colorado.edu>
4208
4218
4209 * IPython/iplib.py (ipmagic): New function for accessing magics
4219 * IPython/iplib.py (ipmagic): New function for accessing magics
4210 via a normal python function call.
4220 via a normal python function call.
4211
4221
4212 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4222 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4213 from '@' to '%', to accomodate the new @decorator syntax of python
4223 from '@' to '%', to accomodate the new @decorator syntax of python
4214 2.4.
4224 2.4.
4215
4225
4216 2004-09-29 Fernando Perez <fperez@colorado.edu>
4226 2004-09-29 Fernando Perez <fperez@colorado.edu>
4217
4227
4218 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4228 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4219 matplotlib.use to prevent running scripts which try to switch
4229 matplotlib.use to prevent running scripts which try to switch
4220 interactive backends from within ipython. This will just crash
4230 interactive backends from within ipython. This will just crash
4221 the python interpreter, so we can't allow it (but a detailed error
4231 the python interpreter, so we can't allow it (but a detailed error
4222 is given to the user).
4232 is given to the user).
4223
4233
4224 2004-09-28 Fernando Perez <fperez@colorado.edu>
4234 2004-09-28 Fernando Perez <fperez@colorado.edu>
4225
4235
4226 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4236 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4227 matplotlib-related fixes so that using @run with non-matplotlib
4237 matplotlib-related fixes so that using @run with non-matplotlib
4228 scripts doesn't pop up spurious plot windows. This requires
4238 scripts doesn't pop up spurious plot windows. This requires
4229 matplotlib >= 0.63, where I had to make some changes as well.
4239 matplotlib >= 0.63, where I had to make some changes as well.
4230
4240
4231 * IPython/ipmaker.py (make_IPython): update version requirement to
4241 * IPython/ipmaker.py (make_IPython): update version requirement to
4232 python 2.2.
4242 python 2.2.
4233
4243
4234 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4244 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4235 banner arg for embedded customization.
4245 banner arg for embedded customization.
4236
4246
4237 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4247 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4238 explicit uses of __IP as the IPython's instance name. Now things
4248 explicit uses of __IP as the IPython's instance name. Now things
4239 are properly handled via the shell.name value. The actual code
4249 are properly handled via the shell.name value. The actual code
4240 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4250 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4241 is much better than before. I'll clean things completely when the
4251 is much better than before. I'll clean things completely when the
4242 magic stuff gets a real overhaul.
4252 magic stuff gets a real overhaul.
4243
4253
4244 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4254 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4245 minor changes to debian dir.
4255 minor changes to debian dir.
4246
4256
4247 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4257 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4248 pointer to the shell itself in the interactive namespace even when
4258 pointer to the shell itself in the interactive namespace even when
4249 a user-supplied dict is provided. This is needed for embedding
4259 a user-supplied dict is provided. This is needed for embedding
4250 purposes (found by tests with Michel Sanner).
4260 purposes (found by tests with Michel Sanner).
4251
4261
4252 2004-09-27 Fernando Perez <fperez@colorado.edu>
4262 2004-09-27 Fernando Perez <fperez@colorado.edu>
4253
4263
4254 * IPython/UserConfig/ipythonrc: remove []{} from
4264 * IPython/UserConfig/ipythonrc: remove []{} from
4255 readline_remove_delims, so that things like [modname.<TAB> do
4265 readline_remove_delims, so that things like [modname.<TAB> do
4256 proper completion. This disables [].TAB, but that's a less common
4266 proper completion. This disables [].TAB, but that's a less common
4257 case than module names in list comprehensions, for example.
4267 case than module names in list comprehensions, for example.
4258 Thanks to a report by Andrea Riciputi.
4268 Thanks to a report by Andrea Riciputi.
4259
4269
4260 2004-09-09 Fernando Perez <fperez@colorado.edu>
4270 2004-09-09 Fernando Perez <fperez@colorado.edu>
4261
4271
4262 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4272 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4263 blocking problems in win32 and osx. Fix by John.
4273 blocking problems in win32 and osx. Fix by John.
4264
4274
4265 2004-09-08 Fernando Perez <fperez@colorado.edu>
4275 2004-09-08 Fernando Perez <fperez@colorado.edu>
4266
4276
4267 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4277 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4268 for Win32 and OSX. Fix by John Hunter.
4278 for Win32 and OSX. Fix by John Hunter.
4269
4279
4270 2004-08-30 *** Released version 0.6.3
4280 2004-08-30 *** Released version 0.6.3
4271
4281
4272 2004-08-30 Fernando Perez <fperez@colorado.edu>
4282 2004-08-30 Fernando Perez <fperez@colorado.edu>
4273
4283
4274 * setup.py (isfile): Add manpages to list of dependent files to be
4284 * setup.py (isfile): Add manpages to list of dependent files to be
4275 updated.
4285 updated.
4276
4286
4277 2004-08-27 Fernando Perez <fperez@colorado.edu>
4287 2004-08-27 Fernando Perez <fperez@colorado.edu>
4278
4288
4279 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4289 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4280 for now. They don't really work with standalone WX/GTK code
4290 for now. They don't really work with standalone WX/GTK code
4281 (though matplotlib IS working fine with both of those backends).
4291 (though matplotlib IS working fine with both of those backends).
4282 This will neeed much more testing. I disabled most things with
4292 This will neeed much more testing. I disabled most things with
4283 comments, so turning it back on later should be pretty easy.
4293 comments, so turning it back on later should be pretty easy.
4284
4294
4285 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4295 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4286 autocalling of expressions like r'foo', by modifying the line
4296 autocalling of expressions like r'foo', by modifying the line
4287 split regexp. Closes
4297 split regexp. Closes
4288 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4298 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4289 Riley <ipythonbugs-AT-sabi.net>.
4299 Riley <ipythonbugs-AT-sabi.net>.
4290 (InteractiveShell.mainloop): honor --nobanner with banner
4300 (InteractiveShell.mainloop): honor --nobanner with banner
4291 extensions.
4301 extensions.
4292
4302
4293 * IPython/Shell.py: Significant refactoring of all classes, so
4303 * IPython/Shell.py: Significant refactoring of all classes, so
4294 that we can really support ALL matplotlib backends and threading
4304 that we can really support ALL matplotlib backends and threading
4295 models (John spotted a bug with Tk which required this). Now we
4305 models (John spotted a bug with Tk which required this). Now we
4296 should support single-threaded, WX-threads and GTK-threads, both
4306 should support single-threaded, WX-threads and GTK-threads, both
4297 for generic code and for matplotlib.
4307 for generic code and for matplotlib.
4298
4308
4299 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4309 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4300 -pylab, to simplify things for users. Will also remove the pylab
4310 -pylab, to simplify things for users. Will also remove the pylab
4301 profile, since now all of matplotlib configuration is directly
4311 profile, since now all of matplotlib configuration is directly
4302 handled here. This also reduces startup time.
4312 handled here. This also reduces startup time.
4303
4313
4304 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4314 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4305 shell wasn't being correctly called. Also in IPShellWX.
4315 shell wasn't being correctly called. Also in IPShellWX.
4306
4316
4307 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4317 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4308 fine-tune banner.
4318 fine-tune banner.
4309
4319
4310 * IPython/numutils.py (spike): Deprecate these spike functions,
4320 * IPython/numutils.py (spike): Deprecate these spike functions,
4311 delete (long deprecated) gnuplot_exec handler.
4321 delete (long deprecated) gnuplot_exec handler.
4312
4322
4313 2004-08-26 Fernando Perez <fperez@colorado.edu>
4323 2004-08-26 Fernando Perez <fperez@colorado.edu>
4314
4324
4315 * ipython.1: Update for threading options, plus some others which
4325 * ipython.1: Update for threading options, plus some others which
4316 were missing.
4326 were missing.
4317
4327
4318 * IPython/ipmaker.py (__call__): Added -wthread option for
4328 * IPython/ipmaker.py (__call__): Added -wthread option for
4319 wxpython thread handling. Make sure threading options are only
4329 wxpython thread handling. Make sure threading options are only
4320 valid at the command line.
4330 valid at the command line.
4321
4331
4322 * scripts/ipython: moved shell selection into a factory function
4332 * scripts/ipython: moved shell selection into a factory function
4323 in Shell.py, to keep the starter script to a minimum.
4333 in Shell.py, to keep the starter script to a minimum.
4324
4334
4325 2004-08-25 Fernando Perez <fperez@colorado.edu>
4335 2004-08-25 Fernando Perez <fperez@colorado.edu>
4326
4336
4327 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4337 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4328 John. Along with some recent changes he made to matplotlib, the
4338 John. Along with some recent changes he made to matplotlib, the
4329 next versions of both systems should work very well together.
4339 next versions of both systems should work very well together.
4330
4340
4331 2004-08-24 Fernando Perez <fperez@colorado.edu>
4341 2004-08-24 Fernando Perez <fperez@colorado.edu>
4332
4342
4333 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4343 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4334 tried to switch the profiling to using hotshot, but I'm getting
4344 tried to switch the profiling to using hotshot, but I'm getting
4335 strange errors from prof.runctx() there. I may be misreading the
4345 strange errors from prof.runctx() there. I may be misreading the
4336 docs, but it looks weird. For now the profiling code will
4346 docs, but it looks weird. For now the profiling code will
4337 continue to use the standard profiler.
4347 continue to use the standard profiler.
4338
4348
4339 2004-08-23 Fernando Perez <fperez@colorado.edu>
4349 2004-08-23 Fernando Perez <fperez@colorado.edu>
4340
4350
4341 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4351 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4342 threaded shell, by John Hunter. It's not quite ready yet, but
4352 threaded shell, by John Hunter. It's not quite ready yet, but
4343 close.
4353 close.
4344
4354
4345 2004-08-22 Fernando Perez <fperez@colorado.edu>
4355 2004-08-22 Fernando Perez <fperez@colorado.edu>
4346
4356
4347 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4357 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4348 in Magic and ultraTB.
4358 in Magic and ultraTB.
4349
4359
4350 * ipython.1: document threading options in manpage.
4360 * ipython.1: document threading options in manpage.
4351
4361
4352 * scripts/ipython: Changed name of -thread option to -gthread,
4362 * scripts/ipython: Changed name of -thread option to -gthread,
4353 since this is GTK specific. I want to leave the door open for a
4363 since this is GTK specific. I want to leave the door open for a
4354 -wthread option for WX, which will most likely be necessary. This
4364 -wthread option for WX, which will most likely be necessary. This
4355 change affects usage and ipmaker as well.
4365 change affects usage and ipmaker as well.
4356
4366
4357 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4367 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4358 handle the matplotlib shell issues. Code by John Hunter
4368 handle the matplotlib shell issues. Code by John Hunter
4359 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4369 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4360 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4370 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4361 broken (and disabled for end users) for now, but it puts the
4371 broken (and disabled for end users) for now, but it puts the
4362 infrastructure in place.
4372 infrastructure in place.
4363
4373
4364 2004-08-21 Fernando Perez <fperez@colorado.edu>
4374 2004-08-21 Fernando Perez <fperez@colorado.edu>
4365
4375
4366 * ipythonrc-pylab: Add matplotlib support.
4376 * ipythonrc-pylab: Add matplotlib support.
4367
4377
4368 * matplotlib_config.py: new files for matplotlib support, part of
4378 * matplotlib_config.py: new files for matplotlib support, part of
4369 the pylab profile.
4379 the pylab profile.
4370
4380
4371 * IPython/usage.py (__doc__): documented the threading options.
4381 * IPython/usage.py (__doc__): documented the threading options.
4372
4382
4373 2004-08-20 Fernando Perez <fperez@colorado.edu>
4383 2004-08-20 Fernando Perez <fperez@colorado.edu>
4374
4384
4375 * ipython: Modified the main calling routine to handle the -thread
4385 * ipython: Modified the main calling routine to handle the -thread
4376 and -mpthread options. This needs to be done as a top-level hack,
4386 and -mpthread options. This needs to be done as a top-level hack,
4377 because it determines which class to instantiate for IPython
4387 because it determines which class to instantiate for IPython
4378 itself.
4388 itself.
4379
4389
4380 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4390 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4381 classes to support multithreaded GTK operation without blocking,
4391 classes to support multithreaded GTK operation without blocking,
4382 and matplotlib with all backends. This is a lot of still very
4392 and matplotlib with all backends. This is a lot of still very
4383 experimental code, and threads are tricky. So it may still have a
4393 experimental code, and threads are tricky. So it may still have a
4384 few rough edges... This code owes a lot to
4394 few rough edges... This code owes a lot to
4385 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4395 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4386 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4396 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4387 to John Hunter for all the matplotlib work.
4397 to John Hunter for all the matplotlib work.
4388
4398
4389 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4399 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4390 options for gtk thread and matplotlib support.
4400 options for gtk thread and matplotlib support.
4391
4401
4392 2004-08-16 Fernando Perez <fperez@colorado.edu>
4402 2004-08-16 Fernando Perez <fperez@colorado.edu>
4393
4403
4394 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4404 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4395 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4405 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4396 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4406 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4397
4407
4398 2004-08-11 Fernando Perez <fperez@colorado.edu>
4408 2004-08-11 Fernando Perez <fperez@colorado.edu>
4399
4409
4400 * setup.py (isfile): Fix build so documentation gets updated for
4410 * setup.py (isfile): Fix build so documentation gets updated for
4401 rpms (it was only done for .tgz builds).
4411 rpms (it was only done for .tgz builds).
4402
4412
4403 2004-08-10 Fernando Perez <fperez@colorado.edu>
4413 2004-08-10 Fernando Perez <fperez@colorado.edu>
4404
4414
4405 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4415 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4406
4416
4407 * iplib.py : Silence syntax error exceptions in tab-completion.
4417 * iplib.py : Silence syntax error exceptions in tab-completion.
4408
4418
4409 2004-08-05 Fernando Perez <fperez@colorado.edu>
4419 2004-08-05 Fernando Perez <fperez@colorado.edu>
4410
4420
4411 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4421 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4412 'color off' mark for continuation prompts. This was causing long
4422 'color off' mark for continuation prompts. This was causing long
4413 continuation lines to mis-wrap.
4423 continuation lines to mis-wrap.
4414
4424
4415 2004-08-01 Fernando Perez <fperez@colorado.edu>
4425 2004-08-01 Fernando Perez <fperez@colorado.edu>
4416
4426
4417 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4427 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4418 for building ipython to be a parameter. All this is necessary
4428 for building ipython to be a parameter. All this is necessary
4419 right now to have a multithreaded version, but this insane
4429 right now to have a multithreaded version, but this insane
4420 non-design will be cleaned up soon. For now, it's a hack that
4430 non-design will be cleaned up soon. For now, it's a hack that
4421 works.
4431 works.
4422
4432
4423 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4433 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4424 args in various places. No bugs so far, but it's a dangerous
4434 args in various places. No bugs so far, but it's a dangerous
4425 practice.
4435 practice.
4426
4436
4427 2004-07-31 Fernando Perez <fperez@colorado.edu>
4437 2004-07-31 Fernando Perez <fperez@colorado.edu>
4428
4438
4429 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4439 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4430 fix completion of files with dots in their names under most
4440 fix completion of files with dots in their names under most
4431 profiles (pysh was OK because the completion order is different).
4441 profiles (pysh was OK because the completion order is different).
4432
4442
4433 2004-07-27 Fernando Perez <fperez@colorado.edu>
4443 2004-07-27 Fernando Perez <fperez@colorado.edu>
4434
4444
4435 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4445 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4436 keywords manually, b/c the one in keyword.py was removed in python
4446 keywords manually, b/c the one in keyword.py was removed in python
4437 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4447 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4438 This is NOT a bug under python 2.3 and earlier.
4448 This is NOT a bug under python 2.3 and earlier.
4439
4449
4440 2004-07-26 Fernando Perez <fperez@colorado.edu>
4450 2004-07-26 Fernando Perez <fperez@colorado.edu>
4441
4451
4442 * IPython/ultraTB.py (VerboseTB.text): Add another
4452 * IPython/ultraTB.py (VerboseTB.text): Add another
4443 linecache.checkcache() call to try to prevent inspect.py from
4453 linecache.checkcache() call to try to prevent inspect.py from
4444 crashing under python 2.3. I think this fixes
4454 crashing under python 2.3. I think this fixes
4445 http://www.scipy.net/roundup/ipython/issue17.
4455 http://www.scipy.net/roundup/ipython/issue17.
4446
4456
4447 2004-07-26 *** Released version 0.6.2
4457 2004-07-26 *** Released version 0.6.2
4448
4458
4449 2004-07-26 Fernando Perez <fperez@colorado.edu>
4459 2004-07-26 Fernando Perez <fperez@colorado.edu>
4450
4460
4451 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4461 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4452 fail for any number.
4462 fail for any number.
4453 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4463 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4454 empty bookmarks.
4464 empty bookmarks.
4455
4465
4456 2004-07-26 *** Released version 0.6.1
4466 2004-07-26 *** Released version 0.6.1
4457
4467
4458 2004-07-26 Fernando Perez <fperez@colorado.edu>
4468 2004-07-26 Fernando Perez <fperez@colorado.edu>
4459
4469
4460 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4470 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4461
4471
4462 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4472 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4463 escaping '()[]{}' in filenames.
4473 escaping '()[]{}' in filenames.
4464
4474
4465 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4475 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4466 Python 2.2 users who lack a proper shlex.split.
4476 Python 2.2 users who lack a proper shlex.split.
4467
4477
4468 2004-07-19 Fernando Perez <fperez@colorado.edu>
4478 2004-07-19 Fernando Perez <fperez@colorado.edu>
4469
4479
4470 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4480 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4471 for reading readline's init file. I follow the normal chain:
4481 for reading readline's init file. I follow the normal chain:
4472 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4482 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4473 report by Mike Heeter. This closes
4483 report by Mike Heeter. This closes
4474 http://www.scipy.net/roundup/ipython/issue16.
4484 http://www.scipy.net/roundup/ipython/issue16.
4475
4485
4476 2004-07-18 Fernando Perez <fperez@colorado.edu>
4486 2004-07-18 Fernando Perez <fperez@colorado.edu>
4477
4487
4478 * IPython/iplib.py (__init__): Add better handling of '\' under
4488 * IPython/iplib.py (__init__): Add better handling of '\' under
4479 Win32 for filenames. After a patch by Ville.
4489 Win32 for filenames. After a patch by Ville.
4480
4490
4481 2004-07-17 Fernando Perez <fperez@colorado.edu>
4491 2004-07-17 Fernando Perez <fperez@colorado.edu>
4482
4492
4483 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4493 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4484 autocalling would be triggered for 'foo is bar' if foo is
4494 autocalling would be triggered for 'foo is bar' if foo is
4485 callable. I also cleaned up the autocall detection code to use a
4495 callable. I also cleaned up the autocall detection code to use a
4486 regexp, which is faster. Bug reported by Alexander Schmolck.
4496 regexp, which is faster. Bug reported by Alexander Schmolck.
4487
4497
4488 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4498 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4489 '?' in them would confuse the help system. Reported by Alex
4499 '?' in them would confuse the help system. Reported by Alex
4490 Schmolck.
4500 Schmolck.
4491
4501
4492 2004-07-16 Fernando Perez <fperez@colorado.edu>
4502 2004-07-16 Fernando Perez <fperez@colorado.edu>
4493
4503
4494 * IPython/GnuplotInteractive.py (__all__): added plot2.
4504 * IPython/GnuplotInteractive.py (__all__): added plot2.
4495
4505
4496 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4506 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4497 plotting dictionaries, lists or tuples of 1d arrays.
4507 plotting dictionaries, lists or tuples of 1d arrays.
4498
4508
4499 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4509 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4500 optimizations.
4510 optimizations.
4501
4511
4502 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4512 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4503 the information which was there from Janko's original IPP code:
4513 the information which was there from Janko's original IPP code:
4504
4514
4505 03.05.99 20:53 porto.ifm.uni-kiel.de
4515 03.05.99 20:53 porto.ifm.uni-kiel.de
4506 --Started changelog.
4516 --Started changelog.
4507 --make clear do what it say it does
4517 --make clear do what it say it does
4508 --added pretty output of lines from inputcache
4518 --added pretty output of lines from inputcache
4509 --Made Logger a mixin class, simplifies handling of switches
4519 --Made Logger a mixin class, simplifies handling of switches
4510 --Added own completer class. .string<TAB> expands to last history
4520 --Added own completer class. .string<TAB> expands to last history
4511 line which starts with string. The new expansion is also present
4521 line which starts with string. The new expansion is also present
4512 with Ctrl-r from the readline library. But this shows, who this
4522 with Ctrl-r from the readline library. But this shows, who this
4513 can be done for other cases.
4523 can be done for other cases.
4514 --Added convention that all shell functions should accept a
4524 --Added convention that all shell functions should accept a
4515 parameter_string This opens the door for different behaviour for
4525 parameter_string This opens the door for different behaviour for
4516 each function. @cd is a good example of this.
4526 each function. @cd is a good example of this.
4517
4527
4518 04.05.99 12:12 porto.ifm.uni-kiel.de
4528 04.05.99 12:12 porto.ifm.uni-kiel.de
4519 --added logfile rotation
4529 --added logfile rotation
4520 --added new mainloop method which freezes first the namespace
4530 --added new mainloop method which freezes first the namespace
4521
4531
4522 07.05.99 21:24 porto.ifm.uni-kiel.de
4532 07.05.99 21:24 porto.ifm.uni-kiel.de
4523 --added the docreader classes. Now there is a help system.
4533 --added the docreader classes. Now there is a help system.
4524 -This is only a first try. Currently it's not easy to put new
4534 -This is only a first try. Currently it's not easy to put new
4525 stuff in the indices. But this is the way to go. Info would be
4535 stuff in the indices. But this is the way to go. Info would be
4526 better, but HTML is every where and not everybody has an info
4536 better, but HTML is every where and not everybody has an info
4527 system installed and it's not so easy to change html-docs to info.
4537 system installed and it's not so easy to change html-docs to info.
4528 --added global logfile option
4538 --added global logfile option
4529 --there is now a hook for object inspection method pinfo needs to
4539 --there is now a hook for object inspection method pinfo needs to
4530 be provided for this. Can be reached by two '??'.
4540 be provided for this. Can be reached by two '??'.
4531
4541
4532 08.05.99 20:51 porto.ifm.uni-kiel.de
4542 08.05.99 20:51 porto.ifm.uni-kiel.de
4533 --added a README
4543 --added a README
4534 --bug in rc file. Something has changed so functions in the rc
4544 --bug in rc file. Something has changed so functions in the rc
4535 file need to reference the shell and not self. Not clear if it's a
4545 file need to reference the shell and not self. Not clear if it's a
4536 bug or feature.
4546 bug or feature.
4537 --changed rc file for new behavior
4547 --changed rc file for new behavior
4538
4548
4539 2004-07-15 Fernando Perez <fperez@colorado.edu>
4549 2004-07-15 Fernando Perez <fperez@colorado.edu>
4540
4550
4541 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4551 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4542 cache was falling out of sync in bizarre manners when multi-line
4552 cache was falling out of sync in bizarre manners when multi-line
4543 input was present. Minor optimizations and cleanup.
4553 input was present. Minor optimizations and cleanup.
4544
4554
4545 (Logger): Remove old Changelog info for cleanup. This is the
4555 (Logger): Remove old Changelog info for cleanup. This is the
4546 information which was there from Janko's original code:
4556 information which was there from Janko's original code:
4547
4557
4548 Changes to Logger: - made the default log filename a parameter
4558 Changes to Logger: - made the default log filename a parameter
4549
4559
4550 - put a check for lines beginning with !@? in log(). Needed
4560 - put a check for lines beginning with !@? in log(). Needed
4551 (even if the handlers properly log their lines) for mid-session
4561 (even if the handlers properly log their lines) for mid-session
4552 logging activation to work properly. Without this, lines logged
4562 logging activation to work properly. Without this, lines logged
4553 in mid session, which get read from the cache, would end up
4563 in mid session, which get read from the cache, would end up
4554 'bare' (with !@? in the open) in the log. Now they are caught
4564 'bare' (with !@? in the open) in the log. Now they are caught
4555 and prepended with a #.
4565 and prepended with a #.
4556
4566
4557 * IPython/iplib.py (InteractiveShell.init_readline): added check
4567 * IPython/iplib.py (InteractiveShell.init_readline): added check
4558 in case MagicCompleter fails to be defined, so we don't crash.
4568 in case MagicCompleter fails to be defined, so we don't crash.
4559
4569
4560 2004-07-13 Fernando Perez <fperez@colorado.edu>
4570 2004-07-13 Fernando Perez <fperez@colorado.edu>
4561
4571
4562 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4572 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4563 of EPS if the requested filename ends in '.eps'.
4573 of EPS if the requested filename ends in '.eps'.
4564
4574
4565 2004-07-04 Fernando Perez <fperez@colorado.edu>
4575 2004-07-04 Fernando Perez <fperez@colorado.edu>
4566
4576
4567 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4577 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4568 escaping of quotes when calling the shell.
4578 escaping of quotes when calling the shell.
4569
4579
4570 2004-07-02 Fernando Perez <fperez@colorado.edu>
4580 2004-07-02 Fernando Perez <fperez@colorado.edu>
4571
4581
4572 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4582 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4573 gettext not working because we were clobbering '_'. Fixes
4583 gettext not working because we were clobbering '_'. Fixes
4574 http://www.scipy.net/roundup/ipython/issue6.
4584 http://www.scipy.net/roundup/ipython/issue6.
4575
4585
4576 2004-07-01 Fernando Perez <fperez@colorado.edu>
4586 2004-07-01 Fernando Perez <fperez@colorado.edu>
4577
4587
4578 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4588 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4579 into @cd. Patch by Ville.
4589 into @cd. Patch by Ville.
4580
4590
4581 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4591 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4582 new function to store things after ipmaker runs. Patch by Ville.
4592 new function to store things after ipmaker runs. Patch by Ville.
4583 Eventually this will go away once ipmaker is removed and the class
4593 Eventually this will go away once ipmaker is removed and the class
4584 gets cleaned up, but for now it's ok. Key functionality here is
4594 gets cleaned up, but for now it's ok. Key functionality here is
4585 the addition of the persistent storage mechanism, a dict for
4595 the addition of the persistent storage mechanism, a dict for
4586 keeping data across sessions (for now just bookmarks, but more can
4596 keeping data across sessions (for now just bookmarks, but more can
4587 be implemented later).
4597 be implemented later).
4588
4598
4589 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4599 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4590 persistent across sections. Patch by Ville, I modified it
4600 persistent across sections. Patch by Ville, I modified it
4591 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4601 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4592 added a '-l' option to list all bookmarks.
4602 added a '-l' option to list all bookmarks.
4593
4603
4594 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4604 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4595 center for cleanup. Registered with atexit.register(). I moved
4605 center for cleanup. Registered with atexit.register(). I moved
4596 here the old exit_cleanup(). After a patch by Ville.
4606 here the old exit_cleanup(). After a patch by Ville.
4597
4607
4598 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4608 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4599 characters in the hacked shlex_split for python 2.2.
4609 characters in the hacked shlex_split for python 2.2.
4600
4610
4601 * IPython/iplib.py (file_matches): more fixes to filenames with
4611 * IPython/iplib.py (file_matches): more fixes to filenames with
4602 whitespace in them. It's not perfect, but limitations in python's
4612 whitespace in them. It's not perfect, but limitations in python's
4603 readline make it impossible to go further.
4613 readline make it impossible to go further.
4604
4614
4605 2004-06-29 Fernando Perez <fperez@colorado.edu>
4615 2004-06-29 Fernando Perez <fperez@colorado.edu>
4606
4616
4607 * IPython/iplib.py (file_matches): escape whitespace correctly in
4617 * IPython/iplib.py (file_matches): escape whitespace correctly in
4608 filename completions. Bug reported by Ville.
4618 filename completions. Bug reported by Ville.
4609
4619
4610 2004-06-28 Fernando Perez <fperez@colorado.edu>
4620 2004-06-28 Fernando Perez <fperez@colorado.edu>
4611
4621
4612 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4622 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4613 the history file will be called 'history-PROFNAME' (or just
4623 the history file will be called 'history-PROFNAME' (or just
4614 'history' if no profile is loaded). I was getting annoyed at
4624 'history' if no profile is loaded). I was getting annoyed at
4615 getting my Numerical work history clobbered by pysh sessions.
4625 getting my Numerical work history clobbered by pysh sessions.
4616
4626
4617 * IPython/iplib.py (InteractiveShell.__init__): Internal
4627 * IPython/iplib.py (InteractiveShell.__init__): Internal
4618 getoutputerror() function so that we can honor the system_verbose
4628 getoutputerror() function so that we can honor the system_verbose
4619 flag for _all_ system calls. I also added escaping of #
4629 flag for _all_ system calls. I also added escaping of #
4620 characters here to avoid confusing Itpl.
4630 characters here to avoid confusing Itpl.
4621
4631
4622 * IPython/Magic.py (shlex_split): removed call to shell in
4632 * IPython/Magic.py (shlex_split): removed call to shell in
4623 parse_options and replaced it with shlex.split(). The annoying
4633 parse_options and replaced it with shlex.split(). The annoying
4624 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4634 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4625 to backport it from 2.3, with several frail hacks (the shlex
4635 to backport it from 2.3, with several frail hacks (the shlex
4626 module is rather limited in 2.2). Thanks to a suggestion by Ville
4636 module is rather limited in 2.2). Thanks to a suggestion by Ville
4627 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4637 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4628 problem.
4638 problem.
4629
4639
4630 (Magic.magic_system_verbose): new toggle to print the actual
4640 (Magic.magic_system_verbose): new toggle to print the actual
4631 system calls made by ipython. Mainly for debugging purposes.
4641 system calls made by ipython. Mainly for debugging purposes.
4632
4642
4633 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4643 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4634 doesn't support persistence. Reported (and fix suggested) by
4644 doesn't support persistence. Reported (and fix suggested) by
4635 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4645 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4636
4646
4637 2004-06-26 Fernando Perez <fperez@colorado.edu>
4647 2004-06-26 Fernando Perez <fperez@colorado.edu>
4638
4648
4639 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4649 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4640 continue prompts.
4650 continue prompts.
4641
4651
4642 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4652 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4643 function (basically a big docstring) and a few more things here to
4653 function (basically a big docstring) and a few more things here to
4644 speedup startup. pysh.py is now very lightweight. We want because
4654 speedup startup. pysh.py is now very lightweight. We want because
4645 it gets execfile'd, while InterpreterExec gets imported, so
4655 it gets execfile'd, while InterpreterExec gets imported, so
4646 byte-compilation saves time.
4656 byte-compilation saves time.
4647
4657
4648 2004-06-25 Fernando Perez <fperez@colorado.edu>
4658 2004-06-25 Fernando Perez <fperez@colorado.edu>
4649
4659
4650 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4660 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4651 -NUM', which was recently broken.
4661 -NUM', which was recently broken.
4652
4662
4653 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4663 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4654 in multi-line input (but not !!, which doesn't make sense there).
4664 in multi-line input (but not !!, which doesn't make sense there).
4655
4665
4656 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4666 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4657 It's just too useful, and people can turn it off in the less
4667 It's just too useful, and people can turn it off in the less
4658 common cases where it's a problem.
4668 common cases where it's a problem.
4659
4669
4660 2004-06-24 Fernando Perez <fperez@colorado.edu>
4670 2004-06-24 Fernando Perez <fperez@colorado.edu>
4661
4671
4662 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4672 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4663 special syntaxes (like alias calling) is now allied in multi-line
4673 special syntaxes (like alias calling) is now allied in multi-line
4664 input. This is still _very_ experimental, but it's necessary for
4674 input. This is still _very_ experimental, but it's necessary for
4665 efficient shell usage combining python looping syntax with system
4675 efficient shell usage combining python looping syntax with system
4666 calls. For now it's restricted to aliases, I don't think it
4676 calls. For now it's restricted to aliases, I don't think it
4667 really even makes sense to have this for magics.
4677 really even makes sense to have this for magics.
4668
4678
4669 2004-06-23 Fernando Perez <fperez@colorado.edu>
4679 2004-06-23 Fernando Perez <fperez@colorado.edu>
4670
4680
4671 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4681 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4672 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4682 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4673
4683
4674 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4684 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4675 extensions under Windows (after code sent by Gary Bishop). The
4685 extensions under Windows (after code sent by Gary Bishop). The
4676 extensions considered 'executable' are stored in IPython's rc
4686 extensions considered 'executable' are stored in IPython's rc
4677 structure as win_exec_ext.
4687 structure as win_exec_ext.
4678
4688
4679 * IPython/genutils.py (shell): new function, like system() but
4689 * IPython/genutils.py (shell): new function, like system() but
4680 without return value. Very useful for interactive shell work.
4690 without return value. Very useful for interactive shell work.
4681
4691
4682 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4692 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4683 delete aliases.
4693 delete aliases.
4684
4694
4685 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4695 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4686 sure that the alias table doesn't contain python keywords.
4696 sure that the alias table doesn't contain python keywords.
4687
4697
4688 2004-06-21 Fernando Perez <fperez@colorado.edu>
4698 2004-06-21 Fernando Perez <fperez@colorado.edu>
4689
4699
4690 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4700 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4691 non-existent items are found in $PATH. Reported by Thorsten.
4701 non-existent items are found in $PATH. Reported by Thorsten.
4692
4702
4693 2004-06-20 Fernando Perez <fperez@colorado.edu>
4703 2004-06-20 Fernando Perez <fperez@colorado.edu>
4694
4704
4695 * IPython/iplib.py (complete): modified the completer so that the
4705 * IPython/iplib.py (complete): modified the completer so that the
4696 order of priorities can be easily changed at runtime.
4706 order of priorities can be easily changed at runtime.
4697
4707
4698 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4708 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4699 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4709 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4700
4710
4701 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4711 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4702 expand Python variables prepended with $ in all system calls. The
4712 expand Python variables prepended with $ in all system calls. The
4703 same was done to InteractiveShell.handle_shell_escape. Now all
4713 same was done to InteractiveShell.handle_shell_escape. Now all
4704 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4714 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4705 expansion of python variables and expressions according to the
4715 expansion of python variables and expressions according to the
4706 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4716 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4707
4717
4708 Though PEP-215 has been rejected, a similar (but simpler) one
4718 Though PEP-215 has been rejected, a similar (but simpler) one
4709 seems like it will go into Python 2.4, PEP-292 -
4719 seems like it will go into Python 2.4, PEP-292 -
4710 http://www.python.org/peps/pep-0292.html.
4720 http://www.python.org/peps/pep-0292.html.
4711
4721
4712 I'll keep the full syntax of PEP-215, since IPython has since the
4722 I'll keep the full syntax of PEP-215, since IPython has since the
4713 start used Ka-Ping Yee's reference implementation discussed there
4723 start used Ka-Ping Yee's reference implementation discussed there
4714 (Itpl), and I actually like the powerful semantics it offers.
4724 (Itpl), and I actually like the powerful semantics it offers.
4715
4725
4716 In order to access normal shell variables, the $ has to be escaped
4726 In order to access normal shell variables, the $ has to be escaped
4717 via an extra $. For example:
4727 via an extra $. For example:
4718
4728
4719 In [7]: PATH='a python variable'
4729 In [7]: PATH='a python variable'
4720
4730
4721 In [8]: !echo $PATH
4731 In [8]: !echo $PATH
4722 a python variable
4732 a python variable
4723
4733
4724 In [9]: !echo $$PATH
4734 In [9]: !echo $$PATH
4725 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4735 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4726
4736
4727 (Magic.parse_options): escape $ so the shell doesn't evaluate
4737 (Magic.parse_options): escape $ so the shell doesn't evaluate
4728 things prematurely.
4738 things prematurely.
4729
4739
4730 * IPython/iplib.py (InteractiveShell.call_alias): added the
4740 * IPython/iplib.py (InteractiveShell.call_alias): added the
4731 ability for aliases to expand python variables via $.
4741 ability for aliases to expand python variables via $.
4732
4742
4733 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4743 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4734 system, now there's a @rehash/@rehashx pair of magics. These work
4744 system, now there's a @rehash/@rehashx pair of magics. These work
4735 like the csh rehash command, and can be invoked at any time. They
4745 like the csh rehash command, and can be invoked at any time. They
4736 build a table of aliases to everything in the user's $PATH
4746 build a table of aliases to everything in the user's $PATH
4737 (@rehash uses everything, @rehashx is slower but only adds
4747 (@rehash uses everything, @rehashx is slower but only adds
4738 executable files). With this, the pysh.py-based shell profile can
4748 executable files). With this, the pysh.py-based shell profile can
4739 now simply call rehash upon startup, and full access to all
4749 now simply call rehash upon startup, and full access to all
4740 programs in the user's path is obtained.
4750 programs in the user's path is obtained.
4741
4751
4742 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4752 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4743 functionality is now fully in place. I removed the old dynamic
4753 functionality is now fully in place. I removed the old dynamic
4744 code generation based approach, in favor of a much lighter one
4754 code generation based approach, in favor of a much lighter one
4745 based on a simple dict. The advantage is that this allows me to
4755 based on a simple dict. The advantage is that this allows me to
4746 now have thousands of aliases with negligible cost (unthinkable
4756 now have thousands of aliases with negligible cost (unthinkable
4747 with the old system).
4757 with the old system).
4748
4758
4749 2004-06-19 Fernando Perez <fperez@colorado.edu>
4759 2004-06-19 Fernando Perez <fperez@colorado.edu>
4750
4760
4751 * IPython/iplib.py (__init__): extended MagicCompleter class to
4761 * IPython/iplib.py (__init__): extended MagicCompleter class to
4752 also complete (last in priority) on user aliases.
4762 also complete (last in priority) on user aliases.
4753
4763
4754 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4764 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4755 call to eval.
4765 call to eval.
4756 (ItplNS.__init__): Added a new class which functions like Itpl,
4766 (ItplNS.__init__): Added a new class which functions like Itpl,
4757 but allows configuring the namespace for the evaluation to occur
4767 but allows configuring the namespace for the evaluation to occur
4758 in.
4768 in.
4759
4769
4760 2004-06-18 Fernando Perez <fperez@colorado.edu>
4770 2004-06-18 Fernando Perez <fperez@colorado.edu>
4761
4771
4762 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4772 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4763 better message when 'exit' or 'quit' are typed (a common newbie
4773 better message when 'exit' or 'quit' are typed (a common newbie
4764 confusion).
4774 confusion).
4765
4775
4766 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4776 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4767 check for Windows users.
4777 check for Windows users.
4768
4778
4769 * IPython/iplib.py (InteractiveShell.user_setup): removed
4779 * IPython/iplib.py (InteractiveShell.user_setup): removed
4770 disabling of colors for Windows. I'll test at runtime and issue a
4780 disabling of colors for Windows. I'll test at runtime and issue a
4771 warning if Gary's readline isn't found, as to nudge users to
4781 warning if Gary's readline isn't found, as to nudge users to
4772 download it.
4782 download it.
4773
4783
4774 2004-06-16 Fernando Perez <fperez@colorado.edu>
4784 2004-06-16 Fernando Perez <fperez@colorado.edu>
4775
4785
4776 * IPython/genutils.py (Stream.__init__): changed to print errors
4786 * IPython/genutils.py (Stream.__init__): changed to print errors
4777 to sys.stderr. I had a circular dependency here. Now it's
4787 to sys.stderr. I had a circular dependency here. Now it's
4778 possible to run ipython as IDLE's shell (consider this pre-alpha,
4788 possible to run ipython as IDLE's shell (consider this pre-alpha,
4779 since true stdout things end up in the starting terminal instead
4789 since true stdout things end up in the starting terminal instead
4780 of IDLE's out).
4790 of IDLE's out).
4781
4791
4782 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4792 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4783 users who haven't # updated their prompt_in2 definitions. Remove
4793 users who haven't # updated their prompt_in2 definitions. Remove
4784 eventually.
4794 eventually.
4785 (multiple_replace): added credit to original ASPN recipe.
4795 (multiple_replace): added credit to original ASPN recipe.
4786
4796
4787 2004-06-15 Fernando Perez <fperez@colorado.edu>
4797 2004-06-15 Fernando Perez <fperez@colorado.edu>
4788
4798
4789 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4799 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4790 list of auto-defined aliases.
4800 list of auto-defined aliases.
4791
4801
4792 2004-06-13 Fernando Perez <fperez@colorado.edu>
4802 2004-06-13 Fernando Perez <fperez@colorado.edu>
4793
4803
4794 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4804 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4795 install was really requested (so setup.py can be used for other
4805 install was really requested (so setup.py can be used for other
4796 things under Windows).
4806 things under Windows).
4797
4807
4798 2004-06-10 Fernando Perez <fperez@colorado.edu>
4808 2004-06-10 Fernando Perez <fperez@colorado.edu>
4799
4809
4800 * IPython/Logger.py (Logger.create_log): Manually remove any old
4810 * IPython/Logger.py (Logger.create_log): Manually remove any old
4801 backup, since os.remove may fail under Windows. Fixes bug
4811 backup, since os.remove may fail under Windows. Fixes bug
4802 reported by Thorsten.
4812 reported by Thorsten.
4803
4813
4804 2004-06-09 Fernando Perez <fperez@colorado.edu>
4814 2004-06-09 Fernando Perez <fperez@colorado.edu>
4805
4815
4806 * examples/example-embed.py: fixed all references to %n (replaced
4816 * examples/example-embed.py: fixed all references to %n (replaced
4807 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4817 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4808 for all examples and the manual as well.
4818 for all examples and the manual as well.
4809
4819
4810 2004-06-08 Fernando Perez <fperez@colorado.edu>
4820 2004-06-08 Fernando Perez <fperez@colorado.edu>
4811
4821
4812 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4822 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4813 alignment and color management. All 3 prompt subsystems now
4823 alignment and color management. All 3 prompt subsystems now
4814 inherit from BasePrompt.
4824 inherit from BasePrompt.
4815
4825
4816 * tools/release: updates for windows installer build and tag rpms
4826 * tools/release: updates for windows installer build and tag rpms
4817 with python version (since paths are fixed).
4827 with python version (since paths are fixed).
4818
4828
4819 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4829 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4820 which will become eventually obsolete. Also fixed the default
4830 which will become eventually obsolete. Also fixed the default
4821 prompt_in2 to use \D, so at least new users start with the correct
4831 prompt_in2 to use \D, so at least new users start with the correct
4822 defaults.
4832 defaults.
4823 WARNING: Users with existing ipythonrc files will need to apply
4833 WARNING: Users with existing ipythonrc files will need to apply
4824 this fix manually!
4834 this fix manually!
4825
4835
4826 * setup.py: make windows installer (.exe). This is finally the
4836 * setup.py: make windows installer (.exe). This is finally the
4827 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4837 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4828 which I hadn't included because it required Python 2.3 (or recent
4838 which I hadn't included because it required Python 2.3 (or recent
4829 distutils).
4839 distutils).
4830
4840
4831 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4841 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4832 usage of new '\D' escape.
4842 usage of new '\D' escape.
4833
4843
4834 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4844 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4835 lacks os.getuid())
4845 lacks os.getuid())
4836 (CachedOutput.set_colors): Added the ability to turn coloring
4846 (CachedOutput.set_colors): Added the ability to turn coloring
4837 on/off with @colors even for manually defined prompt colors. It
4847 on/off with @colors even for manually defined prompt colors. It
4838 uses a nasty global, but it works safely and via the generic color
4848 uses a nasty global, but it works safely and via the generic color
4839 handling mechanism.
4849 handling mechanism.
4840 (Prompt2.__init__): Introduced new escape '\D' for continuation
4850 (Prompt2.__init__): Introduced new escape '\D' for continuation
4841 prompts. It represents the counter ('\#') as dots.
4851 prompts. It represents the counter ('\#') as dots.
4842 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4852 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4843 need to update their ipythonrc files and replace '%n' with '\D' in
4853 need to update their ipythonrc files and replace '%n' with '\D' in
4844 their prompt_in2 settings everywhere. Sorry, but there's
4854 their prompt_in2 settings everywhere. Sorry, but there's
4845 otherwise no clean way to get all prompts to properly align. The
4855 otherwise no clean way to get all prompts to properly align. The
4846 ipythonrc shipped with IPython has been updated.
4856 ipythonrc shipped with IPython has been updated.
4847
4857
4848 2004-06-07 Fernando Perez <fperez@colorado.edu>
4858 2004-06-07 Fernando Perez <fperez@colorado.edu>
4849
4859
4850 * setup.py (isfile): Pass local_icons option to latex2html, so the
4860 * setup.py (isfile): Pass local_icons option to latex2html, so the
4851 resulting HTML file is self-contained. Thanks to
4861 resulting HTML file is self-contained. Thanks to
4852 dryice-AT-liu.com.cn for the tip.
4862 dryice-AT-liu.com.cn for the tip.
4853
4863
4854 * pysh.py: I created a new profile 'shell', which implements a
4864 * pysh.py: I created a new profile 'shell', which implements a
4855 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4865 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4856 system shell, nor will it become one anytime soon. It's mainly
4866 system shell, nor will it become one anytime soon. It's mainly
4857 meant to illustrate the use of the new flexible bash-like prompts.
4867 meant to illustrate the use of the new flexible bash-like prompts.
4858 I guess it could be used by hardy souls for true shell management,
4868 I guess it could be used by hardy souls for true shell management,
4859 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4869 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4860 profile. This uses the InterpreterExec extension provided by
4870 profile. This uses the InterpreterExec extension provided by
4861 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4871 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4862
4872
4863 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4873 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4864 auto-align itself with the length of the previous input prompt
4874 auto-align itself with the length of the previous input prompt
4865 (taking into account the invisible color escapes).
4875 (taking into account the invisible color escapes).
4866 (CachedOutput.__init__): Large restructuring of this class. Now
4876 (CachedOutput.__init__): Large restructuring of this class. Now
4867 all three prompts (primary1, primary2, output) are proper objects,
4877 all three prompts (primary1, primary2, output) are proper objects,
4868 managed by the 'parent' CachedOutput class. The code is still a
4878 managed by the 'parent' CachedOutput class. The code is still a
4869 bit hackish (all prompts share state via a pointer to the cache),
4879 bit hackish (all prompts share state via a pointer to the cache),
4870 but it's overall far cleaner than before.
4880 but it's overall far cleaner than before.
4871
4881
4872 * IPython/genutils.py (getoutputerror): modified to add verbose,
4882 * IPython/genutils.py (getoutputerror): modified to add verbose,
4873 debug and header options. This makes the interface of all getout*
4883 debug and header options. This makes the interface of all getout*
4874 functions uniform.
4884 functions uniform.
4875 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4885 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4876
4886
4877 * IPython/Magic.py (Magic.default_option): added a function to
4887 * IPython/Magic.py (Magic.default_option): added a function to
4878 allow registering default options for any magic command. This
4888 allow registering default options for any magic command. This
4879 makes it easy to have profiles which customize the magics globally
4889 makes it easy to have profiles which customize the magics globally
4880 for a certain use. The values set through this function are
4890 for a certain use. The values set through this function are
4881 picked up by the parse_options() method, which all magics should
4891 picked up by the parse_options() method, which all magics should
4882 use to parse their options.
4892 use to parse their options.
4883
4893
4884 * IPython/genutils.py (warn): modified the warnings framework to
4894 * IPython/genutils.py (warn): modified the warnings framework to
4885 use the Term I/O class. I'm trying to slowly unify all of
4895 use the Term I/O class. I'm trying to slowly unify all of
4886 IPython's I/O operations to pass through Term.
4896 IPython's I/O operations to pass through Term.
4887
4897
4888 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4898 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4889 the secondary prompt to correctly match the length of the primary
4899 the secondary prompt to correctly match the length of the primary
4890 one for any prompt. Now multi-line code will properly line up
4900 one for any prompt. Now multi-line code will properly line up
4891 even for path dependent prompts, such as the new ones available
4901 even for path dependent prompts, such as the new ones available
4892 via the prompt_specials.
4902 via the prompt_specials.
4893
4903
4894 2004-06-06 Fernando Perez <fperez@colorado.edu>
4904 2004-06-06 Fernando Perez <fperez@colorado.edu>
4895
4905
4896 * IPython/Prompts.py (prompt_specials): Added the ability to have
4906 * IPython/Prompts.py (prompt_specials): Added the ability to have
4897 bash-like special sequences in the prompts, which get
4907 bash-like special sequences in the prompts, which get
4898 automatically expanded. Things like hostname, current working
4908 automatically expanded. Things like hostname, current working
4899 directory and username are implemented already, but it's easy to
4909 directory and username are implemented already, but it's easy to
4900 add more in the future. Thanks to a patch by W.J. van der Laan
4910 add more in the future. Thanks to a patch by W.J. van der Laan
4901 <gnufnork-AT-hetdigitalegat.nl>
4911 <gnufnork-AT-hetdigitalegat.nl>
4902 (prompt_specials): Added color support for prompt strings, so
4912 (prompt_specials): Added color support for prompt strings, so
4903 users can define arbitrary color setups for their prompts.
4913 users can define arbitrary color setups for their prompts.
4904
4914
4905 2004-06-05 Fernando Perez <fperez@colorado.edu>
4915 2004-06-05 Fernando Perez <fperez@colorado.edu>
4906
4916
4907 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4917 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4908 code to load Gary Bishop's readline and configure it
4918 code to load Gary Bishop's readline and configure it
4909 automatically. Thanks to Gary for help on this.
4919 automatically. Thanks to Gary for help on this.
4910
4920
4911 2004-06-01 Fernando Perez <fperez@colorado.edu>
4921 2004-06-01 Fernando Perez <fperez@colorado.edu>
4912
4922
4913 * IPython/Logger.py (Logger.create_log): fix bug for logging
4923 * IPython/Logger.py (Logger.create_log): fix bug for logging
4914 with no filename (previous fix was incomplete).
4924 with no filename (previous fix was incomplete).
4915
4925
4916 2004-05-25 Fernando Perez <fperez@colorado.edu>
4926 2004-05-25 Fernando Perez <fperez@colorado.edu>
4917
4927
4918 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4928 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4919 parens would get passed to the shell.
4929 parens would get passed to the shell.
4920
4930
4921 2004-05-20 Fernando Perez <fperez@colorado.edu>
4931 2004-05-20 Fernando Perez <fperez@colorado.edu>
4922
4932
4923 * IPython/Magic.py (Magic.magic_prun): changed default profile
4933 * IPython/Magic.py (Magic.magic_prun): changed default profile
4924 sort order to 'time' (the more common profiling need).
4934 sort order to 'time' (the more common profiling need).
4925
4935
4926 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4936 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4927 so that source code shown is guaranteed in sync with the file on
4937 so that source code shown is guaranteed in sync with the file on
4928 disk (also changed in psource). Similar fix to the one for
4938 disk (also changed in psource). Similar fix to the one for
4929 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4939 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4930 <yann.ledu-AT-noos.fr>.
4940 <yann.ledu-AT-noos.fr>.
4931
4941
4932 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4942 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4933 with a single option would not be correctly parsed. Closes
4943 with a single option would not be correctly parsed. Closes
4934 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4944 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4935 introduced in 0.6.0 (on 2004-05-06).
4945 introduced in 0.6.0 (on 2004-05-06).
4936
4946
4937 2004-05-13 *** Released version 0.6.0
4947 2004-05-13 *** Released version 0.6.0
4938
4948
4939 2004-05-13 Fernando Perez <fperez@colorado.edu>
4949 2004-05-13 Fernando Perez <fperez@colorado.edu>
4940
4950
4941 * debian/: Added debian/ directory to CVS, so that debian support
4951 * debian/: Added debian/ directory to CVS, so that debian support
4942 is publicly accessible. The debian package is maintained by Jack
4952 is publicly accessible. The debian package is maintained by Jack
4943 Moffit <jack-AT-xiph.org>.
4953 Moffit <jack-AT-xiph.org>.
4944
4954
4945 * Documentation: included the notes about an ipython-based system
4955 * Documentation: included the notes about an ipython-based system
4946 shell (the hypothetical 'pysh') into the new_design.pdf document,
4956 shell (the hypothetical 'pysh') into the new_design.pdf document,
4947 so that these ideas get distributed to users along with the
4957 so that these ideas get distributed to users along with the
4948 official documentation.
4958 official documentation.
4949
4959
4950 2004-05-10 Fernando Perez <fperez@colorado.edu>
4960 2004-05-10 Fernando Perez <fperez@colorado.edu>
4951
4961
4952 * IPython/Logger.py (Logger.create_log): fix recently introduced
4962 * IPython/Logger.py (Logger.create_log): fix recently introduced
4953 bug (misindented line) where logstart would fail when not given an
4963 bug (misindented line) where logstart would fail when not given an
4954 explicit filename.
4964 explicit filename.
4955
4965
4956 2004-05-09 Fernando Perez <fperez@colorado.edu>
4966 2004-05-09 Fernando Perez <fperez@colorado.edu>
4957
4967
4958 * IPython/Magic.py (Magic.parse_options): skip system call when
4968 * IPython/Magic.py (Magic.parse_options): skip system call when
4959 there are no options to look for. Faster, cleaner for the common
4969 there are no options to look for. Faster, cleaner for the common
4960 case.
4970 case.
4961
4971
4962 * Documentation: many updates to the manual: describing Windows
4972 * Documentation: many updates to the manual: describing Windows
4963 support better, Gnuplot updates, credits, misc small stuff. Also
4973 support better, Gnuplot updates, credits, misc small stuff. Also
4964 updated the new_design doc a bit.
4974 updated the new_design doc a bit.
4965
4975
4966 2004-05-06 *** Released version 0.6.0.rc1
4976 2004-05-06 *** Released version 0.6.0.rc1
4967
4977
4968 2004-05-06 Fernando Perez <fperez@colorado.edu>
4978 2004-05-06 Fernando Perez <fperez@colorado.edu>
4969
4979
4970 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4980 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4971 operations to use the vastly more efficient list/''.join() method.
4981 operations to use the vastly more efficient list/''.join() method.
4972 (FormattedTB.text): Fix
4982 (FormattedTB.text): Fix
4973 http://www.scipy.net/roundup/ipython/issue12 - exception source
4983 http://www.scipy.net/roundup/ipython/issue12 - exception source
4974 extract not updated after reload. Thanks to Mike Salib
4984 extract not updated after reload. Thanks to Mike Salib
4975 <msalib-AT-mit.edu> for pinning the source of the problem.
4985 <msalib-AT-mit.edu> for pinning the source of the problem.
4976 Fortunately, the solution works inside ipython and doesn't require
4986 Fortunately, the solution works inside ipython and doesn't require
4977 any changes to python proper.
4987 any changes to python proper.
4978
4988
4979 * IPython/Magic.py (Magic.parse_options): Improved to process the
4989 * IPython/Magic.py (Magic.parse_options): Improved to process the
4980 argument list as a true shell would (by actually using the
4990 argument list as a true shell would (by actually using the
4981 underlying system shell). This way, all @magics automatically get
4991 underlying system shell). This way, all @magics automatically get
4982 shell expansion for variables. Thanks to a comment by Alex
4992 shell expansion for variables. Thanks to a comment by Alex
4983 Schmolck.
4993 Schmolck.
4984
4994
4985 2004-04-04 Fernando Perez <fperez@colorado.edu>
4995 2004-04-04 Fernando Perez <fperez@colorado.edu>
4986
4996
4987 * IPython/iplib.py (InteractiveShell.interact): Added a special
4997 * IPython/iplib.py (InteractiveShell.interact): Added a special
4988 trap for a debugger quit exception, which is basically impossible
4998 trap for a debugger quit exception, which is basically impossible
4989 to handle by normal mechanisms, given what pdb does to the stack.
4999 to handle by normal mechanisms, given what pdb does to the stack.
4990 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
5000 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4991
5001
4992 2004-04-03 Fernando Perez <fperez@colorado.edu>
5002 2004-04-03 Fernando Perez <fperez@colorado.edu>
4993
5003
4994 * IPython/genutils.py (Term): Standardized the names of the Term
5004 * IPython/genutils.py (Term): Standardized the names of the Term
4995 class streams to cin/cout/cerr, following C++ naming conventions
5005 class streams to cin/cout/cerr, following C++ naming conventions
4996 (I can't use in/out/err because 'in' is not a valid attribute
5006 (I can't use in/out/err because 'in' is not a valid attribute
4997 name).
5007 name).
4998
5008
4999 * IPython/iplib.py (InteractiveShell.interact): don't increment
5009 * IPython/iplib.py (InteractiveShell.interact): don't increment
5000 the prompt if there's no user input. By Daniel 'Dang' Griffith
5010 the prompt if there's no user input. By Daniel 'Dang' Griffith
5001 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
5011 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
5002 Francois Pinard.
5012 Francois Pinard.
5003
5013
5004 2004-04-02 Fernando Perez <fperez@colorado.edu>
5014 2004-04-02 Fernando Perez <fperez@colorado.edu>
5005
5015
5006 * IPython/genutils.py (Stream.__init__): Modified to survive at
5016 * IPython/genutils.py (Stream.__init__): Modified to survive at
5007 least importing in contexts where stdin/out/err aren't true file
5017 least importing in contexts where stdin/out/err aren't true file
5008 objects, such as PyCrust (they lack fileno() and mode). However,
5018 objects, such as PyCrust (they lack fileno() and mode). However,
5009 the recovery facilities which rely on these things existing will
5019 the recovery facilities which rely on these things existing will
5010 not work.
5020 not work.
5011
5021
5012 2004-04-01 Fernando Perez <fperez@colorado.edu>
5022 2004-04-01 Fernando Perez <fperez@colorado.edu>
5013
5023
5014 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
5024 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
5015 use the new getoutputerror() function, so it properly
5025 use the new getoutputerror() function, so it properly
5016 distinguishes stdout/err.
5026 distinguishes stdout/err.
5017
5027
5018 * IPython/genutils.py (getoutputerror): added a function to
5028 * IPython/genutils.py (getoutputerror): added a function to
5019 capture separately the standard output and error of a command.
5029 capture separately the standard output and error of a command.
5020 After a comment from dang on the mailing lists. This code is
5030 After a comment from dang on the mailing lists. This code is
5021 basically a modified version of commands.getstatusoutput(), from
5031 basically a modified version of commands.getstatusoutput(), from
5022 the standard library.
5032 the standard library.
5023
5033
5024 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5034 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5025 '!!' as a special syntax (shorthand) to access @sx.
5035 '!!' as a special syntax (shorthand) to access @sx.
5026
5036
5027 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5037 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5028 command and return its output as a list split on '\n'.
5038 command and return its output as a list split on '\n'.
5029
5039
5030 2004-03-31 Fernando Perez <fperez@colorado.edu>
5040 2004-03-31 Fernando Perez <fperez@colorado.edu>
5031
5041
5032 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5042 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5033 method to dictionaries used as FakeModule instances if they lack
5043 method to dictionaries used as FakeModule instances if they lack
5034 it. At least pydoc in python2.3 breaks for runtime-defined
5044 it. At least pydoc in python2.3 breaks for runtime-defined
5035 functions without this hack. At some point I need to _really_
5045 functions without this hack. At some point I need to _really_
5036 understand what FakeModule is doing, because it's a gross hack.
5046 understand what FakeModule is doing, because it's a gross hack.
5037 But it solves Arnd's problem for now...
5047 But it solves Arnd's problem for now...
5038
5048
5039 2004-02-27 Fernando Perez <fperez@colorado.edu>
5049 2004-02-27 Fernando Perez <fperez@colorado.edu>
5040
5050
5041 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5051 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5042 mode would behave erratically. Also increased the number of
5052 mode would behave erratically. Also increased the number of
5043 possible logs in rotate mod to 999. Thanks to Rod Holland
5053 possible logs in rotate mod to 999. Thanks to Rod Holland
5044 <rhh@StructureLABS.com> for the report and fixes.
5054 <rhh@StructureLABS.com> for the report and fixes.
5045
5055
5046 2004-02-26 Fernando Perez <fperez@colorado.edu>
5056 2004-02-26 Fernando Perez <fperez@colorado.edu>
5047
5057
5048 * IPython/genutils.py (page): Check that the curses module really
5058 * IPython/genutils.py (page): Check that the curses module really
5049 has the initscr attribute before trying to use it. For some
5059 has the initscr attribute before trying to use it. For some
5050 reason, the Solaris curses module is missing this. I think this
5060 reason, the Solaris curses module is missing this. I think this
5051 should be considered a Solaris python bug, but I'm not sure.
5061 should be considered a Solaris python bug, but I'm not sure.
5052
5062
5053 2004-01-17 Fernando Perez <fperez@colorado.edu>
5063 2004-01-17 Fernando Perez <fperez@colorado.edu>
5054
5064
5055 * IPython/genutils.py (Stream.__init__): Changes to try to make
5065 * IPython/genutils.py (Stream.__init__): Changes to try to make
5056 ipython robust against stdin/out/err being closed by the user.
5066 ipython robust against stdin/out/err being closed by the user.
5057 This is 'user error' (and blocks a normal python session, at least
5067 This is 'user error' (and blocks a normal python session, at least
5058 the stdout case). However, Ipython should be able to survive such
5068 the stdout case). However, Ipython should be able to survive such
5059 instances of abuse as gracefully as possible. To simplify the
5069 instances of abuse as gracefully as possible. To simplify the
5060 coding and maintain compatibility with Gary Bishop's Term
5070 coding and maintain compatibility with Gary Bishop's Term
5061 contributions, I've made use of classmethods for this. I think
5071 contributions, I've made use of classmethods for this. I think
5062 this introduces a dependency on python 2.2.
5072 this introduces a dependency on python 2.2.
5063
5073
5064 2004-01-13 Fernando Perez <fperez@colorado.edu>
5074 2004-01-13 Fernando Perez <fperez@colorado.edu>
5065
5075
5066 * IPython/numutils.py (exp_safe): simplified the code a bit and
5076 * IPython/numutils.py (exp_safe): simplified the code a bit and
5067 removed the need for importing the kinds module altogether.
5077 removed the need for importing the kinds module altogether.
5068
5078
5069 2004-01-06 Fernando Perez <fperez@colorado.edu>
5079 2004-01-06 Fernando Perez <fperez@colorado.edu>
5070
5080
5071 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5081 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5072 a magic function instead, after some community feedback. No
5082 a magic function instead, after some community feedback. No
5073 special syntax will exist for it, but its name is deliberately
5083 special syntax will exist for it, but its name is deliberately
5074 very short.
5084 very short.
5075
5085
5076 2003-12-20 Fernando Perez <fperez@colorado.edu>
5086 2003-12-20 Fernando Perez <fperez@colorado.edu>
5077
5087
5078 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5088 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5079 new functionality, to automagically assign the result of a shell
5089 new functionality, to automagically assign the result of a shell
5080 command to a variable. I'll solicit some community feedback on
5090 command to a variable. I'll solicit some community feedback on
5081 this before making it permanent.
5091 this before making it permanent.
5082
5092
5083 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5093 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5084 requested about callables for which inspect couldn't obtain a
5094 requested about callables for which inspect couldn't obtain a
5085 proper argspec. Thanks to a crash report sent by Etienne
5095 proper argspec. Thanks to a crash report sent by Etienne
5086 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5096 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5087
5097
5088 2003-12-09 Fernando Perez <fperez@colorado.edu>
5098 2003-12-09 Fernando Perez <fperez@colorado.edu>
5089
5099
5090 * IPython/genutils.py (page): patch for the pager to work across
5100 * IPython/genutils.py (page): patch for the pager to work across
5091 various versions of Windows. By Gary Bishop.
5101 various versions of Windows. By Gary Bishop.
5092
5102
5093 2003-12-04 Fernando Perez <fperez@colorado.edu>
5103 2003-12-04 Fernando Perez <fperez@colorado.edu>
5094
5104
5095 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5105 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5096 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5106 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5097 While I tested this and it looks ok, there may still be corner
5107 While I tested this and it looks ok, there may still be corner
5098 cases I've missed.
5108 cases I've missed.
5099
5109
5100 2003-12-01 Fernando Perez <fperez@colorado.edu>
5110 2003-12-01 Fernando Perez <fperez@colorado.edu>
5101
5111
5102 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5112 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5103 where a line like 'p,q=1,2' would fail because the automagic
5113 where a line like 'p,q=1,2' would fail because the automagic
5104 system would be triggered for @p.
5114 system would be triggered for @p.
5105
5115
5106 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5116 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5107 cleanups, code unmodified.
5117 cleanups, code unmodified.
5108
5118
5109 * IPython/genutils.py (Term): added a class for IPython to handle
5119 * IPython/genutils.py (Term): added a class for IPython to handle
5110 output. In most cases it will just be a proxy for stdout/err, but
5120 output. In most cases it will just be a proxy for stdout/err, but
5111 having this allows modifications to be made for some platforms,
5121 having this allows modifications to be made for some platforms,
5112 such as handling color escapes under Windows. All of this code
5122 such as handling color escapes under Windows. All of this code
5113 was contributed by Gary Bishop, with minor modifications by me.
5123 was contributed by Gary Bishop, with minor modifications by me.
5114 The actual changes affect many files.
5124 The actual changes affect many files.
5115
5125
5116 2003-11-30 Fernando Perez <fperez@colorado.edu>
5126 2003-11-30 Fernando Perez <fperez@colorado.edu>
5117
5127
5118 * IPython/iplib.py (file_matches): new completion code, courtesy
5128 * IPython/iplib.py (file_matches): new completion code, courtesy
5119 of Jeff Collins. This enables filename completion again under
5129 of Jeff Collins. This enables filename completion again under
5120 python 2.3, which disabled it at the C level.
5130 python 2.3, which disabled it at the C level.
5121
5131
5122 2003-11-11 Fernando Perez <fperez@colorado.edu>
5132 2003-11-11 Fernando Perez <fperez@colorado.edu>
5123
5133
5124 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5134 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5125 for Numeric.array(map(...)), but often convenient.
5135 for Numeric.array(map(...)), but often convenient.
5126
5136
5127 2003-11-05 Fernando Perez <fperez@colorado.edu>
5137 2003-11-05 Fernando Perez <fperez@colorado.edu>
5128
5138
5129 * IPython/numutils.py (frange): Changed a call from int() to
5139 * IPython/numutils.py (frange): Changed a call from int() to
5130 int(round()) to prevent a problem reported with arange() in the
5140 int(round()) to prevent a problem reported with arange() in the
5131 numpy list.
5141 numpy list.
5132
5142
5133 2003-10-06 Fernando Perez <fperez@colorado.edu>
5143 2003-10-06 Fernando Perez <fperez@colorado.edu>
5134
5144
5135 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5145 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5136 prevent crashes if sys lacks an argv attribute (it happens with
5146 prevent crashes if sys lacks an argv attribute (it happens with
5137 embedded interpreters which build a bare-bones sys module).
5147 embedded interpreters which build a bare-bones sys module).
5138 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5148 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5139
5149
5140 2003-09-24 Fernando Perez <fperez@colorado.edu>
5150 2003-09-24 Fernando Perez <fperez@colorado.edu>
5141
5151
5142 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5152 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5143 to protect against poorly written user objects where __getattr__
5153 to protect against poorly written user objects where __getattr__
5144 raises exceptions other than AttributeError. Thanks to a bug
5154 raises exceptions other than AttributeError. Thanks to a bug
5145 report by Oliver Sander <osander-AT-gmx.de>.
5155 report by Oliver Sander <osander-AT-gmx.de>.
5146
5156
5147 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5157 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5148 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5158 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5149
5159
5150 2003-09-09 Fernando Perez <fperez@colorado.edu>
5160 2003-09-09 Fernando Perez <fperez@colorado.edu>
5151
5161
5152 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5162 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5153 unpacking a list whith a callable as first element would
5163 unpacking a list whith a callable as first element would
5154 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5164 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5155 Collins.
5165 Collins.
5156
5166
5157 2003-08-25 *** Released version 0.5.0
5167 2003-08-25 *** Released version 0.5.0
5158
5168
5159 2003-08-22 Fernando Perez <fperez@colorado.edu>
5169 2003-08-22 Fernando Perez <fperez@colorado.edu>
5160
5170
5161 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5171 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5162 improperly defined user exceptions. Thanks to feedback from Mark
5172 improperly defined user exceptions. Thanks to feedback from Mark
5163 Russell <mrussell-AT-verio.net>.
5173 Russell <mrussell-AT-verio.net>.
5164
5174
5165 2003-08-20 Fernando Perez <fperez@colorado.edu>
5175 2003-08-20 Fernando Perez <fperez@colorado.edu>
5166
5176
5167 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5177 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5168 printing so that it would print multi-line string forms starting
5178 printing so that it would print multi-line string forms starting
5169 with a new line. This way the formatting is better respected for
5179 with a new line. This way the formatting is better respected for
5170 objects which work hard to make nice string forms.
5180 objects which work hard to make nice string forms.
5171
5181
5172 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5182 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5173 autocall would overtake data access for objects with both
5183 autocall would overtake data access for objects with both
5174 __getitem__ and __call__.
5184 __getitem__ and __call__.
5175
5185
5176 2003-08-19 *** Released version 0.5.0-rc1
5186 2003-08-19 *** Released version 0.5.0-rc1
5177
5187
5178 2003-08-19 Fernando Perez <fperez@colorado.edu>
5188 2003-08-19 Fernando Perez <fperez@colorado.edu>
5179
5189
5180 * IPython/deep_reload.py (load_tail): single tiny change here
5190 * IPython/deep_reload.py (load_tail): single tiny change here
5181 seems to fix the long-standing bug of dreload() failing to work
5191 seems to fix the long-standing bug of dreload() failing to work
5182 for dotted names. But this module is pretty tricky, so I may have
5192 for dotted names. But this module is pretty tricky, so I may have
5183 missed some subtlety. Needs more testing!.
5193 missed some subtlety. Needs more testing!.
5184
5194
5185 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5195 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5186 exceptions which have badly implemented __str__ methods.
5196 exceptions which have badly implemented __str__ methods.
5187 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5197 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5188 which I've been getting reports about from Python 2.3 users. I
5198 which I've been getting reports about from Python 2.3 users. I
5189 wish I had a simple test case to reproduce the problem, so I could
5199 wish I had a simple test case to reproduce the problem, so I could
5190 either write a cleaner workaround or file a bug report if
5200 either write a cleaner workaround or file a bug report if
5191 necessary.
5201 necessary.
5192
5202
5193 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5203 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5194 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5204 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5195 a bug report by Tjabo Kloppenburg.
5205 a bug report by Tjabo Kloppenburg.
5196
5206
5197 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5207 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5198 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5208 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5199 seems rather unstable. Thanks to a bug report by Tjabo
5209 seems rather unstable. Thanks to a bug report by Tjabo
5200 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5210 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5201
5211
5202 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5212 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5203 this out soon because of the critical fixes in the inner loop for
5213 this out soon because of the critical fixes in the inner loop for
5204 generators.
5214 generators.
5205
5215
5206 * IPython/Magic.py (Magic.getargspec): removed. This (and
5216 * IPython/Magic.py (Magic.getargspec): removed. This (and
5207 _get_def) have been obsoleted by OInspect for a long time, I
5217 _get_def) have been obsoleted by OInspect for a long time, I
5208 hadn't noticed that they were dead code.
5218 hadn't noticed that they were dead code.
5209 (Magic._ofind): restored _ofind functionality for a few literals
5219 (Magic._ofind): restored _ofind functionality for a few literals
5210 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5220 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5211 for things like "hello".capitalize?, since that would require a
5221 for things like "hello".capitalize?, since that would require a
5212 potentially dangerous eval() again.
5222 potentially dangerous eval() again.
5213
5223
5214 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5224 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5215 logic a bit more to clean up the escapes handling and minimize the
5225 logic a bit more to clean up the escapes handling and minimize the
5216 use of _ofind to only necessary cases. The interactive 'feel' of
5226 use of _ofind to only necessary cases. The interactive 'feel' of
5217 IPython should have improved quite a bit with the changes in
5227 IPython should have improved quite a bit with the changes in
5218 _prefilter and _ofind (besides being far safer than before).
5228 _prefilter and _ofind (besides being far safer than before).
5219
5229
5220 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5230 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5221 obscure, never reported). Edit would fail to find the object to
5231 obscure, never reported). Edit would fail to find the object to
5222 edit under some circumstances.
5232 edit under some circumstances.
5223 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5233 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5224 which were causing double-calling of generators. Those eval calls
5234 which were causing double-calling of generators. Those eval calls
5225 were _very_ dangerous, since code with side effects could be
5235 were _very_ dangerous, since code with side effects could be
5226 triggered. As they say, 'eval is evil'... These were the
5236 triggered. As they say, 'eval is evil'... These were the
5227 nastiest evals in IPython. Besides, _ofind is now far simpler,
5237 nastiest evals in IPython. Besides, _ofind is now far simpler,
5228 and it should also be quite a bit faster. Its use of inspect is
5238 and it should also be quite a bit faster. Its use of inspect is
5229 also safer, so perhaps some of the inspect-related crashes I've
5239 also safer, so perhaps some of the inspect-related crashes I've
5230 seen lately with Python 2.3 might be taken care of. That will
5240 seen lately with Python 2.3 might be taken care of. That will
5231 need more testing.
5241 need more testing.
5232
5242
5233 2003-08-17 Fernando Perez <fperez@colorado.edu>
5243 2003-08-17 Fernando Perez <fperez@colorado.edu>
5234
5244
5235 * IPython/iplib.py (InteractiveShell._prefilter): significant
5245 * IPython/iplib.py (InteractiveShell._prefilter): significant
5236 simplifications to the logic for handling user escapes. Faster
5246 simplifications to the logic for handling user escapes. Faster
5237 and simpler code.
5247 and simpler code.
5238
5248
5239 2003-08-14 Fernando Perez <fperez@colorado.edu>
5249 2003-08-14 Fernando Perez <fperez@colorado.edu>
5240
5250
5241 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5251 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5242 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5252 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5243 but it should be quite a bit faster. And the recursive version
5253 but it should be quite a bit faster. And the recursive version
5244 generated O(log N) intermediate storage for all rank>1 arrays,
5254 generated O(log N) intermediate storage for all rank>1 arrays,
5245 even if they were contiguous.
5255 even if they were contiguous.
5246 (l1norm): Added this function.
5256 (l1norm): Added this function.
5247 (norm): Added this function for arbitrary norms (including
5257 (norm): Added this function for arbitrary norms (including
5248 l-infinity). l1 and l2 are still special cases for convenience
5258 l-infinity). l1 and l2 are still special cases for convenience
5249 and speed.
5259 and speed.
5250
5260
5251 2003-08-03 Fernando Perez <fperez@colorado.edu>
5261 2003-08-03 Fernando Perez <fperez@colorado.edu>
5252
5262
5253 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5263 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5254 exceptions, which now raise PendingDeprecationWarnings in Python
5264 exceptions, which now raise PendingDeprecationWarnings in Python
5255 2.3. There were some in Magic and some in Gnuplot2.
5265 2.3. There were some in Magic and some in Gnuplot2.
5256
5266
5257 2003-06-30 Fernando Perez <fperez@colorado.edu>
5267 2003-06-30 Fernando Perez <fperez@colorado.edu>
5258
5268
5259 * IPython/genutils.py (page): modified to call curses only for
5269 * IPython/genutils.py (page): modified to call curses only for
5260 terminals where TERM=='xterm'. After problems under many other
5270 terminals where TERM=='xterm'. After problems under many other
5261 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5271 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5262
5272
5263 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5273 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5264 would be triggered when readline was absent. This was just an old
5274 would be triggered when readline was absent. This was just an old
5265 debugging statement I'd forgotten to take out.
5275 debugging statement I'd forgotten to take out.
5266
5276
5267 2003-06-20 Fernando Perez <fperez@colorado.edu>
5277 2003-06-20 Fernando Perez <fperez@colorado.edu>
5268
5278
5269 * IPython/genutils.py (clock): modified to return only user time
5279 * IPython/genutils.py (clock): modified to return only user time
5270 (not counting system time), after a discussion on scipy. While
5280 (not counting system time), after a discussion on scipy. While
5271 system time may be a useful quantity occasionally, it may much
5281 system time may be a useful quantity occasionally, it may much
5272 more easily be skewed by occasional swapping or other similar
5282 more easily be skewed by occasional swapping or other similar
5273 activity.
5283 activity.
5274
5284
5275 2003-06-05 Fernando Perez <fperez@colorado.edu>
5285 2003-06-05 Fernando Perez <fperez@colorado.edu>
5276
5286
5277 * IPython/numutils.py (identity): new function, for building
5287 * IPython/numutils.py (identity): new function, for building
5278 arbitrary rank Kronecker deltas (mostly backwards compatible with
5288 arbitrary rank Kronecker deltas (mostly backwards compatible with
5279 Numeric.identity)
5289 Numeric.identity)
5280
5290
5281 2003-06-03 Fernando Perez <fperez@colorado.edu>
5291 2003-06-03 Fernando Perez <fperez@colorado.edu>
5282
5292
5283 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5293 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5284 arguments passed to magics with spaces, to allow trailing '\' to
5294 arguments passed to magics with spaces, to allow trailing '\' to
5285 work normally (mainly for Windows users).
5295 work normally (mainly for Windows users).
5286
5296
5287 2003-05-29 Fernando Perez <fperez@colorado.edu>
5297 2003-05-29 Fernando Perez <fperez@colorado.edu>
5288
5298
5289 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5299 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5290 instead of pydoc.help. This fixes a bizarre behavior where
5300 instead of pydoc.help. This fixes a bizarre behavior where
5291 printing '%s' % locals() would trigger the help system. Now
5301 printing '%s' % locals() would trigger the help system. Now
5292 ipython behaves like normal python does.
5302 ipython behaves like normal python does.
5293
5303
5294 Note that if one does 'from pydoc import help', the bizarre
5304 Note that if one does 'from pydoc import help', the bizarre
5295 behavior returns, but this will also happen in normal python, so
5305 behavior returns, but this will also happen in normal python, so
5296 it's not an ipython bug anymore (it has to do with how pydoc.help
5306 it's not an ipython bug anymore (it has to do with how pydoc.help
5297 is implemented).
5307 is implemented).
5298
5308
5299 2003-05-22 Fernando Perez <fperez@colorado.edu>
5309 2003-05-22 Fernando Perez <fperez@colorado.edu>
5300
5310
5301 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5311 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5302 return [] instead of None when nothing matches, also match to end
5312 return [] instead of None when nothing matches, also match to end
5303 of line. Patch by Gary Bishop.
5313 of line. Patch by Gary Bishop.
5304
5314
5305 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5315 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5306 protection as before, for files passed on the command line. This
5316 protection as before, for files passed on the command line. This
5307 prevents the CrashHandler from kicking in if user files call into
5317 prevents the CrashHandler from kicking in if user files call into
5308 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5318 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5309 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5319 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5310
5320
5311 2003-05-20 *** Released version 0.4.0
5321 2003-05-20 *** Released version 0.4.0
5312
5322
5313 2003-05-20 Fernando Perez <fperez@colorado.edu>
5323 2003-05-20 Fernando Perez <fperez@colorado.edu>
5314
5324
5315 * setup.py: added support for manpages. It's a bit hackish b/c of
5325 * setup.py: added support for manpages. It's a bit hackish b/c of
5316 a bug in the way the bdist_rpm distutils target handles gzipped
5326 a bug in the way the bdist_rpm distutils target handles gzipped
5317 manpages, but it works. After a patch by Jack.
5327 manpages, but it works. After a patch by Jack.
5318
5328
5319 2003-05-19 Fernando Perez <fperez@colorado.edu>
5329 2003-05-19 Fernando Perez <fperez@colorado.edu>
5320
5330
5321 * IPython/numutils.py: added a mockup of the kinds module, since
5331 * IPython/numutils.py: added a mockup of the kinds module, since
5322 it was recently removed from Numeric. This way, numutils will
5332 it was recently removed from Numeric. This way, numutils will
5323 work for all users even if they are missing kinds.
5333 work for all users even if they are missing kinds.
5324
5334
5325 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5335 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5326 failure, which can occur with SWIG-wrapped extensions. After a
5336 failure, which can occur with SWIG-wrapped extensions. After a
5327 crash report from Prabhu.
5337 crash report from Prabhu.
5328
5338
5329 2003-05-16 Fernando Perez <fperez@colorado.edu>
5339 2003-05-16 Fernando Perez <fperez@colorado.edu>
5330
5340
5331 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5341 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5332 protect ipython from user code which may call directly
5342 protect ipython from user code which may call directly
5333 sys.excepthook (this looks like an ipython crash to the user, even
5343 sys.excepthook (this looks like an ipython crash to the user, even
5334 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5344 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5335 This is especially important to help users of WxWindows, but may
5345 This is especially important to help users of WxWindows, but may
5336 also be useful in other cases.
5346 also be useful in other cases.
5337
5347
5338 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5348 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5339 an optional tb_offset to be specified, and to preserve exception
5349 an optional tb_offset to be specified, and to preserve exception
5340 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5350 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5341
5351
5342 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5352 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5343
5353
5344 2003-05-15 Fernando Perez <fperez@colorado.edu>
5354 2003-05-15 Fernando Perez <fperez@colorado.edu>
5345
5355
5346 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5356 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5347 installing for a new user under Windows.
5357 installing for a new user under Windows.
5348
5358
5349 2003-05-12 Fernando Perez <fperez@colorado.edu>
5359 2003-05-12 Fernando Perez <fperez@colorado.edu>
5350
5360
5351 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5361 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5352 handler for Emacs comint-based lines. Currently it doesn't do
5362 handler for Emacs comint-based lines. Currently it doesn't do
5353 much (but importantly, it doesn't update the history cache). In
5363 much (but importantly, it doesn't update the history cache). In
5354 the future it may be expanded if Alex needs more functionality
5364 the future it may be expanded if Alex needs more functionality
5355 there.
5365 there.
5356
5366
5357 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5367 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5358 info to crash reports.
5368 info to crash reports.
5359
5369
5360 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5370 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5361 just like Python's -c. Also fixed crash with invalid -color
5371 just like Python's -c. Also fixed crash with invalid -color
5362 option value at startup. Thanks to Will French
5372 option value at startup. Thanks to Will French
5363 <wfrench-AT-bestweb.net> for the bug report.
5373 <wfrench-AT-bestweb.net> for the bug report.
5364
5374
5365 2003-05-09 Fernando Perez <fperez@colorado.edu>
5375 2003-05-09 Fernando Perez <fperez@colorado.edu>
5366
5376
5367 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5377 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5368 to EvalDict (it's a mapping, after all) and simplified its code
5378 to EvalDict (it's a mapping, after all) and simplified its code
5369 quite a bit, after a nice discussion on c.l.py where Gustavo
5379 quite a bit, after a nice discussion on c.l.py where Gustavo
5370 Córdova <gcordova-AT-sismex.com> suggested the new version.
5380 Córdova <gcordova-AT-sismex.com> suggested the new version.
5371
5381
5372 2003-04-30 Fernando Perez <fperez@colorado.edu>
5382 2003-04-30 Fernando Perez <fperez@colorado.edu>
5373
5383
5374 * IPython/genutils.py (timings_out): modified it to reduce its
5384 * IPython/genutils.py (timings_out): modified it to reduce its
5375 overhead in the common reps==1 case.
5385 overhead in the common reps==1 case.
5376
5386
5377 2003-04-29 Fernando Perez <fperez@colorado.edu>
5387 2003-04-29 Fernando Perez <fperez@colorado.edu>
5378
5388
5379 * IPython/genutils.py (timings_out): Modified to use the resource
5389 * IPython/genutils.py (timings_out): Modified to use the resource
5380 module, which avoids the wraparound problems of time.clock().
5390 module, which avoids the wraparound problems of time.clock().
5381
5391
5382 2003-04-17 *** Released version 0.2.15pre4
5392 2003-04-17 *** Released version 0.2.15pre4
5383
5393
5384 2003-04-17 Fernando Perez <fperez@colorado.edu>
5394 2003-04-17 Fernando Perez <fperez@colorado.edu>
5385
5395
5386 * setup.py (scriptfiles): Split windows-specific stuff over to a
5396 * setup.py (scriptfiles): Split windows-specific stuff over to a
5387 separate file, in an attempt to have a Windows GUI installer.
5397 separate file, in an attempt to have a Windows GUI installer.
5388 That didn't work, but part of the groundwork is done.
5398 That didn't work, but part of the groundwork is done.
5389
5399
5390 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5400 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5391 indent/unindent with 4 spaces. Particularly useful in combination
5401 indent/unindent with 4 spaces. Particularly useful in combination
5392 with the new auto-indent option.
5402 with the new auto-indent option.
5393
5403
5394 2003-04-16 Fernando Perez <fperez@colorado.edu>
5404 2003-04-16 Fernando Perez <fperez@colorado.edu>
5395
5405
5396 * IPython/Magic.py: various replacements of self.rc for
5406 * IPython/Magic.py: various replacements of self.rc for
5397 self.shell.rc. A lot more remains to be done to fully disentangle
5407 self.shell.rc. A lot more remains to be done to fully disentangle
5398 this class from the main Shell class.
5408 this class from the main Shell class.
5399
5409
5400 * IPython/GnuplotRuntime.py: added checks for mouse support so
5410 * IPython/GnuplotRuntime.py: added checks for mouse support so
5401 that we don't try to enable it if the current gnuplot doesn't
5411 that we don't try to enable it if the current gnuplot doesn't
5402 really support it. Also added checks so that we don't try to
5412 really support it. Also added checks so that we don't try to
5403 enable persist under Windows (where Gnuplot doesn't recognize the
5413 enable persist under Windows (where Gnuplot doesn't recognize the
5404 option).
5414 option).
5405
5415
5406 * IPython/iplib.py (InteractiveShell.interact): Added optional
5416 * IPython/iplib.py (InteractiveShell.interact): Added optional
5407 auto-indenting code, after a patch by King C. Shu
5417 auto-indenting code, after a patch by King C. Shu
5408 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5418 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5409 get along well with pasting indented code. If I ever figure out
5419 get along well with pasting indented code. If I ever figure out
5410 how to make that part go well, it will become on by default.
5420 how to make that part go well, it will become on by default.
5411
5421
5412 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5422 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5413 crash ipython if there was an unmatched '%' in the user's prompt
5423 crash ipython if there was an unmatched '%' in the user's prompt
5414 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5424 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5415
5425
5416 * IPython/iplib.py (InteractiveShell.interact): removed the
5426 * IPython/iplib.py (InteractiveShell.interact): removed the
5417 ability to ask the user whether he wants to crash or not at the
5427 ability to ask the user whether he wants to crash or not at the
5418 'last line' exception handler. Calling functions at that point
5428 'last line' exception handler. Calling functions at that point
5419 changes the stack, and the error reports would have incorrect
5429 changes the stack, and the error reports would have incorrect
5420 tracebacks.
5430 tracebacks.
5421
5431
5422 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5432 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5423 pass through a peger a pretty-printed form of any object. After a
5433 pass through a peger a pretty-printed form of any object. After a
5424 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5434 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5425
5435
5426 2003-04-14 Fernando Perez <fperez@colorado.edu>
5436 2003-04-14 Fernando Perez <fperez@colorado.edu>
5427
5437
5428 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5438 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5429 all files in ~ would be modified at first install (instead of
5439 all files in ~ would be modified at first install (instead of
5430 ~/.ipython). This could be potentially disastrous, as the
5440 ~/.ipython). This could be potentially disastrous, as the
5431 modification (make line-endings native) could damage binary files.
5441 modification (make line-endings native) could damage binary files.
5432
5442
5433 2003-04-10 Fernando Perez <fperez@colorado.edu>
5443 2003-04-10 Fernando Perez <fperez@colorado.edu>
5434
5444
5435 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5445 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5436 handle only lines which are invalid python. This now means that
5446 handle only lines which are invalid python. This now means that
5437 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5447 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5438 for the bug report.
5448 for the bug report.
5439
5449
5440 2003-04-01 Fernando Perez <fperez@colorado.edu>
5450 2003-04-01 Fernando Perez <fperez@colorado.edu>
5441
5451
5442 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5452 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5443 where failing to set sys.last_traceback would crash pdb.pm().
5453 where failing to set sys.last_traceback would crash pdb.pm().
5444 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5454 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5445 report.
5455 report.
5446
5456
5447 2003-03-25 Fernando Perez <fperez@colorado.edu>
5457 2003-03-25 Fernando Perez <fperez@colorado.edu>
5448
5458
5449 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5459 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5450 before printing it (it had a lot of spurious blank lines at the
5460 before printing it (it had a lot of spurious blank lines at the
5451 end).
5461 end).
5452
5462
5453 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5463 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5454 output would be sent 21 times! Obviously people don't use this
5464 output would be sent 21 times! Obviously people don't use this
5455 too often, or I would have heard about it.
5465 too often, or I would have heard about it.
5456
5466
5457 2003-03-24 Fernando Perez <fperez@colorado.edu>
5467 2003-03-24 Fernando Perez <fperez@colorado.edu>
5458
5468
5459 * setup.py (scriptfiles): renamed the data_files parameter from
5469 * setup.py (scriptfiles): renamed the data_files parameter from
5460 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5470 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5461 for the patch.
5471 for the patch.
5462
5472
5463 2003-03-20 Fernando Perez <fperez@colorado.edu>
5473 2003-03-20 Fernando Perez <fperez@colorado.edu>
5464
5474
5465 * IPython/genutils.py (error): added error() and fatal()
5475 * IPython/genutils.py (error): added error() and fatal()
5466 functions.
5476 functions.
5467
5477
5468 2003-03-18 *** Released version 0.2.15pre3
5478 2003-03-18 *** Released version 0.2.15pre3
5469
5479
5470 2003-03-18 Fernando Perez <fperez@colorado.edu>
5480 2003-03-18 Fernando Perez <fperez@colorado.edu>
5471
5481
5472 * setupext/install_data_ext.py
5482 * setupext/install_data_ext.py
5473 (install_data_ext.initialize_options): Class contributed by Jack
5483 (install_data_ext.initialize_options): Class contributed by Jack
5474 Moffit for fixing the old distutils hack. He is sending this to
5484 Moffit for fixing the old distutils hack. He is sending this to
5475 the distutils folks so in the future we may not need it as a
5485 the distutils folks so in the future we may not need it as a
5476 private fix.
5486 private fix.
5477
5487
5478 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5488 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5479 changes for Debian packaging. See his patch for full details.
5489 changes for Debian packaging. See his patch for full details.
5480 The old distutils hack of making the ipythonrc* files carry a
5490 The old distutils hack of making the ipythonrc* files carry a
5481 bogus .py extension is gone, at last. Examples were moved to a
5491 bogus .py extension is gone, at last. Examples were moved to a
5482 separate subdir under doc/, and the separate executable scripts
5492 separate subdir under doc/, and the separate executable scripts
5483 now live in their own directory. Overall a great cleanup. The
5493 now live in their own directory. Overall a great cleanup. The
5484 manual was updated to use the new files, and setup.py has been
5494 manual was updated to use the new files, and setup.py has been
5485 fixed for this setup.
5495 fixed for this setup.
5486
5496
5487 * IPython/PyColorize.py (Parser.usage): made non-executable and
5497 * IPython/PyColorize.py (Parser.usage): made non-executable and
5488 created a pycolor wrapper around it to be included as a script.
5498 created a pycolor wrapper around it to be included as a script.
5489
5499
5490 2003-03-12 *** Released version 0.2.15pre2
5500 2003-03-12 *** Released version 0.2.15pre2
5491
5501
5492 2003-03-12 Fernando Perez <fperez@colorado.edu>
5502 2003-03-12 Fernando Perez <fperez@colorado.edu>
5493
5503
5494 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5504 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5495 long-standing problem with garbage characters in some terminals.
5505 long-standing problem with garbage characters in some terminals.
5496 The issue was really that the \001 and \002 escapes must _only_ be
5506 The issue was really that the \001 and \002 escapes must _only_ be
5497 passed to input prompts (which call readline), but _never_ to
5507 passed to input prompts (which call readline), but _never_ to
5498 normal text to be printed on screen. I changed ColorANSI to have
5508 normal text to be printed on screen. I changed ColorANSI to have
5499 two classes: TermColors and InputTermColors, each with the
5509 two classes: TermColors and InputTermColors, each with the
5500 appropriate escapes for input prompts or normal text. The code in
5510 appropriate escapes for input prompts or normal text. The code in
5501 Prompts.py got slightly more complicated, but this very old and
5511 Prompts.py got slightly more complicated, but this very old and
5502 annoying bug is finally fixed.
5512 annoying bug is finally fixed.
5503
5513
5504 All the credit for nailing down the real origin of this problem
5514 All the credit for nailing down the real origin of this problem
5505 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5515 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5506 *Many* thanks to him for spending quite a bit of effort on this.
5516 *Many* thanks to him for spending quite a bit of effort on this.
5507
5517
5508 2003-03-05 *** Released version 0.2.15pre1
5518 2003-03-05 *** Released version 0.2.15pre1
5509
5519
5510 2003-03-03 Fernando Perez <fperez@colorado.edu>
5520 2003-03-03 Fernando Perez <fperez@colorado.edu>
5511
5521
5512 * IPython/FakeModule.py: Moved the former _FakeModule to a
5522 * IPython/FakeModule.py: Moved the former _FakeModule to a
5513 separate file, because it's also needed by Magic (to fix a similar
5523 separate file, because it's also needed by Magic (to fix a similar
5514 pickle-related issue in @run).
5524 pickle-related issue in @run).
5515
5525
5516 2003-03-02 Fernando Perez <fperez@colorado.edu>
5526 2003-03-02 Fernando Perez <fperez@colorado.edu>
5517
5527
5518 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5528 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5519 the autocall option at runtime.
5529 the autocall option at runtime.
5520 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5530 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5521 across Magic.py to start separating Magic from InteractiveShell.
5531 across Magic.py to start separating Magic from InteractiveShell.
5522 (Magic._ofind): Fixed to return proper namespace for dotted
5532 (Magic._ofind): Fixed to return proper namespace for dotted
5523 names. Before, a dotted name would always return 'not currently
5533 names. Before, a dotted name would always return 'not currently
5524 defined', because it would find the 'parent'. s.x would be found,
5534 defined', because it would find the 'parent'. s.x would be found,
5525 but since 'x' isn't defined by itself, it would get confused.
5535 but since 'x' isn't defined by itself, it would get confused.
5526 (Magic.magic_run): Fixed pickling problems reported by Ralf
5536 (Magic.magic_run): Fixed pickling problems reported by Ralf
5527 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5537 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5528 that I'd used when Mike Heeter reported similar issues at the
5538 that I'd used when Mike Heeter reported similar issues at the
5529 top-level, but now for @run. It boils down to injecting the
5539 top-level, but now for @run. It boils down to injecting the
5530 namespace where code is being executed with something that looks
5540 namespace where code is being executed with something that looks
5531 enough like a module to fool pickle.dump(). Since a pickle stores
5541 enough like a module to fool pickle.dump(). Since a pickle stores
5532 a named reference to the importing module, we need this for
5542 a named reference to the importing module, we need this for
5533 pickles to save something sensible.
5543 pickles to save something sensible.
5534
5544
5535 * IPython/ipmaker.py (make_IPython): added an autocall option.
5545 * IPython/ipmaker.py (make_IPython): added an autocall option.
5536
5546
5537 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5547 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5538 the auto-eval code. Now autocalling is an option, and the code is
5548 the auto-eval code. Now autocalling is an option, and the code is
5539 also vastly safer. There is no more eval() involved at all.
5549 also vastly safer. There is no more eval() involved at all.
5540
5550
5541 2003-03-01 Fernando Perez <fperez@colorado.edu>
5551 2003-03-01 Fernando Perez <fperez@colorado.edu>
5542
5552
5543 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5553 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5544 dict with named keys instead of a tuple.
5554 dict with named keys instead of a tuple.
5545
5555
5546 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5556 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5547
5557
5548 * setup.py (make_shortcut): Fixed message about directories
5558 * setup.py (make_shortcut): Fixed message about directories
5549 created during Windows installation (the directories were ok, just
5559 created during Windows installation (the directories were ok, just
5550 the printed message was misleading). Thanks to Chris Liechti
5560 the printed message was misleading). Thanks to Chris Liechti
5551 <cliechti-AT-gmx.net> for the heads up.
5561 <cliechti-AT-gmx.net> for the heads up.
5552
5562
5553 2003-02-21 Fernando Perez <fperez@colorado.edu>
5563 2003-02-21 Fernando Perez <fperez@colorado.edu>
5554
5564
5555 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5565 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5556 of ValueError exception when checking for auto-execution. This
5566 of ValueError exception when checking for auto-execution. This
5557 one is raised by things like Numeric arrays arr.flat when the
5567 one is raised by things like Numeric arrays arr.flat when the
5558 array is non-contiguous.
5568 array is non-contiguous.
5559
5569
5560 2003-01-31 Fernando Perez <fperez@colorado.edu>
5570 2003-01-31 Fernando Perez <fperez@colorado.edu>
5561
5571
5562 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5572 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5563 not return any value at all (even though the command would get
5573 not return any value at all (even though the command would get
5564 executed).
5574 executed).
5565 (xsys): Flush stdout right after printing the command to ensure
5575 (xsys): Flush stdout right after printing the command to ensure
5566 proper ordering of commands and command output in the total
5576 proper ordering of commands and command output in the total
5567 output.
5577 output.
5568 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5578 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5569 system/getoutput as defaults. The old ones are kept for
5579 system/getoutput as defaults. The old ones are kept for
5570 compatibility reasons, so no code which uses this library needs
5580 compatibility reasons, so no code which uses this library needs
5571 changing.
5581 changing.
5572
5582
5573 2003-01-27 *** Released version 0.2.14
5583 2003-01-27 *** Released version 0.2.14
5574
5584
5575 2003-01-25 Fernando Perez <fperez@colorado.edu>
5585 2003-01-25 Fernando Perez <fperez@colorado.edu>
5576
5586
5577 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5587 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5578 functions defined in previous edit sessions could not be re-edited
5588 functions defined in previous edit sessions could not be re-edited
5579 (because the temp files were immediately removed). Now temp files
5589 (because the temp files were immediately removed). Now temp files
5580 are removed only at IPython's exit.
5590 are removed only at IPython's exit.
5581 (Magic.magic_run): Improved @run to perform shell-like expansions
5591 (Magic.magic_run): Improved @run to perform shell-like expansions
5582 on its arguments (~users and $VARS). With this, @run becomes more
5592 on its arguments (~users and $VARS). With this, @run becomes more
5583 like a normal command-line.
5593 like a normal command-line.
5584
5594
5585 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5595 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5586 bugs related to embedding and cleaned up that code. A fairly
5596 bugs related to embedding and cleaned up that code. A fairly
5587 important one was the impossibility to access the global namespace
5597 important one was the impossibility to access the global namespace
5588 through the embedded IPython (only local variables were visible).
5598 through the embedded IPython (only local variables were visible).
5589
5599
5590 2003-01-14 Fernando Perez <fperez@colorado.edu>
5600 2003-01-14 Fernando Perez <fperez@colorado.edu>
5591
5601
5592 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5602 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5593 auto-calling to be a bit more conservative. Now it doesn't get
5603 auto-calling to be a bit more conservative. Now it doesn't get
5594 triggered if any of '!=()<>' are in the rest of the input line, to
5604 triggered if any of '!=()<>' are in the rest of the input line, to
5595 allow comparing callables. Thanks to Alex for the heads up.
5605 allow comparing callables. Thanks to Alex for the heads up.
5596
5606
5597 2003-01-07 Fernando Perez <fperez@colorado.edu>
5607 2003-01-07 Fernando Perez <fperez@colorado.edu>
5598
5608
5599 * IPython/genutils.py (page): fixed estimation of the number of
5609 * IPython/genutils.py (page): fixed estimation of the number of
5600 lines in a string to be paged to simply count newlines. This
5610 lines in a string to be paged to simply count newlines. This
5601 prevents over-guessing due to embedded escape sequences. A better
5611 prevents over-guessing due to embedded escape sequences. A better
5602 long-term solution would involve stripping out the control chars
5612 long-term solution would involve stripping out the control chars
5603 for the count, but it's potentially so expensive I just don't
5613 for the count, but it's potentially so expensive I just don't
5604 think it's worth doing.
5614 think it's worth doing.
5605
5615
5606 2002-12-19 *** Released version 0.2.14pre50
5616 2002-12-19 *** Released version 0.2.14pre50
5607
5617
5608 2002-12-19 Fernando Perez <fperez@colorado.edu>
5618 2002-12-19 Fernando Perez <fperez@colorado.edu>
5609
5619
5610 * tools/release (version): Changed release scripts to inform
5620 * tools/release (version): Changed release scripts to inform
5611 Andrea and build a NEWS file with a list of recent changes.
5621 Andrea and build a NEWS file with a list of recent changes.
5612
5622
5613 * IPython/ColorANSI.py (__all__): changed terminal detection
5623 * IPython/ColorANSI.py (__all__): changed terminal detection
5614 code. Seems to work better for xterms without breaking
5624 code. Seems to work better for xterms without breaking
5615 konsole. Will need more testing to determine if WinXP and Mac OSX
5625 konsole. Will need more testing to determine if WinXP and Mac OSX
5616 also work ok.
5626 also work ok.
5617
5627
5618 2002-12-18 *** Released version 0.2.14pre49
5628 2002-12-18 *** Released version 0.2.14pre49
5619
5629
5620 2002-12-18 Fernando Perez <fperez@colorado.edu>
5630 2002-12-18 Fernando Perez <fperez@colorado.edu>
5621
5631
5622 * Docs: added new info about Mac OSX, from Andrea.
5632 * Docs: added new info about Mac OSX, from Andrea.
5623
5633
5624 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5634 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5625 allow direct plotting of python strings whose format is the same
5635 allow direct plotting of python strings whose format is the same
5626 of gnuplot data files.
5636 of gnuplot data files.
5627
5637
5628 2002-12-16 Fernando Perez <fperez@colorado.edu>
5638 2002-12-16 Fernando Perez <fperez@colorado.edu>
5629
5639
5630 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5640 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5631 value of exit question to be acknowledged.
5641 value of exit question to be acknowledged.
5632
5642
5633 2002-12-03 Fernando Perez <fperez@colorado.edu>
5643 2002-12-03 Fernando Perez <fperez@colorado.edu>
5634
5644
5635 * IPython/ipmaker.py: removed generators, which had been added
5645 * IPython/ipmaker.py: removed generators, which had been added
5636 by mistake in an earlier debugging run. This was causing trouble
5646 by mistake in an earlier debugging run. This was causing trouble
5637 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5647 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5638 for pointing this out.
5648 for pointing this out.
5639
5649
5640 2002-11-17 Fernando Perez <fperez@colorado.edu>
5650 2002-11-17 Fernando Perez <fperez@colorado.edu>
5641
5651
5642 * Manual: updated the Gnuplot section.
5652 * Manual: updated the Gnuplot section.
5643
5653
5644 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5654 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5645 a much better split of what goes in Runtime and what goes in
5655 a much better split of what goes in Runtime and what goes in
5646 Interactive.
5656 Interactive.
5647
5657
5648 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5658 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5649 being imported from iplib.
5659 being imported from iplib.
5650
5660
5651 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5661 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5652 for command-passing. Now the global Gnuplot instance is called
5662 for command-passing. Now the global Gnuplot instance is called
5653 'gp' instead of 'g', which was really a far too fragile and
5663 'gp' instead of 'g', which was really a far too fragile and
5654 common name.
5664 common name.
5655
5665
5656 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5666 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5657 bounding boxes generated by Gnuplot for square plots.
5667 bounding boxes generated by Gnuplot for square plots.
5658
5668
5659 * IPython/genutils.py (popkey): new function added. I should
5669 * IPython/genutils.py (popkey): new function added. I should
5660 suggest this on c.l.py as a dict method, it seems useful.
5670 suggest this on c.l.py as a dict method, it seems useful.
5661
5671
5662 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5672 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5663 to transparently handle PostScript generation. MUCH better than
5673 to transparently handle PostScript generation. MUCH better than
5664 the previous plot_eps/replot_eps (which I removed now). The code
5674 the previous plot_eps/replot_eps (which I removed now). The code
5665 is also fairly clean and well documented now (including
5675 is also fairly clean and well documented now (including
5666 docstrings).
5676 docstrings).
5667
5677
5668 2002-11-13 Fernando Perez <fperez@colorado.edu>
5678 2002-11-13 Fernando Perez <fperez@colorado.edu>
5669
5679
5670 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5680 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5671 (inconsistent with options).
5681 (inconsistent with options).
5672
5682
5673 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5683 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5674 manually disabled, I don't know why. Fixed it.
5684 manually disabled, I don't know why. Fixed it.
5675 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5685 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5676 eps output.
5686 eps output.
5677
5687
5678 2002-11-12 Fernando Perez <fperez@colorado.edu>
5688 2002-11-12 Fernando Perez <fperez@colorado.edu>
5679
5689
5680 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5690 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5681 don't propagate up to caller. Fixes crash reported by François
5691 don't propagate up to caller. Fixes crash reported by François
5682 Pinard.
5692 Pinard.
5683
5693
5684 2002-11-09 Fernando Perez <fperez@colorado.edu>
5694 2002-11-09 Fernando Perez <fperez@colorado.edu>
5685
5695
5686 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5696 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5687 history file for new users.
5697 history file for new users.
5688 (make_IPython): fixed bug where initial install would leave the
5698 (make_IPython): fixed bug where initial install would leave the
5689 user running in the .ipython dir.
5699 user running in the .ipython dir.
5690 (make_IPython): fixed bug where config dir .ipython would be
5700 (make_IPython): fixed bug where config dir .ipython would be
5691 created regardless of the given -ipythondir option. Thanks to Cory
5701 created regardless of the given -ipythondir option. Thanks to Cory
5692 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5702 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5693
5703
5694 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5704 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5695 type confirmations. Will need to use it in all of IPython's code
5705 type confirmations. Will need to use it in all of IPython's code
5696 consistently.
5706 consistently.
5697
5707
5698 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5708 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5699 context to print 31 lines instead of the default 5. This will make
5709 context to print 31 lines instead of the default 5. This will make
5700 the crash reports extremely detailed in case the problem is in
5710 the crash reports extremely detailed in case the problem is in
5701 libraries I don't have access to.
5711 libraries I don't have access to.
5702
5712
5703 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5713 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5704 line of defense' code to still crash, but giving users fair
5714 line of defense' code to still crash, but giving users fair
5705 warning. I don't want internal errors to go unreported: if there's
5715 warning. I don't want internal errors to go unreported: if there's
5706 an internal problem, IPython should crash and generate a full
5716 an internal problem, IPython should crash and generate a full
5707 report.
5717 report.
5708
5718
5709 2002-11-08 Fernando Perez <fperez@colorado.edu>
5719 2002-11-08 Fernando Perez <fperez@colorado.edu>
5710
5720
5711 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5721 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5712 otherwise uncaught exceptions which can appear if people set
5722 otherwise uncaught exceptions which can appear if people set
5713 sys.stdout to something badly broken. Thanks to a crash report
5723 sys.stdout to something badly broken. Thanks to a crash report
5714 from henni-AT-mail.brainbot.com.
5724 from henni-AT-mail.brainbot.com.
5715
5725
5716 2002-11-04 Fernando Perez <fperez@colorado.edu>
5726 2002-11-04 Fernando Perez <fperez@colorado.edu>
5717
5727
5718 * IPython/iplib.py (InteractiveShell.interact): added
5728 * IPython/iplib.py (InteractiveShell.interact): added
5719 __IPYTHON__active to the builtins. It's a flag which goes on when
5729 __IPYTHON__active to the builtins. It's a flag which goes on when
5720 the interaction starts and goes off again when it stops. This
5730 the interaction starts and goes off again when it stops. This
5721 allows embedding code to detect being inside IPython. Before this
5731 allows embedding code to detect being inside IPython. Before this
5722 was done via __IPYTHON__, but that only shows that an IPython
5732 was done via __IPYTHON__, but that only shows that an IPython
5723 instance has been created.
5733 instance has been created.
5724
5734
5725 * IPython/Magic.py (Magic.magic_env): I realized that in a
5735 * IPython/Magic.py (Magic.magic_env): I realized that in a
5726 UserDict, instance.data holds the data as a normal dict. So I
5736 UserDict, instance.data holds the data as a normal dict. So I
5727 modified @env to return os.environ.data instead of rebuilding a
5737 modified @env to return os.environ.data instead of rebuilding a
5728 dict by hand.
5738 dict by hand.
5729
5739
5730 2002-11-02 Fernando Perez <fperez@colorado.edu>
5740 2002-11-02 Fernando Perez <fperez@colorado.edu>
5731
5741
5732 * IPython/genutils.py (warn): changed so that level 1 prints no
5742 * IPython/genutils.py (warn): changed so that level 1 prints no
5733 header. Level 2 is now the default (with 'WARNING' header, as
5743 header. Level 2 is now the default (with 'WARNING' header, as
5734 before). I think I tracked all places where changes were needed in
5744 before). I think I tracked all places where changes were needed in
5735 IPython, but outside code using the old level numbering may have
5745 IPython, but outside code using the old level numbering may have
5736 broken.
5746 broken.
5737
5747
5738 * IPython/iplib.py (InteractiveShell.runcode): added this to
5748 * IPython/iplib.py (InteractiveShell.runcode): added this to
5739 handle the tracebacks in SystemExit traps correctly. The previous
5749 handle the tracebacks in SystemExit traps correctly. The previous
5740 code (through interact) was printing more of the stack than
5750 code (through interact) was printing more of the stack than
5741 necessary, showing IPython internal code to the user.
5751 necessary, showing IPython internal code to the user.
5742
5752
5743 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5753 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5744 default. Now that the default at the confirmation prompt is yes,
5754 default. Now that the default at the confirmation prompt is yes,
5745 it's not so intrusive. François' argument that ipython sessions
5755 it's not so intrusive. François' argument that ipython sessions
5746 tend to be complex enough not to lose them from an accidental C-d,
5756 tend to be complex enough not to lose them from an accidental C-d,
5747 is a valid one.
5757 is a valid one.
5748
5758
5749 * IPython/iplib.py (InteractiveShell.interact): added a
5759 * IPython/iplib.py (InteractiveShell.interact): added a
5750 showtraceback() call to the SystemExit trap, and modified the exit
5760 showtraceback() call to the SystemExit trap, and modified the exit
5751 confirmation to have yes as the default.
5761 confirmation to have yes as the default.
5752
5762
5753 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5763 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5754 this file. It's been gone from the code for a long time, this was
5764 this file. It's been gone from the code for a long time, this was
5755 simply leftover junk.
5765 simply leftover junk.
5756
5766
5757 2002-11-01 Fernando Perez <fperez@colorado.edu>
5767 2002-11-01 Fernando Perez <fperez@colorado.edu>
5758
5768
5759 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5769 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5760 added. If set, IPython now traps EOF and asks for
5770 added. If set, IPython now traps EOF and asks for
5761 confirmation. After a request by François Pinard.
5771 confirmation. After a request by François Pinard.
5762
5772
5763 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5773 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5764 of @abort, and with a new (better) mechanism for handling the
5774 of @abort, and with a new (better) mechanism for handling the
5765 exceptions.
5775 exceptions.
5766
5776
5767 2002-10-27 Fernando Perez <fperez@colorado.edu>
5777 2002-10-27 Fernando Perez <fperez@colorado.edu>
5768
5778
5769 * IPython/usage.py (__doc__): updated the --help information and
5779 * IPython/usage.py (__doc__): updated the --help information and
5770 the ipythonrc file to indicate that -log generates
5780 the ipythonrc file to indicate that -log generates
5771 ./ipython.log. Also fixed the corresponding info in @logstart.
5781 ./ipython.log. Also fixed the corresponding info in @logstart.
5772 This and several other fixes in the manuals thanks to reports by
5782 This and several other fixes in the manuals thanks to reports by
5773 François Pinard <pinard-AT-iro.umontreal.ca>.
5783 François Pinard <pinard-AT-iro.umontreal.ca>.
5774
5784
5775 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5785 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5776 refer to @logstart (instead of @log, which doesn't exist).
5786 refer to @logstart (instead of @log, which doesn't exist).
5777
5787
5778 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5788 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5779 AttributeError crash. Thanks to Christopher Armstrong
5789 AttributeError crash. Thanks to Christopher Armstrong
5780 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5790 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5781 introduced recently (in 0.2.14pre37) with the fix to the eval
5791 introduced recently (in 0.2.14pre37) with the fix to the eval
5782 problem mentioned below.
5792 problem mentioned below.
5783
5793
5784 2002-10-17 Fernando Perez <fperez@colorado.edu>
5794 2002-10-17 Fernando Perez <fperez@colorado.edu>
5785
5795
5786 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5796 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5787 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5797 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5788
5798
5789 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5799 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5790 this function to fix a problem reported by Alex Schmolck. He saw
5800 this function to fix a problem reported by Alex Schmolck. He saw
5791 it with list comprehensions and generators, which were getting
5801 it with list comprehensions and generators, which were getting
5792 called twice. The real problem was an 'eval' call in testing for
5802 called twice. The real problem was an 'eval' call in testing for
5793 automagic which was evaluating the input line silently.
5803 automagic which was evaluating the input line silently.
5794
5804
5795 This is a potentially very nasty bug, if the input has side
5805 This is a potentially very nasty bug, if the input has side
5796 effects which must not be repeated. The code is much cleaner now,
5806 effects which must not be repeated. The code is much cleaner now,
5797 without any blanket 'except' left and with a regexp test for
5807 without any blanket 'except' left and with a regexp test for
5798 actual function names.
5808 actual function names.
5799
5809
5800 But an eval remains, which I'm not fully comfortable with. I just
5810 But an eval remains, which I'm not fully comfortable with. I just
5801 don't know how to find out if an expression could be a callable in
5811 don't know how to find out if an expression could be a callable in
5802 the user's namespace without doing an eval on the string. However
5812 the user's namespace without doing an eval on the string. However
5803 that string is now much more strictly checked so that no code
5813 that string is now much more strictly checked so that no code
5804 slips by, so the eval should only happen for things that can
5814 slips by, so the eval should only happen for things that can
5805 really be only function/method names.
5815 really be only function/method names.
5806
5816
5807 2002-10-15 Fernando Perez <fperez@colorado.edu>
5817 2002-10-15 Fernando Perez <fperez@colorado.edu>
5808
5818
5809 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5819 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5810 OSX information to main manual, removed README_Mac_OSX file from
5820 OSX information to main manual, removed README_Mac_OSX file from
5811 distribution. Also updated credits for recent additions.
5821 distribution. Also updated credits for recent additions.
5812
5822
5813 2002-10-10 Fernando Perez <fperez@colorado.edu>
5823 2002-10-10 Fernando Perez <fperez@colorado.edu>
5814
5824
5815 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5825 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5816 terminal-related issues. Many thanks to Andrea Riciputi
5826 terminal-related issues. Many thanks to Andrea Riciputi
5817 <andrea.riciputi-AT-libero.it> for writing it.
5827 <andrea.riciputi-AT-libero.it> for writing it.
5818
5828
5819 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5829 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5820 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5830 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5821
5831
5822 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5832 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5823 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5833 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5824 <syver-en-AT-online.no> who both submitted patches for this problem.
5834 <syver-en-AT-online.no> who both submitted patches for this problem.
5825
5835
5826 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5836 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5827 global embedding to make sure that things don't overwrite user
5837 global embedding to make sure that things don't overwrite user
5828 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5838 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5829
5839
5830 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5840 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5831 compatibility. Thanks to Hayden Callow
5841 compatibility. Thanks to Hayden Callow
5832 <h.callow-AT-elec.canterbury.ac.nz>
5842 <h.callow-AT-elec.canterbury.ac.nz>
5833
5843
5834 2002-10-04 Fernando Perez <fperez@colorado.edu>
5844 2002-10-04 Fernando Perez <fperez@colorado.edu>
5835
5845
5836 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5846 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5837 Gnuplot.File objects.
5847 Gnuplot.File objects.
5838
5848
5839 2002-07-23 Fernando Perez <fperez@colorado.edu>
5849 2002-07-23 Fernando Perez <fperez@colorado.edu>
5840
5850
5841 * IPython/genutils.py (timing): Added timings() and timing() for
5851 * IPython/genutils.py (timing): Added timings() and timing() for
5842 quick access to the most commonly needed data, the execution
5852 quick access to the most commonly needed data, the execution
5843 times. Old timing() renamed to timings_out().
5853 times. Old timing() renamed to timings_out().
5844
5854
5845 2002-07-18 Fernando Perez <fperez@colorado.edu>
5855 2002-07-18 Fernando Perez <fperez@colorado.edu>
5846
5856
5847 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5857 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5848 bug with nested instances disrupting the parent's tab completion.
5858 bug with nested instances disrupting the parent's tab completion.
5849
5859
5850 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5860 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5851 all_completions code to begin the emacs integration.
5861 all_completions code to begin the emacs integration.
5852
5862
5853 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5863 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5854 argument to allow titling individual arrays when plotting.
5864 argument to allow titling individual arrays when plotting.
5855
5865
5856 2002-07-15 Fernando Perez <fperez@colorado.edu>
5866 2002-07-15 Fernando Perez <fperez@colorado.edu>
5857
5867
5858 * setup.py (make_shortcut): changed to retrieve the value of
5868 * setup.py (make_shortcut): changed to retrieve the value of
5859 'Program Files' directory from the registry (this value changes in
5869 'Program Files' directory from the registry (this value changes in
5860 non-english versions of Windows). Thanks to Thomas Fanslau
5870 non-english versions of Windows). Thanks to Thomas Fanslau
5861 <tfanslau-AT-gmx.de> for the report.
5871 <tfanslau-AT-gmx.de> for the report.
5862
5872
5863 2002-07-10 Fernando Perez <fperez@colorado.edu>
5873 2002-07-10 Fernando Perez <fperez@colorado.edu>
5864
5874
5865 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5875 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5866 a bug in pdb, which crashes if a line with only whitespace is
5876 a bug in pdb, which crashes if a line with only whitespace is
5867 entered. Bug report submitted to sourceforge.
5877 entered. Bug report submitted to sourceforge.
5868
5878
5869 2002-07-09 Fernando Perez <fperez@colorado.edu>
5879 2002-07-09 Fernando Perez <fperez@colorado.edu>
5870
5880
5871 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5881 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5872 reporting exceptions (it's a bug in inspect.py, I just set a
5882 reporting exceptions (it's a bug in inspect.py, I just set a
5873 workaround).
5883 workaround).
5874
5884
5875 2002-07-08 Fernando Perez <fperez@colorado.edu>
5885 2002-07-08 Fernando Perez <fperez@colorado.edu>
5876
5886
5877 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5887 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5878 __IPYTHON__ in __builtins__ to show up in user_ns.
5888 __IPYTHON__ in __builtins__ to show up in user_ns.
5879
5889
5880 2002-07-03 Fernando Perez <fperez@colorado.edu>
5890 2002-07-03 Fernando Perez <fperez@colorado.edu>
5881
5891
5882 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5892 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5883 name from @gp_set_instance to @gp_set_default.
5893 name from @gp_set_instance to @gp_set_default.
5884
5894
5885 * IPython/ipmaker.py (make_IPython): default editor value set to
5895 * IPython/ipmaker.py (make_IPython): default editor value set to
5886 '0' (a string), to match the rc file. Otherwise will crash when
5896 '0' (a string), to match the rc file. Otherwise will crash when
5887 .strip() is called on it.
5897 .strip() is called on it.
5888
5898
5889
5899
5890 2002-06-28 Fernando Perez <fperez@colorado.edu>
5900 2002-06-28 Fernando Perez <fperez@colorado.edu>
5891
5901
5892 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5902 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5893 of files in current directory when a file is executed via
5903 of files in current directory when a file is executed via
5894 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5904 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5895
5905
5896 * setup.py (manfiles): fix for rpm builds, submitted by RA
5906 * setup.py (manfiles): fix for rpm builds, submitted by RA
5897 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5907 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5898
5908
5899 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5909 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5900 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5910 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5901 string!). A. Schmolck caught this one.
5911 string!). A. Schmolck caught this one.
5902
5912
5903 2002-06-27 Fernando Perez <fperez@colorado.edu>
5913 2002-06-27 Fernando Perez <fperez@colorado.edu>
5904
5914
5905 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5915 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5906 defined files at the cmd line. __name__ wasn't being set to
5916 defined files at the cmd line. __name__ wasn't being set to
5907 __main__.
5917 __main__.
5908
5918
5909 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5919 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5910 regular lists and tuples besides Numeric arrays.
5920 regular lists and tuples besides Numeric arrays.
5911
5921
5912 * IPython/Prompts.py (CachedOutput.__call__): Added output
5922 * IPython/Prompts.py (CachedOutput.__call__): Added output
5913 supression for input ending with ';'. Similar to Mathematica and
5923 supression for input ending with ';'. Similar to Mathematica and
5914 Matlab. The _* vars and Out[] list are still updated, just like
5924 Matlab. The _* vars and Out[] list are still updated, just like
5915 Mathematica behaves.
5925 Mathematica behaves.
5916
5926
5917 2002-06-25 Fernando Perez <fperez@colorado.edu>
5927 2002-06-25 Fernando Perez <fperez@colorado.edu>
5918
5928
5919 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5929 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5920 .ini extensions for profiels under Windows.
5930 .ini extensions for profiels under Windows.
5921
5931
5922 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5932 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5923 string form. Fix contributed by Alexander Schmolck
5933 string form. Fix contributed by Alexander Schmolck
5924 <a.schmolck-AT-gmx.net>
5934 <a.schmolck-AT-gmx.net>
5925
5935
5926 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5936 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5927 pre-configured Gnuplot instance.
5937 pre-configured Gnuplot instance.
5928
5938
5929 2002-06-21 Fernando Perez <fperez@colorado.edu>
5939 2002-06-21 Fernando Perez <fperez@colorado.edu>
5930
5940
5931 * IPython/numutils.py (exp_safe): new function, works around the
5941 * IPython/numutils.py (exp_safe): new function, works around the
5932 underflow problems in Numeric.
5942 underflow problems in Numeric.
5933 (log2): New fn. Safe log in base 2: returns exact integer answer
5943 (log2): New fn. Safe log in base 2: returns exact integer answer
5934 for exact integer powers of 2.
5944 for exact integer powers of 2.
5935
5945
5936 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5946 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5937 properly.
5947 properly.
5938
5948
5939 2002-06-20 Fernando Perez <fperez@colorado.edu>
5949 2002-06-20 Fernando Perez <fperez@colorado.edu>
5940
5950
5941 * IPython/genutils.py (timing): new function like
5951 * IPython/genutils.py (timing): new function like
5942 Mathematica's. Similar to time_test, but returns more info.
5952 Mathematica's. Similar to time_test, but returns more info.
5943
5953
5944 2002-06-18 Fernando Perez <fperez@colorado.edu>
5954 2002-06-18 Fernando Perez <fperez@colorado.edu>
5945
5955
5946 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5956 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5947 according to Mike Heeter's suggestions.
5957 according to Mike Heeter's suggestions.
5948
5958
5949 2002-06-16 Fernando Perez <fperez@colorado.edu>
5959 2002-06-16 Fernando Perez <fperez@colorado.edu>
5950
5960
5951 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5961 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5952 system. GnuplotMagic is gone as a user-directory option. New files
5962 system. GnuplotMagic is gone as a user-directory option. New files
5953 make it easier to use all the gnuplot stuff both from external
5963 make it easier to use all the gnuplot stuff both from external
5954 programs as well as from IPython. Had to rewrite part of
5964 programs as well as from IPython. Had to rewrite part of
5955 hardcopy() b/c of a strange bug: often the ps files simply don't
5965 hardcopy() b/c of a strange bug: often the ps files simply don't
5956 get created, and require a repeat of the command (often several
5966 get created, and require a repeat of the command (often several
5957 times).
5967 times).
5958
5968
5959 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5969 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5960 resolve output channel at call time, so that if sys.stderr has
5970 resolve output channel at call time, so that if sys.stderr has
5961 been redirected by user this gets honored.
5971 been redirected by user this gets honored.
5962
5972
5963 2002-06-13 Fernando Perez <fperez@colorado.edu>
5973 2002-06-13 Fernando Perez <fperez@colorado.edu>
5964
5974
5965 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5975 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5966 IPShell. Kept a copy with the old names to avoid breaking people's
5976 IPShell. Kept a copy with the old names to avoid breaking people's
5967 embedded code.
5977 embedded code.
5968
5978
5969 * IPython/ipython: simplified it to the bare minimum after
5979 * IPython/ipython: simplified it to the bare minimum after
5970 Holger's suggestions. Added info about how to use it in
5980 Holger's suggestions. Added info about how to use it in
5971 PYTHONSTARTUP.
5981 PYTHONSTARTUP.
5972
5982
5973 * IPython/Shell.py (IPythonShell): changed the options passing
5983 * IPython/Shell.py (IPythonShell): changed the options passing
5974 from a string with funky %s replacements to a straight list. Maybe
5984 from a string with funky %s replacements to a straight list. Maybe
5975 a bit more typing, but it follows sys.argv conventions, so there's
5985 a bit more typing, but it follows sys.argv conventions, so there's
5976 less special-casing to remember.
5986 less special-casing to remember.
5977
5987
5978 2002-06-12 Fernando Perez <fperez@colorado.edu>
5988 2002-06-12 Fernando Perez <fperez@colorado.edu>
5979
5989
5980 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5990 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5981 command. Thanks to a suggestion by Mike Heeter.
5991 command. Thanks to a suggestion by Mike Heeter.
5982 (Magic.magic_pfile): added behavior to look at filenames if given
5992 (Magic.magic_pfile): added behavior to look at filenames if given
5983 arg is not a defined object.
5993 arg is not a defined object.
5984 (Magic.magic_save): New @save function to save code snippets. Also
5994 (Magic.magic_save): New @save function to save code snippets. Also
5985 a Mike Heeter idea.
5995 a Mike Heeter idea.
5986
5996
5987 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5997 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5988 plot() and replot(). Much more convenient now, especially for
5998 plot() and replot(). Much more convenient now, especially for
5989 interactive use.
5999 interactive use.
5990
6000
5991 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
6001 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5992 filenames.
6002 filenames.
5993
6003
5994 2002-06-02 Fernando Perez <fperez@colorado.edu>
6004 2002-06-02 Fernando Perez <fperez@colorado.edu>
5995
6005
5996 * IPython/Struct.py (Struct.__init__): modified to admit
6006 * IPython/Struct.py (Struct.__init__): modified to admit
5997 initialization via another struct.
6007 initialization via another struct.
5998
6008
5999 * IPython/genutils.py (SystemExec.__init__): New stateful
6009 * IPython/genutils.py (SystemExec.__init__): New stateful
6000 interface to xsys and bq. Useful for writing system scripts.
6010 interface to xsys and bq. Useful for writing system scripts.
6001
6011
6002 2002-05-30 Fernando Perez <fperez@colorado.edu>
6012 2002-05-30 Fernando Perez <fperez@colorado.edu>
6003
6013
6004 * MANIFEST.in: Changed docfile selection to exclude all the lyx
6014 * MANIFEST.in: Changed docfile selection to exclude all the lyx
6005 documents. This will make the user download smaller (it's getting
6015 documents. This will make the user download smaller (it's getting
6006 too big).
6016 too big).
6007
6017
6008 2002-05-29 Fernando Perez <fperez@colorado.edu>
6018 2002-05-29 Fernando Perez <fperez@colorado.edu>
6009
6019
6010 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
6020 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
6011 fix problems with shelve and pickle. Seems to work, but I don't
6021 fix problems with shelve and pickle. Seems to work, but I don't
6012 know if corner cases break it. Thanks to Mike Heeter
6022 know if corner cases break it. Thanks to Mike Heeter
6013 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
6023 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
6014
6024
6015 2002-05-24 Fernando Perez <fperez@colorado.edu>
6025 2002-05-24 Fernando Perez <fperez@colorado.edu>
6016
6026
6017 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
6027 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
6018 macros having broken.
6028 macros having broken.
6019
6029
6020 2002-05-21 Fernando Perez <fperez@colorado.edu>
6030 2002-05-21 Fernando Perez <fperez@colorado.edu>
6021
6031
6022 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6032 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6023 introduced logging bug: all history before logging started was
6033 introduced logging bug: all history before logging started was
6024 being written one character per line! This came from the redesign
6034 being written one character per line! This came from the redesign
6025 of the input history as a special list which slices to strings,
6035 of the input history as a special list which slices to strings,
6026 not to lists.
6036 not to lists.
6027
6037
6028 2002-05-20 Fernando Perez <fperez@colorado.edu>
6038 2002-05-20 Fernando Perez <fperez@colorado.edu>
6029
6039
6030 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6040 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6031 be an attribute of all classes in this module. The design of these
6041 be an attribute of all classes in this module. The design of these
6032 classes needs some serious overhauling.
6042 classes needs some serious overhauling.
6033
6043
6034 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6044 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6035 which was ignoring '_' in option names.
6045 which was ignoring '_' in option names.
6036
6046
6037 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6047 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6038 'Verbose_novars' to 'Context' and made it the new default. It's a
6048 'Verbose_novars' to 'Context' and made it the new default. It's a
6039 bit more readable and also safer than verbose.
6049 bit more readable and also safer than verbose.
6040
6050
6041 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6051 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6042 triple-quoted strings.
6052 triple-quoted strings.
6043
6053
6044 * IPython/OInspect.py (__all__): new module exposing the object
6054 * IPython/OInspect.py (__all__): new module exposing the object
6045 introspection facilities. Now the corresponding magics are dummy
6055 introspection facilities. Now the corresponding magics are dummy
6046 wrappers around this. Having this module will make it much easier
6056 wrappers around this. Having this module will make it much easier
6047 to put these functions into our modified pdb.
6057 to put these functions into our modified pdb.
6048 This new object inspector system uses the new colorizing module,
6058 This new object inspector system uses the new colorizing module,
6049 so source code and other things are nicely syntax highlighted.
6059 so source code and other things are nicely syntax highlighted.
6050
6060
6051 2002-05-18 Fernando Perez <fperez@colorado.edu>
6061 2002-05-18 Fernando Perez <fperez@colorado.edu>
6052
6062
6053 * IPython/ColorANSI.py: Split the coloring tools into a separate
6063 * IPython/ColorANSI.py: Split the coloring tools into a separate
6054 module so I can use them in other code easier (they were part of
6064 module so I can use them in other code easier (they were part of
6055 ultraTB).
6065 ultraTB).
6056
6066
6057 2002-05-17 Fernando Perez <fperez@colorado.edu>
6067 2002-05-17 Fernando Perez <fperez@colorado.edu>
6058
6068
6059 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6069 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6060 fixed it to set the global 'g' also to the called instance, as
6070 fixed it to set the global 'g' also to the called instance, as
6061 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6071 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6062 user's 'g' variables).
6072 user's 'g' variables).
6063
6073
6064 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6074 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6065 global variables (aliases to _ih,_oh) so that users which expect
6075 global variables (aliases to _ih,_oh) so that users which expect
6066 In[5] or Out[7] to work aren't unpleasantly surprised.
6076 In[5] or Out[7] to work aren't unpleasantly surprised.
6067 (InputList.__getslice__): new class to allow executing slices of
6077 (InputList.__getslice__): new class to allow executing slices of
6068 input history directly. Very simple class, complements the use of
6078 input history directly. Very simple class, complements the use of
6069 macros.
6079 macros.
6070
6080
6071 2002-05-16 Fernando Perez <fperez@colorado.edu>
6081 2002-05-16 Fernando Perez <fperez@colorado.edu>
6072
6082
6073 * setup.py (docdirbase): make doc directory be just doc/IPython
6083 * setup.py (docdirbase): make doc directory be just doc/IPython
6074 without version numbers, it will reduce clutter for users.
6084 without version numbers, it will reduce clutter for users.
6075
6085
6076 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6086 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6077 execfile call to prevent possible memory leak. See for details:
6087 execfile call to prevent possible memory leak. See for details:
6078 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6088 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6079
6089
6080 2002-05-15 Fernando Perez <fperez@colorado.edu>
6090 2002-05-15 Fernando Perez <fperez@colorado.edu>
6081
6091
6082 * IPython/Magic.py (Magic.magic_psource): made the object
6092 * IPython/Magic.py (Magic.magic_psource): made the object
6083 introspection names be more standard: pdoc, pdef, pfile and
6093 introspection names be more standard: pdoc, pdef, pfile and
6084 psource. They all print/page their output, and it makes
6094 psource. They all print/page their output, and it makes
6085 remembering them easier. Kept old names for compatibility as
6095 remembering them easier. Kept old names for compatibility as
6086 aliases.
6096 aliases.
6087
6097
6088 2002-05-14 Fernando Perez <fperez@colorado.edu>
6098 2002-05-14 Fernando Perez <fperez@colorado.edu>
6089
6099
6090 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6100 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6091 what the mouse problem was. The trick is to use gnuplot with temp
6101 what the mouse problem was. The trick is to use gnuplot with temp
6092 files and NOT with pipes (for data communication), because having
6102 files and NOT with pipes (for data communication), because having
6093 both pipes and the mouse on is bad news.
6103 both pipes and the mouse on is bad news.
6094
6104
6095 2002-05-13 Fernando Perez <fperez@colorado.edu>
6105 2002-05-13 Fernando Perez <fperez@colorado.edu>
6096
6106
6097 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6107 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6098 bug. Information would be reported about builtins even when
6108 bug. Information would be reported about builtins even when
6099 user-defined functions overrode them.
6109 user-defined functions overrode them.
6100
6110
6101 2002-05-11 Fernando Perez <fperez@colorado.edu>
6111 2002-05-11 Fernando Perez <fperez@colorado.edu>
6102
6112
6103 * IPython/__init__.py (__all__): removed FlexCompleter from
6113 * IPython/__init__.py (__all__): removed FlexCompleter from
6104 __all__ so that things don't fail in platforms without readline.
6114 __all__ so that things don't fail in platforms without readline.
6105
6115
6106 2002-05-10 Fernando Perez <fperez@colorado.edu>
6116 2002-05-10 Fernando Perez <fperez@colorado.edu>
6107
6117
6108 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6118 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6109 it requires Numeric, effectively making Numeric a dependency for
6119 it requires Numeric, effectively making Numeric a dependency for
6110 IPython.
6120 IPython.
6111
6121
6112 * Released 0.2.13
6122 * Released 0.2.13
6113
6123
6114 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6124 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6115 profiler interface. Now all the major options from the profiler
6125 profiler interface. Now all the major options from the profiler
6116 module are directly supported in IPython, both for single
6126 module are directly supported in IPython, both for single
6117 expressions (@prun) and for full programs (@run -p).
6127 expressions (@prun) and for full programs (@run -p).
6118
6128
6119 2002-05-09 Fernando Perez <fperez@colorado.edu>
6129 2002-05-09 Fernando Perez <fperez@colorado.edu>
6120
6130
6121 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6131 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6122 magic properly formatted for screen.
6132 magic properly formatted for screen.
6123
6133
6124 * setup.py (make_shortcut): Changed things to put pdf version in
6134 * setup.py (make_shortcut): Changed things to put pdf version in
6125 doc/ instead of doc/manual (had to change lyxport a bit).
6135 doc/ instead of doc/manual (had to change lyxport a bit).
6126
6136
6127 * IPython/Magic.py (Profile.string_stats): made profile runs go
6137 * IPython/Magic.py (Profile.string_stats): made profile runs go
6128 through pager (they are long and a pager allows searching, saving,
6138 through pager (they are long and a pager allows searching, saving,
6129 etc.)
6139 etc.)
6130
6140
6131 2002-05-08 Fernando Perez <fperez@colorado.edu>
6141 2002-05-08 Fernando Perez <fperez@colorado.edu>
6132
6142
6133 * Released 0.2.12
6143 * Released 0.2.12
6134
6144
6135 2002-05-06 Fernando Perez <fperez@colorado.edu>
6145 2002-05-06 Fernando Perez <fperez@colorado.edu>
6136
6146
6137 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6147 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6138 introduced); 'hist n1 n2' was broken.
6148 introduced); 'hist n1 n2' was broken.
6139 (Magic.magic_pdb): added optional on/off arguments to @pdb
6149 (Magic.magic_pdb): added optional on/off arguments to @pdb
6140 (Magic.magic_run): added option -i to @run, which executes code in
6150 (Magic.magic_run): added option -i to @run, which executes code in
6141 the IPython namespace instead of a clean one. Also added @irun as
6151 the IPython namespace instead of a clean one. Also added @irun as
6142 an alias to @run -i.
6152 an alias to @run -i.
6143
6153
6144 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6154 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6145 fixed (it didn't really do anything, the namespaces were wrong).
6155 fixed (it didn't really do anything, the namespaces were wrong).
6146
6156
6147 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6157 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6148
6158
6149 * IPython/__init__.py (__all__): Fixed package namespace, now
6159 * IPython/__init__.py (__all__): Fixed package namespace, now
6150 'import IPython' does give access to IPython.<all> as
6160 'import IPython' does give access to IPython.<all> as
6151 expected. Also renamed __release__ to Release.
6161 expected. Also renamed __release__ to Release.
6152
6162
6153 * IPython/Debugger.py (__license__): created new Pdb class which
6163 * IPython/Debugger.py (__license__): created new Pdb class which
6154 functions like a drop-in for the normal pdb.Pdb but does NOT
6164 functions like a drop-in for the normal pdb.Pdb but does NOT
6155 import readline by default. This way it doesn't muck up IPython's
6165 import readline by default. This way it doesn't muck up IPython's
6156 readline handling, and now tab-completion finally works in the
6166 readline handling, and now tab-completion finally works in the
6157 debugger -- sort of. It completes things globally visible, but the
6167 debugger -- sort of. It completes things globally visible, but the
6158 completer doesn't track the stack as pdb walks it. That's a bit
6168 completer doesn't track the stack as pdb walks it. That's a bit
6159 tricky, and I'll have to implement it later.
6169 tricky, and I'll have to implement it later.
6160
6170
6161 2002-05-05 Fernando Perez <fperez@colorado.edu>
6171 2002-05-05 Fernando Perez <fperez@colorado.edu>
6162
6172
6163 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6173 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6164 magic docstrings when printed via ? (explicit \'s were being
6174 magic docstrings when printed via ? (explicit \'s were being
6165 printed).
6175 printed).
6166
6176
6167 * IPython/ipmaker.py (make_IPython): fixed namespace
6177 * IPython/ipmaker.py (make_IPython): fixed namespace
6168 identification bug. Now variables loaded via logs or command-line
6178 identification bug. Now variables loaded via logs or command-line
6169 files are recognized in the interactive namespace by @who.
6179 files are recognized in the interactive namespace by @who.
6170
6180
6171 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6181 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6172 log replay system stemming from the string form of Structs.
6182 log replay system stemming from the string form of Structs.
6173
6183
6174 * IPython/Magic.py (Macro.__init__): improved macros to properly
6184 * IPython/Magic.py (Macro.__init__): improved macros to properly
6175 handle magic commands in them.
6185 handle magic commands in them.
6176 (Magic.magic_logstart): usernames are now expanded so 'logstart
6186 (Magic.magic_logstart): usernames are now expanded so 'logstart
6177 ~/mylog' now works.
6187 ~/mylog' now works.
6178
6188
6179 * IPython/iplib.py (complete): fixed bug where paths starting with
6189 * IPython/iplib.py (complete): fixed bug where paths starting with
6180 '/' would be completed as magic names.
6190 '/' would be completed as magic names.
6181
6191
6182 2002-05-04 Fernando Perez <fperez@colorado.edu>
6192 2002-05-04 Fernando Perez <fperez@colorado.edu>
6183
6193
6184 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6194 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6185 allow running full programs under the profiler's control.
6195 allow running full programs under the profiler's control.
6186
6196
6187 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6197 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6188 mode to report exceptions verbosely but without formatting
6198 mode to report exceptions verbosely but without formatting
6189 variables. This addresses the issue of ipython 'freezing' (it's
6199 variables. This addresses the issue of ipython 'freezing' (it's
6190 not frozen, but caught in an expensive formatting loop) when huge
6200 not frozen, but caught in an expensive formatting loop) when huge
6191 variables are in the context of an exception.
6201 variables are in the context of an exception.
6192 (VerboseTB.text): Added '--->' markers at line where exception was
6202 (VerboseTB.text): Added '--->' markers at line where exception was
6193 triggered. Much clearer to read, especially in NoColor modes.
6203 triggered. Much clearer to read, especially in NoColor modes.
6194
6204
6195 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6205 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6196 implemented in reverse when changing to the new parse_options().
6206 implemented in reverse when changing to the new parse_options().
6197
6207
6198 2002-05-03 Fernando Perez <fperez@colorado.edu>
6208 2002-05-03 Fernando Perez <fperez@colorado.edu>
6199
6209
6200 * IPython/Magic.py (Magic.parse_options): new function so that
6210 * IPython/Magic.py (Magic.parse_options): new function so that
6201 magics can parse options easier.
6211 magics can parse options easier.
6202 (Magic.magic_prun): new function similar to profile.run(),
6212 (Magic.magic_prun): new function similar to profile.run(),
6203 suggested by Chris Hart.
6213 suggested by Chris Hart.
6204 (Magic.magic_cd): fixed behavior so that it only changes if
6214 (Magic.magic_cd): fixed behavior so that it only changes if
6205 directory actually is in history.
6215 directory actually is in history.
6206
6216
6207 * IPython/usage.py (__doc__): added information about potential
6217 * IPython/usage.py (__doc__): added information about potential
6208 slowness of Verbose exception mode when there are huge data
6218 slowness of Verbose exception mode when there are huge data
6209 structures to be formatted (thanks to Archie Paulson).
6219 structures to be formatted (thanks to Archie Paulson).
6210
6220
6211 * IPython/ipmaker.py (make_IPython): Changed default logging
6221 * IPython/ipmaker.py (make_IPython): Changed default logging
6212 (when simply called with -log) to use curr_dir/ipython.log in
6222 (when simply called with -log) to use curr_dir/ipython.log in
6213 rotate mode. Fixed crash which was occuring with -log before
6223 rotate mode. Fixed crash which was occuring with -log before
6214 (thanks to Jim Boyle).
6224 (thanks to Jim Boyle).
6215
6225
6216 2002-05-01 Fernando Perez <fperez@colorado.edu>
6226 2002-05-01 Fernando Perez <fperez@colorado.edu>
6217
6227
6218 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6228 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6219 was nasty -- though somewhat of a corner case).
6229 was nasty -- though somewhat of a corner case).
6220
6230
6221 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6231 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6222 text (was a bug).
6232 text (was a bug).
6223
6233
6224 2002-04-30 Fernando Perez <fperez@colorado.edu>
6234 2002-04-30 Fernando Perez <fperez@colorado.edu>
6225
6235
6226 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6236 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6227 a print after ^D or ^C from the user so that the In[] prompt
6237 a print after ^D or ^C from the user so that the In[] prompt
6228 doesn't over-run the gnuplot one.
6238 doesn't over-run the gnuplot one.
6229
6239
6230 2002-04-29 Fernando Perez <fperez@colorado.edu>
6240 2002-04-29 Fernando Perez <fperez@colorado.edu>
6231
6241
6232 * Released 0.2.10
6242 * Released 0.2.10
6233
6243
6234 * IPython/__release__.py (version): get date dynamically.
6244 * IPython/__release__.py (version): get date dynamically.
6235
6245
6236 * Misc. documentation updates thanks to Arnd's comments. Also ran
6246 * Misc. documentation updates thanks to Arnd's comments. Also ran
6237 a full spellcheck on the manual (hadn't been done in a while).
6247 a full spellcheck on the manual (hadn't been done in a while).
6238
6248
6239 2002-04-27 Fernando Perez <fperez@colorado.edu>
6249 2002-04-27 Fernando Perez <fperez@colorado.edu>
6240
6250
6241 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6251 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6242 starting a log in mid-session would reset the input history list.
6252 starting a log in mid-session would reset the input history list.
6243
6253
6244 2002-04-26 Fernando Perez <fperez@colorado.edu>
6254 2002-04-26 Fernando Perez <fperez@colorado.edu>
6245
6255
6246 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6256 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6247 all files were being included in an update. Now anything in
6257 all files were being included in an update. Now anything in
6248 UserConfig that matches [A-Za-z]*.py will go (this excludes
6258 UserConfig that matches [A-Za-z]*.py will go (this excludes
6249 __init__.py)
6259 __init__.py)
6250
6260
6251 2002-04-25 Fernando Perez <fperez@colorado.edu>
6261 2002-04-25 Fernando Perez <fperez@colorado.edu>
6252
6262
6253 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6263 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6254 to __builtins__ so that any form of embedded or imported code can
6264 to __builtins__ so that any form of embedded or imported code can
6255 test for being inside IPython.
6265 test for being inside IPython.
6256
6266
6257 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6267 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6258 changed to GnuplotMagic because it's now an importable module,
6268 changed to GnuplotMagic because it's now an importable module,
6259 this makes the name follow that of the standard Gnuplot module.
6269 this makes the name follow that of the standard Gnuplot module.
6260 GnuplotMagic can now be loaded at any time in mid-session.
6270 GnuplotMagic can now be loaded at any time in mid-session.
6261
6271
6262 2002-04-24 Fernando Perez <fperez@colorado.edu>
6272 2002-04-24 Fernando Perez <fperez@colorado.edu>
6263
6273
6264 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6274 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6265 the globals (IPython has its own namespace) and the
6275 the globals (IPython has its own namespace) and the
6266 PhysicalQuantity stuff is much better anyway.
6276 PhysicalQuantity stuff is much better anyway.
6267
6277
6268 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6278 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6269 embedding example to standard user directory for
6279 embedding example to standard user directory for
6270 distribution. Also put it in the manual.
6280 distribution. Also put it in the manual.
6271
6281
6272 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6282 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6273 instance as first argument (so it doesn't rely on some obscure
6283 instance as first argument (so it doesn't rely on some obscure
6274 hidden global).
6284 hidden global).
6275
6285
6276 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6286 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6277 delimiters. While it prevents ().TAB from working, it allows
6287 delimiters. While it prevents ().TAB from working, it allows
6278 completions in open (... expressions. This is by far a more common
6288 completions in open (... expressions. This is by far a more common
6279 case.
6289 case.
6280
6290
6281 2002-04-23 Fernando Perez <fperez@colorado.edu>
6291 2002-04-23 Fernando Perez <fperez@colorado.edu>
6282
6292
6283 * IPython/Extensions/InterpreterPasteInput.py: new
6293 * IPython/Extensions/InterpreterPasteInput.py: new
6284 syntax-processing module for pasting lines with >>> or ... at the
6294 syntax-processing module for pasting lines with >>> or ... at the
6285 start.
6295 start.
6286
6296
6287 * IPython/Extensions/PhysicalQ_Interactive.py
6297 * IPython/Extensions/PhysicalQ_Interactive.py
6288 (PhysicalQuantityInteractive.__int__): fixed to work with either
6298 (PhysicalQuantityInteractive.__int__): fixed to work with either
6289 Numeric or math.
6299 Numeric or math.
6290
6300
6291 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6301 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6292 provided profiles. Now we have:
6302 provided profiles. Now we have:
6293 -math -> math module as * and cmath with its own namespace.
6303 -math -> math module as * and cmath with its own namespace.
6294 -numeric -> Numeric as *, plus gnuplot & grace
6304 -numeric -> Numeric as *, plus gnuplot & grace
6295 -physics -> same as before
6305 -physics -> same as before
6296
6306
6297 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6307 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6298 user-defined magics wouldn't be found by @magic if they were
6308 user-defined magics wouldn't be found by @magic if they were
6299 defined as class methods. Also cleaned up the namespace search
6309 defined as class methods. Also cleaned up the namespace search
6300 logic and the string building (to use %s instead of many repeated
6310 logic and the string building (to use %s instead of many repeated
6301 string adds).
6311 string adds).
6302
6312
6303 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6313 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6304 of user-defined magics to operate with class methods (cleaner, in
6314 of user-defined magics to operate with class methods (cleaner, in
6305 line with the gnuplot code).
6315 line with the gnuplot code).
6306
6316
6307 2002-04-22 Fernando Perez <fperez@colorado.edu>
6317 2002-04-22 Fernando Perez <fperez@colorado.edu>
6308
6318
6309 * setup.py: updated dependency list so that manual is updated when
6319 * setup.py: updated dependency list so that manual is updated when
6310 all included files change.
6320 all included files change.
6311
6321
6312 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6322 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6313 the delimiter removal option (the fix is ugly right now).
6323 the delimiter removal option (the fix is ugly right now).
6314
6324
6315 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6325 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6316 all of the math profile (quicker loading, no conflict between
6326 all of the math profile (quicker loading, no conflict between
6317 g-9.8 and g-gnuplot).
6327 g-9.8 and g-gnuplot).
6318
6328
6319 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6329 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6320 name of post-mortem files to IPython_crash_report.txt.
6330 name of post-mortem files to IPython_crash_report.txt.
6321
6331
6322 * Cleanup/update of the docs. Added all the new readline info and
6332 * Cleanup/update of the docs. Added all the new readline info and
6323 formatted all lists as 'real lists'.
6333 formatted all lists as 'real lists'.
6324
6334
6325 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6335 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6326 tab-completion options, since the full readline parse_and_bind is
6336 tab-completion options, since the full readline parse_and_bind is
6327 now accessible.
6337 now accessible.
6328
6338
6329 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6339 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6330 handling of readline options. Now users can specify any string to
6340 handling of readline options. Now users can specify any string to
6331 be passed to parse_and_bind(), as well as the delimiters to be
6341 be passed to parse_and_bind(), as well as the delimiters to be
6332 removed.
6342 removed.
6333 (InteractiveShell.__init__): Added __name__ to the global
6343 (InteractiveShell.__init__): Added __name__ to the global
6334 namespace so that things like Itpl which rely on its existence
6344 namespace so that things like Itpl which rely on its existence
6335 don't crash.
6345 don't crash.
6336 (InteractiveShell._prefilter): Defined the default with a _ so
6346 (InteractiveShell._prefilter): Defined the default with a _ so
6337 that prefilter() is easier to override, while the default one
6347 that prefilter() is easier to override, while the default one
6338 remains available.
6348 remains available.
6339
6349
6340 2002-04-18 Fernando Perez <fperez@colorado.edu>
6350 2002-04-18 Fernando Perez <fperez@colorado.edu>
6341
6351
6342 * Added information about pdb in the docs.
6352 * Added information about pdb in the docs.
6343
6353
6344 2002-04-17 Fernando Perez <fperez@colorado.edu>
6354 2002-04-17 Fernando Perez <fperez@colorado.edu>
6345
6355
6346 * IPython/ipmaker.py (make_IPython): added rc_override option to
6356 * IPython/ipmaker.py (make_IPython): added rc_override option to
6347 allow passing config options at creation time which may override
6357 allow passing config options at creation time which may override
6348 anything set in the config files or command line. This is
6358 anything set in the config files or command line. This is
6349 particularly useful for configuring embedded instances.
6359 particularly useful for configuring embedded instances.
6350
6360
6351 2002-04-15 Fernando Perez <fperez@colorado.edu>
6361 2002-04-15 Fernando Perez <fperez@colorado.edu>
6352
6362
6353 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6363 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6354 crash embedded instances because of the input cache falling out of
6364 crash embedded instances because of the input cache falling out of
6355 sync with the output counter.
6365 sync with the output counter.
6356
6366
6357 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6367 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6358 mode which calls pdb after an uncaught exception in IPython itself.
6368 mode which calls pdb after an uncaught exception in IPython itself.
6359
6369
6360 2002-04-14 Fernando Perez <fperez@colorado.edu>
6370 2002-04-14 Fernando Perez <fperez@colorado.edu>
6361
6371
6362 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6372 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6363 readline, fix it back after each call.
6373 readline, fix it back after each call.
6364
6374
6365 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6375 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6366 method to force all access via __call__(), which guarantees that
6376 method to force all access via __call__(), which guarantees that
6367 traceback references are properly deleted.
6377 traceback references are properly deleted.
6368
6378
6369 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6379 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6370 improve printing when pprint is in use.
6380 improve printing when pprint is in use.
6371
6381
6372 2002-04-13 Fernando Perez <fperez@colorado.edu>
6382 2002-04-13 Fernando Perez <fperez@colorado.edu>
6373
6383
6374 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6384 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6375 exceptions aren't caught anymore. If the user triggers one, he
6385 exceptions aren't caught anymore. If the user triggers one, he
6376 should know why he's doing it and it should go all the way up,
6386 should know why he's doing it and it should go all the way up,
6377 just like any other exception. So now @abort will fully kill the
6387 just like any other exception. So now @abort will fully kill the
6378 embedded interpreter and the embedding code (unless that happens
6388 embedded interpreter and the embedding code (unless that happens
6379 to catch SystemExit).
6389 to catch SystemExit).
6380
6390
6381 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6391 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6382 and a debugger() method to invoke the interactive pdb debugger
6392 and a debugger() method to invoke the interactive pdb debugger
6383 after printing exception information. Also added the corresponding
6393 after printing exception information. Also added the corresponding
6384 -pdb option and @pdb magic to control this feature, and updated
6394 -pdb option and @pdb magic to control this feature, and updated
6385 the docs. After a suggestion from Christopher Hart
6395 the docs. After a suggestion from Christopher Hart
6386 (hart-AT-caltech.edu).
6396 (hart-AT-caltech.edu).
6387
6397
6388 2002-04-12 Fernando Perez <fperez@colorado.edu>
6398 2002-04-12 Fernando Perez <fperez@colorado.edu>
6389
6399
6390 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6400 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6391 the exception handlers defined by the user (not the CrashHandler)
6401 the exception handlers defined by the user (not the CrashHandler)
6392 so that user exceptions don't trigger an ipython bug report.
6402 so that user exceptions don't trigger an ipython bug report.
6393
6403
6394 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6404 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6395 configurable (it should have always been so).
6405 configurable (it should have always been so).
6396
6406
6397 2002-03-26 Fernando Perez <fperez@colorado.edu>
6407 2002-03-26 Fernando Perez <fperez@colorado.edu>
6398
6408
6399 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6409 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6400 and there to fix embedding namespace issues. This should all be
6410 and there to fix embedding namespace issues. This should all be
6401 done in a more elegant way.
6411 done in a more elegant way.
6402
6412
6403 2002-03-25 Fernando Perez <fperez@colorado.edu>
6413 2002-03-25 Fernando Perez <fperez@colorado.edu>
6404
6414
6405 * IPython/genutils.py (get_home_dir): Try to make it work under
6415 * IPython/genutils.py (get_home_dir): Try to make it work under
6406 win9x also.
6416 win9x also.
6407
6417
6408 2002-03-20 Fernando Perez <fperez@colorado.edu>
6418 2002-03-20 Fernando Perez <fperez@colorado.edu>
6409
6419
6410 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6420 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6411 sys.displayhook untouched upon __init__.
6421 sys.displayhook untouched upon __init__.
6412
6422
6413 2002-03-19 Fernando Perez <fperez@colorado.edu>
6423 2002-03-19 Fernando Perez <fperez@colorado.edu>
6414
6424
6415 * Released 0.2.9 (for embedding bug, basically).
6425 * Released 0.2.9 (for embedding bug, basically).
6416
6426
6417 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6427 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6418 exceptions so that enclosing shell's state can be restored.
6428 exceptions so that enclosing shell's state can be restored.
6419
6429
6420 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6430 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6421 naming conventions in the .ipython/ dir.
6431 naming conventions in the .ipython/ dir.
6422
6432
6423 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6433 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6424 from delimiters list so filenames with - in them get expanded.
6434 from delimiters list so filenames with - in them get expanded.
6425
6435
6426 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6436 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6427 sys.displayhook not being properly restored after an embedded call.
6437 sys.displayhook not being properly restored after an embedded call.
6428
6438
6429 2002-03-18 Fernando Perez <fperez@colorado.edu>
6439 2002-03-18 Fernando Perez <fperez@colorado.edu>
6430
6440
6431 * Released 0.2.8
6441 * Released 0.2.8
6432
6442
6433 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6443 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6434 some files weren't being included in a -upgrade.
6444 some files weren't being included in a -upgrade.
6435 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6445 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6436 on' so that the first tab completes.
6446 on' so that the first tab completes.
6437 (InteractiveShell.handle_magic): fixed bug with spaces around
6447 (InteractiveShell.handle_magic): fixed bug with spaces around
6438 quotes breaking many magic commands.
6448 quotes breaking many magic commands.
6439
6449
6440 * setup.py: added note about ignoring the syntax error messages at
6450 * setup.py: added note about ignoring the syntax error messages at
6441 installation.
6451 installation.
6442
6452
6443 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6453 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6444 streamlining the gnuplot interface, now there's only one magic @gp.
6454 streamlining the gnuplot interface, now there's only one magic @gp.
6445
6455
6446 2002-03-17 Fernando Perez <fperez@colorado.edu>
6456 2002-03-17 Fernando Perez <fperez@colorado.edu>
6447
6457
6448 * IPython/UserConfig/magic_gnuplot.py: new name for the
6458 * IPython/UserConfig/magic_gnuplot.py: new name for the
6449 example-magic_pm.py file. Much enhanced system, now with a shell
6459 example-magic_pm.py file. Much enhanced system, now with a shell
6450 for communicating directly with gnuplot, one command at a time.
6460 for communicating directly with gnuplot, one command at a time.
6451
6461
6452 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6462 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6453 setting __name__=='__main__'.
6463 setting __name__=='__main__'.
6454
6464
6455 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6465 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6456 mini-shell for accessing gnuplot from inside ipython. Should
6466 mini-shell for accessing gnuplot from inside ipython. Should
6457 extend it later for grace access too. Inspired by Arnd's
6467 extend it later for grace access too. Inspired by Arnd's
6458 suggestion.
6468 suggestion.
6459
6469
6460 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6470 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6461 calling magic functions with () in their arguments. Thanks to Arnd
6471 calling magic functions with () in their arguments. Thanks to Arnd
6462 Baecker for pointing this to me.
6472 Baecker for pointing this to me.
6463
6473
6464 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6474 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6465 infinitely for integer or complex arrays (only worked with floats).
6475 infinitely for integer or complex arrays (only worked with floats).
6466
6476
6467 2002-03-16 Fernando Perez <fperez@colorado.edu>
6477 2002-03-16 Fernando Perez <fperez@colorado.edu>
6468
6478
6469 * setup.py: Merged setup and setup_windows into a single script
6479 * setup.py: Merged setup and setup_windows into a single script
6470 which properly handles things for windows users.
6480 which properly handles things for windows users.
6471
6481
6472 2002-03-15 Fernando Perez <fperez@colorado.edu>
6482 2002-03-15 Fernando Perez <fperez@colorado.edu>
6473
6483
6474 * Big change to the manual: now the magics are all automatically
6484 * Big change to the manual: now the magics are all automatically
6475 documented. This information is generated from their docstrings
6485 documented. This information is generated from their docstrings
6476 and put in a latex file included by the manual lyx file. This way
6486 and put in a latex file included by the manual lyx file. This way
6477 we get always up to date information for the magics. The manual
6487 we get always up to date information for the magics. The manual
6478 now also has proper version information, also auto-synced.
6488 now also has proper version information, also auto-synced.
6479
6489
6480 For this to work, an undocumented --magic_docstrings option was added.
6490 For this to work, an undocumented --magic_docstrings option was added.
6481
6491
6482 2002-03-13 Fernando Perez <fperez@colorado.edu>
6492 2002-03-13 Fernando Perez <fperez@colorado.edu>
6483
6493
6484 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6494 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6485 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6495 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6486
6496
6487 2002-03-12 Fernando Perez <fperez@colorado.edu>
6497 2002-03-12 Fernando Perez <fperez@colorado.edu>
6488
6498
6489 * IPython/ultraTB.py (TermColors): changed color escapes again to
6499 * IPython/ultraTB.py (TermColors): changed color escapes again to
6490 fix the (old, reintroduced) line-wrapping bug. Basically, if
6500 fix the (old, reintroduced) line-wrapping bug. Basically, if
6491 \001..\002 aren't given in the color escapes, lines get wrapped
6501 \001..\002 aren't given in the color escapes, lines get wrapped
6492 weirdly. But giving those screws up old xterms and emacs terms. So
6502 weirdly. But giving those screws up old xterms and emacs terms. So
6493 I added some logic for emacs terms to be ok, but I can't identify old
6503 I added some logic for emacs terms to be ok, but I can't identify old
6494 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6504 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6495
6505
6496 2002-03-10 Fernando Perez <fperez@colorado.edu>
6506 2002-03-10 Fernando Perez <fperez@colorado.edu>
6497
6507
6498 * IPython/usage.py (__doc__): Various documentation cleanups and
6508 * IPython/usage.py (__doc__): Various documentation cleanups and
6499 updates, both in usage docstrings and in the manual.
6509 updates, both in usage docstrings and in the manual.
6500
6510
6501 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6511 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6502 handling of caching. Set minimum acceptabe value for having a
6512 handling of caching. Set minimum acceptabe value for having a
6503 cache at 20 values.
6513 cache at 20 values.
6504
6514
6505 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6515 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6506 install_first_time function to a method, renamed it and added an
6516 install_first_time function to a method, renamed it and added an
6507 'upgrade' mode. Now people can update their config directory with
6517 'upgrade' mode. Now people can update their config directory with
6508 a simple command line switch (-upgrade, also new).
6518 a simple command line switch (-upgrade, also new).
6509
6519
6510 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6520 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6511 @file (convenient for automagic users under Python >= 2.2).
6521 @file (convenient for automagic users under Python >= 2.2).
6512 Removed @files (it seemed more like a plural than an abbrev. of
6522 Removed @files (it seemed more like a plural than an abbrev. of
6513 'file show').
6523 'file show').
6514
6524
6515 * IPython/iplib.py (install_first_time): Fixed crash if there were
6525 * IPython/iplib.py (install_first_time): Fixed crash if there were
6516 backup files ('~') in .ipython/ install directory.
6526 backup files ('~') in .ipython/ install directory.
6517
6527
6518 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6528 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6519 system. Things look fine, but these changes are fairly
6529 system. Things look fine, but these changes are fairly
6520 intrusive. Test them for a few days.
6530 intrusive. Test them for a few days.
6521
6531
6522 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6532 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6523 the prompts system. Now all in/out prompt strings are user
6533 the prompts system. Now all in/out prompt strings are user
6524 controllable. This is particularly useful for embedding, as one
6534 controllable. This is particularly useful for embedding, as one
6525 can tag embedded instances with particular prompts.
6535 can tag embedded instances with particular prompts.
6526
6536
6527 Also removed global use of sys.ps1/2, which now allows nested
6537 Also removed global use of sys.ps1/2, which now allows nested
6528 embeddings without any problems. Added command-line options for
6538 embeddings without any problems. Added command-line options for
6529 the prompt strings.
6539 the prompt strings.
6530
6540
6531 2002-03-08 Fernando Perez <fperez@colorado.edu>
6541 2002-03-08 Fernando Perez <fperez@colorado.edu>
6532
6542
6533 * IPython/UserConfig/example-embed-short.py (ipshell): added
6543 * IPython/UserConfig/example-embed-short.py (ipshell): added
6534 example file with the bare minimum code for embedding.
6544 example file with the bare minimum code for embedding.
6535
6545
6536 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6546 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6537 functionality for the embeddable shell to be activated/deactivated
6547 functionality for the embeddable shell to be activated/deactivated
6538 either globally or at each call.
6548 either globally or at each call.
6539
6549
6540 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6550 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6541 rewriting the prompt with '--->' for auto-inputs with proper
6551 rewriting the prompt with '--->' for auto-inputs with proper
6542 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6552 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6543 this is handled by the prompts class itself, as it should.
6553 this is handled by the prompts class itself, as it should.
6544
6554
6545 2002-03-05 Fernando Perez <fperez@colorado.edu>
6555 2002-03-05 Fernando Perez <fperez@colorado.edu>
6546
6556
6547 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6557 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6548 @logstart to avoid name clashes with the math log function.
6558 @logstart to avoid name clashes with the math log function.
6549
6559
6550 * Big updates to X/Emacs section of the manual.
6560 * Big updates to X/Emacs section of the manual.
6551
6561
6552 * Removed ipython_emacs. Milan explained to me how to pass
6562 * Removed ipython_emacs. Milan explained to me how to pass
6553 arguments to ipython through Emacs. Some day I'm going to end up
6563 arguments to ipython through Emacs. Some day I'm going to end up
6554 learning some lisp...
6564 learning some lisp...
6555
6565
6556 2002-03-04 Fernando Perez <fperez@colorado.edu>
6566 2002-03-04 Fernando Perez <fperez@colorado.edu>
6557
6567
6558 * IPython/ipython_emacs: Created script to be used as the
6568 * IPython/ipython_emacs: Created script to be used as the
6559 py-python-command Emacs variable so we can pass IPython
6569 py-python-command Emacs variable so we can pass IPython
6560 parameters. I can't figure out how to tell Emacs directly to pass
6570 parameters. I can't figure out how to tell Emacs directly to pass
6561 parameters to IPython, so a dummy shell script will do it.
6571 parameters to IPython, so a dummy shell script will do it.
6562
6572
6563 Other enhancements made for things to work better under Emacs'
6573 Other enhancements made for things to work better under Emacs'
6564 various types of terminals. Many thanks to Milan Zamazal
6574 various types of terminals. Many thanks to Milan Zamazal
6565 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6575 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6566
6576
6567 2002-03-01 Fernando Perez <fperez@colorado.edu>
6577 2002-03-01 Fernando Perez <fperez@colorado.edu>
6568
6578
6569 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6579 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6570 that loading of readline is now optional. This gives better
6580 that loading of readline is now optional. This gives better
6571 control to emacs users.
6581 control to emacs users.
6572
6582
6573 * IPython/ultraTB.py (__date__): Modified color escape sequences
6583 * IPython/ultraTB.py (__date__): Modified color escape sequences
6574 and now things work fine under xterm and in Emacs' term buffers
6584 and now things work fine under xterm and in Emacs' term buffers
6575 (though not shell ones). Well, in emacs you get colors, but all
6585 (though not shell ones). Well, in emacs you get colors, but all
6576 seem to be 'light' colors (no difference between dark and light
6586 seem to be 'light' colors (no difference between dark and light
6577 ones). But the garbage chars are gone, and also in xterms. It
6587 ones). But the garbage chars are gone, and also in xterms. It
6578 seems that now I'm using 'cleaner' ansi sequences.
6588 seems that now I'm using 'cleaner' ansi sequences.
6579
6589
6580 2002-02-21 Fernando Perez <fperez@colorado.edu>
6590 2002-02-21 Fernando Perez <fperez@colorado.edu>
6581
6591
6582 * Released 0.2.7 (mainly to publish the scoping fix).
6592 * Released 0.2.7 (mainly to publish the scoping fix).
6583
6593
6584 * IPython/Logger.py (Logger.logstate): added. A corresponding
6594 * IPython/Logger.py (Logger.logstate): added. A corresponding
6585 @logstate magic was created.
6595 @logstate magic was created.
6586
6596
6587 * IPython/Magic.py: fixed nested scoping problem under Python
6597 * IPython/Magic.py: fixed nested scoping problem under Python
6588 2.1.x (automagic wasn't working).
6598 2.1.x (automagic wasn't working).
6589
6599
6590 2002-02-20 Fernando Perez <fperez@colorado.edu>
6600 2002-02-20 Fernando Perez <fperez@colorado.edu>
6591
6601
6592 * Released 0.2.6.
6602 * Released 0.2.6.
6593
6603
6594 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6604 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6595 option so that logs can come out without any headers at all.
6605 option so that logs can come out without any headers at all.
6596
6606
6597 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6607 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6598 SciPy.
6608 SciPy.
6599
6609
6600 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6610 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6601 that embedded IPython calls don't require vars() to be explicitly
6611 that embedded IPython calls don't require vars() to be explicitly
6602 passed. Now they are extracted from the caller's frame (code
6612 passed. Now they are extracted from the caller's frame (code
6603 snatched from Eric Jones' weave). Added better documentation to
6613 snatched from Eric Jones' weave). Added better documentation to
6604 the section on embedding and the example file.
6614 the section on embedding and the example file.
6605
6615
6606 * IPython/genutils.py (page): Changed so that under emacs, it just
6616 * IPython/genutils.py (page): Changed so that under emacs, it just
6607 prints the string. You can then page up and down in the emacs
6617 prints the string. You can then page up and down in the emacs
6608 buffer itself. This is how the builtin help() works.
6618 buffer itself. This is how the builtin help() works.
6609
6619
6610 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6620 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6611 macro scoping: macros need to be executed in the user's namespace
6621 macro scoping: macros need to be executed in the user's namespace
6612 to work as if they had been typed by the user.
6622 to work as if they had been typed by the user.
6613
6623
6614 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6624 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6615 execute automatically (no need to type 'exec...'). They then
6625 execute automatically (no need to type 'exec...'). They then
6616 behave like 'true macros'. The printing system was also modified
6626 behave like 'true macros'. The printing system was also modified
6617 for this to work.
6627 for this to work.
6618
6628
6619 2002-02-19 Fernando Perez <fperez@colorado.edu>
6629 2002-02-19 Fernando Perez <fperez@colorado.edu>
6620
6630
6621 * IPython/genutils.py (page_file): new function for paging files
6631 * IPython/genutils.py (page_file): new function for paging files
6622 in an OS-independent way. Also necessary for file viewing to work
6632 in an OS-independent way. Also necessary for file viewing to work
6623 well inside Emacs buffers.
6633 well inside Emacs buffers.
6624 (page): Added checks for being in an emacs buffer.
6634 (page): Added checks for being in an emacs buffer.
6625 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6635 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6626 same bug in iplib.
6636 same bug in iplib.
6627
6637
6628 2002-02-18 Fernando Perez <fperez@colorado.edu>
6638 2002-02-18 Fernando Perez <fperez@colorado.edu>
6629
6639
6630 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6640 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6631 of readline so that IPython can work inside an Emacs buffer.
6641 of readline so that IPython can work inside an Emacs buffer.
6632
6642
6633 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6643 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6634 method signatures (they weren't really bugs, but it looks cleaner
6644 method signatures (they weren't really bugs, but it looks cleaner
6635 and keeps PyChecker happy).
6645 and keeps PyChecker happy).
6636
6646
6637 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6647 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6638 for implementing various user-defined hooks. Currently only
6648 for implementing various user-defined hooks. Currently only
6639 display is done.
6649 display is done.
6640
6650
6641 * IPython/Prompts.py (CachedOutput._display): changed display
6651 * IPython/Prompts.py (CachedOutput._display): changed display
6642 functions so that they can be dynamically changed by users easily.
6652 functions so that they can be dynamically changed by users easily.
6643
6653
6644 * IPython/Extensions/numeric_formats.py (num_display): added an
6654 * IPython/Extensions/numeric_formats.py (num_display): added an
6645 extension for printing NumPy arrays in flexible manners. It
6655 extension for printing NumPy arrays in flexible manners. It
6646 doesn't do anything yet, but all the structure is in
6656 doesn't do anything yet, but all the structure is in
6647 place. Ultimately the plan is to implement output format control
6657 place. Ultimately the plan is to implement output format control
6648 like in Octave.
6658 like in Octave.
6649
6659
6650 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6660 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6651 methods are found at run-time by all the automatic machinery.
6661 methods are found at run-time by all the automatic machinery.
6652
6662
6653 2002-02-17 Fernando Perez <fperez@colorado.edu>
6663 2002-02-17 Fernando Perez <fperez@colorado.edu>
6654
6664
6655 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6665 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6656 whole file a little.
6666 whole file a little.
6657
6667
6658 * ToDo: closed this document. Now there's a new_design.lyx
6668 * ToDo: closed this document. Now there's a new_design.lyx
6659 document for all new ideas. Added making a pdf of it for the
6669 document for all new ideas. Added making a pdf of it for the
6660 end-user distro.
6670 end-user distro.
6661
6671
6662 * IPython/Logger.py (Logger.switch_log): Created this to replace
6672 * IPython/Logger.py (Logger.switch_log): Created this to replace
6663 logon() and logoff(). It also fixes a nasty crash reported by
6673 logon() and logoff(). It also fixes a nasty crash reported by
6664 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6674 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6665
6675
6666 * IPython/iplib.py (complete): got auto-completion to work with
6676 * IPython/iplib.py (complete): got auto-completion to work with
6667 automagic (I had wanted this for a long time).
6677 automagic (I had wanted this for a long time).
6668
6678
6669 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6679 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6670 to @file, since file() is now a builtin and clashes with automagic
6680 to @file, since file() is now a builtin and clashes with automagic
6671 for @file.
6681 for @file.
6672
6682
6673 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6683 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6674 of this was previously in iplib, which had grown to more than 2000
6684 of this was previously in iplib, which had grown to more than 2000
6675 lines, way too long. No new functionality, but it makes managing
6685 lines, way too long. No new functionality, but it makes managing
6676 the code a bit easier.
6686 the code a bit easier.
6677
6687
6678 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6688 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6679 information to crash reports.
6689 information to crash reports.
6680
6690
6681 2002-02-12 Fernando Perez <fperez@colorado.edu>
6691 2002-02-12 Fernando Perez <fperez@colorado.edu>
6682
6692
6683 * Released 0.2.5.
6693 * Released 0.2.5.
6684
6694
6685 2002-02-11 Fernando Perez <fperez@colorado.edu>
6695 2002-02-11 Fernando Perez <fperez@colorado.edu>
6686
6696
6687 * Wrote a relatively complete Windows installer. It puts
6697 * Wrote a relatively complete Windows installer. It puts
6688 everything in place, creates Start Menu entries and fixes the
6698 everything in place, creates Start Menu entries and fixes the
6689 color issues. Nothing fancy, but it works.
6699 color issues. Nothing fancy, but it works.
6690
6700
6691 2002-02-10 Fernando Perez <fperez@colorado.edu>
6701 2002-02-10 Fernando Perez <fperez@colorado.edu>
6692
6702
6693 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6703 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6694 os.path.expanduser() call so that we can type @run ~/myfile.py and
6704 os.path.expanduser() call so that we can type @run ~/myfile.py and
6695 have thigs work as expected.
6705 have thigs work as expected.
6696
6706
6697 * IPython/genutils.py (page): fixed exception handling so things
6707 * IPython/genutils.py (page): fixed exception handling so things
6698 work both in Unix and Windows correctly. Quitting a pager triggers
6708 work both in Unix and Windows correctly. Quitting a pager triggers
6699 an IOError/broken pipe in Unix, and in windows not finding a pager
6709 an IOError/broken pipe in Unix, and in windows not finding a pager
6700 is also an IOError, so I had to actually look at the return value
6710 is also an IOError, so I had to actually look at the return value
6701 of the exception, not just the exception itself. Should be ok now.
6711 of the exception, not just the exception itself. Should be ok now.
6702
6712
6703 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6713 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6704 modified to allow case-insensitive color scheme changes.
6714 modified to allow case-insensitive color scheme changes.
6705
6715
6706 2002-02-09 Fernando Perez <fperez@colorado.edu>
6716 2002-02-09 Fernando Perez <fperez@colorado.edu>
6707
6717
6708 * IPython/genutils.py (native_line_ends): new function to leave
6718 * IPython/genutils.py (native_line_ends): new function to leave
6709 user config files with os-native line-endings.
6719 user config files with os-native line-endings.
6710
6720
6711 * README and manual updates.
6721 * README and manual updates.
6712
6722
6713 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6723 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6714 instead of StringType to catch Unicode strings.
6724 instead of StringType to catch Unicode strings.
6715
6725
6716 * IPython/genutils.py (filefind): fixed bug for paths with
6726 * IPython/genutils.py (filefind): fixed bug for paths with
6717 embedded spaces (very common in Windows).
6727 embedded spaces (very common in Windows).
6718
6728
6719 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6729 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6720 files under Windows, so that they get automatically associated
6730 files under Windows, so that they get automatically associated
6721 with a text editor. Windows makes it a pain to handle
6731 with a text editor. Windows makes it a pain to handle
6722 extension-less files.
6732 extension-less files.
6723
6733
6724 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6734 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6725 warning about readline only occur for Posix. In Windows there's no
6735 warning about readline only occur for Posix. In Windows there's no
6726 way to get readline, so why bother with the warning.
6736 way to get readline, so why bother with the warning.
6727
6737
6728 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6738 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6729 for __str__ instead of dir(self), since dir() changed in 2.2.
6739 for __str__ instead of dir(self), since dir() changed in 2.2.
6730
6740
6731 * Ported to Windows! Tested on XP, I suspect it should work fine
6741 * Ported to Windows! Tested on XP, I suspect it should work fine
6732 on NT/2000, but I don't think it will work on 98 et al. That
6742 on NT/2000, but I don't think it will work on 98 et al. That
6733 series of Windows is such a piece of junk anyway that I won't try
6743 series of Windows is such a piece of junk anyway that I won't try
6734 porting it there. The XP port was straightforward, showed a few
6744 porting it there. The XP port was straightforward, showed a few
6735 bugs here and there (fixed all), in particular some string
6745 bugs here and there (fixed all), in particular some string
6736 handling stuff which required considering Unicode strings (which
6746 handling stuff which required considering Unicode strings (which
6737 Windows uses). This is good, but hasn't been too tested :) No
6747 Windows uses). This is good, but hasn't been too tested :) No
6738 fancy installer yet, I'll put a note in the manual so people at
6748 fancy installer yet, I'll put a note in the manual so people at
6739 least make manually a shortcut.
6749 least make manually a shortcut.
6740
6750
6741 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6751 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6742 into a single one, "colors". This now controls both prompt and
6752 into a single one, "colors". This now controls both prompt and
6743 exception color schemes, and can be changed both at startup
6753 exception color schemes, and can be changed both at startup
6744 (either via command-line switches or via ipythonrc files) and at
6754 (either via command-line switches or via ipythonrc files) and at
6745 runtime, with @colors.
6755 runtime, with @colors.
6746 (Magic.magic_run): renamed @prun to @run and removed the old
6756 (Magic.magic_run): renamed @prun to @run and removed the old
6747 @run. The two were too similar to warrant keeping both.
6757 @run. The two were too similar to warrant keeping both.
6748
6758
6749 2002-02-03 Fernando Perez <fperez@colorado.edu>
6759 2002-02-03 Fernando Perez <fperez@colorado.edu>
6750
6760
6751 * IPython/iplib.py (install_first_time): Added comment on how to
6761 * IPython/iplib.py (install_first_time): Added comment on how to
6752 configure the color options for first-time users. Put a <return>
6762 configure the color options for first-time users. Put a <return>
6753 request at the end so that small-terminal users get a chance to
6763 request at the end so that small-terminal users get a chance to
6754 read the startup info.
6764 read the startup info.
6755
6765
6756 2002-01-23 Fernando Perez <fperez@colorado.edu>
6766 2002-01-23 Fernando Perez <fperez@colorado.edu>
6757
6767
6758 * IPython/iplib.py (CachedOutput.update): Changed output memory
6768 * IPython/iplib.py (CachedOutput.update): Changed output memory
6759 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6769 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6760 input history we still use _i. Did this b/c these variable are
6770 input history we still use _i. Did this b/c these variable are
6761 very commonly used in interactive work, so the less we need to
6771 very commonly used in interactive work, so the less we need to
6762 type the better off we are.
6772 type the better off we are.
6763 (Magic.magic_prun): updated @prun to better handle the namespaces
6773 (Magic.magic_prun): updated @prun to better handle the namespaces
6764 the file will run in, including a fix for __name__ not being set
6774 the file will run in, including a fix for __name__ not being set
6765 before.
6775 before.
6766
6776
6767 2002-01-20 Fernando Perez <fperez@colorado.edu>
6777 2002-01-20 Fernando Perez <fperez@colorado.edu>
6768
6778
6769 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6779 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6770 extra garbage for Python 2.2. Need to look more carefully into
6780 extra garbage for Python 2.2. Need to look more carefully into
6771 this later.
6781 this later.
6772
6782
6773 2002-01-19 Fernando Perez <fperez@colorado.edu>
6783 2002-01-19 Fernando Perez <fperez@colorado.edu>
6774
6784
6775 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6785 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6776 display SyntaxError exceptions properly formatted when they occur
6786 display SyntaxError exceptions properly formatted when they occur
6777 (they can be triggered by imported code).
6787 (they can be triggered by imported code).
6778
6788
6779 2002-01-18 Fernando Perez <fperez@colorado.edu>
6789 2002-01-18 Fernando Perez <fperez@colorado.edu>
6780
6790
6781 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6791 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6782 SyntaxError exceptions are reported nicely formatted, instead of
6792 SyntaxError exceptions are reported nicely formatted, instead of
6783 spitting out only offset information as before.
6793 spitting out only offset information as before.
6784 (Magic.magic_prun): Added the @prun function for executing
6794 (Magic.magic_prun): Added the @prun function for executing
6785 programs with command line args inside IPython.
6795 programs with command line args inside IPython.
6786
6796
6787 2002-01-16 Fernando Perez <fperez@colorado.edu>
6797 2002-01-16 Fernando Perez <fperez@colorado.edu>
6788
6798
6789 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6799 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6790 to *not* include the last item given in a range. This brings their
6800 to *not* include the last item given in a range. This brings their
6791 behavior in line with Python's slicing:
6801 behavior in line with Python's slicing:
6792 a[n1:n2] -> a[n1]...a[n2-1]
6802 a[n1:n2] -> a[n1]...a[n2-1]
6793 It may be a bit less convenient, but I prefer to stick to Python's
6803 It may be a bit less convenient, but I prefer to stick to Python's
6794 conventions *everywhere*, so users never have to wonder.
6804 conventions *everywhere*, so users never have to wonder.
6795 (Magic.magic_macro): Added @macro function to ease the creation of
6805 (Magic.magic_macro): Added @macro function to ease the creation of
6796 macros.
6806 macros.
6797
6807
6798 2002-01-05 Fernando Perez <fperez@colorado.edu>
6808 2002-01-05 Fernando Perez <fperez@colorado.edu>
6799
6809
6800 * Released 0.2.4.
6810 * Released 0.2.4.
6801
6811
6802 * IPython/iplib.py (Magic.magic_pdef):
6812 * IPython/iplib.py (Magic.magic_pdef):
6803 (InteractiveShell.safe_execfile): report magic lines and error
6813 (InteractiveShell.safe_execfile): report magic lines and error
6804 lines without line numbers so one can easily copy/paste them for
6814 lines without line numbers so one can easily copy/paste them for
6805 re-execution.
6815 re-execution.
6806
6816
6807 * Updated manual with recent changes.
6817 * Updated manual with recent changes.
6808
6818
6809 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6819 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6810 docstring printing when class? is called. Very handy for knowing
6820 docstring printing when class? is called. Very handy for knowing
6811 how to create class instances (as long as __init__ is well
6821 how to create class instances (as long as __init__ is well
6812 documented, of course :)
6822 documented, of course :)
6813 (Magic.magic_doc): print both class and constructor docstrings.
6823 (Magic.magic_doc): print both class and constructor docstrings.
6814 (Magic.magic_pdef): give constructor info if passed a class and
6824 (Magic.magic_pdef): give constructor info if passed a class and
6815 __call__ info for callable object instances.
6825 __call__ info for callable object instances.
6816
6826
6817 2002-01-04 Fernando Perez <fperez@colorado.edu>
6827 2002-01-04 Fernando Perez <fperez@colorado.edu>
6818
6828
6819 * Made deep_reload() off by default. It doesn't always work
6829 * Made deep_reload() off by default. It doesn't always work
6820 exactly as intended, so it's probably safer to have it off. It's
6830 exactly as intended, so it's probably safer to have it off. It's
6821 still available as dreload() anyway, so nothing is lost.
6831 still available as dreload() anyway, so nothing is lost.
6822
6832
6823 2002-01-02 Fernando Perez <fperez@colorado.edu>
6833 2002-01-02 Fernando Perez <fperez@colorado.edu>
6824
6834
6825 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6835 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6826 so I wanted an updated release).
6836 so I wanted an updated release).
6827
6837
6828 2001-12-27 Fernando Perez <fperez@colorado.edu>
6838 2001-12-27 Fernando Perez <fperez@colorado.edu>
6829
6839
6830 * IPython/iplib.py (InteractiveShell.interact): Added the original
6840 * IPython/iplib.py (InteractiveShell.interact): Added the original
6831 code from 'code.py' for this module in order to change the
6841 code from 'code.py' for this module in order to change the
6832 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6842 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6833 the history cache would break when the user hit Ctrl-C, and
6843 the history cache would break when the user hit Ctrl-C, and
6834 interact() offers no way to add any hooks to it.
6844 interact() offers no way to add any hooks to it.
6835
6845
6836 2001-12-23 Fernando Perez <fperez@colorado.edu>
6846 2001-12-23 Fernando Perez <fperez@colorado.edu>
6837
6847
6838 * setup.py: added check for 'MANIFEST' before trying to remove
6848 * setup.py: added check for 'MANIFEST' before trying to remove
6839 it. Thanks to Sean Reifschneider.
6849 it. Thanks to Sean Reifschneider.
6840
6850
6841 2001-12-22 Fernando Perez <fperez@colorado.edu>
6851 2001-12-22 Fernando Perez <fperez@colorado.edu>
6842
6852
6843 * Released 0.2.2.
6853 * Released 0.2.2.
6844
6854
6845 * Finished (reasonably) writing the manual. Later will add the
6855 * Finished (reasonably) writing the manual. Later will add the
6846 python-standard navigation stylesheets, but for the time being
6856 python-standard navigation stylesheets, but for the time being
6847 it's fairly complete. Distribution will include html and pdf
6857 it's fairly complete. Distribution will include html and pdf
6848 versions.
6858 versions.
6849
6859
6850 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6860 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6851 (MayaVi author).
6861 (MayaVi author).
6852
6862
6853 2001-12-21 Fernando Perez <fperez@colorado.edu>
6863 2001-12-21 Fernando Perez <fperez@colorado.edu>
6854
6864
6855 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6865 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6856 good public release, I think (with the manual and the distutils
6866 good public release, I think (with the manual and the distutils
6857 installer). The manual can use some work, but that can go
6867 installer). The manual can use some work, but that can go
6858 slowly. Otherwise I think it's quite nice for end users. Next
6868 slowly. Otherwise I think it's quite nice for end users. Next
6859 summer, rewrite the guts of it...
6869 summer, rewrite the guts of it...
6860
6870
6861 * Changed format of ipythonrc files to use whitespace as the
6871 * Changed format of ipythonrc files to use whitespace as the
6862 separator instead of an explicit '='. Cleaner.
6872 separator instead of an explicit '='. Cleaner.
6863
6873
6864 2001-12-20 Fernando Perez <fperez@colorado.edu>
6874 2001-12-20 Fernando Perez <fperez@colorado.edu>
6865
6875
6866 * Started a manual in LyX. For now it's just a quick merge of the
6876 * Started a manual in LyX. For now it's just a quick merge of the
6867 various internal docstrings and READMEs. Later it may grow into a
6877 various internal docstrings and READMEs. Later it may grow into a
6868 nice, full-blown manual.
6878 nice, full-blown manual.
6869
6879
6870 * Set up a distutils based installer. Installation should now be
6880 * Set up a distutils based installer. Installation should now be
6871 trivially simple for end-users.
6881 trivially simple for end-users.
6872
6882
6873 2001-12-11 Fernando Perez <fperez@colorado.edu>
6883 2001-12-11 Fernando Perez <fperez@colorado.edu>
6874
6884
6875 * Released 0.2.0. First public release, announced it at
6885 * Released 0.2.0. First public release, announced it at
6876 comp.lang.python. From now on, just bugfixes...
6886 comp.lang.python. From now on, just bugfixes...
6877
6887
6878 * Went through all the files, set copyright/license notices and
6888 * Went through all the files, set copyright/license notices and
6879 cleaned up things. Ready for release.
6889 cleaned up things. Ready for release.
6880
6890
6881 2001-12-10 Fernando Perez <fperez@colorado.edu>
6891 2001-12-10 Fernando Perez <fperez@colorado.edu>
6882
6892
6883 * Changed the first-time installer not to use tarfiles. It's more
6893 * Changed the first-time installer not to use tarfiles. It's more
6884 robust now and less unix-dependent. Also makes it easier for
6894 robust now and less unix-dependent. Also makes it easier for
6885 people to later upgrade versions.
6895 people to later upgrade versions.
6886
6896
6887 * Changed @exit to @abort to reflect the fact that it's pretty
6897 * Changed @exit to @abort to reflect the fact that it's pretty
6888 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6898 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6889 becomes significant only when IPyhton is embedded: in that case,
6899 becomes significant only when IPyhton is embedded: in that case,
6890 C-D closes IPython only, but @abort kills the enclosing program
6900 C-D closes IPython only, but @abort kills the enclosing program
6891 too (unless it had called IPython inside a try catching
6901 too (unless it had called IPython inside a try catching
6892 SystemExit).
6902 SystemExit).
6893
6903
6894 * Created Shell module which exposes the actuall IPython Shell
6904 * Created Shell module which exposes the actuall IPython Shell
6895 classes, currently the normal and the embeddable one. This at
6905 classes, currently the normal and the embeddable one. This at
6896 least offers a stable interface we won't need to change when
6906 least offers a stable interface we won't need to change when
6897 (later) the internals are rewritten. That rewrite will be confined
6907 (later) the internals are rewritten. That rewrite will be confined
6898 to iplib and ipmaker, but the Shell interface should remain as is.
6908 to iplib and ipmaker, but the Shell interface should remain as is.
6899
6909
6900 * Added embed module which offers an embeddable IPShell object,
6910 * Added embed module which offers an embeddable IPShell object,
6901 useful to fire up IPython *inside* a running program. Great for
6911 useful to fire up IPython *inside* a running program. Great for
6902 debugging or dynamical data analysis.
6912 debugging or dynamical data analysis.
6903
6913
6904 2001-12-08 Fernando Perez <fperez@colorado.edu>
6914 2001-12-08 Fernando Perez <fperez@colorado.edu>
6905
6915
6906 * Fixed small bug preventing seeing info from methods of defined
6916 * Fixed small bug preventing seeing info from methods of defined
6907 objects (incorrect namespace in _ofind()).
6917 objects (incorrect namespace in _ofind()).
6908
6918
6909 * Documentation cleanup. Moved the main usage docstrings to a
6919 * Documentation cleanup. Moved the main usage docstrings to a
6910 separate file, usage.py (cleaner to maintain, and hopefully in the
6920 separate file, usage.py (cleaner to maintain, and hopefully in the
6911 future some perlpod-like way of producing interactive, man and
6921 future some perlpod-like way of producing interactive, man and
6912 html docs out of it will be found).
6922 html docs out of it will be found).
6913
6923
6914 * Added @profile to see your profile at any time.
6924 * Added @profile to see your profile at any time.
6915
6925
6916 * Added @p as an alias for 'print'. It's especially convenient if
6926 * Added @p as an alias for 'print'. It's especially convenient if
6917 using automagic ('p x' prints x).
6927 using automagic ('p x' prints x).
6918
6928
6919 * Small cleanups and fixes after a pychecker run.
6929 * Small cleanups and fixes after a pychecker run.
6920
6930
6921 * Changed the @cd command to handle @cd - and @cd -<n> for
6931 * Changed the @cd command to handle @cd - and @cd -<n> for
6922 visiting any directory in _dh.
6932 visiting any directory in _dh.
6923
6933
6924 * Introduced _dh, a history of visited directories. @dhist prints
6934 * Introduced _dh, a history of visited directories. @dhist prints
6925 it out with numbers.
6935 it out with numbers.
6926
6936
6927 2001-12-07 Fernando Perez <fperez@colorado.edu>
6937 2001-12-07 Fernando Perez <fperez@colorado.edu>
6928
6938
6929 * Released 0.1.22
6939 * Released 0.1.22
6930
6940
6931 * Made initialization a bit more robust against invalid color
6941 * Made initialization a bit more robust against invalid color
6932 options in user input (exit, not traceback-crash).
6942 options in user input (exit, not traceback-crash).
6933
6943
6934 * Changed the bug crash reporter to write the report only in the
6944 * Changed the bug crash reporter to write the report only in the
6935 user's .ipython directory. That way IPython won't litter people's
6945 user's .ipython directory. That way IPython won't litter people's
6936 hard disks with crash files all over the place. Also print on
6946 hard disks with crash files all over the place. Also print on
6937 screen the necessary mail command.
6947 screen the necessary mail command.
6938
6948
6939 * With the new ultraTB, implemented LightBG color scheme for light
6949 * With the new ultraTB, implemented LightBG color scheme for light
6940 background terminals. A lot of people like white backgrounds, so I
6950 background terminals. A lot of people like white backgrounds, so I
6941 guess we should at least give them something readable.
6951 guess we should at least give them something readable.
6942
6952
6943 2001-12-06 Fernando Perez <fperez@colorado.edu>
6953 2001-12-06 Fernando Perez <fperez@colorado.edu>
6944
6954
6945 * Modified the structure of ultraTB. Now there's a proper class
6955 * Modified the structure of ultraTB. Now there's a proper class
6946 for tables of color schemes which allow adding schemes easily and
6956 for tables of color schemes which allow adding schemes easily and
6947 switching the active scheme without creating a new instance every
6957 switching the active scheme without creating a new instance every
6948 time (which was ridiculous). The syntax for creating new schemes
6958 time (which was ridiculous). The syntax for creating new schemes
6949 is also cleaner. I think ultraTB is finally done, with a clean
6959 is also cleaner. I think ultraTB is finally done, with a clean
6950 class structure. Names are also much cleaner (now there's proper
6960 class structure. Names are also much cleaner (now there's proper
6951 color tables, no need for every variable to also have 'color' in
6961 color tables, no need for every variable to also have 'color' in
6952 its name).
6962 its name).
6953
6963
6954 * Broke down genutils into separate files. Now genutils only
6964 * Broke down genutils into separate files. Now genutils only
6955 contains utility functions, and classes have been moved to their
6965 contains utility functions, and classes have been moved to their
6956 own files (they had enough independent functionality to warrant
6966 own files (they had enough independent functionality to warrant
6957 it): ConfigLoader, OutputTrap, Struct.
6967 it): ConfigLoader, OutputTrap, Struct.
6958
6968
6959 2001-12-05 Fernando Perez <fperez@colorado.edu>
6969 2001-12-05 Fernando Perez <fperez@colorado.edu>
6960
6970
6961 * IPython turns 21! Released version 0.1.21, as a candidate for
6971 * IPython turns 21! Released version 0.1.21, as a candidate for
6962 public consumption. If all goes well, release in a few days.
6972 public consumption. If all goes well, release in a few days.
6963
6973
6964 * Fixed path bug (files in Extensions/ directory wouldn't be found
6974 * Fixed path bug (files in Extensions/ directory wouldn't be found
6965 unless IPython/ was explicitly in sys.path).
6975 unless IPython/ was explicitly in sys.path).
6966
6976
6967 * Extended the FlexCompleter class as MagicCompleter to allow
6977 * Extended the FlexCompleter class as MagicCompleter to allow
6968 completion of @-starting lines.
6978 completion of @-starting lines.
6969
6979
6970 * Created __release__.py file as a central repository for release
6980 * Created __release__.py file as a central repository for release
6971 info that other files can read from.
6981 info that other files can read from.
6972
6982
6973 * Fixed small bug in logging: when logging was turned on in
6983 * Fixed small bug in logging: when logging was turned on in
6974 mid-session, old lines with special meanings (!@?) were being
6984 mid-session, old lines with special meanings (!@?) were being
6975 logged without the prepended comment, which is necessary since
6985 logged without the prepended comment, which is necessary since
6976 they are not truly valid python syntax. This should make session
6986 they are not truly valid python syntax. This should make session
6977 restores produce less errors.
6987 restores produce less errors.
6978
6988
6979 * The namespace cleanup forced me to make a FlexCompleter class
6989 * The namespace cleanup forced me to make a FlexCompleter class
6980 which is nothing but a ripoff of rlcompleter, but with selectable
6990 which is nothing but a ripoff of rlcompleter, but with selectable
6981 namespace (rlcompleter only works in __main__.__dict__). I'll try
6991 namespace (rlcompleter only works in __main__.__dict__). I'll try
6982 to submit a note to the authors to see if this change can be
6992 to submit a note to the authors to see if this change can be
6983 incorporated in future rlcompleter releases (Dec.6: done)
6993 incorporated in future rlcompleter releases (Dec.6: done)
6984
6994
6985 * More fixes to namespace handling. It was a mess! Now all
6995 * More fixes to namespace handling. It was a mess! Now all
6986 explicit references to __main__.__dict__ are gone (except when
6996 explicit references to __main__.__dict__ are gone (except when
6987 really needed) and everything is handled through the namespace
6997 really needed) and everything is handled through the namespace
6988 dicts in the IPython instance. We seem to be getting somewhere
6998 dicts in the IPython instance. We seem to be getting somewhere
6989 with this, finally...
6999 with this, finally...
6990
7000
6991 * Small documentation updates.
7001 * Small documentation updates.
6992
7002
6993 * Created the Extensions directory under IPython (with an
7003 * Created the Extensions directory under IPython (with an
6994 __init__.py). Put the PhysicalQ stuff there. This directory should
7004 __init__.py). Put the PhysicalQ stuff there. This directory should
6995 be used for all special-purpose extensions.
7005 be used for all special-purpose extensions.
6996
7006
6997 * File renaming:
7007 * File renaming:
6998 ipythonlib --> ipmaker
7008 ipythonlib --> ipmaker
6999 ipplib --> iplib
7009 ipplib --> iplib
7000 This makes a bit more sense in terms of what these files actually do.
7010 This makes a bit more sense in terms of what these files actually do.
7001
7011
7002 * Moved all the classes and functions in ipythonlib to ipplib, so
7012 * Moved all the classes and functions in ipythonlib to ipplib, so
7003 now ipythonlib only has make_IPython(). This will ease up its
7013 now ipythonlib only has make_IPython(). This will ease up its
7004 splitting in smaller functional chunks later.
7014 splitting in smaller functional chunks later.
7005
7015
7006 * Cleaned up (done, I think) output of @whos. Better column
7016 * Cleaned up (done, I think) output of @whos. Better column
7007 formatting, and now shows str(var) for as much as it can, which is
7017 formatting, and now shows str(var) for as much as it can, which is
7008 typically what one gets with a 'print var'.
7018 typically what one gets with a 'print var'.
7009
7019
7010 2001-12-04 Fernando Perez <fperez@colorado.edu>
7020 2001-12-04 Fernando Perez <fperez@colorado.edu>
7011
7021
7012 * Fixed namespace problems. Now builtin/IPyhton/user names get
7022 * Fixed namespace problems. Now builtin/IPyhton/user names get
7013 properly reported in their namespace. Internal namespace handling
7023 properly reported in their namespace. Internal namespace handling
7014 is finally getting decent (not perfect yet, but much better than
7024 is finally getting decent (not perfect yet, but much better than
7015 the ad-hoc mess we had).
7025 the ad-hoc mess we had).
7016
7026
7017 * Removed -exit option. If people just want to run a python
7027 * Removed -exit option. If people just want to run a python
7018 script, that's what the normal interpreter is for. Less
7028 script, that's what the normal interpreter is for. Less
7019 unnecessary options, less chances for bugs.
7029 unnecessary options, less chances for bugs.
7020
7030
7021 * Added a crash handler which generates a complete post-mortem if
7031 * Added a crash handler which generates a complete post-mortem if
7022 IPython crashes. This will help a lot in tracking bugs down the
7032 IPython crashes. This will help a lot in tracking bugs down the
7023 road.
7033 road.
7024
7034
7025 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7035 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7026 which were boud to functions being reassigned would bypass the
7036 which were boud to functions being reassigned would bypass the
7027 logger, breaking the sync of _il with the prompt counter. This
7037 logger, breaking the sync of _il with the prompt counter. This
7028 would then crash IPython later when a new line was logged.
7038 would then crash IPython later when a new line was logged.
7029
7039
7030 2001-12-02 Fernando Perez <fperez@colorado.edu>
7040 2001-12-02 Fernando Perez <fperez@colorado.edu>
7031
7041
7032 * Made IPython a package. This means people don't have to clutter
7042 * Made IPython a package. This means people don't have to clutter
7033 their sys.path with yet another directory. Changed the INSTALL
7043 their sys.path with yet another directory. Changed the INSTALL
7034 file accordingly.
7044 file accordingly.
7035
7045
7036 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7046 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7037 sorts its output (so @who shows it sorted) and @whos formats the
7047 sorts its output (so @who shows it sorted) and @whos formats the
7038 table according to the width of the first column. Nicer, easier to
7048 table according to the width of the first column. Nicer, easier to
7039 read. Todo: write a generic table_format() which takes a list of
7049 read. Todo: write a generic table_format() which takes a list of
7040 lists and prints it nicely formatted, with optional row/column
7050 lists and prints it nicely formatted, with optional row/column
7041 separators and proper padding and justification.
7051 separators and proper padding and justification.
7042
7052
7043 * Released 0.1.20
7053 * Released 0.1.20
7044
7054
7045 * Fixed bug in @log which would reverse the inputcache list (a
7055 * Fixed bug in @log which would reverse the inputcache list (a
7046 copy operation was missing).
7056 copy operation was missing).
7047
7057
7048 * Code cleanup. @config was changed to use page(). Better, since
7058 * Code cleanup. @config was changed to use page(). Better, since
7049 its output is always quite long.
7059 its output is always quite long.
7050
7060
7051 * Itpl is back as a dependency. I was having too many problems
7061 * Itpl is back as a dependency. I was having too many problems
7052 getting the parametric aliases to work reliably, and it's just
7062 getting the parametric aliases to work reliably, and it's just
7053 easier to code weird string operations with it than playing %()s
7063 easier to code weird string operations with it than playing %()s
7054 games. It's only ~6k, so I don't think it's too big a deal.
7064 games. It's only ~6k, so I don't think it's too big a deal.
7055
7065
7056 * Found (and fixed) a very nasty bug with history. !lines weren't
7066 * Found (and fixed) a very nasty bug with history. !lines weren't
7057 getting cached, and the out of sync caches would crash
7067 getting cached, and the out of sync caches would crash
7058 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7068 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7059 division of labor a bit better. Bug fixed, cleaner structure.
7069 division of labor a bit better. Bug fixed, cleaner structure.
7060
7070
7061 2001-12-01 Fernando Perez <fperez@colorado.edu>
7071 2001-12-01 Fernando Perez <fperez@colorado.edu>
7062
7072
7063 * Released 0.1.19
7073 * Released 0.1.19
7064
7074
7065 * Added option -n to @hist to prevent line number printing. Much
7075 * Added option -n to @hist to prevent line number printing. Much
7066 easier to copy/paste code this way.
7076 easier to copy/paste code this way.
7067
7077
7068 * Created global _il to hold the input list. Allows easy
7078 * Created global _il to hold the input list. Allows easy
7069 re-execution of blocks of code by slicing it (inspired by Janko's
7079 re-execution of blocks of code by slicing it (inspired by Janko's
7070 comment on 'macros').
7080 comment on 'macros').
7071
7081
7072 * Small fixes and doc updates.
7082 * Small fixes and doc updates.
7073
7083
7074 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7084 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7075 much too fragile with automagic. Handles properly multi-line
7085 much too fragile with automagic. Handles properly multi-line
7076 statements and takes parameters.
7086 statements and takes parameters.
7077
7087
7078 2001-11-30 Fernando Perez <fperez@colorado.edu>
7088 2001-11-30 Fernando Perez <fperez@colorado.edu>
7079
7089
7080 * Version 0.1.18 released.
7090 * Version 0.1.18 released.
7081
7091
7082 * Fixed nasty namespace bug in initial module imports.
7092 * Fixed nasty namespace bug in initial module imports.
7083
7093
7084 * Added copyright/license notes to all code files (except
7094 * Added copyright/license notes to all code files (except
7085 DPyGetOpt). For the time being, LGPL. That could change.
7095 DPyGetOpt). For the time being, LGPL. That could change.
7086
7096
7087 * Rewrote a much nicer README, updated INSTALL, cleaned up
7097 * Rewrote a much nicer README, updated INSTALL, cleaned up
7088 ipythonrc-* samples.
7098 ipythonrc-* samples.
7089
7099
7090 * Overall code/documentation cleanup. Basically ready for
7100 * Overall code/documentation cleanup. Basically ready for
7091 release. Only remaining thing: licence decision (LGPL?).
7101 release. Only remaining thing: licence decision (LGPL?).
7092
7102
7093 * Converted load_config to a class, ConfigLoader. Now recursion
7103 * Converted load_config to a class, ConfigLoader. Now recursion
7094 control is better organized. Doesn't include the same file twice.
7104 control is better organized. Doesn't include the same file twice.
7095
7105
7096 2001-11-29 Fernando Perez <fperez@colorado.edu>
7106 2001-11-29 Fernando Perez <fperez@colorado.edu>
7097
7107
7098 * Got input history working. Changed output history variables from
7108 * Got input history working. Changed output history variables from
7099 _p to _o so that _i is for input and _o for output. Just cleaner
7109 _p to _o so that _i is for input and _o for output. Just cleaner
7100 convention.
7110 convention.
7101
7111
7102 * Implemented parametric aliases. This pretty much allows the
7112 * Implemented parametric aliases. This pretty much allows the
7103 alias system to offer full-blown shell convenience, I think.
7113 alias system to offer full-blown shell convenience, I think.
7104
7114
7105 * Version 0.1.17 released, 0.1.18 opened.
7115 * Version 0.1.17 released, 0.1.18 opened.
7106
7116
7107 * dot_ipython/ipythonrc (alias): added documentation.
7117 * dot_ipython/ipythonrc (alias): added documentation.
7108 (xcolor): Fixed small bug (xcolors -> xcolor)
7118 (xcolor): Fixed small bug (xcolors -> xcolor)
7109
7119
7110 * Changed the alias system. Now alias is a magic command to define
7120 * Changed the alias system. Now alias is a magic command to define
7111 aliases just like the shell. Rationale: the builtin magics should
7121 aliases just like the shell. Rationale: the builtin magics should
7112 be there for things deeply connected to IPython's
7122 be there for things deeply connected to IPython's
7113 architecture. And this is a much lighter system for what I think
7123 architecture. And this is a much lighter system for what I think
7114 is the really important feature: allowing users to define quickly
7124 is the really important feature: allowing users to define quickly
7115 magics that will do shell things for them, so they can customize
7125 magics that will do shell things for them, so they can customize
7116 IPython easily to match their work habits. If someone is really
7126 IPython easily to match their work habits. If someone is really
7117 desperate to have another name for a builtin alias, they can
7127 desperate to have another name for a builtin alias, they can
7118 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7128 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7119 works.
7129 works.
7120
7130
7121 2001-11-28 Fernando Perez <fperez@colorado.edu>
7131 2001-11-28 Fernando Perez <fperez@colorado.edu>
7122
7132
7123 * Changed @file so that it opens the source file at the proper
7133 * Changed @file so that it opens the source file at the proper
7124 line. Since it uses less, if your EDITOR environment is
7134 line. Since it uses less, if your EDITOR environment is
7125 configured, typing v will immediately open your editor of choice
7135 configured, typing v will immediately open your editor of choice
7126 right at the line where the object is defined. Not as quick as
7136 right at the line where the object is defined. Not as quick as
7127 having a direct @edit command, but for all intents and purposes it
7137 having a direct @edit command, but for all intents and purposes it
7128 works. And I don't have to worry about writing @edit to deal with
7138 works. And I don't have to worry about writing @edit to deal with
7129 all the editors, less does that.
7139 all the editors, less does that.
7130
7140
7131 * Version 0.1.16 released, 0.1.17 opened.
7141 * Version 0.1.16 released, 0.1.17 opened.
7132
7142
7133 * Fixed some nasty bugs in the page/page_dumb combo that could
7143 * Fixed some nasty bugs in the page/page_dumb combo that could
7134 crash IPython.
7144 crash IPython.
7135
7145
7136 2001-11-27 Fernando Perez <fperez@colorado.edu>
7146 2001-11-27 Fernando Perez <fperez@colorado.edu>
7137
7147
7138 * Version 0.1.15 released, 0.1.16 opened.
7148 * Version 0.1.15 released, 0.1.16 opened.
7139
7149
7140 * Finally got ? and ?? to work for undefined things: now it's
7150 * Finally got ? and ?? to work for undefined things: now it's
7141 possible to type {}.get? and get information about the get method
7151 possible to type {}.get? and get information about the get method
7142 of dicts, or os.path? even if only os is defined (so technically
7152 of dicts, or os.path? even if only os is defined (so technically
7143 os.path isn't). Works at any level. For example, after import os,
7153 os.path isn't). Works at any level. For example, after import os,
7144 os?, os.path?, os.path.abspath? all work. This is great, took some
7154 os?, os.path?, os.path.abspath? all work. This is great, took some
7145 work in _ofind.
7155 work in _ofind.
7146
7156
7147 * Fixed more bugs with logging. The sanest way to do it was to add
7157 * Fixed more bugs with logging. The sanest way to do it was to add
7148 to @log a 'mode' parameter. Killed two in one shot (this mode
7158 to @log a 'mode' parameter. Killed two in one shot (this mode
7149 option was a request of Janko's). I think it's finally clean
7159 option was a request of Janko's). I think it's finally clean
7150 (famous last words).
7160 (famous last words).
7151
7161
7152 * Added a page_dumb() pager which does a decent job of paging on
7162 * Added a page_dumb() pager which does a decent job of paging on
7153 screen, if better things (like less) aren't available. One less
7163 screen, if better things (like less) aren't available. One less
7154 unix dependency (someday maybe somebody will port this to
7164 unix dependency (someday maybe somebody will port this to
7155 windows).
7165 windows).
7156
7166
7157 * Fixed problem in magic_log: would lock of logging out if log
7167 * Fixed problem in magic_log: would lock of logging out if log
7158 creation failed (because it would still think it had succeeded).
7168 creation failed (because it would still think it had succeeded).
7159
7169
7160 * Improved the page() function using curses to auto-detect screen
7170 * Improved the page() function using curses to auto-detect screen
7161 size. Now it can make a much better decision on whether to print
7171 size. Now it can make a much better decision on whether to print
7162 or page a string. Option screen_length was modified: a value 0
7172 or page a string. Option screen_length was modified: a value 0
7163 means auto-detect, and that's the default now.
7173 means auto-detect, and that's the default now.
7164
7174
7165 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7175 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7166 go out. I'll test it for a few days, then talk to Janko about
7176 go out. I'll test it for a few days, then talk to Janko about
7167 licences and announce it.
7177 licences and announce it.
7168
7178
7169 * Fixed the length of the auto-generated ---> prompt which appears
7179 * Fixed the length of the auto-generated ---> prompt which appears
7170 for auto-parens and auto-quotes. Getting this right isn't trivial,
7180 for auto-parens and auto-quotes. Getting this right isn't trivial,
7171 with all the color escapes, different prompt types and optional
7181 with all the color escapes, different prompt types and optional
7172 separators. But it seems to be working in all the combinations.
7182 separators. But it seems to be working in all the combinations.
7173
7183
7174 2001-11-26 Fernando Perez <fperez@colorado.edu>
7184 2001-11-26 Fernando Perez <fperez@colorado.edu>
7175
7185
7176 * Wrote a regexp filter to get option types from the option names
7186 * Wrote a regexp filter to get option types from the option names
7177 string. This eliminates the need to manually keep two duplicate
7187 string. This eliminates the need to manually keep two duplicate
7178 lists.
7188 lists.
7179
7189
7180 * Removed the unneeded check_option_names. Now options are handled
7190 * Removed the unneeded check_option_names. Now options are handled
7181 in a much saner manner and it's easy to visually check that things
7191 in a much saner manner and it's easy to visually check that things
7182 are ok.
7192 are ok.
7183
7193
7184 * Updated version numbers on all files I modified to carry a
7194 * Updated version numbers on all files I modified to carry a
7185 notice so Janko and Nathan have clear version markers.
7195 notice so Janko and Nathan have clear version markers.
7186
7196
7187 * Updated docstring for ultraTB with my changes. I should send
7197 * Updated docstring for ultraTB with my changes. I should send
7188 this to Nathan.
7198 this to Nathan.
7189
7199
7190 * Lots of small fixes. Ran everything through pychecker again.
7200 * Lots of small fixes. Ran everything through pychecker again.
7191
7201
7192 * Made loading of deep_reload an cmd line option. If it's not too
7202 * Made loading of deep_reload an cmd line option. If it's not too
7193 kosher, now people can just disable it. With -nodeep_reload it's
7203 kosher, now people can just disable it. With -nodeep_reload it's
7194 still available as dreload(), it just won't overwrite reload().
7204 still available as dreload(), it just won't overwrite reload().
7195
7205
7196 * Moved many options to the no| form (-opt and -noopt
7206 * Moved many options to the no| form (-opt and -noopt
7197 accepted). Cleaner.
7207 accepted). Cleaner.
7198
7208
7199 * Changed magic_log so that if called with no parameters, it uses
7209 * Changed magic_log so that if called with no parameters, it uses
7200 'rotate' mode. That way auto-generated logs aren't automatically
7210 'rotate' mode. That way auto-generated logs aren't automatically
7201 over-written. For normal logs, now a backup is made if it exists
7211 over-written. For normal logs, now a backup is made if it exists
7202 (only 1 level of backups). A new 'backup' mode was added to the
7212 (only 1 level of backups). A new 'backup' mode was added to the
7203 Logger class to support this. This was a request by Janko.
7213 Logger class to support this. This was a request by Janko.
7204
7214
7205 * Added @logoff/@logon to stop/restart an active log.
7215 * Added @logoff/@logon to stop/restart an active log.
7206
7216
7207 * Fixed a lot of bugs in log saving/replay. It was pretty
7217 * Fixed a lot of bugs in log saving/replay. It was pretty
7208 broken. Now special lines (!@,/) appear properly in the command
7218 broken. Now special lines (!@,/) appear properly in the command
7209 history after a log replay.
7219 history after a log replay.
7210
7220
7211 * Tried and failed to implement full session saving via pickle. My
7221 * Tried and failed to implement full session saving via pickle. My
7212 idea was to pickle __main__.__dict__, but modules can't be
7222 idea was to pickle __main__.__dict__, but modules can't be
7213 pickled. This would be a better alternative to replaying logs, but
7223 pickled. This would be a better alternative to replaying logs, but
7214 seems quite tricky to get to work. Changed -session to be called
7224 seems quite tricky to get to work. Changed -session to be called
7215 -logplay, which more accurately reflects what it does. And if we
7225 -logplay, which more accurately reflects what it does. And if we
7216 ever get real session saving working, -session is now available.
7226 ever get real session saving working, -session is now available.
7217
7227
7218 * Implemented color schemes for prompts also. As for tracebacks,
7228 * Implemented color schemes for prompts also. As for tracebacks,
7219 currently only NoColor and Linux are supported. But now the
7229 currently only NoColor and Linux are supported. But now the
7220 infrastructure is in place, based on a generic ColorScheme
7230 infrastructure is in place, based on a generic ColorScheme
7221 class. So writing and activating new schemes both for the prompts
7231 class. So writing and activating new schemes both for the prompts
7222 and the tracebacks should be straightforward.
7232 and the tracebacks should be straightforward.
7223
7233
7224 * Version 0.1.13 released, 0.1.14 opened.
7234 * Version 0.1.13 released, 0.1.14 opened.
7225
7235
7226 * Changed handling of options for output cache. Now counter is
7236 * Changed handling of options for output cache. Now counter is
7227 hardwired starting at 1 and one specifies the maximum number of
7237 hardwired starting at 1 and one specifies the maximum number of
7228 entries *in the outcache* (not the max prompt counter). This is
7238 entries *in the outcache* (not the max prompt counter). This is
7229 much better, since many statements won't increase the cache
7239 much better, since many statements won't increase the cache
7230 count. It also eliminated some confusing options, now there's only
7240 count. It also eliminated some confusing options, now there's only
7231 one: cache_size.
7241 one: cache_size.
7232
7242
7233 * Added 'alias' magic function and magic_alias option in the
7243 * Added 'alias' magic function and magic_alias option in the
7234 ipythonrc file. Now the user can easily define whatever names he
7244 ipythonrc file. Now the user can easily define whatever names he
7235 wants for the magic functions without having to play weird
7245 wants for the magic functions without having to play weird
7236 namespace games. This gives IPython a real shell-like feel.
7246 namespace games. This gives IPython a real shell-like feel.
7237
7247
7238 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7248 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7239 @ or not).
7249 @ or not).
7240
7250
7241 This was one of the last remaining 'visible' bugs (that I know
7251 This was one of the last remaining 'visible' bugs (that I know
7242 of). I think if I can clean up the session loading so it works
7252 of). I think if I can clean up the session loading so it works
7243 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7253 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7244 about licensing).
7254 about licensing).
7245
7255
7246 2001-11-25 Fernando Perez <fperez@colorado.edu>
7256 2001-11-25 Fernando Perez <fperez@colorado.edu>
7247
7257
7248 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7258 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7249 there's a cleaner distinction between what ? and ?? show.
7259 there's a cleaner distinction between what ? and ?? show.
7250
7260
7251 * Added screen_length option. Now the user can define his own
7261 * Added screen_length option. Now the user can define his own
7252 screen size for page() operations.
7262 screen size for page() operations.
7253
7263
7254 * Implemented magic shell-like functions with automatic code
7264 * Implemented magic shell-like functions with automatic code
7255 generation. Now adding another function is just a matter of adding
7265 generation. Now adding another function is just a matter of adding
7256 an entry to a dict, and the function is dynamically generated at
7266 an entry to a dict, and the function is dynamically generated at
7257 run-time. Python has some really cool features!
7267 run-time. Python has some really cool features!
7258
7268
7259 * Renamed many options to cleanup conventions a little. Now all
7269 * Renamed many options to cleanup conventions a little. Now all
7260 are lowercase, and only underscores where needed. Also in the code
7270 are lowercase, and only underscores where needed. Also in the code
7261 option name tables are clearer.
7271 option name tables are clearer.
7262
7272
7263 * Changed prompts a little. Now input is 'In [n]:' instead of
7273 * Changed prompts a little. Now input is 'In [n]:' instead of
7264 'In[n]:='. This allows it the numbers to be aligned with the
7274 'In[n]:='. This allows it the numbers to be aligned with the
7265 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7275 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7266 Python (it was a Mathematica thing). The '...' continuation prompt
7276 Python (it was a Mathematica thing). The '...' continuation prompt
7267 was also changed a little to align better.
7277 was also changed a little to align better.
7268
7278
7269 * Fixed bug when flushing output cache. Not all _p<n> variables
7279 * Fixed bug when flushing output cache. Not all _p<n> variables
7270 exist, so their deletion needs to be wrapped in a try:
7280 exist, so their deletion needs to be wrapped in a try:
7271
7281
7272 * Figured out how to properly use inspect.formatargspec() (it
7282 * Figured out how to properly use inspect.formatargspec() (it
7273 requires the args preceded by *). So I removed all the code from
7283 requires the args preceded by *). So I removed all the code from
7274 _get_pdef in Magic, which was just replicating that.
7284 _get_pdef in Magic, which was just replicating that.
7275
7285
7276 * Added test to prefilter to allow redefining magic function names
7286 * Added test to prefilter to allow redefining magic function names
7277 as variables. This is ok, since the @ form is always available,
7287 as variables. This is ok, since the @ form is always available,
7278 but whe should allow the user to define a variable called 'ls' if
7288 but whe should allow the user to define a variable called 'ls' if
7279 he needs it.
7289 he needs it.
7280
7290
7281 * Moved the ToDo information from README into a separate ToDo.
7291 * Moved the ToDo information from README into a separate ToDo.
7282
7292
7283 * General code cleanup and small bugfixes. I think it's close to a
7293 * General code cleanup and small bugfixes. I think it's close to a
7284 state where it can be released, obviously with a big 'beta'
7294 state where it can be released, obviously with a big 'beta'
7285 warning on it.
7295 warning on it.
7286
7296
7287 * Got the magic function split to work. Now all magics are defined
7297 * Got the magic function split to work. Now all magics are defined
7288 in a separate class. It just organizes things a bit, and now
7298 in a separate class. It just organizes things a bit, and now
7289 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7299 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7290 was too long).
7300 was too long).
7291
7301
7292 * Changed @clear to @reset to avoid potential confusions with
7302 * Changed @clear to @reset to avoid potential confusions with
7293 the shell command clear. Also renamed @cl to @clear, which does
7303 the shell command clear. Also renamed @cl to @clear, which does
7294 exactly what people expect it to from their shell experience.
7304 exactly what people expect it to from their shell experience.
7295
7305
7296 Added a check to the @reset command (since it's so
7306 Added a check to the @reset command (since it's so
7297 destructive, it's probably a good idea to ask for confirmation).
7307 destructive, it's probably a good idea to ask for confirmation).
7298 But now reset only works for full namespace resetting. Since the
7308 But now reset only works for full namespace resetting. Since the
7299 del keyword is already there for deleting a few specific
7309 del keyword is already there for deleting a few specific
7300 variables, I don't see the point of having a redundant magic
7310 variables, I don't see the point of having a redundant magic
7301 function for the same task.
7311 function for the same task.
7302
7312
7303 2001-11-24 Fernando Perez <fperez@colorado.edu>
7313 2001-11-24 Fernando Perez <fperez@colorado.edu>
7304
7314
7305 * Updated the builtin docs (esp. the ? ones).
7315 * Updated the builtin docs (esp. the ? ones).
7306
7316
7307 * Ran all the code through pychecker. Not terribly impressed with
7317 * Ran all the code through pychecker. Not terribly impressed with
7308 it: lots of spurious warnings and didn't really find anything of
7318 it: lots of spurious warnings and didn't really find anything of
7309 substance (just a few modules being imported and not used).
7319 substance (just a few modules being imported and not used).
7310
7320
7311 * Implemented the new ultraTB functionality into IPython. New
7321 * Implemented the new ultraTB functionality into IPython. New
7312 option: xcolors. This chooses color scheme. xmode now only selects
7322 option: xcolors. This chooses color scheme. xmode now only selects
7313 between Plain and Verbose. Better orthogonality.
7323 between Plain and Verbose. Better orthogonality.
7314
7324
7315 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7325 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7316 mode and color scheme for the exception handlers. Now it's
7326 mode and color scheme for the exception handlers. Now it's
7317 possible to have the verbose traceback with no coloring.
7327 possible to have the verbose traceback with no coloring.
7318
7328
7319 2001-11-23 Fernando Perez <fperez@colorado.edu>
7329 2001-11-23 Fernando Perez <fperez@colorado.edu>
7320
7330
7321 * Version 0.1.12 released, 0.1.13 opened.
7331 * Version 0.1.12 released, 0.1.13 opened.
7322
7332
7323 * Removed option to set auto-quote and auto-paren escapes by
7333 * Removed option to set auto-quote and auto-paren escapes by
7324 user. The chances of breaking valid syntax are just too high. If
7334 user. The chances of breaking valid syntax are just too high. If
7325 someone *really* wants, they can always dig into the code.
7335 someone *really* wants, they can always dig into the code.
7326
7336
7327 * Made prompt separators configurable.
7337 * Made prompt separators configurable.
7328
7338
7329 2001-11-22 Fernando Perez <fperez@colorado.edu>
7339 2001-11-22 Fernando Perez <fperez@colorado.edu>
7330
7340
7331 * Small bugfixes in many places.
7341 * Small bugfixes in many places.
7332
7342
7333 * Removed the MyCompleter class from ipplib. It seemed redundant
7343 * Removed the MyCompleter class from ipplib. It seemed redundant
7334 with the C-p,C-n history search functionality. Less code to
7344 with the C-p,C-n history search functionality. Less code to
7335 maintain.
7345 maintain.
7336
7346
7337 * Moved all the original ipython.py code into ipythonlib.py. Right
7347 * Moved all the original ipython.py code into ipythonlib.py. Right
7338 now it's just one big dump into a function called make_IPython, so
7348 now it's just one big dump into a function called make_IPython, so
7339 no real modularity has been gained. But at least it makes the
7349 no real modularity has been gained. But at least it makes the
7340 wrapper script tiny, and since ipythonlib is a module, it gets
7350 wrapper script tiny, and since ipythonlib is a module, it gets
7341 compiled and startup is much faster.
7351 compiled and startup is much faster.
7342
7352
7343 This is a reasobably 'deep' change, so we should test it for a
7353 This is a reasobably 'deep' change, so we should test it for a
7344 while without messing too much more with the code.
7354 while without messing too much more with the code.
7345
7355
7346 2001-11-21 Fernando Perez <fperez@colorado.edu>
7356 2001-11-21 Fernando Perez <fperez@colorado.edu>
7347
7357
7348 * Version 0.1.11 released, 0.1.12 opened for further work.
7358 * Version 0.1.11 released, 0.1.12 opened for further work.
7349
7359
7350 * Removed dependency on Itpl. It was only needed in one place. It
7360 * Removed dependency on Itpl. It was only needed in one place. It
7351 would be nice if this became part of python, though. It makes life
7361 would be nice if this became part of python, though. It makes life
7352 *a lot* easier in some cases.
7362 *a lot* easier in some cases.
7353
7363
7354 * Simplified the prefilter code a bit. Now all handlers are
7364 * Simplified the prefilter code a bit. Now all handlers are
7355 expected to explicitly return a value (at least a blank string).
7365 expected to explicitly return a value (at least a blank string).
7356
7366
7357 * Heavy edits in ipplib. Removed the help system altogether. Now
7367 * Heavy edits in ipplib. Removed the help system altogether. Now
7358 obj?/?? is used for inspecting objects, a magic @doc prints
7368 obj?/?? is used for inspecting objects, a magic @doc prints
7359 docstrings, and full-blown Python help is accessed via the 'help'
7369 docstrings, and full-blown Python help is accessed via the 'help'
7360 keyword. This cleans up a lot of code (less to maintain) and does
7370 keyword. This cleans up a lot of code (less to maintain) and does
7361 the job. Since 'help' is now a standard Python component, might as
7371 the job. Since 'help' is now a standard Python component, might as
7362 well use it and remove duplicate functionality.
7372 well use it and remove duplicate functionality.
7363
7373
7364 Also removed the option to use ipplib as a standalone program. By
7374 Also removed the option to use ipplib as a standalone program. By
7365 now it's too dependent on other parts of IPython to function alone.
7375 now it's too dependent on other parts of IPython to function alone.
7366
7376
7367 * Fixed bug in genutils.pager. It would crash if the pager was
7377 * Fixed bug in genutils.pager. It would crash if the pager was
7368 exited immediately after opening (broken pipe).
7378 exited immediately after opening (broken pipe).
7369
7379
7370 * Trimmed down the VerboseTB reporting a little. The header is
7380 * Trimmed down the VerboseTB reporting a little. The header is
7371 much shorter now and the repeated exception arguments at the end
7381 much shorter now and the repeated exception arguments at the end
7372 have been removed. For interactive use the old header seemed a bit
7382 have been removed. For interactive use the old header seemed a bit
7373 excessive.
7383 excessive.
7374
7384
7375 * Fixed small bug in output of @whos for variables with multi-word
7385 * Fixed small bug in output of @whos for variables with multi-word
7376 types (only first word was displayed).
7386 types (only first word was displayed).
7377
7387
7378 2001-11-17 Fernando Perez <fperez@colorado.edu>
7388 2001-11-17 Fernando Perez <fperez@colorado.edu>
7379
7389
7380 * Version 0.1.10 released, 0.1.11 opened for further work.
7390 * Version 0.1.10 released, 0.1.11 opened for further work.
7381
7391
7382 * Modified dirs and friends. dirs now *returns* the stack (not
7392 * Modified dirs and friends. dirs now *returns* the stack (not
7383 prints), so one can manipulate it as a variable. Convenient to
7393 prints), so one can manipulate it as a variable. Convenient to
7384 travel along many directories.
7394 travel along many directories.
7385
7395
7386 * Fixed bug in magic_pdef: would only work with functions with
7396 * Fixed bug in magic_pdef: would only work with functions with
7387 arguments with default values.
7397 arguments with default values.
7388
7398
7389 2001-11-14 Fernando Perez <fperez@colorado.edu>
7399 2001-11-14 Fernando Perez <fperez@colorado.edu>
7390
7400
7391 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7401 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7392 example with IPython. Various other minor fixes and cleanups.
7402 example with IPython. Various other minor fixes and cleanups.
7393
7403
7394 * Version 0.1.9 released, 0.1.10 opened for further work.
7404 * Version 0.1.9 released, 0.1.10 opened for further work.
7395
7405
7396 * Added sys.path to the list of directories searched in the
7406 * Added sys.path to the list of directories searched in the
7397 execfile= option. It used to be the current directory and the
7407 execfile= option. It used to be the current directory and the
7398 user's IPYTHONDIR only.
7408 user's IPYTHONDIR only.
7399
7409
7400 2001-11-13 Fernando Perez <fperez@colorado.edu>
7410 2001-11-13 Fernando Perez <fperez@colorado.edu>
7401
7411
7402 * Reinstated the raw_input/prefilter separation that Janko had
7412 * Reinstated the raw_input/prefilter separation that Janko had
7403 initially. This gives a more convenient setup for extending the
7413 initially. This gives a more convenient setup for extending the
7404 pre-processor from the outside: raw_input always gets a string,
7414 pre-processor from the outside: raw_input always gets a string,
7405 and prefilter has to process it. We can then redefine prefilter
7415 and prefilter has to process it. We can then redefine prefilter
7406 from the outside and implement extensions for special
7416 from the outside and implement extensions for special
7407 purposes.
7417 purposes.
7408
7418
7409 Today I got one for inputting PhysicalQuantity objects
7419 Today I got one for inputting PhysicalQuantity objects
7410 (from Scientific) without needing any function calls at
7420 (from Scientific) without needing any function calls at
7411 all. Extremely convenient, and it's all done as a user-level
7421 all. Extremely convenient, and it's all done as a user-level
7412 extension (no IPython code was touched). Now instead of:
7422 extension (no IPython code was touched). Now instead of:
7413 a = PhysicalQuantity(4.2,'m/s**2')
7423 a = PhysicalQuantity(4.2,'m/s**2')
7414 one can simply say
7424 one can simply say
7415 a = 4.2 m/s**2
7425 a = 4.2 m/s**2
7416 or even
7426 or even
7417 a = 4.2 m/s^2
7427 a = 4.2 m/s^2
7418
7428
7419 I use this, but it's also a proof of concept: IPython really is
7429 I use this, but it's also a proof of concept: IPython really is
7420 fully user-extensible, even at the level of the parsing of the
7430 fully user-extensible, even at the level of the parsing of the
7421 command line. It's not trivial, but it's perfectly doable.
7431 command line. It's not trivial, but it's perfectly doable.
7422
7432
7423 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7433 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7424 the problem of modules being loaded in the inverse order in which
7434 the problem of modules being loaded in the inverse order in which
7425 they were defined in
7435 they were defined in
7426
7436
7427 * Version 0.1.8 released, 0.1.9 opened for further work.
7437 * Version 0.1.8 released, 0.1.9 opened for further work.
7428
7438
7429 * Added magics pdef, source and file. They respectively show the
7439 * Added magics pdef, source and file. They respectively show the
7430 definition line ('prototype' in C), source code and full python
7440 definition line ('prototype' in C), source code and full python
7431 file for any callable object. The object inspector oinfo uses
7441 file for any callable object. The object inspector oinfo uses
7432 these to show the same information.
7442 these to show the same information.
7433
7443
7434 * Version 0.1.7 released, 0.1.8 opened for further work.
7444 * Version 0.1.7 released, 0.1.8 opened for further work.
7435
7445
7436 * Separated all the magic functions into a class called Magic. The
7446 * Separated all the magic functions into a class called Magic. The
7437 InteractiveShell class was becoming too big for Xemacs to handle
7447 InteractiveShell class was becoming too big for Xemacs to handle
7438 (de-indenting a line would lock it up for 10 seconds while it
7448 (de-indenting a line would lock it up for 10 seconds while it
7439 backtracked on the whole class!)
7449 backtracked on the whole class!)
7440
7450
7441 FIXME: didn't work. It can be done, but right now namespaces are
7451 FIXME: didn't work. It can be done, but right now namespaces are
7442 all messed up. Do it later (reverted it for now, so at least
7452 all messed up. Do it later (reverted it for now, so at least
7443 everything works as before).
7453 everything works as before).
7444
7454
7445 * Got the object introspection system (magic_oinfo) working! I
7455 * Got the object introspection system (magic_oinfo) working! I
7446 think this is pretty much ready for release to Janko, so he can
7456 think this is pretty much ready for release to Janko, so he can
7447 test it for a while and then announce it. Pretty much 100% of what
7457 test it for a while and then announce it. Pretty much 100% of what
7448 I wanted for the 'phase 1' release is ready. Happy, tired.
7458 I wanted for the 'phase 1' release is ready. Happy, tired.
7449
7459
7450 2001-11-12 Fernando Perez <fperez@colorado.edu>
7460 2001-11-12 Fernando Perez <fperez@colorado.edu>
7451
7461
7452 * Version 0.1.6 released, 0.1.7 opened for further work.
7462 * Version 0.1.6 released, 0.1.7 opened for further work.
7453
7463
7454 * Fixed bug in printing: it used to test for truth before
7464 * Fixed bug in printing: it used to test for truth before
7455 printing, so 0 wouldn't print. Now checks for None.
7465 printing, so 0 wouldn't print. Now checks for None.
7456
7466
7457 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7467 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7458 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7468 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7459 reaches by hand into the outputcache. Think of a better way to do
7469 reaches by hand into the outputcache. Think of a better way to do
7460 this later.
7470 this later.
7461
7471
7462 * Various small fixes thanks to Nathan's comments.
7472 * Various small fixes thanks to Nathan's comments.
7463
7473
7464 * Changed magic_pprint to magic_Pprint. This way it doesn't
7474 * Changed magic_pprint to magic_Pprint. This way it doesn't
7465 collide with pprint() and the name is consistent with the command
7475 collide with pprint() and the name is consistent with the command
7466 line option.
7476 line option.
7467
7477
7468 * Changed prompt counter behavior to be fully like
7478 * Changed prompt counter behavior to be fully like
7469 Mathematica's. That is, even input that doesn't return a result
7479 Mathematica's. That is, even input that doesn't return a result
7470 raises the prompt counter. The old behavior was kind of confusing
7480 raises the prompt counter. The old behavior was kind of confusing
7471 (getting the same prompt number several times if the operation
7481 (getting the same prompt number several times if the operation
7472 didn't return a result).
7482 didn't return a result).
7473
7483
7474 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7484 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7475
7485
7476 * Fixed -Classic mode (wasn't working anymore).
7486 * Fixed -Classic mode (wasn't working anymore).
7477
7487
7478 * Added colored prompts using Nathan's new code. Colors are
7488 * Added colored prompts using Nathan's new code. Colors are
7479 currently hardwired, they can be user-configurable. For
7489 currently hardwired, they can be user-configurable. For
7480 developers, they can be chosen in file ipythonlib.py, at the
7490 developers, they can be chosen in file ipythonlib.py, at the
7481 beginning of the CachedOutput class def.
7491 beginning of the CachedOutput class def.
7482
7492
7483 2001-11-11 Fernando Perez <fperez@colorado.edu>
7493 2001-11-11 Fernando Perez <fperez@colorado.edu>
7484
7494
7485 * Version 0.1.5 released, 0.1.6 opened for further work.
7495 * Version 0.1.5 released, 0.1.6 opened for further work.
7486
7496
7487 * Changed magic_env to *return* the environment as a dict (not to
7497 * Changed magic_env to *return* the environment as a dict (not to
7488 print it). This way it prints, but it can also be processed.
7498 print it). This way it prints, but it can also be processed.
7489
7499
7490 * Added Verbose exception reporting to interactive
7500 * Added Verbose exception reporting to interactive
7491 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7501 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7492 traceback. Had to make some changes to the ultraTB file. This is
7502 traceback. Had to make some changes to the ultraTB file. This is
7493 probably the last 'big' thing in my mental todo list. This ties
7503 probably the last 'big' thing in my mental todo list. This ties
7494 in with the next entry:
7504 in with the next entry:
7495
7505
7496 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7506 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7497 has to specify is Plain, Color or Verbose for all exception
7507 has to specify is Plain, Color or Verbose for all exception
7498 handling.
7508 handling.
7499
7509
7500 * Removed ShellServices option. All this can really be done via
7510 * Removed ShellServices option. All this can really be done via
7501 the magic system. It's easier to extend, cleaner and has automatic
7511 the magic system. It's easier to extend, cleaner and has automatic
7502 namespace protection and documentation.
7512 namespace protection and documentation.
7503
7513
7504 2001-11-09 Fernando Perez <fperez@colorado.edu>
7514 2001-11-09 Fernando Perez <fperez@colorado.edu>
7505
7515
7506 * Fixed bug in output cache flushing (missing parameter to
7516 * Fixed bug in output cache flushing (missing parameter to
7507 __init__). Other small bugs fixed (found using pychecker).
7517 __init__). Other small bugs fixed (found using pychecker).
7508
7518
7509 * Version 0.1.4 opened for bugfixing.
7519 * Version 0.1.4 opened for bugfixing.
7510
7520
7511 2001-11-07 Fernando Perez <fperez@colorado.edu>
7521 2001-11-07 Fernando Perez <fperez@colorado.edu>
7512
7522
7513 * Version 0.1.3 released, mainly because of the raw_input bug.
7523 * Version 0.1.3 released, mainly because of the raw_input bug.
7514
7524
7515 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7525 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7516 and when testing for whether things were callable, a call could
7526 and when testing for whether things were callable, a call could
7517 actually be made to certain functions. They would get called again
7527 actually be made to certain functions. They would get called again
7518 once 'really' executed, with a resulting double call. A disaster
7528 once 'really' executed, with a resulting double call. A disaster
7519 in many cases (list.reverse() would never work!).
7529 in many cases (list.reverse() would never work!).
7520
7530
7521 * Removed prefilter() function, moved its code to raw_input (which
7531 * Removed prefilter() function, moved its code to raw_input (which
7522 after all was just a near-empty caller for prefilter). This saves
7532 after all was just a near-empty caller for prefilter). This saves
7523 a function call on every prompt, and simplifies the class a tiny bit.
7533 a function call on every prompt, and simplifies the class a tiny bit.
7524
7534
7525 * Fix _ip to __ip name in magic example file.
7535 * Fix _ip to __ip name in magic example file.
7526
7536
7527 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7537 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7528 work with non-gnu versions of tar.
7538 work with non-gnu versions of tar.
7529
7539
7530 2001-11-06 Fernando Perez <fperez@colorado.edu>
7540 2001-11-06 Fernando Perez <fperez@colorado.edu>
7531
7541
7532 * Version 0.1.2. Just to keep track of the recent changes.
7542 * Version 0.1.2. Just to keep track of the recent changes.
7533
7543
7534 * Fixed nasty bug in output prompt routine. It used to check 'if
7544 * Fixed nasty bug in output prompt routine. It used to check 'if
7535 arg != None...'. Problem is, this fails if arg implements a
7545 arg != None...'. Problem is, this fails if arg implements a
7536 special comparison (__cmp__) which disallows comparing to
7546 special comparison (__cmp__) which disallows comparing to
7537 None. Found it when trying to use the PhysicalQuantity module from
7547 None. Found it when trying to use the PhysicalQuantity module from
7538 ScientificPython.
7548 ScientificPython.
7539
7549
7540 2001-11-05 Fernando Perez <fperez@colorado.edu>
7550 2001-11-05 Fernando Perez <fperez@colorado.edu>
7541
7551
7542 * Also added dirs. Now the pushd/popd/dirs family functions
7552 * Also added dirs. Now the pushd/popd/dirs family functions
7543 basically like the shell, with the added convenience of going home
7553 basically like the shell, with the added convenience of going home
7544 when called with no args.
7554 when called with no args.
7545
7555
7546 * pushd/popd slightly modified to mimic shell behavior more
7556 * pushd/popd slightly modified to mimic shell behavior more
7547 closely.
7557 closely.
7548
7558
7549 * Added env,pushd,popd from ShellServices as magic functions. I
7559 * Added env,pushd,popd from ShellServices as magic functions. I
7550 think the cleanest will be to port all desired functions from
7560 think the cleanest will be to port all desired functions from
7551 ShellServices as magics and remove ShellServices altogether. This
7561 ShellServices as magics and remove ShellServices altogether. This
7552 will provide a single, clean way of adding functionality
7562 will provide a single, clean way of adding functionality
7553 (shell-type or otherwise) to IP.
7563 (shell-type or otherwise) to IP.
7554
7564
7555 2001-11-04 Fernando Perez <fperez@colorado.edu>
7565 2001-11-04 Fernando Perez <fperez@colorado.edu>
7556
7566
7557 * Added .ipython/ directory to sys.path. This way users can keep
7567 * Added .ipython/ directory to sys.path. This way users can keep
7558 customizations there and access them via import.
7568 customizations there and access them via import.
7559
7569
7560 2001-11-03 Fernando Perez <fperez@colorado.edu>
7570 2001-11-03 Fernando Perez <fperez@colorado.edu>
7561
7571
7562 * Opened version 0.1.1 for new changes.
7572 * Opened version 0.1.1 for new changes.
7563
7573
7564 * Changed version number to 0.1.0: first 'public' release, sent to
7574 * Changed version number to 0.1.0: first 'public' release, sent to
7565 Nathan and Janko.
7575 Nathan and Janko.
7566
7576
7567 * Lots of small fixes and tweaks.
7577 * Lots of small fixes and tweaks.
7568
7578
7569 * Minor changes to whos format. Now strings are shown, snipped if
7579 * Minor changes to whos format. Now strings are shown, snipped if
7570 too long.
7580 too long.
7571
7581
7572 * Changed ShellServices to work on __main__ so they show up in @who
7582 * Changed ShellServices to work on __main__ so they show up in @who
7573
7583
7574 * Help also works with ? at the end of a line:
7584 * Help also works with ? at the end of a line:
7575 ?sin and sin?
7585 ?sin and sin?
7576 both produce the same effect. This is nice, as often I use the
7586 both produce the same effect. This is nice, as often I use the
7577 tab-complete to find the name of a method, but I used to then have
7587 tab-complete to find the name of a method, but I used to then have
7578 to go to the beginning of the line to put a ? if I wanted more
7588 to go to the beginning of the line to put a ? if I wanted more
7579 info. Now I can just add the ? and hit return. Convenient.
7589 info. Now I can just add the ? and hit return. Convenient.
7580
7590
7581 2001-11-02 Fernando Perez <fperez@colorado.edu>
7591 2001-11-02 Fernando Perez <fperez@colorado.edu>
7582
7592
7583 * Python version check (>=2.1) added.
7593 * Python version check (>=2.1) added.
7584
7594
7585 * Added LazyPython documentation. At this point the docs are quite
7595 * Added LazyPython documentation. At this point the docs are quite
7586 a mess. A cleanup is in order.
7596 a mess. A cleanup is in order.
7587
7597
7588 * Auto-installer created. For some bizarre reason, the zipfiles
7598 * Auto-installer created. For some bizarre reason, the zipfiles
7589 module isn't working on my system. So I made a tar version
7599 module isn't working on my system. So I made a tar version
7590 (hopefully the command line options in various systems won't kill
7600 (hopefully the command line options in various systems won't kill
7591 me).
7601 me).
7592
7602
7593 * Fixes to Struct in genutils. Now all dictionary-like methods are
7603 * Fixes to Struct in genutils. Now all dictionary-like methods are
7594 protected (reasonably).
7604 protected (reasonably).
7595
7605
7596 * Added pager function to genutils and changed ? to print usage
7606 * Added pager function to genutils and changed ? to print usage
7597 note through it (it was too long).
7607 note through it (it was too long).
7598
7608
7599 * Added the LazyPython functionality. Works great! I changed the
7609 * Added the LazyPython functionality. Works great! I changed the
7600 auto-quote escape to ';', it's on home row and next to '. But
7610 auto-quote escape to ';', it's on home row and next to '. But
7601 both auto-quote and auto-paren (still /) escapes are command-line
7611 both auto-quote and auto-paren (still /) escapes are command-line
7602 parameters.
7612 parameters.
7603
7613
7604
7614
7605 2001-11-01 Fernando Perez <fperez@colorado.edu>
7615 2001-11-01 Fernando Perez <fperez@colorado.edu>
7606
7616
7607 * Version changed to 0.0.7. Fairly large change: configuration now
7617 * Version changed to 0.0.7. Fairly large change: configuration now
7608 is all stored in a directory, by default .ipython. There, all
7618 is all stored in a directory, by default .ipython. There, all
7609 config files have normal looking names (not .names)
7619 config files have normal looking names (not .names)
7610
7620
7611 * Version 0.0.6 Released first to Lucas and Archie as a test
7621 * Version 0.0.6 Released first to Lucas and Archie as a test
7612 run. Since it's the first 'semi-public' release, change version to
7622 run. Since it's the first 'semi-public' release, change version to
7613 > 0.0.6 for any changes now.
7623 > 0.0.6 for any changes now.
7614
7624
7615 * Stuff I had put in the ipplib.py changelog:
7625 * Stuff I had put in the ipplib.py changelog:
7616
7626
7617 Changes to InteractiveShell:
7627 Changes to InteractiveShell:
7618
7628
7619 - Made the usage message a parameter.
7629 - Made the usage message a parameter.
7620
7630
7621 - Require the name of the shell variable to be given. It's a bit
7631 - Require the name of the shell variable to be given. It's a bit
7622 of a hack, but allows the name 'shell' not to be hardwired in the
7632 of a hack, but allows the name 'shell' not to be hardwired in the
7623 magic (@) handler, which is problematic b/c it requires
7633 magic (@) handler, which is problematic b/c it requires
7624 polluting the global namespace with 'shell'. This in turn is
7634 polluting the global namespace with 'shell'. This in turn is
7625 fragile: if a user redefines a variable called shell, things
7635 fragile: if a user redefines a variable called shell, things
7626 break.
7636 break.
7627
7637
7628 - magic @: all functions available through @ need to be defined
7638 - magic @: all functions available through @ need to be defined
7629 as magic_<name>, even though they can be called simply as
7639 as magic_<name>, even though they can be called simply as
7630 @<name>. This allows the special command @magic to gather
7640 @<name>. This allows the special command @magic to gather
7631 information automatically about all existing magic functions,
7641 information automatically about all existing magic functions,
7632 even if they are run-time user extensions, by parsing the shell
7642 even if they are run-time user extensions, by parsing the shell
7633 instance __dict__ looking for special magic_ names.
7643 instance __dict__ looking for special magic_ names.
7634
7644
7635 - mainloop: added *two* local namespace parameters. This allows
7645 - mainloop: added *two* local namespace parameters. This allows
7636 the class to differentiate between parameters which were there
7646 the class to differentiate between parameters which were there
7637 before and after command line initialization was processed. This
7647 before and after command line initialization was processed. This
7638 way, later @who can show things loaded at startup by the
7648 way, later @who can show things loaded at startup by the
7639 user. This trick was necessary to make session saving/reloading
7649 user. This trick was necessary to make session saving/reloading
7640 really work: ideally after saving/exiting/reloading a session,
7650 really work: ideally after saving/exiting/reloading a session,
7641 *everything* should look the same, including the output of @who. I
7651 *everything* should look the same, including the output of @who. I
7642 was only able to make this work with this double namespace
7652 was only able to make this work with this double namespace
7643 trick.
7653 trick.
7644
7654
7645 - added a header to the logfile which allows (almost) full
7655 - added a header to the logfile which allows (almost) full
7646 session restoring.
7656 session restoring.
7647
7657
7648 - prepend lines beginning with @ or !, with a and log
7658 - prepend lines beginning with @ or !, with a and log
7649 them. Why? !lines: may be useful to know what you did @lines:
7659 them. Why? !lines: may be useful to know what you did @lines:
7650 they may affect session state. So when restoring a session, at
7660 they may affect session state. So when restoring a session, at
7651 least inform the user of their presence. I couldn't quite get
7661 least inform the user of their presence. I couldn't quite get
7652 them to properly re-execute, but at least the user is warned.
7662 them to properly re-execute, but at least the user is warned.
7653
7663
7654 * Started ChangeLog.
7664 * Started ChangeLog.
@@ -1,395 +1,395 b''
1 .\" Hey, EMACS: -*- nroff -*-
1 .\" Hey, EMACS: -*- nroff -*-
2 .\" First parameter, NAME, should be all caps
2 .\" First parameter, NAME, should be all caps
3 .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
3 .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
4 .\" other parameters are allowed: see man(7), man(1)
4 .\" other parameters are allowed: see man(7), man(1)
5 .TH IPYTHON 1 "November 30, 2004"
5 .TH IPYTHON 1 "November 30, 2004"
6 .\" Please adjust this date whenever revising the manpage.
6 .\" Please adjust this date whenever revising the manpage.
7 .\"
7 .\"
8 .\" Some roff macros, for reference:
8 .\" Some roff macros, for reference:
9 .\" .nh disable hyphenation
9 .\" .nh disable hyphenation
10 .\" .hy enable hyphenation
10 .\" .hy enable hyphenation
11 .\" .ad l left justify
11 .\" .ad l left justify
12 .\" .ad b justify to both left and right margins
12 .\" .ad b justify to both left and right margins
13 .\" .nf disable filling
13 .\" .nf disable filling
14 .\" .fi enable filling
14 .\" .fi enable filling
15 .\" .br insert line break
15 .\" .br insert line break
16 .\" .sp <n> insert n+1 empty lines
16 .\" .sp <n> insert n+1 empty lines
17 .\" for manpage-specific macros, see man(7) and groff_man(7)
17 .\" for manpage-specific macros, see man(7) and groff_man(7)
18 .\" .SH section heading
18 .\" .SH section heading
19 .\" .SS secondary section heading
19 .\" .SS secondary section heading
20 .\"
20 .\"
21 .\"
21 .\"
22 .\" To preview this page as plain text: nroff -man ipython.1
22 .\" To preview this page as plain text: nroff -man ipython.1
23 .\"
23 .\"
24 .SH NAME
24 .SH NAME
25 ipython \- An Enhanced Interactive Python
25 ipython \- An Enhanced Interactive Python
26 .SH SYNOPSIS
26 .SH SYNOPSIS
27 .B ipython
27 .B ipython
28 .RI [ options ] " files" ...
28 .RI [ options ] " files" ...
29 .SH DESCRIPTION
29 .SH DESCRIPTION
30 An interactive Python shell with automatic history (input and output),
30 An interactive Python shell with automatic history (input and output),
31 dynamic object introspection, easier configuration, command
31 dynamic object introspection, easier configuration, command
32 completion, access to the system shell, integration with numerical and
32 completion, access to the system shell, integration with numerical and
33 scientific computing tools, and more.
33 scientific computing tools, and more.
34 .SH SPECIAL THREADING OPTIONS
34 .SH SPECIAL THREADING OPTIONS
35 The following special options are ONLY valid at the beginning of the command
35 The following special options are ONLY valid at the beginning of the command
36 line, and not later. This is because they control the initialization of
36 line, and not later. This is because they control the initialization of
37 ipython itself, before the normal option-handling mechanism is active.
37 ipython itself, before the normal option-handling mechanism is active.
38 .TP
38 .TP
39 .B \-gthread, \-qthread, \-q4thread, \-wthread, \-pylab, \-twisted
39 .B \-gthread, \-qthread, \-q4thread, \-wthread, \-pylab
40 Only ONE of these can be given, and it can only be given as the first option
40 Only ONE of these can be given, and it can only be given as the first option
41 passed to IPython (it will have no effect in any other position). They provide
41 passed to IPython (it will have no effect in any other position). They provide
42 threading support for the GTK, QT3, QT4 and WXWidgets toolkits, for the
42 threading support for the GTK, QT3, QT4 and WXWidgets toolkits, for the
43 matplotlib library and Twisted reactor.
43 matplotlib library and Twisted reactor.
44 .br
44 .br
45 .sp 1
45 .sp 1
46 With any of the first four options, IPython starts running a separate thread
46 With any of the first four options, IPython starts running a separate thread
47 for the graphical toolkit's operation, so that you can open and control
47 for the graphical toolkit's operation, so that you can open and control
48 graphical elements from within an IPython command line, without blocking. All
48 graphical elements from within an IPython command line, without blocking. All
49 four provide essentially the same functionality, respectively for GTK, QT3, QT4
49 four provide essentially the same functionality, respectively for GTK, QT3, QT4
50 and WXWidgets (via their Python interfaces).
50 and WXWidgets (via their Python interfaces).
51 .br
51 .br
52 .sp 1
52 .sp 1
53 Note that with \-wthread, you can additionally use the \-wxversion option to
53 Note that with \-wthread, you can additionally use the \-wxversion option to
54 request a specific version of wx to be used. This requires that you have the
54 request a specific version of wx to be used. This requires that you have the
55 'wxversion' Python module installed, which is part of recent wxPython
55 'wxversion' Python module installed, which is part of recent wxPython
56 distributions.
56 distributions.
57 .br
57 .br
58 .sp 1
58 .sp 1
59 If \-twisted is given, IPython start a Twisted reactor and runs IPython mainloop
60 in a dedicated thread, passing commands to be run inside the Twisted reactor.
61 .br
62 .sp 1
63 If \-pylab is given, IPython loads special support for the matplotlib library
59 If \-pylab is given, IPython loads special support for the matplotlib library
64 (http://matplotlib.sourceforge.net), allowing interactive usage of any of its
60 (http://matplotlib.sourceforge.net), allowing interactive usage of any of its
65 backends as defined in the user's .matplotlibrc file. It automatically
61 backends as defined in the user's .matplotlibrc file. It automatically
66 activates GTK, QT or WX threading for IPyhton if the choice of matplotlib
62 activates GTK, QT or WX threading for IPyhton if the choice of matplotlib
67 backend requires it. It also modifies the %run command to correctly execute
63 backend requires it. It also modifies the %run command to correctly execute
68 (without blocking) any matplotlib-based script which calls show() at the end.
64 (without blocking) any matplotlib-based script which calls show() at the end.
69 .TP
65 .TP
70 .B \-tk
66 .B \-tk
71 The \-g/q/q4/wthread options, and \-pylab (if matplotlib is configured to use
67 The \-g/q/q4/wthread options, and \-pylab (if matplotlib is configured to use
72 GTK, QT or WX), will normally block Tk graphical interfaces. This means that
68 GTK, QT or WX), will normally block Tk graphical interfaces. This means that
73 when GTK, QT or WX threading is active, any attempt to open a Tk GUI will
69 when GTK, QT or WX threading is active, any attempt to open a Tk GUI will
74 result in a dead window, and possibly cause the Python interpreter to crash.
70 result in a dead window, and possibly cause the Python interpreter to crash.
75 An extra option, \-tk, is available to address this issue. It can ONLY be
71 An extra option, \-tk, is available to address this issue. It can ONLY be
76 given as a SECOND option after any of the above (\-gthread, \-qthread,
72 given as a SECOND option after any of the above (\-gthread, \-qthread,
77 \-wthread or \-pylab).
73 \-wthread or \-pylab).
78 .br
74 .br
79 .sp 1
75 .sp 1
80 If \-tk is given, IPython will try to coordinate Tk threading with GTK, QT or
76 If \-tk is given, IPython will try to coordinate Tk threading with GTK, QT or
81 WX. This is however potentially unreliable, and you will have to test on your
77 WX. This is however potentially unreliable, and you will have to test on your
82 platform and Python configuration to determine whether it works for you.
78 platform and Python configuration to determine whether it works for you.
83 Debian users have reported success, apparently due to the fact that Debian
79 Debian users have reported success, apparently due to the fact that Debian
84 builds all of Tcl, Tk, Tkinter and Python with pthreads support. Under other
80 builds all of Tcl, Tk, Tkinter and Python with pthreads support. Under other
85 Linux environments (such as Fedora Core 2), this option has caused random
81 Linux environments (such as Fedora Core 2), this option has caused random
86 crashes and lockups of the Python interpreter. Under other operating systems
82 crashes and lockups of the Python interpreter. Under other operating systems
87 (Mac OSX and Windows), you'll need to try it to find out, since currently no
83 (Mac OSX and Windows), you'll need to try it to find out, since currently no
88 user reports are available.
84 user reports are available.
89 .br
85 .br
90 .sp 1
86 .sp 1
91 There is unfortunately no way for IPython to determine at runtime whether \-tk
87 There is unfortunately no way for IPython to determine at runtime whether \-tk
92 will work reliably or not, so you will need to do some experiments before
88 will work reliably or not, so you will need to do some experiments before
93 relying on it for regular work.
89 relying on it for regular work.
94 .
90 .
95 .SH REGULAR OPTIONS
91 .SH REGULAR OPTIONS
96 After the above threading options have been given, regular options can follow
92 After the above threading options have been given, regular options can follow
97 in any order. All options can be abbreviated to their shortest non-ambiguous
93 in any order. All options can be abbreviated to their shortest non-ambiguous
98 form and are case-sensitive. One or two dashes can be used. Some options
94 form and are case-sensitive. One or two dashes can be used. Some options
99 have an alternate short form, indicated after a |.
95 have an alternate short form, indicated after a |.
100 .br
96 .br
101 .sp 1
97 .sp 1
102 Most options can also be set from your ipythonrc configuration file.
98 Most options can also be set from your ipythonrc configuration file.
103 See the provided examples for assistance. Options given on the
99 See the provided examples for assistance. Options given on the
104 commandline override the values set in the ipythonrc file.
100 commandline override the values set in the ipythonrc file.
105 .br
101 .br
106 .sp 1
102 .sp 1
107 All options with a [no] prepended can be specified in negated form
103 All options with a [no] prepended can be specified in negated form
108 (\-nooption instead of \-option) to turn the feature off.
104 (\-nooption instead of \-option) to turn the feature off.
109 .TP
105 .TP
110 .B \-h, \-\-help
106 .B \-h, \-\-help
111 Show summary of options.
107 Show summary of options.
112 .TP
108 .TP
113 .B \-autocall <val>
109 .B \-autocall <val>
114 Make IPython automatically call any callable object even if you didn't type
110 Make IPython automatically call any callable object even if you didn't type
115 explicit parentheses. For example, 'str 43' becomes
111 explicit parentheses. For example, 'str 43' becomes
116 'str(43)' automatically. The value can be '0' to disable the
112 'str(43)' automatically. The value can be '0' to disable the
117 feature, '1' for 'smart' autocall, where it is not applied if
113 feature, '1' for 'smart' autocall, where it is not applied if
118 there are no more arguments on the line, and '2' for 'full'
114 there are no more arguments on the line, and '2' for 'full'
119 autocall, where all callable objects are automatically called
115 autocall, where all callable objects are automatically called
120 (even if no arguments are present). The default is '1'.
116 (even if no arguments are present). The default is '1'.
121 .TP
117 .TP
122 .B \-[no]autoindent
118 .B \-[no]autoindent
123 Turn automatic indentation on/off.
119 Turn automatic indentation on/off.
124 .TP
120 .TP
125 .B \-[no]automagic
121 .B \-[no]automagic
126 Make magic commands automatic (without needing their first character
122 Make magic commands automatic (without needing their first character
127 to be %). Type %magic at the IPython prompt for more information.
123 to be %). Type %magic at the IPython prompt for more information.
128 .TP
124 .TP
129 .B \-[no]autoedit_syntax
125 .B \-[no]autoedit_syntax
130 When a syntax error occurs after editing a file, automatically open the file
126 When a syntax error occurs after editing a file, automatically open the file
131 to the trouble causing line for convenient fixing.
127 to the trouble causing line for convenient fixing.
132 .TP
128 .TP
133 .B \-[no]banner
129 .B \-[no]banner
134 Print the intial information banner (default on).
130 Print the intial information banner (default on).
135 .TP
131 .TP
136 .B \-c <command>
132 .B \-c <command>
137 Execute the given command string, and set sys.argv to ['c']. This is similar
133 Execute the given command string, and set sys.argv to ['c']. This is similar
138 to the \-c option in the normal Python interpreter.
134 to the \-c option in the normal Python interpreter.
139 .TP
135 .TP
140 .B \-cache_size|cs <n>
136 .B \-cache_size|cs <n>
141 Size of the output cache (maximum number of entries to hold in
137 Size of the output cache (maximum number of entries to hold in
142 memory). The default is 1000, you can change it permanently in your
138 memory). The default is 1000, you can change it permanently in your
143 config file. Setting it to 0 completely disables the caching system,
139 config file. Setting it to 0 completely disables the caching system,
144 and the minimum value accepted is 20 (if you provide a value less than
140 and the minimum value accepted is 20 (if you provide a value less than
145 20, it is reset to 0 and a warning is issued). This limit is defined
141 20, it is reset to 0 and a warning is issued). This limit is defined
146 because otherwise you'll spend more time re-flushing a too small cache
142 because otherwise you'll spend more time re-flushing a too small cache
147 than working.
143 than working.
148 .TP
144 .TP
149 .B \-classic|cl
145 .B \-classic|cl
150 Gives IPython a similar feel to the classic Python prompt.
146 Gives IPython a similar feel to the classic Python prompt.
151 .TP
147 .TP
152 .B \-colors <scheme>
148 .B \-colors <scheme>
153 Color scheme for prompts and exception reporting. Currently
149 Color scheme for prompts and exception reporting. Currently
154 implemented: NoColor, Linux, and LightBG.
150 implemented: NoColor, Linux, and LightBG.
155 .TP
151 .TP
156 .B \-[no]color_info
152 .B \-[no]color_info
157 IPython can display information about objects via a set of functions,
153 IPython can display information about objects via a set of functions,
158 and optionally can use colors for this, syntax highlighting source
154 and optionally can use colors for this, syntax highlighting source
159 code and various other elements. However, because this information is
155 code and various other elements. However, because this information is
160 passed through a pager (like 'less') and many pagers get confused with
156 passed through a pager (like 'less') and many pagers get confused with
161 color codes, this option is off by default. You can test it and turn
157 color codes, this option is off by default. You can test it and turn
162 it on permanently in your ipythonrc file if it works for you. As a
158 it on permanently in your ipythonrc file if it works for you. As a
163 reference, the 'less' pager supplied with Mandrake 8.2 works ok, but
159 reference, the 'less' pager supplied with Mandrake 8.2 works ok, but
164 that in RedHat 7.2 doesn't.
160 that in RedHat 7.2 doesn't.
165 .br
161 .br
166 .sp 1
162 .sp 1
167 Test it and turn it on permanently if it works with your system. The
163 Test it and turn it on permanently if it works with your system. The
168 magic function @color_info allows you to toggle this interactively for
164 magic function @color_info allows you to toggle this interactively for
169 testing.
165 testing.
170 .TP
166 .TP
171 .B \-[no]confirm_exit
167 .B \-[no]confirm_exit
172 Set to confirm when you try to exit IPython with an EOF (Control-D in
168 Set to confirm when you try to exit IPython with an EOF (Control-D in
173 Unix, Control-Z/Enter in Windows). Note that using the magic functions
169 Unix, Control-Z/Enter in Windows). Note that using the magic functions
174 @Exit or @Quit you can force a direct exit, bypassing any
170 @Exit or @Quit you can force a direct exit, bypassing any
175 confirmation.
171 confirmation.
176 .TP
172 .TP
177 .B \-[no]debug
173 .B \-[no]debug
178 Show information about the loading process. Very useful to pin down
174 Show information about the loading process. Very useful to pin down
179 problems with your configuration files or to get details about session
175 problems with your configuration files or to get details about session
180 restores.
176 restores.
181 .TP
177 .TP
182 .B \-[no]deep_reload
178 .B \-[no]deep_reload
183 IPython can use the deep_reload module which reloads changes in
179 IPython can use the deep_reload module which reloads changes in
184 modules recursively (it replaces the reload() function, so you don't
180 modules recursively (it replaces the reload() function, so you don't
185 need to change anything to use it). deep_reload() forces a full reload
181 need to change anything to use it). deep_reload() forces a full reload
186 of modules whose code may have changed, which the default reload()
182 of modules whose code may have changed, which the default reload()
187 function does not.
183 function does not.
188 .br
184 .br
189 .sp 1
185 .sp 1
190 When deep_reload is off, IPython will use the normal reload(), but
186 When deep_reload is off, IPython will use the normal reload(), but
191 deep_reload will still be available as dreload(). This feature is off
187 deep_reload will still be available as dreload(). This feature is off
192 by default [which means that you have both normal reload() and
188 by default [which means that you have both normal reload() and
193 dreload()].
189 dreload()].
194 .TP
190 .TP
195 .B \-editor <name>
191 .B \-editor <name>
196 Which editor to use with the @edit command. By default, IPython will
192 Which editor to use with the @edit command. By default, IPython will
197 honor your EDITOR environment variable (if not set, vi is the Unix
193 honor your EDITOR environment variable (if not set, vi is the Unix
198 default and notepad the Windows one). Since this editor is invoked on
194 default and notepad the Windows one). Since this editor is invoked on
199 the fly by IPython and is meant for editing small code snippets, you
195 the fly by IPython and is meant for editing small code snippets, you
200 may want to use a small, lightweight editor here (in case your default
196 may want to use a small, lightweight editor here (in case your default
201 EDITOR is something like Emacs).
197 EDITOR is something like Emacs).
202 .TP
198 .TP
203 .B \-ipythondir <name>
199 .B \-ipythondir <name>
204 The name of your IPython configuration directory IPYTHONDIR. This can
200 The name of your IPython configuration directory IPYTHONDIR. This can
205 also be specified through the environment variable IPYTHONDIR.
201 also be specified through the environment variable IPYTHONDIR.
206 .TP
202 .TP
207 .B \-log|l
203 .B \-log|l
208 Generate a log file of all input. The file is named ipython_log.py in your
204 Generate a log file of all input. The file is named ipython_log.py in your
209 current directory (which prevents logs from multiple IPython sessions from
205 current directory (which prevents logs from multiple IPython sessions from
210 trampling each other). You can use this to later restore a session by loading
206 trampling each other). You can use this to later restore a session by loading
211 your logfile as a file to be executed with option -logplay (see below).
207 your logfile as a file to be executed with option -logplay (see below).
212 .TP
208 .TP
213 .B \-logfile|lf
209 .B \-logfile|lf
214 Specify the name of your logfile.
210 Specify the name of your logfile.
215 .TP
211 .TP
216 .B \-logplay|lp
212 .B \-logplay|lp
217 Replay a previous log. For restoring a session as close as possible to
213 Replay a previous log. For restoring a session as close as possible to
218 the state you left it in, use this option (don't just run the
214 the state you left it in, use this option (don't just run the
219 logfile). With \-logplay, IPython will try to reconstruct the previous
215 logfile). With \-logplay, IPython will try to reconstruct the previous
220 working environment in full, not just execute the commands in the
216 working environment in full, not just execute the commands in the
221 logfile.
217 logfile.
222 .br
218 .br
223 .sh 1
219 .sh 1
224 When a session is restored, logging is automatically turned on again
220 When a session is restored, logging is automatically turned on again
225 with the name of the logfile it was invoked with (it is read from the
221 with the name of the logfile it was invoked with (it is read from the
226 log header). So once you've turned logging on for a session, you can
222 log header). So once you've turned logging on for a session, you can
227 quit IPython and reload it as many times as you want and it will
223 quit IPython and reload it as many times as you want and it will
228 continue to log its history and restore from the beginning every time.
224 continue to log its history and restore from the beginning every time.
229 .br
225 .br
230 .sp 1
226 .sp 1
231 Caveats: there are limitations in this option. The history variables
227 Caveats: there are limitations in this option. The history variables
232 _i*,_* and _dh don't get restored properly. In the future we will try
228 _i*,_* and _dh don't get restored properly. In the future we will try
233 to implement full session saving by writing and retrieving a
229 to implement full session saving by writing and retrieving a
234 'snapshot' of the memory state of IPython. But our first attempts
230 'snapshot' of the memory state of IPython. But our first attempts
235 failed because of inherent limitations of Python's Pickle module, so
231 failed because of inherent limitations of Python's Pickle module, so
236 this may have to wait.
232 this may have to wait.
237 .TP
233 .TP
238 .B \-[no]messages
234 .B \-[no]messages
239 Print messages which IPython collects about its startup process
235 Print messages which IPython collects about its startup process
240 (default on).
236 (default on).
241 .TP
237 .TP
242 .B \-[no]pdb
238 .B \-[no]pdb
243 Automatically call the pdb debugger after every uncaught exception. If
239 Automatically call the pdb debugger after every uncaught exception. If
244 you are used to debugging using pdb, this puts you automatically
240 you are used to debugging using pdb, this puts you automatically
245 inside of it after any call (either in IPython or in code called by
241 inside of it after any call (either in IPython or in code called by
246 it) which triggers an exception which goes uncaught.
242 it) which triggers an exception which goes uncaught.
247 .TP
243 .TP
244 .B \-pydb
245 Makes IPython use the third party "pydb" package as debugger,
246 instead of pdb. Requires that pydb is installed.
247 .TP
248 .B \-[no]pprint
248 .B \-[no]pprint
249 IPython can optionally use the pprint (pretty printer) module for
249 IPython can optionally use the pprint (pretty printer) module for
250 displaying results. pprint tends to give a nicer display of nested
250 displaying results. pprint tends to give a nicer display of nested
251 data structures. If you like it, you can turn it on permanently in
251 data structures. If you like it, you can turn it on permanently in
252 your config file (default off).
252 your config file (default off).
253 .TP
253 .TP
254 .B \-profile|p <name>
254 .B \-profile|p <name>
255 Assume that your config file is ipythonrc-<name> (looks in current dir
255 Assume that your config file is ipythonrc-<name> (looks in current dir
256 first, then in IPYTHONDIR). This is a quick way to keep and load
256 first, then in IPYTHONDIR). This is a quick way to keep and load
257 multiple config files for different tasks, especially if you use the
257 multiple config files for different tasks, especially if you use the
258 include option of config files. You can keep a basic
258 include option of config files. You can keep a basic
259 IPYTHONDIR/ipythonrc file and then have other 'profiles' which include
259 IPYTHONDIR/ipythonrc file and then have other 'profiles' which include
260 this one and load extra things for particular tasks. For example:
260 this one and load extra things for particular tasks. For example:
261 .br
261 .br
262 .sp 1
262 .sp 1
263 1) $HOME/.ipython/ipythonrc : load basic things you always want.
263 1) $HOME/.ipython/ipythonrc : load basic things you always want.
264 .br
264 .br
265 2) $HOME/.ipython/ipythonrc-math : load (1) and basic math-related
265 2) $HOME/.ipython/ipythonrc-math : load (1) and basic math-related
266 modules.
266 modules.
267 .br
267 .br
268 3) $HOME/.ipython/ipythonrc-numeric : load (1) and Numeric and
268 3) $HOME/.ipython/ipythonrc-numeric : load (1) and Numeric and
269 plotting modules.
269 plotting modules.
270 .br
270 .br
271 .sp 1
271 .sp 1
272 Since it is possible to create an endless loop by having circular file
272 Since it is possible to create an endless loop by having circular file
273 inclusions, IPython will stop if it reaches 15 recursive inclusions.
273 inclusions, IPython will stop if it reaches 15 recursive inclusions.
274 .TP
274 .TP
275 .B \-prompt_in1|pi1 <string>
275 .B \-prompt_in1|pi1 <string>
276 Specify the string used for input prompts. Note that if you are using
276 Specify the string used for input prompts. Note that if you are using
277 numbered prompts, the number is represented with a '\\#' in the
277 numbered prompts, the number is represented with a '\\#' in the
278 string. Don't forget to quote strings with spaces embedded in
278 string. Don't forget to quote strings with spaces embedded in
279 them. Default: 'In [\\#]: '.
279 them. Default: 'In [\\#]: '.
280 .br
280 .br
281 .sp 1
281 .sp 1
282 Most bash-like escapes can be used to customize IPython's prompts, as well as
282 Most bash-like escapes can be used to customize IPython's prompts, as well as
283 a few additional ones which are IPython-specific. All valid prompt escapes
283 a few additional ones which are IPython-specific. All valid prompt escapes
284 are described in detail in the Customization section of the IPython HTML/PDF
284 are described in detail in the Customization section of the IPython HTML/PDF
285 manual.
285 manual.
286 .TP
286 .TP
287 .B \-prompt_in2|pi2 <string>
287 .B \-prompt_in2|pi2 <string>
288 Similar to the previous option, but used for the continuation prompts. The
288 Similar to the previous option, but used for the continuation prompts. The
289 special sequence '\\D' is similar to '\\#', but with all digits replaced dots
289 special sequence '\\D' is similar to '\\#', but with all digits replaced dots
290 (so you can have your continuation prompt aligned with your input
290 (so you can have your continuation prompt aligned with your input
291 prompt). Default: ' .\\D.: ' (note three spaces at the start for alignment
291 prompt). Default: ' .\\D.: ' (note three spaces at the start for alignment
292 with 'In [\\#]').
292 with 'In [\\#]').
293 .TP
293 .TP
294 .B \-prompt_out|po <string>
294 .B \-prompt_out|po <string>
295 String used for output prompts, also uses numbers like prompt_in1.
295 String used for output prompts, also uses numbers like prompt_in1.
296 Default: 'Out[\\#]:'.
296 Default: 'Out[\\#]:'.
297 .TP
297 .TP
298 .B \-quick
298 .B \-quick
299 Start in bare bones mode (no config file loaded).
299 Start in bare bones mode (no config file loaded).
300 .TP
300 .TP
301 .B \-rcfile <name>
301 .B \-rcfile <name>
302 Name of your IPython resource configuration file. normally IPython
302 Name of your IPython resource configuration file. normally IPython
303 loads ipythonrc (from current directory) or IPYTHONDIR/ipythonrc. If
303 loads ipythonrc (from current directory) or IPYTHONDIR/ipythonrc. If
304 the loading of your config file fails, IPython starts with a bare
304 the loading of your config file fails, IPython starts with a bare
305 bones configuration (no modules loaded at all).
305 bones configuration (no modules loaded at all).
306 .TP
306 .TP
307 .B \-[no]readline
307 .B \-[no]readline
308 Use the readline library, which is needed to support name completion
308 Use the readline library, which is needed to support name completion
309 and command history, among other things. It is enabled by default, but
309 and command history, among other things. It is enabled by default, but
310 may cause problems for users of X/Emacs in Python comint or shell
310 may cause problems for users of X/Emacs in Python comint or shell
311 buffers.
311 buffers.
312 .br
312 .br
313 .sp 1
313 .sp 1
314 Note that emacs 'eterm' buffers (opened with M-x term) support
314 Note that emacs 'eterm' buffers (opened with M-x term) support
315 IPython's readline and syntax coloring fine, only 'emacs' (M-x shell
315 IPython's readline and syntax coloring fine, only 'emacs' (M-x shell
316 and C-c !) buffers do not.
316 and C-c !) buffers do not.
317 .TP
317 .TP
318 .B \-screen_length|sl <n>
318 .B \-screen_length|sl <n>
319 Number of lines of your screen. This is used to control printing of
319 Number of lines of your screen. This is used to control printing of
320 very long strings. Strings longer than this number of lines will be
320 very long strings. Strings longer than this number of lines will be
321 sent through a pager instead of directly printed.
321 sent through a pager instead of directly printed.
322 .br
322 .br
323 .sp 1
323 .sp 1
324 The default value for this is 0, which means IPython will auto-detect
324 The default value for this is 0, which means IPython will auto-detect
325 your screen size every time it needs to print certain potentially long
325 your screen size every time it needs to print certain potentially long
326 strings (this doesn't change the behavior of the 'print' keyword, it's
326 strings (this doesn't change the behavior of the 'print' keyword, it's
327 only triggered internally). If for some reason this isn't working well
327 only triggered internally). If for some reason this isn't working well
328 (it needs curses support), specify it yourself. Otherwise don't change
328 (it needs curses support), specify it yourself. Otherwise don't change
329 the default.
329 the default.
330 .TP
330 .TP
331 .B \-separate_in|si <string>
331 .B \-separate_in|si <string>
332 Separator before input prompts. Default '\n'.
332 Separator before input prompts. Default '\n'.
333 .TP
333 .TP
334 .B \-separate_out|so <string>
334 .B \-separate_out|so <string>
335 Separator before output prompts. Default: 0 (nothing).
335 Separator before output prompts. Default: 0 (nothing).
336 .TP
336 .TP
337 .B \-separate_out2|so2 <string>
337 .B \-separate_out2|so2 <string>
338 Separator after output prompts. Default: 0 (nothing).
338 Separator after output prompts. Default: 0 (nothing).
339 .TP
339 .TP
340 .B \-nosep
340 .B \-nosep
341 Shorthand for '\-separate_in 0 \-separate_out 0 \-separate_out2 0'.
341 Shorthand for '\-separate_in 0 \-separate_out 0 \-separate_out2 0'.
342 Simply removes all input/output separators.
342 Simply removes all input/output separators.
343 .TP
343 .TP
344 .B \-upgrade
344 .B \-upgrade
345 Allows you to upgrade your IPYTHONDIR configuration when you install a
345 Allows you to upgrade your IPYTHONDIR configuration when you install a
346 new version of IPython. Since new versions may include new command
346 new version of IPython. Since new versions may include new command
347 lines options or example files, this copies updated ipythonrc-type
347 lines options or example files, this copies updated ipythonrc-type
348 files. However, it backs up (with a .old extension) all files which
348 files. However, it backs up (with a .old extension) all files which
349 it overwrites so that you can merge back any custimizations you might
349 it overwrites so that you can merge back any custimizations you might
350 have in your personal files.
350 have in your personal files.
351 .TP
351 .TP
352 .B \-Version
352 .B \-Version
353 Print version information and exit.
353 Print version information and exit.
354 .TP
354 .TP
355 .B -wxversion <string>
355 .B -wxversion <string>
356 Select a specific version of wxPython (used in conjunction with
356 Select a specific version of wxPython (used in conjunction with
357 \-wthread). Requires the wxversion module, part of recent wxPython
357 \-wthread). Requires the wxversion module, part of recent wxPython
358 distributions.
358 distributions.
359 .TP
359 .TP
360 .B \-xmode <modename>
360 .B \-xmode <modename>
361 Mode for exception reporting. The valid modes are Plain, Context, and
361 Mode for exception reporting. The valid modes are Plain, Context, and
362 Verbose.
362 Verbose.
363 .br
363 .br
364 .sp 1
364 .sp 1
365 \- Plain: similar to python's normal traceback printing.
365 \- Plain: similar to python's normal traceback printing.
366 .br
366 .br
367 .sp 1
367 .sp 1
368 \- Context: prints 5 lines of context source code around each line in the
368 \- Context: prints 5 lines of context source code around each line in the
369 traceback.
369 traceback.
370 .br
370 .br
371 .sp 1
371 .sp 1
372 \- Verbose: similar to Context, but additionally prints the variables
372 \- Verbose: similar to Context, but additionally prints the variables
373 currently visible where the exception happened (shortening their strings if
373 currently visible where the exception happened (shortening their strings if
374 too long). This can potentially be very slow, if you happen to have a huge
374 too long). This can potentially be very slow, if you happen to have a huge
375 data structure whose string representation is complex to compute. Your
375 data structure whose string representation is complex to compute. Your
376 computer may appear to freeze for a while with cpu usage at 100%. If this
376 computer may appear to freeze for a while with cpu usage at 100%. If this
377 occurs, you can cancel the traceback with Ctrl-C (maybe hitting it more than
377 occurs, you can cancel the traceback with Ctrl-C (maybe hitting it more than
378 once).
378 once).
379 .
379 .
380 .SH EMBEDDING
380 .SH EMBEDDING
381 It is possible to start an IPython instance inside your own Python
381 It is possible to start an IPython instance inside your own Python
382 programs. In the documentation example files there are some
382 programs. In the documentation example files there are some
383 illustrations on how to do this.
383 illustrations on how to do this.
384 .br
384 .br
385 .sp 1
385 .sp 1
386 This feature allows you to evalutate dynamically the state of your
386 This feature allows you to evalutate dynamically the state of your
387 code, operate with your variables, analyze them, etc. Note however
387 code, operate with your variables, analyze them, etc. Note however
388 that any changes you make to values while in the shell do NOT
388 that any changes you make to values while in the shell do NOT
389 propagate back to the running code, so it is safe to modify your
389 propagate back to the running code, so it is safe to modify your
390 values because you won't break your code in bizarre ways by doing so.
390 values because you won't break your code in bizarre ways by doing so.
391 .SH AUTHOR
391 .SH AUTHOR
392 IPython was written by Fernando Perez <fperez@colorado.edu>, based on earlier
392 IPython was written by Fernando Perez <fperez@colorado.edu>, based on earlier
393 code by Janko Hauser <jh@comunit.de> and Nathaniel Gray
393 code by Janko Hauser <jh@comunit.de> and Nathaniel Gray
394 <n8gray@caltech.edu>. This manual page was written by Jack Moffitt
394 <n8gray@caltech.edu>. This manual page was written by Jack Moffitt
395 <jack@xiph.org>, for the Debian project (but may be used by others).
395 <jack@xiph.org>, for the Debian project (but may be used by others).
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
General Comments 0
You need to be logged in to leave comments. Login now