##// END OF EJS Templates
changelog: report UsageError on %store -w w/o arg,and other usage pattern errors. Bug report by Johann Cohen-Tanugi.
Ville M. Vainio -
Show More
@@ -1,7664 +1,7667 b''
1 2008-06-03 Ville Vainio <vivainio@gmail.com>
1 2008-06-03 Ville Vainio <vivainio@gmail.com>
2
2
3 * ipython.rst, ipython.1: remove -twisted from man page,
3 * ipython.rst, ipython.1: remove -twisted from man page,
4 add -pydb to both man page and manual.
4 add -pydb to both man page and manual.
5
5
6 * pspersistence.py: report UsageError on %store -w w/o arg,
7 and other usage pattern errors. Bug report by Johann Cohen-Tanugi.
8
6 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
9 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
7
10
8 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
11 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
9 disabled.
12 disabled.
10
13
11 2008-05-31 *** Released version 0.8.4
14 2008-05-31 *** Released version 0.8.4
12
15
13 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
16 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
14
17
15 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
18 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
16 disabled.
19 disabled.
17
20
18 * IPython/Shell.py (_select_shell): completely disable -twisted.
21 * IPython/Shell.py (_select_shell): completely disable -twisted.
19 This code is of dubious quality and normal users should not
22 This code is of dubious quality and normal users should not
20 encounter it until we can clarify things further, even under
23 encounter it until we can clarify things further, even under
21 win32. Since we need a quick emergency 0.8.4 release, it is now
24 win32. Since we need a quick emergency 0.8.4 release, it is now
22 disabled completely. Users who want to run it can use the
25 disabled completely. Users who want to run it can use the
23 following command (it's easy to put it in an alias or script):
26 following command (it's easy to put it in an alias or script):
24
27
25 python -c"from IPython import twshell;twshell.IPShellTwisted().mainloop()"
28 python -c"from IPython import twshell;twshell.IPShellTwisted().mainloop()"
26
29
27 2008-05-30 Ville Vainio <vivainio@gmail.com>
30 2008-05-30 Ville Vainio <vivainio@gmail.com>
28
31
29 * shell.py: disable -twisted on non-win32 platforms.
32 * shell.py: disable -twisted on non-win32 platforms.
30 import sets module on python 2.3.
33 import sets module on python 2.3.
31
34
32 * ipy_profile_sh.py: disable ipy_signals. Now, ipython
35 * ipy_profile_sh.py: disable ipy_signals. Now, ipython
33 is verified to work with python 2.3
36 is verified to work with python 2.3
34
37
35 * Release.py: update version to 0.8.4 for quick point fix
38 * Release.py: update version to 0.8.4 for quick point fix
36
39
37 2008-05-28 *** Released version 0.8.3
40 2008-05-28 *** Released version 0.8.3
38
41
39 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
42 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
40
43
41 * ../win32_manual_post_install.py (run): Fix the windows installer
44 * ../win32_manual_post_install.py (run): Fix the windows installer
42 so the links to the docs are correct.
45 so the links to the docs are correct.
43
46
44 * IPython/ultraTB.py: flush stderr after writing to it to fix
47 * IPython/ultraTB.py: flush stderr after writing to it to fix
45 problems with exception traceback ordering in some platforms.
48 problems with exception traceback ordering in some platforms.
46 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
49 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
47
50
48 * IPython/Magic.py (magic_cpaste): add stripping of continuation
51 * IPython/Magic.py (magic_cpaste): add stripping of continuation
49 prompts, feature requested by Stefan vdW.
52 prompts, feature requested by Stefan vdW.
50
53
51 * ../setup.py: updates to build and release tools in preparation
54 * ../setup.py: updates to build and release tools in preparation
52 for 0.8.3 release.
55 for 0.8.3 release.
53
56
54 2008-05-27 Ville Vainio <vivainio@gmail.com>
57 2008-05-27 Ville Vainio <vivainio@gmail.com>
55
58
56 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
59 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
57 for minimal environments (e.g. Maemo sdk python)
60 for minimal environments (e.g. Maemo sdk python)
58
61
59 * Magic.py: cpaste strips whitespace before >>> (allow pasting
62 * Magic.py: cpaste strips whitespace before >>> (allow pasting
60 doctests)
63 doctests)
61
64
62 * ipy_completers.py: cd completer now does recursive path expand
65 * ipy_completers.py: cd completer now does recursive path expand
63 (old behaviour is buggy on some readline versions)
66 (old behaviour is buggy on some readline versions)
64
67
65 2008-05-14 Ville Vainio <vivainio@gmail.com>
68 2008-05-14 Ville Vainio <vivainio@gmail.com>
66
69
67 * Extensions/ipy_greedycompleter.py:
70 * Extensions/ipy_greedycompleter.py:
68 New extension that enables a bit more "relaxed" tab
71 New extension that enables a bit more "relaxed" tab
69 completer that evaluates code without safety checks
72 completer that evaluates code without safety checks
70 (i.e. there can be side effects like function calls)
73 (i.e. there can be side effects like function calls)
71
74
72 2008-04-20 Ville Vainio <vivainio@gmail.com>
75 2008-04-20 Ville Vainio <vivainio@gmail.com>
73
76
74 * Extensions/ipy_lookfor.py: add %lookfor magic command
77 * Extensions/ipy_lookfor.py: add %lookfor magic command
75 (search docstrings for words) by Pauli Virtanen. Close #245.
78 (search docstrings for words) by Pauli Virtanen. Close #245.
76
79
77 * Extension/ipy_jot.py: %jot and %read magics, analogous
80 * Extension/ipy_jot.py: %jot and %read magics, analogous
78 to %store but you can specify some notes. Not read
81 to %store but you can specify some notes. Not read
79 in automatically on startup, you need %read.
82 in automatically on startup, you need %read.
80 Contributed by Yichun Wei.
83 Contributed by Yichun Wei.
81
84
82 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
85 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
83
86
84 * IPython/genutils.py (page): apply workaround to curses bug that
87 * IPython/genutils.py (page): apply workaround to curses bug that
85 can leave terminal corrupted after a call to initscr().
88 can leave terminal corrupted after a call to initscr().
86
89
87 2008-04-15 Ville Vainio <vivainio@gmail.com>
90 2008-04-15 Ville Vainio <vivainio@gmail.com>
88
91
89 * genutils.py: SList.grep supports 'field' argument
92 * genutils.py: SList.grep supports 'field' argument
90
93
91 * ipy_completers.py: module completer looks inside
94 * ipy_completers.py: module completer looks inside
92 .egg zip files (patch by mc). Close #196.
95 .egg zip files (patch by mc). Close #196.
93
96
94 2008-04-09 Ville Vainio <vivainio@gmail.com>
97 2008-04-09 Ville Vainio <vivainio@gmail.com>
95
98
96 * deep_reload.py: do not crash on from __future__ import
99 * deep_reload.py: do not crash on from __future__ import
97 absolute_import. Close #244.
100 absolute_import. Close #244.
98
101
99 2008-04-02 Ville Vainio <vivainio@gmail.com>
102 2008-04-02 Ville Vainio <vivainio@gmail.com>
100
103
101 * ipy_winpdb.py: New extension for winpdb integration. %wdb
104 * ipy_winpdb.py: New extension for winpdb integration. %wdb
102 test.py is winpdb equivalent of %run -d test.py. winpdb is a
105 test.py is winpdb equivalent of %run -d test.py. winpdb is a
103 crossplatform remote GUI debugger based on wxpython.
106 crossplatform remote GUI debugger based on wxpython.
104
107
105 2008-03-29 Ville Vainio <vivainio@gmail.com>
108 2008-03-29 Ville Vainio <vivainio@gmail.com>
106
109
107 * ipython.rst, do_sphinx.py: New documentation base, based on
110 * ipython.rst, do_sphinx.py: New documentation base, based on
108 reStucturedText and Sphinx (html/pdf generation). The old Lyx
111 reStucturedText and Sphinx (html/pdf generation). The old Lyx
109 based documentation will not be updated anymore.
112 based documentation will not be updated anymore.
110
113
111 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
114 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
112
115
113 2008-03-24 Ville Vainio <vivainio@gmail.com>
116 2008-03-24 Ville Vainio <vivainio@gmail.com>
114
117
115 * ipython.rst, do_sphinx.py: New documentation base, based on
118 * ipython.rst, do_sphinx.py: New documentation base, based on
116 reStucturedText and Sphinx (html/pdf generation). The old Lyx
119 reStucturedText and Sphinx (html/pdf generation). The old Lyx
117 based documentation will not be updated anymore.
120 based documentation will not be updated anymore.
118
121
119 ipython.rst has up to date documentation on matters that were not
122 ipython.rst has up to date documentation on matters that were not
120 documented at all, and it also removes various
123 documented at all, and it also removes various
121 misdocumented/deprecated features.
124 misdocumented/deprecated features.
122
125
123 2008-03-22 Ville Vainio <vivainio@gmail.com>
126 2008-03-22 Ville Vainio <vivainio@gmail.com>
124
127
125 * Shell.py: Merge mtexp branch:
128 * Shell.py: Merge mtexp branch:
126 https://code.launchpad.net/~ipython/ipython/mtexp
129 https://code.launchpad.net/~ipython/ipython/mtexp
127
130
128 Privides simpler and more robust MTInteractiveShell that won't
131 Privides simpler and more robust MTInteractiveShell that won't
129 deadlock, even when the worker thread (GUI) stops doing runcode()
132 deadlock, even when the worker thread (GUI) stops doing runcode()
130 regularly. r71.
133 regularly. r71.
131
134
132 2008-03-20 Ville Vainio <vivainio@gmail.com>
135 2008-03-20 Ville Vainio <vivainio@gmail.com>
133
136
134 * twshell.py: New shell that runs IPython code in Twisted reactor.
137 * twshell.py: New shell that runs IPython code in Twisted reactor.
135 Launch by doing ipython -twisted. r67.
138 Launch by doing ipython -twisted. r67.
136
139
137 2008-03-19 Ville Vainio <vivainio@gmail.com>
140 2008-03-19 Ville Vainio <vivainio@gmail.com>
138
141
139 * Magic.py: %rehashx works correctly when shadowed system commands
142 * Magic.py: %rehashx works correctly when shadowed system commands
140 have upper case characters (e.g. Print.exe). r64.
143 have upper case characters (e.g. Print.exe). r64.
141
144
142 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
145 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
143 knows options to commands, based on bzrtools. Uses bzrlib
146 knows options to commands, based on bzrtools. Uses bzrlib
144 directly. r66.
147 directly. r66.
145
148
146 2008-03-16 Ville Vainio <vivainio@gmail.com>
149 2008-03-16 Ville Vainio <vivainio@gmail.com>
147
150
148 * make_tarball.py: Fixed for bzr.
151 * make_tarball.py: Fixed for bzr.
149
152
150 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
153 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
151
154
152 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
155 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
153 by Erich Heine.
156 by Erich Heine.
154
157
155 2008-03-12 Ville Vainio <vivainio@gmail.com>
158 2008-03-12 Ville Vainio <vivainio@gmail.com>
156
159
157 * ipmaker.py: Force (reload?) import of ipy_user_conf and
160 * ipmaker.py: Force (reload?) import of ipy_user_conf and
158 ipy_profile_foo, so that embedded instances can be relaunched and
161 ipy_profile_foo, so that embedded instances can be relaunched and
159 configuration is still done. r50
162 configuration is still done. r50
160
163
161 * ipapi.py, test_embed.py: Allow specifying shell class in
164 * ipapi.py, test_embed.py: Allow specifying shell class in
162 launch_new_instance & make_new instance. Use this in
165 launch_new_instance & make_new instance. Use this in
163 test_embed.py. r51.
166 test_embed.py. r51.
164
167
165 test_embed.py is also a good and simple demo of embedding IPython.
168 test_embed.py is also a good and simple demo of embedding IPython.
166
169
167
170
168 2008-03-10 Ville Vainio <vivainio@gmail.com>
171 2008-03-10 Ville Vainio <vivainio@gmail.com>
169
172
170 * tool/update_revnum.py: Change to bzr revisioning scheme in
173 * tool/update_revnum.py: Change to bzr revisioning scheme in
171 revision numbers.
174 revision numbers.
172
175
173 * Shell.py: Threading improvements:
176 * Shell.py: Threading improvements:
174
177
175 In multithreaded shells, do not hang on macros and o.autoexec
178 In multithreaded shells, do not hang on macros and o.autoexec
176 commands (or anything executed with _ip.runlines()) anymore. Allow
179 commands (or anything executed with _ip.runlines()) anymore. Allow
177 recursive execution of IPython code in
180 recursive execution of IPython code in
178 MTInteractiveShell.runsource by checking if we are already in
181 MTInteractiveShell.runsource by checking if we are already in
179 worker thread, and execute code directly if we are. r48.
182 worker thread, and execute code directly if we are. r48.
180
183
181 MTInteractiveShell.runsource: execute code directly if worker
184 MTInteractiveShell.runsource: execute code directly if worker
182 thread is not running yet (this is the case in config files). r49.
185 thread is not running yet (this is the case in config files). r49.
183
186
184 2008-03-09 Ville Vainio <vivainio@gmail.com>
187 2008-03-09 Ville Vainio <vivainio@gmail.com>
185
188
186 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
189 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
187 argument of previous command in sh profile. Similar to bash '!$'.
190 argument of previous command in sh profile. Similar to bash '!$'.
188 LA(3) or $LA(3) stands for last argument of input history command
191 LA(3) or $LA(3) stands for last argument of input history command
189 3.
192 3.
190
193
191 * Shell.py: -pylab names don't clutter %whos listing.
194 * Shell.py: -pylab names don't clutter %whos listing.
192
195
193 2008-03-07 Ville Vainio <vivainio@gmail.com>
196 2008-03-07 Ville Vainio <vivainio@gmail.com>
194
197
195 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
198 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
196 autoreloading modules; try %autoreload and %aimport. Close #154.
199 autoreloading modules; try %autoreload and %aimport. Close #154.
197 Uses the new pre_runcode_hook.
200 Uses the new pre_runcode_hook.
198
201
199 2008-02-24 Ville Vainio <vivainio@gmail.com>
202 2008-02-24 Ville Vainio <vivainio@gmail.com>
200
203
201 * platutils_posix.py: freeze_term_title works
204 * platutils_posix.py: freeze_term_title works
202
205
203 2008-02-21 Ville Vainio <vivainio@gmail.com>
206 2008-02-21 Ville Vainio <vivainio@gmail.com>
204
207
205 * Magic.py: %quickref does not crash with empty docstring
208 * Magic.py: %quickref does not crash with empty docstring
206
209
207 2008-02-20 Ville Vainio <vivainio@gmail.com>
210 2008-02-20 Ville Vainio <vivainio@gmail.com>
208
211
209 * completer.py: do not treat [](){} as protectable chars anymore,
212 * completer.py: do not treat [](){} as protectable chars anymore,
210 close #233.
213 close #233.
211
214
212 * completer.py: do not treat [](){} as protectable chars anymore
215 * completer.py: do not treat [](){} as protectable chars anymore
213
216
214 * magic.py, test_cpaste.py: Allow different prefix for pasting
217 * magic.py, test_cpaste.py: Allow different prefix for pasting
215 from email
218 from email
216
219
217 2008-02-17 Ville Vainio <vivainio@gmail.com>
220 2008-02-17 Ville Vainio <vivainio@gmail.com>
218
221
219 * Switched over to Launchpad/bzr as primary VCS.
222 * Switched over to Launchpad/bzr as primary VCS.
220
223
221 2008-02-14 Ville Vainio <vivainio@gmail.com>
224 2008-02-14 Ville Vainio <vivainio@gmail.com>
222
225
223 * ipapi.py: _ip.runlines() is now much more liberal about
226 * ipapi.py: _ip.runlines() is now much more liberal about
224 indentation - it cleans up the scripts it gets
227 indentation - it cleans up the scripts it gets
225
228
226 2008-02-14 Ville Vainio <vivainio@gmail.com>
229 2008-02-14 Ville Vainio <vivainio@gmail.com>
227
230
228 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
231 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
229 Changes to it (later on) are too numerous to list in ChangeLog
232 Changes to it (later on) are too numerous to list in ChangeLog
230 until it stabilizes
233 until it stabilizes
231
234
232 2008-02-07 Darren Dale <darren.dale@cornell.edu>
235 2008-02-07 Darren Dale <darren.dale@cornell.edu>
233
236
234 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
237 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
235 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
238 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
236 interaction in the interpreter (like Tkinter does), but it seems to
239 interaction in the interpreter (like Tkinter does), but it seems to
237 partially interfere with the IPython implementation and exec_()
240 partially interfere with the IPython implementation and exec_()
238 still seems to block. So we disable the PyQt implementation and
241 still seems to block. So we disable the PyQt implementation and
239 stick with the IPython one for now.
242 stick with the IPython one for now.
240
243
241 2008-02-02 Walter Doerwald <walter@livinglogic.de>
244 2008-02-02 Walter Doerwald <walter@livinglogic.de>
242
245
243 * ipipe.py: A new ipipe table has been added: ialias produces all
246 * ipipe.py: A new ipipe table has been added: ialias produces all
244 entries from IPython's alias table.
247 entries from IPython's alias table.
245
248
246 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
249 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
247
250
248 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
251 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
249 of KBINT in threaded shells. After code provided by Marc in #212.
252 of KBINT in threaded shells. After code provided by Marc in #212.
250
253
251 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
254 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
252
255
253 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
256 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
254 that could occur due to a race condition in threaded shells.
257 that could occur due to a race condition in threaded shells.
255 Thanks to code provided by Marc, as #210.
258 Thanks to code provided by Marc, as #210.
256
259
257 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
260 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
258
261
259 * IPython/Magic.py (magic_doctest_mode): respect the user's
262 * IPython/Magic.py (magic_doctest_mode): respect the user's
260 settings for input separators rather than overriding them. After
263 settings for input separators rather than overriding them. After
261 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
264 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
262
265
263 * IPython/history.py (magic_history): Add support for declaring an
266 * IPython/history.py (magic_history): Add support for declaring an
264 output file directly from the history command.
267 output file directly from the history command.
265
268
266 2008-01-21 Walter Doerwald <walter@livinglogic.de>
269 2008-01-21 Walter Doerwald <walter@livinglogic.de>
267
270
268 * ipipe.py: Register ipipe's displayhooks via the generic function
271 * ipipe.py: Register ipipe's displayhooks via the generic function
269 generics.result_display() instead of using ipapi.set_hook().
272 generics.result_display() instead of using ipapi.set_hook().
270
273
271 2008-01-19 Walter Doerwald <walter@livinglogic.de>
274 2008-01-19 Walter Doerwald <walter@livinglogic.de>
272
275
273 * ibrowse.py, igrid.py, ipipe.py:
276 * ibrowse.py, igrid.py, ipipe.py:
274 The input object can now be passed to the constructor of the display classes.
277 The input object can now be passed to the constructor of the display classes.
275 This makes it possible to use them with objects that implement __or__.
278 This makes it possible to use them with objects that implement __or__.
276 Use this constructor in the displayhook instead of piping.
279 Use this constructor in the displayhook instead of piping.
277
280
278 * ipipe.py: Importing astyle.py is done as late as possible to
281 * ipipe.py: Importing astyle.py is done as late as possible to
279 avoid problems with circular imports.
282 avoid problems with circular imports.
280
283
281 2008-01-19 Ville Vainio <vivainio@gmail.com>
284 2008-01-19 Ville Vainio <vivainio@gmail.com>
282
285
283 * hooks.py, iplib.py: Added 'shell_hook' to customize how
286 * hooks.py, iplib.py: Added 'shell_hook' to customize how
284 IPython calls shell.
287 IPython calls shell.
285
288
286 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
289 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
287 how IPython pages text (%page, %pycat, %pdoc etc.)
290 how IPython pages text (%page, %pycat, %pdoc etc.)
288
291
289 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
292 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
290 and '%kill' to kill hanging processes that won't obey ctrl+C.
293 and '%kill' to kill hanging processes that won't obey ctrl+C.
291
294
292 2008-01-16 Ville Vainio <vivainio@gmail.com>
295 2008-01-16 Ville Vainio <vivainio@gmail.com>
293
296
294 * ipy_completers.py: pyw extension support for %run completer.
297 * ipy_completers.py: pyw extension support for %run completer.
295
298
296 2008-01-11 Ville Vainio <vivainio@gmail.com>
299 2008-01-11 Ville Vainio <vivainio@gmail.com>
297
300
298 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
301 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
299 of ipython commands to be run when IPython has started up
302 of ipython commands to be run when IPython has started up
300 (just before running the scripts and -c arg on command line).
303 (just before running the scripts and -c arg on command line).
301
304
302 * ipy_user_conf.py: Added an example on how to change term
305 * ipy_user_conf.py: Added an example on how to change term
303 colors in config file (through using autoexec).
306 colors in config file (through using autoexec).
304
307
305 * completer.py, test_completer.py: Ability to specify custom
308 * completer.py, test_completer.py: Ability to specify custom
306 get_endidx to replace readline.get_endidx. For emacs users.
309 get_endidx to replace readline.get_endidx. For emacs users.
307
310
308 2008-01-10 Ville Vainio <vivainio@gmail.com>
311 2008-01-10 Ville Vainio <vivainio@gmail.com>
309
312
310 * Prompts.py (set_p_str): do not crash on illegal prompt strings
313 * Prompts.py (set_p_str): do not crash on illegal prompt strings
311
314
312 2008-01-08 Ville Vainio <vivainio@gmail.com>
315 2008-01-08 Ville Vainio <vivainio@gmail.com>
313
316
314 * '%macro -r' (raw mode) is now default in sh profile.
317 * '%macro -r' (raw mode) is now default in sh profile.
315
318
316 2007-12-31 Ville Vainio <vivainio@gmail.com>
319 2007-12-31 Ville Vainio <vivainio@gmail.com>
317
320
318 * completer.py: custom completer matching is now case sensitive
321 * completer.py: custom completer matching is now case sensitive
319 (#207).
322 (#207).
320
323
321 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
324 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
322 an attempt to prevent occasional crashes.
325 an attempt to prevent occasional crashes.
323
326
324 * CrashHandler.py: Crash log dump now asks user to press enter
327 * CrashHandler.py: Crash log dump now asks user to press enter
325 before exiting.
328 before exiting.
326
329
327 * Store _ip in user_ns instead of __builtin__, enabling safer
330 * Store _ip in user_ns instead of __builtin__, enabling safer
328 coexistence of multiple IPython instances in the same python
331 coexistence of multiple IPython instances in the same python
329 interpreter (#197).
332 interpreter (#197).
330
333
331 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
334 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
332 switch to enable pydb in post-mortem debugging and %run -d.
335 switch to enable pydb in post-mortem debugging and %run -d.
333
336
334 2007-12-28 Ville Vainio <vivainio@gmail.com>
337 2007-12-28 Ville Vainio <vivainio@gmail.com>
335
338
336 * ipy_server.py: TCP socket server for "remote control" of an IPython
339 * ipy_server.py: TCP socket server for "remote control" of an IPython
337 instance.
340 instance.
338
341
339 * Debugger.py: Change to PSF license
342 * Debugger.py: Change to PSF license
340
343
341 * simplegeneric.py: Add license & author notes.
344 * simplegeneric.py: Add license & author notes.
342
345
343 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
346 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
344 to navigate file system with a custom completer. Run
347 to navigate file system with a custom completer. Run
345 ipy_fsops.test_pathobj() to play with it.
348 ipy_fsops.test_pathobj() to play with it.
346
349
347 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
350 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
348
351
349 * IPython/dtutils.py: Add utilities for interactively running
352 * IPython/dtutils.py: Add utilities for interactively running
350 doctests. Still needs work to more easily handle the namespace of
353 doctests. Still needs work to more easily handle the namespace of
351 the package one may be working on, but the basics are in place.
354 the package one may be working on, but the basics are in place.
352
355
353 2007-12-27 Ville Vainio <vivainio@gmail.com>
356 2007-12-27 Ville Vainio <vivainio@gmail.com>
354
357
355 * ipy_completers.py: Applied arno's patch to get proper list of
358 * ipy_completers.py: Applied arno's patch to get proper list of
356 packages in import completer. Closes #196.
359 packages in import completer. Closes #196.
357
360
358 2007-12-20 Ville Vainio <vivainio@gmail.com>
361 2007-12-20 Ville Vainio <vivainio@gmail.com>
359
362
360 * completer.py, generics.py(complete_object): Allow
363 * completer.py, generics.py(complete_object): Allow
361 custom complers based on python objects via simplegeneric.
364 custom complers based on python objects via simplegeneric.
362 See generics.py / my_demo_complete_object
365 See generics.py / my_demo_complete_object
363
366
364 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
367 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
365
368
366 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
369 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
367 behavior to prompt objects, useful for display hooks to adjust
370 behavior to prompt objects, useful for display hooks to adjust
368 themselves depending on whether prompts will be there or not.
371 themselves depending on whether prompts will be there or not.
369
372
370 2007-12-13 Ville Vainio <vivainio@gmail.com>
373 2007-12-13 Ville Vainio <vivainio@gmail.com>
371
374
372 * iplib.py(raw_input): unix readline does not allow unicode in
375 * iplib.py(raw_input): unix readline does not allow unicode in
373 history, encode to normal string. After patch by Tiago.
376 history, encode to normal string. After patch by Tiago.
374 Close #201
377 Close #201
375
378
376 2007-12-12 Ville Vainio <vivainio@gmail.com>
379 2007-12-12 Ville Vainio <vivainio@gmail.com>
377
380
378 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
381 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
379 current directory.
382 current directory.
380
383
381 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
384 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
382
385
383 * IPython/Shell.py (_select_shell): add support for controlling
386 * IPython/Shell.py (_select_shell): add support for controlling
384 the pylab threading mode directly at the command line, without
387 the pylab threading mode directly at the command line, without
385 having to modify MPL config files. Added unit tests for this
388 having to modify MPL config files. Added unit tests for this
386 feature, though manual/docs update is still pending, will do later.
389 feature, though manual/docs update is still pending, will do later.
387
390
388 2007-12-11 Ville Vainio <vivainio@gmail.com>
391 2007-12-11 Ville Vainio <vivainio@gmail.com>
389
392
390 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
393 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
391 use in scripts)
394 use in scripts)
392
395
393 2007-12-07 Ville Vainio <vivainio@gmail.com>
396 2007-12-07 Ville Vainio <vivainio@gmail.com>
394
397
395 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
398 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
396 anymore (to \#) - even if it is a comment char that is implicitly
399 anymore (to \#) - even if it is a comment char that is implicitly
397 escaped in some unix shells in interactive mode, it is ok to leave
400 escaped in some unix shells in interactive mode, it is ok to leave
398 it in IPython as such.
401 it in IPython as such.
399
402
400
403
401 2007-12-01 Robert Kern <robert.kern@gmail.com>
404 2007-12-01 Robert Kern <robert.kern@gmail.com>
402
405
403 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
406 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
404 inspect.findsource(). It can now find source lines inside zipped
407 inspect.findsource(). It can now find source lines inside zipped
405 packages.
408 packages.
406
409
407 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
410 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
408 in the frame's namespace before trusting the filename in the code object
411 in the frame's namespace before trusting the filename in the code object
409 which created the frame.
412 which created the frame.
410
413
411 2007-11-29 *** Released version 0.8.2
414 2007-11-29 *** Released version 0.8.2
412
415
413 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
416 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
414
417
415 * IPython/Logger.py (Logger.logstop): add a proper logstop()
418 * IPython/Logger.py (Logger.logstop): add a proper logstop()
416 method to fully stop the logger, along with a corresponding
419 method to fully stop the logger, along with a corresponding
417 %logstop magic for interactive use.
420 %logstop magic for interactive use.
418
421
419 * IPython/Extensions/ipy_host_completers.py: added new host
422 * IPython/Extensions/ipy_host_completers.py: added new host
420 completers functionality, contributed by Gael Pasgrimaud
423 completers functionality, contributed by Gael Pasgrimaud
421 <gawel-AT-afpy.org>.
424 <gawel-AT-afpy.org>.
422
425
423 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
426 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
424
427
425 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
428 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
426 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
429 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
427 options handling. Unicode fix in %whos (committed a while ago)
430 options handling. Unicode fix in %whos (committed a while ago)
428 was also contributed by Paul.
431 was also contributed by Paul.
429
432
430 2007-11-23 Darren Dale <darren.dale@cornell.edu>
433 2007-11-23 Darren Dale <darren.dale@cornell.edu>
431 * ipy_traits_completer.py: let traits_completer respect the user's
434 * ipy_traits_completer.py: let traits_completer respect the user's
432 readline_omit__names setting.
435 readline_omit__names setting.
433
436
434 2007-11-08 Ville Vainio <vivainio@gmail.com>
437 2007-11-08 Ville Vainio <vivainio@gmail.com>
435
438
436 * ipy_completers.py (import completer): assume 'xml' module exists.
439 * ipy_completers.py (import completer): assume 'xml' module exists.
437 Do not add every module twice anymore. Closes #196.
440 Do not add every module twice anymore. Closes #196.
438
441
439 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
442 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
440 completer that uses apt-cache to search for existing packages.
443 completer that uses apt-cache to search for existing packages.
441
444
442 2007-11-06 Ville Vainio <vivainio@gmail.com>
445 2007-11-06 Ville Vainio <vivainio@gmail.com>
443
446
444 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
447 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
445 true. Closes #194.
448 true. Closes #194.
446
449
447 2007-11-01 Brian Granger <ellisonbg@gmail.com>
450 2007-11-01 Brian Granger <ellisonbg@gmail.com>
448
451
449 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
452 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
450 working with OS X 10.5 libedit implementation of readline.
453 working with OS X 10.5 libedit implementation of readline.
451
454
452 2007-10-24 Ville Vainio <vivainio@gmail.com>
455 2007-10-24 Ville Vainio <vivainio@gmail.com>
453
456
454 * iplib.py(user_setup): To route around buggy installations where
457 * iplib.py(user_setup): To route around buggy installations where
455 UserConfig is not available, create a minimal _ipython.
458 UserConfig is not available, create a minimal _ipython.
456
459
457 * iplib.py: Unicode fixes from Jorgen.
460 * iplib.py: Unicode fixes from Jorgen.
458
461
459 * genutils.py: Slist now has new method 'fields()' for extraction of
462 * genutils.py: Slist now has new method 'fields()' for extraction of
460 whitespace-separated fields from line-oriented data.
463 whitespace-separated fields from line-oriented data.
461
464
462 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
465 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
463
466
464 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
467 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
465 when querying objects with no __class__ attribute (such as
468 when querying objects with no __class__ attribute (such as
466 f2py-generated modules).
469 f2py-generated modules).
467
470
468 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
471 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
469
472
470 * IPython/Magic.py (magic_time): track compilation time and report
473 * IPython/Magic.py (magic_time): track compilation time and report
471 it if longer than 0.1s (fix done to %time and %timeit). After a
474 it if longer than 0.1s (fix done to %time and %timeit). After a
472 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
475 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
473
476
474 2007-09-18 Ville Vainio <vivainio@gmail.com>
477 2007-09-18 Ville Vainio <vivainio@gmail.com>
475
478
476 * genutils.py(make_quoted_expr): Do not use Itpl, it does
479 * genutils.py(make_quoted_expr): Do not use Itpl, it does
477 not support unicode at the moment. Fixes (many) magic calls with
480 not support unicode at the moment. Fixes (many) magic calls with
478 special characters.
481 special characters.
479
482
480 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
483 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
481
484
482 * IPython/genutils.py (doctest_reload): expose the doctest
485 * IPython/genutils.py (doctest_reload): expose the doctest
483 reloader to the user so that people can easily reset doctest while
486 reloader to the user so that people can easily reset doctest while
484 using it interactively. Fixes a problem reported by Jorgen.
487 using it interactively. Fixes a problem reported by Jorgen.
485
488
486 * IPython/iplib.py (InteractiveShell.__init__): protect the
489 * IPython/iplib.py (InteractiveShell.__init__): protect the
487 FakeModule instances used for __main__ in %run calls from
490 FakeModule instances used for __main__ in %run calls from
488 deletion, so that user code defined in them isn't left with
491 deletion, so that user code defined in them isn't left with
489 dangling references due to the Python module deletion machinery.
492 dangling references due to the Python module deletion machinery.
490 This should fix the problems reported by Darren.
493 This should fix the problems reported by Darren.
491
494
492 2007-09-10 Darren Dale <dd55@cornell.edu>
495 2007-09-10 Darren Dale <dd55@cornell.edu>
493
496
494 * Cleanup of IPShellQt and IPShellQt4
497 * Cleanup of IPShellQt and IPShellQt4
495
498
496 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
499 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
497
500
498 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
501 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
499 doctest support.
502 doctest support.
500
503
501 * IPython/iplib.py (safe_execfile): minor docstring improvements.
504 * IPython/iplib.py (safe_execfile): minor docstring improvements.
502
505
503 2007-09-08 Ville Vainio <vivainio@gmail.com>
506 2007-09-08 Ville Vainio <vivainio@gmail.com>
504
507
505 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
508 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
506 directory, not the target directory.
509 directory, not the target directory.
507
510
508 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
511 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
509 exception that won't print the tracebacks. Switched many magics to
512 exception that won't print the tracebacks. Switched many magics to
510 raise them on error situations, also GetoptError is not printed
513 raise them on error situations, also GetoptError is not printed
511 anymore.
514 anymore.
512
515
513 2007-09-07 Ville Vainio <vivainio@gmail.com>
516 2007-09-07 Ville Vainio <vivainio@gmail.com>
514
517
515 * iplib.py: do not auto-alias "dir", it screws up other dir auto
518 * iplib.py: do not auto-alias "dir", it screws up other dir auto
516 aliases.
519 aliases.
517
520
518 * genutils.py: SList.grep() implemented.
521 * genutils.py: SList.grep() implemented.
519
522
520 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
523 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
521 for easy "out of the box" setup of several common editors, so that
524 for easy "out of the box" setup of several common editors, so that
522 e.g. '%edit os.path.isfile' will jump to the correct line
525 e.g. '%edit os.path.isfile' will jump to the correct line
523 automatically. Contributions for command lines of your favourite
526 automatically. Contributions for command lines of your favourite
524 editors welcome.
527 editors welcome.
525
528
526 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
529 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
527
530
528 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
531 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
529 preventing source display in certain cases. In reality I think
532 preventing source display in certain cases. In reality I think
530 the problem is with Ubuntu's Python build, but this change works
533 the problem is with Ubuntu's Python build, but this change works
531 around the issue in some cases (not in all, unfortunately). I'd
534 around the issue in some cases (not in all, unfortunately). I'd
532 filed a Python bug on this with more details, but in the change of
535 filed a Python bug on this with more details, but in the change of
533 bug trackers it seems to have been lost.
536 bug trackers it seems to have been lost.
534
537
535 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
538 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
536 not the same, it's not self-documenting, doesn't allow range
539 not the same, it's not self-documenting, doesn't allow range
537 selection, and sorts alphabetically instead of numerically.
540 selection, and sorts alphabetically instead of numerically.
538 (magic_r): restore %r. No, "up + enter. One char magic" is not
541 (magic_r): restore %r. No, "up + enter. One char magic" is not
539 the same thing, since %r takes parameters to allow fast retrieval
542 the same thing, since %r takes parameters to allow fast retrieval
540 of old commands. I've received emails from users who use this a
543 of old commands. I've received emails from users who use this a
541 LOT, so it stays.
544 LOT, so it stays.
542 (magic_automagic): restore %automagic. "use _ip.option.automagic"
545 (magic_automagic): restore %automagic. "use _ip.option.automagic"
543 is not a valid replacement b/c it doesn't provide an complete
546 is not a valid replacement b/c it doesn't provide an complete
544 explanation (which the automagic docstring does).
547 explanation (which the automagic docstring does).
545 (magic_autocall): restore %autocall, with improved docstring.
548 (magic_autocall): restore %autocall, with improved docstring.
546 Same argument as for others, "use _ip.options.autocall" is not a
549 Same argument as for others, "use _ip.options.autocall" is not a
547 valid replacement.
550 valid replacement.
548 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
551 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
549 tutorials and online docs.
552 tutorials and online docs.
550
553
551 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
554 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
552
555
553 * IPython/usage.py (quick_reference): mention magics in quickref,
556 * IPython/usage.py (quick_reference): mention magics in quickref,
554 modified main banner to mention %quickref.
557 modified main banner to mention %quickref.
555
558
556 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
559 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
557
560
558 2007-09-06 Ville Vainio <vivainio@gmail.com>
561 2007-09-06 Ville Vainio <vivainio@gmail.com>
559
562
560 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
563 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
561 Callable aliases now pass the _ip as first arg. This breaks
564 Callable aliases now pass the _ip as first arg. This breaks
562 compatibility with earlier 0.8.2.svn series! (though they should
565 compatibility with earlier 0.8.2.svn series! (though they should
563 not have been in use yet outside these few extensions)
566 not have been in use yet outside these few extensions)
564
567
565 2007-09-05 Ville Vainio <vivainio@gmail.com>
568 2007-09-05 Ville Vainio <vivainio@gmail.com>
566
569
567 * external/mglob.py: expand('dirname') => ['dirname'], instead
570 * external/mglob.py: expand('dirname') => ['dirname'], instead
568 of ['dirname/foo','dirname/bar', ...].
571 of ['dirname/foo','dirname/bar', ...].
569
572
570 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
573 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
571 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
574 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
572 is useful for others as well).
575 is useful for others as well).
573
576
574 * iplib.py: on callable aliases (as opposed to old style aliases),
577 * iplib.py: on callable aliases (as opposed to old style aliases),
575 do var_expand() immediately, and use make_quoted_expr instead
578 do var_expand() immediately, and use make_quoted_expr instead
576 of hardcoded r"""
579 of hardcoded r"""
577
580
578 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
581 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
579 if not available load ipy_fsops.py for cp, mv, etc. replacements
582 if not available load ipy_fsops.py for cp, mv, etc. replacements
580
583
581 * OInspect.py, ipy_which.py: improve %which and obj? for callable
584 * OInspect.py, ipy_which.py: improve %which and obj? for callable
582 aliases
585 aliases
583
586
584 2007-09-04 Ville Vainio <vivainio@gmail.com>
587 2007-09-04 Ville Vainio <vivainio@gmail.com>
585
588
586 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
589 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
587 Relicensed under BSD with the authors approval.
590 Relicensed under BSD with the authors approval.
588
591
589 * ipmaker.py, usage.py: Remove %magic from default banner, improve
592 * ipmaker.py, usage.py: Remove %magic from default banner, improve
590 %quickref
593 %quickref
591
594
592 2007-09-03 Ville Vainio <vivainio@gmail.com>
595 2007-09-03 Ville Vainio <vivainio@gmail.com>
593
596
594 * Magic.py: %time now passes expression through prefilter,
597 * Magic.py: %time now passes expression through prefilter,
595 allowing IPython syntax.
598 allowing IPython syntax.
596
599
597 2007-09-01 Ville Vainio <vivainio@gmail.com>
600 2007-09-01 Ville Vainio <vivainio@gmail.com>
598
601
599 * ipmaker.py: Always show full traceback when newstyle config fails
602 * ipmaker.py: Always show full traceback when newstyle config fails
600
603
601 2007-08-27 Ville Vainio <vivainio@gmail.com>
604 2007-08-27 Ville Vainio <vivainio@gmail.com>
602
605
603 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
606 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
604
607
605 2007-08-26 Ville Vainio <vivainio@gmail.com>
608 2007-08-26 Ville Vainio <vivainio@gmail.com>
606
609
607 * ipmaker.py: Command line args have the highest priority again
610 * ipmaker.py: Command line args have the highest priority again
608
611
609 * iplib.py, ipmaker.py: -i command line argument now behaves as in
612 * iplib.py, ipmaker.py: -i command line argument now behaves as in
610 normal python, i.e. leaves the IPython session running after -c
613 normal python, i.e. leaves the IPython session running after -c
611 command or running a batch file from command line.
614 command or running a batch file from command line.
612
615
613 2007-08-22 Ville Vainio <vivainio@gmail.com>
616 2007-08-22 Ville Vainio <vivainio@gmail.com>
614
617
615 * iplib.py: no extra empty (last) line in raw hist w/ multiline
618 * iplib.py: no extra empty (last) line in raw hist w/ multiline
616 statements
619 statements
617
620
618 * logger.py: Fix bug where blank lines in history were not
621 * logger.py: Fix bug where blank lines in history were not
619 added until AFTER adding the current line; translated and raw
622 added until AFTER adding the current line; translated and raw
620 history should finally be in sync with prompt now.
623 history should finally be in sync with prompt now.
621
624
622 * ipy_completers.py: quick_completer now makes it easy to create
625 * ipy_completers.py: quick_completer now makes it easy to create
623 trivial custom completers
626 trivial custom completers
624
627
625 * clearcmd.py: shadow history compression & erasing, fixed input hist
628 * clearcmd.py: shadow history compression & erasing, fixed input hist
626 clearing.
629 clearing.
627
630
628 * envpersist.py, history.py: %env (sh profile only), %hist completers
631 * envpersist.py, history.py: %env (sh profile only), %hist completers
629
632
630 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
633 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
631 term title now include the drive letter, and always use / instead of
634 term title now include the drive letter, and always use / instead of
632 os.sep (as per recommended approach for win32 ipython in general).
635 os.sep (as per recommended approach for win32 ipython in general).
633
636
634 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
637 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
635 plain python scripts from ipykit command line by running
638 plain python scripts from ipykit command line by running
636 "py myscript.py", even w/o installed python.
639 "py myscript.py", even w/o installed python.
637
640
638 2007-08-21 Ville Vainio <vivainio@gmail.com>
641 2007-08-21 Ville Vainio <vivainio@gmail.com>
639
642
640 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
643 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
641 (for backwards compatibility)
644 (for backwards compatibility)
642
645
643 * history.py: switch back to %hist -t from %hist -r as default.
646 * history.py: switch back to %hist -t from %hist -r as default.
644 At least until raw history is fixed for good.
647 At least until raw history is fixed for good.
645
648
646 2007-08-20 Ville Vainio <vivainio@gmail.com>
649 2007-08-20 Ville Vainio <vivainio@gmail.com>
647
650
648 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
651 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
649 locate alias redeclarations etc. Also, avoid handling
652 locate alias redeclarations etc. Also, avoid handling
650 _ip.IP.alias_table directly, prefer using _ip.defalias.
653 _ip.IP.alias_table directly, prefer using _ip.defalias.
651
654
652
655
653 2007-08-15 Ville Vainio <vivainio@gmail.com>
656 2007-08-15 Ville Vainio <vivainio@gmail.com>
654
657
655 * prefilter.py: ! is now always served first
658 * prefilter.py: ! is now always served first
656
659
657 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
660 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
658
661
659 * IPython/iplib.py (safe_execfile): fix the SystemExit
662 * IPython/iplib.py (safe_execfile): fix the SystemExit
660 auto-suppression code to work in Python2.4 (the internal structure
663 auto-suppression code to work in Python2.4 (the internal structure
661 of that exception changed and I'd only tested the code with 2.5).
664 of that exception changed and I'd only tested the code with 2.5).
662 Bug reported by a SciPy attendee.
665 Bug reported by a SciPy attendee.
663
666
664 2007-08-13 Ville Vainio <vivainio@gmail.com>
667 2007-08-13 Ville Vainio <vivainio@gmail.com>
665
668
666 * prefilter.py: reverted !c:/bin/foo fix, made % in
669 * prefilter.py: reverted !c:/bin/foo fix, made % in
667 multiline specials work again
670 multiline specials work again
668
671
669 2007-08-13 Ville Vainio <vivainio@gmail.com>
672 2007-08-13 Ville Vainio <vivainio@gmail.com>
670
673
671 * prefilter.py: Take more care to special-case !, so that
674 * prefilter.py: Take more care to special-case !, so that
672 !c:/bin/foo.exe works.
675 !c:/bin/foo.exe works.
673
676
674 * setup.py: if we are building eggs, strip all docs and
677 * setup.py: if we are building eggs, strip all docs and
675 examples (it doesn't make sense to bytecompile examples,
678 examples (it doesn't make sense to bytecompile examples,
676 and docs would be in an awkward place anyway).
679 and docs would be in an awkward place anyway).
677
680
678 * Ryan Krauss' patch fixes start menu shortcuts when IPython
681 * Ryan Krauss' patch fixes start menu shortcuts when IPython
679 is installed into a directory that has spaces in the name.
682 is installed into a directory that has spaces in the name.
680
683
681 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
684 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
682
685
683 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
686 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
684 doctest profile and %doctest_mode, so they actually generate the
687 doctest profile and %doctest_mode, so they actually generate the
685 blank lines needed by doctest to separate individual tests.
688 blank lines needed by doctest to separate individual tests.
686
689
687 * IPython/iplib.py (safe_execfile): modify so that running code
690 * IPython/iplib.py (safe_execfile): modify so that running code
688 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
691 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
689 doesn't get a printed traceback. Any other value in sys.exit(),
692 doesn't get a printed traceback. Any other value in sys.exit(),
690 including the empty call, still generates a traceback. This
693 including the empty call, still generates a traceback. This
691 enables use of %run without having to pass '-e' for codes that
694 enables use of %run without having to pass '-e' for codes that
692 correctly set the exit status flag.
695 correctly set the exit status flag.
693
696
694 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
697 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
695
698
696 * IPython/iplib.py (InteractiveShell.post_config_initialization):
699 * IPython/iplib.py (InteractiveShell.post_config_initialization):
697 fix problems with doctests failing when run inside IPython due to
700 fix problems with doctests failing when run inside IPython due to
698 IPython's modifications of sys.displayhook.
701 IPython's modifications of sys.displayhook.
699
702
700 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
703 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
701
704
702 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
705 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
703 a string with names.
706 a string with names.
704
707
705 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
708 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
706
709
707 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
710 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
708 magic to toggle on/off the doctest pasting support without having
711 magic to toggle on/off the doctest pasting support without having
709 to leave a session to switch to a separate profile.
712 to leave a session to switch to a separate profile.
710
713
711 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
714 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
712
715
713 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
716 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
714 introduce a blank line between inputs, to conform to doctest
717 introduce a blank line between inputs, to conform to doctest
715 requirements.
718 requirements.
716
719
717 * IPython/OInspect.py (Inspector.pinfo): fix another part where
720 * IPython/OInspect.py (Inspector.pinfo): fix another part where
718 auto-generated docstrings for new-style classes were showing up.
721 auto-generated docstrings for new-style classes were showing up.
719
722
720 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
723 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
721
724
722 * api_changes: Add new file to track backward-incompatible
725 * api_changes: Add new file to track backward-incompatible
723 user-visible changes.
726 user-visible changes.
724
727
725 2007-08-06 Ville Vainio <vivainio@gmail.com>
728 2007-08-06 Ville Vainio <vivainio@gmail.com>
726
729
727 * ipmaker.py: fix bug where user_config_ns didn't exist at all
730 * ipmaker.py: fix bug where user_config_ns didn't exist at all
728 before all the config files were handled.
731 before all the config files were handled.
729
732
730 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
733 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
731
734
732 * IPython/irunner.py (RunnerFactory): Add new factory class for
735 * IPython/irunner.py (RunnerFactory): Add new factory class for
733 creating reusable runners based on filenames.
736 creating reusable runners based on filenames.
734
737
735 * IPython/Extensions/ipy_profile_doctest.py: New profile for
738 * IPython/Extensions/ipy_profile_doctest.py: New profile for
736 doctest support. It sets prompts/exceptions as similar to
739 doctest support. It sets prompts/exceptions as similar to
737 standard Python as possible, so that ipython sessions in this
740 standard Python as possible, so that ipython sessions in this
738 profile can be easily pasted as doctests with minimal
741 profile can be easily pasted as doctests with minimal
739 modifications. It also enables pasting of doctests from external
742 modifications. It also enables pasting of doctests from external
740 sources (even if they have leading whitespace), so that you can
743 sources (even if they have leading whitespace), so that you can
741 rerun doctests from existing sources.
744 rerun doctests from existing sources.
742
745
743 * IPython/iplib.py (_prefilter): fix a buglet where after entering
746 * IPython/iplib.py (_prefilter): fix a buglet where after entering
744 some whitespace, the prompt would become a continuation prompt
747 some whitespace, the prompt would become a continuation prompt
745 with no way of exiting it other than Ctrl-C. This fix brings us
748 with no way of exiting it other than Ctrl-C. This fix brings us
746 into conformity with how the default python prompt works.
749 into conformity with how the default python prompt works.
747
750
748 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
751 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
749 Add support for pasting not only lines that start with '>>>', but
752 Add support for pasting not only lines that start with '>>>', but
750 also with ' >>>'. That is, arbitrary whitespace can now precede
753 also with ' >>>'. That is, arbitrary whitespace can now precede
751 the prompts. This makes the system useful for pasting doctests
754 the prompts. This makes the system useful for pasting doctests
752 from docstrings back into a normal session.
755 from docstrings back into a normal session.
753
756
754 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
757 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
755
758
756 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
759 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
757 r1357, which had killed multiple invocations of an embedded
760 r1357, which had killed multiple invocations of an embedded
758 ipython (this means that example-embed has been broken for over 1
761 ipython (this means that example-embed has been broken for over 1
759 year!!!). Rather than possibly breaking the batch stuff for which
762 year!!!). Rather than possibly breaking the batch stuff for which
760 the code in iplib.py/interact was introduced, I worked around the
763 the code in iplib.py/interact was introduced, I worked around the
761 problem in the embedding class in Shell.py. We really need a
764 problem in the embedding class in Shell.py. We really need a
762 bloody test suite for this code, I'm sick of finding stuff that
765 bloody test suite for this code, I'm sick of finding stuff that
763 used to work breaking left and right every time I use an old
766 used to work breaking left and right every time I use an old
764 feature I hadn't touched in a few months.
767 feature I hadn't touched in a few months.
765 (kill_embedded): Add a new magic that only shows up in embedded
768 (kill_embedded): Add a new magic that only shows up in embedded
766 mode, to allow users to permanently deactivate an embedded instance.
769 mode, to allow users to permanently deactivate an embedded instance.
767
770
768 2007-08-01 Ville Vainio <vivainio@gmail.com>
771 2007-08-01 Ville Vainio <vivainio@gmail.com>
769
772
770 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
773 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
771 history gets out of sync on runlines (e.g. when running macros).
774 history gets out of sync on runlines (e.g. when running macros).
772
775
773 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
776 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
774
777
775 * IPython/Magic.py (magic_colors): fix win32-related error message
778 * IPython/Magic.py (magic_colors): fix win32-related error message
776 that could appear under *nix when readline was missing. Patch by
779 that could appear under *nix when readline was missing. Patch by
777 Scott Jackson, closes #175.
780 Scott Jackson, closes #175.
778
781
779 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
782 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
780
783
781 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
784 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
782 completer that it traits-aware, so that traits objects don't show
785 completer that it traits-aware, so that traits objects don't show
783 all of their internal attributes all the time.
786 all of their internal attributes all the time.
784
787
785 * IPython/genutils.py (dir2): moved this code from inside
788 * IPython/genutils.py (dir2): moved this code from inside
786 completer.py to expose it publicly, so I could use it in the
789 completer.py to expose it publicly, so I could use it in the
787 wildcards bugfix.
790 wildcards bugfix.
788
791
789 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
792 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
790 Stefan with Traits.
793 Stefan with Traits.
791
794
792 * IPython/completer.py (Completer.attr_matches): change internal
795 * IPython/completer.py (Completer.attr_matches): change internal
793 var name from 'object' to 'obj', since 'object' is now a builtin
796 var name from 'object' to 'obj', since 'object' is now a builtin
794 and this can lead to weird bugs if reusing this code elsewhere.
797 and this can lead to weird bugs if reusing this code elsewhere.
795
798
796 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
799 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
797
800
798 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
801 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
799 'foo?' and update the code to prevent printing of default
802 'foo?' and update the code to prevent printing of default
800 docstrings that started appearing after I added support for
803 docstrings that started appearing after I added support for
801 new-style classes. The approach I'm using isn't ideal (I just
804 new-style classes. The approach I'm using isn't ideal (I just
802 special-case those strings) but I'm not sure how to more robustly
805 special-case those strings) but I'm not sure how to more robustly
803 differentiate between truly user-written strings and Python's
806 differentiate between truly user-written strings and Python's
804 automatic ones.
807 automatic ones.
805
808
806 2007-07-09 Ville Vainio <vivainio@gmail.com>
809 2007-07-09 Ville Vainio <vivainio@gmail.com>
807
810
808 * completer.py: Applied Matthew Neeley's patch:
811 * completer.py: Applied Matthew Neeley's patch:
809 Dynamic attributes from trait_names and _getAttributeNames are added
812 Dynamic attributes from trait_names and _getAttributeNames are added
810 to the list of tab completions, but when this happens, the attribute
813 to the list of tab completions, but when this happens, the attribute
811 list is turned into a set, so the attributes are unordered when
814 list is turned into a set, so the attributes are unordered when
812 printed, which makes it hard to find the right completion. This patch
815 printed, which makes it hard to find the right completion. This patch
813 turns this set back into a list and sort it.
816 turns this set back into a list and sort it.
814
817
815 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
818 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
816
819
817 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
820 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
818 classes in various inspector functions.
821 classes in various inspector functions.
819
822
820 2007-06-28 Ville Vainio <vivainio@gmail.com>
823 2007-06-28 Ville Vainio <vivainio@gmail.com>
821
824
822 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
825 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
823 Implement "shadow" namespace, and callable aliases that reside there.
826 Implement "shadow" namespace, and callable aliases that reside there.
824 Use them by:
827 Use them by:
825
828
826 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
829 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
827
830
828 foo hello world
831 foo hello world
829 (gets translated to:)
832 (gets translated to:)
830 _sh.foo(r"""hello world""")
833 _sh.foo(r"""hello world""")
831
834
832 In practice, this kind of alias can take the role of a magic function
835 In practice, this kind of alias can take the role of a magic function
833
836
834 * New generic inspect_object, called on obj? and obj??
837 * New generic inspect_object, called on obj? and obj??
835
838
836 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
839 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
837
840
838 * IPython/ultraTB.py (findsource): fix a problem with
841 * IPython/ultraTB.py (findsource): fix a problem with
839 inspect.getfile that can cause crashes during traceback construction.
842 inspect.getfile that can cause crashes during traceback construction.
840
843
841 2007-06-14 Ville Vainio <vivainio@gmail.com>
844 2007-06-14 Ville Vainio <vivainio@gmail.com>
842
845
843 * iplib.py (handle_auto): Try to use ascii for printing "--->"
846 * iplib.py (handle_auto): Try to use ascii for printing "--->"
844 autocall rewrite indication, becausesometimes unicode fails to print
847 autocall rewrite indication, becausesometimes unicode fails to print
845 properly (and you get ' - - - '). Use plain uncoloured ---> for
848 properly (and you get ' - - - '). Use plain uncoloured ---> for
846 unicode.
849 unicode.
847
850
848 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
851 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
849
852
850 . pickleshare 'hash' commands (hget, hset, hcompress,
853 . pickleshare 'hash' commands (hget, hset, hcompress,
851 hdict) for efficient shadow history storage.
854 hdict) for efficient shadow history storage.
852
855
853 2007-06-13 Ville Vainio <vivainio@gmail.com>
856 2007-06-13 Ville Vainio <vivainio@gmail.com>
854
857
855 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
858 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
856 Added kw arg 'interactive', tell whether vars should be visible
859 Added kw arg 'interactive', tell whether vars should be visible
857 with %whos.
860 with %whos.
858
861
859 2007-06-11 Ville Vainio <vivainio@gmail.com>
862 2007-06-11 Ville Vainio <vivainio@gmail.com>
860
863
861 * pspersistence.py, Magic.py, iplib.py: directory history now saved
864 * pspersistence.py, Magic.py, iplib.py: directory history now saved
862 to db
865 to db
863
866
864 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
867 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
865 Also, it exits IPython immediately after evaluating the command (just like
868 Also, it exits IPython immediately after evaluating the command (just like
866 std python)
869 std python)
867
870
868 2007-06-05 Walter Doerwald <walter@livinglogic.de>
871 2007-06-05 Walter Doerwald <walter@livinglogic.de>
869
872
870 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
873 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
871 Python string and captures the output. (Idea and original patch by
874 Python string and captures the output. (Idea and original patch by
872 Stefan van der Walt)
875 Stefan van der Walt)
873
876
874 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
877 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
875
878
876 * IPython/ultraTB.py (VerboseTB.text): update printing of
879 * IPython/ultraTB.py (VerboseTB.text): update printing of
877 exception types for Python 2.5 (now all exceptions in the stdlib
880 exception types for Python 2.5 (now all exceptions in the stdlib
878 are new-style classes).
881 are new-style classes).
879
882
880 2007-05-31 Walter Doerwald <walter@livinglogic.de>
883 2007-05-31 Walter Doerwald <walter@livinglogic.de>
881
884
882 * IPython/Extensions/igrid.py: Add new commands refresh and
885 * IPython/Extensions/igrid.py: Add new commands refresh and
883 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
886 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
884 the iterator once (refresh) or after every x seconds (refresh_timer).
887 the iterator once (refresh) or after every x seconds (refresh_timer).
885 Add a working implementation of "searchexpression", where the text
888 Add a working implementation of "searchexpression", where the text
886 entered is not the text to search for, but an expression that must
889 entered is not the text to search for, but an expression that must
887 be true. Added display of shortcuts to the menu. Added commands "pickinput"
890 be true. Added display of shortcuts to the menu. Added commands "pickinput"
888 and "pickinputattr" that put the object or attribute under the cursor
891 and "pickinputattr" that put the object or attribute under the cursor
889 in the input line. Split the statusbar to be able to display the currently
892 in the input line. Split the statusbar to be able to display the currently
890 active refresh interval. (Patch by Nik Tautenhahn)
893 active refresh interval. (Patch by Nik Tautenhahn)
891
894
892 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
895 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
893
896
894 * fixing set_term_title to use ctypes as default
897 * fixing set_term_title to use ctypes as default
895
898
896 * fixing set_term_title fallback to work when curent dir
899 * fixing set_term_title fallback to work when curent dir
897 is on a windows network share
900 is on a windows network share
898
901
899 2007-05-28 Ville Vainio <vivainio@gmail.com>
902 2007-05-28 Ville Vainio <vivainio@gmail.com>
900
903
901 * %cpaste: strip + with > from left (diffs).
904 * %cpaste: strip + with > from left (diffs).
902
905
903 * iplib.py: Fix crash when readline not installed
906 * iplib.py: Fix crash when readline not installed
904
907
905 2007-05-26 Ville Vainio <vivainio@gmail.com>
908 2007-05-26 Ville Vainio <vivainio@gmail.com>
906
909
907 * generics.py: introduce easy to extend result_display generic
910 * generics.py: introduce easy to extend result_display generic
908 function (using simplegeneric.py).
911 function (using simplegeneric.py).
909
912
910 * Fixed the append functionality of %set.
913 * Fixed the append functionality of %set.
911
914
912 2007-05-25 Ville Vainio <vivainio@gmail.com>
915 2007-05-25 Ville Vainio <vivainio@gmail.com>
913
916
914 * New magic: %rep (fetch / run old commands from history)
917 * New magic: %rep (fetch / run old commands from history)
915
918
916 * New extension: mglob (%mglob magic), for powerful glob / find /filter
919 * New extension: mglob (%mglob magic), for powerful glob / find /filter
917 like functionality
920 like functionality
918
921
919 % maghistory.py: %hist -g PATTERM greps the history for pattern
922 % maghistory.py: %hist -g PATTERM greps the history for pattern
920
923
921 2007-05-24 Walter Doerwald <walter@livinglogic.de>
924 2007-05-24 Walter Doerwald <walter@livinglogic.de>
922
925
923 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
926 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
924 browse the IPython input history
927 browse the IPython input history
925
928
926 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
929 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
927 (mapped to "i") can be used to put the object under the curser in the input
930 (mapped to "i") can be used to put the object under the curser in the input
928 line. pickinputattr (mapped to "I") does the same for the attribute under
931 line. pickinputattr (mapped to "I") does the same for the attribute under
929 the cursor.
932 the cursor.
930
933
931 2007-05-24 Ville Vainio <vivainio@gmail.com>
934 2007-05-24 Ville Vainio <vivainio@gmail.com>
932
935
933 * Grand magic cleansing (changeset [2380]):
936 * Grand magic cleansing (changeset [2380]):
934
937
935 * Introduce ipy_legacy.py where the following magics were
938 * Introduce ipy_legacy.py where the following magics were
936 moved:
939 moved:
937
940
938 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
941 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
939
942
940 If you need them, either use default profile or "import ipy_legacy"
943 If you need them, either use default profile or "import ipy_legacy"
941 in your ipy_user_conf.py
944 in your ipy_user_conf.py
942
945
943 * Move sh and scipy profile to Extensions from UserConfig. this implies
946 * Move sh and scipy profile to Extensions from UserConfig. this implies
944 you should not edit them, but you don't need to run %upgrade when
947 you should not edit them, but you don't need to run %upgrade when
945 upgrading IPython anymore.
948 upgrading IPython anymore.
946
949
947 * %hist/%history now operates in "raw" mode by default. To get the old
950 * %hist/%history now operates in "raw" mode by default. To get the old
948 behaviour, run '%hist -n' (native mode).
951 behaviour, run '%hist -n' (native mode).
949
952
950 * split ipy_stock_completers.py to ipy_stock_completers.py and
953 * split ipy_stock_completers.py to ipy_stock_completers.py and
951 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
954 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
952 installed as default.
955 installed as default.
953
956
954 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
957 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
955 handling.
958 handling.
956
959
957 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
960 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
958 input if readline is available.
961 input if readline is available.
959
962
960 2007-05-23 Ville Vainio <vivainio@gmail.com>
963 2007-05-23 Ville Vainio <vivainio@gmail.com>
961
964
962 * macro.py: %store uses __getstate__ properly
965 * macro.py: %store uses __getstate__ properly
963
966
964 * exesetup.py: added new setup script for creating
967 * exesetup.py: added new setup script for creating
965 standalone IPython executables with py2exe (i.e.
968 standalone IPython executables with py2exe (i.e.
966 no python installation required).
969 no python installation required).
967
970
968 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
971 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
969 its place.
972 its place.
970
973
971 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
974 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
972
975
973 2007-05-21 Ville Vainio <vivainio@gmail.com>
976 2007-05-21 Ville Vainio <vivainio@gmail.com>
974
977
975 * platutil_win32.py (set_term_title): handle
978 * platutil_win32.py (set_term_title): handle
976 failure of 'title' system call properly.
979 failure of 'title' system call properly.
977
980
978 2007-05-17 Walter Doerwald <walter@livinglogic.de>
981 2007-05-17 Walter Doerwald <walter@livinglogic.de>
979
982
980 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
983 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
981 (Bug detected by Paul Mueller).
984 (Bug detected by Paul Mueller).
982
985
983 2007-05-16 Ville Vainio <vivainio@gmail.com>
986 2007-05-16 Ville Vainio <vivainio@gmail.com>
984
987
985 * ipy_profile_sci.py, ipython_win_post_install.py: Create
988 * ipy_profile_sci.py, ipython_win_post_install.py: Create
986 new "sci" profile, effectively a modern version of the old
989 new "sci" profile, effectively a modern version of the old
987 "scipy" profile (which is now slated for deprecation).
990 "scipy" profile (which is now slated for deprecation).
988
991
989 2007-05-15 Ville Vainio <vivainio@gmail.com>
992 2007-05-15 Ville Vainio <vivainio@gmail.com>
990
993
991 * pycolorize.py, pycolor.1: Paul Mueller's patches that
994 * pycolorize.py, pycolor.1: Paul Mueller's patches that
992 make pycolorize read input from stdin when run without arguments.
995 make pycolorize read input from stdin when run without arguments.
993
996
994 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
997 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
995
998
996 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
999 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
997 it in sh profile (instead of ipy_system_conf.py).
1000 it in sh profile (instead of ipy_system_conf.py).
998
1001
999 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
1002 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
1000 aliases are now lower case on windows (MyCommand.exe => mycommand).
1003 aliases are now lower case on windows (MyCommand.exe => mycommand).
1001
1004
1002 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
1005 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
1003 Macros are now callable objects that inherit from ipapi.IPyAutocall,
1006 Macros are now callable objects that inherit from ipapi.IPyAutocall,
1004 i.e. get autocalled regardless of system autocall setting.
1007 i.e. get autocalled regardless of system autocall setting.
1005
1008
1006 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
1009 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
1007
1010
1008 * IPython/rlineimpl.py: check for clear_history in readline and
1011 * IPython/rlineimpl.py: check for clear_history in readline and
1009 make it a dummy no-op if not available. This function isn't
1012 make it a dummy no-op if not available. This function isn't
1010 guaranteed to be in the API and appeared in Python 2.4, so we need
1013 guaranteed to be in the API and appeared in Python 2.4, so we need
1011 to check it ourselves. Also, clean up this file quite a bit.
1014 to check it ourselves. Also, clean up this file quite a bit.
1012
1015
1013 * ipython.1: update man page and full manual with information
1016 * ipython.1: update man page and full manual with information
1014 about threads (remove outdated warning). Closes #151.
1017 about threads (remove outdated warning). Closes #151.
1015
1018
1016 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
1019 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
1017
1020
1018 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
1021 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
1019 in trunk (note that this made it into the 0.8.1 release already,
1022 in trunk (note that this made it into the 0.8.1 release already,
1020 but the changelogs didn't get coordinated). Many thanks to Gael
1023 but the changelogs didn't get coordinated). Many thanks to Gael
1021 Varoquaux <gael.varoquaux-AT-normalesup.org>
1024 Varoquaux <gael.varoquaux-AT-normalesup.org>
1022
1025
1023 2007-05-09 *** Released version 0.8.1
1026 2007-05-09 *** Released version 0.8.1
1024
1027
1025 2007-05-10 Walter Doerwald <walter@livinglogic.de>
1028 2007-05-10 Walter Doerwald <walter@livinglogic.de>
1026
1029
1027 * IPython/Extensions/igrid.py: Incorporate html help into
1030 * IPython/Extensions/igrid.py: Incorporate html help into
1028 the module, so we don't have to search for the file.
1031 the module, so we don't have to search for the file.
1029
1032
1030 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1033 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1031
1034
1032 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1035 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1033
1036
1034 2007-04-30 Ville Vainio <vivainio@gmail.com>
1037 2007-04-30 Ville Vainio <vivainio@gmail.com>
1035
1038
1036 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1039 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1037 user has illegal (non-ascii) home directory name
1040 user has illegal (non-ascii) home directory name
1038
1041
1039 2007-04-27 Ville Vainio <vivainio@gmail.com>
1042 2007-04-27 Ville Vainio <vivainio@gmail.com>
1040
1043
1041 * platutils_win32.py: implement set_term_title for windows
1044 * platutils_win32.py: implement set_term_title for windows
1042
1045
1043 * Update version number
1046 * Update version number
1044
1047
1045 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1048 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1046
1049
1047 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1050 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1048
1051
1049 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1052 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1050 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1053 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1051 bug discovered by Ville).
1054 bug discovered by Ville).
1052
1055
1053 2007-04-26 Ville Vainio <vivainio@gmail.com>
1056 2007-04-26 Ville Vainio <vivainio@gmail.com>
1054
1057
1055 * Extensions/ipy_completers.py: Olivier's module completer now
1058 * Extensions/ipy_completers.py: Olivier's module completer now
1056 saves the list of root modules if it takes > 4 secs on the first run.
1059 saves the list of root modules if it takes > 4 secs on the first run.
1057
1060
1058 * Magic.py (%rehashx): %rehashx now clears the completer cache
1061 * Magic.py (%rehashx): %rehashx now clears the completer cache
1059
1062
1060
1063
1061 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1064 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1062
1065
1063 * ipython.el: fix incorrect color scheme, reported by Stefan.
1066 * ipython.el: fix incorrect color scheme, reported by Stefan.
1064 Closes #149.
1067 Closes #149.
1065
1068
1066 * IPython/PyColorize.py (Parser.format2): fix state-handling
1069 * IPython/PyColorize.py (Parser.format2): fix state-handling
1067 logic. I still don't like how that code handles state, but at
1070 logic. I still don't like how that code handles state, but at
1068 least now it should be correct, if inelegant. Closes #146.
1071 least now it should be correct, if inelegant. Closes #146.
1069
1072
1070 2007-04-25 Ville Vainio <vivainio@gmail.com>
1073 2007-04-25 Ville Vainio <vivainio@gmail.com>
1071
1074
1072 * Extensions/ipy_which.py: added extension for %which magic, works
1075 * Extensions/ipy_which.py: added extension for %which magic, works
1073 a lot like unix 'which' but also finds and expands aliases, and
1076 a lot like unix 'which' but also finds and expands aliases, and
1074 allows wildcards.
1077 allows wildcards.
1075
1078
1076 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1079 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1077 as opposed to returning nothing.
1080 as opposed to returning nothing.
1078
1081
1079 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1082 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1080 ipy_stock_completers on default profile, do import on sh profile.
1083 ipy_stock_completers on default profile, do import on sh profile.
1081
1084
1082 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1085 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1083
1086
1084 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1087 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1085 like ipython.py foo.py which raised a IndexError.
1088 like ipython.py foo.py which raised a IndexError.
1086
1089
1087 2007-04-21 Ville Vainio <vivainio@gmail.com>
1090 2007-04-21 Ville Vainio <vivainio@gmail.com>
1088
1091
1089 * Extensions/ipy_extutil.py: added extension to manage other ipython
1092 * Extensions/ipy_extutil.py: added extension to manage other ipython
1090 extensions. Now only supports 'ls' == list extensions.
1093 extensions. Now only supports 'ls' == list extensions.
1091
1094
1092 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1095 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1093
1096
1094 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1097 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1095 would prevent use of the exception system outside of a running
1098 would prevent use of the exception system outside of a running
1096 IPython instance.
1099 IPython instance.
1097
1100
1098 2007-04-20 Ville Vainio <vivainio@gmail.com>
1101 2007-04-20 Ville Vainio <vivainio@gmail.com>
1099
1102
1100 * Extensions/ipy_render.py: added extension for easy
1103 * Extensions/ipy_render.py: added extension for easy
1101 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1104 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1102 'Iptl' template notation,
1105 'Iptl' template notation,
1103
1106
1104 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1107 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1105 safer & faster 'import' completer.
1108 safer & faster 'import' completer.
1106
1109
1107 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1110 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1108 and _ip.defalias(name, command).
1111 and _ip.defalias(name, command).
1109
1112
1110 * Extensions/ipy_exportdb.py: New extension for exporting all the
1113 * Extensions/ipy_exportdb.py: New extension for exporting all the
1111 %store'd data in a portable format (normal ipapi calls like
1114 %store'd data in a portable format (normal ipapi calls like
1112 defmacro() etc.)
1115 defmacro() etc.)
1113
1116
1114 2007-04-19 Ville Vainio <vivainio@gmail.com>
1117 2007-04-19 Ville Vainio <vivainio@gmail.com>
1115
1118
1116 * upgrade_dir.py: skip junk files like *.pyc
1119 * upgrade_dir.py: skip junk files like *.pyc
1117
1120
1118 * Release.py: version number to 0.8.1
1121 * Release.py: version number to 0.8.1
1119
1122
1120 2007-04-18 Ville Vainio <vivainio@gmail.com>
1123 2007-04-18 Ville Vainio <vivainio@gmail.com>
1121
1124
1122 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1125 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1123 and later on win32.
1126 and later on win32.
1124
1127
1125 2007-04-16 Ville Vainio <vivainio@gmail.com>
1128 2007-04-16 Ville Vainio <vivainio@gmail.com>
1126
1129
1127 * iplib.py (showtraceback): Do not crash when running w/o readline.
1130 * iplib.py (showtraceback): Do not crash when running w/o readline.
1128
1131
1129 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1132 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1130
1133
1131 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1134 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1132 sorted (case sensitive with files and dirs mixed).
1135 sorted (case sensitive with files and dirs mixed).
1133
1136
1134 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1137 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1135
1138
1136 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1139 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1137
1140
1138 2007-04-10 *** Released version 0.8.0
1141 2007-04-10 *** Released version 0.8.0
1139
1142
1140 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1143 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1141
1144
1142 * Tag 0.8.0 for release.
1145 * Tag 0.8.0 for release.
1143
1146
1144 * IPython/iplib.py (reloadhist): add API function to cleanly
1147 * IPython/iplib.py (reloadhist): add API function to cleanly
1145 reload the readline history, which was growing inappropriately on
1148 reload the readline history, which was growing inappropriately on
1146 every %run call.
1149 every %run call.
1147
1150
1148 * win32_manual_post_install.py (run): apply last part of Nicolas
1151 * win32_manual_post_install.py (run): apply last part of Nicolas
1149 Pernetty's patch (I'd accidentally applied it in a different
1152 Pernetty's patch (I'd accidentally applied it in a different
1150 directory and this particular file didn't get patched).
1153 directory and this particular file didn't get patched).
1151
1154
1152 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1155 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1153
1156
1154 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1157 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1155 find the main thread id and use the proper API call. Thanks to
1158 find the main thread id and use the proper API call. Thanks to
1156 Stefan for the fix.
1159 Stefan for the fix.
1157
1160
1158 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1161 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1159 unit tests to reflect fixed ticket #52, and add more tests sent by
1162 unit tests to reflect fixed ticket #52, and add more tests sent by
1160 him.
1163 him.
1161
1164
1162 * IPython/iplib.py (raw_input): restore the readline completer
1165 * IPython/iplib.py (raw_input): restore the readline completer
1163 state on every input, in case third-party code messed it up.
1166 state on every input, in case third-party code messed it up.
1164 (_prefilter): revert recent addition of early-escape checks which
1167 (_prefilter): revert recent addition of early-escape checks which
1165 prevent many valid alias calls from working.
1168 prevent many valid alias calls from working.
1166
1169
1167 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1170 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1168 flag for sigint handler so we don't run a full signal() call on
1171 flag for sigint handler so we don't run a full signal() call on
1169 each runcode access.
1172 each runcode access.
1170
1173
1171 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1174 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1172 message.
1175 message.
1173
1176
1174 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1177 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1175
1178
1176 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1179 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1177 asynchronous exceptions working, i.e., Ctrl-C can actually
1180 asynchronous exceptions working, i.e., Ctrl-C can actually
1178 interrupt long-running code in the multithreaded shells.
1181 interrupt long-running code in the multithreaded shells.
1179
1182
1180 This is using Tomer Filiba's great ctypes-based trick:
1183 This is using Tomer Filiba's great ctypes-based trick:
1181 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1184 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1182 this in the past, but hadn't been able to make it work before. So
1185 this in the past, but hadn't been able to make it work before. So
1183 far it looks like it's actually running, but this needs more
1186 far it looks like it's actually running, but this needs more
1184 testing. If it really works, I'll be *very* happy, and we'll owe
1187 testing. If it really works, I'll be *very* happy, and we'll owe
1185 a huge thank you to Tomer. My current implementation is ugly,
1188 a huge thank you to Tomer. My current implementation is ugly,
1186 hackish and uses nasty globals, but I don't want to try and clean
1189 hackish and uses nasty globals, but I don't want to try and clean
1187 anything up until we know if it actually works.
1190 anything up until we know if it actually works.
1188
1191
1189 NOTE: this feature needs ctypes to work. ctypes is included in
1192 NOTE: this feature needs ctypes to work. ctypes is included in
1190 Python2.5, but 2.4 users will need to manually install it. This
1193 Python2.5, but 2.4 users will need to manually install it. This
1191 feature makes multi-threaded shells so much more usable that it's
1194 feature makes multi-threaded shells so much more usable that it's
1192 a minor price to pay (ctypes is very easy to install, already a
1195 a minor price to pay (ctypes is very easy to install, already a
1193 requirement for win32 and available in major linux distros).
1196 requirement for win32 and available in major linux distros).
1194
1197
1195 2007-04-04 Ville Vainio <vivainio@gmail.com>
1198 2007-04-04 Ville Vainio <vivainio@gmail.com>
1196
1199
1197 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1200 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1198 Moved implementations of 'bundled' completers to ipy_completers.py,
1201 Moved implementations of 'bundled' completers to ipy_completers.py,
1199 they are only enabled in ipy_stock_completers.py.
1202 they are only enabled in ipy_stock_completers.py.
1200
1203
1201 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1204 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1202
1205
1203 * IPython/PyColorize.py (Parser.format2): Fix identation of
1206 * IPython/PyColorize.py (Parser.format2): Fix identation of
1204 colorzied output and return early if color scheme is NoColor, to
1207 colorzied output and return early if color scheme is NoColor, to
1205 avoid unnecessary and expensive tokenization. Closes #131.
1208 avoid unnecessary and expensive tokenization. Closes #131.
1206
1209
1207 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1210 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1208
1211
1209 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1212 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1210 has a critical bug (a missing import that makes post-mortem not
1213 has a critical bug (a missing import that makes post-mortem not
1211 work at all). Unfortunately as of this time, this is the version
1214 work at all). Unfortunately as of this time, this is the version
1212 shipped with Ubuntu Edgy, so quite a few people have this one. I
1215 shipped with Ubuntu Edgy, so quite a few people have this one. I
1213 hope Edgy will update to a more recent package.
1216 hope Edgy will update to a more recent package.
1214
1217
1215 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1218 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1216
1219
1217 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1220 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1218 set by Stefan (only the first part had been applied before).
1221 set by Stefan (only the first part had been applied before).
1219
1222
1220 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1223 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1221 remove usage of the dangerous pkgutil.walk_packages(). See
1224 remove usage of the dangerous pkgutil.walk_packages(). See
1222 details in comments left in the code.
1225 details in comments left in the code.
1223
1226
1224 * IPython/Magic.py (magic_whos): add support for numpy arrays
1227 * IPython/Magic.py (magic_whos): add support for numpy arrays
1225 similar to what we had for Numeric.
1228 similar to what we had for Numeric.
1226
1229
1227 * IPython/completer.py (IPCompleter.complete): extend the
1230 * IPython/completer.py (IPCompleter.complete): extend the
1228 complete() call API to support completions by other mechanisms
1231 complete() call API to support completions by other mechanisms
1229 than readline. Closes #109.
1232 than readline. Closes #109.
1230
1233
1231 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1234 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1232 protect against a bug in Python's execfile(). Closes #123.
1235 protect against a bug in Python's execfile(). Closes #123.
1233
1236
1234 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1237 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1235
1238
1236 * IPython/iplib.py (split_user_input): ensure that when splitting
1239 * IPython/iplib.py (split_user_input): ensure that when splitting
1237 user input, the part that can be treated as a python name is pure
1240 user input, the part that can be treated as a python name is pure
1238 ascii (Python identifiers MUST be pure ascii). Part of the
1241 ascii (Python identifiers MUST be pure ascii). Part of the
1239 ongoing Unicode support work.
1242 ongoing Unicode support work.
1240
1243
1241 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1244 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1242 actual prompt number, without any coloring. This allows users to
1245 actual prompt number, without any coloring. This allows users to
1243 produce numbered prompts with their own colors. Added after a
1246 produce numbered prompts with their own colors. Added after a
1244 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1247 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1245
1248
1246 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1249 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1247
1250
1248 * IPython/Extensions/igrid.py: Map the return key
1251 * IPython/Extensions/igrid.py: Map the return key
1249 to enter() and shift-return to enterattr().
1252 to enter() and shift-return to enterattr().
1250
1253
1251 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1254 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1252
1255
1253 * IPython/Magic.py (magic_psearch): add unicode support by
1256 * IPython/Magic.py (magic_psearch): add unicode support by
1254 encoding to ascii the input, since this routine also only deals
1257 encoding to ascii the input, since this routine also only deals
1255 with valid Python names. Fixes a bug reported by Stefan.
1258 with valid Python names. Fixes a bug reported by Stefan.
1256
1259
1257 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1260 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1258
1261
1259 * IPython/Magic.py (_inspect): convert unicode input into ascii
1262 * IPython/Magic.py (_inspect): convert unicode input into ascii
1260 before trying to evaluate it as a Python identifier. This fixes a
1263 before trying to evaluate it as a Python identifier. This fixes a
1261 problem that the new unicode support had introduced when analyzing
1264 problem that the new unicode support had introduced when analyzing
1262 long definition lines for functions.
1265 long definition lines for functions.
1263
1266
1264 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1267 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1265
1268
1266 * IPython/Extensions/igrid.py: Fix picking. Using
1269 * IPython/Extensions/igrid.py: Fix picking. Using
1267 igrid with wxPython 2.6 and -wthread should work now.
1270 igrid with wxPython 2.6 and -wthread should work now.
1268 igrid.display() simply tries to create a frame without
1271 igrid.display() simply tries to create a frame without
1269 an application. Only if this fails an application is created.
1272 an application. Only if this fails an application is created.
1270
1273
1271 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1274 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1272
1275
1273 * IPython/Extensions/path.py: Updated to version 2.2.
1276 * IPython/Extensions/path.py: Updated to version 2.2.
1274
1277
1275 2007-03-23 Ville Vainio <vivainio@gmail.com>
1278 2007-03-23 Ville Vainio <vivainio@gmail.com>
1276
1279
1277 * iplib.py: recursive alias expansion now works better, so that
1280 * iplib.py: recursive alias expansion now works better, so that
1278 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1281 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1279 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1282 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1280
1283
1281 * Extensions/ipy_gnuglobal.py added, provides %global magic
1284 * Extensions/ipy_gnuglobal.py added, provides %global magic
1282 for users of http://www.gnu.org/software/global
1285 for users of http://www.gnu.org/software/global
1283
1286
1284 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1287 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1285 Closes #52. Patch by Stefan van der Walt.
1288 Closes #52. Patch by Stefan van der Walt.
1286
1289
1287 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1290 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1288
1291
1289 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1292 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1290 respect the __file__ attribute when using %run. Thanks to a bug
1293 respect the __file__ attribute when using %run. Thanks to a bug
1291 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1294 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1292
1295
1293 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1296 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1294
1297
1295 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1298 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1296 input. Patch sent by Stefan.
1299 input. Patch sent by Stefan.
1297
1300
1298 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1301 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1299 * IPython/Extensions/ipy_stock_completer.py
1302 * IPython/Extensions/ipy_stock_completer.py
1300 shlex_split, fix bug in shlex_split. len function
1303 shlex_split, fix bug in shlex_split. len function
1301 call was missing an if statement. Caused shlex_split to
1304 call was missing an if statement. Caused shlex_split to
1302 sometimes return "" as last element.
1305 sometimes return "" as last element.
1303
1306
1304 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1307 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1305
1308
1306 * IPython/completer.py
1309 * IPython/completer.py
1307 (IPCompleter.file_matches.single_dir_expand): fix a problem
1310 (IPCompleter.file_matches.single_dir_expand): fix a problem
1308 reported by Stefan, where directories containign a single subdir
1311 reported by Stefan, where directories containign a single subdir
1309 would be completed too early.
1312 would be completed too early.
1310
1313
1311 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1314 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1312 pylab import *' when -pylab is given be optional. A new flag,
1315 pylab import *' when -pylab is given be optional. A new flag,
1313 pylab_import_all controls this behavior, the default is True for
1316 pylab_import_all controls this behavior, the default is True for
1314 backwards compatibility.
1317 backwards compatibility.
1315
1318
1316 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1319 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1317 modified) R. Bernstein's patch for fully syntax highlighted
1320 modified) R. Bernstein's patch for fully syntax highlighted
1318 tracebacks. The functionality is also available under ultraTB for
1321 tracebacks. The functionality is also available under ultraTB for
1319 non-ipython users (someone using ultraTB but outside an ipython
1322 non-ipython users (someone using ultraTB but outside an ipython
1320 session). They can select the color scheme by setting the
1323 session). They can select the color scheme by setting the
1321 module-level global DEFAULT_SCHEME. The highlight functionality
1324 module-level global DEFAULT_SCHEME. The highlight functionality
1322 also works when debugging.
1325 also works when debugging.
1323
1326
1324 * IPython/genutils.py (IOStream.close): small patch by
1327 * IPython/genutils.py (IOStream.close): small patch by
1325 R. Bernstein for improved pydb support.
1328 R. Bernstein for improved pydb support.
1326
1329
1327 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1330 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1328 DaveS <davls@telus.net> to improve support of debugging under
1331 DaveS <davls@telus.net> to improve support of debugging under
1329 NTEmacs, including improved pydb behavior.
1332 NTEmacs, including improved pydb behavior.
1330
1333
1331 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1334 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1332 Python 2.5, where the stats object API changed a little. Thanks
1335 Python 2.5, where the stats object API changed a little. Thanks
1333 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1336 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1334
1337
1335 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1338 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1336 Pernetty's patch to improve support for (X)Emacs under Win32.
1339 Pernetty's patch to improve support for (X)Emacs under Win32.
1337
1340
1338 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1341 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1339
1342
1340 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1343 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1341 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1344 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1342 a report by Nik Tautenhahn.
1345 a report by Nik Tautenhahn.
1343
1346
1344 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1347 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1345
1348
1346 * setup.py: Add the igrid help files to the list of data files
1349 * setup.py: Add the igrid help files to the list of data files
1347 to be installed alongside igrid.
1350 to be installed alongside igrid.
1348 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1351 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1349 Show the input object of the igrid browser as the window tile.
1352 Show the input object of the igrid browser as the window tile.
1350 Show the object the cursor is on in the statusbar.
1353 Show the object the cursor is on in the statusbar.
1351
1354
1352 2007-03-15 Ville Vainio <vivainio@gmail.com>
1355 2007-03-15 Ville Vainio <vivainio@gmail.com>
1353
1356
1354 * Extensions/ipy_stock_completers.py: Fixed exception
1357 * Extensions/ipy_stock_completers.py: Fixed exception
1355 on mismatching quotes in %run completer. Patch by
1358 on mismatching quotes in %run completer. Patch by
1356 Jorgen Stenarson. Closes #127.
1359 Jorgen Stenarson. Closes #127.
1357
1360
1358 2007-03-14 Ville Vainio <vivainio@gmail.com>
1361 2007-03-14 Ville Vainio <vivainio@gmail.com>
1359
1362
1360 * Extensions/ext_rehashdir.py: Do not do auto_alias
1363 * Extensions/ext_rehashdir.py: Do not do auto_alias
1361 in %rehashdir, it clobbers %store'd aliases.
1364 in %rehashdir, it clobbers %store'd aliases.
1362
1365
1363 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1366 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1364 (beefed up %env) imported for sh profile.
1367 (beefed up %env) imported for sh profile.
1365
1368
1366 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1369 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1367
1370
1368 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1371 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1369 as the default browser.
1372 as the default browser.
1370 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1373 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1371 As igrid displays all attributes it ever encounters, fetch() (which has
1374 As igrid displays all attributes it ever encounters, fetch() (which has
1372 been renamed to _fetch()) doesn't have to recalculate the display attributes
1375 been renamed to _fetch()) doesn't have to recalculate the display attributes
1373 every time a new item is fetched. This should speed up scrolling.
1376 every time a new item is fetched. This should speed up scrolling.
1374
1377
1375 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1378 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1376
1379
1377 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1380 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1378 Schmolck's recently reported tab-completion bug (my previous one
1381 Schmolck's recently reported tab-completion bug (my previous one
1379 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1382 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1380
1383
1381 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1384 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1382
1385
1383 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1386 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1384 Close help window if exiting igrid.
1387 Close help window if exiting igrid.
1385
1388
1386 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1389 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1387
1390
1388 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1391 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1389 before calling functions from readline.
1392 before calling functions from readline.
1390
1393
1391 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1394 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1392
1395
1393 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1396 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1394 igrid is a wxPython-based display object for ipipe. If your system has
1397 igrid is a wxPython-based display object for ipipe. If your system has
1395 wx installed igrid will be the default display. Without wx ipipe falls
1398 wx installed igrid will be the default display. Without wx ipipe falls
1396 back to ibrowse (which needs curses). If no curses is installed ipipe
1399 back to ibrowse (which needs curses). If no curses is installed ipipe
1397 falls back to idump.
1400 falls back to idump.
1398
1401
1399 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1402 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1400
1403
1401 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1404 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1402 my changes from yesterday, they introduced bugs. Will reactivate
1405 my changes from yesterday, they introduced bugs. Will reactivate
1403 once I get a correct solution, which will be much easier thanks to
1406 once I get a correct solution, which will be much easier thanks to
1404 Dan Milstein's new prefilter test suite.
1407 Dan Milstein's new prefilter test suite.
1405
1408
1406 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1409 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1407
1410
1408 * IPython/iplib.py (split_user_input): fix input splitting so we
1411 * IPython/iplib.py (split_user_input): fix input splitting so we
1409 don't attempt attribute accesses on things that can't possibly be
1412 don't attempt attribute accesses on things that can't possibly be
1410 valid Python attributes. After a bug report by Alex Schmolck.
1413 valid Python attributes. After a bug report by Alex Schmolck.
1411 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1414 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1412 %magic with explicit % prefix.
1415 %magic with explicit % prefix.
1413
1416
1414 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1417 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1415
1418
1416 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1419 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1417 avoid a DeprecationWarning from GTK.
1420 avoid a DeprecationWarning from GTK.
1418
1421
1419 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1422 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1420
1423
1421 * IPython/genutils.py (clock): I modified clock() to return total
1424 * IPython/genutils.py (clock): I modified clock() to return total
1422 time, user+system. This is a more commonly needed metric. I also
1425 time, user+system. This is a more commonly needed metric. I also
1423 introduced the new clocku/clocks to get only user/system time if
1426 introduced the new clocku/clocks to get only user/system time if
1424 one wants those instead.
1427 one wants those instead.
1425
1428
1426 ***WARNING: API CHANGE*** clock() used to return only user time,
1429 ***WARNING: API CHANGE*** clock() used to return only user time,
1427 so if you want exactly the same results as before, use clocku
1430 so if you want exactly the same results as before, use clocku
1428 instead.
1431 instead.
1429
1432
1430 2007-02-22 Ville Vainio <vivainio@gmail.com>
1433 2007-02-22 Ville Vainio <vivainio@gmail.com>
1431
1434
1432 * IPython/Extensions/ipy_p4.py: Extension for improved
1435 * IPython/Extensions/ipy_p4.py: Extension for improved
1433 p4 (perforce version control system) experience.
1436 p4 (perforce version control system) experience.
1434 Adds %p4 magic with p4 command completion and
1437 Adds %p4 magic with p4 command completion and
1435 automatic -G argument (marshall output as python dict)
1438 automatic -G argument (marshall output as python dict)
1436
1439
1437 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1440 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1438
1441
1439 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1442 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1440 stop marks.
1443 stop marks.
1441 (ClearingMixin): a simple mixin to easily make a Demo class clear
1444 (ClearingMixin): a simple mixin to easily make a Demo class clear
1442 the screen in between blocks and have empty marquees. The
1445 the screen in between blocks and have empty marquees. The
1443 ClearDemo and ClearIPDemo classes that use it are included.
1446 ClearDemo and ClearIPDemo classes that use it are included.
1444
1447
1445 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1448 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1446
1449
1447 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1450 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1448 protect against exceptions at Python shutdown time. Patch
1451 protect against exceptions at Python shutdown time. Patch
1449 sumbmitted to upstream.
1452 sumbmitted to upstream.
1450
1453
1451 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1454 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1452
1455
1453 * IPython/Extensions/ibrowse.py: If entering the first object level
1456 * IPython/Extensions/ibrowse.py: If entering the first object level
1454 (i.e. the object for which the browser has been started) fails,
1457 (i.e. the object for which the browser has been started) fails,
1455 now the error is raised directly (aborting the browser) instead of
1458 now the error is raised directly (aborting the browser) instead of
1456 running into an empty levels list later.
1459 running into an empty levels list later.
1457
1460
1458 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1461 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1459
1462
1460 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1463 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1461 for the noitem object.
1464 for the noitem object.
1462
1465
1463 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1466 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1464
1467
1465 * IPython/completer.py (Completer.attr_matches): Fix small
1468 * IPython/completer.py (Completer.attr_matches): Fix small
1466 tab-completion bug with Enthought Traits objects with units.
1469 tab-completion bug with Enthought Traits objects with units.
1467 Thanks to a bug report by Tom Denniston
1470 Thanks to a bug report by Tom Denniston
1468 <tom.denniston-AT-alum.dartmouth.org>.
1471 <tom.denniston-AT-alum.dartmouth.org>.
1469
1472
1470 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1473 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1471
1474
1472 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1475 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1473 bug where only .ipy or .py would be completed. Once the first
1476 bug where only .ipy or .py would be completed. Once the first
1474 argument to %run has been given, all completions are valid because
1477 argument to %run has been given, all completions are valid because
1475 they are the arguments to the script, which may well be non-python
1478 they are the arguments to the script, which may well be non-python
1476 filenames.
1479 filenames.
1477
1480
1478 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1481 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1479 to irunner to allow it to correctly support real doctesting of
1482 to irunner to allow it to correctly support real doctesting of
1480 out-of-process ipython code.
1483 out-of-process ipython code.
1481
1484
1482 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1485 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1483 title an option (-noterm_title) because it completely breaks
1486 title an option (-noterm_title) because it completely breaks
1484 doctesting.
1487 doctesting.
1485
1488
1486 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1489 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1487
1490
1488 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1491 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1489
1492
1490 * IPython/irunner.py (main): fix small bug where extensions were
1493 * IPython/irunner.py (main): fix small bug where extensions were
1491 not being correctly recognized.
1494 not being correctly recognized.
1492
1495
1493 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1496 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1494
1497
1495 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1498 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1496 a string containing a single line yields the string itself as the
1499 a string containing a single line yields the string itself as the
1497 only item.
1500 only item.
1498
1501
1499 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1502 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1500 object if it's the same as the one on the last level (This avoids
1503 object if it's the same as the one on the last level (This avoids
1501 infinite recursion for one line strings).
1504 infinite recursion for one line strings).
1502
1505
1503 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1506 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1504
1507
1505 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1508 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1506 all output streams before printing tracebacks. This ensures that
1509 all output streams before printing tracebacks. This ensures that
1507 user output doesn't end up interleaved with traceback output.
1510 user output doesn't end up interleaved with traceback output.
1508
1511
1509 2007-01-10 Ville Vainio <vivainio@gmail.com>
1512 2007-01-10 Ville Vainio <vivainio@gmail.com>
1510
1513
1511 * Extensions/envpersist.py: Turbocharged %env that remembers
1514 * Extensions/envpersist.py: Turbocharged %env that remembers
1512 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1515 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1513 "%env VISUAL=jed".
1516 "%env VISUAL=jed".
1514
1517
1515 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1518 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1516
1519
1517 * IPython/iplib.py (showtraceback): ensure that we correctly call
1520 * IPython/iplib.py (showtraceback): ensure that we correctly call
1518 custom handlers in all cases (some with pdb were slipping through,
1521 custom handlers in all cases (some with pdb were slipping through,
1519 but I'm not exactly sure why).
1522 but I'm not exactly sure why).
1520
1523
1521 * IPython/Debugger.py (Tracer.__init__): added new class to
1524 * IPython/Debugger.py (Tracer.__init__): added new class to
1522 support set_trace-like usage of IPython's enhanced debugger.
1525 support set_trace-like usage of IPython's enhanced debugger.
1523
1526
1524 2006-12-24 Ville Vainio <vivainio@gmail.com>
1527 2006-12-24 Ville Vainio <vivainio@gmail.com>
1525
1528
1526 * ipmaker.py: more informative message when ipy_user_conf
1529 * ipmaker.py: more informative message when ipy_user_conf
1527 import fails (suggest running %upgrade).
1530 import fails (suggest running %upgrade).
1528
1531
1529 * tools/run_ipy_in_profiler.py: Utility to see where
1532 * tools/run_ipy_in_profiler.py: Utility to see where
1530 the time during IPython startup is spent.
1533 the time during IPython startup is spent.
1531
1534
1532 2006-12-20 Ville Vainio <vivainio@gmail.com>
1535 2006-12-20 Ville Vainio <vivainio@gmail.com>
1533
1536
1534 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1537 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1535
1538
1536 * ipapi.py: Add new ipapi method, expand_alias.
1539 * ipapi.py: Add new ipapi method, expand_alias.
1537
1540
1538 * Release.py: Bump up version to 0.7.4.svn
1541 * Release.py: Bump up version to 0.7.4.svn
1539
1542
1540 2006-12-17 Ville Vainio <vivainio@gmail.com>
1543 2006-12-17 Ville Vainio <vivainio@gmail.com>
1541
1544
1542 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1545 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1543 to work properly on posix too
1546 to work properly on posix too
1544
1547
1545 * Release.py: Update revnum (version is still just 0.7.3).
1548 * Release.py: Update revnum (version is still just 0.7.3).
1546
1549
1547 2006-12-15 Ville Vainio <vivainio@gmail.com>
1550 2006-12-15 Ville Vainio <vivainio@gmail.com>
1548
1551
1549 * scripts/ipython_win_post_install: create ipython.py in
1552 * scripts/ipython_win_post_install: create ipython.py in
1550 prefix + "/scripts".
1553 prefix + "/scripts".
1551
1554
1552 * Release.py: Update version to 0.7.3.
1555 * Release.py: Update version to 0.7.3.
1553
1556
1554 2006-12-14 Ville Vainio <vivainio@gmail.com>
1557 2006-12-14 Ville Vainio <vivainio@gmail.com>
1555
1558
1556 * scripts/ipython_win_post_install: Overwrite old shortcuts
1559 * scripts/ipython_win_post_install: Overwrite old shortcuts
1557 if they already exist
1560 if they already exist
1558
1561
1559 * Release.py: release 0.7.3rc2
1562 * Release.py: release 0.7.3rc2
1560
1563
1561 2006-12-13 Ville Vainio <vivainio@gmail.com>
1564 2006-12-13 Ville Vainio <vivainio@gmail.com>
1562
1565
1563 * Branch and update Release.py for 0.7.3rc1
1566 * Branch and update Release.py for 0.7.3rc1
1564
1567
1565 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1568 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1566
1569
1567 * IPython/Shell.py (IPShellWX): update for current WX naming
1570 * IPython/Shell.py (IPShellWX): update for current WX naming
1568 conventions, to avoid a deprecation warning with current WX
1571 conventions, to avoid a deprecation warning with current WX
1569 versions. Thanks to a report by Danny Shevitz.
1572 versions. Thanks to a report by Danny Shevitz.
1570
1573
1571 2006-12-12 Ville Vainio <vivainio@gmail.com>
1574 2006-12-12 Ville Vainio <vivainio@gmail.com>
1572
1575
1573 * ipmaker.py: apply david cournapeau's patch to make
1576 * ipmaker.py: apply david cournapeau's patch to make
1574 import_some work properly even when ipythonrc does
1577 import_some work properly even when ipythonrc does
1575 import_some on empty list (it was an old bug!).
1578 import_some on empty list (it was an old bug!).
1576
1579
1577 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1580 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1578 Add deprecation note to ipythonrc and a url to wiki
1581 Add deprecation note to ipythonrc and a url to wiki
1579 in ipy_user_conf.py
1582 in ipy_user_conf.py
1580
1583
1581
1584
1582 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1585 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1583 as if it was typed on IPython command prompt, i.e.
1586 as if it was typed on IPython command prompt, i.e.
1584 as IPython script.
1587 as IPython script.
1585
1588
1586 * example-magic.py, magic_grepl.py: remove outdated examples
1589 * example-magic.py, magic_grepl.py: remove outdated examples
1587
1590
1588 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1591 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1589
1592
1590 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1593 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1591 is called before any exception has occurred.
1594 is called before any exception has occurred.
1592
1595
1593 2006-12-08 Ville Vainio <vivainio@gmail.com>
1596 2006-12-08 Ville Vainio <vivainio@gmail.com>
1594
1597
1595 * Extensions/ipy_stock_completers.py: fix cd completer
1598 * Extensions/ipy_stock_completers.py: fix cd completer
1596 to translate /'s to \'s again.
1599 to translate /'s to \'s again.
1597
1600
1598 * completer.py: prevent traceback on file completions w/
1601 * completer.py: prevent traceback on file completions w/
1599 backslash.
1602 backslash.
1600
1603
1601 * Release.py: Update release number to 0.7.3b3 for release
1604 * Release.py: Update release number to 0.7.3b3 for release
1602
1605
1603 2006-12-07 Ville Vainio <vivainio@gmail.com>
1606 2006-12-07 Ville Vainio <vivainio@gmail.com>
1604
1607
1605 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1608 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1606 while executing external code. Provides more shell-like behaviour
1609 while executing external code. Provides more shell-like behaviour
1607 and overall better response to ctrl + C / ctrl + break.
1610 and overall better response to ctrl + C / ctrl + break.
1608
1611
1609 * tools/make_tarball.py: new script to create tarball straight from svn
1612 * tools/make_tarball.py: new script to create tarball straight from svn
1610 (setup.py sdist doesn't work on win32).
1613 (setup.py sdist doesn't work on win32).
1611
1614
1612 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1615 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1613 on dirnames with spaces and use the default completer instead.
1616 on dirnames with spaces and use the default completer instead.
1614
1617
1615 * Revision.py: Change version to 0.7.3b2 for release.
1618 * Revision.py: Change version to 0.7.3b2 for release.
1616
1619
1617 2006-12-05 Ville Vainio <vivainio@gmail.com>
1620 2006-12-05 Ville Vainio <vivainio@gmail.com>
1618
1621
1619 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1622 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1620 pydb patch 4 (rm debug printing, py 2.5 checking)
1623 pydb patch 4 (rm debug printing, py 2.5 checking)
1621
1624
1622 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1625 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1623 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1626 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1624 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1627 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1625 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1628 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1626 object the cursor was on before the refresh. The command "markrange" is
1629 object the cursor was on before the refresh. The command "markrange" is
1627 mapped to "%" now.
1630 mapped to "%" now.
1628 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1631 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1629
1632
1630 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1633 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1631
1634
1632 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1635 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1633 interactive debugger on the last traceback, without having to call
1636 interactive debugger on the last traceback, without having to call
1634 %pdb and rerun your code. Made minor changes in various modules,
1637 %pdb and rerun your code. Made minor changes in various modules,
1635 should automatically recognize pydb if available.
1638 should automatically recognize pydb if available.
1636
1639
1637 2006-11-28 Ville Vainio <vivainio@gmail.com>
1640 2006-11-28 Ville Vainio <vivainio@gmail.com>
1638
1641
1639 * completer.py: If the text start with !, show file completions
1642 * completer.py: If the text start with !, show file completions
1640 properly. This helps when trying to complete command name
1643 properly. This helps when trying to complete command name
1641 for shell escapes.
1644 for shell escapes.
1642
1645
1643 2006-11-27 Ville Vainio <vivainio@gmail.com>
1646 2006-11-27 Ville Vainio <vivainio@gmail.com>
1644
1647
1645 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1648 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1646 der Walt. Clean up svn and hg completers by using a common
1649 der Walt. Clean up svn and hg completers by using a common
1647 vcs_completer.
1650 vcs_completer.
1648
1651
1649 2006-11-26 Ville Vainio <vivainio@gmail.com>
1652 2006-11-26 Ville Vainio <vivainio@gmail.com>
1650
1653
1651 * Remove ipconfig and %config; you should use _ip.options structure
1654 * Remove ipconfig and %config; you should use _ip.options structure
1652 directly instead!
1655 directly instead!
1653
1656
1654 * genutils.py: add wrap_deprecated function for deprecating callables
1657 * genutils.py: add wrap_deprecated function for deprecating callables
1655
1658
1656 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1659 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1657 _ip.system instead. ipalias is redundant.
1660 _ip.system instead. ipalias is redundant.
1658
1661
1659 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1662 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1660 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1663 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1661 explicit.
1664 explicit.
1662
1665
1663 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1666 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1664 completer. Try it by entering 'hg ' and pressing tab.
1667 completer. Try it by entering 'hg ' and pressing tab.
1665
1668
1666 * macro.py: Give Macro a useful __repr__ method
1669 * macro.py: Give Macro a useful __repr__ method
1667
1670
1668 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1671 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1669
1672
1670 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1673 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1671 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1674 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1672 we don't get a duplicate ipipe module, where registration of the xrepr
1675 we don't get a duplicate ipipe module, where registration of the xrepr
1673 implementation for Text is useless.
1676 implementation for Text is useless.
1674
1677
1675 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1678 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1676
1679
1677 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1680 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1678
1681
1679 2006-11-24 Ville Vainio <vivainio@gmail.com>
1682 2006-11-24 Ville Vainio <vivainio@gmail.com>
1680
1683
1681 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1684 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1682 try to use "cProfile" instead of the slower pure python
1685 try to use "cProfile" instead of the slower pure python
1683 "profile"
1686 "profile"
1684
1687
1685 2006-11-23 Ville Vainio <vivainio@gmail.com>
1688 2006-11-23 Ville Vainio <vivainio@gmail.com>
1686
1689
1687 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1690 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1688 Qt+IPython+Designer link in documentation.
1691 Qt+IPython+Designer link in documentation.
1689
1692
1690 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1693 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1691 correct Pdb object to %pydb.
1694 correct Pdb object to %pydb.
1692
1695
1693
1696
1694 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1697 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1695 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1698 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1696 generic xrepr(), otherwise the list implementation would kick in.
1699 generic xrepr(), otherwise the list implementation would kick in.
1697
1700
1698 2006-11-21 Ville Vainio <vivainio@gmail.com>
1701 2006-11-21 Ville Vainio <vivainio@gmail.com>
1699
1702
1700 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1703 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1701 with one from UserConfig.
1704 with one from UserConfig.
1702
1705
1703 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1706 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1704 it was missing which broke the sh profile.
1707 it was missing which broke the sh profile.
1705
1708
1706 * completer.py: file completer now uses explicit '/' instead
1709 * completer.py: file completer now uses explicit '/' instead
1707 of os.path.join, expansion of 'foo' was broken on win32
1710 of os.path.join, expansion of 'foo' was broken on win32
1708 if there was one directory with name 'foobar'.
1711 if there was one directory with name 'foobar'.
1709
1712
1710 * A bunch of patches from Kirill Smelkov:
1713 * A bunch of patches from Kirill Smelkov:
1711
1714
1712 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1715 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1713
1716
1714 * [patch 7/9] Implement %page -r (page in raw mode) -
1717 * [patch 7/9] Implement %page -r (page in raw mode) -
1715
1718
1716 * [patch 5/9] ScientificPython webpage has moved
1719 * [patch 5/9] ScientificPython webpage has moved
1717
1720
1718 * [patch 4/9] The manual mentions %ds, should be %dhist
1721 * [patch 4/9] The manual mentions %ds, should be %dhist
1719
1722
1720 * [patch 3/9] Kill old bits from %prun doc.
1723 * [patch 3/9] Kill old bits from %prun doc.
1721
1724
1722 * [patch 1/9] Fix typos here and there.
1725 * [patch 1/9] Fix typos here and there.
1723
1726
1724 2006-11-08 Ville Vainio <vivainio@gmail.com>
1727 2006-11-08 Ville Vainio <vivainio@gmail.com>
1725
1728
1726 * completer.py (attr_matches): catch all exceptions raised
1729 * completer.py (attr_matches): catch all exceptions raised
1727 by eval of expr with dots.
1730 by eval of expr with dots.
1728
1731
1729 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1732 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1730
1733
1731 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1734 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1732 input if it starts with whitespace. This allows you to paste
1735 input if it starts with whitespace. This allows you to paste
1733 indented input from any editor without manually having to type in
1736 indented input from any editor without manually having to type in
1734 the 'if 1:', which is convenient when working interactively.
1737 the 'if 1:', which is convenient when working interactively.
1735 Slightly modifed version of a patch by Bo Peng
1738 Slightly modifed version of a patch by Bo Peng
1736 <bpeng-AT-rice.edu>.
1739 <bpeng-AT-rice.edu>.
1737
1740
1738 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1741 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1739
1742
1740 * IPython/irunner.py (main): modified irunner so it automatically
1743 * IPython/irunner.py (main): modified irunner so it automatically
1741 recognizes the right runner to use based on the extension (.py for
1744 recognizes the right runner to use based on the extension (.py for
1742 python, .ipy for ipython and .sage for sage).
1745 python, .ipy for ipython and .sage for sage).
1743
1746
1744 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1747 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1745 visible in ipapi as ip.config(), to programatically control the
1748 visible in ipapi as ip.config(), to programatically control the
1746 internal rc object. There's an accompanying %config magic for
1749 internal rc object. There's an accompanying %config magic for
1747 interactive use, which has been enhanced to match the
1750 interactive use, which has been enhanced to match the
1748 funtionality in ipconfig.
1751 funtionality in ipconfig.
1749
1752
1750 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1753 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1751 so it's not just a toggle, it now takes an argument. Add support
1754 so it's not just a toggle, it now takes an argument. Add support
1752 for a customizable header when making system calls, as the new
1755 for a customizable header when making system calls, as the new
1753 system_header variable in the ipythonrc file.
1756 system_header variable in the ipythonrc file.
1754
1757
1755 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1758 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1756
1759
1757 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1760 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1758 generic functions (using Philip J. Eby's simplegeneric package).
1761 generic functions (using Philip J. Eby's simplegeneric package).
1759 This makes it possible to customize the display of third-party classes
1762 This makes it possible to customize the display of third-party classes
1760 without having to monkeypatch them. xiter() no longer supports a mode
1763 without having to monkeypatch them. xiter() no longer supports a mode
1761 argument and the XMode class has been removed. The same functionality can
1764 argument and the XMode class has been removed. The same functionality can
1762 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1765 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1763 One consequence of the switch to generic functions is that xrepr() and
1766 One consequence of the switch to generic functions is that xrepr() and
1764 xattrs() implementation must define the default value for the mode
1767 xattrs() implementation must define the default value for the mode
1765 argument themselves and xattrs() implementations must return real
1768 argument themselves and xattrs() implementations must return real
1766 descriptors.
1769 descriptors.
1767
1770
1768 * IPython/external: This new subpackage will contain all third-party
1771 * IPython/external: This new subpackage will contain all third-party
1769 packages that are bundled with IPython. (The first one is simplegeneric).
1772 packages that are bundled with IPython. (The first one is simplegeneric).
1770
1773
1771 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1774 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1772 directory which as been dropped in r1703.
1775 directory which as been dropped in r1703.
1773
1776
1774 * IPython/Extensions/ipipe.py (iless): Fixed.
1777 * IPython/Extensions/ipipe.py (iless): Fixed.
1775
1778
1776 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1779 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1777
1780
1778 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1781 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1779
1782
1780 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1783 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1781 handling in variable expansion so that shells and magics recognize
1784 handling in variable expansion so that shells and magics recognize
1782 function local scopes correctly. Bug reported by Brian.
1785 function local scopes correctly. Bug reported by Brian.
1783
1786
1784 * scripts/ipython: remove the very first entry in sys.path which
1787 * scripts/ipython: remove the very first entry in sys.path which
1785 Python auto-inserts for scripts, so that sys.path under IPython is
1788 Python auto-inserts for scripts, so that sys.path under IPython is
1786 as similar as possible to that under plain Python.
1789 as similar as possible to that under plain Python.
1787
1790
1788 * IPython/completer.py (IPCompleter.file_matches): Fix
1791 * IPython/completer.py (IPCompleter.file_matches): Fix
1789 tab-completion so that quotes are not closed unless the completion
1792 tab-completion so that quotes are not closed unless the completion
1790 is unambiguous. After a request by Stefan. Minor cleanups in
1793 is unambiguous. After a request by Stefan. Minor cleanups in
1791 ipy_stock_completers.
1794 ipy_stock_completers.
1792
1795
1793 2006-11-02 Ville Vainio <vivainio@gmail.com>
1796 2006-11-02 Ville Vainio <vivainio@gmail.com>
1794
1797
1795 * ipy_stock_completers.py: Add %run and %cd completers.
1798 * ipy_stock_completers.py: Add %run and %cd completers.
1796
1799
1797 * completer.py: Try running custom completer for both
1800 * completer.py: Try running custom completer for both
1798 "foo" and "%foo" if the command is just "foo". Ignore case
1801 "foo" and "%foo" if the command is just "foo". Ignore case
1799 when filtering possible completions.
1802 when filtering possible completions.
1800
1803
1801 * UserConfig/ipy_user_conf.py: install stock completers as default
1804 * UserConfig/ipy_user_conf.py: install stock completers as default
1802
1805
1803 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1806 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1804 simplified readline history save / restore through a wrapper
1807 simplified readline history save / restore through a wrapper
1805 function
1808 function
1806
1809
1807
1810
1808 2006-10-31 Ville Vainio <vivainio@gmail.com>
1811 2006-10-31 Ville Vainio <vivainio@gmail.com>
1809
1812
1810 * strdispatch.py, completer.py, ipy_stock_completers.py:
1813 * strdispatch.py, completer.py, ipy_stock_completers.py:
1811 Allow str_key ("command") in completer hooks. Implement
1814 Allow str_key ("command") in completer hooks. Implement
1812 trivial completer for 'import' (stdlib modules only). Rename
1815 trivial completer for 'import' (stdlib modules only). Rename
1813 ipy_linux_package_managers.py to ipy_stock_completers.py.
1816 ipy_linux_package_managers.py to ipy_stock_completers.py.
1814 SVN completer.
1817 SVN completer.
1815
1818
1816 * Extensions/ledit.py: %magic line editor for easily and
1819 * Extensions/ledit.py: %magic line editor for easily and
1817 incrementally manipulating lists of strings. The magic command
1820 incrementally manipulating lists of strings. The magic command
1818 name is %led.
1821 name is %led.
1819
1822
1820 2006-10-30 Ville Vainio <vivainio@gmail.com>
1823 2006-10-30 Ville Vainio <vivainio@gmail.com>
1821
1824
1822 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1825 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1823 Bernsteins's patches for pydb integration.
1826 Bernsteins's patches for pydb integration.
1824 http://bashdb.sourceforge.net/pydb/
1827 http://bashdb.sourceforge.net/pydb/
1825
1828
1826 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1829 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1827 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1830 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1828 custom completer hook to allow the users to implement their own
1831 custom completer hook to allow the users to implement their own
1829 completers. See ipy_linux_package_managers.py for example. The
1832 completers. See ipy_linux_package_managers.py for example. The
1830 hook name is 'complete_command'.
1833 hook name is 'complete_command'.
1831
1834
1832 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1835 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1833
1836
1834 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1837 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1835 Numeric leftovers.
1838 Numeric leftovers.
1836
1839
1837 * ipython.el (py-execute-region): apply Stefan's patch to fix
1840 * ipython.el (py-execute-region): apply Stefan's patch to fix
1838 garbled results if the python shell hasn't been previously started.
1841 garbled results if the python shell hasn't been previously started.
1839
1842
1840 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1843 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1841 pretty generic function and useful for other things.
1844 pretty generic function and useful for other things.
1842
1845
1843 * IPython/OInspect.py (getsource): Add customizable source
1846 * IPython/OInspect.py (getsource): Add customizable source
1844 extractor. After a request/patch form W. Stein (SAGE).
1847 extractor. After a request/patch form W. Stein (SAGE).
1845
1848
1846 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1849 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1847 window size to a more reasonable value from what pexpect does,
1850 window size to a more reasonable value from what pexpect does,
1848 since their choice causes wrapping bugs with long input lines.
1851 since their choice causes wrapping bugs with long input lines.
1849
1852
1850 2006-10-28 Ville Vainio <vivainio@gmail.com>
1853 2006-10-28 Ville Vainio <vivainio@gmail.com>
1851
1854
1852 * Magic.py (%run): Save and restore the readline history from
1855 * Magic.py (%run): Save and restore the readline history from
1853 file around %run commands to prevent side effects from
1856 file around %run commands to prevent side effects from
1854 %runned programs that might use readline (e.g. pydb).
1857 %runned programs that might use readline (e.g. pydb).
1855
1858
1856 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1859 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1857 invoking the pydb enhanced debugger.
1860 invoking the pydb enhanced debugger.
1858
1861
1859 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1862 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1860
1863
1861 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1864 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1862 call the base class method and propagate the return value to
1865 call the base class method and propagate the return value to
1863 ifile. This is now done by path itself.
1866 ifile. This is now done by path itself.
1864
1867
1865 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1868 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1866
1869
1867 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1870 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1868 api: set_crash_handler(), to expose the ability to change the
1871 api: set_crash_handler(), to expose the ability to change the
1869 internal crash handler.
1872 internal crash handler.
1870
1873
1871 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1874 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1872 the various parameters of the crash handler so that apps using
1875 the various parameters of the crash handler so that apps using
1873 IPython as their engine can customize crash handling. Ipmlemented
1876 IPython as their engine can customize crash handling. Ipmlemented
1874 at the request of SAGE.
1877 at the request of SAGE.
1875
1878
1876 2006-10-14 Ville Vainio <vivainio@gmail.com>
1879 2006-10-14 Ville Vainio <vivainio@gmail.com>
1877
1880
1878 * Magic.py, ipython.el: applied first "safe" part of Rocky
1881 * Magic.py, ipython.el: applied first "safe" part of Rocky
1879 Bernstein's patch set for pydb integration.
1882 Bernstein's patch set for pydb integration.
1880
1883
1881 * Magic.py (%unalias, %alias): %store'd aliases can now be
1884 * Magic.py (%unalias, %alias): %store'd aliases can now be
1882 removed with '%unalias'. %alias w/o args now shows most
1885 removed with '%unalias'. %alias w/o args now shows most
1883 interesting (stored / manually defined) aliases last
1886 interesting (stored / manually defined) aliases last
1884 where they catch the eye w/o scrolling.
1887 where they catch the eye w/o scrolling.
1885
1888
1886 * Magic.py (%rehashx), ext_rehashdir.py: files with
1889 * Magic.py (%rehashx), ext_rehashdir.py: files with
1887 'py' extension are always considered executable, even
1890 'py' extension are always considered executable, even
1888 when not in PATHEXT environment variable.
1891 when not in PATHEXT environment variable.
1889
1892
1890 2006-10-12 Ville Vainio <vivainio@gmail.com>
1893 2006-10-12 Ville Vainio <vivainio@gmail.com>
1891
1894
1892 * jobctrl.py: Add new "jobctrl" extension for spawning background
1895 * jobctrl.py: Add new "jobctrl" extension for spawning background
1893 processes with "&find /". 'import jobctrl' to try it out. Requires
1896 processes with "&find /". 'import jobctrl' to try it out. Requires
1894 'subprocess' module, standard in python 2.4+.
1897 'subprocess' module, standard in python 2.4+.
1895
1898
1896 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1899 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1897 so if foo -> bar and bar -> baz, then foo -> baz.
1900 so if foo -> bar and bar -> baz, then foo -> baz.
1898
1901
1899 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1902 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1900
1903
1901 * IPython/Magic.py (Magic.parse_options): add a new posix option
1904 * IPython/Magic.py (Magic.parse_options): add a new posix option
1902 to allow parsing of input args in magics that doesn't strip quotes
1905 to allow parsing of input args in magics that doesn't strip quotes
1903 (if posix=False). This also closes %timeit bug reported by
1906 (if posix=False). This also closes %timeit bug reported by
1904 Stefan.
1907 Stefan.
1905
1908
1906 2006-10-03 Ville Vainio <vivainio@gmail.com>
1909 2006-10-03 Ville Vainio <vivainio@gmail.com>
1907
1910
1908 * iplib.py (raw_input, interact): Return ValueError catching for
1911 * iplib.py (raw_input, interact): Return ValueError catching for
1909 raw_input. Fixes infinite loop for sys.stdin.close() or
1912 raw_input. Fixes infinite loop for sys.stdin.close() or
1910 sys.stdout.close().
1913 sys.stdout.close().
1911
1914
1912 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1915 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1913
1916
1914 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1917 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1915 to help in handling doctests. irunner is now pretty useful for
1918 to help in handling doctests. irunner is now pretty useful for
1916 running standalone scripts and simulate a full interactive session
1919 running standalone scripts and simulate a full interactive session
1917 in a format that can be then pasted as a doctest.
1920 in a format that can be then pasted as a doctest.
1918
1921
1919 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1922 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1920 on top of the default (useless) ones. This also fixes the nasty
1923 on top of the default (useless) ones. This also fixes the nasty
1921 way in which 2.5's Quitter() exits (reverted [1785]).
1924 way in which 2.5's Quitter() exits (reverted [1785]).
1922
1925
1923 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1926 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1924 2.5.
1927 2.5.
1925
1928
1926 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1929 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1927 color scheme is updated as well when color scheme is changed
1930 color scheme is updated as well when color scheme is changed
1928 interactively.
1931 interactively.
1929
1932
1930 2006-09-27 Ville Vainio <vivainio@gmail.com>
1933 2006-09-27 Ville Vainio <vivainio@gmail.com>
1931
1934
1932 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1935 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1933 infinite loop and just exit. It's a hack, but will do for a while.
1936 infinite loop and just exit. It's a hack, but will do for a while.
1934
1937
1935 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1938 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1936
1939
1937 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1940 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1938 the constructor, this makes it possible to get a list of only directories
1941 the constructor, this makes it possible to get a list of only directories
1939 or only files.
1942 or only files.
1940
1943
1941 2006-08-12 Ville Vainio <vivainio@gmail.com>
1944 2006-08-12 Ville Vainio <vivainio@gmail.com>
1942
1945
1943 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1946 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1944 they broke unittest
1947 they broke unittest
1945
1948
1946 2006-08-11 Ville Vainio <vivainio@gmail.com>
1949 2006-08-11 Ville Vainio <vivainio@gmail.com>
1947
1950
1948 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1951 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1949 by resolving issue properly, i.e. by inheriting FakeModule
1952 by resolving issue properly, i.e. by inheriting FakeModule
1950 from types.ModuleType. Pickling ipython interactive data
1953 from types.ModuleType. Pickling ipython interactive data
1951 should still work as usual (testing appreciated).
1954 should still work as usual (testing appreciated).
1952
1955
1953 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1956 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1954
1957
1955 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1958 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1956 running under python 2.3 with code from 2.4 to fix a bug with
1959 running under python 2.3 with code from 2.4 to fix a bug with
1957 help(). Reported by the Debian maintainers, Norbert Tretkowski
1960 help(). Reported by the Debian maintainers, Norbert Tretkowski
1958 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1961 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1959 <afayolle-AT-debian.org>.
1962 <afayolle-AT-debian.org>.
1960
1963
1961 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1964 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1962
1965
1963 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1966 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1964 (which was displaying "quit" twice).
1967 (which was displaying "quit" twice).
1965
1968
1966 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1969 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1967
1970
1968 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1971 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1969 the mode argument).
1972 the mode argument).
1970
1973
1971 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1974 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1972
1975
1973 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1976 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1974 not running under IPython.
1977 not running under IPython.
1975
1978
1976 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1979 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1977 and make it iterable (iterating over the attribute itself). Add two new
1980 and make it iterable (iterating over the attribute itself). Add two new
1978 magic strings for __xattrs__(): If the string starts with "-", the attribute
1981 magic strings for __xattrs__(): If the string starts with "-", the attribute
1979 will not be displayed in ibrowse's detail view (but it can still be
1982 will not be displayed in ibrowse's detail view (but it can still be
1980 iterated over). This makes it possible to add attributes that are large
1983 iterated over). This makes it possible to add attributes that are large
1981 lists or generator methods to the detail view. Replace magic attribute names
1984 lists or generator methods to the detail view. Replace magic attribute names
1982 and _attrname() and _getattr() with "descriptors": For each type of magic
1985 and _attrname() and _getattr() with "descriptors": For each type of magic
1983 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1986 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1984 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1987 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1985 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1988 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1986 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1989 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1987 are still supported.
1990 are still supported.
1988
1991
1989 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1992 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1990 fails in ibrowse.fetch(), the exception object is added as the last item
1993 fails in ibrowse.fetch(), the exception object is added as the last item
1991 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1994 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1992 a generator throws an exception midway through execution.
1995 a generator throws an exception midway through execution.
1993
1996
1994 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1997 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1995 encoding into methods.
1998 encoding into methods.
1996
1999
1997 2006-07-26 Ville Vainio <vivainio@gmail.com>
2000 2006-07-26 Ville Vainio <vivainio@gmail.com>
1998
2001
1999 * iplib.py: history now stores multiline input as single
2002 * iplib.py: history now stores multiline input as single
2000 history entries. Patch by Jorgen Cederlof.
2003 history entries. Patch by Jorgen Cederlof.
2001
2004
2002 2006-07-18 Walter Doerwald <walter@livinglogic.de>
2005 2006-07-18 Walter Doerwald <walter@livinglogic.de>
2003
2006
2004 * IPython/Extensions/ibrowse.py: Make cursor visible over
2007 * IPython/Extensions/ibrowse.py: Make cursor visible over
2005 non existing attributes.
2008 non existing attributes.
2006
2009
2007 2006-07-14 Walter Doerwald <walter@livinglogic.de>
2010 2006-07-14 Walter Doerwald <walter@livinglogic.de>
2008
2011
2009 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
2012 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
2010 error output of the running command doesn't mess up the screen.
2013 error output of the running command doesn't mess up the screen.
2011
2014
2012 2006-07-13 Walter Doerwald <walter@livinglogic.de>
2015 2006-07-13 Walter Doerwald <walter@livinglogic.de>
2013
2016
2014 * IPython/Extensions/ipipe.py (isort): Make isort usable without
2017 * IPython/Extensions/ipipe.py (isort): Make isort usable without
2015 argument. This sorts the items themselves.
2018 argument. This sorts the items themselves.
2016
2019
2017 2006-07-12 Walter Doerwald <walter@livinglogic.de>
2020 2006-07-12 Walter Doerwald <walter@livinglogic.de>
2018
2021
2019 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
2022 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
2020 Compile expression strings into code objects. This should speed
2023 Compile expression strings into code objects. This should speed
2021 up ifilter and friends somewhat.
2024 up ifilter and friends somewhat.
2022
2025
2023 2006-07-08 Ville Vainio <vivainio@gmail.com>
2026 2006-07-08 Ville Vainio <vivainio@gmail.com>
2024
2027
2025 * Magic.py: %cpaste now strips > from the beginning of lines
2028 * Magic.py: %cpaste now strips > from the beginning of lines
2026 to ease pasting quoted code from emails. Contributed by
2029 to ease pasting quoted code from emails. Contributed by
2027 Stefan van der Walt.
2030 Stefan van der Walt.
2028
2031
2029 2006-06-29 Ville Vainio <vivainio@gmail.com>
2032 2006-06-29 Ville Vainio <vivainio@gmail.com>
2030
2033
2031 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2034 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2032 mode, patch contributed by Darren Dale. NEEDS TESTING!
2035 mode, patch contributed by Darren Dale. NEEDS TESTING!
2033
2036
2034 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2037 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2035
2038
2036 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2039 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2037 a blue background. Fix fetching new display rows when the browser
2040 a blue background. Fix fetching new display rows when the browser
2038 scrolls more than a screenful (e.g. by using the goto command).
2041 scrolls more than a screenful (e.g. by using the goto command).
2039
2042
2040 2006-06-27 Ville Vainio <vivainio@gmail.com>
2043 2006-06-27 Ville Vainio <vivainio@gmail.com>
2041
2044
2042 * Magic.py (_inspect, _ofind) Apply David Huard's
2045 * Magic.py (_inspect, _ofind) Apply David Huard's
2043 patch for displaying the correct docstring for 'property'
2046 patch for displaying the correct docstring for 'property'
2044 attributes.
2047 attributes.
2045
2048
2046 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2049 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2047
2050
2048 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2051 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2049 commands into the methods implementing them.
2052 commands into the methods implementing them.
2050
2053
2051 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2054 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2052
2055
2053 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2056 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2054 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2057 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2055 autoindent support was authored by Jin Liu.
2058 autoindent support was authored by Jin Liu.
2056
2059
2057 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2060 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2058
2061
2059 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2062 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2060 for keymaps with a custom class that simplifies handling.
2063 for keymaps with a custom class that simplifies handling.
2061
2064
2062 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2065 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2063
2066
2064 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2067 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2065 resizing. This requires Python 2.5 to work.
2068 resizing. This requires Python 2.5 to work.
2066
2069
2067 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2070 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2068
2071
2069 * IPython/Extensions/ibrowse.py: Add two new commands to
2072 * IPython/Extensions/ibrowse.py: Add two new commands to
2070 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2073 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2071 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2074 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2072 attributes again. Remapped the help command to "?". Display
2075 attributes again. Remapped the help command to "?". Display
2073 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2076 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2074 as keys for the "home" and "end" commands. Add three new commands
2077 as keys for the "home" and "end" commands. Add three new commands
2075 to the input mode for "find" and friends: "delend" (CTRL-K)
2078 to the input mode for "find" and friends: "delend" (CTRL-K)
2076 deletes to the end of line. "incsearchup" searches upwards in the
2079 deletes to the end of line. "incsearchup" searches upwards in the
2077 command history for an input that starts with the text before the cursor.
2080 command history for an input that starts with the text before the cursor.
2078 "incsearchdown" does the same downwards. Removed a bogus mapping of
2081 "incsearchdown" does the same downwards. Removed a bogus mapping of
2079 the x key to "delete".
2082 the x key to "delete".
2080
2083
2081 2006-06-15 Ville Vainio <vivainio@gmail.com>
2084 2006-06-15 Ville Vainio <vivainio@gmail.com>
2082
2085
2083 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2086 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2084 used to create prompts dynamically, instead of the "old" way of
2087 used to create prompts dynamically, instead of the "old" way of
2085 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2088 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2086 way still works (it's invoked by the default hook), of course.
2089 way still works (it's invoked by the default hook), of course.
2087
2090
2088 * Prompts.py: added generate_output_prompt hook for altering output
2091 * Prompts.py: added generate_output_prompt hook for altering output
2089 prompt
2092 prompt
2090
2093
2091 * Release.py: Changed version string to 0.7.3.svn.
2094 * Release.py: Changed version string to 0.7.3.svn.
2092
2095
2093 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2096 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2094
2097
2095 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2098 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2096 the call to fetch() always tries to fetch enough data for at least one
2099 the call to fetch() always tries to fetch enough data for at least one
2097 full screen. This makes it possible to simply call moveto(0,0,True) in
2100 full screen. This makes it possible to simply call moveto(0,0,True) in
2098 the constructor. Fix typos and removed the obsolete goto attribute.
2101 the constructor. Fix typos and removed the obsolete goto attribute.
2099
2102
2100 2006-06-12 Ville Vainio <vivainio@gmail.com>
2103 2006-06-12 Ville Vainio <vivainio@gmail.com>
2101
2104
2102 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2105 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2103 allowing $variable interpolation within multiline statements,
2106 allowing $variable interpolation within multiline statements,
2104 though so far only with "sh" profile for a testing period.
2107 though so far only with "sh" profile for a testing period.
2105 The patch also enables splitting long commands with \ but it
2108 The patch also enables splitting long commands with \ but it
2106 doesn't work properly yet.
2109 doesn't work properly yet.
2107
2110
2108 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2111 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2109
2112
2110 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2113 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2111 input history and the position of the cursor in the input history for
2114 input history and the position of the cursor in the input history for
2112 the find, findbackwards and goto command.
2115 the find, findbackwards and goto command.
2113
2116
2114 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2117 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2115
2118
2116 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2119 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2117 implements the basic functionality of browser commands that require
2120 implements the basic functionality of browser commands that require
2118 input. Reimplement the goto, find and findbackwards commands as
2121 input. Reimplement the goto, find and findbackwards commands as
2119 subclasses of _CommandInput. Add an input history and keymaps to those
2122 subclasses of _CommandInput. Add an input history and keymaps to those
2120 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2123 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2121 execute commands.
2124 execute commands.
2122
2125
2123 2006-06-07 Ville Vainio <vivainio@gmail.com>
2126 2006-06-07 Ville Vainio <vivainio@gmail.com>
2124
2127
2125 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2128 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2126 running the batch files instead of leaving the session open.
2129 running the batch files instead of leaving the session open.
2127
2130
2128 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2131 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2129
2132
2130 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2133 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2131 the original fix was incomplete. Patch submitted by W. Maier.
2134 the original fix was incomplete. Patch submitted by W. Maier.
2132
2135
2133 2006-06-07 Ville Vainio <vivainio@gmail.com>
2136 2006-06-07 Ville Vainio <vivainio@gmail.com>
2134
2137
2135 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2138 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2136 Confirmation prompts can be supressed by 'quiet' option.
2139 Confirmation prompts can be supressed by 'quiet' option.
2137 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2140 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2138
2141
2139 2006-06-06 *** Released version 0.7.2
2142 2006-06-06 *** Released version 0.7.2
2140
2143
2141 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2144 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2142
2145
2143 * IPython/Release.py (version): Made 0.7.2 final for release.
2146 * IPython/Release.py (version): Made 0.7.2 final for release.
2144 Repo tagged and release cut.
2147 Repo tagged and release cut.
2145
2148
2146 2006-06-05 Ville Vainio <vivainio@gmail.com>
2149 2006-06-05 Ville Vainio <vivainio@gmail.com>
2147
2150
2148 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2151 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2149 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2152 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2150
2153
2151 * upgrade_dir.py: try import 'path' module a bit harder
2154 * upgrade_dir.py: try import 'path' module a bit harder
2152 (for %upgrade)
2155 (for %upgrade)
2153
2156
2154 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2157 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2155
2158
2156 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2159 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2157 instead of looping 20 times.
2160 instead of looping 20 times.
2158
2161
2159 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2162 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2160 correctly at initialization time. Bug reported by Krishna Mohan
2163 correctly at initialization time. Bug reported by Krishna Mohan
2161 Gundu <gkmohan-AT-gmail.com> on the user list.
2164 Gundu <gkmohan-AT-gmail.com> on the user list.
2162
2165
2163 * IPython/Release.py (version): Mark 0.7.2 version to start
2166 * IPython/Release.py (version): Mark 0.7.2 version to start
2164 testing for release on 06/06.
2167 testing for release on 06/06.
2165
2168
2166 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2169 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2167
2170
2168 * scripts/irunner: thin script interface so users don't have to
2171 * scripts/irunner: thin script interface so users don't have to
2169 find the module and call it as an executable, since modules rarely
2172 find the module and call it as an executable, since modules rarely
2170 live in people's PATH.
2173 live in people's PATH.
2171
2174
2172 * IPython/irunner.py (InteractiveRunner.__init__): added
2175 * IPython/irunner.py (InteractiveRunner.__init__): added
2173 delaybeforesend attribute to control delays with newer versions of
2176 delaybeforesend attribute to control delays with newer versions of
2174 pexpect. Thanks to detailed help from pexpect's author, Noah
2177 pexpect. Thanks to detailed help from pexpect's author, Noah
2175 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2178 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2176 correctly (it works in NoColor mode).
2179 correctly (it works in NoColor mode).
2177
2180
2178 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2181 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2179 SAGE list, from improper log() calls.
2182 SAGE list, from improper log() calls.
2180
2183
2181 2006-05-31 Ville Vainio <vivainio@gmail.com>
2184 2006-05-31 Ville Vainio <vivainio@gmail.com>
2182
2185
2183 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2186 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2184 with args in parens to work correctly with dirs that have spaces.
2187 with args in parens to work correctly with dirs that have spaces.
2185
2188
2186 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2189 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2187
2190
2188 * IPython/Logger.py (Logger.logstart): add option to log raw input
2191 * IPython/Logger.py (Logger.logstart): add option to log raw input
2189 instead of the processed one. A -r flag was added to the
2192 instead of the processed one. A -r flag was added to the
2190 %logstart magic used for controlling logging.
2193 %logstart magic used for controlling logging.
2191
2194
2192 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2195 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2193
2196
2194 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2197 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2195 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2198 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2196 recognize the option. After a bug report by Will Maier. This
2199 recognize the option. After a bug report by Will Maier. This
2197 closes #64 (will do it after confirmation from W. Maier).
2200 closes #64 (will do it after confirmation from W. Maier).
2198
2201
2199 * IPython/irunner.py: New module to run scripts as if manually
2202 * IPython/irunner.py: New module to run scripts as if manually
2200 typed into an interactive environment, based on pexpect. After a
2203 typed into an interactive environment, based on pexpect. After a
2201 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2204 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2202 ipython-user list. Simple unittests in the tests/ directory.
2205 ipython-user list. Simple unittests in the tests/ directory.
2203
2206
2204 * tools/release: add Will Maier, OpenBSD port maintainer, to
2207 * tools/release: add Will Maier, OpenBSD port maintainer, to
2205 recepients list. We are now officially part of the OpenBSD ports:
2208 recepients list. We are now officially part of the OpenBSD ports:
2206 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2209 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2207 work.
2210 work.
2208
2211
2209 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2212 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2210
2213
2211 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2214 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2212 so that it doesn't break tkinter apps.
2215 so that it doesn't break tkinter apps.
2213
2216
2214 * IPython/iplib.py (_prefilter): fix bug where aliases would
2217 * IPython/iplib.py (_prefilter): fix bug where aliases would
2215 shadow variables when autocall was fully off. Reported by SAGE
2218 shadow variables when autocall was fully off. Reported by SAGE
2216 author William Stein.
2219 author William Stein.
2217
2220
2218 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2221 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2219 at what detail level strings are computed when foo? is requested.
2222 at what detail level strings are computed when foo? is requested.
2220 This allows users to ask for example that the string form of an
2223 This allows users to ask for example that the string form of an
2221 object is only computed when foo?? is called, or even never, by
2224 object is only computed when foo?? is called, or even never, by
2222 setting the object_info_string_level >= 2 in the configuration
2225 setting the object_info_string_level >= 2 in the configuration
2223 file. This new option has been added and documented. After a
2226 file. This new option has been added and documented. After a
2224 request by SAGE to be able to control the printing of very large
2227 request by SAGE to be able to control the printing of very large
2225 objects more easily.
2228 objects more easily.
2226
2229
2227 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2230 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2228
2231
2229 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2232 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2230 from sys.argv, to be 100% consistent with how Python itself works
2233 from sys.argv, to be 100% consistent with how Python itself works
2231 (as seen for example with python -i file.py). After a bug report
2234 (as seen for example with python -i file.py). After a bug report
2232 by Jeffrey Collins.
2235 by Jeffrey Collins.
2233
2236
2234 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2237 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2235 nasty bug which was preventing custom namespaces with -pylab,
2238 nasty bug which was preventing custom namespaces with -pylab,
2236 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2239 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2237 compatibility (long gone from mpl).
2240 compatibility (long gone from mpl).
2238
2241
2239 * IPython/ipapi.py (make_session): name change: create->make. We
2242 * IPython/ipapi.py (make_session): name change: create->make. We
2240 use make in other places (ipmaker,...), it's shorter and easier to
2243 use make in other places (ipmaker,...), it's shorter and easier to
2241 type and say, etc. I'm trying to clean things before 0.7.2 so
2244 type and say, etc. I'm trying to clean things before 0.7.2 so
2242 that I can keep things stable wrt to ipapi in the chainsaw branch.
2245 that I can keep things stable wrt to ipapi in the chainsaw branch.
2243
2246
2244 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2247 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2245 python-mode recognizes our debugger mode. Add support for
2248 python-mode recognizes our debugger mode. Add support for
2246 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2249 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2247 <m.liu.jin-AT-gmail.com> originally written by
2250 <m.liu.jin-AT-gmail.com> originally written by
2248 doxgen-AT-newsmth.net (with minor modifications for xemacs
2251 doxgen-AT-newsmth.net (with minor modifications for xemacs
2249 compatibility)
2252 compatibility)
2250
2253
2251 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2254 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2252 tracebacks when walking the stack so that the stack tracking system
2255 tracebacks when walking the stack so that the stack tracking system
2253 in emacs' python-mode can identify the frames correctly.
2256 in emacs' python-mode can identify the frames correctly.
2254
2257
2255 * IPython/ipmaker.py (make_IPython): make the internal (and
2258 * IPython/ipmaker.py (make_IPython): make the internal (and
2256 default config) autoedit_syntax value false by default. Too many
2259 default config) autoedit_syntax value false by default. Too many
2257 users have complained to me (both on and off-list) about problems
2260 users have complained to me (both on and off-list) about problems
2258 with this option being on by default, so I'm making it default to
2261 with this option being on by default, so I'm making it default to
2259 off. It can still be enabled by anyone via the usual mechanisms.
2262 off. It can still be enabled by anyone via the usual mechanisms.
2260
2263
2261 * IPython/completer.py (Completer.attr_matches): add support for
2264 * IPython/completer.py (Completer.attr_matches): add support for
2262 PyCrust-style _getAttributeNames magic method. Patch contributed
2265 PyCrust-style _getAttributeNames magic method. Patch contributed
2263 by <mscott-AT-goldenspud.com>. Closes #50.
2266 by <mscott-AT-goldenspud.com>. Closes #50.
2264
2267
2265 * IPython/iplib.py (InteractiveShell.__init__): remove the
2268 * IPython/iplib.py (InteractiveShell.__init__): remove the
2266 deletion of exit/quit from __builtin__, which can break
2269 deletion of exit/quit from __builtin__, which can break
2267 third-party tools like the Zope debugging console. The
2270 third-party tools like the Zope debugging console. The
2268 %exit/%quit magics remain. In general, it's probably a good idea
2271 %exit/%quit magics remain. In general, it's probably a good idea
2269 not to delete anything from __builtin__, since we never know what
2272 not to delete anything from __builtin__, since we never know what
2270 that will break. In any case, python now (for 2.5) will support
2273 that will break. In any case, python now (for 2.5) will support
2271 'real' exit/quit, so this issue is moot. Closes #55.
2274 'real' exit/quit, so this issue is moot. Closes #55.
2272
2275
2273 * IPython/genutils.py (with_obj): rename the 'with' function to
2276 * IPython/genutils.py (with_obj): rename the 'with' function to
2274 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2277 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2275 becomes a language keyword. Closes #53.
2278 becomes a language keyword. Closes #53.
2276
2279
2277 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2280 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2278 __file__ attribute to this so it fools more things into thinking
2281 __file__ attribute to this so it fools more things into thinking
2279 it is a real module. Closes #59.
2282 it is a real module. Closes #59.
2280
2283
2281 * IPython/Magic.py (magic_edit): add -n option to open the editor
2284 * IPython/Magic.py (magic_edit): add -n option to open the editor
2282 at a specific line number. After a patch by Stefan van der Walt.
2285 at a specific line number. After a patch by Stefan van der Walt.
2283
2286
2284 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2287 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2285
2288
2286 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2289 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2287 reason the file could not be opened. After automatic crash
2290 reason the file could not be opened. After automatic crash
2288 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2291 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2289 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2292 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2290 (_should_recompile): Don't fire editor if using %bg, since there
2293 (_should_recompile): Don't fire editor if using %bg, since there
2291 is no file in the first place. From the same report as above.
2294 is no file in the first place. From the same report as above.
2292 (raw_input): protect against faulty third-party prefilters. After
2295 (raw_input): protect against faulty third-party prefilters. After
2293 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2296 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2294 while running under SAGE.
2297 while running under SAGE.
2295
2298
2296 2006-05-23 Ville Vainio <vivainio@gmail.com>
2299 2006-05-23 Ville Vainio <vivainio@gmail.com>
2297
2300
2298 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2301 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2299 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2302 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2300 now returns None (again), unless dummy is specifically allowed by
2303 now returns None (again), unless dummy is specifically allowed by
2301 ipapi.get(allow_dummy=True).
2304 ipapi.get(allow_dummy=True).
2302
2305
2303 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2306 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2304
2307
2305 * IPython: remove all 2.2-compatibility objects and hacks from
2308 * IPython: remove all 2.2-compatibility objects and hacks from
2306 everywhere, since we only support 2.3 at this point. Docs
2309 everywhere, since we only support 2.3 at this point. Docs
2307 updated.
2310 updated.
2308
2311
2309 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2312 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2310 Anything requiring extra validation can be turned into a Python
2313 Anything requiring extra validation can be turned into a Python
2311 property in the future. I used a property for the db one b/c
2314 property in the future. I used a property for the db one b/c
2312 there was a nasty circularity problem with the initialization
2315 there was a nasty circularity problem with the initialization
2313 order, which right now I don't have time to clean up.
2316 order, which right now I don't have time to clean up.
2314
2317
2315 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2318 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2316 another locking bug reported by Jorgen. I'm not 100% sure though,
2319 another locking bug reported by Jorgen. I'm not 100% sure though,
2317 so more testing is needed...
2320 so more testing is needed...
2318
2321
2319 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2322 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2320
2323
2321 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2324 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2322 local variables from any routine in user code (typically executed
2325 local variables from any routine in user code (typically executed
2323 with %run) directly into the interactive namespace. Very useful
2326 with %run) directly into the interactive namespace. Very useful
2324 when doing complex debugging.
2327 when doing complex debugging.
2325 (IPythonNotRunning): Changed the default None object to a dummy
2328 (IPythonNotRunning): Changed the default None object to a dummy
2326 whose attributes can be queried as well as called without
2329 whose attributes can be queried as well as called without
2327 exploding, to ease writing code which works transparently both in
2330 exploding, to ease writing code which works transparently both in
2328 and out of ipython and uses some of this API.
2331 and out of ipython and uses some of this API.
2329
2332
2330 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2333 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2331
2334
2332 * IPython/hooks.py (result_display): Fix the fact that our display
2335 * IPython/hooks.py (result_display): Fix the fact that our display
2333 hook was using str() instead of repr(), as the default python
2336 hook was using str() instead of repr(), as the default python
2334 console does. This had gone unnoticed b/c it only happened if
2337 console does. This had gone unnoticed b/c it only happened if
2335 %Pprint was off, but the inconsistency was there.
2338 %Pprint was off, but the inconsistency was there.
2336
2339
2337 2006-05-15 Ville Vainio <vivainio@gmail.com>
2340 2006-05-15 Ville Vainio <vivainio@gmail.com>
2338
2341
2339 * Oinspect.py: Only show docstring for nonexisting/binary files
2342 * Oinspect.py: Only show docstring for nonexisting/binary files
2340 when doing object??, closing ticket #62
2343 when doing object??, closing ticket #62
2341
2344
2342 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2345 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2343
2346
2344 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2347 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2345 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2348 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2346 was being released in a routine which hadn't checked if it had
2349 was being released in a routine which hadn't checked if it had
2347 been the one to acquire it.
2350 been the one to acquire it.
2348
2351
2349 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2352 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2350
2353
2351 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2354 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2352
2355
2353 2006-04-11 Ville Vainio <vivainio@gmail.com>
2356 2006-04-11 Ville Vainio <vivainio@gmail.com>
2354
2357
2355 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2358 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2356 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2359 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2357 prefilters, allowing stuff like magics and aliases in the file.
2360 prefilters, allowing stuff like magics and aliases in the file.
2358
2361
2359 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2362 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2360 added. Supported now are "%clear in" and "%clear out" (clear input and
2363 added. Supported now are "%clear in" and "%clear out" (clear input and
2361 output history, respectively). Also fixed CachedOutput.flush to
2364 output history, respectively). Also fixed CachedOutput.flush to
2362 properly flush the output cache.
2365 properly flush the output cache.
2363
2366
2364 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2367 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2365 half-success (and fail explicitly).
2368 half-success (and fail explicitly).
2366
2369
2367 2006-03-28 Ville Vainio <vivainio@gmail.com>
2370 2006-03-28 Ville Vainio <vivainio@gmail.com>
2368
2371
2369 * iplib.py: Fix quoting of aliases so that only argless ones
2372 * iplib.py: Fix quoting of aliases so that only argless ones
2370 are quoted
2373 are quoted
2371
2374
2372 2006-03-28 Ville Vainio <vivainio@gmail.com>
2375 2006-03-28 Ville Vainio <vivainio@gmail.com>
2373
2376
2374 * iplib.py: Quote aliases with spaces in the name.
2377 * iplib.py: Quote aliases with spaces in the name.
2375 "c:\program files\blah\bin" is now legal alias target.
2378 "c:\program files\blah\bin" is now legal alias target.
2376
2379
2377 * ext_rehashdir.py: Space no longer allowed as arg
2380 * ext_rehashdir.py: Space no longer allowed as arg
2378 separator, since space is legal in path names.
2381 separator, since space is legal in path names.
2379
2382
2380 2006-03-16 Ville Vainio <vivainio@gmail.com>
2383 2006-03-16 Ville Vainio <vivainio@gmail.com>
2381
2384
2382 * upgrade_dir.py: Take path.py from Extensions, correcting
2385 * upgrade_dir.py: Take path.py from Extensions, correcting
2383 %upgrade magic
2386 %upgrade magic
2384
2387
2385 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2388 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2386
2389
2387 * hooks.py: Only enclose editor binary in quotes if legal and
2390 * hooks.py: Only enclose editor binary in quotes if legal and
2388 necessary (space in the name, and is an existing file). Fixes a bug
2391 necessary (space in the name, and is an existing file). Fixes a bug
2389 reported by Zachary Pincus.
2392 reported by Zachary Pincus.
2390
2393
2391 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2394 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2392
2395
2393 * Manual: thanks to a tip on proper color handling for Emacs, by
2396 * Manual: thanks to a tip on proper color handling for Emacs, by
2394 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2397 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2395
2398
2396 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2399 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2397 by applying the provided patch. Thanks to Liu Jin
2400 by applying the provided patch. Thanks to Liu Jin
2398 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2401 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2399 XEmacs/Linux, I'm trusting the submitter that it actually helps
2402 XEmacs/Linux, I'm trusting the submitter that it actually helps
2400 under win32/GNU Emacs. Will revisit if any problems are reported.
2403 under win32/GNU Emacs. Will revisit if any problems are reported.
2401
2404
2402 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2405 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2403
2406
2404 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2407 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2405 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2408 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2406
2409
2407 2006-03-12 Ville Vainio <vivainio@gmail.com>
2410 2006-03-12 Ville Vainio <vivainio@gmail.com>
2408
2411
2409 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2412 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2410 Torsten Marek.
2413 Torsten Marek.
2411
2414
2412 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2415 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2413
2416
2414 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2417 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2415 line ranges works again.
2418 line ranges works again.
2416
2419
2417 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2420 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2418
2421
2419 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2422 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2420 and friends, after a discussion with Zach Pincus on ipython-user.
2423 and friends, after a discussion with Zach Pincus on ipython-user.
2421 I'm not 100% sure, but after thinking about it quite a bit, it may
2424 I'm not 100% sure, but after thinking about it quite a bit, it may
2422 be OK. Testing with the multithreaded shells didn't reveal any
2425 be OK. Testing with the multithreaded shells didn't reveal any
2423 problems, but let's keep an eye out.
2426 problems, but let's keep an eye out.
2424
2427
2425 In the process, I fixed a few things which were calling
2428 In the process, I fixed a few things which were calling
2426 self.InteractiveTB() directly (like safe_execfile), which is a
2429 self.InteractiveTB() directly (like safe_execfile), which is a
2427 mistake: ALL exception reporting should be done by calling
2430 mistake: ALL exception reporting should be done by calling
2428 self.showtraceback(), which handles state and tab-completion and
2431 self.showtraceback(), which handles state and tab-completion and
2429 more.
2432 more.
2430
2433
2431 2006-03-01 Ville Vainio <vivainio@gmail.com>
2434 2006-03-01 Ville Vainio <vivainio@gmail.com>
2432
2435
2433 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2436 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2434 To use, do "from ipipe import *".
2437 To use, do "from ipipe import *".
2435
2438
2436 2006-02-24 Ville Vainio <vivainio@gmail.com>
2439 2006-02-24 Ville Vainio <vivainio@gmail.com>
2437
2440
2438 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2441 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2439 "cleanly" and safely than the older upgrade mechanism.
2442 "cleanly" and safely than the older upgrade mechanism.
2440
2443
2441 2006-02-21 Ville Vainio <vivainio@gmail.com>
2444 2006-02-21 Ville Vainio <vivainio@gmail.com>
2442
2445
2443 * Magic.py: %save works again.
2446 * Magic.py: %save works again.
2444
2447
2445 2006-02-15 Ville Vainio <vivainio@gmail.com>
2448 2006-02-15 Ville Vainio <vivainio@gmail.com>
2446
2449
2447 * Magic.py: %Pprint works again
2450 * Magic.py: %Pprint works again
2448
2451
2449 * Extensions/ipy_sane_defaults.py: Provide everything provided
2452 * Extensions/ipy_sane_defaults.py: Provide everything provided
2450 in default ipythonrc, to make it possible to have a completely empty
2453 in default ipythonrc, to make it possible to have a completely empty
2451 ipythonrc (and thus completely rc-file free configuration)
2454 ipythonrc (and thus completely rc-file free configuration)
2452
2455
2453 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2456 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2454
2457
2455 * IPython/hooks.py (editor): quote the call to the editor command,
2458 * IPython/hooks.py (editor): quote the call to the editor command,
2456 to allow commands with spaces in them. Problem noted by watching
2459 to allow commands with spaces in them. Problem noted by watching
2457 Ian Oswald's video about textpad under win32 at
2460 Ian Oswald's video about textpad under win32 at
2458 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2461 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2459
2462
2460 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2463 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2461 describing magics (we haven't used @ for a loong time).
2464 describing magics (we haven't used @ for a loong time).
2462
2465
2463 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2466 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2464 contributed by marienz to close
2467 contributed by marienz to close
2465 http://www.scipy.net/roundup/ipython/issue53.
2468 http://www.scipy.net/roundup/ipython/issue53.
2466
2469
2467 2006-02-10 Ville Vainio <vivainio@gmail.com>
2470 2006-02-10 Ville Vainio <vivainio@gmail.com>
2468
2471
2469 * genutils.py: getoutput now works in win32 too
2472 * genutils.py: getoutput now works in win32 too
2470
2473
2471 * completer.py: alias and magic completion only invoked
2474 * completer.py: alias and magic completion only invoked
2472 at the first "item" in the line, to avoid "cd %store"
2475 at the first "item" in the line, to avoid "cd %store"
2473 nonsense.
2476 nonsense.
2474
2477
2475 2006-02-09 Ville Vainio <vivainio@gmail.com>
2478 2006-02-09 Ville Vainio <vivainio@gmail.com>
2476
2479
2477 * test/*: Added a unit testing framework (finally).
2480 * test/*: Added a unit testing framework (finally).
2478 '%run runtests.py' to run test_*.
2481 '%run runtests.py' to run test_*.
2479
2482
2480 * ipapi.py: Exposed runlines and set_custom_exc
2483 * ipapi.py: Exposed runlines and set_custom_exc
2481
2484
2482 2006-02-07 Ville Vainio <vivainio@gmail.com>
2485 2006-02-07 Ville Vainio <vivainio@gmail.com>
2483
2486
2484 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2487 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2485 instead use "f(1 2)" as before.
2488 instead use "f(1 2)" as before.
2486
2489
2487 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2490 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2488
2491
2489 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2492 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2490 facilities, for demos processed by the IPython input filter
2493 facilities, for demos processed by the IPython input filter
2491 (IPythonDemo), and for running a script one-line-at-a-time as a
2494 (IPythonDemo), and for running a script one-line-at-a-time as a
2492 demo, both for pure Python (LineDemo) and for IPython-processed
2495 demo, both for pure Python (LineDemo) and for IPython-processed
2493 input (IPythonLineDemo). After a request by Dave Kohel, from the
2496 input (IPythonLineDemo). After a request by Dave Kohel, from the
2494 SAGE team.
2497 SAGE team.
2495 (Demo.edit): added an edit() method to the demo objects, to edit
2498 (Demo.edit): added an edit() method to the demo objects, to edit
2496 the in-memory copy of the last executed block.
2499 the in-memory copy of the last executed block.
2497
2500
2498 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2501 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2499 processing to %edit, %macro and %save. These commands can now be
2502 processing to %edit, %macro and %save. These commands can now be
2500 invoked on the unprocessed input as it was typed by the user
2503 invoked on the unprocessed input as it was typed by the user
2501 (without any prefilters applied). After requests by the SAGE team
2504 (without any prefilters applied). After requests by the SAGE team
2502 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2505 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2503
2506
2504 2006-02-01 Ville Vainio <vivainio@gmail.com>
2507 2006-02-01 Ville Vainio <vivainio@gmail.com>
2505
2508
2506 * setup.py, eggsetup.py: easy_install ipython==dev works
2509 * setup.py, eggsetup.py: easy_install ipython==dev works
2507 correctly now (on Linux)
2510 correctly now (on Linux)
2508
2511
2509 * ipy_user_conf,ipmaker: user config changes, removed spurious
2512 * ipy_user_conf,ipmaker: user config changes, removed spurious
2510 warnings
2513 warnings
2511
2514
2512 * iplib: if rc.banner is string, use it as is.
2515 * iplib: if rc.banner is string, use it as is.
2513
2516
2514 * Magic: %pycat accepts a string argument and pages it's contents.
2517 * Magic: %pycat accepts a string argument and pages it's contents.
2515
2518
2516
2519
2517 2006-01-30 Ville Vainio <vivainio@gmail.com>
2520 2006-01-30 Ville Vainio <vivainio@gmail.com>
2518
2521
2519 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2522 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2520 Now %store and bookmarks work through PickleShare, meaning that
2523 Now %store and bookmarks work through PickleShare, meaning that
2521 concurrent access is possible and all ipython sessions see the
2524 concurrent access is possible and all ipython sessions see the
2522 same database situation all the time, instead of snapshot of
2525 same database situation all the time, instead of snapshot of
2523 the situation when the session was started. Hence, %bookmark
2526 the situation when the session was started. Hence, %bookmark
2524 results are immediately accessible from othes sessions. The database
2527 results are immediately accessible from othes sessions. The database
2525 is also available for use by user extensions. See:
2528 is also available for use by user extensions. See:
2526 http://www.python.org/pypi/pickleshare
2529 http://www.python.org/pypi/pickleshare
2527
2530
2528 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2531 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2529
2532
2530 * aliases can now be %store'd
2533 * aliases can now be %store'd
2531
2534
2532 * path.py moved to Extensions so that pickleshare does not need
2535 * path.py moved to Extensions so that pickleshare does not need
2533 IPython-specific import. Extensions added to pythonpath right
2536 IPython-specific import. Extensions added to pythonpath right
2534 at __init__.
2537 at __init__.
2535
2538
2536 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2539 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2537 called with _ip.system and the pre-transformed command string.
2540 called with _ip.system and the pre-transformed command string.
2538
2541
2539 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2542 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2540
2543
2541 * IPython/iplib.py (interact): Fix that we were not catching
2544 * IPython/iplib.py (interact): Fix that we were not catching
2542 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2545 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2543 logic here had to change, but it's fixed now.
2546 logic here had to change, but it's fixed now.
2544
2547
2545 2006-01-29 Ville Vainio <vivainio@gmail.com>
2548 2006-01-29 Ville Vainio <vivainio@gmail.com>
2546
2549
2547 * iplib.py: Try to import pyreadline on Windows.
2550 * iplib.py: Try to import pyreadline on Windows.
2548
2551
2549 2006-01-27 Ville Vainio <vivainio@gmail.com>
2552 2006-01-27 Ville Vainio <vivainio@gmail.com>
2550
2553
2551 * iplib.py: Expose ipapi as _ip in builtin namespace.
2554 * iplib.py: Expose ipapi as _ip in builtin namespace.
2552 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2555 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2553 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2556 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2554 syntax now produce _ip.* variant of the commands.
2557 syntax now produce _ip.* variant of the commands.
2555
2558
2556 * "_ip.options().autoedit_syntax = 2" automatically throws
2559 * "_ip.options().autoedit_syntax = 2" automatically throws
2557 user to editor for syntax error correction without prompting.
2560 user to editor for syntax error correction without prompting.
2558
2561
2559 2006-01-27 Ville Vainio <vivainio@gmail.com>
2562 2006-01-27 Ville Vainio <vivainio@gmail.com>
2560
2563
2561 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2564 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2562 'ipython' at argv[0]) executed through command line.
2565 'ipython' at argv[0]) executed through command line.
2563 NOTE: this DEPRECATES calling ipython with multiple scripts
2566 NOTE: this DEPRECATES calling ipython with multiple scripts
2564 ("ipython a.py b.py c.py")
2567 ("ipython a.py b.py c.py")
2565
2568
2566 * iplib.py, hooks.py: Added configurable input prefilter,
2569 * iplib.py, hooks.py: Added configurable input prefilter,
2567 named 'input_prefilter'. See ext_rescapture.py for example
2570 named 'input_prefilter'. See ext_rescapture.py for example
2568 usage.
2571 usage.
2569
2572
2570 * ext_rescapture.py, Magic.py: Better system command output capture
2573 * ext_rescapture.py, Magic.py: Better system command output capture
2571 through 'var = !ls' (deprecates user-visible %sc). Same notation
2574 through 'var = !ls' (deprecates user-visible %sc). Same notation
2572 applies for magics, 'var = %alias' assigns alias list to var.
2575 applies for magics, 'var = %alias' assigns alias list to var.
2573
2576
2574 * ipapi.py: added meta() for accessing extension-usable data store.
2577 * ipapi.py: added meta() for accessing extension-usable data store.
2575
2578
2576 * iplib.py: added InteractiveShell.getapi(). New magics should be
2579 * iplib.py: added InteractiveShell.getapi(). New magics should be
2577 written doing self.getapi() instead of using the shell directly.
2580 written doing self.getapi() instead of using the shell directly.
2578
2581
2579 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2582 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2580 %store foo >> ~/myfoo.txt to store variables to files (in clean
2583 %store foo >> ~/myfoo.txt to store variables to files (in clean
2581 textual form, not a restorable pickle).
2584 textual form, not a restorable pickle).
2582
2585
2583 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2586 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2584
2587
2585 * usage.py, Magic.py: added %quickref
2588 * usage.py, Magic.py: added %quickref
2586
2589
2587 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2590 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2588
2591
2589 * GetoptErrors when invoking magics etc. with wrong args
2592 * GetoptErrors when invoking magics etc. with wrong args
2590 are now more helpful:
2593 are now more helpful:
2591 GetoptError: option -l not recognized (allowed: "qb" )
2594 GetoptError: option -l not recognized (allowed: "qb" )
2592
2595
2593 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2596 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2594
2597
2595 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2598 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2596 computationally intensive blocks don't appear to stall the demo.
2599 computationally intensive blocks don't appear to stall the demo.
2597
2600
2598 2006-01-24 Ville Vainio <vivainio@gmail.com>
2601 2006-01-24 Ville Vainio <vivainio@gmail.com>
2599
2602
2600 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2603 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2601 value to manipulate resulting history entry.
2604 value to manipulate resulting history entry.
2602
2605
2603 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2606 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2604 to instance methods of IPApi class, to make extending an embedded
2607 to instance methods of IPApi class, to make extending an embedded
2605 IPython feasible. See ext_rehashdir.py for example usage.
2608 IPython feasible. See ext_rehashdir.py for example usage.
2606
2609
2607 * Merged 1071-1076 from branches/0.7.1
2610 * Merged 1071-1076 from branches/0.7.1
2608
2611
2609
2612
2610 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2613 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2611
2614
2612 * tools/release (daystamp): Fix build tools to use the new
2615 * tools/release (daystamp): Fix build tools to use the new
2613 eggsetup.py script to build lightweight eggs.
2616 eggsetup.py script to build lightweight eggs.
2614
2617
2615 * Applied changesets 1062 and 1064 before 0.7.1 release.
2618 * Applied changesets 1062 and 1064 before 0.7.1 release.
2616
2619
2617 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2620 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2618 see the raw input history (without conversions like %ls ->
2621 see the raw input history (without conversions like %ls ->
2619 ipmagic("ls")). After a request from W. Stein, SAGE
2622 ipmagic("ls")). After a request from W. Stein, SAGE
2620 (http://modular.ucsd.edu/sage) developer. This information is
2623 (http://modular.ucsd.edu/sage) developer. This information is
2621 stored in the input_hist_raw attribute of the IPython instance, so
2624 stored in the input_hist_raw attribute of the IPython instance, so
2622 developers can access it if needed (it's an InputList instance).
2625 developers can access it if needed (it's an InputList instance).
2623
2626
2624 * Versionstring = 0.7.2.svn
2627 * Versionstring = 0.7.2.svn
2625
2628
2626 * eggsetup.py: A separate script for constructing eggs, creates
2629 * eggsetup.py: A separate script for constructing eggs, creates
2627 proper launch scripts even on Windows (an .exe file in
2630 proper launch scripts even on Windows (an .exe file in
2628 \python24\scripts).
2631 \python24\scripts).
2629
2632
2630 * ipapi.py: launch_new_instance, launch entry point needed for the
2633 * ipapi.py: launch_new_instance, launch entry point needed for the
2631 egg.
2634 egg.
2632
2635
2633 2006-01-23 Ville Vainio <vivainio@gmail.com>
2636 2006-01-23 Ville Vainio <vivainio@gmail.com>
2634
2637
2635 * Added %cpaste magic for pasting python code
2638 * Added %cpaste magic for pasting python code
2636
2639
2637 2006-01-22 Ville Vainio <vivainio@gmail.com>
2640 2006-01-22 Ville Vainio <vivainio@gmail.com>
2638
2641
2639 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2642 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2640
2643
2641 * Versionstring = 0.7.2.svn
2644 * Versionstring = 0.7.2.svn
2642
2645
2643 * eggsetup.py: A separate script for constructing eggs, creates
2646 * eggsetup.py: A separate script for constructing eggs, creates
2644 proper launch scripts even on Windows (an .exe file in
2647 proper launch scripts even on Windows (an .exe file in
2645 \python24\scripts).
2648 \python24\scripts).
2646
2649
2647 * ipapi.py: launch_new_instance, launch entry point needed for the
2650 * ipapi.py: launch_new_instance, launch entry point needed for the
2648 egg.
2651 egg.
2649
2652
2650 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2653 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2651
2654
2652 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2655 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2653 %pfile foo would print the file for foo even if it was a binary.
2656 %pfile foo would print the file for foo even if it was a binary.
2654 Now, extensions '.so' and '.dll' are skipped.
2657 Now, extensions '.so' and '.dll' are skipped.
2655
2658
2656 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2659 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2657 bug, where macros would fail in all threaded modes. I'm not 100%
2660 bug, where macros would fail in all threaded modes. I'm not 100%
2658 sure, so I'm going to put out an rc instead of making a release
2661 sure, so I'm going to put out an rc instead of making a release
2659 today, and wait for feedback for at least a few days.
2662 today, and wait for feedback for at least a few days.
2660
2663
2661 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2664 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2662 it...) the handling of pasting external code with autoindent on.
2665 it...) the handling of pasting external code with autoindent on.
2663 To get out of a multiline input, the rule will appear for most
2666 To get out of a multiline input, the rule will appear for most
2664 users unchanged: two blank lines or change the indent level
2667 users unchanged: two blank lines or change the indent level
2665 proposed by IPython. But there is a twist now: you can
2668 proposed by IPython. But there is a twist now: you can
2666 add/subtract only *one or two spaces*. If you add/subtract three
2669 add/subtract only *one or two spaces*. If you add/subtract three
2667 or more (unless you completely delete the line), IPython will
2670 or more (unless you completely delete the line), IPython will
2668 accept that line, and you'll need to enter a second one of pure
2671 accept that line, and you'll need to enter a second one of pure
2669 whitespace. I know it sounds complicated, but I can't find a
2672 whitespace. I know it sounds complicated, but I can't find a
2670 different solution that covers all the cases, with the right
2673 different solution that covers all the cases, with the right
2671 heuristics. Hopefully in actual use, nobody will really notice
2674 heuristics. Hopefully in actual use, nobody will really notice
2672 all these strange rules and things will 'just work'.
2675 all these strange rules and things will 'just work'.
2673
2676
2674 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2677 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2675
2678
2676 * IPython/iplib.py (interact): catch exceptions which can be
2679 * IPython/iplib.py (interact): catch exceptions which can be
2677 triggered asynchronously by signal handlers. Thanks to an
2680 triggered asynchronously by signal handlers. Thanks to an
2678 automatic crash report, submitted by Colin Kingsley
2681 automatic crash report, submitted by Colin Kingsley
2679 <tercel-AT-gentoo.org>.
2682 <tercel-AT-gentoo.org>.
2680
2683
2681 2006-01-20 Ville Vainio <vivainio@gmail.com>
2684 2006-01-20 Ville Vainio <vivainio@gmail.com>
2682
2685
2683 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2686 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2684 (%rehashdir, very useful, try it out) of how to extend ipython
2687 (%rehashdir, very useful, try it out) of how to extend ipython
2685 with new magics. Also added Extensions dir to pythonpath to make
2688 with new magics. Also added Extensions dir to pythonpath to make
2686 importing extensions easy.
2689 importing extensions easy.
2687
2690
2688 * %store now complains when trying to store interactively declared
2691 * %store now complains when trying to store interactively declared
2689 classes / instances of those classes.
2692 classes / instances of those classes.
2690
2693
2691 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2694 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2692 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2695 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2693 if they exist, and ipy_user_conf.py with some defaults is created for
2696 if they exist, and ipy_user_conf.py with some defaults is created for
2694 the user.
2697 the user.
2695
2698
2696 * Startup rehashing done by the config file, not InterpreterExec.
2699 * Startup rehashing done by the config file, not InterpreterExec.
2697 This means system commands are available even without selecting the
2700 This means system commands are available even without selecting the
2698 pysh profile. It's the sensible default after all.
2701 pysh profile. It's the sensible default after all.
2699
2702
2700 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2703 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2701
2704
2702 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2705 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2703 multiline code with autoindent on working. But I am really not
2706 multiline code with autoindent on working. But I am really not
2704 sure, so this needs more testing. Will commit a debug-enabled
2707 sure, so this needs more testing. Will commit a debug-enabled
2705 version for now, while I test it some more, so that Ville and
2708 version for now, while I test it some more, so that Ville and
2706 others may also catch any problems. Also made
2709 others may also catch any problems. Also made
2707 self.indent_current_str() a method, to ensure that there's no
2710 self.indent_current_str() a method, to ensure that there's no
2708 chance of the indent space count and the corresponding string
2711 chance of the indent space count and the corresponding string
2709 falling out of sync. All code needing the string should just call
2712 falling out of sync. All code needing the string should just call
2710 the method.
2713 the method.
2711
2714
2712 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2715 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2713
2716
2714 * IPython/Magic.py (magic_edit): fix check for when users don't
2717 * IPython/Magic.py (magic_edit): fix check for when users don't
2715 save their output files, the try/except was in the wrong section.
2718 save their output files, the try/except was in the wrong section.
2716
2719
2717 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2720 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2718
2721
2719 * IPython/Magic.py (magic_run): fix __file__ global missing from
2722 * IPython/Magic.py (magic_run): fix __file__ global missing from
2720 script's namespace when executed via %run. After a report by
2723 script's namespace when executed via %run. After a report by
2721 Vivian.
2724 Vivian.
2722
2725
2723 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2726 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2724 when using python 2.4. The parent constructor changed in 2.4, and
2727 when using python 2.4. The parent constructor changed in 2.4, and
2725 we need to track it directly (we can't call it, as it messes up
2728 we need to track it directly (we can't call it, as it messes up
2726 readline and tab-completion inside our pdb would stop working).
2729 readline and tab-completion inside our pdb would stop working).
2727 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2730 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2728
2731
2729 2006-01-16 Ville Vainio <vivainio@gmail.com>
2732 2006-01-16 Ville Vainio <vivainio@gmail.com>
2730
2733
2731 * Ipython/magic.py: Reverted back to old %edit functionality
2734 * Ipython/magic.py: Reverted back to old %edit functionality
2732 that returns file contents on exit.
2735 that returns file contents on exit.
2733
2736
2734 * IPython/path.py: Added Jason Orendorff's "path" module to
2737 * IPython/path.py: Added Jason Orendorff's "path" module to
2735 IPython tree, http://www.jorendorff.com/articles/python/path/.
2738 IPython tree, http://www.jorendorff.com/articles/python/path/.
2736 You can get path objects conveniently through %sc, and !!, e.g.:
2739 You can get path objects conveniently through %sc, and !!, e.g.:
2737 sc files=ls
2740 sc files=ls
2738 for p in files.paths: # or files.p
2741 for p in files.paths: # or files.p
2739 print p,p.mtime
2742 print p,p.mtime
2740
2743
2741 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2744 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2742 now work again without considering the exclusion regexp -
2745 now work again without considering the exclusion regexp -
2743 hence, things like ',foo my/path' turn to 'foo("my/path")'
2746 hence, things like ',foo my/path' turn to 'foo("my/path")'
2744 instead of syntax error.
2747 instead of syntax error.
2745
2748
2746
2749
2747 2006-01-14 Ville Vainio <vivainio@gmail.com>
2750 2006-01-14 Ville Vainio <vivainio@gmail.com>
2748
2751
2749 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2752 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2750 ipapi decorators for python 2.4 users, options() provides access to rc
2753 ipapi decorators for python 2.4 users, options() provides access to rc
2751 data.
2754 data.
2752
2755
2753 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2756 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2754 as path separators (even on Linux ;-). Space character after
2757 as path separators (even on Linux ;-). Space character after
2755 backslash (as yielded by tab completer) is still space;
2758 backslash (as yielded by tab completer) is still space;
2756 "%cd long\ name" works as expected.
2759 "%cd long\ name" works as expected.
2757
2760
2758 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2761 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2759 as "chain of command", with priority. API stays the same,
2762 as "chain of command", with priority. API stays the same,
2760 TryNext exception raised by a hook function signals that
2763 TryNext exception raised by a hook function signals that
2761 current hook failed and next hook should try handling it, as
2764 current hook failed and next hook should try handling it, as
2762 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2765 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2763 requested configurable display hook, which is now implemented.
2766 requested configurable display hook, which is now implemented.
2764
2767
2765 2006-01-13 Ville Vainio <vivainio@gmail.com>
2768 2006-01-13 Ville Vainio <vivainio@gmail.com>
2766
2769
2767 * IPython/platutils*.py: platform specific utility functions,
2770 * IPython/platutils*.py: platform specific utility functions,
2768 so far only set_term_title is implemented (change terminal
2771 so far only set_term_title is implemented (change terminal
2769 label in windowing systems). %cd now changes the title to
2772 label in windowing systems). %cd now changes the title to
2770 current dir.
2773 current dir.
2771
2774
2772 * IPython/Release.py: Added myself to "authors" list,
2775 * IPython/Release.py: Added myself to "authors" list,
2773 had to create new files.
2776 had to create new files.
2774
2777
2775 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2778 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2776 shell escape; not a known bug but had potential to be one in the
2779 shell escape; not a known bug but had potential to be one in the
2777 future.
2780 future.
2778
2781
2779 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2782 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2780 extension API for IPython! See the module for usage example. Fix
2783 extension API for IPython! See the module for usage example. Fix
2781 OInspect for docstring-less magic functions.
2784 OInspect for docstring-less magic functions.
2782
2785
2783
2786
2784 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2787 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2785
2788
2786 * IPython/iplib.py (raw_input): temporarily deactivate all
2789 * IPython/iplib.py (raw_input): temporarily deactivate all
2787 attempts at allowing pasting of code with autoindent on. It
2790 attempts at allowing pasting of code with autoindent on. It
2788 introduced bugs (reported by Prabhu) and I can't seem to find a
2791 introduced bugs (reported by Prabhu) and I can't seem to find a
2789 robust combination which works in all cases. Will have to revisit
2792 robust combination which works in all cases. Will have to revisit
2790 later.
2793 later.
2791
2794
2792 * IPython/genutils.py: remove isspace() function. We've dropped
2795 * IPython/genutils.py: remove isspace() function. We've dropped
2793 2.2 compatibility, so it's OK to use the string method.
2796 2.2 compatibility, so it's OK to use the string method.
2794
2797
2795 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2798 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2796
2799
2797 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2800 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2798 matching what NOT to autocall on, to include all python binary
2801 matching what NOT to autocall on, to include all python binary
2799 operators (including things like 'and', 'or', 'is' and 'in').
2802 operators (including things like 'and', 'or', 'is' and 'in').
2800 Prompted by a bug report on 'foo & bar', but I realized we had
2803 Prompted by a bug report on 'foo & bar', but I realized we had
2801 many more potential bug cases with other operators. The regexp is
2804 many more potential bug cases with other operators. The regexp is
2802 self.re_exclude_auto, it's fairly commented.
2805 self.re_exclude_auto, it's fairly commented.
2803
2806
2804 2006-01-12 Ville Vainio <vivainio@gmail.com>
2807 2006-01-12 Ville Vainio <vivainio@gmail.com>
2805
2808
2806 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2809 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2807 Prettified and hardened string/backslash quoting with ipsystem(),
2810 Prettified and hardened string/backslash quoting with ipsystem(),
2808 ipalias() and ipmagic(). Now even \ characters are passed to
2811 ipalias() and ipmagic(). Now even \ characters are passed to
2809 %magics, !shell escapes and aliases exactly as they are in the
2812 %magics, !shell escapes and aliases exactly as they are in the
2810 ipython command line. Should improve backslash experience,
2813 ipython command line. Should improve backslash experience,
2811 particularly in Windows (path delimiter for some commands that
2814 particularly in Windows (path delimiter for some commands that
2812 won't understand '/'), but Unix benefits as well (regexps). %cd
2815 won't understand '/'), but Unix benefits as well (regexps). %cd
2813 magic still doesn't support backslash path delimiters, though. Also
2816 magic still doesn't support backslash path delimiters, though. Also
2814 deleted all pretense of supporting multiline command strings in
2817 deleted all pretense of supporting multiline command strings in
2815 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2818 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2816
2819
2817 * doc/build_doc_instructions.txt added. Documentation on how to
2820 * doc/build_doc_instructions.txt added. Documentation on how to
2818 use doc/update_manual.py, added yesterday. Both files contributed
2821 use doc/update_manual.py, added yesterday. Both files contributed
2819 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2822 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2820 doc/*.sh for deprecation at a later date.
2823 doc/*.sh for deprecation at a later date.
2821
2824
2822 * /ipython.py Added ipython.py to root directory for
2825 * /ipython.py Added ipython.py to root directory for
2823 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2826 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2824 ipython.py) and development convenience (no need to keep doing
2827 ipython.py) and development convenience (no need to keep doing
2825 "setup.py install" between changes).
2828 "setup.py install" between changes).
2826
2829
2827 * Made ! and !! shell escapes work (again) in multiline expressions:
2830 * Made ! and !! shell escapes work (again) in multiline expressions:
2828 if 1:
2831 if 1:
2829 !ls
2832 !ls
2830 !!ls
2833 !!ls
2831
2834
2832 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2835 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2833
2836
2834 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2837 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2835 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2838 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2836 module in case-insensitive installation. Was causing crashes
2839 module in case-insensitive installation. Was causing crashes
2837 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2840 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2838
2841
2839 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2842 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2840 <marienz-AT-gentoo.org>, closes
2843 <marienz-AT-gentoo.org>, closes
2841 http://www.scipy.net/roundup/ipython/issue51.
2844 http://www.scipy.net/roundup/ipython/issue51.
2842
2845
2843 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2846 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2844
2847
2845 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2848 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2846 problem of excessive CPU usage under *nix and keyboard lag under
2849 problem of excessive CPU usage under *nix and keyboard lag under
2847 win32.
2850 win32.
2848
2851
2849 2006-01-10 *** Released version 0.7.0
2852 2006-01-10 *** Released version 0.7.0
2850
2853
2851 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2854 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2852
2855
2853 * IPython/Release.py (revision): tag version number to 0.7.0,
2856 * IPython/Release.py (revision): tag version number to 0.7.0,
2854 ready for release.
2857 ready for release.
2855
2858
2856 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2859 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2857 it informs the user of the name of the temp. file used. This can
2860 it informs the user of the name of the temp. file used. This can
2858 help if you decide later to reuse that same file, so you know
2861 help if you decide later to reuse that same file, so you know
2859 where to copy the info from.
2862 where to copy the info from.
2860
2863
2861 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2864 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2862
2865
2863 * setup_bdist_egg.py: little script to build an egg. Added
2866 * setup_bdist_egg.py: little script to build an egg. Added
2864 support in the release tools as well.
2867 support in the release tools as well.
2865
2868
2866 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2869 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2867
2870
2868 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2871 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2869 version selection (new -wxversion command line and ipythonrc
2872 version selection (new -wxversion command line and ipythonrc
2870 parameter). Patch contributed by Arnd Baecker
2873 parameter). Patch contributed by Arnd Baecker
2871 <arnd.baecker-AT-web.de>.
2874 <arnd.baecker-AT-web.de>.
2872
2875
2873 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2876 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2874 embedded instances, for variables defined at the interactive
2877 embedded instances, for variables defined at the interactive
2875 prompt of the embedded ipython. Reported by Arnd.
2878 prompt of the embedded ipython. Reported by Arnd.
2876
2879
2877 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2880 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2878 it can be used as a (stateful) toggle, or with a direct parameter.
2881 it can be used as a (stateful) toggle, or with a direct parameter.
2879
2882
2880 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2883 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2881 could be triggered in certain cases and cause the traceback
2884 could be triggered in certain cases and cause the traceback
2882 printer not to work.
2885 printer not to work.
2883
2886
2884 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2887 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2885
2888
2886 * IPython/iplib.py (_should_recompile): Small fix, closes
2889 * IPython/iplib.py (_should_recompile): Small fix, closes
2887 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2890 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2888
2891
2889 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2892 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2890
2893
2891 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2894 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2892 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2895 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2893 Moad for help with tracking it down.
2896 Moad for help with tracking it down.
2894
2897
2895 * IPython/iplib.py (handle_auto): fix autocall handling for
2898 * IPython/iplib.py (handle_auto): fix autocall handling for
2896 objects which support BOTH __getitem__ and __call__ (so that f [x]
2899 objects which support BOTH __getitem__ and __call__ (so that f [x]
2897 is left alone, instead of becoming f([x]) automatically).
2900 is left alone, instead of becoming f([x]) automatically).
2898
2901
2899 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2902 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2900 Ville's patch.
2903 Ville's patch.
2901
2904
2902 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2905 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2903
2906
2904 * IPython/iplib.py (handle_auto): changed autocall semantics to
2907 * IPython/iplib.py (handle_auto): changed autocall semantics to
2905 include 'smart' mode, where the autocall transformation is NOT
2908 include 'smart' mode, where the autocall transformation is NOT
2906 applied if there are no arguments on the line. This allows you to
2909 applied if there are no arguments on the line. This allows you to
2907 just type 'foo' if foo is a callable to see its internal form,
2910 just type 'foo' if foo is a callable to see its internal form,
2908 instead of having it called with no arguments (typically a
2911 instead of having it called with no arguments (typically a
2909 mistake). The old 'full' autocall still exists: for that, you
2912 mistake). The old 'full' autocall still exists: for that, you
2910 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2913 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2911
2914
2912 * IPython/completer.py (Completer.attr_matches): add
2915 * IPython/completer.py (Completer.attr_matches): add
2913 tab-completion support for Enthoughts' traits. After a report by
2916 tab-completion support for Enthoughts' traits. After a report by
2914 Arnd and a patch by Prabhu.
2917 Arnd and a patch by Prabhu.
2915
2918
2916 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2919 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2917
2920
2918 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2921 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2919 Schmolck's patch to fix inspect.getinnerframes().
2922 Schmolck's patch to fix inspect.getinnerframes().
2920
2923
2921 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2924 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2922 for embedded instances, regarding handling of namespaces and items
2925 for embedded instances, regarding handling of namespaces and items
2923 added to the __builtin__ one. Multiple embedded instances and
2926 added to the __builtin__ one. Multiple embedded instances and
2924 recursive embeddings should work better now (though I'm not sure
2927 recursive embeddings should work better now (though I'm not sure
2925 I've got all the corner cases fixed, that code is a bit of a brain
2928 I've got all the corner cases fixed, that code is a bit of a brain
2926 twister).
2929 twister).
2927
2930
2928 * IPython/Magic.py (magic_edit): added support to edit in-memory
2931 * IPython/Magic.py (magic_edit): added support to edit in-memory
2929 macros (automatically creates the necessary temp files). %edit
2932 macros (automatically creates the necessary temp files). %edit
2930 also doesn't return the file contents anymore, it's just noise.
2933 also doesn't return the file contents anymore, it's just noise.
2931
2934
2932 * IPython/completer.py (Completer.attr_matches): revert change to
2935 * IPython/completer.py (Completer.attr_matches): revert change to
2933 complete only on attributes listed in __all__. I realized it
2936 complete only on attributes listed in __all__. I realized it
2934 cripples the tab-completion system as a tool for exploring the
2937 cripples the tab-completion system as a tool for exploring the
2935 internals of unknown libraries (it renders any non-__all__
2938 internals of unknown libraries (it renders any non-__all__
2936 attribute off-limits). I got bit by this when trying to see
2939 attribute off-limits). I got bit by this when trying to see
2937 something inside the dis module.
2940 something inside the dis module.
2938
2941
2939 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2942 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2940
2943
2941 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2944 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2942 namespace for users and extension writers to hold data in. This
2945 namespace for users and extension writers to hold data in. This
2943 follows the discussion in
2946 follows the discussion in
2944 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2947 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2945
2948
2946 * IPython/completer.py (IPCompleter.complete): small patch to help
2949 * IPython/completer.py (IPCompleter.complete): small patch to help
2947 tab-completion under Emacs, after a suggestion by John Barnard
2950 tab-completion under Emacs, after a suggestion by John Barnard
2948 <barnarj-AT-ccf.org>.
2951 <barnarj-AT-ccf.org>.
2949
2952
2950 * IPython/Magic.py (Magic.extract_input_slices): added support for
2953 * IPython/Magic.py (Magic.extract_input_slices): added support for
2951 the slice notation in magics to use N-M to represent numbers N...M
2954 the slice notation in magics to use N-M to represent numbers N...M
2952 (closed endpoints). This is used by %macro and %save.
2955 (closed endpoints). This is used by %macro and %save.
2953
2956
2954 * IPython/completer.py (Completer.attr_matches): for modules which
2957 * IPython/completer.py (Completer.attr_matches): for modules which
2955 define __all__, complete only on those. After a patch by Jeffrey
2958 define __all__, complete only on those. After a patch by Jeffrey
2956 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2959 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2957 speed up this routine.
2960 speed up this routine.
2958
2961
2959 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2962 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2960 don't know if this is the end of it, but the behavior now is
2963 don't know if this is the end of it, but the behavior now is
2961 certainly much more correct. Note that coupled with macros,
2964 certainly much more correct. Note that coupled with macros,
2962 slightly surprising (at first) behavior may occur: a macro will in
2965 slightly surprising (at first) behavior may occur: a macro will in
2963 general expand to multiple lines of input, so upon exiting, the
2966 general expand to multiple lines of input, so upon exiting, the
2964 in/out counters will both be bumped by the corresponding amount
2967 in/out counters will both be bumped by the corresponding amount
2965 (as if the macro's contents had been typed interactively). Typing
2968 (as if the macro's contents had been typed interactively). Typing
2966 %hist will reveal the intermediate (silently processed) lines.
2969 %hist will reveal the intermediate (silently processed) lines.
2967
2970
2968 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2971 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2969 pickle to fail (%run was overwriting __main__ and not restoring
2972 pickle to fail (%run was overwriting __main__ and not restoring
2970 it, but pickle relies on __main__ to operate).
2973 it, but pickle relies on __main__ to operate).
2971
2974
2972 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2975 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2973 using properties, but forgot to make the main InteractiveShell
2976 using properties, but forgot to make the main InteractiveShell
2974 class a new-style class. Properties fail silently, and
2977 class a new-style class. Properties fail silently, and
2975 mysteriously, with old-style class (getters work, but
2978 mysteriously, with old-style class (getters work, but
2976 setters don't do anything).
2979 setters don't do anything).
2977
2980
2978 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2981 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2979
2982
2980 * IPython/Magic.py (magic_history): fix history reporting bug (I
2983 * IPython/Magic.py (magic_history): fix history reporting bug (I
2981 know some nasties are still there, I just can't seem to find a
2984 know some nasties are still there, I just can't seem to find a
2982 reproducible test case to track them down; the input history is
2985 reproducible test case to track them down; the input history is
2983 falling out of sync...)
2986 falling out of sync...)
2984
2987
2985 * IPython/iplib.py (handle_shell_escape): fix bug where both
2988 * IPython/iplib.py (handle_shell_escape): fix bug where both
2986 aliases and system accesses where broken for indented code (such
2989 aliases and system accesses where broken for indented code (such
2987 as loops).
2990 as loops).
2988
2991
2989 * IPython/genutils.py (shell): fix small but critical bug for
2992 * IPython/genutils.py (shell): fix small but critical bug for
2990 win32 system access.
2993 win32 system access.
2991
2994
2992 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2995 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2993
2996
2994 * IPython/iplib.py (showtraceback): remove use of the
2997 * IPython/iplib.py (showtraceback): remove use of the
2995 sys.last_{type/value/traceback} structures, which are non
2998 sys.last_{type/value/traceback} structures, which are non
2996 thread-safe.
2999 thread-safe.
2997 (_prefilter): change control flow to ensure that we NEVER
3000 (_prefilter): change control flow to ensure that we NEVER
2998 introspect objects when autocall is off. This will guarantee that
3001 introspect objects when autocall is off. This will guarantee that
2999 having an input line of the form 'x.y', where access to attribute
3002 having an input line of the form 'x.y', where access to attribute
3000 'y' has side effects, doesn't trigger the side effect TWICE. It
3003 'y' has side effects, doesn't trigger the side effect TWICE. It
3001 is important to note that, with autocall on, these side effects
3004 is important to note that, with autocall on, these side effects
3002 can still happen.
3005 can still happen.
3003 (ipsystem): new builtin, to complete the ip{magic/alias/system}
3006 (ipsystem): new builtin, to complete the ip{magic/alias/system}
3004 trio. IPython offers these three kinds of special calls which are
3007 trio. IPython offers these three kinds of special calls which are
3005 not python code, and it's a good thing to have their call method
3008 not python code, and it's a good thing to have their call method
3006 be accessible as pure python functions (not just special syntax at
3009 be accessible as pure python functions (not just special syntax at
3007 the command line). It gives us a better internal implementation
3010 the command line). It gives us a better internal implementation
3008 structure, as well as exposing these for user scripting more
3011 structure, as well as exposing these for user scripting more
3009 cleanly.
3012 cleanly.
3010
3013
3011 * IPython/macro.py (Macro.__init__): moved macros to a standalone
3014 * IPython/macro.py (Macro.__init__): moved macros to a standalone
3012 file. Now that they'll be more likely to be used with the
3015 file. Now that they'll be more likely to be used with the
3013 persistance system (%store), I want to make sure their module path
3016 persistance system (%store), I want to make sure their module path
3014 doesn't change in the future, so that we don't break things for
3017 doesn't change in the future, so that we don't break things for
3015 users' persisted data.
3018 users' persisted data.
3016
3019
3017 * IPython/iplib.py (autoindent_update): move indentation
3020 * IPython/iplib.py (autoindent_update): move indentation
3018 management into the _text_ processing loop, not the keyboard
3021 management into the _text_ processing loop, not the keyboard
3019 interactive one. This is necessary to correctly process non-typed
3022 interactive one. This is necessary to correctly process non-typed
3020 multiline input (such as macros).
3023 multiline input (such as macros).
3021
3024
3022 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
3025 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
3023 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
3026 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
3024 which was producing problems in the resulting manual.
3027 which was producing problems in the resulting manual.
3025 (magic_whos): improve reporting of instances (show their class,
3028 (magic_whos): improve reporting of instances (show their class,
3026 instead of simply printing 'instance' which isn't terribly
3029 instead of simply printing 'instance' which isn't terribly
3027 informative).
3030 informative).
3028
3031
3029 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3032 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3030 (minor mods) to support network shares under win32.
3033 (minor mods) to support network shares under win32.
3031
3034
3032 * IPython/winconsole.py (get_console_size): add new winconsole
3035 * IPython/winconsole.py (get_console_size): add new winconsole
3033 module and fixes to page_dumb() to improve its behavior under
3036 module and fixes to page_dumb() to improve its behavior under
3034 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3037 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3035
3038
3036 * IPython/Magic.py (Macro): simplified Macro class to just
3039 * IPython/Magic.py (Macro): simplified Macro class to just
3037 subclass list. We've had only 2.2 compatibility for a very long
3040 subclass list. We've had only 2.2 compatibility for a very long
3038 time, yet I was still avoiding subclassing the builtin types. No
3041 time, yet I was still avoiding subclassing the builtin types. No
3039 more (I'm also starting to use properties, though I won't shift to
3042 more (I'm also starting to use properties, though I won't shift to
3040 2.3-specific features quite yet).
3043 2.3-specific features quite yet).
3041 (magic_store): added Ville's patch for lightweight variable
3044 (magic_store): added Ville's patch for lightweight variable
3042 persistence, after a request on the user list by Matt Wilkie
3045 persistence, after a request on the user list by Matt Wilkie
3043 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3046 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3044 details.
3047 details.
3045
3048
3046 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3049 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3047 changed the default logfile name from 'ipython.log' to
3050 changed the default logfile name from 'ipython.log' to
3048 'ipython_log.py'. These logs are real python files, and now that
3051 'ipython_log.py'. These logs are real python files, and now that
3049 we have much better multiline support, people are more likely to
3052 we have much better multiline support, people are more likely to
3050 want to use them as such. Might as well name them correctly.
3053 want to use them as such. Might as well name them correctly.
3051
3054
3052 * IPython/Magic.py: substantial cleanup. While we can't stop
3055 * IPython/Magic.py: substantial cleanup. While we can't stop
3053 using magics as mixins, due to the existing customizations 'out
3056 using magics as mixins, due to the existing customizations 'out
3054 there' which rely on the mixin naming conventions, at least I
3057 there' which rely on the mixin naming conventions, at least I
3055 cleaned out all cross-class name usage. So once we are OK with
3058 cleaned out all cross-class name usage. So once we are OK with
3056 breaking compatibility, the two systems can be separated.
3059 breaking compatibility, the two systems can be separated.
3057
3060
3058 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3061 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3059 anymore, and the class is a fair bit less hideous as well. New
3062 anymore, and the class is a fair bit less hideous as well. New
3060 features were also introduced: timestamping of input, and logging
3063 features were also introduced: timestamping of input, and logging
3061 of output results. These are user-visible with the -t and -o
3064 of output results. These are user-visible with the -t and -o
3062 options to %logstart. Closes
3065 options to %logstart. Closes
3063 http://www.scipy.net/roundup/ipython/issue11 and a request by
3066 http://www.scipy.net/roundup/ipython/issue11 and a request by
3064 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3067 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3065
3068
3066 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3069 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3067
3070
3068 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3071 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3069 better handle backslashes in paths. See the thread 'More Windows
3072 better handle backslashes in paths. See the thread 'More Windows
3070 questions part 2 - \/ characters revisited' on the iypthon user
3073 questions part 2 - \/ characters revisited' on the iypthon user
3071 list:
3074 list:
3072 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3075 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3073
3076
3074 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3077 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3075
3078
3076 (InteractiveShell.__init__): change threaded shells to not use the
3079 (InteractiveShell.__init__): change threaded shells to not use the
3077 ipython crash handler. This was causing more problems than not,
3080 ipython crash handler. This was causing more problems than not,
3078 as exceptions in the main thread (GUI code, typically) would
3081 as exceptions in the main thread (GUI code, typically) would
3079 always show up as a 'crash', when they really weren't.
3082 always show up as a 'crash', when they really weren't.
3080
3083
3081 The colors and exception mode commands (%colors/%xmode) have been
3084 The colors and exception mode commands (%colors/%xmode) have been
3082 synchronized to also take this into account, so users can get
3085 synchronized to also take this into account, so users can get
3083 verbose exceptions for their threaded code as well. I also added
3086 verbose exceptions for their threaded code as well. I also added
3084 support for activating pdb inside this exception handler as well,
3087 support for activating pdb inside this exception handler as well,
3085 so now GUI authors can use IPython's enhanced pdb at runtime.
3088 so now GUI authors can use IPython's enhanced pdb at runtime.
3086
3089
3087 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3090 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3088 true by default, and add it to the shipped ipythonrc file. Since
3091 true by default, and add it to the shipped ipythonrc file. Since
3089 this asks the user before proceeding, I think it's OK to make it
3092 this asks the user before proceeding, I think it's OK to make it
3090 true by default.
3093 true by default.
3091
3094
3092 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3095 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3093 of the previous special-casing of input in the eval loop. I think
3096 of the previous special-casing of input in the eval loop. I think
3094 this is cleaner, as they really are commands and shouldn't have
3097 this is cleaner, as they really are commands and shouldn't have
3095 a special role in the middle of the core code.
3098 a special role in the middle of the core code.
3096
3099
3097 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3100 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3098
3101
3099 * IPython/iplib.py (edit_syntax_error): added support for
3102 * IPython/iplib.py (edit_syntax_error): added support for
3100 automatically reopening the editor if the file had a syntax error
3103 automatically reopening the editor if the file had a syntax error
3101 in it. Thanks to scottt who provided the patch at:
3104 in it. Thanks to scottt who provided the patch at:
3102 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3105 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3103 version committed).
3106 version committed).
3104
3107
3105 * IPython/iplib.py (handle_normal): add suport for multi-line
3108 * IPython/iplib.py (handle_normal): add suport for multi-line
3106 input with emtpy lines. This fixes
3109 input with emtpy lines. This fixes
3107 http://www.scipy.net/roundup/ipython/issue43 and a similar
3110 http://www.scipy.net/roundup/ipython/issue43 and a similar
3108 discussion on the user list.
3111 discussion on the user list.
3109
3112
3110 WARNING: a behavior change is necessarily introduced to support
3113 WARNING: a behavior change is necessarily introduced to support
3111 blank lines: now a single blank line with whitespace does NOT
3114 blank lines: now a single blank line with whitespace does NOT
3112 break the input loop, which means that when autoindent is on, by
3115 break the input loop, which means that when autoindent is on, by
3113 default hitting return on the next (indented) line does NOT exit.
3116 default hitting return on the next (indented) line does NOT exit.
3114
3117
3115 Instead, to exit a multiline input you can either have:
3118 Instead, to exit a multiline input you can either have:
3116
3119
3117 - TWO whitespace lines (just hit return again), or
3120 - TWO whitespace lines (just hit return again), or
3118 - a single whitespace line of a different length than provided
3121 - a single whitespace line of a different length than provided
3119 by the autoindent (add or remove a space).
3122 by the autoindent (add or remove a space).
3120
3123
3121 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3124 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3122 module to better organize all readline-related functionality.
3125 module to better organize all readline-related functionality.
3123 I've deleted FlexCompleter and put all completion clases here.
3126 I've deleted FlexCompleter and put all completion clases here.
3124
3127
3125 * IPython/iplib.py (raw_input): improve indentation management.
3128 * IPython/iplib.py (raw_input): improve indentation management.
3126 It is now possible to paste indented code with autoindent on, and
3129 It is now possible to paste indented code with autoindent on, and
3127 the code is interpreted correctly (though it still looks bad on
3130 the code is interpreted correctly (though it still looks bad on
3128 screen, due to the line-oriented nature of ipython).
3131 screen, due to the line-oriented nature of ipython).
3129 (MagicCompleter.complete): change behavior so that a TAB key on an
3132 (MagicCompleter.complete): change behavior so that a TAB key on an
3130 otherwise empty line actually inserts a tab, instead of completing
3133 otherwise empty line actually inserts a tab, instead of completing
3131 on the entire global namespace. This makes it easier to use the
3134 on the entire global namespace. This makes it easier to use the
3132 TAB key for indentation. After a request by Hans Meine
3135 TAB key for indentation. After a request by Hans Meine
3133 <hans_meine-AT-gmx.net>
3136 <hans_meine-AT-gmx.net>
3134 (_prefilter): add support so that typing plain 'exit' or 'quit'
3137 (_prefilter): add support so that typing plain 'exit' or 'quit'
3135 does a sensible thing. Originally I tried to deviate as little as
3138 does a sensible thing. Originally I tried to deviate as little as
3136 possible from the default python behavior, but even that one may
3139 possible from the default python behavior, but even that one may
3137 change in this direction (thread on python-dev to that effect).
3140 change in this direction (thread on python-dev to that effect).
3138 Regardless, ipython should do the right thing even if CPython's
3141 Regardless, ipython should do the right thing even if CPython's
3139 '>>>' prompt doesn't.
3142 '>>>' prompt doesn't.
3140 (InteractiveShell): removed subclassing code.InteractiveConsole
3143 (InteractiveShell): removed subclassing code.InteractiveConsole
3141 class. By now we'd overridden just about all of its methods: I've
3144 class. By now we'd overridden just about all of its methods: I've
3142 copied the remaining two over, and now ipython is a standalone
3145 copied the remaining two over, and now ipython is a standalone
3143 class. This will provide a clearer picture for the chainsaw
3146 class. This will provide a clearer picture for the chainsaw
3144 branch refactoring.
3147 branch refactoring.
3145
3148
3146 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3149 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3147
3150
3148 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3151 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3149 failures for objects which break when dir() is called on them.
3152 failures for objects which break when dir() is called on them.
3150
3153
3151 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3154 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3152 distinct local and global namespaces in the completer API. This
3155 distinct local and global namespaces in the completer API. This
3153 change allows us to properly handle completion with distinct
3156 change allows us to properly handle completion with distinct
3154 scopes, including in embedded instances (this had never really
3157 scopes, including in embedded instances (this had never really
3155 worked correctly).
3158 worked correctly).
3156
3159
3157 Note: this introduces a change in the constructor for
3160 Note: this introduces a change in the constructor for
3158 MagicCompleter, as a new global_namespace parameter is now the
3161 MagicCompleter, as a new global_namespace parameter is now the
3159 second argument (the others were bumped one position).
3162 second argument (the others were bumped one position).
3160
3163
3161 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3164 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3162
3165
3163 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3166 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3164 embedded instances (which can be done now thanks to Vivian's
3167 embedded instances (which can be done now thanks to Vivian's
3165 frame-handling fixes for pdb).
3168 frame-handling fixes for pdb).
3166 (InteractiveShell.__init__): Fix namespace handling problem in
3169 (InteractiveShell.__init__): Fix namespace handling problem in
3167 embedded instances. We were overwriting __main__ unconditionally,
3170 embedded instances. We were overwriting __main__ unconditionally,
3168 and this should only be done for 'full' (non-embedded) IPython;
3171 and this should only be done for 'full' (non-embedded) IPython;
3169 embedded instances must respect the caller's __main__. Thanks to
3172 embedded instances must respect the caller's __main__. Thanks to
3170 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3173 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3171
3174
3172 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3175 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3173
3176
3174 * setup.py: added download_url to setup(). This registers the
3177 * setup.py: added download_url to setup(). This registers the
3175 download address at PyPI, which is not only useful to humans
3178 download address at PyPI, which is not only useful to humans
3176 browsing the site, but is also picked up by setuptools (the Eggs
3179 browsing the site, but is also picked up by setuptools (the Eggs
3177 machinery). Thanks to Ville and R. Kern for the info/discussion
3180 machinery). Thanks to Ville and R. Kern for the info/discussion
3178 on this.
3181 on this.
3179
3182
3180 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3183 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3181
3184
3182 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3185 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3183 This brings a lot of nice functionality to the pdb mode, which now
3186 This brings a lot of nice functionality to the pdb mode, which now
3184 has tab-completion, syntax highlighting, and better stack handling
3187 has tab-completion, syntax highlighting, and better stack handling
3185 than before. Many thanks to Vivian De Smedt
3188 than before. Many thanks to Vivian De Smedt
3186 <vivian-AT-vdesmedt.com> for the original patches.
3189 <vivian-AT-vdesmedt.com> for the original patches.
3187
3190
3188 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3191 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3189
3192
3190 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3193 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3191 sequence to consistently accept the banner argument. The
3194 sequence to consistently accept the banner argument. The
3192 inconsistency was tripping SAGE, thanks to Gary Zablackis
3195 inconsistency was tripping SAGE, thanks to Gary Zablackis
3193 <gzabl-AT-yahoo.com> for the report.
3196 <gzabl-AT-yahoo.com> for the report.
3194
3197
3195 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3198 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3196
3199
3197 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3200 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3198 Fix bug where a naked 'alias' call in the ipythonrc file would
3201 Fix bug where a naked 'alias' call in the ipythonrc file would
3199 cause a crash. Bug reported by Jorgen Stenarson.
3202 cause a crash. Bug reported by Jorgen Stenarson.
3200
3203
3201 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3204 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3202
3205
3203 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3206 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3204 startup time.
3207 startup time.
3205
3208
3206 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3209 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3207 instances had introduced a bug with globals in normal code. Now
3210 instances had introduced a bug with globals in normal code. Now
3208 it's working in all cases.
3211 it's working in all cases.
3209
3212
3210 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3213 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3211 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3214 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3212 has been introduced to set the default case sensitivity of the
3215 has been introduced to set the default case sensitivity of the
3213 searches. Users can still select either mode at runtime on a
3216 searches. Users can still select either mode at runtime on a
3214 per-search basis.
3217 per-search basis.
3215
3218
3216 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3219 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3217
3220
3218 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3221 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3219 attributes in wildcard searches for subclasses. Modified version
3222 attributes in wildcard searches for subclasses. Modified version
3220 of a patch by Jorgen.
3223 of a patch by Jorgen.
3221
3224
3222 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3225 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3223
3226
3224 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3227 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3225 embedded instances. I added a user_global_ns attribute to the
3228 embedded instances. I added a user_global_ns attribute to the
3226 InteractiveShell class to handle this.
3229 InteractiveShell class to handle this.
3227
3230
3228 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3231 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3229
3232
3230 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3233 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3231 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3234 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3232 (reported under win32, but may happen also in other platforms).
3235 (reported under win32, but may happen also in other platforms).
3233 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3236 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3234
3237
3235 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3238 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3236
3239
3237 * IPython/Magic.py (magic_psearch): new support for wildcard
3240 * IPython/Magic.py (magic_psearch): new support for wildcard
3238 patterns. Now, typing ?a*b will list all names which begin with a
3241 patterns. Now, typing ?a*b will list all names which begin with a
3239 and end in b, for example. The %psearch magic has full
3242 and end in b, for example. The %psearch magic has full
3240 docstrings. Many thanks to JΓΆrgen Stenarson
3243 docstrings. Many thanks to JΓΆrgen Stenarson
3241 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3244 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3242 implementing this functionality.
3245 implementing this functionality.
3243
3246
3244 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3247 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3245
3248
3246 * Manual: fixed long-standing annoyance of double-dashes (as in
3249 * Manual: fixed long-standing annoyance of double-dashes (as in
3247 --prefix=~, for example) being stripped in the HTML version. This
3250 --prefix=~, for example) being stripped in the HTML version. This
3248 is a latex2html bug, but a workaround was provided. Many thanks
3251 is a latex2html bug, but a workaround was provided. Many thanks
3249 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3252 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3250 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3253 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3251 rolling. This seemingly small issue had tripped a number of users
3254 rolling. This seemingly small issue had tripped a number of users
3252 when first installing, so I'm glad to see it gone.
3255 when first installing, so I'm glad to see it gone.
3253
3256
3254 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3257 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3255
3258
3256 * IPython/Extensions/numeric_formats.py: fix missing import,
3259 * IPython/Extensions/numeric_formats.py: fix missing import,
3257 reported by Stephen Walton.
3260 reported by Stephen Walton.
3258
3261
3259 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3262 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3260
3263
3261 * IPython/demo.py: finish demo module, fully documented now.
3264 * IPython/demo.py: finish demo module, fully documented now.
3262
3265
3263 * IPython/genutils.py (file_read): simple little utility to read a
3266 * IPython/genutils.py (file_read): simple little utility to read a
3264 file and ensure it's closed afterwards.
3267 file and ensure it's closed afterwards.
3265
3268
3266 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3269 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3267
3270
3268 * IPython/demo.py (Demo.__init__): added support for individually
3271 * IPython/demo.py (Demo.__init__): added support for individually
3269 tagging blocks for automatic execution.
3272 tagging blocks for automatic execution.
3270
3273
3271 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3274 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3272 syntax-highlighted python sources, requested by John.
3275 syntax-highlighted python sources, requested by John.
3273
3276
3274 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3277 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3275
3278
3276 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3279 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3277 finishing.
3280 finishing.
3278
3281
3279 * IPython/genutils.py (shlex_split): moved from Magic to here,
3282 * IPython/genutils.py (shlex_split): moved from Magic to here,
3280 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3283 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3281
3284
3282 * IPython/demo.py (Demo.__init__): added support for silent
3285 * IPython/demo.py (Demo.__init__): added support for silent
3283 blocks, improved marks as regexps, docstrings written.
3286 blocks, improved marks as regexps, docstrings written.
3284 (Demo.__init__): better docstring, added support for sys.argv.
3287 (Demo.__init__): better docstring, added support for sys.argv.
3285
3288
3286 * IPython/genutils.py (marquee): little utility used by the demo
3289 * IPython/genutils.py (marquee): little utility used by the demo
3287 code, handy in general.
3290 code, handy in general.
3288
3291
3289 * IPython/demo.py (Demo.__init__): new class for interactive
3292 * IPython/demo.py (Demo.__init__): new class for interactive
3290 demos. Not documented yet, I just wrote it in a hurry for
3293 demos. Not documented yet, I just wrote it in a hurry for
3291 scipy'05. Will docstring later.
3294 scipy'05. Will docstring later.
3292
3295
3293 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3296 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3294
3297
3295 * IPython/Shell.py (sigint_handler): Drastic simplification which
3298 * IPython/Shell.py (sigint_handler): Drastic simplification which
3296 also seems to make Ctrl-C work correctly across threads! This is
3299 also seems to make Ctrl-C work correctly across threads! This is
3297 so simple, that I can't beleive I'd missed it before. Needs more
3300 so simple, that I can't beleive I'd missed it before. Needs more
3298 testing, though.
3301 testing, though.
3299 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3302 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3300 like this before...
3303 like this before...
3301
3304
3302 * IPython/genutils.py (get_home_dir): add protection against
3305 * IPython/genutils.py (get_home_dir): add protection against
3303 non-dirs in win32 registry.
3306 non-dirs in win32 registry.
3304
3307
3305 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3308 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3306 bug where dict was mutated while iterating (pysh crash).
3309 bug where dict was mutated while iterating (pysh crash).
3307
3310
3308 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3311 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3309
3312
3310 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3313 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3311 spurious newlines added by this routine. After a report by
3314 spurious newlines added by this routine. After a report by
3312 F. Mantegazza.
3315 F. Mantegazza.
3313
3316
3314 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3317 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3315
3318
3316 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3319 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3317 calls. These were a leftover from the GTK 1.x days, and can cause
3320 calls. These were a leftover from the GTK 1.x days, and can cause
3318 problems in certain cases (after a report by John Hunter).
3321 problems in certain cases (after a report by John Hunter).
3319
3322
3320 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3323 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3321 os.getcwd() fails at init time. Thanks to patch from David Remahl
3324 os.getcwd() fails at init time. Thanks to patch from David Remahl
3322 <chmod007-AT-mac.com>.
3325 <chmod007-AT-mac.com>.
3323 (InteractiveShell.__init__): prevent certain special magics from
3326 (InteractiveShell.__init__): prevent certain special magics from
3324 being shadowed by aliases. Closes
3327 being shadowed by aliases. Closes
3325 http://www.scipy.net/roundup/ipython/issue41.
3328 http://www.scipy.net/roundup/ipython/issue41.
3326
3329
3327 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3330 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3328
3331
3329 * IPython/iplib.py (InteractiveShell.complete): Added new
3332 * IPython/iplib.py (InteractiveShell.complete): Added new
3330 top-level completion method to expose the completion mechanism
3333 top-level completion method to expose the completion mechanism
3331 beyond readline-based environments.
3334 beyond readline-based environments.
3332
3335
3333 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3336 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3334
3337
3335 * tools/ipsvnc (svnversion): fix svnversion capture.
3338 * tools/ipsvnc (svnversion): fix svnversion capture.
3336
3339
3337 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3340 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3338 attribute to self, which was missing. Before, it was set by a
3341 attribute to self, which was missing. Before, it was set by a
3339 routine which in certain cases wasn't being called, so the
3342 routine which in certain cases wasn't being called, so the
3340 instance could end up missing the attribute. This caused a crash.
3343 instance could end up missing the attribute. This caused a crash.
3341 Closes http://www.scipy.net/roundup/ipython/issue40.
3344 Closes http://www.scipy.net/roundup/ipython/issue40.
3342
3345
3343 2005-08-16 Fernando Perez <fperez@colorado.edu>
3346 2005-08-16 Fernando Perez <fperez@colorado.edu>
3344
3347
3345 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3348 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3346 contains non-string attribute. Closes
3349 contains non-string attribute. Closes
3347 http://www.scipy.net/roundup/ipython/issue38.
3350 http://www.scipy.net/roundup/ipython/issue38.
3348
3351
3349 2005-08-14 Fernando Perez <fperez@colorado.edu>
3352 2005-08-14 Fernando Perez <fperez@colorado.edu>
3350
3353
3351 * tools/ipsvnc: Minor improvements, to add changeset info.
3354 * tools/ipsvnc: Minor improvements, to add changeset info.
3352
3355
3353 2005-08-12 Fernando Perez <fperez@colorado.edu>
3356 2005-08-12 Fernando Perez <fperez@colorado.edu>
3354
3357
3355 * IPython/iplib.py (runsource): remove self.code_to_run_src
3358 * IPython/iplib.py (runsource): remove self.code_to_run_src
3356 attribute. I realized this is nothing more than
3359 attribute. I realized this is nothing more than
3357 '\n'.join(self.buffer), and having the same data in two different
3360 '\n'.join(self.buffer), and having the same data in two different
3358 places is just asking for synchronization bugs. This may impact
3361 places is just asking for synchronization bugs. This may impact
3359 people who have custom exception handlers, so I need to warn
3362 people who have custom exception handlers, so I need to warn
3360 ipython-dev about it (F. Mantegazza may use them).
3363 ipython-dev about it (F. Mantegazza may use them).
3361
3364
3362 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3365 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3363
3366
3364 * IPython/genutils.py: fix 2.2 compatibility (generators)
3367 * IPython/genutils.py: fix 2.2 compatibility (generators)
3365
3368
3366 2005-07-18 Fernando Perez <fperez@colorado.edu>
3369 2005-07-18 Fernando Perez <fperez@colorado.edu>
3367
3370
3368 * IPython/genutils.py (get_home_dir): fix to help users with
3371 * IPython/genutils.py (get_home_dir): fix to help users with
3369 invalid $HOME under win32.
3372 invalid $HOME under win32.
3370
3373
3371 2005-07-17 Fernando Perez <fperez@colorado.edu>
3374 2005-07-17 Fernando Perez <fperez@colorado.edu>
3372
3375
3373 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3376 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3374 some old hacks and clean up a bit other routines; code should be
3377 some old hacks and clean up a bit other routines; code should be
3375 simpler and a bit faster.
3378 simpler and a bit faster.
3376
3379
3377 * IPython/iplib.py (interact): removed some last-resort attempts
3380 * IPython/iplib.py (interact): removed some last-resort attempts
3378 to survive broken stdout/stderr. That code was only making it
3381 to survive broken stdout/stderr. That code was only making it
3379 harder to abstract out the i/o (necessary for gui integration),
3382 harder to abstract out the i/o (necessary for gui integration),
3380 and the crashes it could prevent were extremely rare in practice
3383 and the crashes it could prevent were extremely rare in practice
3381 (besides being fully user-induced in a pretty violent manner).
3384 (besides being fully user-induced in a pretty violent manner).
3382
3385
3383 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3386 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3384 Nothing major yet, but the code is simpler to read; this should
3387 Nothing major yet, but the code is simpler to read; this should
3385 make it easier to do more serious modifications in the future.
3388 make it easier to do more serious modifications in the future.
3386
3389
3387 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3390 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3388 which broke in .15 (thanks to a report by Ville).
3391 which broke in .15 (thanks to a report by Ville).
3389
3392
3390 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3393 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3391 be quite correct, I know next to nothing about unicode). This
3394 be quite correct, I know next to nothing about unicode). This
3392 will allow unicode strings to be used in prompts, amongst other
3395 will allow unicode strings to be used in prompts, amongst other
3393 cases. It also will prevent ipython from crashing when unicode
3396 cases. It also will prevent ipython from crashing when unicode
3394 shows up unexpectedly in many places. If ascii encoding fails, we
3397 shows up unexpectedly in many places. If ascii encoding fails, we
3395 assume utf_8. Currently the encoding is not a user-visible
3398 assume utf_8. Currently the encoding is not a user-visible
3396 setting, though it could be made so if there is demand for it.
3399 setting, though it could be made so if there is demand for it.
3397
3400
3398 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3401 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3399
3402
3400 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3403 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3401
3404
3402 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3405 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3403
3406
3404 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3407 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3405 code can work transparently for 2.2/2.3.
3408 code can work transparently for 2.2/2.3.
3406
3409
3407 2005-07-16 Fernando Perez <fperez@colorado.edu>
3410 2005-07-16 Fernando Perez <fperez@colorado.edu>
3408
3411
3409 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3412 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3410 out of the color scheme table used for coloring exception
3413 out of the color scheme table used for coloring exception
3411 tracebacks. This allows user code to add new schemes at runtime.
3414 tracebacks. This allows user code to add new schemes at runtime.
3412 This is a minimally modified version of the patch at
3415 This is a minimally modified version of the patch at
3413 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3416 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3414 for the contribution.
3417 for the contribution.
3415
3418
3416 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3419 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3417 slightly modified version of the patch in
3420 slightly modified version of the patch in
3418 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3421 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3419 to remove the previous try/except solution (which was costlier).
3422 to remove the previous try/except solution (which was costlier).
3420 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3423 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3421
3424
3422 2005-06-08 Fernando Perez <fperez@colorado.edu>
3425 2005-06-08 Fernando Perez <fperez@colorado.edu>
3423
3426
3424 * IPython/iplib.py (write/write_err): Add methods to abstract all
3427 * IPython/iplib.py (write/write_err): Add methods to abstract all
3425 I/O a bit more.
3428 I/O a bit more.
3426
3429
3427 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3430 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3428 warning, reported by Aric Hagberg, fix by JD Hunter.
3431 warning, reported by Aric Hagberg, fix by JD Hunter.
3429
3432
3430 2005-06-02 *** Released version 0.6.15
3433 2005-06-02 *** Released version 0.6.15
3431
3434
3432 2005-06-01 Fernando Perez <fperez@colorado.edu>
3435 2005-06-01 Fernando Perez <fperez@colorado.edu>
3433
3436
3434 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3437 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3435 tab-completion of filenames within open-quoted strings. Note that
3438 tab-completion of filenames within open-quoted strings. Note that
3436 this requires that in ~/.ipython/ipythonrc, users change the
3439 this requires that in ~/.ipython/ipythonrc, users change the
3437 readline delimiters configuration to read:
3440 readline delimiters configuration to read:
3438
3441
3439 readline_remove_delims -/~
3442 readline_remove_delims -/~
3440
3443
3441
3444
3442 2005-05-31 *** Released version 0.6.14
3445 2005-05-31 *** Released version 0.6.14
3443
3446
3444 2005-05-29 Fernando Perez <fperez@colorado.edu>
3447 2005-05-29 Fernando Perez <fperez@colorado.edu>
3445
3448
3446 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3449 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3447 with files not on the filesystem. Reported by Eliyahu Sandler
3450 with files not on the filesystem. Reported by Eliyahu Sandler
3448 <eli@gondolin.net>
3451 <eli@gondolin.net>
3449
3452
3450 2005-05-22 Fernando Perez <fperez@colorado.edu>
3453 2005-05-22 Fernando Perez <fperez@colorado.edu>
3451
3454
3452 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3455 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3453 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3456 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3454
3457
3455 2005-05-19 Fernando Perez <fperez@colorado.edu>
3458 2005-05-19 Fernando Perez <fperez@colorado.edu>
3456
3459
3457 * IPython/iplib.py (safe_execfile): close a file which could be
3460 * IPython/iplib.py (safe_execfile): close a file which could be
3458 left open (causing problems in win32, which locks open files).
3461 left open (causing problems in win32, which locks open files).
3459 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3462 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3460
3463
3461 2005-05-18 Fernando Perez <fperez@colorado.edu>
3464 2005-05-18 Fernando Perez <fperez@colorado.edu>
3462
3465
3463 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3466 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3464 keyword arguments correctly to safe_execfile().
3467 keyword arguments correctly to safe_execfile().
3465
3468
3466 2005-05-13 Fernando Perez <fperez@colorado.edu>
3469 2005-05-13 Fernando Perez <fperez@colorado.edu>
3467
3470
3468 * ipython.1: Added info about Qt to manpage, and threads warning
3471 * ipython.1: Added info about Qt to manpage, and threads warning
3469 to usage page (invoked with --help).
3472 to usage page (invoked with --help).
3470
3473
3471 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3474 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3472 new matcher (it goes at the end of the priority list) to do
3475 new matcher (it goes at the end of the priority list) to do
3473 tab-completion on named function arguments. Submitted by George
3476 tab-completion on named function arguments. Submitted by George
3474 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3477 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3475 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3478 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3476 for more details.
3479 for more details.
3477
3480
3478 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3481 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3479 SystemExit exceptions in the script being run. Thanks to a report
3482 SystemExit exceptions in the script being run. Thanks to a report
3480 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3483 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3481 producing very annoying behavior when running unit tests.
3484 producing very annoying behavior when running unit tests.
3482
3485
3483 2005-05-12 Fernando Perez <fperez@colorado.edu>
3486 2005-05-12 Fernando Perez <fperez@colorado.edu>
3484
3487
3485 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3488 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3486 which I'd broken (again) due to a changed regexp. In the process,
3489 which I'd broken (again) due to a changed regexp. In the process,
3487 added ';' as an escape to auto-quote the whole line without
3490 added ';' as an escape to auto-quote the whole line without
3488 splitting its arguments. Thanks to a report by Jerry McRae
3491 splitting its arguments. Thanks to a report by Jerry McRae
3489 <qrs0xyc02-AT-sneakemail.com>.
3492 <qrs0xyc02-AT-sneakemail.com>.
3490
3493
3491 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3494 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3492 possible crashes caused by a TokenError. Reported by Ed Schofield
3495 possible crashes caused by a TokenError. Reported by Ed Schofield
3493 <schofield-AT-ftw.at>.
3496 <schofield-AT-ftw.at>.
3494
3497
3495 2005-05-06 Fernando Perez <fperez@colorado.edu>
3498 2005-05-06 Fernando Perez <fperez@colorado.edu>
3496
3499
3497 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3500 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3498
3501
3499 2005-04-29 Fernando Perez <fperez@colorado.edu>
3502 2005-04-29 Fernando Perez <fperez@colorado.edu>
3500
3503
3501 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3504 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3502 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3505 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3503 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3506 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3504 which provides support for Qt interactive usage (similar to the
3507 which provides support for Qt interactive usage (similar to the
3505 existing one for WX and GTK). This had been often requested.
3508 existing one for WX and GTK). This had been often requested.
3506
3509
3507 2005-04-14 *** Released version 0.6.13
3510 2005-04-14 *** Released version 0.6.13
3508
3511
3509 2005-04-08 Fernando Perez <fperez@colorado.edu>
3512 2005-04-08 Fernando Perez <fperez@colorado.edu>
3510
3513
3511 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3514 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3512 from _ofind, which gets called on almost every input line. Now,
3515 from _ofind, which gets called on almost every input line. Now,
3513 we only try to get docstrings if they are actually going to be
3516 we only try to get docstrings if they are actually going to be
3514 used (the overhead of fetching unnecessary docstrings can be
3517 used (the overhead of fetching unnecessary docstrings can be
3515 noticeable for certain objects, such as Pyro proxies).
3518 noticeable for certain objects, such as Pyro proxies).
3516
3519
3517 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3520 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3518 for completers. For some reason I had been passing them the state
3521 for completers. For some reason I had been passing them the state
3519 variable, which completers never actually need, and was in
3522 variable, which completers never actually need, and was in
3520 conflict with the rlcompleter API. Custom completers ONLY need to
3523 conflict with the rlcompleter API. Custom completers ONLY need to
3521 take the text parameter.
3524 take the text parameter.
3522
3525
3523 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3526 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3524 work correctly in pysh. I've also moved all the logic which used
3527 work correctly in pysh. I've also moved all the logic which used
3525 to be in pysh.py here, which will prevent problems with future
3528 to be in pysh.py here, which will prevent problems with future
3526 upgrades. However, this time I must warn users to update their
3529 upgrades. However, this time I must warn users to update their
3527 pysh profile to include the line
3530 pysh profile to include the line
3528
3531
3529 import_all IPython.Extensions.InterpreterExec
3532 import_all IPython.Extensions.InterpreterExec
3530
3533
3531 because otherwise things won't work for them. They MUST also
3534 because otherwise things won't work for them. They MUST also
3532 delete pysh.py and the line
3535 delete pysh.py and the line
3533
3536
3534 execfile pysh.py
3537 execfile pysh.py
3535
3538
3536 from their ipythonrc-pysh.
3539 from their ipythonrc-pysh.
3537
3540
3538 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3541 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3539 robust in the face of objects whose dir() returns non-strings
3542 robust in the face of objects whose dir() returns non-strings
3540 (which it shouldn't, but some broken libs like ITK do). Thanks to
3543 (which it shouldn't, but some broken libs like ITK do). Thanks to
3541 a patch by John Hunter (implemented differently, though). Also
3544 a patch by John Hunter (implemented differently, though). Also
3542 minor improvements by using .extend instead of + on lists.
3545 minor improvements by using .extend instead of + on lists.
3543
3546
3544 * pysh.py:
3547 * pysh.py:
3545
3548
3546 2005-04-06 Fernando Perez <fperez@colorado.edu>
3549 2005-04-06 Fernando Perez <fperez@colorado.edu>
3547
3550
3548 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3551 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3549 by default, so that all users benefit from it. Those who don't
3552 by default, so that all users benefit from it. Those who don't
3550 want it can still turn it off.
3553 want it can still turn it off.
3551
3554
3552 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3555 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3553 config file, I'd forgotten about this, so users were getting it
3556 config file, I'd forgotten about this, so users were getting it
3554 off by default.
3557 off by default.
3555
3558
3556 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3559 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3557 consistency. Now magics can be called in multiline statements,
3560 consistency. Now magics can be called in multiline statements,
3558 and python variables can be expanded in magic calls via $var.
3561 and python variables can be expanded in magic calls via $var.
3559 This makes the magic system behave just like aliases or !system
3562 This makes the magic system behave just like aliases or !system
3560 calls.
3563 calls.
3561
3564
3562 2005-03-28 Fernando Perez <fperez@colorado.edu>
3565 2005-03-28 Fernando Perez <fperez@colorado.edu>
3563
3566
3564 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3567 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3565 expensive string additions for building command. Add support for
3568 expensive string additions for building command. Add support for
3566 trailing ';' when autocall is used.
3569 trailing ';' when autocall is used.
3567
3570
3568 2005-03-26 Fernando Perez <fperez@colorado.edu>
3571 2005-03-26 Fernando Perez <fperez@colorado.edu>
3569
3572
3570 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3573 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3571 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3574 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3572 ipython.el robust against prompts with any number of spaces
3575 ipython.el robust against prompts with any number of spaces
3573 (including 0) after the ':' character.
3576 (including 0) after the ':' character.
3574
3577
3575 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3578 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3576 continuation prompt, which misled users to think the line was
3579 continuation prompt, which misled users to think the line was
3577 already indented. Closes debian Bug#300847, reported to me by
3580 already indented. Closes debian Bug#300847, reported to me by
3578 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3581 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3579
3582
3580 2005-03-23 Fernando Perez <fperez@colorado.edu>
3583 2005-03-23 Fernando Perez <fperez@colorado.edu>
3581
3584
3582 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3585 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3583 properly aligned if they have embedded newlines.
3586 properly aligned if they have embedded newlines.
3584
3587
3585 * IPython/iplib.py (runlines): Add a public method to expose
3588 * IPython/iplib.py (runlines): Add a public method to expose
3586 IPython's code execution machinery, so that users can run strings
3589 IPython's code execution machinery, so that users can run strings
3587 as if they had been typed at the prompt interactively.
3590 as if they had been typed at the prompt interactively.
3588 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3591 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3589 methods which can call the system shell, but with python variable
3592 methods which can call the system shell, but with python variable
3590 expansion. The three such methods are: __IPYTHON__.system,
3593 expansion. The three such methods are: __IPYTHON__.system,
3591 .getoutput and .getoutputerror. These need to be documented in a
3594 .getoutput and .getoutputerror. These need to be documented in a
3592 'public API' section (to be written) of the manual.
3595 'public API' section (to be written) of the manual.
3593
3596
3594 2005-03-20 Fernando Perez <fperez@colorado.edu>
3597 2005-03-20 Fernando Perez <fperez@colorado.edu>
3595
3598
3596 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3599 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3597 for custom exception handling. This is quite powerful, and it
3600 for custom exception handling. This is quite powerful, and it
3598 allows for user-installable exception handlers which can trap
3601 allows for user-installable exception handlers which can trap
3599 custom exceptions at runtime and treat them separately from
3602 custom exceptions at runtime and treat them separately from
3600 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3603 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3601 Mantegazza <mantegazza-AT-ill.fr>.
3604 Mantegazza <mantegazza-AT-ill.fr>.
3602 (InteractiveShell.set_custom_completer): public API function to
3605 (InteractiveShell.set_custom_completer): public API function to
3603 add new completers at runtime.
3606 add new completers at runtime.
3604
3607
3605 2005-03-19 Fernando Perez <fperez@colorado.edu>
3608 2005-03-19 Fernando Perez <fperez@colorado.edu>
3606
3609
3607 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3610 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3608 allow objects which provide their docstrings via non-standard
3611 allow objects which provide their docstrings via non-standard
3609 mechanisms (like Pyro proxies) to still be inspected by ipython's
3612 mechanisms (like Pyro proxies) to still be inspected by ipython's
3610 ? system.
3613 ? system.
3611
3614
3612 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3615 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3613 automatic capture system. I tried quite hard to make it work
3616 automatic capture system. I tried quite hard to make it work
3614 reliably, and simply failed. I tried many combinations with the
3617 reliably, and simply failed. I tried many combinations with the
3615 subprocess module, but eventually nothing worked in all needed
3618 subprocess module, but eventually nothing worked in all needed
3616 cases (not blocking stdin for the child, duplicating stdout
3619 cases (not blocking stdin for the child, duplicating stdout
3617 without blocking, etc). The new %sc/%sx still do capture to these
3620 without blocking, etc). The new %sc/%sx still do capture to these
3618 magical list/string objects which make shell use much more
3621 magical list/string objects which make shell use much more
3619 conveninent, so not all is lost.
3622 conveninent, so not all is lost.
3620
3623
3621 XXX - FIX MANUAL for the change above!
3624 XXX - FIX MANUAL for the change above!
3622
3625
3623 (runsource): I copied code.py's runsource() into ipython to modify
3626 (runsource): I copied code.py's runsource() into ipython to modify
3624 it a bit. Now the code object and source to be executed are
3627 it a bit. Now the code object and source to be executed are
3625 stored in ipython. This makes this info accessible to third-party
3628 stored in ipython. This makes this info accessible to third-party
3626 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3629 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3627 Mantegazza <mantegazza-AT-ill.fr>.
3630 Mantegazza <mantegazza-AT-ill.fr>.
3628
3631
3629 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3632 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3630 history-search via readline (like C-p/C-n). I'd wanted this for a
3633 history-search via readline (like C-p/C-n). I'd wanted this for a
3631 long time, but only recently found out how to do it. For users
3634 long time, but only recently found out how to do it. For users
3632 who already have their ipythonrc files made and want this, just
3635 who already have their ipythonrc files made and want this, just
3633 add:
3636 add:
3634
3637
3635 readline_parse_and_bind "\e[A": history-search-backward
3638 readline_parse_and_bind "\e[A": history-search-backward
3636 readline_parse_and_bind "\e[B": history-search-forward
3639 readline_parse_and_bind "\e[B": history-search-forward
3637
3640
3638 2005-03-18 Fernando Perez <fperez@colorado.edu>
3641 2005-03-18 Fernando Perez <fperez@colorado.edu>
3639
3642
3640 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3643 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3641 LSString and SList classes which allow transparent conversions
3644 LSString and SList classes which allow transparent conversions
3642 between list mode and whitespace-separated string.
3645 between list mode and whitespace-separated string.
3643 (magic_r): Fix recursion problem in %r.
3646 (magic_r): Fix recursion problem in %r.
3644
3647
3645 * IPython/genutils.py (LSString): New class to be used for
3648 * IPython/genutils.py (LSString): New class to be used for
3646 automatic storage of the results of all alias/system calls in _o
3649 automatic storage of the results of all alias/system calls in _o
3647 and _e (stdout/err). These provide a .l/.list attribute which
3650 and _e (stdout/err). These provide a .l/.list attribute which
3648 does automatic splitting on newlines. This means that for most
3651 does automatic splitting on newlines. This means that for most
3649 uses, you'll never need to do capturing of output with %sc/%sx
3652 uses, you'll never need to do capturing of output with %sc/%sx
3650 anymore, since ipython keeps this always done for you. Note that
3653 anymore, since ipython keeps this always done for you. Note that
3651 only the LAST results are stored, the _o/e variables are
3654 only the LAST results are stored, the _o/e variables are
3652 overwritten on each call. If you need to save their contents
3655 overwritten on each call. If you need to save their contents
3653 further, simply bind them to any other name.
3656 further, simply bind them to any other name.
3654
3657
3655 2005-03-17 Fernando Perez <fperez@colorado.edu>
3658 2005-03-17 Fernando Perez <fperez@colorado.edu>
3656
3659
3657 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3660 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3658 prompt namespace handling.
3661 prompt namespace handling.
3659
3662
3660 2005-03-16 Fernando Perez <fperez@colorado.edu>
3663 2005-03-16 Fernando Perez <fperez@colorado.edu>
3661
3664
3662 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3665 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3663 classic prompts to be '>>> ' (final space was missing, and it
3666 classic prompts to be '>>> ' (final space was missing, and it
3664 trips the emacs python mode).
3667 trips the emacs python mode).
3665 (BasePrompt.__str__): Added safe support for dynamic prompt
3668 (BasePrompt.__str__): Added safe support for dynamic prompt
3666 strings. Now you can set your prompt string to be '$x', and the
3669 strings. Now you can set your prompt string to be '$x', and the
3667 value of x will be printed from your interactive namespace. The
3670 value of x will be printed from your interactive namespace. The
3668 interpolation syntax includes the full Itpl support, so
3671 interpolation syntax includes the full Itpl support, so
3669 ${foo()+x+bar()} is a valid prompt string now, and the function
3672 ${foo()+x+bar()} is a valid prompt string now, and the function
3670 calls will be made at runtime.
3673 calls will be made at runtime.
3671
3674
3672 2005-03-15 Fernando Perez <fperez@colorado.edu>
3675 2005-03-15 Fernando Perez <fperez@colorado.edu>
3673
3676
3674 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3677 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3675 avoid name clashes in pylab. %hist still works, it just forwards
3678 avoid name clashes in pylab. %hist still works, it just forwards
3676 the call to %history.
3679 the call to %history.
3677
3680
3678 2005-03-02 *** Released version 0.6.12
3681 2005-03-02 *** Released version 0.6.12
3679
3682
3680 2005-03-02 Fernando Perez <fperez@colorado.edu>
3683 2005-03-02 Fernando Perez <fperez@colorado.edu>
3681
3684
3682 * IPython/iplib.py (handle_magic): log magic calls properly as
3685 * IPython/iplib.py (handle_magic): log magic calls properly as
3683 ipmagic() function calls.
3686 ipmagic() function calls.
3684
3687
3685 * IPython/Magic.py (magic_time): Improved %time to support
3688 * IPython/Magic.py (magic_time): Improved %time to support
3686 statements and provide wall-clock as well as CPU time.
3689 statements and provide wall-clock as well as CPU time.
3687
3690
3688 2005-02-27 Fernando Perez <fperez@colorado.edu>
3691 2005-02-27 Fernando Perez <fperez@colorado.edu>
3689
3692
3690 * IPython/hooks.py: New hooks module, to expose user-modifiable
3693 * IPython/hooks.py: New hooks module, to expose user-modifiable
3691 IPython functionality in a clean manner. For now only the editor
3694 IPython functionality in a clean manner. For now only the editor
3692 hook is actually written, and other thigns which I intend to turn
3695 hook is actually written, and other thigns which I intend to turn
3693 into proper hooks aren't yet there. The display and prefilter
3696 into proper hooks aren't yet there. The display and prefilter
3694 stuff, for example, should be hooks. But at least now the
3697 stuff, for example, should be hooks. But at least now the
3695 framework is in place, and the rest can be moved here with more
3698 framework is in place, and the rest can be moved here with more
3696 time later. IPython had had a .hooks variable for a long time for
3699 time later. IPython had had a .hooks variable for a long time for
3697 this purpose, but I'd never actually used it for anything.
3700 this purpose, but I'd never actually used it for anything.
3698
3701
3699 2005-02-26 Fernando Perez <fperez@colorado.edu>
3702 2005-02-26 Fernando Perez <fperez@colorado.edu>
3700
3703
3701 * IPython/ipmaker.py (make_IPython): make the default ipython
3704 * IPython/ipmaker.py (make_IPython): make the default ipython
3702 directory be called _ipython under win32, to follow more the
3705 directory be called _ipython under win32, to follow more the
3703 naming peculiarities of that platform (where buggy software like
3706 naming peculiarities of that platform (where buggy software like
3704 Visual Sourcesafe breaks with .named directories). Reported by
3707 Visual Sourcesafe breaks with .named directories). Reported by
3705 Ville Vainio.
3708 Ville Vainio.
3706
3709
3707 2005-02-23 Fernando Perez <fperez@colorado.edu>
3710 2005-02-23 Fernando Perez <fperez@colorado.edu>
3708
3711
3709 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3712 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3710 auto_aliases for win32 which were causing problems. Users can
3713 auto_aliases for win32 which were causing problems. Users can
3711 define the ones they personally like.
3714 define the ones they personally like.
3712
3715
3713 2005-02-21 Fernando Perez <fperez@colorado.edu>
3716 2005-02-21 Fernando Perez <fperez@colorado.edu>
3714
3717
3715 * IPython/Magic.py (magic_time): new magic to time execution of
3718 * IPython/Magic.py (magic_time): new magic to time execution of
3716 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3719 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3717
3720
3718 2005-02-19 Fernando Perez <fperez@colorado.edu>
3721 2005-02-19 Fernando Perez <fperez@colorado.edu>
3719
3722
3720 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3723 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3721 into keys (for prompts, for example).
3724 into keys (for prompts, for example).
3722
3725
3723 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3726 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3724 prompts in case users want them. This introduces a small behavior
3727 prompts in case users want them. This introduces a small behavior
3725 change: ipython does not automatically add a space to all prompts
3728 change: ipython does not automatically add a space to all prompts
3726 anymore. To get the old prompts with a space, users should add it
3729 anymore. To get the old prompts with a space, users should add it
3727 manually to their ipythonrc file, so for example prompt_in1 should
3730 manually to their ipythonrc file, so for example prompt_in1 should
3728 now read 'In [\#]: ' instead of 'In [\#]:'.
3731 now read 'In [\#]: ' instead of 'In [\#]:'.
3729 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3732 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3730 file) to control left-padding of secondary prompts.
3733 file) to control left-padding of secondary prompts.
3731
3734
3732 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3735 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3733 the profiler can't be imported. Fix for Debian, which removed
3736 the profiler can't be imported. Fix for Debian, which removed
3734 profile.py because of License issues. I applied a slightly
3737 profile.py because of License issues. I applied a slightly
3735 modified version of the original Debian patch at
3738 modified version of the original Debian patch at
3736 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3739 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3737
3740
3738 2005-02-17 Fernando Perez <fperez@colorado.edu>
3741 2005-02-17 Fernando Perez <fperez@colorado.edu>
3739
3742
3740 * IPython/genutils.py (native_line_ends): Fix bug which would
3743 * IPython/genutils.py (native_line_ends): Fix bug which would
3741 cause improper line-ends under win32 b/c I was not opening files
3744 cause improper line-ends under win32 b/c I was not opening files
3742 in binary mode. Bug report and fix thanks to Ville.
3745 in binary mode. Bug report and fix thanks to Ville.
3743
3746
3744 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3747 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3745 trying to catch spurious foo[1] autocalls. My fix actually broke
3748 trying to catch spurious foo[1] autocalls. My fix actually broke
3746 ',/' autoquote/call with explicit escape (bad regexp).
3749 ',/' autoquote/call with explicit escape (bad regexp).
3747
3750
3748 2005-02-15 *** Released version 0.6.11
3751 2005-02-15 *** Released version 0.6.11
3749
3752
3750 2005-02-14 Fernando Perez <fperez@colorado.edu>
3753 2005-02-14 Fernando Perez <fperez@colorado.edu>
3751
3754
3752 * IPython/background_jobs.py: New background job management
3755 * IPython/background_jobs.py: New background job management
3753 subsystem. This is implemented via a new set of classes, and
3756 subsystem. This is implemented via a new set of classes, and
3754 IPython now provides a builtin 'jobs' object for background job
3757 IPython now provides a builtin 'jobs' object for background job
3755 execution. A convenience %bg magic serves as a lightweight
3758 execution. A convenience %bg magic serves as a lightweight
3756 frontend for starting the more common type of calls. This was
3759 frontend for starting the more common type of calls. This was
3757 inspired by discussions with B. Granger and the BackgroundCommand
3760 inspired by discussions with B. Granger and the BackgroundCommand
3758 class described in the book Python Scripting for Computational
3761 class described in the book Python Scripting for Computational
3759 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3762 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3760 (although ultimately no code from this text was used, as IPython's
3763 (although ultimately no code from this text was used, as IPython's
3761 system is a separate implementation).
3764 system is a separate implementation).
3762
3765
3763 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3766 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3764 to control the completion of single/double underscore names
3767 to control the completion of single/double underscore names
3765 separately. As documented in the example ipytonrc file, the
3768 separately. As documented in the example ipytonrc file, the
3766 readline_omit__names variable can now be set to 2, to omit even
3769 readline_omit__names variable can now be set to 2, to omit even
3767 single underscore names. Thanks to a patch by Brian Wong
3770 single underscore names. Thanks to a patch by Brian Wong
3768 <BrianWong-AT-AirgoNetworks.Com>.
3771 <BrianWong-AT-AirgoNetworks.Com>.
3769 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3772 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3770 be autocalled as foo([1]) if foo were callable. A problem for
3773 be autocalled as foo([1]) if foo were callable. A problem for
3771 things which are both callable and implement __getitem__.
3774 things which are both callable and implement __getitem__.
3772 (init_readline): Fix autoindentation for win32. Thanks to a patch
3775 (init_readline): Fix autoindentation for win32. Thanks to a patch
3773 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3776 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3774
3777
3775 2005-02-12 Fernando Perez <fperez@colorado.edu>
3778 2005-02-12 Fernando Perez <fperez@colorado.edu>
3776
3779
3777 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3780 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3778 which I had written long ago to sort out user error messages which
3781 which I had written long ago to sort out user error messages which
3779 may occur during startup. This seemed like a good idea initially,
3782 may occur during startup. This seemed like a good idea initially,
3780 but it has proven a disaster in retrospect. I don't want to
3783 but it has proven a disaster in retrospect. I don't want to
3781 change much code for now, so my fix is to set the internal 'debug'
3784 change much code for now, so my fix is to set the internal 'debug'
3782 flag to true everywhere, whose only job was precisely to control
3785 flag to true everywhere, whose only job was precisely to control
3783 this subsystem. This closes issue 28 (as well as avoiding all
3786 this subsystem. This closes issue 28 (as well as avoiding all
3784 sorts of strange hangups which occur from time to time).
3787 sorts of strange hangups which occur from time to time).
3785
3788
3786 2005-02-07 Fernando Perez <fperez@colorado.edu>
3789 2005-02-07 Fernando Perez <fperez@colorado.edu>
3787
3790
3788 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3791 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3789 previous call produced a syntax error.
3792 previous call produced a syntax error.
3790
3793
3791 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3794 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3792 classes without constructor.
3795 classes without constructor.
3793
3796
3794 2005-02-06 Fernando Perez <fperez@colorado.edu>
3797 2005-02-06 Fernando Perez <fperez@colorado.edu>
3795
3798
3796 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3799 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3797 completions with the results of each matcher, so we return results
3800 completions with the results of each matcher, so we return results
3798 to the user from all namespaces. This breaks with ipython
3801 to the user from all namespaces. This breaks with ipython
3799 tradition, but I think it's a nicer behavior. Now you get all
3802 tradition, but I think it's a nicer behavior. Now you get all
3800 possible completions listed, from all possible namespaces (python,
3803 possible completions listed, from all possible namespaces (python,
3801 filesystem, magics...) After a request by John Hunter
3804 filesystem, magics...) After a request by John Hunter
3802 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3805 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3803
3806
3804 2005-02-05 Fernando Perez <fperez@colorado.edu>
3807 2005-02-05 Fernando Perez <fperez@colorado.edu>
3805
3808
3806 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3809 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3807 the call had quote characters in it (the quotes were stripped).
3810 the call had quote characters in it (the quotes were stripped).
3808
3811
3809 2005-01-31 Fernando Perez <fperez@colorado.edu>
3812 2005-01-31 Fernando Perez <fperez@colorado.edu>
3810
3813
3811 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3814 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3812 Itpl.itpl() to make the code more robust against psyco
3815 Itpl.itpl() to make the code more robust against psyco
3813 optimizations.
3816 optimizations.
3814
3817
3815 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3818 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3816 of causing an exception. Quicker, cleaner.
3819 of causing an exception. Quicker, cleaner.
3817
3820
3818 2005-01-28 Fernando Perez <fperez@colorado.edu>
3821 2005-01-28 Fernando Perez <fperez@colorado.edu>
3819
3822
3820 * scripts/ipython_win_post_install.py (install): hardcode
3823 * scripts/ipython_win_post_install.py (install): hardcode
3821 sys.prefix+'python.exe' as the executable path. It turns out that
3824 sys.prefix+'python.exe' as the executable path. It turns out that
3822 during the post-installation run, sys.executable resolves to the
3825 during the post-installation run, sys.executable resolves to the
3823 name of the binary installer! I should report this as a distutils
3826 name of the binary installer! I should report this as a distutils
3824 bug, I think. I updated the .10 release with this tiny fix, to
3827 bug, I think. I updated the .10 release with this tiny fix, to
3825 avoid annoying the lists further.
3828 avoid annoying the lists further.
3826
3829
3827 2005-01-27 *** Released version 0.6.10
3830 2005-01-27 *** Released version 0.6.10
3828
3831
3829 2005-01-27 Fernando Perez <fperez@colorado.edu>
3832 2005-01-27 Fernando Perez <fperez@colorado.edu>
3830
3833
3831 * IPython/numutils.py (norm): Added 'inf' as optional name for
3834 * IPython/numutils.py (norm): Added 'inf' as optional name for
3832 L-infinity norm, included references to mathworld.com for vector
3835 L-infinity norm, included references to mathworld.com for vector
3833 norm definitions.
3836 norm definitions.
3834 (amin/amax): added amin/amax for array min/max. Similar to what
3837 (amin/amax): added amin/amax for array min/max. Similar to what
3835 pylab ships with after the recent reorganization of names.
3838 pylab ships with after the recent reorganization of names.
3836 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3839 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3837
3840
3838 * ipython.el: committed Alex's recent fixes and improvements.
3841 * ipython.el: committed Alex's recent fixes and improvements.
3839 Tested with python-mode from CVS, and it looks excellent. Since
3842 Tested with python-mode from CVS, and it looks excellent. Since
3840 python-mode hasn't released anything in a while, I'm temporarily
3843 python-mode hasn't released anything in a while, I'm temporarily
3841 putting a copy of today's CVS (v 4.70) of python-mode in:
3844 putting a copy of today's CVS (v 4.70) of python-mode in:
3842 http://ipython.scipy.org/tmp/python-mode.el
3845 http://ipython.scipy.org/tmp/python-mode.el
3843
3846
3844 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3847 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3845 sys.executable for the executable name, instead of assuming it's
3848 sys.executable for the executable name, instead of assuming it's
3846 called 'python.exe' (the post-installer would have produced broken
3849 called 'python.exe' (the post-installer would have produced broken
3847 setups on systems with a differently named python binary).
3850 setups on systems with a differently named python binary).
3848
3851
3849 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3852 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3850 references to os.linesep, to make the code more
3853 references to os.linesep, to make the code more
3851 platform-independent. This is also part of the win32 coloring
3854 platform-independent. This is also part of the win32 coloring
3852 fixes.
3855 fixes.
3853
3856
3854 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3857 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3855 lines, which actually cause coloring bugs because the length of
3858 lines, which actually cause coloring bugs because the length of
3856 the line is very difficult to correctly compute with embedded
3859 the line is very difficult to correctly compute with embedded
3857 escapes. This was the source of all the coloring problems under
3860 escapes. This was the source of all the coloring problems under
3858 Win32. I think that _finally_, Win32 users have a properly
3861 Win32. I think that _finally_, Win32 users have a properly
3859 working ipython in all respects. This would never have happened
3862 working ipython in all respects. This would never have happened
3860 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3863 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3861
3864
3862 2005-01-26 *** Released version 0.6.9
3865 2005-01-26 *** Released version 0.6.9
3863
3866
3864 2005-01-25 Fernando Perez <fperez@colorado.edu>
3867 2005-01-25 Fernando Perez <fperez@colorado.edu>
3865
3868
3866 * setup.py: finally, we have a true Windows installer, thanks to
3869 * setup.py: finally, we have a true Windows installer, thanks to
3867 the excellent work of Viktor Ransmayr
3870 the excellent work of Viktor Ransmayr
3868 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3871 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3869 Windows users. The setup routine is quite a bit cleaner thanks to
3872 Windows users. The setup routine is quite a bit cleaner thanks to
3870 this, and the post-install script uses the proper functions to
3873 this, and the post-install script uses the proper functions to
3871 allow a clean de-installation using the standard Windows Control
3874 allow a clean de-installation using the standard Windows Control
3872 Panel.
3875 Panel.
3873
3876
3874 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3877 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3875 environment variable under all OSes (including win32) if
3878 environment variable under all OSes (including win32) if
3876 available. This will give consistency to win32 users who have set
3879 available. This will give consistency to win32 users who have set
3877 this variable for any reason. If os.environ['HOME'] fails, the
3880 this variable for any reason. If os.environ['HOME'] fails, the
3878 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3881 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3879
3882
3880 2005-01-24 Fernando Perez <fperez@colorado.edu>
3883 2005-01-24 Fernando Perez <fperez@colorado.edu>
3881
3884
3882 * IPython/numutils.py (empty_like): add empty_like(), similar to
3885 * IPython/numutils.py (empty_like): add empty_like(), similar to
3883 zeros_like() but taking advantage of the new empty() Numeric routine.
3886 zeros_like() but taking advantage of the new empty() Numeric routine.
3884
3887
3885 2005-01-23 *** Released version 0.6.8
3888 2005-01-23 *** Released version 0.6.8
3886
3889
3887 2005-01-22 Fernando Perez <fperez@colorado.edu>
3890 2005-01-22 Fernando Perez <fperez@colorado.edu>
3888
3891
3889 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3892 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3890 automatic show() calls. After discussing things with JDH, it
3893 automatic show() calls. After discussing things with JDH, it
3891 turns out there are too many corner cases where this can go wrong.
3894 turns out there are too many corner cases where this can go wrong.
3892 It's best not to try to be 'too smart', and simply have ipython
3895 It's best not to try to be 'too smart', and simply have ipython
3893 reproduce as much as possible the default behavior of a normal
3896 reproduce as much as possible the default behavior of a normal
3894 python shell.
3897 python shell.
3895
3898
3896 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3899 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3897 line-splitting regexp and _prefilter() to avoid calling getattr()
3900 line-splitting regexp and _prefilter() to avoid calling getattr()
3898 on assignments. This closes
3901 on assignments. This closes
3899 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3902 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3900 readline uses getattr(), so a simple <TAB> keypress is still
3903 readline uses getattr(), so a simple <TAB> keypress is still
3901 enough to trigger getattr() calls on an object.
3904 enough to trigger getattr() calls on an object.
3902
3905
3903 2005-01-21 Fernando Perez <fperez@colorado.edu>
3906 2005-01-21 Fernando Perez <fperez@colorado.edu>
3904
3907
3905 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3908 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3906 docstring under pylab so it doesn't mask the original.
3909 docstring under pylab so it doesn't mask the original.
3907
3910
3908 2005-01-21 *** Released version 0.6.7
3911 2005-01-21 *** Released version 0.6.7
3909
3912
3910 2005-01-21 Fernando Perez <fperez@colorado.edu>
3913 2005-01-21 Fernando Perez <fperez@colorado.edu>
3911
3914
3912 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3915 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3913 signal handling for win32 users in multithreaded mode.
3916 signal handling for win32 users in multithreaded mode.
3914
3917
3915 2005-01-17 Fernando Perez <fperez@colorado.edu>
3918 2005-01-17 Fernando Perez <fperez@colorado.edu>
3916
3919
3917 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3920 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3918 instances with no __init__. After a crash report by Norbert Nemec
3921 instances with no __init__. After a crash report by Norbert Nemec
3919 <Norbert-AT-nemec-online.de>.
3922 <Norbert-AT-nemec-online.de>.
3920
3923
3921 2005-01-14 Fernando Perez <fperez@colorado.edu>
3924 2005-01-14 Fernando Perez <fperez@colorado.edu>
3922
3925
3923 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3926 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3924 names for verbose exceptions, when multiple dotted names and the
3927 names for verbose exceptions, when multiple dotted names and the
3925 'parent' object were present on the same line.
3928 'parent' object were present on the same line.
3926
3929
3927 2005-01-11 Fernando Perez <fperez@colorado.edu>
3930 2005-01-11 Fernando Perez <fperez@colorado.edu>
3928
3931
3929 * IPython/genutils.py (flag_calls): new utility to trap and flag
3932 * IPython/genutils.py (flag_calls): new utility to trap and flag
3930 calls in functions. I need it to clean up matplotlib support.
3933 calls in functions. I need it to clean up matplotlib support.
3931 Also removed some deprecated code in genutils.
3934 Also removed some deprecated code in genutils.
3932
3935
3933 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3936 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3934 that matplotlib scripts called with %run, which don't call show()
3937 that matplotlib scripts called with %run, which don't call show()
3935 themselves, still have their plotting windows open.
3938 themselves, still have their plotting windows open.
3936
3939
3937 2005-01-05 Fernando Perez <fperez@colorado.edu>
3940 2005-01-05 Fernando Perez <fperez@colorado.edu>
3938
3941
3939 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3942 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3940 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3943 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3941
3944
3942 2004-12-19 Fernando Perez <fperez@colorado.edu>
3945 2004-12-19 Fernando Perez <fperez@colorado.edu>
3943
3946
3944 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3947 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3945 parent_runcode, which was an eyesore. The same result can be
3948 parent_runcode, which was an eyesore. The same result can be
3946 obtained with Python's regular superclass mechanisms.
3949 obtained with Python's regular superclass mechanisms.
3947
3950
3948 2004-12-17 Fernando Perez <fperez@colorado.edu>
3951 2004-12-17 Fernando Perez <fperez@colorado.edu>
3949
3952
3950 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3953 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3951 reported by Prabhu.
3954 reported by Prabhu.
3952 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3955 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3953 sys.stderr) instead of explicitly calling sys.stderr. This helps
3956 sys.stderr) instead of explicitly calling sys.stderr. This helps
3954 maintain our I/O abstractions clean, for future GUI embeddings.
3957 maintain our I/O abstractions clean, for future GUI embeddings.
3955
3958
3956 * IPython/genutils.py (info): added new utility for sys.stderr
3959 * IPython/genutils.py (info): added new utility for sys.stderr
3957 unified info message handling (thin wrapper around warn()).
3960 unified info message handling (thin wrapper around warn()).
3958
3961
3959 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3962 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3960 composite (dotted) names on verbose exceptions.
3963 composite (dotted) names on verbose exceptions.
3961 (VerboseTB.nullrepr): harden against another kind of errors which
3964 (VerboseTB.nullrepr): harden against another kind of errors which
3962 Python's inspect module can trigger, and which were crashing
3965 Python's inspect module can trigger, and which were crashing
3963 IPython. Thanks to a report by Marco Lombardi
3966 IPython. Thanks to a report by Marco Lombardi
3964 <mlombard-AT-ma010192.hq.eso.org>.
3967 <mlombard-AT-ma010192.hq.eso.org>.
3965
3968
3966 2004-12-13 *** Released version 0.6.6
3969 2004-12-13 *** Released version 0.6.6
3967
3970
3968 2004-12-12 Fernando Perez <fperez@colorado.edu>
3971 2004-12-12 Fernando Perez <fperez@colorado.edu>
3969
3972
3970 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3973 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3971 generated by pygtk upon initialization if it was built without
3974 generated by pygtk upon initialization if it was built without
3972 threads (for matplotlib users). After a crash reported by
3975 threads (for matplotlib users). After a crash reported by
3973 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3976 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3974
3977
3975 * IPython/ipmaker.py (make_IPython): fix small bug in the
3978 * IPython/ipmaker.py (make_IPython): fix small bug in the
3976 import_some parameter for multiple imports.
3979 import_some parameter for multiple imports.
3977
3980
3978 * IPython/iplib.py (ipmagic): simplified the interface of
3981 * IPython/iplib.py (ipmagic): simplified the interface of
3979 ipmagic() to take a single string argument, just as it would be
3982 ipmagic() to take a single string argument, just as it would be
3980 typed at the IPython cmd line.
3983 typed at the IPython cmd line.
3981 (ipalias): Added new ipalias() with an interface identical to
3984 (ipalias): Added new ipalias() with an interface identical to
3982 ipmagic(). This completes exposing a pure python interface to the
3985 ipmagic(). This completes exposing a pure python interface to the
3983 alias and magic system, which can be used in loops or more complex
3986 alias and magic system, which can be used in loops or more complex
3984 code where IPython's automatic line mangling is not active.
3987 code where IPython's automatic line mangling is not active.
3985
3988
3986 * IPython/genutils.py (timing): changed interface of timing to
3989 * IPython/genutils.py (timing): changed interface of timing to
3987 simply run code once, which is the most common case. timings()
3990 simply run code once, which is the most common case. timings()
3988 remains unchanged, for the cases where you want multiple runs.
3991 remains unchanged, for the cases where you want multiple runs.
3989
3992
3990 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3993 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3991 bug where Python2.2 crashes with exec'ing code which does not end
3994 bug where Python2.2 crashes with exec'ing code which does not end
3992 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3995 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3993 before.
3996 before.
3994
3997
3995 2004-12-10 Fernando Perez <fperez@colorado.edu>
3998 2004-12-10 Fernando Perez <fperez@colorado.edu>
3996
3999
3997 * IPython/Magic.py (Magic.magic_prun): changed name of option from
4000 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3998 -t to -T, to accomodate the new -t flag in %run (the %run and
4001 -t to -T, to accomodate the new -t flag in %run (the %run and
3999 %prun options are kind of intermixed, and it's not easy to change
4002 %prun options are kind of intermixed, and it's not easy to change
4000 this with the limitations of python's getopt).
4003 this with the limitations of python's getopt).
4001
4004
4002 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
4005 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
4003 the execution of scripts. It's not as fine-tuned as timeit.py,
4006 the execution of scripts. It's not as fine-tuned as timeit.py,
4004 but it works from inside ipython (and under 2.2, which lacks
4007 but it works from inside ipython (and under 2.2, which lacks
4005 timeit.py). Optionally a number of runs > 1 can be given for
4008 timeit.py). Optionally a number of runs > 1 can be given for
4006 timing very short-running code.
4009 timing very short-running code.
4007
4010
4008 * IPython/genutils.py (uniq_stable): new routine which returns a
4011 * IPython/genutils.py (uniq_stable): new routine which returns a
4009 list of unique elements in any iterable, but in stable order of
4012 list of unique elements in any iterable, but in stable order of
4010 appearance. I needed this for the ultraTB fixes, and it's a handy
4013 appearance. I needed this for the ultraTB fixes, and it's a handy
4011 utility.
4014 utility.
4012
4015
4013 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
4016 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
4014 dotted names in Verbose exceptions. This had been broken since
4017 dotted names in Verbose exceptions. This had been broken since
4015 the very start, now x.y will properly be printed in a Verbose
4018 the very start, now x.y will properly be printed in a Verbose
4016 traceback, instead of x being shown and y appearing always as an
4019 traceback, instead of x being shown and y appearing always as an
4017 'undefined global'. Getting this to work was a bit tricky,
4020 'undefined global'. Getting this to work was a bit tricky,
4018 because by default python tokenizers are stateless. Saved by
4021 because by default python tokenizers are stateless. Saved by
4019 python's ability to easily add a bit of state to an arbitrary
4022 python's ability to easily add a bit of state to an arbitrary
4020 function (without needing to build a full-blown callable object).
4023 function (without needing to build a full-blown callable object).
4021
4024
4022 Also big cleanup of this code, which had horrendous runtime
4025 Also big cleanup of this code, which had horrendous runtime
4023 lookups of zillions of attributes for colorization. Moved all
4026 lookups of zillions of attributes for colorization. Moved all
4024 this code into a few templates, which make it cleaner and quicker.
4027 this code into a few templates, which make it cleaner and quicker.
4025
4028
4026 Printout quality was also improved for Verbose exceptions: one
4029 Printout quality was also improved for Verbose exceptions: one
4027 variable per line, and memory addresses are printed (this can be
4030 variable per line, and memory addresses are printed (this can be
4028 quite handy in nasty debugging situations, which is what Verbose
4031 quite handy in nasty debugging situations, which is what Verbose
4029 is for).
4032 is for).
4030
4033
4031 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4034 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4032 the command line as scripts to be loaded by embedded instances.
4035 the command line as scripts to be loaded by embedded instances.
4033 Doing so has the potential for an infinite recursion if there are
4036 Doing so has the potential for an infinite recursion if there are
4034 exceptions thrown in the process. This fixes a strange crash
4037 exceptions thrown in the process. This fixes a strange crash
4035 reported by Philippe MULLER <muller-AT-irit.fr>.
4038 reported by Philippe MULLER <muller-AT-irit.fr>.
4036
4039
4037 2004-12-09 Fernando Perez <fperez@colorado.edu>
4040 2004-12-09 Fernando Perez <fperez@colorado.edu>
4038
4041
4039 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4042 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4040 to reflect new names in matplotlib, which now expose the
4043 to reflect new names in matplotlib, which now expose the
4041 matlab-compatible interface via a pylab module instead of the
4044 matlab-compatible interface via a pylab module instead of the
4042 'matlab' name. The new code is backwards compatible, so users of
4045 'matlab' name. The new code is backwards compatible, so users of
4043 all matplotlib versions are OK. Patch by J. Hunter.
4046 all matplotlib versions are OK. Patch by J. Hunter.
4044
4047
4045 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4048 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4046 of __init__ docstrings for instances (class docstrings are already
4049 of __init__ docstrings for instances (class docstrings are already
4047 automatically printed). Instances with customized docstrings
4050 automatically printed). Instances with customized docstrings
4048 (indep. of the class) are also recognized and all 3 separate
4051 (indep. of the class) are also recognized and all 3 separate
4049 docstrings are printed (instance, class, constructor). After some
4052 docstrings are printed (instance, class, constructor). After some
4050 comments/suggestions by J. Hunter.
4053 comments/suggestions by J. Hunter.
4051
4054
4052 2004-12-05 Fernando Perez <fperez@colorado.edu>
4055 2004-12-05 Fernando Perez <fperez@colorado.edu>
4053
4056
4054 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4057 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4055 warnings when tab-completion fails and triggers an exception.
4058 warnings when tab-completion fails and triggers an exception.
4056
4059
4057 2004-12-03 Fernando Perez <fperez@colorado.edu>
4060 2004-12-03 Fernando Perez <fperez@colorado.edu>
4058
4061
4059 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4062 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4060 be triggered when using 'run -p'. An incorrect option flag was
4063 be triggered when using 'run -p'. An incorrect option flag was
4061 being set ('d' instead of 'D').
4064 being set ('d' instead of 'D').
4062 (manpage): fix missing escaped \- sign.
4065 (manpage): fix missing escaped \- sign.
4063
4066
4064 2004-11-30 *** Released version 0.6.5
4067 2004-11-30 *** Released version 0.6.5
4065
4068
4066 2004-11-30 Fernando Perez <fperez@colorado.edu>
4069 2004-11-30 Fernando Perez <fperez@colorado.edu>
4067
4070
4068 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4071 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4069 setting with -d option.
4072 setting with -d option.
4070
4073
4071 * setup.py (docfiles): Fix problem where the doc glob I was using
4074 * setup.py (docfiles): Fix problem where the doc glob I was using
4072 was COMPLETELY BROKEN. It was giving the right files by pure
4075 was COMPLETELY BROKEN. It was giving the right files by pure
4073 accident, but failed once I tried to include ipython.el. Note:
4076 accident, but failed once I tried to include ipython.el. Note:
4074 glob() does NOT allow you to do exclusion on multiple endings!
4077 glob() does NOT allow you to do exclusion on multiple endings!
4075
4078
4076 2004-11-29 Fernando Perez <fperez@colorado.edu>
4079 2004-11-29 Fernando Perez <fperez@colorado.edu>
4077
4080
4078 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4081 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4079 the manpage as the source. Better formatting & consistency.
4082 the manpage as the source. Better formatting & consistency.
4080
4083
4081 * IPython/Magic.py (magic_run): Added new -d option, to run
4084 * IPython/Magic.py (magic_run): Added new -d option, to run
4082 scripts under the control of the python pdb debugger. Note that
4085 scripts under the control of the python pdb debugger. Note that
4083 this required changing the %prun option -d to -D, to avoid a clash
4086 this required changing the %prun option -d to -D, to avoid a clash
4084 (since %run must pass options to %prun, and getopt is too dumb to
4087 (since %run must pass options to %prun, and getopt is too dumb to
4085 handle options with string values with embedded spaces). Thanks
4088 handle options with string values with embedded spaces). Thanks
4086 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4089 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4087 (magic_who_ls): added type matching to %who and %whos, so that one
4090 (magic_who_ls): added type matching to %who and %whos, so that one
4088 can filter their output to only include variables of certain
4091 can filter their output to only include variables of certain
4089 types. Another suggestion by Matthew.
4092 types. Another suggestion by Matthew.
4090 (magic_whos): Added memory summaries in kb and Mb for arrays.
4093 (magic_whos): Added memory summaries in kb and Mb for arrays.
4091 (magic_who): Improve formatting (break lines every 9 vars).
4094 (magic_who): Improve formatting (break lines every 9 vars).
4092
4095
4093 2004-11-28 Fernando Perez <fperez@colorado.edu>
4096 2004-11-28 Fernando Perez <fperez@colorado.edu>
4094
4097
4095 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4098 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4096 cache when empty lines were present.
4099 cache when empty lines were present.
4097
4100
4098 2004-11-24 Fernando Perez <fperez@colorado.edu>
4101 2004-11-24 Fernando Perez <fperez@colorado.edu>
4099
4102
4100 * IPython/usage.py (__doc__): document the re-activated threading
4103 * IPython/usage.py (__doc__): document the re-activated threading
4101 options for WX and GTK.
4104 options for WX and GTK.
4102
4105
4103 2004-11-23 Fernando Perez <fperez@colorado.edu>
4106 2004-11-23 Fernando Perez <fperez@colorado.edu>
4104
4107
4105 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4108 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4106 the -wthread and -gthread options, along with a new -tk one to try
4109 the -wthread and -gthread options, along with a new -tk one to try
4107 and coordinate Tk threading with wx/gtk. The tk support is very
4110 and coordinate Tk threading with wx/gtk. The tk support is very
4108 platform dependent, since it seems to require Tcl and Tk to be
4111 platform dependent, since it seems to require Tcl and Tk to be
4109 built with threads (Fedora1/2 appears NOT to have it, but in
4112 built with threads (Fedora1/2 appears NOT to have it, but in
4110 Prabhu's Debian boxes it works OK). But even with some Tk
4113 Prabhu's Debian boxes it works OK). But even with some Tk
4111 limitations, this is a great improvement.
4114 limitations, this is a great improvement.
4112
4115
4113 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4116 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4114 info in user prompts. Patch by Prabhu.
4117 info in user prompts. Patch by Prabhu.
4115
4118
4116 2004-11-18 Fernando Perez <fperez@colorado.edu>
4119 2004-11-18 Fernando Perez <fperez@colorado.edu>
4117
4120
4118 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4121 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4119 EOFErrors and bail, to avoid infinite loops if a non-terminating
4122 EOFErrors and bail, to avoid infinite loops if a non-terminating
4120 file is fed into ipython. Patch submitted in issue 19 by user,
4123 file is fed into ipython. Patch submitted in issue 19 by user,
4121 many thanks.
4124 many thanks.
4122
4125
4123 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4126 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4124 autoquote/parens in continuation prompts, which can cause lots of
4127 autoquote/parens in continuation prompts, which can cause lots of
4125 problems. Closes roundup issue 20.
4128 problems. Closes roundup issue 20.
4126
4129
4127 2004-11-17 Fernando Perez <fperez@colorado.edu>
4130 2004-11-17 Fernando Perez <fperez@colorado.edu>
4128
4131
4129 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4132 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4130 reported as debian bug #280505. I'm not sure my local changelog
4133 reported as debian bug #280505. I'm not sure my local changelog
4131 entry has the proper debian format (Jack?).
4134 entry has the proper debian format (Jack?).
4132
4135
4133 2004-11-08 *** Released version 0.6.4
4136 2004-11-08 *** Released version 0.6.4
4134
4137
4135 2004-11-08 Fernando Perez <fperez@colorado.edu>
4138 2004-11-08 Fernando Perez <fperez@colorado.edu>
4136
4139
4137 * IPython/iplib.py (init_readline): Fix exit message for Windows
4140 * IPython/iplib.py (init_readline): Fix exit message for Windows
4138 when readline is active. Thanks to a report by Eric Jones
4141 when readline is active. Thanks to a report by Eric Jones
4139 <eric-AT-enthought.com>.
4142 <eric-AT-enthought.com>.
4140
4143
4141 2004-11-07 Fernando Perez <fperez@colorado.edu>
4144 2004-11-07 Fernando Perez <fperez@colorado.edu>
4142
4145
4143 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4146 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4144 sometimes seen by win2k/cygwin users.
4147 sometimes seen by win2k/cygwin users.
4145
4148
4146 2004-11-06 Fernando Perez <fperez@colorado.edu>
4149 2004-11-06 Fernando Perez <fperez@colorado.edu>
4147
4150
4148 * IPython/iplib.py (interact): Change the handling of %Exit from
4151 * IPython/iplib.py (interact): Change the handling of %Exit from
4149 trying to propagate a SystemExit to an internal ipython flag.
4152 trying to propagate a SystemExit to an internal ipython flag.
4150 This is less elegant than using Python's exception mechanism, but
4153 This is less elegant than using Python's exception mechanism, but
4151 I can't get that to work reliably with threads, so under -pylab
4154 I can't get that to work reliably with threads, so under -pylab
4152 %Exit was hanging IPython. Cross-thread exception handling is
4155 %Exit was hanging IPython. Cross-thread exception handling is
4153 really a bitch. Thaks to a bug report by Stephen Walton
4156 really a bitch. Thaks to a bug report by Stephen Walton
4154 <stephen.walton-AT-csun.edu>.
4157 <stephen.walton-AT-csun.edu>.
4155
4158
4156 2004-11-04 Fernando Perez <fperez@colorado.edu>
4159 2004-11-04 Fernando Perez <fperez@colorado.edu>
4157
4160
4158 * IPython/iplib.py (raw_input_original): store a pointer to the
4161 * IPython/iplib.py (raw_input_original): store a pointer to the
4159 true raw_input to harden against code which can modify it
4162 true raw_input to harden against code which can modify it
4160 (wx.py.PyShell does this and would otherwise crash ipython).
4163 (wx.py.PyShell does this and would otherwise crash ipython).
4161 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4164 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4162
4165
4163 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4166 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4164 Ctrl-C problem, which does not mess up the input line.
4167 Ctrl-C problem, which does not mess up the input line.
4165
4168
4166 2004-11-03 Fernando Perez <fperez@colorado.edu>
4169 2004-11-03 Fernando Perez <fperez@colorado.edu>
4167
4170
4168 * IPython/Release.py: Changed licensing to BSD, in all files.
4171 * IPython/Release.py: Changed licensing to BSD, in all files.
4169 (name): lowercase name for tarball/RPM release.
4172 (name): lowercase name for tarball/RPM release.
4170
4173
4171 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4174 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4172 use throughout ipython.
4175 use throughout ipython.
4173
4176
4174 * IPython/Magic.py (Magic._ofind): Switch to using the new
4177 * IPython/Magic.py (Magic._ofind): Switch to using the new
4175 OInspect.getdoc() function.
4178 OInspect.getdoc() function.
4176
4179
4177 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4180 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4178 of the line currently being canceled via Ctrl-C. It's extremely
4181 of the line currently being canceled via Ctrl-C. It's extremely
4179 ugly, but I don't know how to do it better (the problem is one of
4182 ugly, but I don't know how to do it better (the problem is one of
4180 handling cross-thread exceptions).
4183 handling cross-thread exceptions).
4181
4184
4182 2004-10-28 Fernando Perez <fperez@colorado.edu>
4185 2004-10-28 Fernando Perez <fperez@colorado.edu>
4183
4186
4184 * IPython/Shell.py (signal_handler): add signal handlers to trap
4187 * IPython/Shell.py (signal_handler): add signal handlers to trap
4185 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4188 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4186 report by Francesc Alted.
4189 report by Francesc Alted.
4187
4190
4188 2004-10-21 Fernando Perez <fperez@colorado.edu>
4191 2004-10-21 Fernando Perez <fperez@colorado.edu>
4189
4192
4190 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4193 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4191 to % for pysh syntax extensions.
4194 to % for pysh syntax extensions.
4192
4195
4193 2004-10-09 Fernando Perez <fperez@colorado.edu>
4196 2004-10-09 Fernando Perez <fperez@colorado.edu>
4194
4197
4195 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4198 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4196 arrays to print a more useful summary, without calling str(arr).
4199 arrays to print a more useful summary, without calling str(arr).
4197 This avoids the problem of extremely lengthy computations which
4200 This avoids the problem of extremely lengthy computations which
4198 occur if arr is large, and appear to the user as a system lockup
4201 occur if arr is large, and appear to the user as a system lockup
4199 with 100% cpu activity. After a suggestion by Kristian Sandberg
4202 with 100% cpu activity. After a suggestion by Kristian Sandberg
4200 <Kristian.Sandberg@colorado.edu>.
4203 <Kristian.Sandberg@colorado.edu>.
4201 (Magic.__init__): fix bug in global magic escapes not being
4204 (Magic.__init__): fix bug in global magic escapes not being
4202 correctly set.
4205 correctly set.
4203
4206
4204 2004-10-08 Fernando Perez <fperez@colorado.edu>
4207 2004-10-08 Fernando Perez <fperez@colorado.edu>
4205
4208
4206 * IPython/Magic.py (__license__): change to absolute imports of
4209 * IPython/Magic.py (__license__): change to absolute imports of
4207 ipython's own internal packages, to start adapting to the absolute
4210 ipython's own internal packages, to start adapting to the absolute
4208 import requirement of PEP-328.
4211 import requirement of PEP-328.
4209
4212
4210 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4213 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4211 files, and standardize author/license marks through the Release
4214 files, and standardize author/license marks through the Release
4212 module instead of having per/file stuff (except for files with
4215 module instead of having per/file stuff (except for files with
4213 particular licenses, like the MIT/PSF-licensed codes).
4216 particular licenses, like the MIT/PSF-licensed codes).
4214
4217
4215 * IPython/Debugger.py: remove dead code for python 2.1
4218 * IPython/Debugger.py: remove dead code for python 2.1
4216
4219
4217 2004-10-04 Fernando Perez <fperez@colorado.edu>
4220 2004-10-04 Fernando Perez <fperez@colorado.edu>
4218
4221
4219 * IPython/iplib.py (ipmagic): New function for accessing magics
4222 * IPython/iplib.py (ipmagic): New function for accessing magics
4220 via a normal python function call.
4223 via a normal python function call.
4221
4224
4222 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4225 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4223 from '@' to '%', to accomodate the new @decorator syntax of python
4226 from '@' to '%', to accomodate the new @decorator syntax of python
4224 2.4.
4227 2.4.
4225
4228
4226 2004-09-29 Fernando Perez <fperez@colorado.edu>
4229 2004-09-29 Fernando Perez <fperez@colorado.edu>
4227
4230
4228 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4231 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4229 matplotlib.use to prevent running scripts which try to switch
4232 matplotlib.use to prevent running scripts which try to switch
4230 interactive backends from within ipython. This will just crash
4233 interactive backends from within ipython. This will just crash
4231 the python interpreter, so we can't allow it (but a detailed error
4234 the python interpreter, so we can't allow it (but a detailed error
4232 is given to the user).
4235 is given to the user).
4233
4236
4234 2004-09-28 Fernando Perez <fperez@colorado.edu>
4237 2004-09-28 Fernando Perez <fperez@colorado.edu>
4235
4238
4236 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4239 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4237 matplotlib-related fixes so that using @run with non-matplotlib
4240 matplotlib-related fixes so that using @run with non-matplotlib
4238 scripts doesn't pop up spurious plot windows. This requires
4241 scripts doesn't pop up spurious plot windows. This requires
4239 matplotlib >= 0.63, where I had to make some changes as well.
4242 matplotlib >= 0.63, where I had to make some changes as well.
4240
4243
4241 * IPython/ipmaker.py (make_IPython): update version requirement to
4244 * IPython/ipmaker.py (make_IPython): update version requirement to
4242 python 2.2.
4245 python 2.2.
4243
4246
4244 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4247 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4245 banner arg for embedded customization.
4248 banner arg for embedded customization.
4246
4249
4247 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4250 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4248 explicit uses of __IP as the IPython's instance name. Now things
4251 explicit uses of __IP as the IPython's instance name. Now things
4249 are properly handled via the shell.name value. The actual code
4252 are properly handled via the shell.name value. The actual code
4250 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4253 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4251 is much better than before. I'll clean things completely when the
4254 is much better than before. I'll clean things completely when the
4252 magic stuff gets a real overhaul.
4255 magic stuff gets a real overhaul.
4253
4256
4254 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4257 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4255 minor changes to debian dir.
4258 minor changes to debian dir.
4256
4259
4257 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4260 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4258 pointer to the shell itself in the interactive namespace even when
4261 pointer to the shell itself in the interactive namespace even when
4259 a user-supplied dict is provided. This is needed for embedding
4262 a user-supplied dict is provided. This is needed for embedding
4260 purposes (found by tests with Michel Sanner).
4263 purposes (found by tests with Michel Sanner).
4261
4264
4262 2004-09-27 Fernando Perez <fperez@colorado.edu>
4265 2004-09-27 Fernando Perez <fperez@colorado.edu>
4263
4266
4264 * IPython/UserConfig/ipythonrc: remove []{} from
4267 * IPython/UserConfig/ipythonrc: remove []{} from
4265 readline_remove_delims, so that things like [modname.<TAB> do
4268 readline_remove_delims, so that things like [modname.<TAB> do
4266 proper completion. This disables [].TAB, but that's a less common
4269 proper completion. This disables [].TAB, but that's a less common
4267 case than module names in list comprehensions, for example.
4270 case than module names in list comprehensions, for example.
4268 Thanks to a report by Andrea Riciputi.
4271 Thanks to a report by Andrea Riciputi.
4269
4272
4270 2004-09-09 Fernando Perez <fperez@colorado.edu>
4273 2004-09-09 Fernando Perez <fperez@colorado.edu>
4271
4274
4272 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4275 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4273 blocking problems in win32 and osx. Fix by John.
4276 blocking problems in win32 and osx. Fix by John.
4274
4277
4275 2004-09-08 Fernando Perez <fperez@colorado.edu>
4278 2004-09-08 Fernando Perez <fperez@colorado.edu>
4276
4279
4277 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4280 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4278 for Win32 and OSX. Fix by John Hunter.
4281 for Win32 and OSX. Fix by John Hunter.
4279
4282
4280 2004-08-30 *** Released version 0.6.3
4283 2004-08-30 *** Released version 0.6.3
4281
4284
4282 2004-08-30 Fernando Perez <fperez@colorado.edu>
4285 2004-08-30 Fernando Perez <fperez@colorado.edu>
4283
4286
4284 * setup.py (isfile): Add manpages to list of dependent files to be
4287 * setup.py (isfile): Add manpages to list of dependent files to be
4285 updated.
4288 updated.
4286
4289
4287 2004-08-27 Fernando Perez <fperez@colorado.edu>
4290 2004-08-27 Fernando Perez <fperez@colorado.edu>
4288
4291
4289 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4292 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4290 for now. They don't really work with standalone WX/GTK code
4293 for now. They don't really work with standalone WX/GTK code
4291 (though matplotlib IS working fine with both of those backends).
4294 (though matplotlib IS working fine with both of those backends).
4292 This will neeed much more testing. I disabled most things with
4295 This will neeed much more testing. I disabled most things with
4293 comments, so turning it back on later should be pretty easy.
4296 comments, so turning it back on later should be pretty easy.
4294
4297
4295 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4298 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4296 autocalling of expressions like r'foo', by modifying the line
4299 autocalling of expressions like r'foo', by modifying the line
4297 split regexp. Closes
4300 split regexp. Closes
4298 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4301 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4299 Riley <ipythonbugs-AT-sabi.net>.
4302 Riley <ipythonbugs-AT-sabi.net>.
4300 (InteractiveShell.mainloop): honor --nobanner with banner
4303 (InteractiveShell.mainloop): honor --nobanner with banner
4301 extensions.
4304 extensions.
4302
4305
4303 * IPython/Shell.py: Significant refactoring of all classes, so
4306 * IPython/Shell.py: Significant refactoring of all classes, so
4304 that we can really support ALL matplotlib backends and threading
4307 that we can really support ALL matplotlib backends and threading
4305 models (John spotted a bug with Tk which required this). Now we
4308 models (John spotted a bug with Tk which required this). Now we
4306 should support single-threaded, WX-threads and GTK-threads, both
4309 should support single-threaded, WX-threads and GTK-threads, both
4307 for generic code and for matplotlib.
4310 for generic code and for matplotlib.
4308
4311
4309 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4312 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4310 -pylab, to simplify things for users. Will also remove the pylab
4313 -pylab, to simplify things for users. Will also remove the pylab
4311 profile, since now all of matplotlib configuration is directly
4314 profile, since now all of matplotlib configuration is directly
4312 handled here. This also reduces startup time.
4315 handled here. This also reduces startup time.
4313
4316
4314 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4317 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4315 shell wasn't being correctly called. Also in IPShellWX.
4318 shell wasn't being correctly called. Also in IPShellWX.
4316
4319
4317 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4320 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4318 fine-tune banner.
4321 fine-tune banner.
4319
4322
4320 * IPython/numutils.py (spike): Deprecate these spike functions,
4323 * IPython/numutils.py (spike): Deprecate these spike functions,
4321 delete (long deprecated) gnuplot_exec handler.
4324 delete (long deprecated) gnuplot_exec handler.
4322
4325
4323 2004-08-26 Fernando Perez <fperez@colorado.edu>
4326 2004-08-26 Fernando Perez <fperez@colorado.edu>
4324
4327
4325 * ipython.1: Update for threading options, plus some others which
4328 * ipython.1: Update for threading options, plus some others which
4326 were missing.
4329 were missing.
4327
4330
4328 * IPython/ipmaker.py (__call__): Added -wthread option for
4331 * IPython/ipmaker.py (__call__): Added -wthread option for
4329 wxpython thread handling. Make sure threading options are only
4332 wxpython thread handling. Make sure threading options are only
4330 valid at the command line.
4333 valid at the command line.
4331
4334
4332 * scripts/ipython: moved shell selection into a factory function
4335 * scripts/ipython: moved shell selection into a factory function
4333 in Shell.py, to keep the starter script to a minimum.
4336 in Shell.py, to keep the starter script to a minimum.
4334
4337
4335 2004-08-25 Fernando Perez <fperez@colorado.edu>
4338 2004-08-25 Fernando Perez <fperez@colorado.edu>
4336
4339
4337 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4340 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4338 John. Along with some recent changes he made to matplotlib, the
4341 John. Along with some recent changes he made to matplotlib, the
4339 next versions of both systems should work very well together.
4342 next versions of both systems should work very well together.
4340
4343
4341 2004-08-24 Fernando Perez <fperez@colorado.edu>
4344 2004-08-24 Fernando Perez <fperez@colorado.edu>
4342
4345
4343 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4346 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4344 tried to switch the profiling to using hotshot, but I'm getting
4347 tried to switch the profiling to using hotshot, but I'm getting
4345 strange errors from prof.runctx() there. I may be misreading the
4348 strange errors from prof.runctx() there. I may be misreading the
4346 docs, but it looks weird. For now the profiling code will
4349 docs, but it looks weird. For now the profiling code will
4347 continue to use the standard profiler.
4350 continue to use the standard profiler.
4348
4351
4349 2004-08-23 Fernando Perez <fperez@colorado.edu>
4352 2004-08-23 Fernando Perez <fperez@colorado.edu>
4350
4353
4351 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4354 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4352 threaded shell, by John Hunter. It's not quite ready yet, but
4355 threaded shell, by John Hunter. It's not quite ready yet, but
4353 close.
4356 close.
4354
4357
4355 2004-08-22 Fernando Perez <fperez@colorado.edu>
4358 2004-08-22 Fernando Perez <fperez@colorado.edu>
4356
4359
4357 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4360 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4358 in Magic and ultraTB.
4361 in Magic and ultraTB.
4359
4362
4360 * ipython.1: document threading options in manpage.
4363 * ipython.1: document threading options in manpage.
4361
4364
4362 * scripts/ipython: Changed name of -thread option to -gthread,
4365 * scripts/ipython: Changed name of -thread option to -gthread,
4363 since this is GTK specific. I want to leave the door open for a
4366 since this is GTK specific. I want to leave the door open for a
4364 -wthread option for WX, which will most likely be necessary. This
4367 -wthread option for WX, which will most likely be necessary. This
4365 change affects usage and ipmaker as well.
4368 change affects usage and ipmaker as well.
4366
4369
4367 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4370 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4368 handle the matplotlib shell issues. Code by John Hunter
4371 handle the matplotlib shell issues. Code by John Hunter
4369 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4372 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4370 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4373 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4371 broken (and disabled for end users) for now, but it puts the
4374 broken (and disabled for end users) for now, but it puts the
4372 infrastructure in place.
4375 infrastructure in place.
4373
4376
4374 2004-08-21 Fernando Perez <fperez@colorado.edu>
4377 2004-08-21 Fernando Perez <fperez@colorado.edu>
4375
4378
4376 * ipythonrc-pylab: Add matplotlib support.
4379 * ipythonrc-pylab: Add matplotlib support.
4377
4380
4378 * matplotlib_config.py: new files for matplotlib support, part of
4381 * matplotlib_config.py: new files for matplotlib support, part of
4379 the pylab profile.
4382 the pylab profile.
4380
4383
4381 * IPython/usage.py (__doc__): documented the threading options.
4384 * IPython/usage.py (__doc__): documented the threading options.
4382
4385
4383 2004-08-20 Fernando Perez <fperez@colorado.edu>
4386 2004-08-20 Fernando Perez <fperez@colorado.edu>
4384
4387
4385 * ipython: Modified the main calling routine to handle the -thread
4388 * ipython: Modified the main calling routine to handle the -thread
4386 and -mpthread options. This needs to be done as a top-level hack,
4389 and -mpthread options. This needs to be done as a top-level hack,
4387 because it determines which class to instantiate for IPython
4390 because it determines which class to instantiate for IPython
4388 itself.
4391 itself.
4389
4392
4390 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4393 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4391 classes to support multithreaded GTK operation without blocking,
4394 classes to support multithreaded GTK operation without blocking,
4392 and matplotlib with all backends. This is a lot of still very
4395 and matplotlib with all backends. This is a lot of still very
4393 experimental code, and threads are tricky. So it may still have a
4396 experimental code, and threads are tricky. So it may still have a
4394 few rough edges... This code owes a lot to
4397 few rough edges... This code owes a lot to
4395 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4398 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4396 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4399 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4397 to John Hunter for all the matplotlib work.
4400 to John Hunter for all the matplotlib work.
4398
4401
4399 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4402 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4400 options for gtk thread and matplotlib support.
4403 options for gtk thread and matplotlib support.
4401
4404
4402 2004-08-16 Fernando Perez <fperez@colorado.edu>
4405 2004-08-16 Fernando Perez <fperez@colorado.edu>
4403
4406
4404 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4407 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4405 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4408 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4406 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4409 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4407
4410
4408 2004-08-11 Fernando Perez <fperez@colorado.edu>
4411 2004-08-11 Fernando Perez <fperez@colorado.edu>
4409
4412
4410 * setup.py (isfile): Fix build so documentation gets updated for
4413 * setup.py (isfile): Fix build so documentation gets updated for
4411 rpms (it was only done for .tgz builds).
4414 rpms (it was only done for .tgz builds).
4412
4415
4413 2004-08-10 Fernando Perez <fperez@colorado.edu>
4416 2004-08-10 Fernando Perez <fperez@colorado.edu>
4414
4417
4415 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4418 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4416
4419
4417 * iplib.py : Silence syntax error exceptions in tab-completion.
4420 * iplib.py : Silence syntax error exceptions in tab-completion.
4418
4421
4419 2004-08-05 Fernando Perez <fperez@colorado.edu>
4422 2004-08-05 Fernando Perez <fperez@colorado.edu>
4420
4423
4421 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4424 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4422 'color off' mark for continuation prompts. This was causing long
4425 'color off' mark for continuation prompts. This was causing long
4423 continuation lines to mis-wrap.
4426 continuation lines to mis-wrap.
4424
4427
4425 2004-08-01 Fernando Perez <fperez@colorado.edu>
4428 2004-08-01 Fernando Perez <fperez@colorado.edu>
4426
4429
4427 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4430 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4428 for building ipython to be a parameter. All this is necessary
4431 for building ipython to be a parameter. All this is necessary
4429 right now to have a multithreaded version, but this insane
4432 right now to have a multithreaded version, but this insane
4430 non-design will be cleaned up soon. For now, it's a hack that
4433 non-design will be cleaned up soon. For now, it's a hack that
4431 works.
4434 works.
4432
4435
4433 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4436 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4434 args in various places. No bugs so far, but it's a dangerous
4437 args in various places. No bugs so far, but it's a dangerous
4435 practice.
4438 practice.
4436
4439
4437 2004-07-31 Fernando Perez <fperez@colorado.edu>
4440 2004-07-31 Fernando Perez <fperez@colorado.edu>
4438
4441
4439 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4442 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4440 fix completion of files with dots in their names under most
4443 fix completion of files with dots in their names under most
4441 profiles (pysh was OK because the completion order is different).
4444 profiles (pysh was OK because the completion order is different).
4442
4445
4443 2004-07-27 Fernando Perez <fperez@colorado.edu>
4446 2004-07-27 Fernando Perez <fperez@colorado.edu>
4444
4447
4445 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4448 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4446 keywords manually, b/c the one in keyword.py was removed in python
4449 keywords manually, b/c the one in keyword.py was removed in python
4447 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4450 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4448 This is NOT a bug under python 2.3 and earlier.
4451 This is NOT a bug under python 2.3 and earlier.
4449
4452
4450 2004-07-26 Fernando Perez <fperez@colorado.edu>
4453 2004-07-26 Fernando Perez <fperez@colorado.edu>
4451
4454
4452 * IPython/ultraTB.py (VerboseTB.text): Add another
4455 * IPython/ultraTB.py (VerboseTB.text): Add another
4453 linecache.checkcache() call to try to prevent inspect.py from
4456 linecache.checkcache() call to try to prevent inspect.py from
4454 crashing under python 2.3. I think this fixes
4457 crashing under python 2.3. I think this fixes
4455 http://www.scipy.net/roundup/ipython/issue17.
4458 http://www.scipy.net/roundup/ipython/issue17.
4456
4459
4457 2004-07-26 *** Released version 0.6.2
4460 2004-07-26 *** Released version 0.6.2
4458
4461
4459 2004-07-26 Fernando Perez <fperez@colorado.edu>
4462 2004-07-26 Fernando Perez <fperez@colorado.edu>
4460
4463
4461 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4464 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4462 fail for any number.
4465 fail for any number.
4463 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4466 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4464 empty bookmarks.
4467 empty bookmarks.
4465
4468
4466 2004-07-26 *** Released version 0.6.1
4469 2004-07-26 *** Released version 0.6.1
4467
4470
4468 2004-07-26 Fernando Perez <fperez@colorado.edu>
4471 2004-07-26 Fernando Perez <fperez@colorado.edu>
4469
4472
4470 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4473 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4471
4474
4472 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4475 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4473 escaping '()[]{}' in filenames.
4476 escaping '()[]{}' in filenames.
4474
4477
4475 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4478 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4476 Python 2.2 users who lack a proper shlex.split.
4479 Python 2.2 users who lack a proper shlex.split.
4477
4480
4478 2004-07-19 Fernando Perez <fperez@colorado.edu>
4481 2004-07-19 Fernando Perez <fperez@colorado.edu>
4479
4482
4480 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4483 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4481 for reading readline's init file. I follow the normal chain:
4484 for reading readline's init file. I follow the normal chain:
4482 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4485 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4483 report by Mike Heeter. This closes
4486 report by Mike Heeter. This closes
4484 http://www.scipy.net/roundup/ipython/issue16.
4487 http://www.scipy.net/roundup/ipython/issue16.
4485
4488
4486 2004-07-18 Fernando Perez <fperez@colorado.edu>
4489 2004-07-18 Fernando Perez <fperez@colorado.edu>
4487
4490
4488 * IPython/iplib.py (__init__): Add better handling of '\' under
4491 * IPython/iplib.py (__init__): Add better handling of '\' under
4489 Win32 for filenames. After a patch by Ville.
4492 Win32 for filenames. After a patch by Ville.
4490
4493
4491 2004-07-17 Fernando Perez <fperez@colorado.edu>
4494 2004-07-17 Fernando Perez <fperez@colorado.edu>
4492
4495
4493 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4496 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4494 autocalling would be triggered for 'foo is bar' if foo is
4497 autocalling would be triggered for 'foo is bar' if foo is
4495 callable. I also cleaned up the autocall detection code to use a
4498 callable. I also cleaned up the autocall detection code to use a
4496 regexp, which is faster. Bug reported by Alexander Schmolck.
4499 regexp, which is faster. Bug reported by Alexander Schmolck.
4497
4500
4498 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4501 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4499 '?' in them would confuse the help system. Reported by Alex
4502 '?' in them would confuse the help system. Reported by Alex
4500 Schmolck.
4503 Schmolck.
4501
4504
4502 2004-07-16 Fernando Perez <fperez@colorado.edu>
4505 2004-07-16 Fernando Perez <fperez@colorado.edu>
4503
4506
4504 * IPython/GnuplotInteractive.py (__all__): added plot2.
4507 * IPython/GnuplotInteractive.py (__all__): added plot2.
4505
4508
4506 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4509 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4507 plotting dictionaries, lists or tuples of 1d arrays.
4510 plotting dictionaries, lists or tuples of 1d arrays.
4508
4511
4509 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4512 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4510 optimizations.
4513 optimizations.
4511
4514
4512 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4515 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4513 the information which was there from Janko's original IPP code:
4516 the information which was there from Janko's original IPP code:
4514
4517
4515 03.05.99 20:53 porto.ifm.uni-kiel.de
4518 03.05.99 20:53 porto.ifm.uni-kiel.de
4516 --Started changelog.
4519 --Started changelog.
4517 --make clear do what it say it does
4520 --make clear do what it say it does
4518 --added pretty output of lines from inputcache
4521 --added pretty output of lines from inputcache
4519 --Made Logger a mixin class, simplifies handling of switches
4522 --Made Logger a mixin class, simplifies handling of switches
4520 --Added own completer class. .string<TAB> expands to last history
4523 --Added own completer class. .string<TAB> expands to last history
4521 line which starts with string. The new expansion is also present
4524 line which starts with string. The new expansion is also present
4522 with Ctrl-r from the readline library. But this shows, who this
4525 with Ctrl-r from the readline library. But this shows, who this
4523 can be done for other cases.
4526 can be done for other cases.
4524 --Added convention that all shell functions should accept a
4527 --Added convention that all shell functions should accept a
4525 parameter_string This opens the door for different behaviour for
4528 parameter_string This opens the door for different behaviour for
4526 each function. @cd is a good example of this.
4529 each function. @cd is a good example of this.
4527
4530
4528 04.05.99 12:12 porto.ifm.uni-kiel.de
4531 04.05.99 12:12 porto.ifm.uni-kiel.de
4529 --added logfile rotation
4532 --added logfile rotation
4530 --added new mainloop method which freezes first the namespace
4533 --added new mainloop method which freezes first the namespace
4531
4534
4532 07.05.99 21:24 porto.ifm.uni-kiel.de
4535 07.05.99 21:24 porto.ifm.uni-kiel.de
4533 --added the docreader classes. Now there is a help system.
4536 --added the docreader classes. Now there is a help system.
4534 -This is only a first try. Currently it's not easy to put new
4537 -This is only a first try. Currently it's not easy to put new
4535 stuff in the indices. But this is the way to go. Info would be
4538 stuff in the indices. But this is the way to go. Info would be
4536 better, but HTML is every where and not everybody has an info
4539 better, but HTML is every where and not everybody has an info
4537 system installed and it's not so easy to change html-docs to info.
4540 system installed and it's not so easy to change html-docs to info.
4538 --added global logfile option
4541 --added global logfile option
4539 --there is now a hook for object inspection method pinfo needs to
4542 --there is now a hook for object inspection method pinfo needs to
4540 be provided for this. Can be reached by two '??'.
4543 be provided for this. Can be reached by two '??'.
4541
4544
4542 08.05.99 20:51 porto.ifm.uni-kiel.de
4545 08.05.99 20:51 porto.ifm.uni-kiel.de
4543 --added a README
4546 --added a README
4544 --bug in rc file. Something has changed so functions in the rc
4547 --bug in rc file. Something has changed so functions in the rc
4545 file need to reference the shell and not self. Not clear if it's a
4548 file need to reference the shell and not self. Not clear if it's a
4546 bug or feature.
4549 bug or feature.
4547 --changed rc file for new behavior
4550 --changed rc file for new behavior
4548
4551
4549 2004-07-15 Fernando Perez <fperez@colorado.edu>
4552 2004-07-15 Fernando Perez <fperez@colorado.edu>
4550
4553
4551 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4554 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4552 cache was falling out of sync in bizarre manners when multi-line
4555 cache was falling out of sync in bizarre manners when multi-line
4553 input was present. Minor optimizations and cleanup.
4556 input was present. Minor optimizations and cleanup.
4554
4557
4555 (Logger): Remove old Changelog info for cleanup. This is the
4558 (Logger): Remove old Changelog info for cleanup. This is the
4556 information which was there from Janko's original code:
4559 information which was there from Janko's original code:
4557
4560
4558 Changes to Logger: - made the default log filename a parameter
4561 Changes to Logger: - made the default log filename a parameter
4559
4562
4560 - put a check for lines beginning with !@? in log(). Needed
4563 - put a check for lines beginning with !@? in log(). Needed
4561 (even if the handlers properly log their lines) for mid-session
4564 (even if the handlers properly log their lines) for mid-session
4562 logging activation to work properly. Without this, lines logged
4565 logging activation to work properly. Without this, lines logged
4563 in mid session, which get read from the cache, would end up
4566 in mid session, which get read from the cache, would end up
4564 'bare' (with !@? in the open) in the log. Now they are caught
4567 'bare' (with !@? in the open) in the log. Now they are caught
4565 and prepended with a #.
4568 and prepended with a #.
4566
4569
4567 * IPython/iplib.py (InteractiveShell.init_readline): added check
4570 * IPython/iplib.py (InteractiveShell.init_readline): added check
4568 in case MagicCompleter fails to be defined, so we don't crash.
4571 in case MagicCompleter fails to be defined, so we don't crash.
4569
4572
4570 2004-07-13 Fernando Perez <fperez@colorado.edu>
4573 2004-07-13 Fernando Perez <fperez@colorado.edu>
4571
4574
4572 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4575 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4573 of EPS if the requested filename ends in '.eps'.
4576 of EPS if the requested filename ends in '.eps'.
4574
4577
4575 2004-07-04 Fernando Perez <fperez@colorado.edu>
4578 2004-07-04 Fernando Perez <fperez@colorado.edu>
4576
4579
4577 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4580 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4578 escaping of quotes when calling the shell.
4581 escaping of quotes when calling the shell.
4579
4582
4580 2004-07-02 Fernando Perez <fperez@colorado.edu>
4583 2004-07-02 Fernando Perez <fperez@colorado.edu>
4581
4584
4582 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4585 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4583 gettext not working because we were clobbering '_'. Fixes
4586 gettext not working because we were clobbering '_'. Fixes
4584 http://www.scipy.net/roundup/ipython/issue6.
4587 http://www.scipy.net/roundup/ipython/issue6.
4585
4588
4586 2004-07-01 Fernando Perez <fperez@colorado.edu>
4589 2004-07-01 Fernando Perez <fperez@colorado.edu>
4587
4590
4588 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4591 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4589 into @cd. Patch by Ville.
4592 into @cd. Patch by Ville.
4590
4593
4591 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4594 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4592 new function to store things after ipmaker runs. Patch by Ville.
4595 new function to store things after ipmaker runs. Patch by Ville.
4593 Eventually this will go away once ipmaker is removed and the class
4596 Eventually this will go away once ipmaker is removed and the class
4594 gets cleaned up, but for now it's ok. Key functionality here is
4597 gets cleaned up, but for now it's ok. Key functionality here is
4595 the addition of the persistent storage mechanism, a dict for
4598 the addition of the persistent storage mechanism, a dict for
4596 keeping data across sessions (for now just bookmarks, but more can
4599 keeping data across sessions (for now just bookmarks, but more can
4597 be implemented later).
4600 be implemented later).
4598
4601
4599 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4602 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4600 persistent across sections. Patch by Ville, I modified it
4603 persistent across sections. Patch by Ville, I modified it
4601 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4604 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4602 added a '-l' option to list all bookmarks.
4605 added a '-l' option to list all bookmarks.
4603
4606
4604 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4607 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4605 center for cleanup. Registered with atexit.register(). I moved
4608 center for cleanup. Registered with atexit.register(). I moved
4606 here the old exit_cleanup(). After a patch by Ville.
4609 here the old exit_cleanup(). After a patch by Ville.
4607
4610
4608 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4611 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4609 characters in the hacked shlex_split for python 2.2.
4612 characters in the hacked shlex_split for python 2.2.
4610
4613
4611 * IPython/iplib.py (file_matches): more fixes to filenames with
4614 * IPython/iplib.py (file_matches): more fixes to filenames with
4612 whitespace in them. It's not perfect, but limitations in python's
4615 whitespace in them. It's not perfect, but limitations in python's
4613 readline make it impossible to go further.
4616 readline make it impossible to go further.
4614
4617
4615 2004-06-29 Fernando Perez <fperez@colorado.edu>
4618 2004-06-29 Fernando Perez <fperez@colorado.edu>
4616
4619
4617 * IPython/iplib.py (file_matches): escape whitespace correctly in
4620 * IPython/iplib.py (file_matches): escape whitespace correctly in
4618 filename completions. Bug reported by Ville.
4621 filename completions. Bug reported by Ville.
4619
4622
4620 2004-06-28 Fernando Perez <fperez@colorado.edu>
4623 2004-06-28 Fernando Perez <fperez@colorado.edu>
4621
4624
4622 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4625 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4623 the history file will be called 'history-PROFNAME' (or just
4626 the history file will be called 'history-PROFNAME' (or just
4624 'history' if no profile is loaded). I was getting annoyed at
4627 'history' if no profile is loaded). I was getting annoyed at
4625 getting my Numerical work history clobbered by pysh sessions.
4628 getting my Numerical work history clobbered by pysh sessions.
4626
4629
4627 * IPython/iplib.py (InteractiveShell.__init__): Internal
4630 * IPython/iplib.py (InteractiveShell.__init__): Internal
4628 getoutputerror() function so that we can honor the system_verbose
4631 getoutputerror() function so that we can honor the system_verbose
4629 flag for _all_ system calls. I also added escaping of #
4632 flag for _all_ system calls. I also added escaping of #
4630 characters here to avoid confusing Itpl.
4633 characters here to avoid confusing Itpl.
4631
4634
4632 * IPython/Magic.py (shlex_split): removed call to shell in
4635 * IPython/Magic.py (shlex_split): removed call to shell in
4633 parse_options and replaced it with shlex.split(). The annoying
4636 parse_options and replaced it with shlex.split(). The annoying
4634 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4637 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4635 to backport it from 2.3, with several frail hacks (the shlex
4638 to backport it from 2.3, with several frail hacks (the shlex
4636 module is rather limited in 2.2). Thanks to a suggestion by Ville
4639 module is rather limited in 2.2). Thanks to a suggestion by Ville
4637 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4640 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4638 problem.
4641 problem.
4639
4642
4640 (Magic.magic_system_verbose): new toggle to print the actual
4643 (Magic.magic_system_verbose): new toggle to print the actual
4641 system calls made by ipython. Mainly for debugging purposes.
4644 system calls made by ipython. Mainly for debugging purposes.
4642
4645
4643 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4646 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4644 doesn't support persistence. Reported (and fix suggested) by
4647 doesn't support persistence. Reported (and fix suggested) by
4645 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4648 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4646
4649
4647 2004-06-26 Fernando Perez <fperez@colorado.edu>
4650 2004-06-26 Fernando Perez <fperez@colorado.edu>
4648
4651
4649 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4652 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4650 continue prompts.
4653 continue prompts.
4651
4654
4652 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4655 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4653 function (basically a big docstring) and a few more things here to
4656 function (basically a big docstring) and a few more things here to
4654 speedup startup. pysh.py is now very lightweight. We want because
4657 speedup startup. pysh.py is now very lightweight. We want because
4655 it gets execfile'd, while InterpreterExec gets imported, so
4658 it gets execfile'd, while InterpreterExec gets imported, so
4656 byte-compilation saves time.
4659 byte-compilation saves time.
4657
4660
4658 2004-06-25 Fernando Perez <fperez@colorado.edu>
4661 2004-06-25 Fernando Perez <fperez@colorado.edu>
4659
4662
4660 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4663 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4661 -NUM', which was recently broken.
4664 -NUM', which was recently broken.
4662
4665
4663 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4666 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4664 in multi-line input (but not !!, which doesn't make sense there).
4667 in multi-line input (but not !!, which doesn't make sense there).
4665
4668
4666 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4669 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4667 It's just too useful, and people can turn it off in the less
4670 It's just too useful, and people can turn it off in the less
4668 common cases where it's a problem.
4671 common cases where it's a problem.
4669
4672
4670 2004-06-24 Fernando Perez <fperez@colorado.edu>
4673 2004-06-24 Fernando Perez <fperez@colorado.edu>
4671
4674
4672 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4675 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4673 special syntaxes (like alias calling) is now allied in multi-line
4676 special syntaxes (like alias calling) is now allied in multi-line
4674 input. This is still _very_ experimental, but it's necessary for
4677 input. This is still _very_ experimental, but it's necessary for
4675 efficient shell usage combining python looping syntax with system
4678 efficient shell usage combining python looping syntax with system
4676 calls. For now it's restricted to aliases, I don't think it
4679 calls. For now it's restricted to aliases, I don't think it
4677 really even makes sense to have this for magics.
4680 really even makes sense to have this for magics.
4678
4681
4679 2004-06-23 Fernando Perez <fperez@colorado.edu>
4682 2004-06-23 Fernando Perez <fperez@colorado.edu>
4680
4683
4681 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4684 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4682 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4685 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4683
4686
4684 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4687 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4685 extensions under Windows (after code sent by Gary Bishop). The
4688 extensions under Windows (after code sent by Gary Bishop). The
4686 extensions considered 'executable' are stored in IPython's rc
4689 extensions considered 'executable' are stored in IPython's rc
4687 structure as win_exec_ext.
4690 structure as win_exec_ext.
4688
4691
4689 * IPython/genutils.py (shell): new function, like system() but
4692 * IPython/genutils.py (shell): new function, like system() but
4690 without return value. Very useful for interactive shell work.
4693 without return value. Very useful for interactive shell work.
4691
4694
4692 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4695 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4693 delete aliases.
4696 delete aliases.
4694
4697
4695 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4698 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4696 sure that the alias table doesn't contain python keywords.
4699 sure that the alias table doesn't contain python keywords.
4697
4700
4698 2004-06-21 Fernando Perez <fperez@colorado.edu>
4701 2004-06-21 Fernando Perez <fperez@colorado.edu>
4699
4702
4700 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4703 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4701 non-existent items are found in $PATH. Reported by Thorsten.
4704 non-existent items are found in $PATH. Reported by Thorsten.
4702
4705
4703 2004-06-20 Fernando Perez <fperez@colorado.edu>
4706 2004-06-20 Fernando Perez <fperez@colorado.edu>
4704
4707
4705 * IPython/iplib.py (complete): modified the completer so that the
4708 * IPython/iplib.py (complete): modified the completer so that the
4706 order of priorities can be easily changed at runtime.
4709 order of priorities can be easily changed at runtime.
4707
4710
4708 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4711 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4709 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4712 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4710
4713
4711 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4714 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4712 expand Python variables prepended with $ in all system calls. The
4715 expand Python variables prepended with $ in all system calls. The
4713 same was done to InteractiveShell.handle_shell_escape. Now all
4716 same was done to InteractiveShell.handle_shell_escape. Now all
4714 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4717 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4715 expansion of python variables and expressions according to the
4718 expansion of python variables and expressions according to the
4716 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4719 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4717
4720
4718 Though PEP-215 has been rejected, a similar (but simpler) one
4721 Though PEP-215 has been rejected, a similar (but simpler) one
4719 seems like it will go into Python 2.4, PEP-292 -
4722 seems like it will go into Python 2.4, PEP-292 -
4720 http://www.python.org/peps/pep-0292.html.
4723 http://www.python.org/peps/pep-0292.html.
4721
4724
4722 I'll keep the full syntax of PEP-215, since IPython has since the
4725 I'll keep the full syntax of PEP-215, since IPython has since the
4723 start used Ka-Ping Yee's reference implementation discussed there
4726 start used Ka-Ping Yee's reference implementation discussed there
4724 (Itpl), and I actually like the powerful semantics it offers.
4727 (Itpl), and I actually like the powerful semantics it offers.
4725
4728
4726 In order to access normal shell variables, the $ has to be escaped
4729 In order to access normal shell variables, the $ has to be escaped
4727 via an extra $. For example:
4730 via an extra $. For example:
4728
4731
4729 In [7]: PATH='a python variable'
4732 In [7]: PATH='a python variable'
4730
4733
4731 In [8]: !echo $PATH
4734 In [8]: !echo $PATH
4732 a python variable
4735 a python variable
4733
4736
4734 In [9]: !echo $$PATH
4737 In [9]: !echo $$PATH
4735 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4738 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4736
4739
4737 (Magic.parse_options): escape $ so the shell doesn't evaluate
4740 (Magic.parse_options): escape $ so the shell doesn't evaluate
4738 things prematurely.
4741 things prematurely.
4739
4742
4740 * IPython/iplib.py (InteractiveShell.call_alias): added the
4743 * IPython/iplib.py (InteractiveShell.call_alias): added the
4741 ability for aliases to expand python variables via $.
4744 ability for aliases to expand python variables via $.
4742
4745
4743 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4746 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4744 system, now there's a @rehash/@rehashx pair of magics. These work
4747 system, now there's a @rehash/@rehashx pair of magics. These work
4745 like the csh rehash command, and can be invoked at any time. They
4748 like the csh rehash command, and can be invoked at any time. They
4746 build a table of aliases to everything in the user's $PATH
4749 build a table of aliases to everything in the user's $PATH
4747 (@rehash uses everything, @rehashx is slower but only adds
4750 (@rehash uses everything, @rehashx is slower but only adds
4748 executable files). With this, the pysh.py-based shell profile can
4751 executable files). With this, the pysh.py-based shell profile can
4749 now simply call rehash upon startup, and full access to all
4752 now simply call rehash upon startup, and full access to all
4750 programs in the user's path is obtained.
4753 programs in the user's path is obtained.
4751
4754
4752 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4755 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4753 functionality is now fully in place. I removed the old dynamic
4756 functionality is now fully in place. I removed the old dynamic
4754 code generation based approach, in favor of a much lighter one
4757 code generation based approach, in favor of a much lighter one
4755 based on a simple dict. The advantage is that this allows me to
4758 based on a simple dict. The advantage is that this allows me to
4756 now have thousands of aliases with negligible cost (unthinkable
4759 now have thousands of aliases with negligible cost (unthinkable
4757 with the old system).
4760 with the old system).
4758
4761
4759 2004-06-19 Fernando Perez <fperez@colorado.edu>
4762 2004-06-19 Fernando Perez <fperez@colorado.edu>
4760
4763
4761 * IPython/iplib.py (__init__): extended MagicCompleter class to
4764 * IPython/iplib.py (__init__): extended MagicCompleter class to
4762 also complete (last in priority) on user aliases.
4765 also complete (last in priority) on user aliases.
4763
4766
4764 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4767 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4765 call to eval.
4768 call to eval.
4766 (ItplNS.__init__): Added a new class which functions like Itpl,
4769 (ItplNS.__init__): Added a new class which functions like Itpl,
4767 but allows configuring the namespace for the evaluation to occur
4770 but allows configuring the namespace for the evaluation to occur
4768 in.
4771 in.
4769
4772
4770 2004-06-18 Fernando Perez <fperez@colorado.edu>
4773 2004-06-18 Fernando Perez <fperez@colorado.edu>
4771
4774
4772 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4775 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4773 better message when 'exit' or 'quit' are typed (a common newbie
4776 better message when 'exit' or 'quit' are typed (a common newbie
4774 confusion).
4777 confusion).
4775
4778
4776 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4779 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4777 check for Windows users.
4780 check for Windows users.
4778
4781
4779 * IPython/iplib.py (InteractiveShell.user_setup): removed
4782 * IPython/iplib.py (InteractiveShell.user_setup): removed
4780 disabling of colors for Windows. I'll test at runtime and issue a
4783 disabling of colors for Windows. I'll test at runtime and issue a
4781 warning if Gary's readline isn't found, as to nudge users to
4784 warning if Gary's readline isn't found, as to nudge users to
4782 download it.
4785 download it.
4783
4786
4784 2004-06-16 Fernando Perez <fperez@colorado.edu>
4787 2004-06-16 Fernando Perez <fperez@colorado.edu>
4785
4788
4786 * IPython/genutils.py (Stream.__init__): changed to print errors
4789 * IPython/genutils.py (Stream.__init__): changed to print errors
4787 to sys.stderr. I had a circular dependency here. Now it's
4790 to sys.stderr. I had a circular dependency here. Now it's
4788 possible to run ipython as IDLE's shell (consider this pre-alpha,
4791 possible to run ipython as IDLE's shell (consider this pre-alpha,
4789 since true stdout things end up in the starting terminal instead
4792 since true stdout things end up in the starting terminal instead
4790 of IDLE's out).
4793 of IDLE's out).
4791
4794
4792 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4795 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4793 users who haven't # updated their prompt_in2 definitions. Remove
4796 users who haven't # updated their prompt_in2 definitions. Remove
4794 eventually.
4797 eventually.
4795 (multiple_replace): added credit to original ASPN recipe.
4798 (multiple_replace): added credit to original ASPN recipe.
4796
4799
4797 2004-06-15 Fernando Perez <fperez@colorado.edu>
4800 2004-06-15 Fernando Perez <fperez@colorado.edu>
4798
4801
4799 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4802 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4800 list of auto-defined aliases.
4803 list of auto-defined aliases.
4801
4804
4802 2004-06-13 Fernando Perez <fperez@colorado.edu>
4805 2004-06-13 Fernando Perez <fperez@colorado.edu>
4803
4806
4804 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4807 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4805 install was really requested (so setup.py can be used for other
4808 install was really requested (so setup.py can be used for other
4806 things under Windows).
4809 things under Windows).
4807
4810
4808 2004-06-10 Fernando Perez <fperez@colorado.edu>
4811 2004-06-10 Fernando Perez <fperez@colorado.edu>
4809
4812
4810 * IPython/Logger.py (Logger.create_log): Manually remove any old
4813 * IPython/Logger.py (Logger.create_log): Manually remove any old
4811 backup, since os.remove may fail under Windows. Fixes bug
4814 backup, since os.remove may fail under Windows. Fixes bug
4812 reported by Thorsten.
4815 reported by Thorsten.
4813
4816
4814 2004-06-09 Fernando Perez <fperez@colorado.edu>
4817 2004-06-09 Fernando Perez <fperez@colorado.edu>
4815
4818
4816 * examples/example-embed.py: fixed all references to %n (replaced
4819 * examples/example-embed.py: fixed all references to %n (replaced
4817 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4820 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4818 for all examples and the manual as well.
4821 for all examples and the manual as well.
4819
4822
4820 2004-06-08 Fernando Perez <fperez@colorado.edu>
4823 2004-06-08 Fernando Perez <fperez@colorado.edu>
4821
4824
4822 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4825 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4823 alignment and color management. All 3 prompt subsystems now
4826 alignment and color management. All 3 prompt subsystems now
4824 inherit from BasePrompt.
4827 inherit from BasePrompt.
4825
4828
4826 * tools/release: updates for windows installer build and tag rpms
4829 * tools/release: updates for windows installer build and tag rpms
4827 with python version (since paths are fixed).
4830 with python version (since paths are fixed).
4828
4831
4829 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4832 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4830 which will become eventually obsolete. Also fixed the default
4833 which will become eventually obsolete. Also fixed the default
4831 prompt_in2 to use \D, so at least new users start with the correct
4834 prompt_in2 to use \D, so at least new users start with the correct
4832 defaults.
4835 defaults.
4833 WARNING: Users with existing ipythonrc files will need to apply
4836 WARNING: Users with existing ipythonrc files will need to apply
4834 this fix manually!
4837 this fix manually!
4835
4838
4836 * setup.py: make windows installer (.exe). This is finally the
4839 * setup.py: make windows installer (.exe). This is finally the
4837 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4840 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4838 which I hadn't included because it required Python 2.3 (or recent
4841 which I hadn't included because it required Python 2.3 (or recent
4839 distutils).
4842 distutils).
4840
4843
4841 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4844 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4842 usage of new '\D' escape.
4845 usage of new '\D' escape.
4843
4846
4844 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4847 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4845 lacks os.getuid())
4848 lacks os.getuid())
4846 (CachedOutput.set_colors): Added the ability to turn coloring
4849 (CachedOutput.set_colors): Added the ability to turn coloring
4847 on/off with @colors even for manually defined prompt colors. It
4850 on/off with @colors even for manually defined prompt colors. It
4848 uses a nasty global, but it works safely and via the generic color
4851 uses a nasty global, but it works safely and via the generic color
4849 handling mechanism.
4852 handling mechanism.
4850 (Prompt2.__init__): Introduced new escape '\D' for continuation
4853 (Prompt2.__init__): Introduced new escape '\D' for continuation
4851 prompts. It represents the counter ('\#') as dots.
4854 prompts. It represents the counter ('\#') as dots.
4852 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4855 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4853 need to update their ipythonrc files and replace '%n' with '\D' in
4856 need to update their ipythonrc files and replace '%n' with '\D' in
4854 their prompt_in2 settings everywhere. Sorry, but there's
4857 their prompt_in2 settings everywhere. Sorry, but there's
4855 otherwise no clean way to get all prompts to properly align. The
4858 otherwise no clean way to get all prompts to properly align. The
4856 ipythonrc shipped with IPython has been updated.
4859 ipythonrc shipped with IPython has been updated.
4857
4860
4858 2004-06-07 Fernando Perez <fperez@colorado.edu>
4861 2004-06-07 Fernando Perez <fperez@colorado.edu>
4859
4862
4860 * setup.py (isfile): Pass local_icons option to latex2html, so the
4863 * setup.py (isfile): Pass local_icons option to latex2html, so the
4861 resulting HTML file is self-contained. Thanks to
4864 resulting HTML file is self-contained. Thanks to
4862 dryice-AT-liu.com.cn for the tip.
4865 dryice-AT-liu.com.cn for the tip.
4863
4866
4864 * pysh.py: I created a new profile 'shell', which implements a
4867 * pysh.py: I created a new profile 'shell', which implements a
4865 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4868 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4866 system shell, nor will it become one anytime soon. It's mainly
4869 system shell, nor will it become one anytime soon. It's mainly
4867 meant to illustrate the use of the new flexible bash-like prompts.
4870 meant to illustrate the use of the new flexible bash-like prompts.
4868 I guess it could be used by hardy souls for true shell management,
4871 I guess it could be used by hardy souls for true shell management,
4869 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4872 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4870 profile. This uses the InterpreterExec extension provided by
4873 profile. This uses the InterpreterExec extension provided by
4871 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4874 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4872
4875
4873 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4876 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4874 auto-align itself with the length of the previous input prompt
4877 auto-align itself with the length of the previous input prompt
4875 (taking into account the invisible color escapes).
4878 (taking into account the invisible color escapes).
4876 (CachedOutput.__init__): Large restructuring of this class. Now
4879 (CachedOutput.__init__): Large restructuring of this class. Now
4877 all three prompts (primary1, primary2, output) are proper objects,
4880 all three prompts (primary1, primary2, output) are proper objects,
4878 managed by the 'parent' CachedOutput class. The code is still a
4881 managed by the 'parent' CachedOutput class. The code is still a
4879 bit hackish (all prompts share state via a pointer to the cache),
4882 bit hackish (all prompts share state via a pointer to the cache),
4880 but it's overall far cleaner than before.
4883 but it's overall far cleaner than before.
4881
4884
4882 * IPython/genutils.py (getoutputerror): modified to add verbose,
4885 * IPython/genutils.py (getoutputerror): modified to add verbose,
4883 debug and header options. This makes the interface of all getout*
4886 debug and header options. This makes the interface of all getout*
4884 functions uniform.
4887 functions uniform.
4885 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4888 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4886
4889
4887 * IPython/Magic.py (Magic.default_option): added a function to
4890 * IPython/Magic.py (Magic.default_option): added a function to
4888 allow registering default options for any magic command. This
4891 allow registering default options for any magic command. This
4889 makes it easy to have profiles which customize the magics globally
4892 makes it easy to have profiles which customize the magics globally
4890 for a certain use. The values set through this function are
4893 for a certain use. The values set through this function are
4891 picked up by the parse_options() method, which all magics should
4894 picked up by the parse_options() method, which all magics should
4892 use to parse their options.
4895 use to parse their options.
4893
4896
4894 * IPython/genutils.py (warn): modified the warnings framework to
4897 * IPython/genutils.py (warn): modified the warnings framework to
4895 use the Term I/O class. I'm trying to slowly unify all of
4898 use the Term I/O class. I'm trying to slowly unify all of
4896 IPython's I/O operations to pass through Term.
4899 IPython's I/O operations to pass through Term.
4897
4900
4898 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4901 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4899 the secondary prompt to correctly match the length of the primary
4902 the secondary prompt to correctly match the length of the primary
4900 one for any prompt. Now multi-line code will properly line up
4903 one for any prompt. Now multi-line code will properly line up
4901 even for path dependent prompts, such as the new ones available
4904 even for path dependent prompts, such as the new ones available
4902 via the prompt_specials.
4905 via the prompt_specials.
4903
4906
4904 2004-06-06 Fernando Perez <fperez@colorado.edu>
4907 2004-06-06 Fernando Perez <fperez@colorado.edu>
4905
4908
4906 * IPython/Prompts.py (prompt_specials): Added the ability to have
4909 * IPython/Prompts.py (prompt_specials): Added the ability to have
4907 bash-like special sequences in the prompts, which get
4910 bash-like special sequences in the prompts, which get
4908 automatically expanded. Things like hostname, current working
4911 automatically expanded. Things like hostname, current working
4909 directory and username are implemented already, but it's easy to
4912 directory and username are implemented already, but it's easy to
4910 add more in the future. Thanks to a patch by W.J. van der Laan
4913 add more in the future. Thanks to a patch by W.J. van der Laan
4911 <gnufnork-AT-hetdigitalegat.nl>
4914 <gnufnork-AT-hetdigitalegat.nl>
4912 (prompt_specials): Added color support for prompt strings, so
4915 (prompt_specials): Added color support for prompt strings, so
4913 users can define arbitrary color setups for their prompts.
4916 users can define arbitrary color setups for their prompts.
4914
4917
4915 2004-06-05 Fernando Perez <fperez@colorado.edu>
4918 2004-06-05 Fernando Perez <fperez@colorado.edu>
4916
4919
4917 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4920 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4918 code to load Gary Bishop's readline and configure it
4921 code to load Gary Bishop's readline and configure it
4919 automatically. Thanks to Gary for help on this.
4922 automatically. Thanks to Gary for help on this.
4920
4923
4921 2004-06-01 Fernando Perez <fperez@colorado.edu>
4924 2004-06-01 Fernando Perez <fperez@colorado.edu>
4922
4925
4923 * IPython/Logger.py (Logger.create_log): fix bug for logging
4926 * IPython/Logger.py (Logger.create_log): fix bug for logging
4924 with no filename (previous fix was incomplete).
4927 with no filename (previous fix was incomplete).
4925
4928
4926 2004-05-25 Fernando Perez <fperez@colorado.edu>
4929 2004-05-25 Fernando Perez <fperez@colorado.edu>
4927
4930
4928 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4931 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4929 parens would get passed to the shell.
4932 parens would get passed to the shell.
4930
4933
4931 2004-05-20 Fernando Perez <fperez@colorado.edu>
4934 2004-05-20 Fernando Perez <fperez@colorado.edu>
4932
4935
4933 * IPython/Magic.py (Magic.magic_prun): changed default profile
4936 * IPython/Magic.py (Magic.magic_prun): changed default profile
4934 sort order to 'time' (the more common profiling need).
4937 sort order to 'time' (the more common profiling need).
4935
4938
4936 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4939 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4937 so that source code shown is guaranteed in sync with the file on
4940 so that source code shown is guaranteed in sync with the file on
4938 disk (also changed in psource). Similar fix to the one for
4941 disk (also changed in psource). Similar fix to the one for
4939 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4942 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4940 <yann.ledu-AT-noos.fr>.
4943 <yann.ledu-AT-noos.fr>.
4941
4944
4942 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4945 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4943 with a single option would not be correctly parsed. Closes
4946 with a single option would not be correctly parsed. Closes
4944 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4947 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4945 introduced in 0.6.0 (on 2004-05-06).
4948 introduced in 0.6.0 (on 2004-05-06).
4946
4949
4947 2004-05-13 *** Released version 0.6.0
4950 2004-05-13 *** Released version 0.6.0
4948
4951
4949 2004-05-13 Fernando Perez <fperez@colorado.edu>
4952 2004-05-13 Fernando Perez <fperez@colorado.edu>
4950
4953
4951 * debian/: Added debian/ directory to CVS, so that debian support
4954 * debian/: Added debian/ directory to CVS, so that debian support
4952 is publicly accessible. The debian package is maintained by Jack
4955 is publicly accessible. The debian package is maintained by Jack
4953 Moffit <jack-AT-xiph.org>.
4956 Moffit <jack-AT-xiph.org>.
4954
4957
4955 * Documentation: included the notes about an ipython-based system
4958 * Documentation: included the notes about an ipython-based system
4956 shell (the hypothetical 'pysh') into the new_design.pdf document,
4959 shell (the hypothetical 'pysh') into the new_design.pdf document,
4957 so that these ideas get distributed to users along with the
4960 so that these ideas get distributed to users along with the
4958 official documentation.
4961 official documentation.
4959
4962
4960 2004-05-10 Fernando Perez <fperez@colorado.edu>
4963 2004-05-10 Fernando Perez <fperez@colorado.edu>
4961
4964
4962 * IPython/Logger.py (Logger.create_log): fix recently introduced
4965 * IPython/Logger.py (Logger.create_log): fix recently introduced
4963 bug (misindented line) where logstart would fail when not given an
4966 bug (misindented line) where logstart would fail when not given an
4964 explicit filename.
4967 explicit filename.
4965
4968
4966 2004-05-09 Fernando Perez <fperez@colorado.edu>
4969 2004-05-09 Fernando Perez <fperez@colorado.edu>
4967
4970
4968 * IPython/Magic.py (Magic.parse_options): skip system call when
4971 * IPython/Magic.py (Magic.parse_options): skip system call when
4969 there are no options to look for. Faster, cleaner for the common
4972 there are no options to look for. Faster, cleaner for the common
4970 case.
4973 case.
4971
4974
4972 * Documentation: many updates to the manual: describing Windows
4975 * Documentation: many updates to the manual: describing Windows
4973 support better, Gnuplot updates, credits, misc small stuff. Also
4976 support better, Gnuplot updates, credits, misc small stuff. Also
4974 updated the new_design doc a bit.
4977 updated the new_design doc a bit.
4975
4978
4976 2004-05-06 *** Released version 0.6.0.rc1
4979 2004-05-06 *** Released version 0.6.0.rc1
4977
4980
4978 2004-05-06 Fernando Perez <fperez@colorado.edu>
4981 2004-05-06 Fernando Perez <fperez@colorado.edu>
4979
4982
4980 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4983 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4981 operations to use the vastly more efficient list/''.join() method.
4984 operations to use the vastly more efficient list/''.join() method.
4982 (FormattedTB.text): Fix
4985 (FormattedTB.text): Fix
4983 http://www.scipy.net/roundup/ipython/issue12 - exception source
4986 http://www.scipy.net/roundup/ipython/issue12 - exception source
4984 extract not updated after reload. Thanks to Mike Salib
4987 extract not updated after reload. Thanks to Mike Salib
4985 <msalib-AT-mit.edu> for pinning the source of the problem.
4988 <msalib-AT-mit.edu> for pinning the source of the problem.
4986 Fortunately, the solution works inside ipython and doesn't require
4989 Fortunately, the solution works inside ipython and doesn't require
4987 any changes to python proper.
4990 any changes to python proper.
4988
4991
4989 * IPython/Magic.py (Magic.parse_options): Improved to process the
4992 * IPython/Magic.py (Magic.parse_options): Improved to process the
4990 argument list as a true shell would (by actually using the
4993 argument list as a true shell would (by actually using the
4991 underlying system shell). This way, all @magics automatically get
4994 underlying system shell). This way, all @magics automatically get
4992 shell expansion for variables. Thanks to a comment by Alex
4995 shell expansion for variables. Thanks to a comment by Alex
4993 Schmolck.
4996 Schmolck.
4994
4997
4995 2004-04-04 Fernando Perez <fperez@colorado.edu>
4998 2004-04-04 Fernando Perez <fperez@colorado.edu>
4996
4999
4997 * IPython/iplib.py (InteractiveShell.interact): Added a special
5000 * IPython/iplib.py (InteractiveShell.interact): Added a special
4998 trap for a debugger quit exception, which is basically impossible
5001 trap for a debugger quit exception, which is basically impossible
4999 to handle by normal mechanisms, given what pdb does to the stack.
5002 to handle by normal mechanisms, given what pdb does to the stack.
5000 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
5003 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
5001
5004
5002 2004-04-03 Fernando Perez <fperez@colorado.edu>
5005 2004-04-03 Fernando Perez <fperez@colorado.edu>
5003
5006
5004 * IPython/genutils.py (Term): Standardized the names of the Term
5007 * IPython/genutils.py (Term): Standardized the names of the Term
5005 class streams to cin/cout/cerr, following C++ naming conventions
5008 class streams to cin/cout/cerr, following C++ naming conventions
5006 (I can't use in/out/err because 'in' is not a valid attribute
5009 (I can't use in/out/err because 'in' is not a valid attribute
5007 name).
5010 name).
5008
5011
5009 * IPython/iplib.py (InteractiveShell.interact): don't increment
5012 * IPython/iplib.py (InteractiveShell.interact): don't increment
5010 the prompt if there's no user input. By Daniel 'Dang' Griffith
5013 the prompt if there's no user input. By Daniel 'Dang' Griffith
5011 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
5014 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
5012 Francois Pinard.
5015 Francois Pinard.
5013
5016
5014 2004-04-02 Fernando Perez <fperez@colorado.edu>
5017 2004-04-02 Fernando Perez <fperez@colorado.edu>
5015
5018
5016 * IPython/genutils.py (Stream.__init__): Modified to survive at
5019 * IPython/genutils.py (Stream.__init__): Modified to survive at
5017 least importing in contexts where stdin/out/err aren't true file
5020 least importing in contexts where stdin/out/err aren't true file
5018 objects, such as PyCrust (they lack fileno() and mode). However,
5021 objects, such as PyCrust (they lack fileno() and mode). However,
5019 the recovery facilities which rely on these things existing will
5022 the recovery facilities which rely on these things existing will
5020 not work.
5023 not work.
5021
5024
5022 2004-04-01 Fernando Perez <fperez@colorado.edu>
5025 2004-04-01 Fernando Perez <fperez@colorado.edu>
5023
5026
5024 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
5027 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
5025 use the new getoutputerror() function, so it properly
5028 use the new getoutputerror() function, so it properly
5026 distinguishes stdout/err.
5029 distinguishes stdout/err.
5027
5030
5028 * IPython/genutils.py (getoutputerror): added a function to
5031 * IPython/genutils.py (getoutputerror): added a function to
5029 capture separately the standard output and error of a command.
5032 capture separately the standard output and error of a command.
5030 After a comment from dang on the mailing lists. This code is
5033 After a comment from dang on the mailing lists. This code is
5031 basically a modified version of commands.getstatusoutput(), from
5034 basically a modified version of commands.getstatusoutput(), from
5032 the standard library.
5035 the standard library.
5033
5036
5034 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5037 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5035 '!!' as a special syntax (shorthand) to access @sx.
5038 '!!' as a special syntax (shorthand) to access @sx.
5036
5039
5037 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5040 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5038 command and return its output as a list split on '\n'.
5041 command and return its output as a list split on '\n'.
5039
5042
5040 2004-03-31 Fernando Perez <fperez@colorado.edu>
5043 2004-03-31 Fernando Perez <fperez@colorado.edu>
5041
5044
5042 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5045 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5043 method to dictionaries used as FakeModule instances if they lack
5046 method to dictionaries used as FakeModule instances if they lack
5044 it. At least pydoc in python2.3 breaks for runtime-defined
5047 it. At least pydoc in python2.3 breaks for runtime-defined
5045 functions without this hack. At some point I need to _really_
5048 functions without this hack. At some point I need to _really_
5046 understand what FakeModule is doing, because it's a gross hack.
5049 understand what FakeModule is doing, because it's a gross hack.
5047 But it solves Arnd's problem for now...
5050 But it solves Arnd's problem for now...
5048
5051
5049 2004-02-27 Fernando Perez <fperez@colorado.edu>
5052 2004-02-27 Fernando Perez <fperez@colorado.edu>
5050
5053
5051 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5054 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5052 mode would behave erratically. Also increased the number of
5055 mode would behave erratically. Also increased the number of
5053 possible logs in rotate mod to 999. Thanks to Rod Holland
5056 possible logs in rotate mod to 999. Thanks to Rod Holland
5054 <rhh@StructureLABS.com> for the report and fixes.
5057 <rhh@StructureLABS.com> for the report and fixes.
5055
5058
5056 2004-02-26 Fernando Perez <fperez@colorado.edu>
5059 2004-02-26 Fernando Perez <fperez@colorado.edu>
5057
5060
5058 * IPython/genutils.py (page): Check that the curses module really
5061 * IPython/genutils.py (page): Check that the curses module really
5059 has the initscr attribute before trying to use it. For some
5062 has the initscr attribute before trying to use it. For some
5060 reason, the Solaris curses module is missing this. I think this
5063 reason, the Solaris curses module is missing this. I think this
5061 should be considered a Solaris python bug, but I'm not sure.
5064 should be considered a Solaris python bug, but I'm not sure.
5062
5065
5063 2004-01-17 Fernando Perez <fperez@colorado.edu>
5066 2004-01-17 Fernando Perez <fperez@colorado.edu>
5064
5067
5065 * IPython/genutils.py (Stream.__init__): Changes to try to make
5068 * IPython/genutils.py (Stream.__init__): Changes to try to make
5066 ipython robust against stdin/out/err being closed by the user.
5069 ipython robust against stdin/out/err being closed by the user.
5067 This is 'user error' (and blocks a normal python session, at least
5070 This is 'user error' (and blocks a normal python session, at least
5068 the stdout case). However, Ipython should be able to survive such
5071 the stdout case). However, Ipython should be able to survive such
5069 instances of abuse as gracefully as possible. To simplify the
5072 instances of abuse as gracefully as possible. To simplify the
5070 coding and maintain compatibility with Gary Bishop's Term
5073 coding and maintain compatibility with Gary Bishop's Term
5071 contributions, I've made use of classmethods for this. I think
5074 contributions, I've made use of classmethods for this. I think
5072 this introduces a dependency on python 2.2.
5075 this introduces a dependency on python 2.2.
5073
5076
5074 2004-01-13 Fernando Perez <fperez@colorado.edu>
5077 2004-01-13 Fernando Perez <fperez@colorado.edu>
5075
5078
5076 * IPython/numutils.py (exp_safe): simplified the code a bit and
5079 * IPython/numutils.py (exp_safe): simplified the code a bit and
5077 removed the need for importing the kinds module altogether.
5080 removed the need for importing the kinds module altogether.
5078
5081
5079 2004-01-06 Fernando Perez <fperez@colorado.edu>
5082 2004-01-06 Fernando Perez <fperez@colorado.edu>
5080
5083
5081 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5084 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5082 a magic function instead, after some community feedback. No
5085 a magic function instead, after some community feedback. No
5083 special syntax will exist for it, but its name is deliberately
5086 special syntax will exist for it, but its name is deliberately
5084 very short.
5087 very short.
5085
5088
5086 2003-12-20 Fernando Perez <fperez@colorado.edu>
5089 2003-12-20 Fernando Perez <fperez@colorado.edu>
5087
5090
5088 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5091 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5089 new functionality, to automagically assign the result of a shell
5092 new functionality, to automagically assign the result of a shell
5090 command to a variable. I'll solicit some community feedback on
5093 command to a variable. I'll solicit some community feedback on
5091 this before making it permanent.
5094 this before making it permanent.
5092
5095
5093 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5096 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5094 requested about callables for which inspect couldn't obtain a
5097 requested about callables for which inspect couldn't obtain a
5095 proper argspec. Thanks to a crash report sent by Etienne
5098 proper argspec. Thanks to a crash report sent by Etienne
5096 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5099 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5097
5100
5098 2003-12-09 Fernando Perez <fperez@colorado.edu>
5101 2003-12-09 Fernando Perez <fperez@colorado.edu>
5099
5102
5100 * IPython/genutils.py (page): patch for the pager to work across
5103 * IPython/genutils.py (page): patch for the pager to work across
5101 various versions of Windows. By Gary Bishop.
5104 various versions of Windows. By Gary Bishop.
5102
5105
5103 2003-12-04 Fernando Perez <fperez@colorado.edu>
5106 2003-12-04 Fernando Perez <fperez@colorado.edu>
5104
5107
5105 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5108 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5106 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5109 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5107 While I tested this and it looks ok, there may still be corner
5110 While I tested this and it looks ok, there may still be corner
5108 cases I've missed.
5111 cases I've missed.
5109
5112
5110 2003-12-01 Fernando Perez <fperez@colorado.edu>
5113 2003-12-01 Fernando Perez <fperez@colorado.edu>
5111
5114
5112 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5115 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5113 where a line like 'p,q=1,2' would fail because the automagic
5116 where a line like 'p,q=1,2' would fail because the automagic
5114 system would be triggered for @p.
5117 system would be triggered for @p.
5115
5118
5116 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5119 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5117 cleanups, code unmodified.
5120 cleanups, code unmodified.
5118
5121
5119 * IPython/genutils.py (Term): added a class for IPython to handle
5122 * IPython/genutils.py (Term): added a class for IPython to handle
5120 output. In most cases it will just be a proxy for stdout/err, but
5123 output. In most cases it will just be a proxy for stdout/err, but
5121 having this allows modifications to be made for some platforms,
5124 having this allows modifications to be made for some platforms,
5122 such as handling color escapes under Windows. All of this code
5125 such as handling color escapes under Windows. All of this code
5123 was contributed by Gary Bishop, with minor modifications by me.
5126 was contributed by Gary Bishop, with minor modifications by me.
5124 The actual changes affect many files.
5127 The actual changes affect many files.
5125
5128
5126 2003-11-30 Fernando Perez <fperez@colorado.edu>
5129 2003-11-30 Fernando Perez <fperez@colorado.edu>
5127
5130
5128 * IPython/iplib.py (file_matches): new completion code, courtesy
5131 * IPython/iplib.py (file_matches): new completion code, courtesy
5129 of Jeff Collins. This enables filename completion again under
5132 of Jeff Collins. This enables filename completion again under
5130 python 2.3, which disabled it at the C level.
5133 python 2.3, which disabled it at the C level.
5131
5134
5132 2003-11-11 Fernando Perez <fperez@colorado.edu>
5135 2003-11-11 Fernando Perez <fperez@colorado.edu>
5133
5136
5134 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5137 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5135 for Numeric.array(map(...)), but often convenient.
5138 for Numeric.array(map(...)), but often convenient.
5136
5139
5137 2003-11-05 Fernando Perez <fperez@colorado.edu>
5140 2003-11-05 Fernando Perez <fperez@colorado.edu>
5138
5141
5139 * IPython/numutils.py (frange): Changed a call from int() to
5142 * IPython/numutils.py (frange): Changed a call from int() to
5140 int(round()) to prevent a problem reported with arange() in the
5143 int(round()) to prevent a problem reported with arange() in the
5141 numpy list.
5144 numpy list.
5142
5145
5143 2003-10-06 Fernando Perez <fperez@colorado.edu>
5146 2003-10-06 Fernando Perez <fperez@colorado.edu>
5144
5147
5145 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5148 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5146 prevent crashes if sys lacks an argv attribute (it happens with
5149 prevent crashes if sys lacks an argv attribute (it happens with
5147 embedded interpreters which build a bare-bones sys module).
5150 embedded interpreters which build a bare-bones sys module).
5148 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5151 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5149
5152
5150 2003-09-24 Fernando Perez <fperez@colorado.edu>
5153 2003-09-24 Fernando Perez <fperez@colorado.edu>
5151
5154
5152 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5155 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5153 to protect against poorly written user objects where __getattr__
5156 to protect against poorly written user objects where __getattr__
5154 raises exceptions other than AttributeError. Thanks to a bug
5157 raises exceptions other than AttributeError. Thanks to a bug
5155 report by Oliver Sander <osander-AT-gmx.de>.
5158 report by Oliver Sander <osander-AT-gmx.de>.
5156
5159
5157 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5160 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5158 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5161 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5159
5162
5160 2003-09-09 Fernando Perez <fperez@colorado.edu>
5163 2003-09-09 Fernando Perez <fperez@colorado.edu>
5161
5164
5162 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5165 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5163 unpacking a list whith a callable as first element would
5166 unpacking a list whith a callable as first element would
5164 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5167 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5165 Collins.
5168 Collins.
5166
5169
5167 2003-08-25 *** Released version 0.5.0
5170 2003-08-25 *** Released version 0.5.0
5168
5171
5169 2003-08-22 Fernando Perez <fperez@colorado.edu>
5172 2003-08-22 Fernando Perez <fperez@colorado.edu>
5170
5173
5171 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5174 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5172 improperly defined user exceptions. Thanks to feedback from Mark
5175 improperly defined user exceptions. Thanks to feedback from Mark
5173 Russell <mrussell-AT-verio.net>.
5176 Russell <mrussell-AT-verio.net>.
5174
5177
5175 2003-08-20 Fernando Perez <fperez@colorado.edu>
5178 2003-08-20 Fernando Perez <fperez@colorado.edu>
5176
5179
5177 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5180 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5178 printing so that it would print multi-line string forms starting
5181 printing so that it would print multi-line string forms starting
5179 with a new line. This way the formatting is better respected for
5182 with a new line. This way the formatting is better respected for
5180 objects which work hard to make nice string forms.
5183 objects which work hard to make nice string forms.
5181
5184
5182 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5185 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5183 autocall would overtake data access for objects with both
5186 autocall would overtake data access for objects with both
5184 __getitem__ and __call__.
5187 __getitem__ and __call__.
5185
5188
5186 2003-08-19 *** Released version 0.5.0-rc1
5189 2003-08-19 *** Released version 0.5.0-rc1
5187
5190
5188 2003-08-19 Fernando Perez <fperez@colorado.edu>
5191 2003-08-19 Fernando Perez <fperez@colorado.edu>
5189
5192
5190 * IPython/deep_reload.py (load_tail): single tiny change here
5193 * IPython/deep_reload.py (load_tail): single tiny change here
5191 seems to fix the long-standing bug of dreload() failing to work
5194 seems to fix the long-standing bug of dreload() failing to work
5192 for dotted names. But this module is pretty tricky, so I may have
5195 for dotted names. But this module is pretty tricky, so I may have
5193 missed some subtlety. Needs more testing!.
5196 missed some subtlety. Needs more testing!.
5194
5197
5195 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5198 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5196 exceptions which have badly implemented __str__ methods.
5199 exceptions which have badly implemented __str__ methods.
5197 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5200 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5198 which I've been getting reports about from Python 2.3 users. I
5201 which I've been getting reports about from Python 2.3 users. I
5199 wish I had a simple test case to reproduce the problem, so I could
5202 wish I had a simple test case to reproduce the problem, so I could
5200 either write a cleaner workaround or file a bug report if
5203 either write a cleaner workaround or file a bug report if
5201 necessary.
5204 necessary.
5202
5205
5203 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5206 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5204 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5207 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5205 a bug report by Tjabo Kloppenburg.
5208 a bug report by Tjabo Kloppenburg.
5206
5209
5207 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5210 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5208 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5211 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5209 seems rather unstable. Thanks to a bug report by Tjabo
5212 seems rather unstable. Thanks to a bug report by Tjabo
5210 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5213 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5211
5214
5212 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5215 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5213 this out soon because of the critical fixes in the inner loop for
5216 this out soon because of the critical fixes in the inner loop for
5214 generators.
5217 generators.
5215
5218
5216 * IPython/Magic.py (Magic.getargspec): removed. This (and
5219 * IPython/Magic.py (Magic.getargspec): removed. This (and
5217 _get_def) have been obsoleted by OInspect for a long time, I
5220 _get_def) have been obsoleted by OInspect for a long time, I
5218 hadn't noticed that they were dead code.
5221 hadn't noticed that they were dead code.
5219 (Magic._ofind): restored _ofind functionality for a few literals
5222 (Magic._ofind): restored _ofind functionality for a few literals
5220 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5223 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5221 for things like "hello".capitalize?, since that would require a
5224 for things like "hello".capitalize?, since that would require a
5222 potentially dangerous eval() again.
5225 potentially dangerous eval() again.
5223
5226
5224 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5227 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5225 logic a bit more to clean up the escapes handling and minimize the
5228 logic a bit more to clean up the escapes handling and minimize the
5226 use of _ofind to only necessary cases. The interactive 'feel' of
5229 use of _ofind to only necessary cases. The interactive 'feel' of
5227 IPython should have improved quite a bit with the changes in
5230 IPython should have improved quite a bit with the changes in
5228 _prefilter and _ofind (besides being far safer than before).
5231 _prefilter and _ofind (besides being far safer than before).
5229
5232
5230 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5233 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5231 obscure, never reported). Edit would fail to find the object to
5234 obscure, never reported). Edit would fail to find the object to
5232 edit under some circumstances.
5235 edit under some circumstances.
5233 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5236 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5234 which were causing double-calling of generators. Those eval calls
5237 which were causing double-calling of generators. Those eval calls
5235 were _very_ dangerous, since code with side effects could be
5238 were _very_ dangerous, since code with side effects could be
5236 triggered. As they say, 'eval is evil'... These were the
5239 triggered. As they say, 'eval is evil'... These were the
5237 nastiest evals in IPython. Besides, _ofind is now far simpler,
5240 nastiest evals in IPython. Besides, _ofind is now far simpler,
5238 and it should also be quite a bit faster. Its use of inspect is
5241 and it should also be quite a bit faster. Its use of inspect is
5239 also safer, so perhaps some of the inspect-related crashes I've
5242 also safer, so perhaps some of the inspect-related crashes I've
5240 seen lately with Python 2.3 might be taken care of. That will
5243 seen lately with Python 2.3 might be taken care of. That will
5241 need more testing.
5244 need more testing.
5242
5245
5243 2003-08-17 Fernando Perez <fperez@colorado.edu>
5246 2003-08-17 Fernando Perez <fperez@colorado.edu>
5244
5247
5245 * IPython/iplib.py (InteractiveShell._prefilter): significant
5248 * IPython/iplib.py (InteractiveShell._prefilter): significant
5246 simplifications to the logic for handling user escapes. Faster
5249 simplifications to the logic for handling user escapes. Faster
5247 and simpler code.
5250 and simpler code.
5248
5251
5249 2003-08-14 Fernando Perez <fperez@colorado.edu>
5252 2003-08-14 Fernando Perez <fperez@colorado.edu>
5250
5253
5251 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5254 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5252 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5255 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5253 but it should be quite a bit faster. And the recursive version
5256 but it should be quite a bit faster. And the recursive version
5254 generated O(log N) intermediate storage for all rank>1 arrays,
5257 generated O(log N) intermediate storage for all rank>1 arrays,
5255 even if they were contiguous.
5258 even if they were contiguous.
5256 (l1norm): Added this function.
5259 (l1norm): Added this function.
5257 (norm): Added this function for arbitrary norms (including
5260 (norm): Added this function for arbitrary norms (including
5258 l-infinity). l1 and l2 are still special cases for convenience
5261 l-infinity). l1 and l2 are still special cases for convenience
5259 and speed.
5262 and speed.
5260
5263
5261 2003-08-03 Fernando Perez <fperez@colorado.edu>
5264 2003-08-03 Fernando Perez <fperez@colorado.edu>
5262
5265
5263 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5266 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5264 exceptions, which now raise PendingDeprecationWarnings in Python
5267 exceptions, which now raise PendingDeprecationWarnings in Python
5265 2.3. There were some in Magic and some in Gnuplot2.
5268 2.3. There were some in Magic and some in Gnuplot2.
5266
5269
5267 2003-06-30 Fernando Perez <fperez@colorado.edu>
5270 2003-06-30 Fernando Perez <fperez@colorado.edu>
5268
5271
5269 * IPython/genutils.py (page): modified to call curses only for
5272 * IPython/genutils.py (page): modified to call curses only for
5270 terminals where TERM=='xterm'. After problems under many other
5273 terminals where TERM=='xterm'. After problems under many other
5271 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5274 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5272
5275
5273 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5276 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5274 would be triggered when readline was absent. This was just an old
5277 would be triggered when readline was absent. This was just an old
5275 debugging statement I'd forgotten to take out.
5278 debugging statement I'd forgotten to take out.
5276
5279
5277 2003-06-20 Fernando Perez <fperez@colorado.edu>
5280 2003-06-20 Fernando Perez <fperez@colorado.edu>
5278
5281
5279 * IPython/genutils.py (clock): modified to return only user time
5282 * IPython/genutils.py (clock): modified to return only user time
5280 (not counting system time), after a discussion on scipy. While
5283 (not counting system time), after a discussion on scipy. While
5281 system time may be a useful quantity occasionally, it may much
5284 system time may be a useful quantity occasionally, it may much
5282 more easily be skewed by occasional swapping or other similar
5285 more easily be skewed by occasional swapping or other similar
5283 activity.
5286 activity.
5284
5287
5285 2003-06-05 Fernando Perez <fperez@colorado.edu>
5288 2003-06-05 Fernando Perez <fperez@colorado.edu>
5286
5289
5287 * IPython/numutils.py (identity): new function, for building
5290 * IPython/numutils.py (identity): new function, for building
5288 arbitrary rank Kronecker deltas (mostly backwards compatible with
5291 arbitrary rank Kronecker deltas (mostly backwards compatible with
5289 Numeric.identity)
5292 Numeric.identity)
5290
5293
5291 2003-06-03 Fernando Perez <fperez@colorado.edu>
5294 2003-06-03 Fernando Perez <fperez@colorado.edu>
5292
5295
5293 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5296 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5294 arguments passed to magics with spaces, to allow trailing '\' to
5297 arguments passed to magics with spaces, to allow trailing '\' to
5295 work normally (mainly for Windows users).
5298 work normally (mainly for Windows users).
5296
5299
5297 2003-05-29 Fernando Perez <fperez@colorado.edu>
5300 2003-05-29 Fernando Perez <fperez@colorado.edu>
5298
5301
5299 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5302 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5300 instead of pydoc.help. This fixes a bizarre behavior where
5303 instead of pydoc.help. This fixes a bizarre behavior where
5301 printing '%s' % locals() would trigger the help system. Now
5304 printing '%s' % locals() would trigger the help system. Now
5302 ipython behaves like normal python does.
5305 ipython behaves like normal python does.
5303
5306
5304 Note that if one does 'from pydoc import help', the bizarre
5307 Note that if one does 'from pydoc import help', the bizarre
5305 behavior returns, but this will also happen in normal python, so
5308 behavior returns, but this will also happen in normal python, so
5306 it's not an ipython bug anymore (it has to do with how pydoc.help
5309 it's not an ipython bug anymore (it has to do with how pydoc.help
5307 is implemented).
5310 is implemented).
5308
5311
5309 2003-05-22 Fernando Perez <fperez@colorado.edu>
5312 2003-05-22 Fernando Perez <fperez@colorado.edu>
5310
5313
5311 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5314 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5312 return [] instead of None when nothing matches, also match to end
5315 return [] instead of None when nothing matches, also match to end
5313 of line. Patch by Gary Bishop.
5316 of line. Patch by Gary Bishop.
5314
5317
5315 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5318 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5316 protection as before, for files passed on the command line. This
5319 protection as before, for files passed on the command line. This
5317 prevents the CrashHandler from kicking in if user files call into
5320 prevents the CrashHandler from kicking in if user files call into
5318 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5321 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5319 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5322 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5320
5323
5321 2003-05-20 *** Released version 0.4.0
5324 2003-05-20 *** Released version 0.4.0
5322
5325
5323 2003-05-20 Fernando Perez <fperez@colorado.edu>
5326 2003-05-20 Fernando Perez <fperez@colorado.edu>
5324
5327
5325 * setup.py: added support for manpages. It's a bit hackish b/c of
5328 * setup.py: added support for manpages. It's a bit hackish b/c of
5326 a bug in the way the bdist_rpm distutils target handles gzipped
5329 a bug in the way the bdist_rpm distutils target handles gzipped
5327 manpages, but it works. After a patch by Jack.
5330 manpages, but it works. After a patch by Jack.
5328
5331
5329 2003-05-19 Fernando Perez <fperez@colorado.edu>
5332 2003-05-19 Fernando Perez <fperez@colorado.edu>
5330
5333
5331 * IPython/numutils.py: added a mockup of the kinds module, since
5334 * IPython/numutils.py: added a mockup of the kinds module, since
5332 it was recently removed from Numeric. This way, numutils will
5335 it was recently removed from Numeric. This way, numutils will
5333 work for all users even if they are missing kinds.
5336 work for all users even if they are missing kinds.
5334
5337
5335 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5338 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5336 failure, which can occur with SWIG-wrapped extensions. After a
5339 failure, which can occur with SWIG-wrapped extensions. After a
5337 crash report from Prabhu.
5340 crash report from Prabhu.
5338
5341
5339 2003-05-16 Fernando Perez <fperez@colorado.edu>
5342 2003-05-16 Fernando Perez <fperez@colorado.edu>
5340
5343
5341 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5344 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5342 protect ipython from user code which may call directly
5345 protect ipython from user code which may call directly
5343 sys.excepthook (this looks like an ipython crash to the user, even
5346 sys.excepthook (this looks like an ipython crash to the user, even
5344 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5347 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5345 This is especially important to help users of WxWindows, but may
5348 This is especially important to help users of WxWindows, but may
5346 also be useful in other cases.
5349 also be useful in other cases.
5347
5350
5348 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5351 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5349 an optional tb_offset to be specified, and to preserve exception
5352 an optional tb_offset to be specified, and to preserve exception
5350 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5353 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5351
5354
5352 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5355 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5353
5356
5354 2003-05-15 Fernando Perez <fperez@colorado.edu>
5357 2003-05-15 Fernando Perez <fperez@colorado.edu>
5355
5358
5356 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5359 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5357 installing for a new user under Windows.
5360 installing for a new user under Windows.
5358
5361
5359 2003-05-12 Fernando Perez <fperez@colorado.edu>
5362 2003-05-12 Fernando Perez <fperez@colorado.edu>
5360
5363
5361 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5364 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5362 handler for Emacs comint-based lines. Currently it doesn't do
5365 handler for Emacs comint-based lines. Currently it doesn't do
5363 much (but importantly, it doesn't update the history cache). In
5366 much (but importantly, it doesn't update the history cache). In
5364 the future it may be expanded if Alex needs more functionality
5367 the future it may be expanded if Alex needs more functionality
5365 there.
5368 there.
5366
5369
5367 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5370 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5368 info to crash reports.
5371 info to crash reports.
5369
5372
5370 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5373 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5371 just like Python's -c. Also fixed crash with invalid -color
5374 just like Python's -c. Also fixed crash with invalid -color
5372 option value at startup. Thanks to Will French
5375 option value at startup. Thanks to Will French
5373 <wfrench-AT-bestweb.net> for the bug report.
5376 <wfrench-AT-bestweb.net> for the bug report.
5374
5377
5375 2003-05-09 Fernando Perez <fperez@colorado.edu>
5378 2003-05-09 Fernando Perez <fperez@colorado.edu>
5376
5379
5377 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5380 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5378 to EvalDict (it's a mapping, after all) and simplified its code
5381 to EvalDict (it's a mapping, after all) and simplified its code
5379 quite a bit, after a nice discussion on c.l.py where Gustavo
5382 quite a bit, after a nice discussion on c.l.py where Gustavo
5380 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5383 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5381
5384
5382 2003-04-30 Fernando Perez <fperez@colorado.edu>
5385 2003-04-30 Fernando Perez <fperez@colorado.edu>
5383
5386
5384 * IPython/genutils.py (timings_out): modified it to reduce its
5387 * IPython/genutils.py (timings_out): modified it to reduce its
5385 overhead in the common reps==1 case.
5388 overhead in the common reps==1 case.
5386
5389
5387 2003-04-29 Fernando Perez <fperez@colorado.edu>
5390 2003-04-29 Fernando Perez <fperez@colorado.edu>
5388
5391
5389 * IPython/genutils.py (timings_out): Modified to use the resource
5392 * IPython/genutils.py (timings_out): Modified to use the resource
5390 module, which avoids the wraparound problems of time.clock().
5393 module, which avoids the wraparound problems of time.clock().
5391
5394
5392 2003-04-17 *** Released version 0.2.15pre4
5395 2003-04-17 *** Released version 0.2.15pre4
5393
5396
5394 2003-04-17 Fernando Perez <fperez@colorado.edu>
5397 2003-04-17 Fernando Perez <fperez@colorado.edu>
5395
5398
5396 * setup.py (scriptfiles): Split windows-specific stuff over to a
5399 * setup.py (scriptfiles): Split windows-specific stuff over to a
5397 separate file, in an attempt to have a Windows GUI installer.
5400 separate file, in an attempt to have a Windows GUI installer.
5398 That didn't work, but part of the groundwork is done.
5401 That didn't work, but part of the groundwork is done.
5399
5402
5400 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5403 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5401 indent/unindent with 4 spaces. Particularly useful in combination
5404 indent/unindent with 4 spaces. Particularly useful in combination
5402 with the new auto-indent option.
5405 with the new auto-indent option.
5403
5406
5404 2003-04-16 Fernando Perez <fperez@colorado.edu>
5407 2003-04-16 Fernando Perez <fperez@colorado.edu>
5405
5408
5406 * IPython/Magic.py: various replacements of self.rc for
5409 * IPython/Magic.py: various replacements of self.rc for
5407 self.shell.rc. A lot more remains to be done to fully disentangle
5410 self.shell.rc. A lot more remains to be done to fully disentangle
5408 this class from the main Shell class.
5411 this class from the main Shell class.
5409
5412
5410 * IPython/GnuplotRuntime.py: added checks for mouse support so
5413 * IPython/GnuplotRuntime.py: added checks for mouse support so
5411 that we don't try to enable it if the current gnuplot doesn't
5414 that we don't try to enable it if the current gnuplot doesn't
5412 really support it. Also added checks so that we don't try to
5415 really support it. Also added checks so that we don't try to
5413 enable persist under Windows (where Gnuplot doesn't recognize the
5416 enable persist under Windows (where Gnuplot doesn't recognize the
5414 option).
5417 option).
5415
5418
5416 * IPython/iplib.py (InteractiveShell.interact): Added optional
5419 * IPython/iplib.py (InteractiveShell.interact): Added optional
5417 auto-indenting code, after a patch by King C. Shu
5420 auto-indenting code, after a patch by King C. Shu
5418 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5421 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5419 get along well with pasting indented code. If I ever figure out
5422 get along well with pasting indented code. If I ever figure out
5420 how to make that part go well, it will become on by default.
5423 how to make that part go well, it will become on by default.
5421
5424
5422 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5425 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5423 crash ipython if there was an unmatched '%' in the user's prompt
5426 crash ipython if there was an unmatched '%' in the user's prompt
5424 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5427 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5425
5428
5426 * IPython/iplib.py (InteractiveShell.interact): removed the
5429 * IPython/iplib.py (InteractiveShell.interact): removed the
5427 ability to ask the user whether he wants to crash or not at the
5430 ability to ask the user whether he wants to crash or not at the
5428 'last line' exception handler. Calling functions at that point
5431 'last line' exception handler. Calling functions at that point
5429 changes the stack, and the error reports would have incorrect
5432 changes the stack, and the error reports would have incorrect
5430 tracebacks.
5433 tracebacks.
5431
5434
5432 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5435 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5433 pass through a peger a pretty-printed form of any object. After a
5436 pass through a peger a pretty-printed form of any object. After a
5434 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5437 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5435
5438
5436 2003-04-14 Fernando Perez <fperez@colorado.edu>
5439 2003-04-14 Fernando Perez <fperez@colorado.edu>
5437
5440
5438 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5441 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5439 all files in ~ would be modified at first install (instead of
5442 all files in ~ would be modified at first install (instead of
5440 ~/.ipython). This could be potentially disastrous, as the
5443 ~/.ipython). This could be potentially disastrous, as the
5441 modification (make line-endings native) could damage binary files.
5444 modification (make line-endings native) could damage binary files.
5442
5445
5443 2003-04-10 Fernando Perez <fperez@colorado.edu>
5446 2003-04-10 Fernando Perez <fperez@colorado.edu>
5444
5447
5445 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5448 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5446 handle only lines which are invalid python. This now means that
5449 handle only lines which are invalid python. This now means that
5447 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5450 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5448 for the bug report.
5451 for the bug report.
5449
5452
5450 2003-04-01 Fernando Perez <fperez@colorado.edu>
5453 2003-04-01 Fernando Perez <fperez@colorado.edu>
5451
5454
5452 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5455 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5453 where failing to set sys.last_traceback would crash pdb.pm().
5456 where failing to set sys.last_traceback would crash pdb.pm().
5454 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5457 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5455 report.
5458 report.
5456
5459
5457 2003-03-25 Fernando Perez <fperez@colorado.edu>
5460 2003-03-25 Fernando Perez <fperez@colorado.edu>
5458
5461
5459 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5462 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5460 before printing it (it had a lot of spurious blank lines at the
5463 before printing it (it had a lot of spurious blank lines at the
5461 end).
5464 end).
5462
5465
5463 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5466 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5464 output would be sent 21 times! Obviously people don't use this
5467 output would be sent 21 times! Obviously people don't use this
5465 too often, or I would have heard about it.
5468 too often, or I would have heard about it.
5466
5469
5467 2003-03-24 Fernando Perez <fperez@colorado.edu>
5470 2003-03-24 Fernando Perez <fperez@colorado.edu>
5468
5471
5469 * setup.py (scriptfiles): renamed the data_files parameter from
5472 * setup.py (scriptfiles): renamed the data_files parameter from
5470 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5473 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5471 for the patch.
5474 for the patch.
5472
5475
5473 2003-03-20 Fernando Perez <fperez@colorado.edu>
5476 2003-03-20 Fernando Perez <fperez@colorado.edu>
5474
5477
5475 * IPython/genutils.py (error): added error() and fatal()
5478 * IPython/genutils.py (error): added error() and fatal()
5476 functions.
5479 functions.
5477
5480
5478 2003-03-18 *** Released version 0.2.15pre3
5481 2003-03-18 *** Released version 0.2.15pre3
5479
5482
5480 2003-03-18 Fernando Perez <fperez@colorado.edu>
5483 2003-03-18 Fernando Perez <fperez@colorado.edu>
5481
5484
5482 * setupext/install_data_ext.py
5485 * setupext/install_data_ext.py
5483 (install_data_ext.initialize_options): Class contributed by Jack
5486 (install_data_ext.initialize_options): Class contributed by Jack
5484 Moffit for fixing the old distutils hack. He is sending this to
5487 Moffit for fixing the old distutils hack. He is sending this to
5485 the distutils folks so in the future we may not need it as a
5488 the distutils folks so in the future we may not need it as a
5486 private fix.
5489 private fix.
5487
5490
5488 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5491 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5489 changes for Debian packaging. See his patch for full details.
5492 changes for Debian packaging. See his patch for full details.
5490 The old distutils hack of making the ipythonrc* files carry a
5493 The old distutils hack of making the ipythonrc* files carry a
5491 bogus .py extension is gone, at last. Examples were moved to a
5494 bogus .py extension is gone, at last. Examples were moved to a
5492 separate subdir under doc/, and the separate executable scripts
5495 separate subdir under doc/, and the separate executable scripts
5493 now live in their own directory. Overall a great cleanup. The
5496 now live in their own directory. Overall a great cleanup. The
5494 manual was updated to use the new files, and setup.py has been
5497 manual was updated to use the new files, and setup.py has been
5495 fixed for this setup.
5498 fixed for this setup.
5496
5499
5497 * IPython/PyColorize.py (Parser.usage): made non-executable and
5500 * IPython/PyColorize.py (Parser.usage): made non-executable and
5498 created a pycolor wrapper around it to be included as a script.
5501 created a pycolor wrapper around it to be included as a script.
5499
5502
5500 2003-03-12 *** Released version 0.2.15pre2
5503 2003-03-12 *** Released version 0.2.15pre2
5501
5504
5502 2003-03-12 Fernando Perez <fperez@colorado.edu>
5505 2003-03-12 Fernando Perez <fperez@colorado.edu>
5503
5506
5504 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5507 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5505 long-standing problem with garbage characters in some terminals.
5508 long-standing problem with garbage characters in some terminals.
5506 The issue was really that the \001 and \002 escapes must _only_ be
5509 The issue was really that the \001 and \002 escapes must _only_ be
5507 passed to input prompts (which call readline), but _never_ to
5510 passed to input prompts (which call readline), but _never_ to
5508 normal text to be printed on screen. I changed ColorANSI to have
5511 normal text to be printed on screen. I changed ColorANSI to have
5509 two classes: TermColors and InputTermColors, each with the
5512 two classes: TermColors and InputTermColors, each with the
5510 appropriate escapes for input prompts or normal text. The code in
5513 appropriate escapes for input prompts or normal text. The code in
5511 Prompts.py got slightly more complicated, but this very old and
5514 Prompts.py got slightly more complicated, but this very old and
5512 annoying bug is finally fixed.
5515 annoying bug is finally fixed.
5513
5516
5514 All the credit for nailing down the real origin of this problem
5517 All the credit for nailing down the real origin of this problem
5515 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5518 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5516 *Many* thanks to him for spending quite a bit of effort on this.
5519 *Many* thanks to him for spending quite a bit of effort on this.
5517
5520
5518 2003-03-05 *** Released version 0.2.15pre1
5521 2003-03-05 *** Released version 0.2.15pre1
5519
5522
5520 2003-03-03 Fernando Perez <fperez@colorado.edu>
5523 2003-03-03 Fernando Perez <fperez@colorado.edu>
5521
5524
5522 * IPython/FakeModule.py: Moved the former _FakeModule to a
5525 * IPython/FakeModule.py: Moved the former _FakeModule to a
5523 separate file, because it's also needed by Magic (to fix a similar
5526 separate file, because it's also needed by Magic (to fix a similar
5524 pickle-related issue in @run).
5527 pickle-related issue in @run).
5525
5528
5526 2003-03-02 Fernando Perez <fperez@colorado.edu>
5529 2003-03-02 Fernando Perez <fperez@colorado.edu>
5527
5530
5528 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5531 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5529 the autocall option at runtime.
5532 the autocall option at runtime.
5530 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5533 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5531 across Magic.py to start separating Magic from InteractiveShell.
5534 across Magic.py to start separating Magic from InteractiveShell.
5532 (Magic._ofind): Fixed to return proper namespace for dotted
5535 (Magic._ofind): Fixed to return proper namespace for dotted
5533 names. Before, a dotted name would always return 'not currently
5536 names. Before, a dotted name would always return 'not currently
5534 defined', because it would find the 'parent'. s.x would be found,
5537 defined', because it would find the 'parent'. s.x would be found,
5535 but since 'x' isn't defined by itself, it would get confused.
5538 but since 'x' isn't defined by itself, it would get confused.
5536 (Magic.magic_run): Fixed pickling problems reported by Ralf
5539 (Magic.magic_run): Fixed pickling problems reported by Ralf
5537 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5540 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5538 that I'd used when Mike Heeter reported similar issues at the
5541 that I'd used when Mike Heeter reported similar issues at the
5539 top-level, but now for @run. It boils down to injecting the
5542 top-level, but now for @run. It boils down to injecting the
5540 namespace where code is being executed with something that looks
5543 namespace where code is being executed with something that looks
5541 enough like a module to fool pickle.dump(). Since a pickle stores
5544 enough like a module to fool pickle.dump(). Since a pickle stores
5542 a named reference to the importing module, we need this for
5545 a named reference to the importing module, we need this for
5543 pickles to save something sensible.
5546 pickles to save something sensible.
5544
5547
5545 * IPython/ipmaker.py (make_IPython): added an autocall option.
5548 * IPython/ipmaker.py (make_IPython): added an autocall option.
5546
5549
5547 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5550 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5548 the auto-eval code. Now autocalling is an option, and the code is
5551 the auto-eval code. Now autocalling is an option, and the code is
5549 also vastly safer. There is no more eval() involved at all.
5552 also vastly safer. There is no more eval() involved at all.
5550
5553
5551 2003-03-01 Fernando Perez <fperez@colorado.edu>
5554 2003-03-01 Fernando Perez <fperez@colorado.edu>
5552
5555
5553 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5556 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5554 dict with named keys instead of a tuple.
5557 dict with named keys instead of a tuple.
5555
5558
5556 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5559 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5557
5560
5558 * setup.py (make_shortcut): Fixed message about directories
5561 * setup.py (make_shortcut): Fixed message about directories
5559 created during Windows installation (the directories were ok, just
5562 created during Windows installation (the directories were ok, just
5560 the printed message was misleading). Thanks to Chris Liechti
5563 the printed message was misleading). Thanks to Chris Liechti
5561 <cliechti-AT-gmx.net> for the heads up.
5564 <cliechti-AT-gmx.net> for the heads up.
5562
5565
5563 2003-02-21 Fernando Perez <fperez@colorado.edu>
5566 2003-02-21 Fernando Perez <fperez@colorado.edu>
5564
5567
5565 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5568 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5566 of ValueError exception when checking for auto-execution. This
5569 of ValueError exception when checking for auto-execution. This
5567 one is raised by things like Numeric arrays arr.flat when the
5570 one is raised by things like Numeric arrays arr.flat when the
5568 array is non-contiguous.
5571 array is non-contiguous.
5569
5572
5570 2003-01-31 Fernando Perez <fperez@colorado.edu>
5573 2003-01-31 Fernando Perez <fperez@colorado.edu>
5571
5574
5572 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5575 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5573 not return any value at all (even though the command would get
5576 not return any value at all (even though the command would get
5574 executed).
5577 executed).
5575 (xsys): Flush stdout right after printing the command to ensure
5578 (xsys): Flush stdout right after printing the command to ensure
5576 proper ordering of commands and command output in the total
5579 proper ordering of commands and command output in the total
5577 output.
5580 output.
5578 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5581 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5579 system/getoutput as defaults. The old ones are kept for
5582 system/getoutput as defaults. The old ones are kept for
5580 compatibility reasons, so no code which uses this library needs
5583 compatibility reasons, so no code which uses this library needs
5581 changing.
5584 changing.
5582
5585
5583 2003-01-27 *** Released version 0.2.14
5586 2003-01-27 *** Released version 0.2.14
5584
5587
5585 2003-01-25 Fernando Perez <fperez@colorado.edu>
5588 2003-01-25 Fernando Perez <fperez@colorado.edu>
5586
5589
5587 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5590 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5588 functions defined in previous edit sessions could not be re-edited
5591 functions defined in previous edit sessions could not be re-edited
5589 (because the temp files were immediately removed). Now temp files
5592 (because the temp files were immediately removed). Now temp files
5590 are removed only at IPython's exit.
5593 are removed only at IPython's exit.
5591 (Magic.magic_run): Improved @run to perform shell-like expansions
5594 (Magic.magic_run): Improved @run to perform shell-like expansions
5592 on its arguments (~users and $VARS). With this, @run becomes more
5595 on its arguments (~users and $VARS). With this, @run becomes more
5593 like a normal command-line.
5596 like a normal command-line.
5594
5597
5595 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5598 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5596 bugs related to embedding and cleaned up that code. A fairly
5599 bugs related to embedding and cleaned up that code. A fairly
5597 important one was the impossibility to access the global namespace
5600 important one was the impossibility to access the global namespace
5598 through the embedded IPython (only local variables were visible).
5601 through the embedded IPython (only local variables were visible).
5599
5602
5600 2003-01-14 Fernando Perez <fperez@colorado.edu>
5603 2003-01-14 Fernando Perez <fperez@colorado.edu>
5601
5604
5602 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5605 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5603 auto-calling to be a bit more conservative. Now it doesn't get
5606 auto-calling to be a bit more conservative. Now it doesn't get
5604 triggered if any of '!=()<>' are in the rest of the input line, to
5607 triggered if any of '!=()<>' are in the rest of the input line, to
5605 allow comparing callables. Thanks to Alex for the heads up.
5608 allow comparing callables. Thanks to Alex for the heads up.
5606
5609
5607 2003-01-07 Fernando Perez <fperez@colorado.edu>
5610 2003-01-07 Fernando Perez <fperez@colorado.edu>
5608
5611
5609 * IPython/genutils.py (page): fixed estimation of the number of
5612 * IPython/genutils.py (page): fixed estimation of the number of
5610 lines in a string to be paged to simply count newlines. This
5613 lines in a string to be paged to simply count newlines. This
5611 prevents over-guessing due to embedded escape sequences. A better
5614 prevents over-guessing due to embedded escape sequences. A better
5612 long-term solution would involve stripping out the control chars
5615 long-term solution would involve stripping out the control chars
5613 for the count, but it's potentially so expensive I just don't
5616 for the count, but it's potentially so expensive I just don't
5614 think it's worth doing.
5617 think it's worth doing.
5615
5618
5616 2002-12-19 *** Released version 0.2.14pre50
5619 2002-12-19 *** Released version 0.2.14pre50
5617
5620
5618 2002-12-19 Fernando Perez <fperez@colorado.edu>
5621 2002-12-19 Fernando Perez <fperez@colorado.edu>
5619
5622
5620 * tools/release (version): Changed release scripts to inform
5623 * tools/release (version): Changed release scripts to inform
5621 Andrea and build a NEWS file with a list of recent changes.
5624 Andrea and build a NEWS file with a list of recent changes.
5622
5625
5623 * IPython/ColorANSI.py (__all__): changed terminal detection
5626 * IPython/ColorANSI.py (__all__): changed terminal detection
5624 code. Seems to work better for xterms without breaking
5627 code. Seems to work better for xterms without breaking
5625 konsole. Will need more testing to determine if WinXP and Mac OSX
5628 konsole. Will need more testing to determine if WinXP and Mac OSX
5626 also work ok.
5629 also work ok.
5627
5630
5628 2002-12-18 *** Released version 0.2.14pre49
5631 2002-12-18 *** Released version 0.2.14pre49
5629
5632
5630 2002-12-18 Fernando Perez <fperez@colorado.edu>
5633 2002-12-18 Fernando Perez <fperez@colorado.edu>
5631
5634
5632 * Docs: added new info about Mac OSX, from Andrea.
5635 * Docs: added new info about Mac OSX, from Andrea.
5633
5636
5634 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5637 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5635 allow direct plotting of python strings whose format is the same
5638 allow direct plotting of python strings whose format is the same
5636 of gnuplot data files.
5639 of gnuplot data files.
5637
5640
5638 2002-12-16 Fernando Perez <fperez@colorado.edu>
5641 2002-12-16 Fernando Perez <fperez@colorado.edu>
5639
5642
5640 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5643 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5641 value of exit question to be acknowledged.
5644 value of exit question to be acknowledged.
5642
5645
5643 2002-12-03 Fernando Perez <fperez@colorado.edu>
5646 2002-12-03 Fernando Perez <fperez@colorado.edu>
5644
5647
5645 * IPython/ipmaker.py: removed generators, which had been added
5648 * IPython/ipmaker.py: removed generators, which had been added
5646 by mistake in an earlier debugging run. This was causing trouble
5649 by mistake in an earlier debugging run. This was causing trouble
5647 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5650 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5648 for pointing this out.
5651 for pointing this out.
5649
5652
5650 2002-11-17 Fernando Perez <fperez@colorado.edu>
5653 2002-11-17 Fernando Perez <fperez@colorado.edu>
5651
5654
5652 * Manual: updated the Gnuplot section.
5655 * Manual: updated the Gnuplot section.
5653
5656
5654 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5657 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5655 a much better split of what goes in Runtime and what goes in
5658 a much better split of what goes in Runtime and what goes in
5656 Interactive.
5659 Interactive.
5657
5660
5658 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5661 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5659 being imported from iplib.
5662 being imported from iplib.
5660
5663
5661 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5664 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5662 for command-passing. Now the global Gnuplot instance is called
5665 for command-passing. Now the global Gnuplot instance is called
5663 'gp' instead of 'g', which was really a far too fragile and
5666 'gp' instead of 'g', which was really a far too fragile and
5664 common name.
5667 common name.
5665
5668
5666 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5669 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5667 bounding boxes generated by Gnuplot for square plots.
5670 bounding boxes generated by Gnuplot for square plots.
5668
5671
5669 * IPython/genutils.py (popkey): new function added. I should
5672 * IPython/genutils.py (popkey): new function added. I should
5670 suggest this on c.l.py as a dict method, it seems useful.
5673 suggest this on c.l.py as a dict method, it seems useful.
5671
5674
5672 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5675 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5673 to transparently handle PostScript generation. MUCH better than
5676 to transparently handle PostScript generation. MUCH better than
5674 the previous plot_eps/replot_eps (which I removed now). The code
5677 the previous plot_eps/replot_eps (which I removed now). The code
5675 is also fairly clean and well documented now (including
5678 is also fairly clean and well documented now (including
5676 docstrings).
5679 docstrings).
5677
5680
5678 2002-11-13 Fernando Perez <fperez@colorado.edu>
5681 2002-11-13 Fernando Perez <fperez@colorado.edu>
5679
5682
5680 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5683 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5681 (inconsistent with options).
5684 (inconsistent with options).
5682
5685
5683 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5686 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5684 manually disabled, I don't know why. Fixed it.
5687 manually disabled, I don't know why. Fixed it.
5685 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5688 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5686 eps output.
5689 eps output.
5687
5690
5688 2002-11-12 Fernando Perez <fperez@colorado.edu>
5691 2002-11-12 Fernando Perez <fperez@colorado.edu>
5689
5692
5690 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5693 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5691 don't propagate up to caller. Fixes crash reported by François
5694 don't propagate up to caller. Fixes crash reported by François
5692 Pinard.
5695 Pinard.
5693
5696
5694 2002-11-09 Fernando Perez <fperez@colorado.edu>
5697 2002-11-09 Fernando Perez <fperez@colorado.edu>
5695
5698
5696 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5699 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5697 history file for new users.
5700 history file for new users.
5698 (make_IPython): fixed bug where initial install would leave the
5701 (make_IPython): fixed bug where initial install would leave the
5699 user running in the .ipython dir.
5702 user running in the .ipython dir.
5700 (make_IPython): fixed bug where config dir .ipython would be
5703 (make_IPython): fixed bug where config dir .ipython would be
5701 created regardless of the given -ipythondir option. Thanks to Cory
5704 created regardless of the given -ipythondir option. Thanks to Cory
5702 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5705 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5703
5706
5704 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5707 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5705 type confirmations. Will need to use it in all of IPython's code
5708 type confirmations. Will need to use it in all of IPython's code
5706 consistently.
5709 consistently.
5707
5710
5708 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5711 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5709 context to print 31 lines instead of the default 5. This will make
5712 context to print 31 lines instead of the default 5. This will make
5710 the crash reports extremely detailed in case the problem is in
5713 the crash reports extremely detailed in case the problem is in
5711 libraries I don't have access to.
5714 libraries I don't have access to.
5712
5715
5713 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5716 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5714 line of defense' code to still crash, but giving users fair
5717 line of defense' code to still crash, but giving users fair
5715 warning. I don't want internal errors to go unreported: if there's
5718 warning. I don't want internal errors to go unreported: if there's
5716 an internal problem, IPython should crash and generate a full
5719 an internal problem, IPython should crash and generate a full
5717 report.
5720 report.
5718
5721
5719 2002-11-08 Fernando Perez <fperez@colorado.edu>
5722 2002-11-08 Fernando Perez <fperez@colorado.edu>
5720
5723
5721 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5724 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5722 otherwise uncaught exceptions which can appear if people set
5725 otherwise uncaught exceptions which can appear if people set
5723 sys.stdout to something badly broken. Thanks to a crash report
5726 sys.stdout to something badly broken. Thanks to a crash report
5724 from henni-AT-mail.brainbot.com.
5727 from henni-AT-mail.brainbot.com.
5725
5728
5726 2002-11-04 Fernando Perez <fperez@colorado.edu>
5729 2002-11-04 Fernando Perez <fperez@colorado.edu>
5727
5730
5728 * IPython/iplib.py (InteractiveShell.interact): added
5731 * IPython/iplib.py (InteractiveShell.interact): added
5729 __IPYTHON__active to the builtins. It's a flag which goes on when
5732 __IPYTHON__active to the builtins. It's a flag which goes on when
5730 the interaction starts and goes off again when it stops. This
5733 the interaction starts and goes off again when it stops. This
5731 allows embedding code to detect being inside IPython. Before this
5734 allows embedding code to detect being inside IPython. Before this
5732 was done via __IPYTHON__, but that only shows that an IPython
5735 was done via __IPYTHON__, but that only shows that an IPython
5733 instance has been created.
5736 instance has been created.
5734
5737
5735 * IPython/Magic.py (Magic.magic_env): I realized that in a
5738 * IPython/Magic.py (Magic.magic_env): I realized that in a
5736 UserDict, instance.data holds the data as a normal dict. So I
5739 UserDict, instance.data holds the data as a normal dict. So I
5737 modified @env to return os.environ.data instead of rebuilding a
5740 modified @env to return os.environ.data instead of rebuilding a
5738 dict by hand.
5741 dict by hand.
5739
5742
5740 2002-11-02 Fernando Perez <fperez@colorado.edu>
5743 2002-11-02 Fernando Perez <fperez@colorado.edu>
5741
5744
5742 * IPython/genutils.py (warn): changed so that level 1 prints no
5745 * IPython/genutils.py (warn): changed so that level 1 prints no
5743 header. Level 2 is now the default (with 'WARNING' header, as
5746 header. Level 2 is now the default (with 'WARNING' header, as
5744 before). I think I tracked all places where changes were needed in
5747 before). I think I tracked all places where changes were needed in
5745 IPython, but outside code using the old level numbering may have
5748 IPython, but outside code using the old level numbering may have
5746 broken.
5749 broken.
5747
5750
5748 * IPython/iplib.py (InteractiveShell.runcode): added this to
5751 * IPython/iplib.py (InteractiveShell.runcode): added this to
5749 handle the tracebacks in SystemExit traps correctly. The previous
5752 handle the tracebacks in SystemExit traps correctly. The previous
5750 code (through interact) was printing more of the stack than
5753 code (through interact) was printing more of the stack than
5751 necessary, showing IPython internal code to the user.
5754 necessary, showing IPython internal code to the user.
5752
5755
5753 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5756 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5754 default. Now that the default at the confirmation prompt is yes,
5757 default. Now that the default at the confirmation prompt is yes,
5755 it's not so intrusive. François' argument that ipython sessions
5758 it's not so intrusive. François' argument that ipython sessions
5756 tend to be complex enough not to lose them from an accidental C-d,
5759 tend to be complex enough not to lose them from an accidental C-d,
5757 is a valid one.
5760 is a valid one.
5758
5761
5759 * IPython/iplib.py (InteractiveShell.interact): added a
5762 * IPython/iplib.py (InteractiveShell.interact): added a
5760 showtraceback() call to the SystemExit trap, and modified the exit
5763 showtraceback() call to the SystemExit trap, and modified the exit
5761 confirmation to have yes as the default.
5764 confirmation to have yes as the default.
5762
5765
5763 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5766 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5764 this file. It's been gone from the code for a long time, this was
5767 this file. It's been gone from the code for a long time, this was
5765 simply leftover junk.
5768 simply leftover junk.
5766
5769
5767 2002-11-01 Fernando Perez <fperez@colorado.edu>
5770 2002-11-01 Fernando Perez <fperez@colorado.edu>
5768
5771
5769 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5772 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5770 added. If set, IPython now traps EOF and asks for
5773 added. If set, IPython now traps EOF and asks for
5771 confirmation. After a request by François Pinard.
5774 confirmation. After a request by François Pinard.
5772
5775
5773 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5776 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5774 of @abort, and with a new (better) mechanism for handling the
5777 of @abort, and with a new (better) mechanism for handling the
5775 exceptions.
5778 exceptions.
5776
5779
5777 2002-10-27 Fernando Perez <fperez@colorado.edu>
5780 2002-10-27 Fernando Perez <fperez@colorado.edu>
5778
5781
5779 * IPython/usage.py (__doc__): updated the --help information and
5782 * IPython/usage.py (__doc__): updated the --help information and
5780 the ipythonrc file to indicate that -log generates
5783 the ipythonrc file to indicate that -log generates
5781 ./ipython.log. Also fixed the corresponding info in @logstart.
5784 ./ipython.log. Also fixed the corresponding info in @logstart.
5782 This and several other fixes in the manuals thanks to reports by
5785 This and several other fixes in the manuals thanks to reports by
5783 François Pinard <pinard-AT-iro.umontreal.ca>.
5786 François Pinard <pinard-AT-iro.umontreal.ca>.
5784
5787
5785 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5788 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5786 refer to @logstart (instead of @log, which doesn't exist).
5789 refer to @logstart (instead of @log, which doesn't exist).
5787
5790
5788 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5791 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5789 AttributeError crash. Thanks to Christopher Armstrong
5792 AttributeError crash. Thanks to Christopher Armstrong
5790 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5793 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5791 introduced recently (in 0.2.14pre37) with the fix to the eval
5794 introduced recently (in 0.2.14pre37) with the fix to the eval
5792 problem mentioned below.
5795 problem mentioned below.
5793
5796
5794 2002-10-17 Fernando Perez <fperez@colorado.edu>
5797 2002-10-17 Fernando Perez <fperez@colorado.edu>
5795
5798
5796 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5799 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5797 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5800 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5798
5801
5799 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5802 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5800 this function to fix a problem reported by Alex Schmolck. He saw
5803 this function to fix a problem reported by Alex Schmolck. He saw
5801 it with list comprehensions and generators, which were getting
5804 it with list comprehensions and generators, which were getting
5802 called twice. The real problem was an 'eval' call in testing for
5805 called twice. The real problem was an 'eval' call in testing for
5803 automagic which was evaluating the input line silently.
5806 automagic which was evaluating the input line silently.
5804
5807
5805 This is a potentially very nasty bug, if the input has side
5808 This is a potentially very nasty bug, if the input has side
5806 effects which must not be repeated. The code is much cleaner now,
5809 effects which must not be repeated. The code is much cleaner now,
5807 without any blanket 'except' left and with a regexp test for
5810 without any blanket 'except' left and with a regexp test for
5808 actual function names.
5811 actual function names.
5809
5812
5810 But an eval remains, which I'm not fully comfortable with. I just
5813 But an eval remains, which I'm not fully comfortable with. I just
5811 don't know how to find out if an expression could be a callable in
5814 don't know how to find out if an expression could be a callable in
5812 the user's namespace without doing an eval on the string. However
5815 the user's namespace without doing an eval on the string. However
5813 that string is now much more strictly checked so that no code
5816 that string is now much more strictly checked so that no code
5814 slips by, so the eval should only happen for things that can
5817 slips by, so the eval should only happen for things that can
5815 really be only function/method names.
5818 really be only function/method names.
5816
5819
5817 2002-10-15 Fernando Perez <fperez@colorado.edu>
5820 2002-10-15 Fernando Perez <fperez@colorado.edu>
5818
5821
5819 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5822 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5820 OSX information to main manual, removed README_Mac_OSX file from
5823 OSX information to main manual, removed README_Mac_OSX file from
5821 distribution. Also updated credits for recent additions.
5824 distribution. Also updated credits for recent additions.
5822
5825
5823 2002-10-10 Fernando Perez <fperez@colorado.edu>
5826 2002-10-10 Fernando Perez <fperez@colorado.edu>
5824
5827
5825 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5828 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5826 terminal-related issues. Many thanks to Andrea Riciputi
5829 terminal-related issues. Many thanks to Andrea Riciputi
5827 <andrea.riciputi-AT-libero.it> for writing it.
5830 <andrea.riciputi-AT-libero.it> for writing it.
5828
5831
5829 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5832 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5830 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5833 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5831
5834
5832 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5835 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5833 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5836 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5834 <syver-en-AT-online.no> who both submitted patches for this problem.
5837 <syver-en-AT-online.no> who both submitted patches for this problem.
5835
5838
5836 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5839 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5837 global embedding to make sure that things don't overwrite user
5840 global embedding to make sure that things don't overwrite user
5838 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5841 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5839
5842
5840 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5843 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5841 compatibility. Thanks to Hayden Callow
5844 compatibility. Thanks to Hayden Callow
5842 <h.callow-AT-elec.canterbury.ac.nz>
5845 <h.callow-AT-elec.canterbury.ac.nz>
5843
5846
5844 2002-10-04 Fernando Perez <fperez@colorado.edu>
5847 2002-10-04 Fernando Perez <fperez@colorado.edu>
5845
5848
5846 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5849 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5847 Gnuplot.File objects.
5850 Gnuplot.File objects.
5848
5851
5849 2002-07-23 Fernando Perez <fperez@colorado.edu>
5852 2002-07-23 Fernando Perez <fperez@colorado.edu>
5850
5853
5851 * IPython/genutils.py (timing): Added timings() and timing() for
5854 * IPython/genutils.py (timing): Added timings() and timing() for
5852 quick access to the most commonly needed data, the execution
5855 quick access to the most commonly needed data, the execution
5853 times. Old timing() renamed to timings_out().
5856 times. Old timing() renamed to timings_out().
5854
5857
5855 2002-07-18 Fernando Perez <fperez@colorado.edu>
5858 2002-07-18 Fernando Perez <fperez@colorado.edu>
5856
5859
5857 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5860 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5858 bug with nested instances disrupting the parent's tab completion.
5861 bug with nested instances disrupting the parent's tab completion.
5859
5862
5860 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5863 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5861 all_completions code to begin the emacs integration.
5864 all_completions code to begin the emacs integration.
5862
5865
5863 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5866 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5864 argument to allow titling individual arrays when plotting.
5867 argument to allow titling individual arrays when plotting.
5865
5868
5866 2002-07-15 Fernando Perez <fperez@colorado.edu>
5869 2002-07-15 Fernando Perez <fperez@colorado.edu>
5867
5870
5868 * setup.py (make_shortcut): changed to retrieve the value of
5871 * setup.py (make_shortcut): changed to retrieve the value of
5869 'Program Files' directory from the registry (this value changes in
5872 'Program Files' directory from the registry (this value changes in
5870 non-english versions of Windows). Thanks to Thomas Fanslau
5873 non-english versions of Windows). Thanks to Thomas Fanslau
5871 <tfanslau-AT-gmx.de> for the report.
5874 <tfanslau-AT-gmx.de> for the report.
5872
5875
5873 2002-07-10 Fernando Perez <fperez@colorado.edu>
5876 2002-07-10 Fernando Perez <fperez@colorado.edu>
5874
5877
5875 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5878 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5876 a bug in pdb, which crashes if a line with only whitespace is
5879 a bug in pdb, which crashes if a line with only whitespace is
5877 entered. Bug report submitted to sourceforge.
5880 entered. Bug report submitted to sourceforge.
5878
5881
5879 2002-07-09 Fernando Perez <fperez@colorado.edu>
5882 2002-07-09 Fernando Perez <fperez@colorado.edu>
5880
5883
5881 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5884 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5882 reporting exceptions (it's a bug in inspect.py, I just set a
5885 reporting exceptions (it's a bug in inspect.py, I just set a
5883 workaround).
5886 workaround).
5884
5887
5885 2002-07-08 Fernando Perez <fperez@colorado.edu>
5888 2002-07-08 Fernando Perez <fperez@colorado.edu>
5886
5889
5887 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5890 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5888 __IPYTHON__ in __builtins__ to show up in user_ns.
5891 __IPYTHON__ in __builtins__ to show up in user_ns.
5889
5892
5890 2002-07-03 Fernando Perez <fperez@colorado.edu>
5893 2002-07-03 Fernando Perez <fperez@colorado.edu>
5891
5894
5892 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5895 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5893 name from @gp_set_instance to @gp_set_default.
5896 name from @gp_set_instance to @gp_set_default.
5894
5897
5895 * IPython/ipmaker.py (make_IPython): default editor value set to
5898 * IPython/ipmaker.py (make_IPython): default editor value set to
5896 '0' (a string), to match the rc file. Otherwise will crash when
5899 '0' (a string), to match the rc file. Otherwise will crash when
5897 .strip() is called on it.
5900 .strip() is called on it.
5898
5901
5899
5902
5900 2002-06-28 Fernando Perez <fperez@colorado.edu>
5903 2002-06-28 Fernando Perez <fperez@colorado.edu>
5901
5904
5902 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5905 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5903 of files in current directory when a file is executed via
5906 of files in current directory when a file is executed via
5904 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5907 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5905
5908
5906 * setup.py (manfiles): fix for rpm builds, submitted by RA
5909 * setup.py (manfiles): fix for rpm builds, submitted by RA
5907 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5910 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5908
5911
5909 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5912 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5910 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5913 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5911 string!). A. Schmolck caught this one.
5914 string!). A. Schmolck caught this one.
5912
5915
5913 2002-06-27 Fernando Perez <fperez@colorado.edu>
5916 2002-06-27 Fernando Perez <fperez@colorado.edu>
5914
5917
5915 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5918 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5916 defined files at the cmd line. __name__ wasn't being set to
5919 defined files at the cmd line. __name__ wasn't being set to
5917 __main__.
5920 __main__.
5918
5921
5919 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5922 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5920 regular lists and tuples besides Numeric arrays.
5923 regular lists and tuples besides Numeric arrays.
5921
5924
5922 * IPython/Prompts.py (CachedOutput.__call__): Added output
5925 * IPython/Prompts.py (CachedOutput.__call__): Added output
5923 supression for input ending with ';'. Similar to Mathematica and
5926 supression for input ending with ';'. Similar to Mathematica and
5924 Matlab. The _* vars and Out[] list are still updated, just like
5927 Matlab. The _* vars and Out[] list are still updated, just like
5925 Mathematica behaves.
5928 Mathematica behaves.
5926
5929
5927 2002-06-25 Fernando Perez <fperez@colorado.edu>
5930 2002-06-25 Fernando Perez <fperez@colorado.edu>
5928
5931
5929 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5932 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5930 .ini extensions for profiels under Windows.
5933 .ini extensions for profiels under Windows.
5931
5934
5932 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5935 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5933 string form. Fix contributed by Alexander Schmolck
5936 string form. Fix contributed by Alexander Schmolck
5934 <a.schmolck-AT-gmx.net>
5937 <a.schmolck-AT-gmx.net>
5935
5938
5936 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5939 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5937 pre-configured Gnuplot instance.
5940 pre-configured Gnuplot instance.
5938
5941
5939 2002-06-21 Fernando Perez <fperez@colorado.edu>
5942 2002-06-21 Fernando Perez <fperez@colorado.edu>
5940
5943
5941 * IPython/numutils.py (exp_safe): new function, works around the
5944 * IPython/numutils.py (exp_safe): new function, works around the
5942 underflow problems in Numeric.
5945 underflow problems in Numeric.
5943 (log2): New fn. Safe log in base 2: returns exact integer answer
5946 (log2): New fn. Safe log in base 2: returns exact integer answer
5944 for exact integer powers of 2.
5947 for exact integer powers of 2.
5945
5948
5946 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5949 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5947 properly.
5950 properly.
5948
5951
5949 2002-06-20 Fernando Perez <fperez@colorado.edu>
5952 2002-06-20 Fernando Perez <fperez@colorado.edu>
5950
5953
5951 * IPython/genutils.py (timing): new function like
5954 * IPython/genutils.py (timing): new function like
5952 Mathematica's. Similar to time_test, but returns more info.
5955 Mathematica's. Similar to time_test, but returns more info.
5953
5956
5954 2002-06-18 Fernando Perez <fperez@colorado.edu>
5957 2002-06-18 Fernando Perez <fperez@colorado.edu>
5955
5958
5956 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5959 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5957 according to Mike Heeter's suggestions.
5960 according to Mike Heeter's suggestions.
5958
5961
5959 2002-06-16 Fernando Perez <fperez@colorado.edu>
5962 2002-06-16 Fernando Perez <fperez@colorado.edu>
5960
5963
5961 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5964 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5962 system. GnuplotMagic is gone as a user-directory option. New files
5965 system. GnuplotMagic is gone as a user-directory option. New files
5963 make it easier to use all the gnuplot stuff both from external
5966 make it easier to use all the gnuplot stuff both from external
5964 programs as well as from IPython. Had to rewrite part of
5967 programs as well as from IPython. Had to rewrite part of
5965 hardcopy() b/c of a strange bug: often the ps files simply don't
5968 hardcopy() b/c of a strange bug: often the ps files simply don't
5966 get created, and require a repeat of the command (often several
5969 get created, and require a repeat of the command (often several
5967 times).
5970 times).
5968
5971
5969 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5972 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5970 resolve output channel at call time, so that if sys.stderr has
5973 resolve output channel at call time, so that if sys.stderr has
5971 been redirected by user this gets honored.
5974 been redirected by user this gets honored.
5972
5975
5973 2002-06-13 Fernando Perez <fperez@colorado.edu>
5976 2002-06-13 Fernando Perez <fperez@colorado.edu>
5974
5977
5975 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5978 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5976 IPShell. Kept a copy with the old names to avoid breaking people's
5979 IPShell. Kept a copy with the old names to avoid breaking people's
5977 embedded code.
5980 embedded code.
5978
5981
5979 * IPython/ipython: simplified it to the bare minimum after
5982 * IPython/ipython: simplified it to the bare minimum after
5980 Holger's suggestions. Added info about how to use it in
5983 Holger's suggestions. Added info about how to use it in
5981 PYTHONSTARTUP.
5984 PYTHONSTARTUP.
5982
5985
5983 * IPython/Shell.py (IPythonShell): changed the options passing
5986 * IPython/Shell.py (IPythonShell): changed the options passing
5984 from a string with funky %s replacements to a straight list. Maybe
5987 from a string with funky %s replacements to a straight list. Maybe
5985 a bit more typing, but it follows sys.argv conventions, so there's
5988 a bit more typing, but it follows sys.argv conventions, so there's
5986 less special-casing to remember.
5989 less special-casing to remember.
5987
5990
5988 2002-06-12 Fernando Perez <fperez@colorado.edu>
5991 2002-06-12 Fernando Perez <fperez@colorado.edu>
5989
5992
5990 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5993 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5991 command. Thanks to a suggestion by Mike Heeter.
5994 command. Thanks to a suggestion by Mike Heeter.
5992 (Magic.magic_pfile): added behavior to look at filenames if given
5995 (Magic.magic_pfile): added behavior to look at filenames if given
5993 arg is not a defined object.
5996 arg is not a defined object.
5994 (Magic.magic_save): New @save function to save code snippets. Also
5997 (Magic.magic_save): New @save function to save code snippets. Also
5995 a Mike Heeter idea.
5998 a Mike Heeter idea.
5996
5999
5997 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
6000 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5998 plot() and replot(). Much more convenient now, especially for
6001 plot() and replot(). Much more convenient now, especially for
5999 interactive use.
6002 interactive use.
6000
6003
6001 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
6004 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
6002 filenames.
6005 filenames.
6003
6006
6004 2002-06-02 Fernando Perez <fperez@colorado.edu>
6007 2002-06-02 Fernando Perez <fperez@colorado.edu>
6005
6008
6006 * IPython/Struct.py (Struct.__init__): modified to admit
6009 * IPython/Struct.py (Struct.__init__): modified to admit
6007 initialization via another struct.
6010 initialization via another struct.
6008
6011
6009 * IPython/genutils.py (SystemExec.__init__): New stateful
6012 * IPython/genutils.py (SystemExec.__init__): New stateful
6010 interface to xsys and bq. Useful for writing system scripts.
6013 interface to xsys and bq. Useful for writing system scripts.
6011
6014
6012 2002-05-30 Fernando Perez <fperez@colorado.edu>
6015 2002-05-30 Fernando Perez <fperez@colorado.edu>
6013
6016
6014 * MANIFEST.in: Changed docfile selection to exclude all the lyx
6017 * MANIFEST.in: Changed docfile selection to exclude all the lyx
6015 documents. This will make the user download smaller (it's getting
6018 documents. This will make the user download smaller (it's getting
6016 too big).
6019 too big).
6017
6020
6018 2002-05-29 Fernando Perez <fperez@colorado.edu>
6021 2002-05-29 Fernando Perez <fperez@colorado.edu>
6019
6022
6020 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
6023 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
6021 fix problems with shelve and pickle. Seems to work, but I don't
6024 fix problems with shelve and pickle. Seems to work, but I don't
6022 know if corner cases break it. Thanks to Mike Heeter
6025 know if corner cases break it. Thanks to Mike Heeter
6023 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
6026 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
6024
6027
6025 2002-05-24 Fernando Perez <fperez@colorado.edu>
6028 2002-05-24 Fernando Perez <fperez@colorado.edu>
6026
6029
6027 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
6030 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
6028 macros having broken.
6031 macros having broken.
6029
6032
6030 2002-05-21 Fernando Perez <fperez@colorado.edu>
6033 2002-05-21 Fernando Perez <fperez@colorado.edu>
6031
6034
6032 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6035 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6033 introduced logging bug: all history before logging started was
6036 introduced logging bug: all history before logging started was
6034 being written one character per line! This came from the redesign
6037 being written one character per line! This came from the redesign
6035 of the input history as a special list which slices to strings,
6038 of the input history as a special list which slices to strings,
6036 not to lists.
6039 not to lists.
6037
6040
6038 2002-05-20 Fernando Perez <fperez@colorado.edu>
6041 2002-05-20 Fernando Perez <fperez@colorado.edu>
6039
6042
6040 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6043 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6041 be an attribute of all classes in this module. The design of these
6044 be an attribute of all classes in this module. The design of these
6042 classes needs some serious overhauling.
6045 classes needs some serious overhauling.
6043
6046
6044 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6047 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6045 which was ignoring '_' in option names.
6048 which was ignoring '_' in option names.
6046
6049
6047 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6050 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6048 'Verbose_novars' to 'Context' and made it the new default. It's a
6051 'Verbose_novars' to 'Context' and made it the new default. It's a
6049 bit more readable and also safer than verbose.
6052 bit more readable and also safer than verbose.
6050
6053
6051 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6054 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6052 triple-quoted strings.
6055 triple-quoted strings.
6053
6056
6054 * IPython/OInspect.py (__all__): new module exposing the object
6057 * IPython/OInspect.py (__all__): new module exposing the object
6055 introspection facilities. Now the corresponding magics are dummy
6058 introspection facilities. Now the corresponding magics are dummy
6056 wrappers around this. Having this module will make it much easier
6059 wrappers around this. Having this module will make it much easier
6057 to put these functions into our modified pdb.
6060 to put these functions into our modified pdb.
6058 This new object inspector system uses the new colorizing module,
6061 This new object inspector system uses the new colorizing module,
6059 so source code and other things are nicely syntax highlighted.
6062 so source code and other things are nicely syntax highlighted.
6060
6063
6061 2002-05-18 Fernando Perez <fperez@colorado.edu>
6064 2002-05-18 Fernando Perez <fperez@colorado.edu>
6062
6065
6063 * IPython/ColorANSI.py: Split the coloring tools into a separate
6066 * IPython/ColorANSI.py: Split the coloring tools into a separate
6064 module so I can use them in other code easier (they were part of
6067 module so I can use them in other code easier (they were part of
6065 ultraTB).
6068 ultraTB).
6066
6069
6067 2002-05-17 Fernando Perez <fperez@colorado.edu>
6070 2002-05-17 Fernando Perez <fperez@colorado.edu>
6068
6071
6069 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6072 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6070 fixed it to set the global 'g' also to the called instance, as
6073 fixed it to set the global 'g' also to the called instance, as
6071 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6074 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6072 user's 'g' variables).
6075 user's 'g' variables).
6073
6076
6074 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6077 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6075 global variables (aliases to _ih,_oh) so that users which expect
6078 global variables (aliases to _ih,_oh) so that users which expect
6076 In[5] or Out[7] to work aren't unpleasantly surprised.
6079 In[5] or Out[7] to work aren't unpleasantly surprised.
6077 (InputList.__getslice__): new class to allow executing slices of
6080 (InputList.__getslice__): new class to allow executing slices of
6078 input history directly. Very simple class, complements the use of
6081 input history directly. Very simple class, complements the use of
6079 macros.
6082 macros.
6080
6083
6081 2002-05-16 Fernando Perez <fperez@colorado.edu>
6084 2002-05-16 Fernando Perez <fperez@colorado.edu>
6082
6085
6083 * setup.py (docdirbase): make doc directory be just doc/IPython
6086 * setup.py (docdirbase): make doc directory be just doc/IPython
6084 without version numbers, it will reduce clutter for users.
6087 without version numbers, it will reduce clutter for users.
6085
6088
6086 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6089 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6087 execfile call to prevent possible memory leak. See for details:
6090 execfile call to prevent possible memory leak. See for details:
6088 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6091 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6089
6092
6090 2002-05-15 Fernando Perez <fperez@colorado.edu>
6093 2002-05-15 Fernando Perez <fperez@colorado.edu>
6091
6094
6092 * IPython/Magic.py (Magic.magic_psource): made the object
6095 * IPython/Magic.py (Magic.magic_psource): made the object
6093 introspection names be more standard: pdoc, pdef, pfile and
6096 introspection names be more standard: pdoc, pdef, pfile and
6094 psource. They all print/page their output, and it makes
6097 psource. They all print/page their output, and it makes
6095 remembering them easier. Kept old names for compatibility as
6098 remembering them easier. Kept old names for compatibility as
6096 aliases.
6099 aliases.
6097
6100
6098 2002-05-14 Fernando Perez <fperez@colorado.edu>
6101 2002-05-14 Fernando Perez <fperez@colorado.edu>
6099
6102
6100 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6103 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6101 what the mouse problem was. The trick is to use gnuplot with temp
6104 what the mouse problem was. The trick is to use gnuplot with temp
6102 files and NOT with pipes (for data communication), because having
6105 files and NOT with pipes (for data communication), because having
6103 both pipes and the mouse on is bad news.
6106 both pipes and the mouse on is bad news.
6104
6107
6105 2002-05-13 Fernando Perez <fperez@colorado.edu>
6108 2002-05-13 Fernando Perez <fperez@colorado.edu>
6106
6109
6107 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6110 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6108 bug. Information would be reported about builtins even when
6111 bug. Information would be reported about builtins even when
6109 user-defined functions overrode them.
6112 user-defined functions overrode them.
6110
6113
6111 2002-05-11 Fernando Perez <fperez@colorado.edu>
6114 2002-05-11 Fernando Perez <fperez@colorado.edu>
6112
6115
6113 * IPython/__init__.py (__all__): removed FlexCompleter from
6116 * IPython/__init__.py (__all__): removed FlexCompleter from
6114 __all__ so that things don't fail in platforms without readline.
6117 __all__ so that things don't fail in platforms without readline.
6115
6118
6116 2002-05-10 Fernando Perez <fperez@colorado.edu>
6119 2002-05-10 Fernando Perez <fperez@colorado.edu>
6117
6120
6118 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6121 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6119 it requires Numeric, effectively making Numeric a dependency for
6122 it requires Numeric, effectively making Numeric a dependency for
6120 IPython.
6123 IPython.
6121
6124
6122 * Released 0.2.13
6125 * Released 0.2.13
6123
6126
6124 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6127 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6125 profiler interface. Now all the major options from the profiler
6128 profiler interface. Now all the major options from the profiler
6126 module are directly supported in IPython, both for single
6129 module are directly supported in IPython, both for single
6127 expressions (@prun) and for full programs (@run -p).
6130 expressions (@prun) and for full programs (@run -p).
6128
6131
6129 2002-05-09 Fernando Perez <fperez@colorado.edu>
6132 2002-05-09 Fernando Perez <fperez@colorado.edu>
6130
6133
6131 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6134 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6132 magic properly formatted for screen.
6135 magic properly formatted for screen.
6133
6136
6134 * setup.py (make_shortcut): Changed things to put pdf version in
6137 * setup.py (make_shortcut): Changed things to put pdf version in
6135 doc/ instead of doc/manual (had to change lyxport a bit).
6138 doc/ instead of doc/manual (had to change lyxport a bit).
6136
6139
6137 * IPython/Magic.py (Profile.string_stats): made profile runs go
6140 * IPython/Magic.py (Profile.string_stats): made profile runs go
6138 through pager (they are long and a pager allows searching, saving,
6141 through pager (they are long and a pager allows searching, saving,
6139 etc.)
6142 etc.)
6140
6143
6141 2002-05-08 Fernando Perez <fperez@colorado.edu>
6144 2002-05-08 Fernando Perez <fperez@colorado.edu>
6142
6145
6143 * Released 0.2.12
6146 * Released 0.2.12
6144
6147
6145 2002-05-06 Fernando Perez <fperez@colorado.edu>
6148 2002-05-06 Fernando Perez <fperez@colorado.edu>
6146
6149
6147 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6150 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6148 introduced); 'hist n1 n2' was broken.
6151 introduced); 'hist n1 n2' was broken.
6149 (Magic.magic_pdb): added optional on/off arguments to @pdb
6152 (Magic.magic_pdb): added optional on/off arguments to @pdb
6150 (Magic.magic_run): added option -i to @run, which executes code in
6153 (Magic.magic_run): added option -i to @run, which executes code in
6151 the IPython namespace instead of a clean one. Also added @irun as
6154 the IPython namespace instead of a clean one. Also added @irun as
6152 an alias to @run -i.
6155 an alias to @run -i.
6153
6156
6154 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6157 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6155 fixed (it didn't really do anything, the namespaces were wrong).
6158 fixed (it didn't really do anything, the namespaces were wrong).
6156
6159
6157 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6160 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6158
6161
6159 * IPython/__init__.py (__all__): Fixed package namespace, now
6162 * IPython/__init__.py (__all__): Fixed package namespace, now
6160 'import IPython' does give access to IPython.<all> as
6163 'import IPython' does give access to IPython.<all> as
6161 expected. Also renamed __release__ to Release.
6164 expected. Also renamed __release__ to Release.
6162
6165
6163 * IPython/Debugger.py (__license__): created new Pdb class which
6166 * IPython/Debugger.py (__license__): created new Pdb class which
6164 functions like a drop-in for the normal pdb.Pdb but does NOT
6167 functions like a drop-in for the normal pdb.Pdb but does NOT
6165 import readline by default. This way it doesn't muck up IPython's
6168 import readline by default. This way it doesn't muck up IPython's
6166 readline handling, and now tab-completion finally works in the
6169 readline handling, and now tab-completion finally works in the
6167 debugger -- sort of. It completes things globally visible, but the
6170 debugger -- sort of. It completes things globally visible, but the
6168 completer doesn't track the stack as pdb walks it. That's a bit
6171 completer doesn't track the stack as pdb walks it. That's a bit
6169 tricky, and I'll have to implement it later.
6172 tricky, and I'll have to implement it later.
6170
6173
6171 2002-05-05 Fernando Perez <fperez@colorado.edu>
6174 2002-05-05 Fernando Perez <fperez@colorado.edu>
6172
6175
6173 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6176 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6174 magic docstrings when printed via ? (explicit \'s were being
6177 magic docstrings when printed via ? (explicit \'s were being
6175 printed).
6178 printed).
6176
6179
6177 * IPython/ipmaker.py (make_IPython): fixed namespace
6180 * IPython/ipmaker.py (make_IPython): fixed namespace
6178 identification bug. Now variables loaded via logs or command-line
6181 identification bug. Now variables loaded via logs or command-line
6179 files are recognized in the interactive namespace by @who.
6182 files are recognized in the interactive namespace by @who.
6180
6183
6181 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6184 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6182 log replay system stemming from the string form of Structs.
6185 log replay system stemming from the string form of Structs.
6183
6186
6184 * IPython/Magic.py (Macro.__init__): improved macros to properly
6187 * IPython/Magic.py (Macro.__init__): improved macros to properly
6185 handle magic commands in them.
6188 handle magic commands in them.
6186 (Magic.magic_logstart): usernames are now expanded so 'logstart
6189 (Magic.magic_logstart): usernames are now expanded so 'logstart
6187 ~/mylog' now works.
6190 ~/mylog' now works.
6188
6191
6189 * IPython/iplib.py (complete): fixed bug where paths starting with
6192 * IPython/iplib.py (complete): fixed bug where paths starting with
6190 '/' would be completed as magic names.
6193 '/' would be completed as magic names.
6191
6194
6192 2002-05-04 Fernando Perez <fperez@colorado.edu>
6195 2002-05-04 Fernando Perez <fperez@colorado.edu>
6193
6196
6194 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6197 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6195 allow running full programs under the profiler's control.
6198 allow running full programs under the profiler's control.
6196
6199
6197 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6200 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6198 mode to report exceptions verbosely but without formatting
6201 mode to report exceptions verbosely but without formatting
6199 variables. This addresses the issue of ipython 'freezing' (it's
6202 variables. This addresses the issue of ipython 'freezing' (it's
6200 not frozen, but caught in an expensive formatting loop) when huge
6203 not frozen, but caught in an expensive formatting loop) when huge
6201 variables are in the context of an exception.
6204 variables are in the context of an exception.
6202 (VerboseTB.text): Added '--->' markers at line where exception was
6205 (VerboseTB.text): Added '--->' markers at line where exception was
6203 triggered. Much clearer to read, especially in NoColor modes.
6206 triggered. Much clearer to read, especially in NoColor modes.
6204
6207
6205 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6208 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6206 implemented in reverse when changing to the new parse_options().
6209 implemented in reverse when changing to the new parse_options().
6207
6210
6208 2002-05-03 Fernando Perez <fperez@colorado.edu>
6211 2002-05-03 Fernando Perez <fperez@colorado.edu>
6209
6212
6210 * IPython/Magic.py (Magic.parse_options): new function so that
6213 * IPython/Magic.py (Magic.parse_options): new function so that
6211 magics can parse options easier.
6214 magics can parse options easier.
6212 (Magic.magic_prun): new function similar to profile.run(),
6215 (Magic.magic_prun): new function similar to profile.run(),
6213 suggested by Chris Hart.
6216 suggested by Chris Hart.
6214 (Magic.magic_cd): fixed behavior so that it only changes if
6217 (Magic.magic_cd): fixed behavior so that it only changes if
6215 directory actually is in history.
6218 directory actually is in history.
6216
6219
6217 * IPython/usage.py (__doc__): added information about potential
6220 * IPython/usage.py (__doc__): added information about potential
6218 slowness of Verbose exception mode when there are huge data
6221 slowness of Verbose exception mode when there are huge data
6219 structures to be formatted (thanks to Archie Paulson).
6222 structures to be formatted (thanks to Archie Paulson).
6220
6223
6221 * IPython/ipmaker.py (make_IPython): Changed default logging
6224 * IPython/ipmaker.py (make_IPython): Changed default logging
6222 (when simply called with -log) to use curr_dir/ipython.log in
6225 (when simply called with -log) to use curr_dir/ipython.log in
6223 rotate mode. Fixed crash which was occuring with -log before
6226 rotate mode. Fixed crash which was occuring with -log before
6224 (thanks to Jim Boyle).
6227 (thanks to Jim Boyle).
6225
6228
6226 2002-05-01 Fernando Perez <fperez@colorado.edu>
6229 2002-05-01 Fernando Perez <fperez@colorado.edu>
6227
6230
6228 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6231 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6229 was nasty -- though somewhat of a corner case).
6232 was nasty -- though somewhat of a corner case).
6230
6233
6231 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6234 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6232 text (was a bug).
6235 text (was a bug).
6233
6236
6234 2002-04-30 Fernando Perez <fperez@colorado.edu>
6237 2002-04-30 Fernando Perez <fperez@colorado.edu>
6235
6238
6236 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6239 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6237 a print after ^D or ^C from the user so that the In[] prompt
6240 a print after ^D or ^C from the user so that the In[] prompt
6238 doesn't over-run the gnuplot one.
6241 doesn't over-run the gnuplot one.
6239
6242
6240 2002-04-29 Fernando Perez <fperez@colorado.edu>
6243 2002-04-29 Fernando Perez <fperez@colorado.edu>
6241
6244
6242 * Released 0.2.10
6245 * Released 0.2.10
6243
6246
6244 * IPython/__release__.py (version): get date dynamically.
6247 * IPython/__release__.py (version): get date dynamically.
6245
6248
6246 * Misc. documentation updates thanks to Arnd's comments. Also ran
6249 * Misc. documentation updates thanks to Arnd's comments. Also ran
6247 a full spellcheck on the manual (hadn't been done in a while).
6250 a full spellcheck on the manual (hadn't been done in a while).
6248
6251
6249 2002-04-27 Fernando Perez <fperez@colorado.edu>
6252 2002-04-27 Fernando Perez <fperez@colorado.edu>
6250
6253
6251 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6254 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6252 starting a log in mid-session would reset the input history list.
6255 starting a log in mid-session would reset the input history list.
6253
6256
6254 2002-04-26 Fernando Perez <fperez@colorado.edu>
6257 2002-04-26 Fernando Perez <fperez@colorado.edu>
6255
6258
6256 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6259 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6257 all files were being included in an update. Now anything in
6260 all files were being included in an update. Now anything in
6258 UserConfig that matches [A-Za-z]*.py will go (this excludes
6261 UserConfig that matches [A-Za-z]*.py will go (this excludes
6259 __init__.py)
6262 __init__.py)
6260
6263
6261 2002-04-25 Fernando Perez <fperez@colorado.edu>
6264 2002-04-25 Fernando Perez <fperez@colorado.edu>
6262
6265
6263 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6266 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6264 to __builtins__ so that any form of embedded or imported code can
6267 to __builtins__ so that any form of embedded or imported code can
6265 test for being inside IPython.
6268 test for being inside IPython.
6266
6269
6267 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6270 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6268 changed to GnuplotMagic because it's now an importable module,
6271 changed to GnuplotMagic because it's now an importable module,
6269 this makes the name follow that of the standard Gnuplot module.
6272 this makes the name follow that of the standard Gnuplot module.
6270 GnuplotMagic can now be loaded at any time in mid-session.
6273 GnuplotMagic can now be loaded at any time in mid-session.
6271
6274
6272 2002-04-24 Fernando Perez <fperez@colorado.edu>
6275 2002-04-24 Fernando Perez <fperez@colorado.edu>
6273
6276
6274 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6277 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6275 the globals (IPython has its own namespace) and the
6278 the globals (IPython has its own namespace) and the
6276 PhysicalQuantity stuff is much better anyway.
6279 PhysicalQuantity stuff is much better anyway.
6277
6280
6278 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6281 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6279 embedding example to standard user directory for
6282 embedding example to standard user directory for
6280 distribution. Also put it in the manual.
6283 distribution. Also put it in the manual.
6281
6284
6282 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6285 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6283 instance as first argument (so it doesn't rely on some obscure
6286 instance as first argument (so it doesn't rely on some obscure
6284 hidden global).
6287 hidden global).
6285
6288
6286 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6289 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6287 delimiters. While it prevents ().TAB from working, it allows
6290 delimiters. While it prevents ().TAB from working, it allows
6288 completions in open (... expressions. This is by far a more common
6291 completions in open (... expressions. This is by far a more common
6289 case.
6292 case.
6290
6293
6291 2002-04-23 Fernando Perez <fperez@colorado.edu>
6294 2002-04-23 Fernando Perez <fperez@colorado.edu>
6292
6295
6293 * IPython/Extensions/InterpreterPasteInput.py: new
6296 * IPython/Extensions/InterpreterPasteInput.py: new
6294 syntax-processing module for pasting lines with >>> or ... at the
6297 syntax-processing module for pasting lines with >>> or ... at the
6295 start.
6298 start.
6296
6299
6297 * IPython/Extensions/PhysicalQ_Interactive.py
6300 * IPython/Extensions/PhysicalQ_Interactive.py
6298 (PhysicalQuantityInteractive.__int__): fixed to work with either
6301 (PhysicalQuantityInteractive.__int__): fixed to work with either
6299 Numeric or math.
6302 Numeric or math.
6300
6303
6301 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6304 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6302 provided profiles. Now we have:
6305 provided profiles. Now we have:
6303 -math -> math module as * and cmath with its own namespace.
6306 -math -> math module as * and cmath with its own namespace.
6304 -numeric -> Numeric as *, plus gnuplot & grace
6307 -numeric -> Numeric as *, plus gnuplot & grace
6305 -physics -> same as before
6308 -physics -> same as before
6306
6309
6307 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6310 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6308 user-defined magics wouldn't be found by @magic if they were
6311 user-defined magics wouldn't be found by @magic if they were
6309 defined as class methods. Also cleaned up the namespace search
6312 defined as class methods. Also cleaned up the namespace search
6310 logic and the string building (to use %s instead of many repeated
6313 logic and the string building (to use %s instead of many repeated
6311 string adds).
6314 string adds).
6312
6315
6313 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6316 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6314 of user-defined magics to operate with class methods (cleaner, in
6317 of user-defined magics to operate with class methods (cleaner, in
6315 line with the gnuplot code).
6318 line with the gnuplot code).
6316
6319
6317 2002-04-22 Fernando Perez <fperez@colorado.edu>
6320 2002-04-22 Fernando Perez <fperez@colorado.edu>
6318
6321
6319 * setup.py: updated dependency list so that manual is updated when
6322 * setup.py: updated dependency list so that manual is updated when
6320 all included files change.
6323 all included files change.
6321
6324
6322 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6325 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6323 the delimiter removal option (the fix is ugly right now).
6326 the delimiter removal option (the fix is ugly right now).
6324
6327
6325 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6328 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6326 all of the math profile (quicker loading, no conflict between
6329 all of the math profile (quicker loading, no conflict between
6327 g-9.8 and g-gnuplot).
6330 g-9.8 and g-gnuplot).
6328
6331
6329 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6332 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6330 name of post-mortem files to IPython_crash_report.txt.
6333 name of post-mortem files to IPython_crash_report.txt.
6331
6334
6332 * Cleanup/update of the docs. Added all the new readline info and
6335 * Cleanup/update of the docs. Added all the new readline info and
6333 formatted all lists as 'real lists'.
6336 formatted all lists as 'real lists'.
6334
6337
6335 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6338 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6336 tab-completion options, since the full readline parse_and_bind is
6339 tab-completion options, since the full readline parse_and_bind is
6337 now accessible.
6340 now accessible.
6338
6341
6339 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6342 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6340 handling of readline options. Now users can specify any string to
6343 handling of readline options. Now users can specify any string to
6341 be passed to parse_and_bind(), as well as the delimiters to be
6344 be passed to parse_and_bind(), as well as the delimiters to be
6342 removed.
6345 removed.
6343 (InteractiveShell.__init__): Added __name__ to the global
6346 (InteractiveShell.__init__): Added __name__ to the global
6344 namespace so that things like Itpl which rely on its existence
6347 namespace so that things like Itpl which rely on its existence
6345 don't crash.
6348 don't crash.
6346 (InteractiveShell._prefilter): Defined the default with a _ so
6349 (InteractiveShell._prefilter): Defined the default with a _ so
6347 that prefilter() is easier to override, while the default one
6350 that prefilter() is easier to override, while the default one
6348 remains available.
6351 remains available.
6349
6352
6350 2002-04-18 Fernando Perez <fperez@colorado.edu>
6353 2002-04-18 Fernando Perez <fperez@colorado.edu>
6351
6354
6352 * Added information about pdb in the docs.
6355 * Added information about pdb in the docs.
6353
6356
6354 2002-04-17 Fernando Perez <fperez@colorado.edu>
6357 2002-04-17 Fernando Perez <fperez@colorado.edu>
6355
6358
6356 * IPython/ipmaker.py (make_IPython): added rc_override option to
6359 * IPython/ipmaker.py (make_IPython): added rc_override option to
6357 allow passing config options at creation time which may override
6360 allow passing config options at creation time which may override
6358 anything set in the config files or command line. This is
6361 anything set in the config files or command line. This is
6359 particularly useful for configuring embedded instances.
6362 particularly useful for configuring embedded instances.
6360
6363
6361 2002-04-15 Fernando Perez <fperez@colorado.edu>
6364 2002-04-15 Fernando Perez <fperez@colorado.edu>
6362
6365
6363 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6366 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6364 crash embedded instances because of the input cache falling out of
6367 crash embedded instances because of the input cache falling out of
6365 sync with the output counter.
6368 sync with the output counter.
6366
6369
6367 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6370 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6368 mode which calls pdb after an uncaught exception in IPython itself.
6371 mode which calls pdb after an uncaught exception in IPython itself.
6369
6372
6370 2002-04-14 Fernando Perez <fperez@colorado.edu>
6373 2002-04-14 Fernando Perez <fperez@colorado.edu>
6371
6374
6372 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6375 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6373 readline, fix it back after each call.
6376 readline, fix it back after each call.
6374
6377
6375 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6378 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6376 method to force all access via __call__(), which guarantees that
6379 method to force all access via __call__(), which guarantees that
6377 traceback references are properly deleted.
6380 traceback references are properly deleted.
6378
6381
6379 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6382 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6380 improve printing when pprint is in use.
6383 improve printing when pprint is in use.
6381
6384
6382 2002-04-13 Fernando Perez <fperez@colorado.edu>
6385 2002-04-13 Fernando Perez <fperez@colorado.edu>
6383
6386
6384 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6387 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6385 exceptions aren't caught anymore. If the user triggers one, he
6388 exceptions aren't caught anymore. If the user triggers one, he
6386 should know why he's doing it and it should go all the way up,
6389 should know why he's doing it and it should go all the way up,
6387 just like any other exception. So now @abort will fully kill the
6390 just like any other exception. So now @abort will fully kill the
6388 embedded interpreter and the embedding code (unless that happens
6391 embedded interpreter and the embedding code (unless that happens
6389 to catch SystemExit).
6392 to catch SystemExit).
6390
6393
6391 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6394 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6392 and a debugger() method to invoke the interactive pdb debugger
6395 and a debugger() method to invoke the interactive pdb debugger
6393 after printing exception information. Also added the corresponding
6396 after printing exception information. Also added the corresponding
6394 -pdb option and @pdb magic to control this feature, and updated
6397 -pdb option and @pdb magic to control this feature, and updated
6395 the docs. After a suggestion from Christopher Hart
6398 the docs. After a suggestion from Christopher Hart
6396 (hart-AT-caltech.edu).
6399 (hart-AT-caltech.edu).
6397
6400
6398 2002-04-12 Fernando Perez <fperez@colorado.edu>
6401 2002-04-12 Fernando Perez <fperez@colorado.edu>
6399
6402
6400 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6403 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6401 the exception handlers defined by the user (not the CrashHandler)
6404 the exception handlers defined by the user (not the CrashHandler)
6402 so that user exceptions don't trigger an ipython bug report.
6405 so that user exceptions don't trigger an ipython bug report.
6403
6406
6404 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6407 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6405 configurable (it should have always been so).
6408 configurable (it should have always been so).
6406
6409
6407 2002-03-26 Fernando Perez <fperez@colorado.edu>
6410 2002-03-26 Fernando Perez <fperez@colorado.edu>
6408
6411
6409 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6412 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6410 and there to fix embedding namespace issues. This should all be
6413 and there to fix embedding namespace issues. This should all be
6411 done in a more elegant way.
6414 done in a more elegant way.
6412
6415
6413 2002-03-25 Fernando Perez <fperez@colorado.edu>
6416 2002-03-25 Fernando Perez <fperez@colorado.edu>
6414
6417
6415 * IPython/genutils.py (get_home_dir): Try to make it work under
6418 * IPython/genutils.py (get_home_dir): Try to make it work under
6416 win9x also.
6419 win9x also.
6417
6420
6418 2002-03-20 Fernando Perez <fperez@colorado.edu>
6421 2002-03-20 Fernando Perez <fperez@colorado.edu>
6419
6422
6420 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6423 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6421 sys.displayhook untouched upon __init__.
6424 sys.displayhook untouched upon __init__.
6422
6425
6423 2002-03-19 Fernando Perez <fperez@colorado.edu>
6426 2002-03-19 Fernando Perez <fperez@colorado.edu>
6424
6427
6425 * Released 0.2.9 (for embedding bug, basically).
6428 * Released 0.2.9 (for embedding bug, basically).
6426
6429
6427 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6430 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6428 exceptions so that enclosing shell's state can be restored.
6431 exceptions so that enclosing shell's state can be restored.
6429
6432
6430 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6433 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6431 naming conventions in the .ipython/ dir.
6434 naming conventions in the .ipython/ dir.
6432
6435
6433 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6436 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6434 from delimiters list so filenames with - in them get expanded.
6437 from delimiters list so filenames with - in them get expanded.
6435
6438
6436 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6439 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6437 sys.displayhook not being properly restored after an embedded call.
6440 sys.displayhook not being properly restored after an embedded call.
6438
6441
6439 2002-03-18 Fernando Perez <fperez@colorado.edu>
6442 2002-03-18 Fernando Perez <fperez@colorado.edu>
6440
6443
6441 * Released 0.2.8
6444 * Released 0.2.8
6442
6445
6443 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6446 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6444 some files weren't being included in a -upgrade.
6447 some files weren't being included in a -upgrade.
6445 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6448 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6446 on' so that the first tab completes.
6449 on' so that the first tab completes.
6447 (InteractiveShell.handle_magic): fixed bug with spaces around
6450 (InteractiveShell.handle_magic): fixed bug with spaces around
6448 quotes breaking many magic commands.
6451 quotes breaking many magic commands.
6449
6452
6450 * setup.py: added note about ignoring the syntax error messages at
6453 * setup.py: added note about ignoring the syntax error messages at
6451 installation.
6454 installation.
6452
6455
6453 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6456 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6454 streamlining the gnuplot interface, now there's only one magic @gp.
6457 streamlining the gnuplot interface, now there's only one magic @gp.
6455
6458
6456 2002-03-17 Fernando Perez <fperez@colorado.edu>
6459 2002-03-17 Fernando Perez <fperez@colorado.edu>
6457
6460
6458 * IPython/UserConfig/magic_gnuplot.py: new name for the
6461 * IPython/UserConfig/magic_gnuplot.py: new name for the
6459 example-magic_pm.py file. Much enhanced system, now with a shell
6462 example-magic_pm.py file. Much enhanced system, now with a shell
6460 for communicating directly with gnuplot, one command at a time.
6463 for communicating directly with gnuplot, one command at a time.
6461
6464
6462 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6465 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6463 setting __name__=='__main__'.
6466 setting __name__=='__main__'.
6464
6467
6465 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6468 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6466 mini-shell for accessing gnuplot from inside ipython. Should
6469 mini-shell for accessing gnuplot from inside ipython. Should
6467 extend it later for grace access too. Inspired by Arnd's
6470 extend it later for grace access too. Inspired by Arnd's
6468 suggestion.
6471 suggestion.
6469
6472
6470 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6473 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6471 calling magic functions with () in their arguments. Thanks to Arnd
6474 calling magic functions with () in their arguments. Thanks to Arnd
6472 Baecker for pointing this to me.
6475 Baecker for pointing this to me.
6473
6476
6474 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6477 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6475 infinitely for integer or complex arrays (only worked with floats).
6478 infinitely for integer or complex arrays (only worked with floats).
6476
6479
6477 2002-03-16 Fernando Perez <fperez@colorado.edu>
6480 2002-03-16 Fernando Perez <fperez@colorado.edu>
6478
6481
6479 * setup.py: Merged setup and setup_windows into a single script
6482 * setup.py: Merged setup and setup_windows into a single script
6480 which properly handles things for windows users.
6483 which properly handles things for windows users.
6481
6484
6482 2002-03-15 Fernando Perez <fperez@colorado.edu>
6485 2002-03-15 Fernando Perez <fperez@colorado.edu>
6483
6486
6484 * Big change to the manual: now the magics are all automatically
6487 * Big change to the manual: now the magics are all automatically
6485 documented. This information is generated from their docstrings
6488 documented. This information is generated from their docstrings
6486 and put in a latex file included by the manual lyx file. This way
6489 and put in a latex file included by the manual lyx file. This way
6487 we get always up to date information for the magics. The manual
6490 we get always up to date information for the magics. The manual
6488 now also has proper version information, also auto-synced.
6491 now also has proper version information, also auto-synced.
6489
6492
6490 For this to work, an undocumented --magic_docstrings option was added.
6493 For this to work, an undocumented --magic_docstrings option was added.
6491
6494
6492 2002-03-13 Fernando Perez <fperez@colorado.edu>
6495 2002-03-13 Fernando Perez <fperez@colorado.edu>
6493
6496
6494 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6497 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6495 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6498 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6496
6499
6497 2002-03-12 Fernando Perez <fperez@colorado.edu>
6500 2002-03-12 Fernando Perez <fperez@colorado.edu>
6498
6501
6499 * IPython/ultraTB.py (TermColors): changed color escapes again to
6502 * IPython/ultraTB.py (TermColors): changed color escapes again to
6500 fix the (old, reintroduced) line-wrapping bug. Basically, if
6503 fix the (old, reintroduced) line-wrapping bug. Basically, if
6501 \001..\002 aren't given in the color escapes, lines get wrapped
6504 \001..\002 aren't given in the color escapes, lines get wrapped
6502 weirdly. But giving those screws up old xterms and emacs terms. So
6505 weirdly. But giving those screws up old xterms and emacs terms. So
6503 I added some logic for emacs terms to be ok, but I can't identify old
6506 I added some logic for emacs terms to be ok, but I can't identify old
6504 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6507 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6505
6508
6506 2002-03-10 Fernando Perez <fperez@colorado.edu>
6509 2002-03-10 Fernando Perez <fperez@colorado.edu>
6507
6510
6508 * IPython/usage.py (__doc__): Various documentation cleanups and
6511 * IPython/usage.py (__doc__): Various documentation cleanups and
6509 updates, both in usage docstrings and in the manual.
6512 updates, both in usage docstrings and in the manual.
6510
6513
6511 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6514 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6512 handling of caching. Set minimum acceptabe value for having a
6515 handling of caching. Set minimum acceptabe value for having a
6513 cache at 20 values.
6516 cache at 20 values.
6514
6517
6515 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6518 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6516 install_first_time function to a method, renamed it and added an
6519 install_first_time function to a method, renamed it and added an
6517 'upgrade' mode. Now people can update their config directory with
6520 'upgrade' mode. Now people can update their config directory with
6518 a simple command line switch (-upgrade, also new).
6521 a simple command line switch (-upgrade, also new).
6519
6522
6520 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6523 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6521 @file (convenient for automagic users under Python >= 2.2).
6524 @file (convenient for automagic users under Python >= 2.2).
6522 Removed @files (it seemed more like a plural than an abbrev. of
6525 Removed @files (it seemed more like a plural than an abbrev. of
6523 'file show').
6526 'file show').
6524
6527
6525 * IPython/iplib.py (install_first_time): Fixed crash if there were
6528 * IPython/iplib.py (install_first_time): Fixed crash if there were
6526 backup files ('~') in .ipython/ install directory.
6529 backup files ('~') in .ipython/ install directory.
6527
6530
6528 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6531 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6529 system. Things look fine, but these changes are fairly
6532 system. Things look fine, but these changes are fairly
6530 intrusive. Test them for a few days.
6533 intrusive. Test them for a few days.
6531
6534
6532 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6535 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6533 the prompts system. Now all in/out prompt strings are user
6536 the prompts system. Now all in/out prompt strings are user
6534 controllable. This is particularly useful for embedding, as one
6537 controllable. This is particularly useful for embedding, as one
6535 can tag embedded instances with particular prompts.
6538 can tag embedded instances with particular prompts.
6536
6539
6537 Also removed global use of sys.ps1/2, which now allows nested
6540 Also removed global use of sys.ps1/2, which now allows nested
6538 embeddings without any problems. Added command-line options for
6541 embeddings without any problems. Added command-line options for
6539 the prompt strings.
6542 the prompt strings.
6540
6543
6541 2002-03-08 Fernando Perez <fperez@colorado.edu>
6544 2002-03-08 Fernando Perez <fperez@colorado.edu>
6542
6545
6543 * IPython/UserConfig/example-embed-short.py (ipshell): added
6546 * IPython/UserConfig/example-embed-short.py (ipshell): added
6544 example file with the bare minimum code for embedding.
6547 example file with the bare minimum code for embedding.
6545
6548
6546 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6549 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6547 functionality for the embeddable shell to be activated/deactivated
6550 functionality for the embeddable shell to be activated/deactivated
6548 either globally or at each call.
6551 either globally or at each call.
6549
6552
6550 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6553 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6551 rewriting the prompt with '--->' for auto-inputs with proper
6554 rewriting the prompt with '--->' for auto-inputs with proper
6552 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6555 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6553 this is handled by the prompts class itself, as it should.
6556 this is handled by the prompts class itself, as it should.
6554
6557
6555 2002-03-05 Fernando Perez <fperez@colorado.edu>
6558 2002-03-05 Fernando Perez <fperez@colorado.edu>
6556
6559
6557 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6560 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6558 @logstart to avoid name clashes with the math log function.
6561 @logstart to avoid name clashes with the math log function.
6559
6562
6560 * Big updates to X/Emacs section of the manual.
6563 * Big updates to X/Emacs section of the manual.
6561
6564
6562 * Removed ipython_emacs. Milan explained to me how to pass
6565 * Removed ipython_emacs. Milan explained to me how to pass
6563 arguments to ipython through Emacs. Some day I'm going to end up
6566 arguments to ipython through Emacs. Some day I'm going to end up
6564 learning some lisp...
6567 learning some lisp...
6565
6568
6566 2002-03-04 Fernando Perez <fperez@colorado.edu>
6569 2002-03-04 Fernando Perez <fperez@colorado.edu>
6567
6570
6568 * IPython/ipython_emacs: Created script to be used as the
6571 * IPython/ipython_emacs: Created script to be used as the
6569 py-python-command Emacs variable so we can pass IPython
6572 py-python-command Emacs variable so we can pass IPython
6570 parameters. I can't figure out how to tell Emacs directly to pass
6573 parameters. I can't figure out how to tell Emacs directly to pass
6571 parameters to IPython, so a dummy shell script will do it.
6574 parameters to IPython, so a dummy shell script will do it.
6572
6575
6573 Other enhancements made for things to work better under Emacs'
6576 Other enhancements made for things to work better under Emacs'
6574 various types of terminals. Many thanks to Milan Zamazal
6577 various types of terminals. Many thanks to Milan Zamazal
6575 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6578 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6576
6579
6577 2002-03-01 Fernando Perez <fperez@colorado.edu>
6580 2002-03-01 Fernando Perez <fperez@colorado.edu>
6578
6581
6579 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6582 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6580 that loading of readline is now optional. This gives better
6583 that loading of readline is now optional. This gives better
6581 control to emacs users.
6584 control to emacs users.
6582
6585
6583 * IPython/ultraTB.py (__date__): Modified color escape sequences
6586 * IPython/ultraTB.py (__date__): Modified color escape sequences
6584 and now things work fine under xterm and in Emacs' term buffers
6587 and now things work fine under xterm and in Emacs' term buffers
6585 (though not shell ones). Well, in emacs you get colors, but all
6588 (though not shell ones). Well, in emacs you get colors, but all
6586 seem to be 'light' colors (no difference between dark and light
6589 seem to be 'light' colors (no difference between dark and light
6587 ones). But the garbage chars are gone, and also in xterms. It
6590 ones). But the garbage chars are gone, and also in xterms. It
6588 seems that now I'm using 'cleaner' ansi sequences.
6591 seems that now I'm using 'cleaner' ansi sequences.
6589
6592
6590 2002-02-21 Fernando Perez <fperez@colorado.edu>
6593 2002-02-21 Fernando Perez <fperez@colorado.edu>
6591
6594
6592 * Released 0.2.7 (mainly to publish the scoping fix).
6595 * Released 0.2.7 (mainly to publish the scoping fix).
6593
6596
6594 * IPython/Logger.py (Logger.logstate): added. A corresponding
6597 * IPython/Logger.py (Logger.logstate): added. A corresponding
6595 @logstate magic was created.
6598 @logstate magic was created.
6596
6599
6597 * IPython/Magic.py: fixed nested scoping problem under Python
6600 * IPython/Magic.py: fixed nested scoping problem under Python
6598 2.1.x (automagic wasn't working).
6601 2.1.x (automagic wasn't working).
6599
6602
6600 2002-02-20 Fernando Perez <fperez@colorado.edu>
6603 2002-02-20 Fernando Perez <fperez@colorado.edu>
6601
6604
6602 * Released 0.2.6.
6605 * Released 0.2.6.
6603
6606
6604 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6607 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6605 option so that logs can come out without any headers at all.
6608 option so that logs can come out without any headers at all.
6606
6609
6607 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6610 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6608 SciPy.
6611 SciPy.
6609
6612
6610 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6613 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6611 that embedded IPython calls don't require vars() to be explicitly
6614 that embedded IPython calls don't require vars() to be explicitly
6612 passed. Now they are extracted from the caller's frame (code
6615 passed. Now they are extracted from the caller's frame (code
6613 snatched from Eric Jones' weave). Added better documentation to
6616 snatched from Eric Jones' weave). Added better documentation to
6614 the section on embedding and the example file.
6617 the section on embedding and the example file.
6615
6618
6616 * IPython/genutils.py (page): Changed so that under emacs, it just
6619 * IPython/genutils.py (page): Changed so that under emacs, it just
6617 prints the string. You can then page up and down in the emacs
6620 prints the string. You can then page up and down in the emacs
6618 buffer itself. This is how the builtin help() works.
6621 buffer itself. This is how the builtin help() works.
6619
6622
6620 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6623 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6621 macro scoping: macros need to be executed in the user's namespace
6624 macro scoping: macros need to be executed in the user's namespace
6622 to work as if they had been typed by the user.
6625 to work as if they had been typed by the user.
6623
6626
6624 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6627 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6625 execute automatically (no need to type 'exec...'). They then
6628 execute automatically (no need to type 'exec...'). They then
6626 behave like 'true macros'. The printing system was also modified
6629 behave like 'true macros'. The printing system was also modified
6627 for this to work.
6630 for this to work.
6628
6631
6629 2002-02-19 Fernando Perez <fperez@colorado.edu>
6632 2002-02-19 Fernando Perez <fperez@colorado.edu>
6630
6633
6631 * IPython/genutils.py (page_file): new function for paging files
6634 * IPython/genutils.py (page_file): new function for paging files
6632 in an OS-independent way. Also necessary for file viewing to work
6635 in an OS-independent way. Also necessary for file viewing to work
6633 well inside Emacs buffers.
6636 well inside Emacs buffers.
6634 (page): Added checks for being in an emacs buffer.
6637 (page): Added checks for being in an emacs buffer.
6635 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6638 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6636 same bug in iplib.
6639 same bug in iplib.
6637
6640
6638 2002-02-18 Fernando Perez <fperez@colorado.edu>
6641 2002-02-18 Fernando Perez <fperez@colorado.edu>
6639
6642
6640 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6643 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6641 of readline so that IPython can work inside an Emacs buffer.
6644 of readline so that IPython can work inside an Emacs buffer.
6642
6645
6643 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6646 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6644 method signatures (they weren't really bugs, but it looks cleaner
6647 method signatures (they weren't really bugs, but it looks cleaner
6645 and keeps PyChecker happy).
6648 and keeps PyChecker happy).
6646
6649
6647 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6650 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6648 for implementing various user-defined hooks. Currently only
6651 for implementing various user-defined hooks. Currently only
6649 display is done.
6652 display is done.
6650
6653
6651 * IPython/Prompts.py (CachedOutput._display): changed display
6654 * IPython/Prompts.py (CachedOutput._display): changed display
6652 functions so that they can be dynamically changed by users easily.
6655 functions so that they can be dynamically changed by users easily.
6653
6656
6654 * IPython/Extensions/numeric_formats.py (num_display): added an
6657 * IPython/Extensions/numeric_formats.py (num_display): added an
6655 extension for printing NumPy arrays in flexible manners. It
6658 extension for printing NumPy arrays in flexible manners. It
6656 doesn't do anything yet, but all the structure is in
6659 doesn't do anything yet, but all the structure is in
6657 place. Ultimately the plan is to implement output format control
6660 place. Ultimately the plan is to implement output format control
6658 like in Octave.
6661 like in Octave.
6659
6662
6660 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6663 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6661 methods are found at run-time by all the automatic machinery.
6664 methods are found at run-time by all the automatic machinery.
6662
6665
6663 2002-02-17 Fernando Perez <fperez@colorado.edu>
6666 2002-02-17 Fernando Perez <fperez@colorado.edu>
6664
6667
6665 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6668 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6666 whole file a little.
6669 whole file a little.
6667
6670
6668 * ToDo: closed this document. Now there's a new_design.lyx
6671 * ToDo: closed this document. Now there's a new_design.lyx
6669 document for all new ideas. Added making a pdf of it for the
6672 document for all new ideas. Added making a pdf of it for the
6670 end-user distro.
6673 end-user distro.
6671
6674
6672 * IPython/Logger.py (Logger.switch_log): Created this to replace
6675 * IPython/Logger.py (Logger.switch_log): Created this to replace
6673 logon() and logoff(). It also fixes a nasty crash reported by
6676 logon() and logoff(). It also fixes a nasty crash reported by
6674 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6677 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6675
6678
6676 * IPython/iplib.py (complete): got auto-completion to work with
6679 * IPython/iplib.py (complete): got auto-completion to work with
6677 automagic (I had wanted this for a long time).
6680 automagic (I had wanted this for a long time).
6678
6681
6679 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6682 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6680 to @file, since file() is now a builtin and clashes with automagic
6683 to @file, since file() is now a builtin and clashes with automagic
6681 for @file.
6684 for @file.
6682
6685
6683 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6686 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6684 of this was previously in iplib, which had grown to more than 2000
6687 of this was previously in iplib, which had grown to more than 2000
6685 lines, way too long. No new functionality, but it makes managing
6688 lines, way too long. No new functionality, but it makes managing
6686 the code a bit easier.
6689 the code a bit easier.
6687
6690
6688 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6691 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6689 information to crash reports.
6692 information to crash reports.
6690
6693
6691 2002-02-12 Fernando Perez <fperez@colorado.edu>
6694 2002-02-12 Fernando Perez <fperez@colorado.edu>
6692
6695
6693 * Released 0.2.5.
6696 * Released 0.2.5.
6694
6697
6695 2002-02-11 Fernando Perez <fperez@colorado.edu>
6698 2002-02-11 Fernando Perez <fperez@colorado.edu>
6696
6699
6697 * Wrote a relatively complete Windows installer. It puts
6700 * Wrote a relatively complete Windows installer. It puts
6698 everything in place, creates Start Menu entries and fixes the
6701 everything in place, creates Start Menu entries and fixes the
6699 color issues. Nothing fancy, but it works.
6702 color issues. Nothing fancy, but it works.
6700
6703
6701 2002-02-10 Fernando Perez <fperez@colorado.edu>
6704 2002-02-10 Fernando Perez <fperez@colorado.edu>
6702
6705
6703 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6706 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6704 os.path.expanduser() call so that we can type @run ~/myfile.py and
6707 os.path.expanduser() call so that we can type @run ~/myfile.py and
6705 have thigs work as expected.
6708 have thigs work as expected.
6706
6709
6707 * IPython/genutils.py (page): fixed exception handling so things
6710 * IPython/genutils.py (page): fixed exception handling so things
6708 work both in Unix and Windows correctly. Quitting a pager triggers
6711 work both in Unix and Windows correctly. Quitting a pager triggers
6709 an IOError/broken pipe in Unix, and in windows not finding a pager
6712 an IOError/broken pipe in Unix, and in windows not finding a pager
6710 is also an IOError, so I had to actually look at the return value
6713 is also an IOError, so I had to actually look at the return value
6711 of the exception, not just the exception itself. Should be ok now.
6714 of the exception, not just the exception itself. Should be ok now.
6712
6715
6713 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6716 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6714 modified to allow case-insensitive color scheme changes.
6717 modified to allow case-insensitive color scheme changes.
6715
6718
6716 2002-02-09 Fernando Perez <fperez@colorado.edu>
6719 2002-02-09 Fernando Perez <fperez@colorado.edu>
6717
6720
6718 * IPython/genutils.py (native_line_ends): new function to leave
6721 * IPython/genutils.py (native_line_ends): new function to leave
6719 user config files with os-native line-endings.
6722 user config files with os-native line-endings.
6720
6723
6721 * README and manual updates.
6724 * README and manual updates.
6722
6725
6723 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6726 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6724 instead of StringType to catch Unicode strings.
6727 instead of StringType to catch Unicode strings.
6725
6728
6726 * IPython/genutils.py (filefind): fixed bug for paths with
6729 * IPython/genutils.py (filefind): fixed bug for paths with
6727 embedded spaces (very common in Windows).
6730 embedded spaces (very common in Windows).
6728
6731
6729 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6732 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6730 files under Windows, so that they get automatically associated
6733 files under Windows, so that they get automatically associated
6731 with a text editor. Windows makes it a pain to handle
6734 with a text editor. Windows makes it a pain to handle
6732 extension-less files.
6735 extension-less files.
6733
6736
6734 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6737 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6735 warning about readline only occur for Posix. In Windows there's no
6738 warning about readline only occur for Posix. In Windows there's no
6736 way to get readline, so why bother with the warning.
6739 way to get readline, so why bother with the warning.
6737
6740
6738 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6741 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6739 for __str__ instead of dir(self), since dir() changed in 2.2.
6742 for __str__ instead of dir(self), since dir() changed in 2.2.
6740
6743
6741 * Ported to Windows! Tested on XP, I suspect it should work fine
6744 * Ported to Windows! Tested on XP, I suspect it should work fine
6742 on NT/2000, but I don't think it will work on 98 et al. That
6745 on NT/2000, but I don't think it will work on 98 et al. That
6743 series of Windows is such a piece of junk anyway that I won't try
6746 series of Windows is such a piece of junk anyway that I won't try
6744 porting it there. The XP port was straightforward, showed a few
6747 porting it there. The XP port was straightforward, showed a few
6745 bugs here and there (fixed all), in particular some string
6748 bugs here and there (fixed all), in particular some string
6746 handling stuff which required considering Unicode strings (which
6749 handling stuff which required considering Unicode strings (which
6747 Windows uses). This is good, but hasn't been too tested :) No
6750 Windows uses). This is good, but hasn't been too tested :) No
6748 fancy installer yet, I'll put a note in the manual so people at
6751 fancy installer yet, I'll put a note in the manual so people at
6749 least make manually a shortcut.
6752 least make manually a shortcut.
6750
6753
6751 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6754 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6752 into a single one, "colors". This now controls both prompt and
6755 into a single one, "colors". This now controls both prompt and
6753 exception color schemes, and can be changed both at startup
6756 exception color schemes, and can be changed both at startup
6754 (either via command-line switches or via ipythonrc files) and at
6757 (either via command-line switches or via ipythonrc files) and at
6755 runtime, with @colors.
6758 runtime, with @colors.
6756 (Magic.magic_run): renamed @prun to @run and removed the old
6759 (Magic.magic_run): renamed @prun to @run and removed the old
6757 @run. The two were too similar to warrant keeping both.
6760 @run. The two were too similar to warrant keeping both.
6758
6761
6759 2002-02-03 Fernando Perez <fperez@colorado.edu>
6762 2002-02-03 Fernando Perez <fperez@colorado.edu>
6760
6763
6761 * IPython/iplib.py (install_first_time): Added comment on how to
6764 * IPython/iplib.py (install_first_time): Added comment on how to
6762 configure the color options for first-time users. Put a <return>
6765 configure the color options for first-time users. Put a <return>
6763 request at the end so that small-terminal users get a chance to
6766 request at the end so that small-terminal users get a chance to
6764 read the startup info.
6767 read the startup info.
6765
6768
6766 2002-01-23 Fernando Perez <fperez@colorado.edu>
6769 2002-01-23 Fernando Perez <fperez@colorado.edu>
6767
6770
6768 * IPython/iplib.py (CachedOutput.update): Changed output memory
6771 * IPython/iplib.py (CachedOutput.update): Changed output memory
6769 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6772 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6770 input history we still use _i. Did this b/c these variable are
6773 input history we still use _i. Did this b/c these variable are
6771 very commonly used in interactive work, so the less we need to
6774 very commonly used in interactive work, so the less we need to
6772 type the better off we are.
6775 type the better off we are.
6773 (Magic.magic_prun): updated @prun to better handle the namespaces
6776 (Magic.magic_prun): updated @prun to better handle the namespaces
6774 the file will run in, including a fix for __name__ not being set
6777 the file will run in, including a fix for __name__ not being set
6775 before.
6778 before.
6776
6779
6777 2002-01-20 Fernando Perez <fperez@colorado.edu>
6780 2002-01-20 Fernando Perez <fperez@colorado.edu>
6778
6781
6779 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6782 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6780 extra garbage for Python 2.2. Need to look more carefully into
6783 extra garbage for Python 2.2. Need to look more carefully into
6781 this later.
6784 this later.
6782
6785
6783 2002-01-19 Fernando Perez <fperez@colorado.edu>
6786 2002-01-19 Fernando Perez <fperez@colorado.edu>
6784
6787
6785 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6788 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6786 display SyntaxError exceptions properly formatted when they occur
6789 display SyntaxError exceptions properly formatted when they occur
6787 (they can be triggered by imported code).
6790 (they can be triggered by imported code).
6788
6791
6789 2002-01-18 Fernando Perez <fperez@colorado.edu>
6792 2002-01-18 Fernando Perez <fperez@colorado.edu>
6790
6793
6791 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6794 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6792 SyntaxError exceptions are reported nicely formatted, instead of
6795 SyntaxError exceptions are reported nicely formatted, instead of
6793 spitting out only offset information as before.
6796 spitting out only offset information as before.
6794 (Magic.magic_prun): Added the @prun function for executing
6797 (Magic.magic_prun): Added the @prun function for executing
6795 programs with command line args inside IPython.
6798 programs with command line args inside IPython.
6796
6799
6797 2002-01-16 Fernando Perez <fperez@colorado.edu>
6800 2002-01-16 Fernando Perez <fperez@colorado.edu>
6798
6801
6799 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6802 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6800 to *not* include the last item given in a range. This brings their
6803 to *not* include the last item given in a range. This brings their
6801 behavior in line with Python's slicing:
6804 behavior in line with Python's slicing:
6802 a[n1:n2] -> a[n1]...a[n2-1]
6805 a[n1:n2] -> a[n1]...a[n2-1]
6803 It may be a bit less convenient, but I prefer to stick to Python's
6806 It may be a bit less convenient, but I prefer to stick to Python's
6804 conventions *everywhere*, so users never have to wonder.
6807 conventions *everywhere*, so users never have to wonder.
6805 (Magic.magic_macro): Added @macro function to ease the creation of
6808 (Magic.magic_macro): Added @macro function to ease the creation of
6806 macros.
6809 macros.
6807
6810
6808 2002-01-05 Fernando Perez <fperez@colorado.edu>
6811 2002-01-05 Fernando Perez <fperez@colorado.edu>
6809
6812
6810 * Released 0.2.4.
6813 * Released 0.2.4.
6811
6814
6812 * IPython/iplib.py (Magic.magic_pdef):
6815 * IPython/iplib.py (Magic.magic_pdef):
6813 (InteractiveShell.safe_execfile): report magic lines and error
6816 (InteractiveShell.safe_execfile): report magic lines and error
6814 lines without line numbers so one can easily copy/paste them for
6817 lines without line numbers so one can easily copy/paste them for
6815 re-execution.
6818 re-execution.
6816
6819
6817 * Updated manual with recent changes.
6820 * Updated manual with recent changes.
6818
6821
6819 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6822 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6820 docstring printing when class? is called. Very handy for knowing
6823 docstring printing when class? is called. Very handy for knowing
6821 how to create class instances (as long as __init__ is well
6824 how to create class instances (as long as __init__ is well
6822 documented, of course :)
6825 documented, of course :)
6823 (Magic.magic_doc): print both class and constructor docstrings.
6826 (Magic.magic_doc): print both class and constructor docstrings.
6824 (Magic.magic_pdef): give constructor info if passed a class and
6827 (Magic.magic_pdef): give constructor info if passed a class and
6825 __call__ info for callable object instances.
6828 __call__ info for callable object instances.
6826
6829
6827 2002-01-04 Fernando Perez <fperez@colorado.edu>
6830 2002-01-04 Fernando Perez <fperez@colorado.edu>
6828
6831
6829 * Made deep_reload() off by default. It doesn't always work
6832 * Made deep_reload() off by default. It doesn't always work
6830 exactly as intended, so it's probably safer to have it off. It's
6833 exactly as intended, so it's probably safer to have it off. It's
6831 still available as dreload() anyway, so nothing is lost.
6834 still available as dreload() anyway, so nothing is lost.
6832
6835
6833 2002-01-02 Fernando Perez <fperez@colorado.edu>
6836 2002-01-02 Fernando Perez <fperez@colorado.edu>
6834
6837
6835 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6838 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6836 so I wanted an updated release).
6839 so I wanted an updated release).
6837
6840
6838 2001-12-27 Fernando Perez <fperez@colorado.edu>
6841 2001-12-27 Fernando Perez <fperez@colorado.edu>
6839
6842
6840 * IPython/iplib.py (InteractiveShell.interact): Added the original
6843 * IPython/iplib.py (InteractiveShell.interact): Added the original
6841 code from 'code.py' for this module in order to change the
6844 code from 'code.py' for this module in order to change the
6842 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6845 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6843 the history cache would break when the user hit Ctrl-C, and
6846 the history cache would break when the user hit Ctrl-C, and
6844 interact() offers no way to add any hooks to it.
6847 interact() offers no way to add any hooks to it.
6845
6848
6846 2001-12-23 Fernando Perez <fperez@colorado.edu>
6849 2001-12-23 Fernando Perez <fperez@colorado.edu>
6847
6850
6848 * setup.py: added check for 'MANIFEST' before trying to remove
6851 * setup.py: added check for 'MANIFEST' before trying to remove
6849 it. Thanks to Sean Reifschneider.
6852 it. Thanks to Sean Reifschneider.
6850
6853
6851 2001-12-22 Fernando Perez <fperez@colorado.edu>
6854 2001-12-22 Fernando Perez <fperez@colorado.edu>
6852
6855
6853 * Released 0.2.2.
6856 * Released 0.2.2.
6854
6857
6855 * Finished (reasonably) writing the manual. Later will add the
6858 * Finished (reasonably) writing the manual. Later will add the
6856 python-standard navigation stylesheets, but for the time being
6859 python-standard navigation stylesheets, but for the time being
6857 it's fairly complete. Distribution will include html and pdf
6860 it's fairly complete. Distribution will include html and pdf
6858 versions.
6861 versions.
6859
6862
6860 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6863 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6861 (MayaVi author).
6864 (MayaVi author).
6862
6865
6863 2001-12-21 Fernando Perez <fperez@colorado.edu>
6866 2001-12-21 Fernando Perez <fperez@colorado.edu>
6864
6867
6865 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6868 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6866 good public release, I think (with the manual and the distutils
6869 good public release, I think (with the manual and the distutils
6867 installer). The manual can use some work, but that can go
6870 installer). The manual can use some work, but that can go
6868 slowly. Otherwise I think it's quite nice for end users. Next
6871 slowly. Otherwise I think it's quite nice for end users. Next
6869 summer, rewrite the guts of it...
6872 summer, rewrite the guts of it...
6870
6873
6871 * Changed format of ipythonrc files to use whitespace as the
6874 * Changed format of ipythonrc files to use whitespace as the
6872 separator instead of an explicit '='. Cleaner.
6875 separator instead of an explicit '='. Cleaner.
6873
6876
6874 2001-12-20 Fernando Perez <fperez@colorado.edu>
6877 2001-12-20 Fernando Perez <fperez@colorado.edu>
6875
6878
6876 * Started a manual in LyX. For now it's just a quick merge of the
6879 * Started a manual in LyX. For now it's just a quick merge of the
6877 various internal docstrings and READMEs. Later it may grow into a
6880 various internal docstrings and READMEs. Later it may grow into a
6878 nice, full-blown manual.
6881 nice, full-blown manual.
6879
6882
6880 * Set up a distutils based installer. Installation should now be
6883 * Set up a distutils based installer. Installation should now be
6881 trivially simple for end-users.
6884 trivially simple for end-users.
6882
6885
6883 2001-12-11 Fernando Perez <fperez@colorado.edu>
6886 2001-12-11 Fernando Perez <fperez@colorado.edu>
6884
6887
6885 * Released 0.2.0. First public release, announced it at
6888 * Released 0.2.0. First public release, announced it at
6886 comp.lang.python. From now on, just bugfixes...
6889 comp.lang.python. From now on, just bugfixes...
6887
6890
6888 * Went through all the files, set copyright/license notices and
6891 * Went through all the files, set copyright/license notices and
6889 cleaned up things. Ready for release.
6892 cleaned up things. Ready for release.
6890
6893
6891 2001-12-10 Fernando Perez <fperez@colorado.edu>
6894 2001-12-10 Fernando Perez <fperez@colorado.edu>
6892
6895
6893 * Changed the first-time installer not to use tarfiles. It's more
6896 * Changed the first-time installer not to use tarfiles. It's more
6894 robust now and less unix-dependent. Also makes it easier for
6897 robust now and less unix-dependent. Also makes it easier for
6895 people to later upgrade versions.
6898 people to later upgrade versions.
6896
6899
6897 * Changed @exit to @abort to reflect the fact that it's pretty
6900 * Changed @exit to @abort to reflect the fact that it's pretty
6898 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6901 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6899 becomes significant only when IPyhton is embedded: in that case,
6902 becomes significant only when IPyhton is embedded: in that case,
6900 C-D closes IPython only, but @abort kills the enclosing program
6903 C-D closes IPython only, but @abort kills the enclosing program
6901 too (unless it had called IPython inside a try catching
6904 too (unless it had called IPython inside a try catching
6902 SystemExit).
6905 SystemExit).
6903
6906
6904 * Created Shell module which exposes the actuall IPython Shell
6907 * Created Shell module which exposes the actuall IPython Shell
6905 classes, currently the normal and the embeddable one. This at
6908 classes, currently the normal and the embeddable one. This at
6906 least offers a stable interface we won't need to change when
6909 least offers a stable interface we won't need to change when
6907 (later) the internals are rewritten. That rewrite will be confined
6910 (later) the internals are rewritten. That rewrite will be confined
6908 to iplib and ipmaker, but the Shell interface should remain as is.
6911 to iplib and ipmaker, but the Shell interface should remain as is.
6909
6912
6910 * Added embed module which offers an embeddable IPShell object,
6913 * Added embed module which offers an embeddable IPShell object,
6911 useful to fire up IPython *inside* a running program. Great for
6914 useful to fire up IPython *inside* a running program. Great for
6912 debugging or dynamical data analysis.
6915 debugging or dynamical data analysis.
6913
6916
6914 2001-12-08 Fernando Perez <fperez@colorado.edu>
6917 2001-12-08 Fernando Perez <fperez@colorado.edu>
6915
6918
6916 * Fixed small bug preventing seeing info from methods of defined
6919 * Fixed small bug preventing seeing info from methods of defined
6917 objects (incorrect namespace in _ofind()).
6920 objects (incorrect namespace in _ofind()).
6918
6921
6919 * Documentation cleanup. Moved the main usage docstrings to a
6922 * Documentation cleanup. Moved the main usage docstrings to a
6920 separate file, usage.py (cleaner to maintain, and hopefully in the
6923 separate file, usage.py (cleaner to maintain, and hopefully in the
6921 future some perlpod-like way of producing interactive, man and
6924 future some perlpod-like way of producing interactive, man and
6922 html docs out of it will be found).
6925 html docs out of it will be found).
6923
6926
6924 * Added @profile to see your profile at any time.
6927 * Added @profile to see your profile at any time.
6925
6928
6926 * Added @p as an alias for 'print'. It's especially convenient if
6929 * Added @p as an alias for 'print'. It's especially convenient if
6927 using automagic ('p x' prints x).
6930 using automagic ('p x' prints x).
6928
6931
6929 * Small cleanups and fixes after a pychecker run.
6932 * Small cleanups and fixes after a pychecker run.
6930
6933
6931 * Changed the @cd command to handle @cd - and @cd -<n> for
6934 * Changed the @cd command to handle @cd - and @cd -<n> for
6932 visiting any directory in _dh.
6935 visiting any directory in _dh.
6933
6936
6934 * Introduced _dh, a history of visited directories. @dhist prints
6937 * Introduced _dh, a history of visited directories. @dhist prints
6935 it out with numbers.
6938 it out with numbers.
6936
6939
6937 2001-12-07 Fernando Perez <fperez@colorado.edu>
6940 2001-12-07 Fernando Perez <fperez@colorado.edu>
6938
6941
6939 * Released 0.1.22
6942 * Released 0.1.22
6940
6943
6941 * Made initialization a bit more robust against invalid color
6944 * Made initialization a bit more robust against invalid color
6942 options in user input (exit, not traceback-crash).
6945 options in user input (exit, not traceback-crash).
6943
6946
6944 * Changed the bug crash reporter to write the report only in the
6947 * Changed the bug crash reporter to write the report only in the
6945 user's .ipython directory. That way IPython won't litter people's
6948 user's .ipython directory. That way IPython won't litter people's
6946 hard disks with crash files all over the place. Also print on
6949 hard disks with crash files all over the place. Also print on
6947 screen the necessary mail command.
6950 screen the necessary mail command.
6948
6951
6949 * With the new ultraTB, implemented LightBG color scheme for light
6952 * With the new ultraTB, implemented LightBG color scheme for light
6950 background terminals. A lot of people like white backgrounds, so I
6953 background terminals. A lot of people like white backgrounds, so I
6951 guess we should at least give them something readable.
6954 guess we should at least give them something readable.
6952
6955
6953 2001-12-06 Fernando Perez <fperez@colorado.edu>
6956 2001-12-06 Fernando Perez <fperez@colorado.edu>
6954
6957
6955 * Modified the structure of ultraTB. Now there's a proper class
6958 * Modified the structure of ultraTB. Now there's a proper class
6956 for tables of color schemes which allow adding schemes easily and
6959 for tables of color schemes which allow adding schemes easily and
6957 switching the active scheme without creating a new instance every
6960 switching the active scheme without creating a new instance every
6958 time (which was ridiculous). The syntax for creating new schemes
6961 time (which was ridiculous). The syntax for creating new schemes
6959 is also cleaner. I think ultraTB is finally done, with a clean
6962 is also cleaner. I think ultraTB is finally done, with a clean
6960 class structure. Names are also much cleaner (now there's proper
6963 class structure. Names are also much cleaner (now there's proper
6961 color tables, no need for every variable to also have 'color' in
6964 color tables, no need for every variable to also have 'color' in
6962 its name).
6965 its name).
6963
6966
6964 * Broke down genutils into separate files. Now genutils only
6967 * Broke down genutils into separate files. Now genutils only
6965 contains utility functions, and classes have been moved to their
6968 contains utility functions, and classes have been moved to their
6966 own files (they had enough independent functionality to warrant
6969 own files (they had enough independent functionality to warrant
6967 it): ConfigLoader, OutputTrap, Struct.
6970 it): ConfigLoader, OutputTrap, Struct.
6968
6971
6969 2001-12-05 Fernando Perez <fperez@colorado.edu>
6972 2001-12-05 Fernando Perez <fperez@colorado.edu>
6970
6973
6971 * IPython turns 21! Released version 0.1.21, as a candidate for
6974 * IPython turns 21! Released version 0.1.21, as a candidate for
6972 public consumption. If all goes well, release in a few days.
6975 public consumption. If all goes well, release in a few days.
6973
6976
6974 * Fixed path bug (files in Extensions/ directory wouldn't be found
6977 * Fixed path bug (files in Extensions/ directory wouldn't be found
6975 unless IPython/ was explicitly in sys.path).
6978 unless IPython/ was explicitly in sys.path).
6976
6979
6977 * Extended the FlexCompleter class as MagicCompleter to allow
6980 * Extended the FlexCompleter class as MagicCompleter to allow
6978 completion of @-starting lines.
6981 completion of @-starting lines.
6979
6982
6980 * Created __release__.py file as a central repository for release
6983 * Created __release__.py file as a central repository for release
6981 info that other files can read from.
6984 info that other files can read from.
6982
6985
6983 * Fixed small bug in logging: when logging was turned on in
6986 * Fixed small bug in logging: when logging was turned on in
6984 mid-session, old lines with special meanings (!@?) were being
6987 mid-session, old lines with special meanings (!@?) were being
6985 logged without the prepended comment, which is necessary since
6988 logged without the prepended comment, which is necessary since
6986 they are not truly valid python syntax. This should make session
6989 they are not truly valid python syntax. This should make session
6987 restores produce less errors.
6990 restores produce less errors.
6988
6991
6989 * The namespace cleanup forced me to make a FlexCompleter class
6992 * The namespace cleanup forced me to make a FlexCompleter class
6990 which is nothing but a ripoff of rlcompleter, but with selectable
6993 which is nothing but a ripoff of rlcompleter, but with selectable
6991 namespace (rlcompleter only works in __main__.__dict__). I'll try
6994 namespace (rlcompleter only works in __main__.__dict__). I'll try
6992 to submit a note to the authors to see if this change can be
6995 to submit a note to the authors to see if this change can be
6993 incorporated in future rlcompleter releases (Dec.6: done)
6996 incorporated in future rlcompleter releases (Dec.6: done)
6994
6997
6995 * More fixes to namespace handling. It was a mess! Now all
6998 * More fixes to namespace handling. It was a mess! Now all
6996 explicit references to __main__.__dict__ are gone (except when
6999 explicit references to __main__.__dict__ are gone (except when
6997 really needed) and everything is handled through the namespace
7000 really needed) and everything is handled through the namespace
6998 dicts in the IPython instance. We seem to be getting somewhere
7001 dicts in the IPython instance. We seem to be getting somewhere
6999 with this, finally...
7002 with this, finally...
7000
7003
7001 * Small documentation updates.
7004 * Small documentation updates.
7002
7005
7003 * Created the Extensions directory under IPython (with an
7006 * Created the Extensions directory under IPython (with an
7004 __init__.py). Put the PhysicalQ stuff there. This directory should
7007 __init__.py). Put the PhysicalQ stuff there. This directory should
7005 be used for all special-purpose extensions.
7008 be used for all special-purpose extensions.
7006
7009
7007 * File renaming:
7010 * File renaming:
7008 ipythonlib --> ipmaker
7011 ipythonlib --> ipmaker
7009 ipplib --> iplib
7012 ipplib --> iplib
7010 This makes a bit more sense in terms of what these files actually do.
7013 This makes a bit more sense in terms of what these files actually do.
7011
7014
7012 * Moved all the classes and functions in ipythonlib to ipplib, so
7015 * Moved all the classes and functions in ipythonlib to ipplib, so
7013 now ipythonlib only has make_IPython(). This will ease up its
7016 now ipythonlib only has make_IPython(). This will ease up its
7014 splitting in smaller functional chunks later.
7017 splitting in smaller functional chunks later.
7015
7018
7016 * Cleaned up (done, I think) output of @whos. Better column
7019 * Cleaned up (done, I think) output of @whos. Better column
7017 formatting, and now shows str(var) for as much as it can, which is
7020 formatting, and now shows str(var) for as much as it can, which is
7018 typically what one gets with a 'print var'.
7021 typically what one gets with a 'print var'.
7019
7022
7020 2001-12-04 Fernando Perez <fperez@colorado.edu>
7023 2001-12-04 Fernando Perez <fperez@colorado.edu>
7021
7024
7022 * Fixed namespace problems. Now builtin/IPyhton/user names get
7025 * Fixed namespace problems. Now builtin/IPyhton/user names get
7023 properly reported in their namespace. Internal namespace handling
7026 properly reported in their namespace. Internal namespace handling
7024 is finally getting decent (not perfect yet, but much better than
7027 is finally getting decent (not perfect yet, but much better than
7025 the ad-hoc mess we had).
7028 the ad-hoc mess we had).
7026
7029
7027 * Removed -exit option. If people just want to run a python
7030 * Removed -exit option. If people just want to run a python
7028 script, that's what the normal interpreter is for. Less
7031 script, that's what the normal interpreter is for. Less
7029 unnecessary options, less chances for bugs.
7032 unnecessary options, less chances for bugs.
7030
7033
7031 * Added a crash handler which generates a complete post-mortem if
7034 * Added a crash handler which generates a complete post-mortem if
7032 IPython crashes. This will help a lot in tracking bugs down the
7035 IPython crashes. This will help a lot in tracking bugs down the
7033 road.
7036 road.
7034
7037
7035 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7038 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7036 which were boud to functions being reassigned would bypass the
7039 which were boud to functions being reassigned would bypass the
7037 logger, breaking the sync of _il with the prompt counter. This
7040 logger, breaking the sync of _il with the prompt counter. This
7038 would then crash IPython later when a new line was logged.
7041 would then crash IPython later when a new line was logged.
7039
7042
7040 2001-12-02 Fernando Perez <fperez@colorado.edu>
7043 2001-12-02 Fernando Perez <fperez@colorado.edu>
7041
7044
7042 * Made IPython a package. This means people don't have to clutter
7045 * Made IPython a package. This means people don't have to clutter
7043 their sys.path with yet another directory. Changed the INSTALL
7046 their sys.path with yet another directory. Changed the INSTALL
7044 file accordingly.
7047 file accordingly.
7045
7048
7046 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7049 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7047 sorts its output (so @who shows it sorted) and @whos formats the
7050 sorts its output (so @who shows it sorted) and @whos formats the
7048 table according to the width of the first column. Nicer, easier to
7051 table according to the width of the first column. Nicer, easier to
7049 read. Todo: write a generic table_format() which takes a list of
7052 read. Todo: write a generic table_format() which takes a list of
7050 lists and prints it nicely formatted, with optional row/column
7053 lists and prints it nicely formatted, with optional row/column
7051 separators and proper padding and justification.
7054 separators and proper padding and justification.
7052
7055
7053 * Released 0.1.20
7056 * Released 0.1.20
7054
7057
7055 * Fixed bug in @log which would reverse the inputcache list (a
7058 * Fixed bug in @log which would reverse the inputcache list (a
7056 copy operation was missing).
7059 copy operation was missing).
7057
7060
7058 * Code cleanup. @config was changed to use page(). Better, since
7061 * Code cleanup. @config was changed to use page(). Better, since
7059 its output is always quite long.
7062 its output is always quite long.
7060
7063
7061 * Itpl is back as a dependency. I was having too many problems
7064 * Itpl is back as a dependency. I was having too many problems
7062 getting the parametric aliases to work reliably, and it's just
7065 getting the parametric aliases to work reliably, and it's just
7063 easier to code weird string operations with it than playing %()s
7066 easier to code weird string operations with it than playing %()s
7064 games. It's only ~6k, so I don't think it's too big a deal.
7067 games. It's only ~6k, so I don't think it's too big a deal.
7065
7068
7066 * Found (and fixed) a very nasty bug with history. !lines weren't
7069 * Found (and fixed) a very nasty bug with history. !lines weren't
7067 getting cached, and the out of sync caches would crash
7070 getting cached, and the out of sync caches would crash
7068 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7071 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7069 division of labor a bit better. Bug fixed, cleaner structure.
7072 division of labor a bit better. Bug fixed, cleaner structure.
7070
7073
7071 2001-12-01 Fernando Perez <fperez@colorado.edu>
7074 2001-12-01 Fernando Perez <fperez@colorado.edu>
7072
7075
7073 * Released 0.1.19
7076 * Released 0.1.19
7074
7077
7075 * Added option -n to @hist to prevent line number printing. Much
7078 * Added option -n to @hist to prevent line number printing. Much
7076 easier to copy/paste code this way.
7079 easier to copy/paste code this way.
7077
7080
7078 * Created global _il to hold the input list. Allows easy
7081 * Created global _il to hold the input list. Allows easy
7079 re-execution of blocks of code by slicing it (inspired by Janko's
7082 re-execution of blocks of code by slicing it (inspired by Janko's
7080 comment on 'macros').
7083 comment on 'macros').
7081
7084
7082 * Small fixes and doc updates.
7085 * Small fixes and doc updates.
7083
7086
7084 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7087 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7085 much too fragile with automagic. Handles properly multi-line
7088 much too fragile with automagic. Handles properly multi-line
7086 statements and takes parameters.
7089 statements and takes parameters.
7087
7090
7088 2001-11-30 Fernando Perez <fperez@colorado.edu>
7091 2001-11-30 Fernando Perez <fperez@colorado.edu>
7089
7092
7090 * Version 0.1.18 released.
7093 * Version 0.1.18 released.
7091
7094
7092 * Fixed nasty namespace bug in initial module imports.
7095 * Fixed nasty namespace bug in initial module imports.
7093
7096
7094 * Added copyright/license notes to all code files (except
7097 * Added copyright/license notes to all code files (except
7095 DPyGetOpt). For the time being, LGPL. That could change.
7098 DPyGetOpt). For the time being, LGPL. That could change.
7096
7099
7097 * Rewrote a much nicer README, updated INSTALL, cleaned up
7100 * Rewrote a much nicer README, updated INSTALL, cleaned up
7098 ipythonrc-* samples.
7101 ipythonrc-* samples.
7099
7102
7100 * Overall code/documentation cleanup. Basically ready for
7103 * Overall code/documentation cleanup. Basically ready for
7101 release. Only remaining thing: licence decision (LGPL?).
7104 release. Only remaining thing: licence decision (LGPL?).
7102
7105
7103 * Converted load_config to a class, ConfigLoader. Now recursion
7106 * Converted load_config to a class, ConfigLoader. Now recursion
7104 control is better organized. Doesn't include the same file twice.
7107 control is better organized. Doesn't include the same file twice.
7105
7108
7106 2001-11-29 Fernando Perez <fperez@colorado.edu>
7109 2001-11-29 Fernando Perez <fperez@colorado.edu>
7107
7110
7108 * Got input history working. Changed output history variables from
7111 * Got input history working. Changed output history variables from
7109 _p to _o so that _i is for input and _o for output. Just cleaner
7112 _p to _o so that _i is for input and _o for output. Just cleaner
7110 convention.
7113 convention.
7111
7114
7112 * Implemented parametric aliases. This pretty much allows the
7115 * Implemented parametric aliases. This pretty much allows the
7113 alias system to offer full-blown shell convenience, I think.
7116 alias system to offer full-blown shell convenience, I think.
7114
7117
7115 * Version 0.1.17 released, 0.1.18 opened.
7118 * Version 0.1.17 released, 0.1.18 opened.
7116
7119
7117 * dot_ipython/ipythonrc (alias): added documentation.
7120 * dot_ipython/ipythonrc (alias): added documentation.
7118 (xcolor): Fixed small bug (xcolors -> xcolor)
7121 (xcolor): Fixed small bug (xcolors -> xcolor)
7119
7122
7120 * Changed the alias system. Now alias is a magic command to define
7123 * Changed the alias system. Now alias is a magic command to define
7121 aliases just like the shell. Rationale: the builtin magics should
7124 aliases just like the shell. Rationale: the builtin magics should
7122 be there for things deeply connected to IPython's
7125 be there for things deeply connected to IPython's
7123 architecture. And this is a much lighter system for what I think
7126 architecture. And this is a much lighter system for what I think
7124 is the really important feature: allowing users to define quickly
7127 is the really important feature: allowing users to define quickly
7125 magics that will do shell things for them, so they can customize
7128 magics that will do shell things for them, so they can customize
7126 IPython easily to match their work habits. If someone is really
7129 IPython easily to match their work habits. If someone is really
7127 desperate to have another name for a builtin alias, they can
7130 desperate to have another name for a builtin alias, they can
7128 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7131 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7129 works.
7132 works.
7130
7133
7131 2001-11-28 Fernando Perez <fperez@colorado.edu>
7134 2001-11-28 Fernando Perez <fperez@colorado.edu>
7132
7135
7133 * Changed @file so that it opens the source file at the proper
7136 * Changed @file so that it opens the source file at the proper
7134 line. Since it uses less, if your EDITOR environment is
7137 line. Since it uses less, if your EDITOR environment is
7135 configured, typing v will immediately open your editor of choice
7138 configured, typing v will immediately open your editor of choice
7136 right at the line where the object is defined. Not as quick as
7139 right at the line where the object is defined. Not as quick as
7137 having a direct @edit command, but for all intents and purposes it
7140 having a direct @edit command, but for all intents and purposes it
7138 works. And I don't have to worry about writing @edit to deal with
7141 works. And I don't have to worry about writing @edit to deal with
7139 all the editors, less does that.
7142 all the editors, less does that.
7140
7143
7141 * Version 0.1.16 released, 0.1.17 opened.
7144 * Version 0.1.16 released, 0.1.17 opened.
7142
7145
7143 * Fixed some nasty bugs in the page/page_dumb combo that could
7146 * Fixed some nasty bugs in the page/page_dumb combo that could
7144 crash IPython.
7147 crash IPython.
7145
7148
7146 2001-11-27 Fernando Perez <fperez@colorado.edu>
7149 2001-11-27 Fernando Perez <fperez@colorado.edu>
7147
7150
7148 * Version 0.1.15 released, 0.1.16 opened.
7151 * Version 0.1.15 released, 0.1.16 opened.
7149
7152
7150 * Finally got ? and ?? to work for undefined things: now it's
7153 * Finally got ? and ?? to work for undefined things: now it's
7151 possible to type {}.get? and get information about the get method
7154 possible to type {}.get? and get information about the get method
7152 of dicts, or os.path? even if only os is defined (so technically
7155 of dicts, or os.path? even if only os is defined (so technically
7153 os.path isn't). Works at any level. For example, after import os,
7156 os.path isn't). Works at any level. For example, after import os,
7154 os?, os.path?, os.path.abspath? all work. This is great, took some
7157 os?, os.path?, os.path.abspath? all work. This is great, took some
7155 work in _ofind.
7158 work in _ofind.
7156
7159
7157 * Fixed more bugs with logging. The sanest way to do it was to add
7160 * Fixed more bugs with logging. The sanest way to do it was to add
7158 to @log a 'mode' parameter. Killed two in one shot (this mode
7161 to @log a 'mode' parameter. Killed two in one shot (this mode
7159 option was a request of Janko's). I think it's finally clean
7162 option was a request of Janko's). I think it's finally clean
7160 (famous last words).
7163 (famous last words).
7161
7164
7162 * Added a page_dumb() pager which does a decent job of paging on
7165 * Added a page_dumb() pager which does a decent job of paging on
7163 screen, if better things (like less) aren't available. One less
7166 screen, if better things (like less) aren't available. One less
7164 unix dependency (someday maybe somebody will port this to
7167 unix dependency (someday maybe somebody will port this to
7165 windows).
7168 windows).
7166
7169
7167 * Fixed problem in magic_log: would lock of logging out if log
7170 * Fixed problem in magic_log: would lock of logging out if log
7168 creation failed (because it would still think it had succeeded).
7171 creation failed (because it would still think it had succeeded).
7169
7172
7170 * Improved the page() function using curses to auto-detect screen
7173 * Improved the page() function using curses to auto-detect screen
7171 size. Now it can make a much better decision on whether to print
7174 size. Now it can make a much better decision on whether to print
7172 or page a string. Option screen_length was modified: a value 0
7175 or page a string. Option screen_length was modified: a value 0
7173 means auto-detect, and that's the default now.
7176 means auto-detect, and that's the default now.
7174
7177
7175 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7178 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7176 go out. I'll test it for a few days, then talk to Janko about
7179 go out. I'll test it for a few days, then talk to Janko about
7177 licences and announce it.
7180 licences and announce it.
7178
7181
7179 * Fixed the length of the auto-generated ---> prompt which appears
7182 * Fixed the length of the auto-generated ---> prompt which appears
7180 for auto-parens and auto-quotes. Getting this right isn't trivial,
7183 for auto-parens and auto-quotes. Getting this right isn't trivial,
7181 with all the color escapes, different prompt types and optional
7184 with all the color escapes, different prompt types and optional
7182 separators. But it seems to be working in all the combinations.
7185 separators. But it seems to be working in all the combinations.
7183
7186
7184 2001-11-26 Fernando Perez <fperez@colorado.edu>
7187 2001-11-26 Fernando Perez <fperez@colorado.edu>
7185
7188
7186 * Wrote a regexp filter to get option types from the option names
7189 * Wrote a regexp filter to get option types from the option names
7187 string. This eliminates the need to manually keep two duplicate
7190 string. This eliminates the need to manually keep two duplicate
7188 lists.
7191 lists.
7189
7192
7190 * Removed the unneeded check_option_names. Now options are handled
7193 * Removed the unneeded check_option_names. Now options are handled
7191 in a much saner manner and it's easy to visually check that things
7194 in a much saner manner and it's easy to visually check that things
7192 are ok.
7195 are ok.
7193
7196
7194 * Updated version numbers on all files I modified to carry a
7197 * Updated version numbers on all files I modified to carry a
7195 notice so Janko and Nathan have clear version markers.
7198 notice so Janko and Nathan have clear version markers.
7196
7199
7197 * Updated docstring for ultraTB with my changes. I should send
7200 * Updated docstring for ultraTB with my changes. I should send
7198 this to Nathan.
7201 this to Nathan.
7199
7202
7200 * Lots of small fixes. Ran everything through pychecker again.
7203 * Lots of small fixes. Ran everything through pychecker again.
7201
7204
7202 * Made loading of deep_reload an cmd line option. If it's not too
7205 * Made loading of deep_reload an cmd line option. If it's not too
7203 kosher, now people can just disable it. With -nodeep_reload it's
7206 kosher, now people can just disable it. With -nodeep_reload it's
7204 still available as dreload(), it just won't overwrite reload().
7207 still available as dreload(), it just won't overwrite reload().
7205
7208
7206 * Moved many options to the no| form (-opt and -noopt
7209 * Moved many options to the no| form (-opt and -noopt
7207 accepted). Cleaner.
7210 accepted). Cleaner.
7208
7211
7209 * Changed magic_log so that if called with no parameters, it uses
7212 * Changed magic_log so that if called with no parameters, it uses
7210 'rotate' mode. That way auto-generated logs aren't automatically
7213 'rotate' mode. That way auto-generated logs aren't automatically
7211 over-written. For normal logs, now a backup is made if it exists
7214 over-written. For normal logs, now a backup is made if it exists
7212 (only 1 level of backups). A new 'backup' mode was added to the
7215 (only 1 level of backups). A new 'backup' mode was added to the
7213 Logger class to support this. This was a request by Janko.
7216 Logger class to support this. This was a request by Janko.
7214
7217
7215 * Added @logoff/@logon to stop/restart an active log.
7218 * Added @logoff/@logon to stop/restart an active log.
7216
7219
7217 * Fixed a lot of bugs in log saving/replay. It was pretty
7220 * Fixed a lot of bugs in log saving/replay. It was pretty
7218 broken. Now special lines (!@,/) appear properly in the command
7221 broken. Now special lines (!@,/) appear properly in the command
7219 history after a log replay.
7222 history after a log replay.
7220
7223
7221 * Tried and failed to implement full session saving via pickle. My
7224 * Tried and failed to implement full session saving via pickle. My
7222 idea was to pickle __main__.__dict__, but modules can't be
7225 idea was to pickle __main__.__dict__, but modules can't be
7223 pickled. This would be a better alternative to replaying logs, but
7226 pickled. This would be a better alternative to replaying logs, but
7224 seems quite tricky to get to work. Changed -session to be called
7227 seems quite tricky to get to work. Changed -session to be called
7225 -logplay, which more accurately reflects what it does. And if we
7228 -logplay, which more accurately reflects what it does. And if we
7226 ever get real session saving working, -session is now available.
7229 ever get real session saving working, -session is now available.
7227
7230
7228 * Implemented color schemes for prompts also. As for tracebacks,
7231 * Implemented color schemes for prompts also. As for tracebacks,
7229 currently only NoColor and Linux are supported. But now the
7232 currently only NoColor and Linux are supported. But now the
7230 infrastructure is in place, based on a generic ColorScheme
7233 infrastructure is in place, based on a generic ColorScheme
7231 class. So writing and activating new schemes both for the prompts
7234 class. So writing and activating new schemes both for the prompts
7232 and the tracebacks should be straightforward.
7235 and the tracebacks should be straightforward.
7233
7236
7234 * Version 0.1.13 released, 0.1.14 opened.
7237 * Version 0.1.13 released, 0.1.14 opened.
7235
7238
7236 * Changed handling of options for output cache. Now counter is
7239 * Changed handling of options for output cache. Now counter is
7237 hardwired starting at 1 and one specifies the maximum number of
7240 hardwired starting at 1 and one specifies the maximum number of
7238 entries *in the outcache* (not the max prompt counter). This is
7241 entries *in the outcache* (not the max prompt counter). This is
7239 much better, since many statements won't increase the cache
7242 much better, since many statements won't increase the cache
7240 count. It also eliminated some confusing options, now there's only
7243 count. It also eliminated some confusing options, now there's only
7241 one: cache_size.
7244 one: cache_size.
7242
7245
7243 * Added 'alias' magic function and magic_alias option in the
7246 * Added 'alias' magic function and magic_alias option in the
7244 ipythonrc file. Now the user can easily define whatever names he
7247 ipythonrc file. Now the user can easily define whatever names he
7245 wants for the magic functions without having to play weird
7248 wants for the magic functions without having to play weird
7246 namespace games. This gives IPython a real shell-like feel.
7249 namespace games. This gives IPython a real shell-like feel.
7247
7250
7248 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7251 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7249 @ or not).
7252 @ or not).
7250
7253
7251 This was one of the last remaining 'visible' bugs (that I know
7254 This was one of the last remaining 'visible' bugs (that I know
7252 of). I think if I can clean up the session loading so it works
7255 of). I think if I can clean up the session loading so it works
7253 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7256 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7254 about licensing).
7257 about licensing).
7255
7258
7256 2001-11-25 Fernando Perez <fperez@colorado.edu>
7259 2001-11-25 Fernando Perez <fperez@colorado.edu>
7257
7260
7258 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7261 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7259 there's a cleaner distinction between what ? and ?? show.
7262 there's a cleaner distinction between what ? and ?? show.
7260
7263
7261 * Added screen_length option. Now the user can define his own
7264 * Added screen_length option. Now the user can define his own
7262 screen size for page() operations.
7265 screen size for page() operations.
7263
7266
7264 * Implemented magic shell-like functions with automatic code
7267 * Implemented magic shell-like functions with automatic code
7265 generation. Now adding another function is just a matter of adding
7268 generation. Now adding another function is just a matter of adding
7266 an entry to a dict, and the function is dynamically generated at
7269 an entry to a dict, and the function is dynamically generated at
7267 run-time. Python has some really cool features!
7270 run-time. Python has some really cool features!
7268
7271
7269 * Renamed many options to cleanup conventions a little. Now all
7272 * Renamed many options to cleanup conventions a little. Now all
7270 are lowercase, and only underscores where needed. Also in the code
7273 are lowercase, and only underscores where needed. Also in the code
7271 option name tables are clearer.
7274 option name tables are clearer.
7272
7275
7273 * Changed prompts a little. Now input is 'In [n]:' instead of
7276 * Changed prompts a little. Now input is 'In [n]:' instead of
7274 'In[n]:='. This allows it the numbers to be aligned with the
7277 'In[n]:='. This allows it the numbers to be aligned with the
7275 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7278 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7276 Python (it was a Mathematica thing). The '...' continuation prompt
7279 Python (it was a Mathematica thing). The '...' continuation prompt
7277 was also changed a little to align better.
7280 was also changed a little to align better.
7278
7281
7279 * Fixed bug when flushing output cache. Not all _p<n> variables
7282 * Fixed bug when flushing output cache. Not all _p<n> variables
7280 exist, so their deletion needs to be wrapped in a try:
7283 exist, so their deletion needs to be wrapped in a try:
7281
7284
7282 * Figured out how to properly use inspect.formatargspec() (it
7285 * Figured out how to properly use inspect.formatargspec() (it
7283 requires the args preceded by *). So I removed all the code from
7286 requires the args preceded by *). So I removed all the code from
7284 _get_pdef in Magic, which was just replicating that.
7287 _get_pdef in Magic, which was just replicating that.
7285
7288
7286 * Added test to prefilter to allow redefining magic function names
7289 * Added test to prefilter to allow redefining magic function names
7287 as variables. This is ok, since the @ form is always available,
7290 as variables. This is ok, since the @ form is always available,
7288 but whe should allow the user to define a variable called 'ls' if
7291 but whe should allow the user to define a variable called 'ls' if
7289 he needs it.
7292 he needs it.
7290
7293
7291 * Moved the ToDo information from README into a separate ToDo.
7294 * Moved the ToDo information from README into a separate ToDo.
7292
7295
7293 * General code cleanup and small bugfixes. I think it's close to a
7296 * General code cleanup and small bugfixes. I think it's close to a
7294 state where it can be released, obviously with a big 'beta'
7297 state where it can be released, obviously with a big 'beta'
7295 warning on it.
7298 warning on it.
7296
7299
7297 * Got the magic function split to work. Now all magics are defined
7300 * Got the magic function split to work. Now all magics are defined
7298 in a separate class. It just organizes things a bit, and now
7301 in a separate class. It just organizes things a bit, and now
7299 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7302 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7300 was too long).
7303 was too long).
7301
7304
7302 * Changed @clear to @reset to avoid potential confusions with
7305 * Changed @clear to @reset to avoid potential confusions with
7303 the shell command clear. Also renamed @cl to @clear, which does
7306 the shell command clear. Also renamed @cl to @clear, which does
7304 exactly what people expect it to from their shell experience.
7307 exactly what people expect it to from their shell experience.
7305
7308
7306 Added a check to the @reset command (since it's so
7309 Added a check to the @reset command (since it's so
7307 destructive, it's probably a good idea to ask for confirmation).
7310 destructive, it's probably a good idea to ask for confirmation).
7308 But now reset only works for full namespace resetting. Since the
7311 But now reset only works for full namespace resetting. Since the
7309 del keyword is already there for deleting a few specific
7312 del keyword is already there for deleting a few specific
7310 variables, I don't see the point of having a redundant magic
7313 variables, I don't see the point of having a redundant magic
7311 function for the same task.
7314 function for the same task.
7312
7315
7313 2001-11-24 Fernando Perez <fperez@colorado.edu>
7316 2001-11-24 Fernando Perez <fperez@colorado.edu>
7314
7317
7315 * Updated the builtin docs (esp. the ? ones).
7318 * Updated the builtin docs (esp. the ? ones).
7316
7319
7317 * Ran all the code through pychecker. Not terribly impressed with
7320 * Ran all the code through pychecker. Not terribly impressed with
7318 it: lots of spurious warnings and didn't really find anything of
7321 it: lots of spurious warnings and didn't really find anything of
7319 substance (just a few modules being imported and not used).
7322 substance (just a few modules being imported and not used).
7320
7323
7321 * Implemented the new ultraTB functionality into IPython. New
7324 * Implemented the new ultraTB functionality into IPython. New
7322 option: xcolors. This chooses color scheme. xmode now only selects
7325 option: xcolors. This chooses color scheme. xmode now only selects
7323 between Plain and Verbose. Better orthogonality.
7326 between Plain and Verbose. Better orthogonality.
7324
7327
7325 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7328 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7326 mode and color scheme for the exception handlers. Now it's
7329 mode and color scheme for the exception handlers. Now it's
7327 possible to have the verbose traceback with no coloring.
7330 possible to have the verbose traceback with no coloring.
7328
7331
7329 2001-11-23 Fernando Perez <fperez@colorado.edu>
7332 2001-11-23 Fernando Perez <fperez@colorado.edu>
7330
7333
7331 * Version 0.1.12 released, 0.1.13 opened.
7334 * Version 0.1.12 released, 0.1.13 opened.
7332
7335
7333 * Removed option to set auto-quote and auto-paren escapes by
7336 * Removed option to set auto-quote and auto-paren escapes by
7334 user. The chances of breaking valid syntax are just too high. If
7337 user. The chances of breaking valid syntax are just too high. If
7335 someone *really* wants, they can always dig into the code.
7338 someone *really* wants, they can always dig into the code.
7336
7339
7337 * Made prompt separators configurable.
7340 * Made prompt separators configurable.
7338
7341
7339 2001-11-22 Fernando Perez <fperez@colorado.edu>
7342 2001-11-22 Fernando Perez <fperez@colorado.edu>
7340
7343
7341 * Small bugfixes in many places.
7344 * Small bugfixes in many places.
7342
7345
7343 * Removed the MyCompleter class from ipplib. It seemed redundant
7346 * Removed the MyCompleter class from ipplib. It seemed redundant
7344 with the C-p,C-n history search functionality. Less code to
7347 with the C-p,C-n history search functionality. Less code to
7345 maintain.
7348 maintain.
7346
7349
7347 * Moved all the original ipython.py code into ipythonlib.py. Right
7350 * Moved all the original ipython.py code into ipythonlib.py. Right
7348 now it's just one big dump into a function called make_IPython, so
7351 now it's just one big dump into a function called make_IPython, so
7349 no real modularity has been gained. But at least it makes the
7352 no real modularity has been gained. But at least it makes the
7350 wrapper script tiny, and since ipythonlib is a module, it gets
7353 wrapper script tiny, and since ipythonlib is a module, it gets
7351 compiled and startup is much faster.
7354 compiled and startup is much faster.
7352
7355
7353 This is a reasobably 'deep' change, so we should test it for a
7356 This is a reasobably 'deep' change, so we should test it for a
7354 while without messing too much more with the code.
7357 while without messing too much more with the code.
7355
7358
7356 2001-11-21 Fernando Perez <fperez@colorado.edu>
7359 2001-11-21 Fernando Perez <fperez@colorado.edu>
7357
7360
7358 * Version 0.1.11 released, 0.1.12 opened for further work.
7361 * Version 0.1.11 released, 0.1.12 opened for further work.
7359
7362
7360 * Removed dependency on Itpl. It was only needed in one place. It
7363 * Removed dependency on Itpl. It was only needed in one place. It
7361 would be nice if this became part of python, though. It makes life
7364 would be nice if this became part of python, though. It makes life
7362 *a lot* easier in some cases.
7365 *a lot* easier in some cases.
7363
7366
7364 * Simplified the prefilter code a bit. Now all handlers are
7367 * Simplified the prefilter code a bit. Now all handlers are
7365 expected to explicitly return a value (at least a blank string).
7368 expected to explicitly return a value (at least a blank string).
7366
7369
7367 * Heavy edits in ipplib. Removed the help system altogether. Now
7370 * Heavy edits in ipplib. Removed the help system altogether. Now
7368 obj?/?? is used for inspecting objects, a magic @doc prints
7371 obj?/?? is used for inspecting objects, a magic @doc prints
7369 docstrings, and full-blown Python help is accessed via the 'help'
7372 docstrings, and full-blown Python help is accessed via the 'help'
7370 keyword. This cleans up a lot of code (less to maintain) and does
7373 keyword. This cleans up a lot of code (less to maintain) and does
7371 the job. Since 'help' is now a standard Python component, might as
7374 the job. Since 'help' is now a standard Python component, might as
7372 well use it and remove duplicate functionality.
7375 well use it and remove duplicate functionality.
7373
7376
7374 Also removed the option to use ipplib as a standalone program. By
7377 Also removed the option to use ipplib as a standalone program. By
7375 now it's too dependent on other parts of IPython to function alone.
7378 now it's too dependent on other parts of IPython to function alone.
7376
7379
7377 * Fixed bug in genutils.pager. It would crash if the pager was
7380 * Fixed bug in genutils.pager. It would crash if the pager was
7378 exited immediately after opening (broken pipe).
7381 exited immediately after opening (broken pipe).
7379
7382
7380 * Trimmed down the VerboseTB reporting a little. The header is
7383 * Trimmed down the VerboseTB reporting a little. The header is
7381 much shorter now and the repeated exception arguments at the end
7384 much shorter now and the repeated exception arguments at the end
7382 have been removed. For interactive use the old header seemed a bit
7385 have been removed. For interactive use the old header seemed a bit
7383 excessive.
7386 excessive.
7384
7387
7385 * Fixed small bug in output of @whos for variables with multi-word
7388 * Fixed small bug in output of @whos for variables with multi-word
7386 types (only first word was displayed).
7389 types (only first word was displayed).
7387
7390
7388 2001-11-17 Fernando Perez <fperez@colorado.edu>
7391 2001-11-17 Fernando Perez <fperez@colorado.edu>
7389
7392
7390 * Version 0.1.10 released, 0.1.11 opened for further work.
7393 * Version 0.1.10 released, 0.1.11 opened for further work.
7391
7394
7392 * Modified dirs and friends. dirs now *returns* the stack (not
7395 * Modified dirs and friends. dirs now *returns* the stack (not
7393 prints), so one can manipulate it as a variable. Convenient to
7396 prints), so one can manipulate it as a variable. Convenient to
7394 travel along many directories.
7397 travel along many directories.
7395
7398
7396 * Fixed bug in magic_pdef: would only work with functions with
7399 * Fixed bug in magic_pdef: would only work with functions with
7397 arguments with default values.
7400 arguments with default values.
7398
7401
7399 2001-11-14 Fernando Perez <fperez@colorado.edu>
7402 2001-11-14 Fernando Perez <fperez@colorado.edu>
7400
7403
7401 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7404 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7402 example with IPython. Various other minor fixes and cleanups.
7405 example with IPython. Various other minor fixes and cleanups.
7403
7406
7404 * Version 0.1.9 released, 0.1.10 opened for further work.
7407 * Version 0.1.9 released, 0.1.10 opened for further work.
7405
7408
7406 * Added sys.path to the list of directories searched in the
7409 * Added sys.path to the list of directories searched in the
7407 execfile= option. It used to be the current directory and the
7410 execfile= option. It used to be the current directory and the
7408 user's IPYTHONDIR only.
7411 user's IPYTHONDIR only.
7409
7412
7410 2001-11-13 Fernando Perez <fperez@colorado.edu>
7413 2001-11-13 Fernando Perez <fperez@colorado.edu>
7411
7414
7412 * Reinstated the raw_input/prefilter separation that Janko had
7415 * Reinstated the raw_input/prefilter separation that Janko had
7413 initially. This gives a more convenient setup for extending the
7416 initially. This gives a more convenient setup for extending the
7414 pre-processor from the outside: raw_input always gets a string,
7417 pre-processor from the outside: raw_input always gets a string,
7415 and prefilter has to process it. We can then redefine prefilter
7418 and prefilter has to process it. We can then redefine prefilter
7416 from the outside and implement extensions for special
7419 from the outside and implement extensions for special
7417 purposes.
7420 purposes.
7418
7421
7419 Today I got one for inputting PhysicalQuantity objects
7422 Today I got one for inputting PhysicalQuantity objects
7420 (from Scientific) without needing any function calls at
7423 (from Scientific) without needing any function calls at
7421 all. Extremely convenient, and it's all done as a user-level
7424 all. Extremely convenient, and it's all done as a user-level
7422 extension (no IPython code was touched). Now instead of:
7425 extension (no IPython code was touched). Now instead of:
7423 a = PhysicalQuantity(4.2,'m/s**2')
7426 a = PhysicalQuantity(4.2,'m/s**2')
7424 one can simply say
7427 one can simply say
7425 a = 4.2 m/s**2
7428 a = 4.2 m/s**2
7426 or even
7429 or even
7427 a = 4.2 m/s^2
7430 a = 4.2 m/s^2
7428
7431
7429 I use this, but it's also a proof of concept: IPython really is
7432 I use this, but it's also a proof of concept: IPython really is
7430 fully user-extensible, even at the level of the parsing of the
7433 fully user-extensible, even at the level of the parsing of the
7431 command line. It's not trivial, but it's perfectly doable.
7434 command line. It's not trivial, but it's perfectly doable.
7432
7435
7433 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7436 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7434 the problem of modules being loaded in the inverse order in which
7437 the problem of modules being loaded in the inverse order in which
7435 they were defined in
7438 they were defined in
7436
7439
7437 * Version 0.1.8 released, 0.1.9 opened for further work.
7440 * Version 0.1.8 released, 0.1.9 opened for further work.
7438
7441
7439 * Added magics pdef, source and file. They respectively show the
7442 * Added magics pdef, source and file. They respectively show the
7440 definition line ('prototype' in C), source code and full python
7443 definition line ('prototype' in C), source code and full python
7441 file for any callable object. The object inspector oinfo uses
7444 file for any callable object. The object inspector oinfo uses
7442 these to show the same information.
7445 these to show the same information.
7443
7446
7444 * Version 0.1.7 released, 0.1.8 opened for further work.
7447 * Version 0.1.7 released, 0.1.8 opened for further work.
7445
7448
7446 * Separated all the magic functions into a class called Magic. The
7449 * Separated all the magic functions into a class called Magic. The
7447 InteractiveShell class was becoming too big for Xemacs to handle
7450 InteractiveShell class was becoming too big for Xemacs to handle
7448 (de-indenting a line would lock it up for 10 seconds while it
7451 (de-indenting a line would lock it up for 10 seconds while it
7449 backtracked on the whole class!)
7452 backtracked on the whole class!)
7450
7453
7451 FIXME: didn't work. It can be done, but right now namespaces are
7454 FIXME: didn't work. It can be done, but right now namespaces are
7452 all messed up. Do it later (reverted it for now, so at least
7455 all messed up. Do it later (reverted it for now, so at least
7453 everything works as before).
7456 everything works as before).
7454
7457
7455 * Got the object introspection system (magic_oinfo) working! I
7458 * Got the object introspection system (magic_oinfo) working! I
7456 think this is pretty much ready for release to Janko, so he can
7459 think this is pretty much ready for release to Janko, so he can
7457 test it for a while and then announce it. Pretty much 100% of what
7460 test it for a while and then announce it. Pretty much 100% of what
7458 I wanted for the 'phase 1' release is ready. Happy, tired.
7461 I wanted for the 'phase 1' release is ready. Happy, tired.
7459
7462
7460 2001-11-12 Fernando Perez <fperez@colorado.edu>
7463 2001-11-12 Fernando Perez <fperez@colorado.edu>
7461
7464
7462 * Version 0.1.6 released, 0.1.7 opened for further work.
7465 * Version 0.1.6 released, 0.1.7 opened for further work.
7463
7466
7464 * Fixed bug in printing: it used to test for truth before
7467 * Fixed bug in printing: it used to test for truth before
7465 printing, so 0 wouldn't print. Now checks for None.
7468 printing, so 0 wouldn't print. Now checks for None.
7466
7469
7467 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7470 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7468 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7471 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7469 reaches by hand into the outputcache. Think of a better way to do
7472 reaches by hand into the outputcache. Think of a better way to do
7470 this later.
7473 this later.
7471
7474
7472 * Various small fixes thanks to Nathan's comments.
7475 * Various small fixes thanks to Nathan's comments.
7473
7476
7474 * Changed magic_pprint to magic_Pprint. This way it doesn't
7477 * Changed magic_pprint to magic_Pprint. This way it doesn't
7475 collide with pprint() and the name is consistent with the command
7478 collide with pprint() and the name is consistent with the command
7476 line option.
7479 line option.
7477
7480
7478 * Changed prompt counter behavior to be fully like
7481 * Changed prompt counter behavior to be fully like
7479 Mathematica's. That is, even input that doesn't return a result
7482 Mathematica's. That is, even input that doesn't return a result
7480 raises the prompt counter. The old behavior was kind of confusing
7483 raises the prompt counter. The old behavior was kind of confusing
7481 (getting the same prompt number several times if the operation
7484 (getting the same prompt number several times if the operation
7482 didn't return a result).
7485 didn't return a result).
7483
7486
7484 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7487 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7485
7488
7486 * Fixed -Classic mode (wasn't working anymore).
7489 * Fixed -Classic mode (wasn't working anymore).
7487
7490
7488 * Added colored prompts using Nathan's new code. Colors are
7491 * Added colored prompts using Nathan's new code. Colors are
7489 currently hardwired, they can be user-configurable. For
7492 currently hardwired, they can be user-configurable. For
7490 developers, they can be chosen in file ipythonlib.py, at the
7493 developers, they can be chosen in file ipythonlib.py, at the
7491 beginning of the CachedOutput class def.
7494 beginning of the CachedOutput class def.
7492
7495
7493 2001-11-11 Fernando Perez <fperez@colorado.edu>
7496 2001-11-11 Fernando Perez <fperez@colorado.edu>
7494
7497
7495 * Version 0.1.5 released, 0.1.6 opened for further work.
7498 * Version 0.1.5 released, 0.1.6 opened for further work.
7496
7499
7497 * Changed magic_env to *return* the environment as a dict (not to
7500 * Changed magic_env to *return* the environment as a dict (not to
7498 print it). This way it prints, but it can also be processed.
7501 print it). This way it prints, but it can also be processed.
7499
7502
7500 * Added Verbose exception reporting to interactive
7503 * Added Verbose exception reporting to interactive
7501 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7504 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7502 traceback. Had to make some changes to the ultraTB file. This is
7505 traceback. Had to make some changes to the ultraTB file. This is
7503 probably the last 'big' thing in my mental todo list. This ties
7506 probably the last 'big' thing in my mental todo list. This ties
7504 in with the next entry:
7507 in with the next entry:
7505
7508
7506 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7509 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7507 has to specify is Plain, Color or Verbose for all exception
7510 has to specify is Plain, Color or Verbose for all exception
7508 handling.
7511 handling.
7509
7512
7510 * Removed ShellServices option. All this can really be done via
7513 * Removed ShellServices option. All this can really be done via
7511 the magic system. It's easier to extend, cleaner and has automatic
7514 the magic system. It's easier to extend, cleaner and has automatic
7512 namespace protection and documentation.
7515 namespace protection and documentation.
7513
7516
7514 2001-11-09 Fernando Perez <fperez@colorado.edu>
7517 2001-11-09 Fernando Perez <fperez@colorado.edu>
7515
7518
7516 * Fixed bug in output cache flushing (missing parameter to
7519 * Fixed bug in output cache flushing (missing parameter to
7517 __init__). Other small bugs fixed (found using pychecker).
7520 __init__). Other small bugs fixed (found using pychecker).
7518
7521
7519 * Version 0.1.4 opened for bugfixing.
7522 * Version 0.1.4 opened for bugfixing.
7520
7523
7521 2001-11-07 Fernando Perez <fperez@colorado.edu>
7524 2001-11-07 Fernando Perez <fperez@colorado.edu>
7522
7525
7523 * Version 0.1.3 released, mainly because of the raw_input bug.
7526 * Version 0.1.3 released, mainly because of the raw_input bug.
7524
7527
7525 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7528 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7526 and when testing for whether things were callable, a call could
7529 and when testing for whether things were callable, a call could
7527 actually be made to certain functions. They would get called again
7530 actually be made to certain functions. They would get called again
7528 once 'really' executed, with a resulting double call. A disaster
7531 once 'really' executed, with a resulting double call. A disaster
7529 in many cases (list.reverse() would never work!).
7532 in many cases (list.reverse() would never work!).
7530
7533
7531 * Removed prefilter() function, moved its code to raw_input (which
7534 * Removed prefilter() function, moved its code to raw_input (which
7532 after all was just a near-empty caller for prefilter). This saves
7535 after all was just a near-empty caller for prefilter). This saves
7533 a function call on every prompt, and simplifies the class a tiny bit.
7536 a function call on every prompt, and simplifies the class a tiny bit.
7534
7537
7535 * Fix _ip to __ip name in magic example file.
7538 * Fix _ip to __ip name in magic example file.
7536
7539
7537 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7540 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7538 work with non-gnu versions of tar.
7541 work with non-gnu versions of tar.
7539
7542
7540 2001-11-06 Fernando Perez <fperez@colorado.edu>
7543 2001-11-06 Fernando Perez <fperez@colorado.edu>
7541
7544
7542 * Version 0.1.2. Just to keep track of the recent changes.
7545 * Version 0.1.2. Just to keep track of the recent changes.
7543
7546
7544 * Fixed nasty bug in output prompt routine. It used to check 'if
7547 * Fixed nasty bug in output prompt routine. It used to check 'if
7545 arg != None...'. Problem is, this fails if arg implements a
7548 arg != None...'. Problem is, this fails if arg implements a
7546 special comparison (__cmp__) which disallows comparing to
7549 special comparison (__cmp__) which disallows comparing to
7547 None. Found it when trying to use the PhysicalQuantity module from
7550 None. Found it when trying to use the PhysicalQuantity module from
7548 ScientificPython.
7551 ScientificPython.
7549
7552
7550 2001-11-05 Fernando Perez <fperez@colorado.edu>
7553 2001-11-05 Fernando Perez <fperez@colorado.edu>
7551
7554
7552 * Also added dirs. Now the pushd/popd/dirs family functions
7555 * Also added dirs. Now the pushd/popd/dirs family functions
7553 basically like the shell, with the added convenience of going home
7556 basically like the shell, with the added convenience of going home
7554 when called with no args.
7557 when called with no args.
7555
7558
7556 * pushd/popd slightly modified to mimic shell behavior more
7559 * pushd/popd slightly modified to mimic shell behavior more
7557 closely.
7560 closely.
7558
7561
7559 * Added env,pushd,popd from ShellServices as magic functions. I
7562 * Added env,pushd,popd from ShellServices as magic functions. I
7560 think the cleanest will be to port all desired functions from
7563 think the cleanest will be to port all desired functions from
7561 ShellServices as magics and remove ShellServices altogether. This
7564 ShellServices as magics and remove ShellServices altogether. This
7562 will provide a single, clean way of adding functionality
7565 will provide a single, clean way of adding functionality
7563 (shell-type or otherwise) to IP.
7566 (shell-type or otherwise) to IP.
7564
7567
7565 2001-11-04 Fernando Perez <fperez@colorado.edu>
7568 2001-11-04 Fernando Perez <fperez@colorado.edu>
7566
7569
7567 * Added .ipython/ directory to sys.path. This way users can keep
7570 * Added .ipython/ directory to sys.path. This way users can keep
7568 customizations there and access them via import.
7571 customizations there and access them via import.
7569
7572
7570 2001-11-03 Fernando Perez <fperez@colorado.edu>
7573 2001-11-03 Fernando Perez <fperez@colorado.edu>
7571
7574
7572 * Opened version 0.1.1 for new changes.
7575 * Opened version 0.1.1 for new changes.
7573
7576
7574 * Changed version number to 0.1.0: first 'public' release, sent to
7577 * Changed version number to 0.1.0: first 'public' release, sent to
7575 Nathan and Janko.
7578 Nathan and Janko.
7576
7579
7577 * Lots of small fixes and tweaks.
7580 * Lots of small fixes and tweaks.
7578
7581
7579 * Minor changes to whos format. Now strings are shown, snipped if
7582 * Minor changes to whos format. Now strings are shown, snipped if
7580 too long.
7583 too long.
7581
7584
7582 * Changed ShellServices to work on __main__ so they show up in @who
7585 * Changed ShellServices to work on __main__ so they show up in @who
7583
7586
7584 * Help also works with ? at the end of a line:
7587 * Help also works with ? at the end of a line:
7585 ?sin and sin?
7588 ?sin and sin?
7586 both produce the same effect. This is nice, as often I use the
7589 both produce the same effect. This is nice, as often I use the
7587 tab-complete to find the name of a method, but I used to then have
7590 tab-complete to find the name of a method, but I used to then have
7588 to go to the beginning of the line to put a ? if I wanted more
7591 to go to the beginning of the line to put a ? if I wanted more
7589 info. Now I can just add the ? and hit return. Convenient.
7592 info. Now I can just add the ? and hit return. Convenient.
7590
7593
7591 2001-11-02 Fernando Perez <fperez@colorado.edu>
7594 2001-11-02 Fernando Perez <fperez@colorado.edu>
7592
7595
7593 * Python version check (>=2.1) added.
7596 * Python version check (>=2.1) added.
7594
7597
7595 * Added LazyPython documentation. At this point the docs are quite
7598 * Added LazyPython documentation. At this point the docs are quite
7596 a mess. A cleanup is in order.
7599 a mess. A cleanup is in order.
7597
7600
7598 * Auto-installer created. For some bizarre reason, the zipfiles
7601 * Auto-installer created. For some bizarre reason, the zipfiles
7599 module isn't working on my system. So I made a tar version
7602 module isn't working on my system. So I made a tar version
7600 (hopefully the command line options in various systems won't kill
7603 (hopefully the command line options in various systems won't kill
7601 me).
7604 me).
7602
7605
7603 * Fixes to Struct in genutils. Now all dictionary-like methods are
7606 * Fixes to Struct in genutils. Now all dictionary-like methods are
7604 protected (reasonably).
7607 protected (reasonably).
7605
7608
7606 * Added pager function to genutils and changed ? to print usage
7609 * Added pager function to genutils and changed ? to print usage
7607 note through it (it was too long).
7610 note through it (it was too long).
7608
7611
7609 * Added the LazyPython functionality. Works great! I changed the
7612 * Added the LazyPython functionality. Works great! I changed the
7610 auto-quote escape to ';', it's on home row and next to '. But
7613 auto-quote escape to ';', it's on home row and next to '. But
7611 both auto-quote and auto-paren (still /) escapes are command-line
7614 both auto-quote and auto-paren (still /) escapes are command-line
7612 parameters.
7615 parameters.
7613
7616
7614
7617
7615 2001-11-01 Fernando Perez <fperez@colorado.edu>
7618 2001-11-01 Fernando Perez <fperez@colorado.edu>
7616
7619
7617 * Version changed to 0.0.7. Fairly large change: configuration now
7620 * Version changed to 0.0.7. Fairly large change: configuration now
7618 is all stored in a directory, by default .ipython. There, all
7621 is all stored in a directory, by default .ipython. There, all
7619 config files have normal looking names (not .names)
7622 config files have normal looking names (not .names)
7620
7623
7621 * Version 0.0.6 Released first to Lucas and Archie as a test
7624 * Version 0.0.6 Released first to Lucas and Archie as a test
7622 run. Since it's the first 'semi-public' release, change version to
7625 run. Since it's the first 'semi-public' release, change version to
7623 > 0.0.6 for any changes now.
7626 > 0.0.6 for any changes now.
7624
7627
7625 * Stuff I had put in the ipplib.py changelog:
7628 * Stuff I had put in the ipplib.py changelog:
7626
7629
7627 Changes to InteractiveShell:
7630 Changes to InteractiveShell:
7628
7631
7629 - Made the usage message a parameter.
7632 - Made the usage message a parameter.
7630
7633
7631 - Require the name of the shell variable to be given. It's a bit
7634 - Require the name of the shell variable to be given. It's a bit
7632 of a hack, but allows the name 'shell' not to be hardwired in the
7635 of a hack, but allows the name 'shell' not to be hardwired in the
7633 magic (@) handler, which is problematic b/c it requires
7636 magic (@) handler, which is problematic b/c it requires
7634 polluting the global namespace with 'shell'. This in turn is
7637 polluting the global namespace with 'shell'. This in turn is
7635 fragile: if a user redefines a variable called shell, things
7638 fragile: if a user redefines a variable called shell, things
7636 break.
7639 break.
7637
7640
7638 - magic @: all functions available through @ need to be defined
7641 - magic @: all functions available through @ need to be defined
7639 as magic_<name>, even though they can be called simply as
7642 as magic_<name>, even though they can be called simply as
7640 @<name>. This allows the special command @magic to gather
7643 @<name>. This allows the special command @magic to gather
7641 information automatically about all existing magic functions,
7644 information automatically about all existing magic functions,
7642 even if they are run-time user extensions, by parsing the shell
7645 even if they are run-time user extensions, by parsing the shell
7643 instance __dict__ looking for special magic_ names.
7646 instance __dict__ looking for special magic_ names.
7644
7647
7645 - mainloop: added *two* local namespace parameters. This allows
7648 - mainloop: added *two* local namespace parameters. This allows
7646 the class to differentiate between parameters which were there
7649 the class to differentiate between parameters which were there
7647 before and after command line initialization was processed. This
7650 before and after command line initialization was processed. This
7648 way, later @who can show things loaded at startup by the
7651 way, later @who can show things loaded at startup by the
7649 user. This trick was necessary to make session saving/reloading
7652 user. This trick was necessary to make session saving/reloading
7650 really work: ideally after saving/exiting/reloading a session,
7653 really work: ideally after saving/exiting/reloading a session,
7651 *everything* should look the same, including the output of @who. I
7654 *everything* should look the same, including the output of @who. I
7652 was only able to make this work with this double namespace
7655 was only able to make this work with this double namespace
7653 trick.
7656 trick.
7654
7657
7655 - added a header to the logfile which allows (almost) full
7658 - added a header to the logfile which allows (almost) full
7656 session restoring.
7659 session restoring.
7657
7660
7658 - prepend lines beginning with @ or !, with a and log
7661 - prepend lines beginning with @ or !, with a and log
7659 them. Why? !lines: may be useful to know what you did @lines:
7662 them. Why? !lines: may be useful to know what you did @lines:
7660 they may affect session state. So when restoring a session, at
7663 they may affect session state. So when restoring a session, at
7661 least inform the user of their presence. I couldn't quite get
7664 least inform the user of their presence. I couldn't quite get
7662 them to properly re-execute, but at least the user is warned.
7665 them to properly re-execute, but at least the user is warned.
7663
7666
7664 * Started ChangeLog.
7667 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now