##// END OF EJS Templates
changelog
Ville M. Vainio -
Show More
@@ -1,7455 +1,7566 b''
1 2008-04-02 Ville Vainio <vivainio@gmail.com>
2
3 * ipy_winpdb.py: New extension for winpdb integration. %wdb
4 test.py is winpdb equivalent of %run -d test.py. winpdb is a
5 crossplatform remote GUI debugger based on wxpython.
6
7 2008-03-29 Ville Vainio <vivainio@gmail.com>
8
9 * ipython.rst, do_sphinx.py: New documentation base, based on
10 reStucturedText and Sphinx (html/pdf generation). The old Lyx
11 based documentation will not be updated anymore.
12
13 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
14
15 2008-03-24 Ville Vainio <vivainio@gmail.com>
16
17 * ipython.rst, do_sphinx.py: New documentation base, based on
18 reStucturedText and Sphinx (html/pdf generation). The old Lyx
19 based documentation will not be updated anymore.
20
21 ipython.rst has up to date documentation on matters that were not
22 documented at all, and it also removes various
23 misdocumented/deprecated features.
24
25 2008-03-22 Ville Vainio <vivainio@gmail.com>
26
27 * Shell.py: Merge mtexp branch:
28 https://code.launchpad.net/~ipython/ipython/mtexp
29
30 Privides simpler and more robust MTInteractiveShell that won't
31 deadlock, even when the worker thread (GUI) stops doing runcode()
32 regularly. r71.
33
34 2008-03-20 Ville Vainio <vivainio@gmail.com>
35
36 * twshell.py: New shell that runs IPython code in Twisted reactor.
37 Launch by doing ipython -twisted. r67.
38
39 2008-03-19 Ville Vainio <vivainio@gmail.com>
40
41 * Magic.py: %rehashx works correctly when shadowed system commands
42 have upper case characters (e.g. Print.exe). r64.
43
44 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
45 knows options to commands, based on bzrtools. Uses bzrlib
46 directly. r66.
47
48 2008-03-16 Ville Vainio <vivainio@gmail.com>
49
50 * make_tarball.py: Fixed for bzr.
51
52 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
53
54 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
55 by Erich Heine.
56
57 2008-03-12 Ville Vainio <vivainio@gmail.com>
58
59 * ipmaker.py: Force (reload?) import of ipy_user_conf and
60 ipy_profile_foo, so that embedded instances can be relaunched and
61 configuration is still done. r50
62
63 * ipapi.py, test_embed.py: Allow specifying shell class in
64 launch_new_instance & make_new instance. Use this in
65 test_embed.py. r51.
66
67 test_embed.py is also a good and simple demo of embedding IPython.
68
69
70 2008-03-10 Ville Vainio <vivainio@gmail.com>
71
72 * tool/update_revnum.py: Change to bzr revisioning scheme in
73 revision numbers.
74
75 * Shell.py: Threading improvements:
76
77 In multithreaded shells, do not hang on macros and o.autoexec
78 commands (or anything executed with _ip.runlines()) anymore. Allow
79 recursive execution of IPython code in
80 MTInteractiveShell.runsource by checking if we are already in
81 worker thread, and execute code directly if we are. r48.
82
83 MTInteractiveShell.runsource: execute code directly if worker
84 thread is not running yet (this is the case in config files). r49.
85
86 2008-03-09 Ville Vainio <vivainio@gmail.com>
87
88 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
89 argument of previous command in sh profile. Similar to bash '!$'.
90 LA(3) or $LA(3) stands for last argument of input history command
91 3.
92
93 * Shell.py: -pylab names don't clutter %whos listing.
94
95 2008-03-07 Ville Vainio <vivainio@gmail.com>
96
97 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
98 autoreloading modules; try %autoreload and %aimport. Close #154.
99 Uses the new pre_runcode_hook.
100
101 2008-02-24 Ville Vainio <vivainio@gmail.com>
102
103 * platutils_posix.py: freeze_term_title works
104
105 2008-02-21 Ville Vainio <vivainio@gmail.com>
106
107 * Magic.py: %quickref does not crash with empty docstring
108
1 2008-02-20 Ville Vainio <vivainio@gmail.com>
109 2008-02-20 Ville Vainio <vivainio@gmail.com>
2
110
111 * completer.py: do not treat [](){} as protectable chars anymore,
112 close #233.
113
3 * completer.py: do not treat [](){} as protectable chars anymore
114 * completer.py: do not treat [](){} as protectable chars anymore
4
115
5 * magic.py, test_cpaste.py: Allow different prefix for pasting
116 * magic.py, test_cpaste.py: Allow different prefix for pasting
6 from email
117 from email
7
118
8 2008-02-17 Ville Vainio <vivainio@gmail.com>
119 2008-02-17 Ville Vainio <vivainio@gmail.com>
9
120
10 * Switched over to Launchpad/bzr as primary VCS.
121 * Switched over to Launchpad/bzr as primary VCS.
11
122
12 2008-02-14 Ville Vainio <vivainio@gmail.com>
123 2008-02-14 Ville Vainio <vivainio@gmail.com>
13
124
14 * ipapi.py: _ip.runlines() is now much more liberal about
125 * ipapi.py: _ip.runlines() is now much more liberal about
15 indentation - it cleans up the scripts it gets
126 indentation - it cleans up the scripts it gets
16
127
17 2008-02-14 Ville Vainio <vivainio@gmail.com>
128 2008-02-14 Ville Vainio <vivainio@gmail.com>
18
129
19 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
130 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
20 Changes to it (later on) are too numerous to list in ChangeLog
131 Changes to it (later on) are too numerous to list in ChangeLog
21 until it stabilizes
132 until it stabilizes
22
133
23 2008-02-07 Darren Dale <darren.dale@cornell.edu>
134 2008-02-07 Darren Dale <darren.dale@cornell.edu>
24
135
25 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
136 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
26 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
137 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
27 interaction in the interpreter (like Tkinter does), but it seems to
138 interaction in the interpreter (like Tkinter does), but it seems to
28 partially interfere with the IPython implementation and exec_()
139 partially interfere with the IPython implementation and exec_()
29 still seems to block. So we disable the PyQt implementation and
140 still seems to block. So we disable the PyQt implementation and
30 stick with the IPython one for now.
141 stick with the IPython one for now.
31
142
32 2008-02-02 Walter Doerwald <walter@livinglogic.de>
143 2008-02-02 Walter Doerwald <walter@livinglogic.de>
33
144
34 * ipipe.py: A new ipipe table has been added: ialias produces all
145 * ipipe.py: A new ipipe table has been added: ialias produces all
35 entries from IPython's alias table.
146 entries from IPython's alias table.
36
147
37 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
148 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
38
149
39 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
150 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
40 of KBINT in threaded shells. After code provided by Marc in #212.
151 of KBINT in threaded shells. After code provided by Marc in #212.
41
152
42 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
153 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
43
154
44 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
155 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
45 that could occur due to a race condition in threaded shells.
156 that could occur due to a race condition in threaded shells.
46 Thanks to code provided by Marc, as #210.
157 Thanks to code provided by Marc, as #210.
47
158
48 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
159 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
49
160
50 * IPython/Magic.py (magic_doctest_mode): respect the user's
161 * IPython/Magic.py (magic_doctest_mode): respect the user's
51 settings for input separators rather than overriding them. After
162 settings for input separators rather than overriding them. After
52 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
163 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
53
164
54 * IPython/history.py (magic_history): Add support for declaring an
165 * IPython/history.py (magic_history): Add support for declaring an
55 output file directly from the history command.
166 output file directly from the history command.
56
167
57 2008-01-21 Walter Doerwald <walter@livinglogic.de>
168 2008-01-21 Walter Doerwald <walter@livinglogic.de>
58
169
59 * ipipe.py: Register ipipe's displayhooks via the generic function
170 * ipipe.py: Register ipipe's displayhooks via the generic function
60 generics.result_display() instead of using ipapi.set_hook().
171 generics.result_display() instead of using ipapi.set_hook().
61
172
62 2008-01-19 Walter Doerwald <walter@livinglogic.de>
173 2008-01-19 Walter Doerwald <walter@livinglogic.de>
63
174
64 * ibrowse.py, igrid.py, ipipe.py:
175 * ibrowse.py, igrid.py, ipipe.py:
65 The input object can now be passed to the constructor of the display classes.
176 The input object can now be passed to the constructor of the display classes.
66 This makes it possible to use them with objects that implement __or__.
177 This makes it possible to use them with objects that implement __or__.
67 Use this constructor in the displayhook instead of piping.
178 Use this constructor in the displayhook instead of piping.
68
179
69 * ipipe.py: Importing astyle.py is done as late as possible to
180 * ipipe.py: Importing astyle.py is done as late as possible to
70 avoid problems with circular imports.
181 avoid problems with circular imports.
71
182
72 2008-01-19 Ville Vainio <vivainio@gmail.com>
183 2008-01-19 Ville Vainio <vivainio@gmail.com>
73
184
74 * hooks.py, iplib.py: Added 'shell_hook' to customize how
185 * hooks.py, iplib.py: Added 'shell_hook' to customize how
75 IPython calls shell.
186 IPython calls shell.
76
187
77 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
188 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
78 how IPython pages text (%page, %pycat, %pdoc etc.)
189 how IPython pages text (%page, %pycat, %pdoc etc.)
79
190
80 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
191 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
81 and '%kill' to kill hanging processes that won't obey ctrl+C.
192 and '%kill' to kill hanging processes that won't obey ctrl+C.
82
193
83 2008-01-16 Ville Vainio <vivainio@gmail.com>
194 2008-01-16 Ville Vainio <vivainio@gmail.com>
84
195
85 * ipy_completers.py: pyw extension support for %run completer.
196 * ipy_completers.py: pyw extension support for %run completer.
86
197
87 2008-01-11 Ville Vainio <vivainio@gmail.com>
198 2008-01-11 Ville Vainio <vivainio@gmail.com>
88
199
89 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
200 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
90 of ipython commands to be run when IPython has started up
201 of ipython commands to be run when IPython has started up
91 (just before running the scripts and -c arg on command line).
202 (just before running the scripts and -c arg on command line).
92
203
93 * ipy_user_conf.py: Added an example on how to change term
204 * ipy_user_conf.py: Added an example on how to change term
94 colors in config file (through using autoexec).
205 colors in config file (through using autoexec).
95
206
96 * completer.py, test_completer.py: Ability to specify custom
207 * completer.py, test_completer.py: Ability to specify custom
97 get_endidx to replace readline.get_endidx. For emacs users.
208 get_endidx to replace readline.get_endidx. For emacs users.
98
209
99 2008-01-10 Ville Vainio <vivainio@gmail.com>
210 2008-01-10 Ville Vainio <vivainio@gmail.com>
100
211
101 * Prompts.py (set_p_str): do not crash on illegal prompt strings
212 * Prompts.py (set_p_str): do not crash on illegal prompt strings
102
213
103 2008-01-08 Ville Vainio <vivainio@gmail.com>
214 2008-01-08 Ville Vainio <vivainio@gmail.com>
104
215
105 * '%macro -r' (raw mode) is now default in sh profile.
216 * '%macro -r' (raw mode) is now default in sh profile.
106
217
107 2007-12-31 Ville Vainio <vivainio@gmail.com>
218 2007-12-31 Ville Vainio <vivainio@gmail.com>
108
219
109 * completer.py: custom completer matching is now case sensitive
220 * completer.py: custom completer matching is now case sensitive
110 (#207).
221 (#207).
111
222
112 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
223 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
113 an attempt to prevent occasional crashes.
224 an attempt to prevent occasional crashes.
114
225
115 * CrashHandler.py: Crash log dump now asks user to press enter
226 * CrashHandler.py: Crash log dump now asks user to press enter
116 before exiting.
227 before exiting.
117
228
118 * Store _ip in user_ns instead of __builtin__, enabling safer
229 * Store _ip in user_ns instead of __builtin__, enabling safer
119 coexistence of multiple IPython instances in the same python
230 coexistence of multiple IPython instances in the same python
120 interpreter (#197).
231 interpreter (#197).
121
232
122 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
233 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
123 switch to enable pydb in post-mortem debugging and %run -d.
234 switch to enable pydb in post-mortem debugging and %run -d.
124
235
125 2007-12-28 Ville Vainio <vivainio@gmail.com>
236 2007-12-28 Ville Vainio <vivainio@gmail.com>
126
237
127 * ipy_server.py: TCP socket server for "remote control" of an IPython
238 * ipy_server.py: TCP socket server for "remote control" of an IPython
128 instance.
239 instance.
129
240
130 * Debugger.py: Change to PSF license
241 * Debugger.py: Change to PSF license
131
242
132 * simplegeneric.py: Add license & author notes.
243 * simplegeneric.py: Add license & author notes.
133
244
134 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
245 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
135 to navigate file system with a custom completer. Run
246 to navigate file system with a custom completer. Run
136 ipy_fsops.test_pathobj() to play with it.
247 ipy_fsops.test_pathobj() to play with it.
137
248
138 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
249 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
139
250
140 * IPython/dtutils.py: Add utilities for interactively running
251 * IPython/dtutils.py: Add utilities for interactively running
141 doctests. Still needs work to more easily handle the namespace of
252 doctests. Still needs work to more easily handle the namespace of
142 the package one may be working on, but the basics are in place.
253 the package one may be working on, but the basics are in place.
143
254
144 2007-12-27 Ville Vainio <vivainio@gmail.com>
255 2007-12-27 Ville Vainio <vivainio@gmail.com>
145
256
146 * ipy_completers.py: Applied arno's patch to get proper list of
257 * ipy_completers.py: Applied arno's patch to get proper list of
147 packages in import completer. Closes #196.
258 packages in import completer. Closes #196.
148
259
149 2007-12-20 Ville Vainio <vivainio@gmail.com>
260 2007-12-20 Ville Vainio <vivainio@gmail.com>
150
261
151 * completer.py, generics.py(complete_object): Allow
262 * completer.py, generics.py(complete_object): Allow
152 custom complers based on python objects via simplegeneric.
263 custom complers based on python objects via simplegeneric.
153 See generics.py / my_demo_complete_object
264 See generics.py / my_demo_complete_object
154
265
155 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
266 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
156
267
157 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
268 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
158 behavior to prompt objects, useful for display hooks to adjust
269 behavior to prompt objects, useful for display hooks to adjust
159 themselves depending on whether prompts will be there or not.
270 themselves depending on whether prompts will be there or not.
160
271
161 2007-12-13 Ville Vainio <vivainio@gmail.com>
272 2007-12-13 Ville Vainio <vivainio@gmail.com>
162
273
163 * iplib.py(raw_input): unix readline does not allow unicode in
274 * iplib.py(raw_input): unix readline does not allow unicode in
164 history, encode to normal string. After patch by Tiago.
275 history, encode to normal string. After patch by Tiago.
165 Close #201
276 Close #201
166
277
167 2007-12-12 Ville Vainio <vivainio@gmail.com>
278 2007-12-12 Ville Vainio <vivainio@gmail.com>
168
279
169 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
280 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
170 current directory.
281 current directory.
171
282
172 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
283 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
173
284
174 * IPython/Shell.py (_select_shell): add support for controlling
285 * IPython/Shell.py (_select_shell): add support for controlling
175 the pylab threading mode directly at the command line, without
286 the pylab threading mode directly at the command line, without
176 having to modify MPL config files. Added unit tests for this
287 having to modify MPL config files. Added unit tests for this
177 feature, though manual/docs update is still pending, will do later.
288 feature, though manual/docs update is still pending, will do later.
178
289
179 2007-12-11 Ville Vainio <vivainio@gmail.com>
290 2007-12-11 Ville Vainio <vivainio@gmail.com>
180
291
181 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
292 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
182 use in scripts)
293 use in scripts)
183
294
184 2007-12-07 Ville Vainio <vivainio@gmail.com>
295 2007-12-07 Ville Vainio <vivainio@gmail.com>
185
296
186 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
297 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
187 anymore (to \#) - even if it is a comment char that is implicitly
298 anymore (to \#) - even if it is a comment char that is implicitly
188 escaped in some unix shells in interactive mode, it is ok to leave
299 escaped in some unix shells in interactive mode, it is ok to leave
189 it in IPython as such.
300 it in IPython as such.
190
301
191
302
192 2007-12-01 Robert Kern <robert.kern@gmail.com>
303 2007-12-01 Robert Kern <robert.kern@gmail.com>
193
304
194 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
305 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
195 inspect.findsource(). It can now find source lines inside zipped
306 inspect.findsource(). It can now find source lines inside zipped
196 packages.
307 packages.
197
308
198 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
309 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
199 in the frame's namespace before trusting the filename in the code object
310 in the frame's namespace before trusting the filename in the code object
200 which created the frame.
311 which created the frame.
201
312
202 2007-11-29 *** Released version 0.8.2
313 2007-11-29 *** Released version 0.8.2
203
314
204 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
315 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
205
316
206 * IPython/Logger.py (Logger.logstop): add a proper logstop()
317 * IPython/Logger.py (Logger.logstop): add a proper logstop()
207 method to fully stop the logger, along with a corresponding
318 method to fully stop the logger, along with a corresponding
208 %logstop magic for interactive use.
319 %logstop magic for interactive use.
209
320
210 * IPython/Extensions/ipy_host_completers.py: added new host
321 * IPython/Extensions/ipy_host_completers.py: added new host
211 completers functionality, contributed by Gael Pasgrimaud
322 completers functionality, contributed by Gael Pasgrimaud
212 <gawel-AT-afpy.org>.
323 <gawel-AT-afpy.org>.
213
324
214 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
325 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
215
326
216 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
327 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
217 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
328 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
218 options handling. Unicode fix in %whos (committed a while ago)
329 options handling. Unicode fix in %whos (committed a while ago)
219 was also contributed by Paul.
330 was also contributed by Paul.
220
331
221 2007-11-23 Darren Dale <darren.dale@cornell.edu>
332 2007-11-23 Darren Dale <darren.dale@cornell.edu>
222 * ipy_traits_completer.py: let traits_completer respect the user's
333 * ipy_traits_completer.py: let traits_completer respect the user's
223 readline_omit__names setting.
334 readline_omit__names setting.
224
335
225 2007-11-08 Ville Vainio <vivainio@gmail.com>
336 2007-11-08 Ville Vainio <vivainio@gmail.com>
226
337
227 * ipy_completers.py (import completer): assume 'xml' module exists.
338 * ipy_completers.py (import completer): assume 'xml' module exists.
228 Do not add every module twice anymore. Closes #196.
339 Do not add every module twice anymore. Closes #196.
229
340
230 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
341 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
231 completer that uses apt-cache to search for existing packages.
342 completer that uses apt-cache to search for existing packages.
232
343
233 2007-11-06 Ville Vainio <vivainio@gmail.com>
344 2007-11-06 Ville Vainio <vivainio@gmail.com>
234
345
235 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
346 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
236 true. Closes #194.
347 true. Closes #194.
237
348
238 2007-11-01 Brian Granger <ellisonbg@gmail.com>
349 2007-11-01 Brian Granger <ellisonbg@gmail.com>
239
350
240 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
351 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
241 working with OS X 10.5 libedit implementation of readline.
352 working with OS X 10.5 libedit implementation of readline.
242
353
243 2007-10-24 Ville Vainio <vivainio@gmail.com>
354 2007-10-24 Ville Vainio <vivainio@gmail.com>
244
355
245 * iplib.py(user_setup): To route around buggy installations where
356 * iplib.py(user_setup): To route around buggy installations where
246 UserConfig is not available, create a minimal _ipython.
357 UserConfig is not available, create a minimal _ipython.
247
358
248 * iplib.py: Unicode fixes from Jorgen.
359 * iplib.py: Unicode fixes from Jorgen.
249
360
250 * genutils.py: Slist now has new method 'fields()' for extraction of
361 * genutils.py: Slist now has new method 'fields()' for extraction of
251 whitespace-separated fields from line-oriented data.
362 whitespace-separated fields from line-oriented data.
252
363
253 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
364 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
254
365
255 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
366 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
256 when querying objects with no __class__ attribute (such as
367 when querying objects with no __class__ attribute (such as
257 f2py-generated modules).
368 f2py-generated modules).
258
369
259 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
370 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
260
371
261 * IPython/Magic.py (magic_time): track compilation time and report
372 * IPython/Magic.py (magic_time): track compilation time and report
262 it if longer than 0.1s (fix done to %time and %timeit). After a
373 it if longer than 0.1s (fix done to %time and %timeit). After a
263 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
374 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
264
375
265 2007-09-18 Ville Vainio <vivainio@gmail.com>
376 2007-09-18 Ville Vainio <vivainio@gmail.com>
266
377
267 * genutils.py(make_quoted_expr): Do not use Itpl, it does
378 * genutils.py(make_quoted_expr): Do not use Itpl, it does
268 not support unicode at the moment. Fixes (many) magic calls with
379 not support unicode at the moment. Fixes (many) magic calls with
269 special characters.
380 special characters.
270
381
271 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
382 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
272
383
273 * IPython/genutils.py (doctest_reload): expose the doctest
384 * IPython/genutils.py (doctest_reload): expose the doctest
274 reloader to the user so that people can easily reset doctest while
385 reloader to the user so that people can easily reset doctest while
275 using it interactively. Fixes a problem reported by Jorgen.
386 using it interactively. Fixes a problem reported by Jorgen.
276
387
277 * IPython/iplib.py (InteractiveShell.__init__): protect the
388 * IPython/iplib.py (InteractiveShell.__init__): protect the
278 FakeModule instances used for __main__ in %run calls from
389 FakeModule instances used for __main__ in %run calls from
279 deletion, so that user code defined in them isn't left with
390 deletion, so that user code defined in them isn't left with
280 dangling references due to the Python module deletion machinery.
391 dangling references due to the Python module deletion machinery.
281 This should fix the problems reported by Darren.
392 This should fix the problems reported by Darren.
282
393
283 2007-09-10 Darren Dale <dd55@cornell.edu>
394 2007-09-10 Darren Dale <dd55@cornell.edu>
284
395
285 * Cleanup of IPShellQt and IPShellQt4
396 * Cleanup of IPShellQt and IPShellQt4
286
397
287 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
398 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
288
399
289 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
400 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
290 doctest support.
401 doctest support.
291
402
292 * IPython/iplib.py (safe_execfile): minor docstring improvements.
403 * IPython/iplib.py (safe_execfile): minor docstring improvements.
293
404
294 2007-09-08 Ville Vainio <vivainio@gmail.com>
405 2007-09-08 Ville Vainio <vivainio@gmail.com>
295
406
296 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
407 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
297 directory, not the target directory.
408 directory, not the target directory.
298
409
299 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
410 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
300 exception that won't print the tracebacks. Switched many magics to
411 exception that won't print the tracebacks. Switched many magics to
301 raise them on error situations, also GetoptError is not printed
412 raise them on error situations, also GetoptError is not printed
302 anymore.
413 anymore.
303
414
304 2007-09-07 Ville Vainio <vivainio@gmail.com>
415 2007-09-07 Ville Vainio <vivainio@gmail.com>
305
416
306 * iplib.py: do not auto-alias "dir", it screws up other dir auto
417 * iplib.py: do not auto-alias "dir", it screws up other dir auto
307 aliases.
418 aliases.
308
419
309 * genutils.py: SList.grep() implemented.
420 * genutils.py: SList.grep() implemented.
310
421
311 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
422 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
312 for easy "out of the box" setup of several common editors, so that
423 for easy "out of the box" setup of several common editors, so that
313 e.g. '%edit os.path.isfile' will jump to the correct line
424 e.g. '%edit os.path.isfile' will jump to the correct line
314 automatically. Contributions for command lines of your favourite
425 automatically. Contributions for command lines of your favourite
315 editors welcome.
426 editors welcome.
316
427
317 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
428 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
318
429
319 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
430 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
320 preventing source display in certain cases. In reality I think
431 preventing source display in certain cases. In reality I think
321 the problem is with Ubuntu's Python build, but this change works
432 the problem is with Ubuntu's Python build, but this change works
322 around the issue in some cases (not in all, unfortunately). I'd
433 around the issue in some cases (not in all, unfortunately). I'd
323 filed a Python bug on this with more details, but in the change of
434 filed a Python bug on this with more details, but in the change of
324 bug trackers it seems to have been lost.
435 bug trackers it seems to have been lost.
325
436
326 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
437 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
327 not the same, it's not self-documenting, doesn't allow range
438 not the same, it's not self-documenting, doesn't allow range
328 selection, and sorts alphabetically instead of numerically.
439 selection, and sorts alphabetically instead of numerically.
329 (magic_r): restore %r. No, "up + enter. One char magic" is not
440 (magic_r): restore %r. No, "up + enter. One char magic" is not
330 the same thing, since %r takes parameters to allow fast retrieval
441 the same thing, since %r takes parameters to allow fast retrieval
331 of old commands. I've received emails from users who use this a
442 of old commands. I've received emails from users who use this a
332 LOT, so it stays.
443 LOT, so it stays.
333 (magic_automagic): restore %automagic. "use _ip.option.automagic"
444 (magic_automagic): restore %automagic. "use _ip.option.automagic"
334 is not a valid replacement b/c it doesn't provide an complete
445 is not a valid replacement b/c it doesn't provide an complete
335 explanation (which the automagic docstring does).
446 explanation (which the automagic docstring does).
336 (magic_autocall): restore %autocall, with improved docstring.
447 (magic_autocall): restore %autocall, with improved docstring.
337 Same argument as for others, "use _ip.options.autocall" is not a
448 Same argument as for others, "use _ip.options.autocall" is not a
338 valid replacement.
449 valid replacement.
339 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
450 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
340 tutorials and online docs.
451 tutorials and online docs.
341
452
342 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
453 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
343
454
344 * IPython/usage.py (quick_reference): mention magics in quickref,
455 * IPython/usage.py (quick_reference): mention magics in quickref,
345 modified main banner to mention %quickref.
456 modified main banner to mention %quickref.
346
457
347 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
458 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
348
459
349 2007-09-06 Ville Vainio <vivainio@gmail.com>
460 2007-09-06 Ville Vainio <vivainio@gmail.com>
350
461
351 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
462 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
352 Callable aliases now pass the _ip as first arg. This breaks
463 Callable aliases now pass the _ip as first arg. This breaks
353 compatibility with earlier 0.8.2.svn series! (though they should
464 compatibility with earlier 0.8.2.svn series! (though they should
354 not have been in use yet outside these few extensions)
465 not have been in use yet outside these few extensions)
355
466
356 2007-09-05 Ville Vainio <vivainio@gmail.com>
467 2007-09-05 Ville Vainio <vivainio@gmail.com>
357
468
358 * external/mglob.py: expand('dirname') => ['dirname'], instead
469 * external/mglob.py: expand('dirname') => ['dirname'], instead
359 of ['dirname/foo','dirname/bar', ...].
470 of ['dirname/foo','dirname/bar', ...].
360
471
361 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
472 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
362 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
473 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
363 is useful for others as well).
474 is useful for others as well).
364
475
365 * iplib.py: on callable aliases (as opposed to old style aliases),
476 * iplib.py: on callable aliases (as opposed to old style aliases),
366 do var_expand() immediately, and use make_quoted_expr instead
477 do var_expand() immediately, and use make_quoted_expr instead
367 of hardcoded r"""
478 of hardcoded r"""
368
479
369 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
480 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
370 if not available load ipy_fsops.py for cp, mv, etc. replacements
481 if not available load ipy_fsops.py for cp, mv, etc. replacements
371
482
372 * OInspect.py, ipy_which.py: improve %which and obj? for callable
483 * OInspect.py, ipy_which.py: improve %which and obj? for callable
373 aliases
484 aliases
374
485
375 2007-09-04 Ville Vainio <vivainio@gmail.com>
486 2007-09-04 Ville Vainio <vivainio@gmail.com>
376
487
377 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
488 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
378 Relicensed under BSD with the authors approval.
489 Relicensed under BSD with the authors approval.
379
490
380 * ipmaker.py, usage.py: Remove %magic from default banner, improve
491 * ipmaker.py, usage.py: Remove %magic from default banner, improve
381 %quickref
492 %quickref
382
493
383 2007-09-03 Ville Vainio <vivainio@gmail.com>
494 2007-09-03 Ville Vainio <vivainio@gmail.com>
384
495
385 * Magic.py: %time now passes expression through prefilter,
496 * Magic.py: %time now passes expression through prefilter,
386 allowing IPython syntax.
497 allowing IPython syntax.
387
498
388 2007-09-01 Ville Vainio <vivainio@gmail.com>
499 2007-09-01 Ville Vainio <vivainio@gmail.com>
389
500
390 * ipmaker.py: Always show full traceback when newstyle config fails
501 * ipmaker.py: Always show full traceback when newstyle config fails
391
502
392 2007-08-27 Ville Vainio <vivainio@gmail.com>
503 2007-08-27 Ville Vainio <vivainio@gmail.com>
393
504
394 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
505 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
395
506
396 2007-08-26 Ville Vainio <vivainio@gmail.com>
507 2007-08-26 Ville Vainio <vivainio@gmail.com>
397
508
398 * ipmaker.py: Command line args have the highest priority again
509 * ipmaker.py: Command line args have the highest priority again
399
510
400 * iplib.py, ipmaker.py: -i command line argument now behaves as in
511 * iplib.py, ipmaker.py: -i command line argument now behaves as in
401 normal python, i.e. leaves the IPython session running after -c
512 normal python, i.e. leaves the IPython session running after -c
402 command or running a batch file from command line.
513 command or running a batch file from command line.
403
514
404 2007-08-22 Ville Vainio <vivainio@gmail.com>
515 2007-08-22 Ville Vainio <vivainio@gmail.com>
405
516
406 * iplib.py: no extra empty (last) line in raw hist w/ multiline
517 * iplib.py: no extra empty (last) line in raw hist w/ multiline
407 statements
518 statements
408
519
409 * logger.py: Fix bug where blank lines in history were not
520 * logger.py: Fix bug where blank lines in history were not
410 added until AFTER adding the current line; translated and raw
521 added until AFTER adding the current line; translated and raw
411 history should finally be in sync with prompt now.
522 history should finally be in sync with prompt now.
412
523
413 * ipy_completers.py: quick_completer now makes it easy to create
524 * ipy_completers.py: quick_completer now makes it easy to create
414 trivial custom completers
525 trivial custom completers
415
526
416 * clearcmd.py: shadow history compression & erasing, fixed input hist
527 * clearcmd.py: shadow history compression & erasing, fixed input hist
417 clearing.
528 clearing.
418
529
419 * envpersist.py, history.py: %env (sh profile only), %hist completers
530 * envpersist.py, history.py: %env (sh profile only), %hist completers
420
531
421 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
532 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
422 term title now include the drive letter, and always use / instead of
533 term title now include the drive letter, and always use / instead of
423 os.sep (as per recommended approach for win32 ipython in general).
534 os.sep (as per recommended approach for win32 ipython in general).
424
535
425 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
536 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
426 plain python scripts from ipykit command line by running
537 plain python scripts from ipykit command line by running
427 "py myscript.py", even w/o installed python.
538 "py myscript.py", even w/o installed python.
428
539
429 2007-08-21 Ville Vainio <vivainio@gmail.com>
540 2007-08-21 Ville Vainio <vivainio@gmail.com>
430
541
431 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
542 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
432 (for backwards compatibility)
543 (for backwards compatibility)
433
544
434 * history.py: switch back to %hist -t from %hist -r as default.
545 * history.py: switch back to %hist -t from %hist -r as default.
435 At least until raw history is fixed for good.
546 At least until raw history is fixed for good.
436
547
437 2007-08-20 Ville Vainio <vivainio@gmail.com>
548 2007-08-20 Ville Vainio <vivainio@gmail.com>
438
549
439 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
550 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
440 locate alias redeclarations etc. Also, avoid handling
551 locate alias redeclarations etc. Also, avoid handling
441 _ip.IP.alias_table directly, prefer using _ip.defalias.
552 _ip.IP.alias_table directly, prefer using _ip.defalias.
442
553
443
554
444 2007-08-15 Ville Vainio <vivainio@gmail.com>
555 2007-08-15 Ville Vainio <vivainio@gmail.com>
445
556
446 * prefilter.py: ! is now always served first
557 * prefilter.py: ! is now always served first
447
558
448 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
559 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
449
560
450 * IPython/iplib.py (safe_execfile): fix the SystemExit
561 * IPython/iplib.py (safe_execfile): fix the SystemExit
451 auto-suppression code to work in Python2.4 (the internal structure
562 auto-suppression code to work in Python2.4 (the internal structure
452 of that exception changed and I'd only tested the code with 2.5).
563 of that exception changed and I'd only tested the code with 2.5).
453 Bug reported by a SciPy attendee.
564 Bug reported by a SciPy attendee.
454
565
455 2007-08-13 Ville Vainio <vivainio@gmail.com>
566 2007-08-13 Ville Vainio <vivainio@gmail.com>
456
567
457 * prefilter.py: reverted !c:/bin/foo fix, made % in
568 * prefilter.py: reverted !c:/bin/foo fix, made % in
458 multiline specials work again
569 multiline specials work again
459
570
460 2007-08-13 Ville Vainio <vivainio@gmail.com>
571 2007-08-13 Ville Vainio <vivainio@gmail.com>
461
572
462 * prefilter.py: Take more care to special-case !, so that
573 * prefilter.py: Take more care to special-case !, so that
463 !c:/bin/foo.exe works.
574 !c:/bin/foo.exe works.
464
575
465 * setup.py: if we are building eggs, strip all docs and
576 * setup.py: if we are building eggs, strip all docs and
466 examples (it doesn't make sense to bytecompile examples,
577 examples (it doesn't make sense to bytecompile examples,
467 and docs would be in an awkward place anyway).
578 and docs would be in an awkward place anyway).
468
579
469 * Ryan Krauss' patch fixes start menu shortcuts when IPython
580 * Ryan Krauss' patch fixes start menu shortcuts when IPython
470 is installed into a directory that has spaces in the name.
581 is installed into a directory that has spaces in the name.
471
582
472 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
583 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
473
584
474 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
585 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
475 doctest profile and %doctest_mode, so they actually generate the
586 doctest profile and %doctest_mode, so they actually generate the
476 blank lines needed by doctest to separate individual tests.
587 blank lines needed by doctest to separate individual tests.
477
588
478 * IPython/iplib.py (safe_execfile): modify so that running code
589 * IPython/iplib.py (safe_execfile): modify so that running code
479 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
590 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
480 doesn't get a printed traceback. Any other value in sys.exit(),
591 doesn't get a printed traceback. Any other value in sys.exit(),
481 including the empty call, still generates a traceback. This
592 including the empty call, still generates a traceback. This
482 enables use of %run without having to pass '-e' for codes that
593 enables use of %run without having to pass '-e' for codes that
483 correctly set the exit status flag.
594 correctly set the exit status flag.
484
595
485 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
596 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
486
597
487 * IPython/iplib.py (InteractiveShell.post_config_initialization):
598 * IPython/iplib.py (InteractiveShell.post_config_initialization):
488 fix problems with doctests failing when run inside IPython due to
599 fix problems with doctests failing when run inside IPython due to
489 IPython's modifications of sys.displayhook.
600 IPython's modifications of sys.displayhook.
490
601
491 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
602 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
492
603
493 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
604 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
494 a string with names.
605 a string with names.
495
606
496 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
607 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
497
608
498 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
609 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
499 magic to toggle on/off the doctest pasting support without having
610 magic to toggle on/off the doctest pasting support without having
500 to leave a session to switch to a separate profile.
611 to leave a session to switch to a separate profile.
501
612
502 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
613 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
503
614
504 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
615 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
505 introduce a blank line between inputs, to conform to doctest
616 introduce a blank line between inputs, to conform to doctest
506 requirements.
617 requirements.
507
618
508 * IPython/OInspect.py (Inspector.pinfo): fix another part where
619 * IPython/OInspect.py (Inspector.pinfo): fix another part where
509 auto-generated docstrings for new-style classes were showing up.
620 auto-generated docstrings for new-style classes were showing up.
510
621
511 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
622 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
512
623
513 * api_changes: Add new file to track backward-incompatible
624 * api_changes: Add new file to track backward-incompatible
514 user-visible changes.
625 user-visible changes.
515
626
516 2007-08-06 Ville Vainio <vivainio@gmail.com>
627 2007-08-06 Ville Vainio <vivainio@gmail.com>
517
628
518 * ipmaker.py: fix bug where user_config_ns didn't exist at all
629 * ipmaker.py: fix bug where user_config_ns didn't exist at all
519 before all the config files were handled.
630 before all the config files were handled.
520
631
521 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
632 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
522
633
523 * IPython/irunner.py (RunnerFactory): Add new factory class for
634 * IPython/irunner.py (RunnerFactory): Add new factory class for
524 creating reusable runners based on filenames.
635 creating reusable runners based on filenames.
525
636
526 * IPython/Extensions/ipy_profile_doctest.py: New profile for
637 * IPython/Extensions/ipy_profile_doctest.py: New profile for
527 doctest support. It sets prompts/exceptions as similar to
638 doctest support. It sets prompts/exceptions as similar to
528 standard Python as possible, so that ipython sessions in this
639 standard Python as possible, so that ipython sessions in this
529 profile can be easily pasted as doctests with minimal
640 profile can be easily pasted as doctests with minimal
530 modifications. It also enables pasting of doctests from external
641 modifications. It also enables pasting of doctests from external
531 sources (even if they have leading whitespace), so that you can
642 sources (even if they have leading whitespace), so that you can
532 rerun doctests from existing sources.
643 rerun doctests from existing sources.
533
644
534 * IPython/iplib.py (_prefilter): fix a buglet where after entering
645 * IPython/iplib.py (_prefilter): fix a buglet where after entering
535 some whitespace, the prompt would become a continuation prompt
646 some whitespace, the prompt would become a continuation prompt
536 with no way of exiting it other than Ctrl-C. This fix brings us
647 with no way of exiting it other than Ctrl-C. This fix brings us
537 into conformity with how the default python prompt works.
648 into conformity with how the default python prompt works.
538
649
539 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
650 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
540 Add support for pasting not only lines that start with '>>>', but
651 Add support for pasting not only lines that start with '>>>', but
541 also with ' >>>'. That is, arbitrary whitespace can now precede
652 also with ' >>>'. That is, arbitrary whitespace can now precede
542 the prompts. This makes the system useful for pasting doctests
653 the prompts. This makes the system useful for pasting doctests
543 from docstrings back into a normal session.
654 from docstrings back into a normal session.
544
655
545 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
656 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
546
657
547 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
658 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
548 r1357, which had killed multiple invocations of an embedded
659 r1357, which had killed multiple invocations of an embedded
549 ipython (this means that example-embed has been broken for over 1
660 ipython (this means that example-embed has been broken for over 1
550 year!!!). Rather than possibly breaking the batch stuff for which
661 year!!!). Rather than possibly breaking the batch stuff for which
551 the code in iplib.py/interact was introduced, I worked around the
662 the code in iplib.py/interact was introduced, I worked around the
552 problem in the embedding class in Shell.py. We really need a
663 problem in the embedding class in Shell.py. We really need a
553 bloody test suite for this code, I'm sick of finding stuff that
664 bloody test suite for this code, I'm sick of finding stuff that
554 used to work breaking left and right every time I use an old
665 used to work breaking left and right every time I use an old
555 feature I hadn't touched in a few months.
666 feature I hadn't touched in a few months.
556 (kill_embedded): Add a new magic that only shows up in embedded
667 (kill_embedded): Add a new magic that only shows up in embedded
557 mode, to allow users to permanently deactivate an embedded instance.
668 mode, to allow users to permanently deactivate an embedded instance.
558
669
559 2007-08-01 Ville Vainio <vivainio@gmail.com>
670 2007-08-01 Ville Vainio <vivainio@gmail.com>
560
671
561 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
672 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
562 history gets out of sync on runlines (e.g. when running macros).
673 history gets out of sync on runlines (e.g. when running macros).
563
674
564 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
675 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
565
676
566 * IPython/Magic.py (magic_colors): fix win32-related error message
677 * IPython/Magic.py (magic_colors): fix win32-related error message
567 that could appear under *nix when readline was missing. Patch by
678 that could appear under *nix when readline was missing. Patch by
568 Scott Jackson, closes #175.
679 Scott Jackson, closes #175.
569
680
570 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
681 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
571
682
572 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
683 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
573 completer that it traits-aware, so that traits objects don't show
684 completer that it traits-aware, so that traits objects don't show
574 all of their internal attributes all the time.
685 all of their internal attributes all the time.
575
686
576 * IPython/genutils.py (dir2): moved this code from inside
687 * IPython/genutils.py (dir2): moved this code from inside
577 completer.py to expose it publicly, so I could use it in the
688 completer.py to expose it publicly, so I could use it in the
578 wildcards bugfix.
689 wildcards bugfix.
579
690
580 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
691 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
581 Stefan with Traits.
692 Stefan with Traits.
582
693
583 * IPython/completer.py (Completer.attr_matches): change internal
694 * IPython/completer.py (Completer.attr_matches): change internal
584 var name from 'object' to 'obj', since 'object' is now a builtin
695 var name from 'object' to 'obj', since 'object' is now a builtin
585 and this can lead to weird bugs if reusing this code elsewhere.
696 and this can lead to weird bugs if reusing this code elsewhere.
586
697
587 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
698 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
588
699
589 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
700 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
590 'foo?' and update the code to prevent printing of default
701 'foo?' and update the code to prevent printing of default
591 docstrings that started appearing after I added support for
702 docstrings that started appearing after I added support for
592 new-style classes. The approach I'm using isn't ideal (I just
703 new-style classes. The approach I'm using isn't ideal (I just
593 special-case those strings) but I'm not sure how to more robustly
704 special-case those strings) but I'm not sure how to more robustly
594 differentiate between truly user-written strings and Python's
705 differentiate between truly user-written strings and Python's
595 automatic ones.
706 automatic ones.
596
707
597 2007-07-09 Ville Vainio <vivainio@gmail.com>
708 2007-07-09 Ville Vainio <vivainio@gmail.com>
598
709
599 * completer.py: Applied Matthew Neeley's patch:
710 * completer.py: Applied Matthew Neeley's patch:
600 Dynamic attributes from trait_names and _getAttributeNames are added
711 Dynamic attributes from trait_names and _getAttributeNames are added
601 to the list of tab completions, but when this happens, the attribute
712 to the list of tab completions, but when this happens, the attribute
602 list is turned into a set, so the attributes are unordered when
713 list is turned into a set, so the attributes are unordered when
603 printed, which makes it hard to find the right completion. This patch
714 printed, which makes it hard to find the right completion. This patch
604 turns this set back into a list and sort it.
715 turns this set back into a list and sort it.
605
716
606 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
717 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
607
718
608 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
719 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
609 classes in various inspector functions.
720 classes in various inspector functions.
610
721
611 2007-06-28 Ville Vainio <vivainio@gmail.com>
722 2007-06-28 Ville Vainio <vivainio@gmail.com>
612
723
613 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
724 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
614 Implement "shadow" namespace, and callable aliases that reside there.
725 Implement "shadow" namespace, and callable aliases that reside there.
615 Use them by:
726 Use them by:
616
727
617 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
728 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
618
729
619 foo hello world
730 foo hello world
620 (gets translated to:)
731 (gets translated to:)
621 _sh.foo(r"""hello world""")
732 _sh.foo(r"""hello world""")
622
733
623 In practice, this kind of alias can take the role of a magic function
734 In practice, this kind of alias can take the role of a magic function
624
735
625 * New generic inspect_object, called on obj? and obj??
736 * New generic inspect_object, called on obj? and obj??
626
737
627 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
738 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
628
739
629 * IPython/ultraTB.py (findsource): fix a problem with
740 * IPython/ultraTB.py (findsource): fix a problem with
630 inspect.getfile that can cause crashes during traceback construction.
741 inspect.getfile that can cause crashes during traceback construction.
631
742
632 2007-06-14 Ville Vainio <vivainio@gmail.com>
743 2007-06-14 Ville Vainio <vivainio@gmail.com>
633
744
634 * iplib.py (handle_auto): Try to use ascii for printing "--->"
745 * iplib.py (handle_auto): Try to use ascii for printing "--->"
635 autocall rewrite indication, becausesometimes unicode fails to print
746 autocall rewrite indication, becausesometimes unicode fails to print
636 properly (and you get ' - - - '). Use plain uncoloured ---> for
747 properly (and you get ' - - - '). Use plain uncoloured ---> for
637 unicode.
748 unicode.
638
749
639 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
750 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
640
751
641 . pickleshare 'hash' commands (hget, hset, hcompress,
752 . pickleshare 'hash' commands (hget, hset, hcompress,
642 hdict) for efficient shadow history storage.
753 hdict) for efficient shadow history storage.
643
754
644 2007-06-13 Ville Vainio <vivainio@gmail.com>
755 2007-06-13 Ville Vainio <vivainio@gmail.com>
645
756
646 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
757 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
647 Added kw arg 'interactive', tell whether vars should be visible
758 Added kw arg 'interactive', tell whether vars should be visible
648 with %whos.
759 with %whos.
649
760
650 2007-06-11 Ville Vainio <vivainio@gmail.com>
761 2007-06-11 Ville Vainio <vivainio@gmail.com>
651
762
652 * pspersistence.py, Magic.py, iplib.py: directory history now saved
763 * pspersistence.py, Magic.py, iplib.py: directory history now saved
653 to db
764 to db
654
765
655 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
766 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
656 Also, it exits IPython immediately after evaluating the command (just like
767 Also, it exits IPython immediately after evaluating the command (just like
657 std python)
768 std python)
658
769
659 2007-06-05 Walter Doerwald <walter@livinglogic.de>
770 2007-06-05 Walter Doerwald <walter@livinglogic.de>
660
771
661 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
772 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
662 Python string and captures the output. (Idea and original patch by
773 Python string and captures the output. (Idea and original patch by
663 Stefan van der Walt)
774 Stefan van der Walt)
664
775
665 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
776 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
666
777
667 * IPython/ultraTB.py (VerboseTB.text): update printing of
778 * IPython/ultraTB.py (VerboseTB.text): update printing of
668 exception types for Python 2.5 (now all exceptions in the stdlib
779 exception types for Python 2.5 (now all exceptions in the stdlib
669 are new-style classes).
780 are new-style classes).
670
781
671 2007-05-31 Walter Doerwald <walter@livinglogic.de>
782 2007-05-31 Walter Doerwald <walter@livinglogic.de>
672
783
673 * IPython/Extensions/igrid.py: Add new commands refresh and
784 * IPython/Extensions/igrid.py: Add new commands refresh and
674 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
785 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
675 the iterator once (refresh) or after every x seconds (refresh_timer).
786 the iterator once (refresh) or after every x seconds (refresh_timer).
676 Add a working implementation of "searchexpression", where the text
787 Add a working implementation of "searchexpression", where the text
677 entered is not the text to search for, but an expression that must
788 entered is not the text to search for, but an expression that must
678 be true. Added display of shortcuts to the menu. Added commands "pickinput"
789 be true. Added display of shortcuts to the menu. Added commands "pickinput"
679 and "pickinputattr" that put the object or attribute under the cursor
790 and "pickinputattr" that put the object or attribute under the cursor
680 in the input line. Split the statusbar to be able to display the currently
791 in the input line. Split the statusbar to be able to display the currently
681 active refresh interval. (Patch by Nik Tautenhahn)
792 active refresh interval. (Patch by Nik Tautenhahn)
682
793
683 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
794 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
684
795
685 * fixing set_term_title to use ctypes as default
796 * fixing set_term_title to use ctypes as default
686
797
687 * fixing set_term_title fallback to work when curent dir
798 * fixing set_term_title fallback to work when curent dir
688 is on a windows network share
799 is on a windows network share
689
800
690 2007-05-28 Ville Vainio <vivainio@gmail.com>
801 2007-05-28 Ville Vainio <vivainio@gmail.com>
691
802
692 * %cpaste: strip + with > from left (diffs).
803 * %cpaste: strip + with > from left (diffs).
693
804
694 * iplib.py: Fix crash when readline not installed
805 * iplib.py: Fix crash when readline not installed
695
806
696 2007-05-26 Ville Vainio <vivainio@gmail.com>
807 2007-05-26 Ville Vainio <vivainio@gmail.com>
697
808
698 * generics.py: introduce easy to extend result_display generic
809 * generics.py: introduce easy to extend result_display generic
699 function (using simplegeneric.py).
810 function (using simplegeneric.py).
700
811
701 * Fixed the append functionality of %set.
812 * Fixed the append functionality of %set.
702
813
703 2007-05-25 Ville Vainio <vivainio@gmail.com>
814 2007-05-25 Ville Vainio <vivainio@gmail.com>
704
815
705 * New magic: %rep (fetch / run old commands from history)
816 * New magic: %rep (fetch / run old commands from history)
706
817
707 * New extension: mglob (%mglob magic), for powerful glob / find /filter
818 * New extension: mglob (%mglob magic), for powerful glob / find /filter
708 like functionality
819 like functionality
709
820
710 % maghistory.py: %hist -g PATTERM greps the history for pattern
821 % maghistory.py: %hist -g PATTERM greps the history for pattern
711
822
712 2007-05-24 Walter Doerwald <walter@livinglogic.de>
823 2007-05-24 Walter Doerwald <walter@livinglogic.de>
713
824
714 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
825 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
715 browse the IPython input history
826 browse the IPython input history
716
827
717 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
828 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
718 (mapped to "i") can be used to put the object under the curser in the input
829 (mapped to "i") can be used to put the object under the curser in the input
719 line. pickinputattr (mapped to "I") does the same for the attribute under
830 line. pickinputattr (mapped to "I") does the same for the attribute under
720 the cursor.
831 the cursor.
721
832
722 2007-05-24 Ville Vainio <vivainio@gmail.com>
833 2007-05-24 Ville Vainio <vivainio@gmail.com>
723
834
724 * Grand magic cleansing (changeset [2380]):
835 * Grand magic cleansing (changeset [2380]):
725
836
726 * Introduce ipy_legacy.py where the following magics were
837 * Introduce ipy_legacy.py where the following magics were
727 moved:
838 moved:
728
839
729 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
840 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
730
841
731 If you need them, either use default profile or "import ipy_legacy"
842 If you need them, either use default profile or "import ipy_legacy"
732 in your ipy_user_conf.py
843 in your ipy_user_conf.py
733
844
734 * Move sh and scipy profile to Extensions from UserConfig. this implies
845 * Move sh and scipy profile to Extensions from UserConfig. this implies
735 you should not edit them, but you don't need to run %upgrade when
846 you should not edit them, but you don't need to run %upgrade when
736 upgrading IPython anymore.
847 upgrading IPython anymore.
737
848
738 * %hist/%history now operates in "raw" mode by default. To get the old
849 * %hist/%history now operates in "raw" mode by default. To get the old
739 behaviour, run '%hist -n' (native mode).
850 behaviour, run '%hist -n' (native mode).
740
851
741 * split ipy_stock_completers.py to ipy_stock_completers.py and
852 * split ipy_stock_completers.py to ipy_stock_completers.py and
742 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
853 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
743 installed as default.
854 installed as default.
744
855
745 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
856 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
746 handling.
857 handling.
747
858
748 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
859 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
749 input if readline is available.
860 input if readline is available.
750
861
751 2007-05-23 Ville Vainio <vivainio@gmail.com>
862 2007-05-23 Ville Vainio <vivainio@gmail.com>
752
863
753 * macro.py: %store uses __getstate__ properly
864 * macro.py: %store uses __getstate__ properly
754
865
755 * exesetup.py: added new setup script for creating
866 * exesetup.py: added new setup script for creating
756 standalone IPython executables with py2exe (i.e.
867 standalone IPython executables with py2exe (i.e.
757 no python installation required).
868 no python installation required).
758
869
759 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
870 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
760 its place.
871 its place.
761
872
762 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
873 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
763
874
764 2007-05-21 Ville Vainio <vivainio@gmail.com>
875 2007-05-21 Ville Vainio <vivainio@gmail.com>
765
876
766 * platutil_win32.py (set_term_title): handle
877 * platutil_win32.py (set_term_title): handle
767 failure of 'title' system call properly.
878 failure of 'title' system call properly.
768
879
769 2007-05-17 Walter Doerwald <walter@livinglogic.de>
880 2007-05-17 Walter Doerwald <walter@livinglogic.de>
770
881
771 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
882 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
772 (Bug detected by Paul Mueller).
883 (Bug detected by Paul Mueller).
773
884
774 2007-05-16 Ville Vainio <vivainio@gmail.com>
885 2007-05-16 Ville Vainio <vivainio@gmail.com>
775
886
776 * ipy_profile_sci.py, ipython_win_post_install.py: Create
887 * ipy_profile_sci.py, ipython_win_post_install.py: Create
777 new "sci" profile, effectively a modern version of the old
888 new "sci" profile, effectively a modern version of the old
778 "scipy" profile (which is now slated for deprecation).
889 "scipy" profile (which is now slated for deprecation).
779
890
780 2007-05-15 Ville Vainio <vivainio@gmail.com>
891 2007-05-15 Ville Vainio <vivainio@gmail.com>
781
892
782 * pycolorize.py, pycolor.1: Paul Mueller's patches that
893 * pycolorize.py, pycolor.1: Paul Mueller's patches that
783 make pycolorize read input from stdin when run without arguments.
894 make pycolorize read input from stdin when run without arguments.
784
895
785 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
896 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
786
897
787 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
898 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
788 it in sh profile (instead of ipy_system_conf.py).
899 it in sh profile (instead of ipy_system_conf.py).
789
900
790 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
901 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
791 aliases are now lower case on windows (MyCommand.exe => mycommand).
902 aliases are now lower case on windows (MyCommand.exe => mycommand).
792
903
793 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
904 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
794 Macros are now callable objects that inherit from ipapi.IPyAutocall,
905 Macros are now callable objects that inherit from ipapi.IPyAutocall,
795 i.e. get autocalled regardless of system autocall setting.
906 i.e. get autocalled regardless of system autocall setting.
796
907
797 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
908 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
798
909
799 * IPython/rlineimpl.py: check for clear_history in readline and
910 * IPython/rlineimpl.py: check for clear_history in readline and
800 make it a dummy no-op if not available. This function isn't
911 make it a dummy no-op if not available. This function isn't
801 guaranteed to be in the API and appeared in Python 2.4, so we need
912 guaranteed to be in the API and appeared in Python 2.4, so we need
802 to check it ourselves. Also, clean up this file quite a bit.
913 to check it ourselves. Also, clean up this file quite a bit.
803
914
804 * ipython.1: update man page and full manual with information
915 * ipython.1: update man page and full manual with information
805 about threads (remove outdated warning). Closes #151.
916 about threads (remove outdated warning). Closes #151.
806
917
807 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
918 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
808
919
809 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
920 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
810 in trunk (note that this made it into the 0.8.1 release already,
921 in trunk (note that this made it into the 0.8.1 release already,
811 but the changelogs didn't get coordinated). Many thanks to Gael
922 but the changelogs didn't get coordinated). Many thanks to Gael
812 Varoquaux <gael.varoquaux-AT-normalesup.org>
923 Varoquaux <gael.varoquaux-AT-normalesup.org>
813
924
814 2007-05-09 *** Released version 0.8.1
925 2007-05-09 *** Released version 0.8.1
815
926
816 2007-05-10 Walter Doerwald <walter@livinglogic.de>
927 2007-05-10 Walter Doerwald <walter@livinglogic.de>
817
928
818 * IPython/Extensions/igrid.py: Incorporate html help into
929 * IPython/Extensions/igrid.py: Incorporate html help into
819 the module, so we don't have to search for the file.
930 the module, so we don't have to search for the file.
820
931
821 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
932 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
822
933
823 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
934 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
824
935
825 2007-04-30 Ville Vainio <vivainio@gmail.com>
936 2007-04-30 Ville Vainio <vivainio@gmail.com>
826
937
827 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
938 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
828 user has illegal (non-ascii) home directory name
939 user has illegal (non-ascii) home directory name
829
940
830 2007-04-27 Ville Vainio <vivainio@gmail.com>
941 2007-04-27 Ville Vainio <vivainio@gmail.com>
831
942
832 * platutils_win32.py: implement set_term_title for windows
943 * platutils_win32.py: implement set_term_title for windows
833
944
834 * Update version number
945 * Update version number
835
946
836 * ipy_profile_sh.py: more informative prompt (2 dir levels)
947 * ipy_profile_sh.py: more informative prompt (2 dir levels)
837
948
838 2007-04-26 Walter Doerwald <walter@livinglogic.de>
949 2007-04-26 Walter Doerwald <walter@livinglogic.de>
839
950
840 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
951 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
841 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
952 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
842 bug discovered by Ville).
953 bug discovered by Ville).
843
954
844 2007-04-26 Ville Vainio <vivainio@gmail.com>
955 2007-04-26 Ville Vainio <vivainio@gmail.com>
845
956
846 * Extensions/ipy_completers.py: Olivier's module completer now
957 * Extensions/ipy_completers.py: Olivier's module completer now
847 saves the list of root modules if it takes > 4 secs on the first run.
958 saves the list of root modules if it takes > 4 secs on the first run.
848
959
849 * Magic.py (%rehashx): %rehashx now clears the completer cache
960 * Magic.py (%rehashx): %rehashx now clears the completer cache
850
961
851
962
852 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
963 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
853
964
854 * ipython.el: fix incorrect color scheme, reported by Stefan.
965 * ipython.el: fix incorrect color scheme, reported by Stefan.
855 Closes #149.
966 Closes #149.
856
967
857 * IPython/PyColorize.py (Parser.format2): fix state-handling
968 * IPython/PyColorize.py (Parser.format2): fix state-handling
858 logic. I still don't like how that code handles state, but at
969 logic. I still don't like how that code handles state, but at
859 least now it should be correct, if inelegant. Closes #146.
970 least now it should be correct, if inelegant. Closes #146.
860
971
861 2007-04-25 Ville Vainio <vivainio@gmail.com>
972 2007-04-25 Ville Vainio <vivainio@gmail.com>
862
973
863 * Extensions/ipy_which.py: added extension for %which magic, works
974 * Extensions/ipy_which.py: added extension for %which magic, works
864 a lot like unix 'which' but also finds and expands aliases, and
975 a lot like unix 'which' but also finds and expands aliases, and
865 allows wildcards.
976 allows wildcards.
866
977
867 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
978 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
868 as opposed to returning nothing.
979 as opposed to returning nothing.
869
980
870 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
981 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
871 ipy_stock_completers on default profile, do import on sh profile.
982 ipy_stock_completers on default profile, do import on sh profile.
872
983
873 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
984 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
874
985
875 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
986 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
876 like ipython.py foo.py which raised a IndexError.
987 like ipython.py foo.py which raised a IndexError.
877
988
878 2007-04-21 Ville Vainio <vivainio@gmail.com>
989 2007-04-21 Ville Vainio <vivainio@gmail.com>
879
990
880 * Extensions/ipy_extutil.py: added extension to manage other ipython
991 * Extensions/ipy_extutil.py: added extension to manage other ipython
881 extensions. Now only supports 'ls' == list extensions.
992 extensions. Now only supports 'ls' == list extensions.
882
993
883 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
994 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
884
995
885 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
996 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
886 would prevent use of the exception system outside of a running
997 would prevent use of the exception system outside of a running
887 IPython instance.
998 IPython instance.
888
999
889 2007-04-20 Ville Vainio <vivainio@gmail.com>
1000 2007-04-20 Ville Vainio <vivainio@gmail.com>
890
1001
891 * Extensions/ipy_render.py: added extension for easy
1002 * Extensions/ipy_render.py: added extension for easy
892 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1003 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
893 'Iptl' template notation,
1004 'Iptl' template notation,
894
1005
895 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1006 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
896 safer & faster 'import' completer.
1007 safer & faster 'import' completer.
897
1008
898 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1009 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
899 and _ip.defalias(name, command).
1010 and _ip.defalias(name, command).
900
1011
901 * Extensions/ipy_exportdb.py: New extension for exporting all the
1012 * Extensions/ipy_exportdb.py: New extension for exporting all the
902 %store'd data in a portable format (normal ipapi calls like
1013 %store'd data in a portable format (normal ipapi calls like
903 defmacro() etc.)
1014 defmacro() etc.)
904
1015
905 2007-04-19 Ville Vainio <vivainio@gmail.com>
1016 2007-04-19 Ville Vainio <vivainio@gmail.com>
906
1017
907 * upgrade_dir.py: skip junk files like *.pyc
1018 * upgrade_dir.py: skip junk files like *.pyc
908
1019
909 * Release.py: version number to 0.8.1
1020 * Release.py: version number to 0.8.1
910
1021
911 2007-04-18 Ville Vainio <vivainio@gmail.com>
1022 2007-04-18 Ville Vainio <vivainio@gmail.com>
912
1023
913 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1024 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
914 and later on win32.
1025 and later on win32.
915
1026
916 2007-04-16 Ville Vainio <vivainio@gmail.com>
1027 2007-04-16 Ville Vainio <vivainio@gmail.com>
917
1028
918 * iplib.py (showtraceback): Do not crash when running w/o readline.
1029 * iplib.py (showtraceback): Do not crash when running w/o readline.
919
1030
920 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1031 2007-04-12 Walter Doerwald <walter@livinglogic.de>
921
1032
922 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1033 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
923 sorted (case sensitive with files and dirs mixed).
1034 sorted (case sensitive with files and dirs mixed).
924
1035
925 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1036 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
926
1037
927 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1038 * IPython/Release.py (version): Open trunk for 0.8.1 development.
928
1039
929 2007-04-10 *** Released version 0.8.0
1040 2007-04-10 *** Released version 0.8.0
930
1041
931 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1042 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
932
1043
933 * Tag 0.8.0 for release.
1044 * Tag 0.8.0 for release.
934
1045
935 * IPython/iplib.py (reloadhist): add API function to cleanly
1046 * IPython/iplib.py (reloadhist): add API function to cleanly
936 reload the readline history, which was growing inappropriately on
1047 reload the readline history, which was growing inappropriately on
937 every %run call.
1048 every %run call.
938
1049
939 * win32_manual_post_install.py (run): apply last part of Nicolas
1050 * win32_manual_post_install.py (run): apply last part of Nicolas
940 Pernetty's patch (I'd accidentally applied it in a different
1051 Pernetty's patch (I'd accidentally applied it in a different
941 directory and this particular file didn't get patched).
1052 directory and this particular file didn't get patched).
942
1053
943 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1054 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
944
1055
945 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1056 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
946 find the main thread id and use the proper API call. Thanks to
1057 find the main thread id and use the proper API call. Thanks to
947 Stefan for the fix.
1058 Stefan for the fix.
948
1059
949 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1060 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
950 unit tests to reflect fixed ticket #52, and add more tests sent by
1061 unit tests to reflect fixed ticket #52, and add more tests sent by
951 him.
1062 him.
952
1063
953 * IPython/iplib.py (raw_input): restore the readline completer
1064 * IPython/iplib.py (raw_input): restore the readline completer
954 state on every input, in case third-party code messed it up.
1065 state on every input, in case third-party code messed it up.
955 (_prefilter): revert recent addition of early-escape checks which
1066 (_prefilter): revert recent addition of early-escape checks which
956 prevent many valid alias calls from working.
1067 prevent many valid alias calls from working.
957
1068
958 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1069 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
959 flag for sigint handler so we don't run a full signal() call on
1070 flag for sigint handler so we don't run a full signal() call on
960 each runcode access.
1071 each runcode access.
961
1072
962 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1073 * IPython/Magic.py (magic_whos): small improvement to diagnostic
963 message.
1074 message.
964
1075
965 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1076 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
966
1077
967 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1078 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
968 asynchronous exceptions working, i.e., Ctrl-C can actually
1079 asynchronous exceptions working, i.e., Ctrl-C can actually
969 interrupt long-running code in the multithreaded shells.
1080 interrupt long-running code in the multithreaded shells.
970
1081
971 This is using Tomer Filiba's great ctypes-based trick:
1082 This is using Tomer Filiba's great ctypes-based trick:
972 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1083 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
973 this in the past, but hadn't been able to make it work before. So
1084 this in the past, but hadn't been able to make it work before. So
974 far it looks like it's actually running, but this needs more
1085 far it looks like it's actually running, but this needs more
975 testing. If it really works, I'll be *very* happy, and we'll owe
1086 testing. If it really works, I'll be *very* happy, and we'll owe
976 a huge thank you to Tomer. My current implementation is ugly,
1087 a huge thank you to Tomer. My current implementation is ugly,
977 hackish and uses nasty globals, but I don't want to try and clean
1088 hackish and uses nasty globals, but I don't want to try and clean
978 anything up until we know if it actually works.
1089 anything up until we know if it actually works.
979
1090
980 NOTE: this feature needs ctypes to work. ctypes is included in
1091 NOTE: this feature needs ctypes to work. ctypes is included in
981 Python2.5, but 2.4 users will need to manually install it. This
1092 Python2.5, but 2.4 users will need to manually install it. This
982 feature makes multi-threaded shells so much more usable that it's
1093 feature makes multi-threaded shells so much more usable that it's
983 a minor price to pay (ctypes is very easy to install, already a
1094 a minor price to pay (ctypes is very easy to install, already a
984 requirement for win32 and available in major linux distros).
1095 requirement for win32 and available in major linux distros).
985
1096
986 2007-04-04 Ville Vainio <vivainio@gmail.com>
1097 2007-04-04 Ville Vainio <vivainio@gmail.com>
987
1098
988 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1099 * Extensions/ipy_completers.py, ipy_stock_completers.py:
989 Moved implementations of 'bundled' completers to ipy_completers.py,
1100 Moved implementations of 'bundled' completers to ipy_completers.py,
990 they are only enabled in ipy_stock_completers.py.
1101 they are only enabled in ipy_stock_completers.py.
991
1102
992 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1103 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
993
1104
994 * IPython/PyColorize.py (Parser.format2): Fix identation of
1105 * IPython/PyColorize.py (Parser.format2): Fix identation of
995 colorzied output and return early if color scheme is NoColor, to
1106 colorzied output and return early if color scheme is NoColor, to
996 avoid unnecessary and expensive tokenization. Closes #131.
1107 avoid unnecessary and expensive tokenization. Closes #131.
997
1108
998 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1109 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
999
1110
1000 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1111 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1001 has a critical bug (a missing import that makes post-mortem not
1112 has a critical bug (a missing import that makes post-mortem not
1002 work at all). Unfortunately as of this time, this is the version
1113 work at all). Unfortunately as of this time, this is the version
1003 shipped with Ubuntu Edgy, so quite a few people have this one. I
1114 shipped with Ubuntu Edgy, so quite a few people have this one. I
1004 hope Edgy will update to a more recent package.
1115 hope Edgy will update to a more recent package.
1005
1116
1006 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1117 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1007
1118
1008 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1119 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1009 set by Stefan (only the first part had been applied before).
1120 set by Stefan (only the first part had been applied before).
1010
1121
1011 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1122 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1012 remove usage of the dangerous pkgutil.walk_packages(). See
1123 remove usage of the dangerous pkgutil.walk_packages(). See
1013 details in comments left in the code.
1124 details in comments left in the code.
1014
1125
1015 * IPython/Magic.py (magic_whos): add support for numpy arrays
1126 * IPython/Magic.py (magic_whos): add support for numpy arrays
1016 similar to what we had for Numeric.
1127 similar to what we had for Numeric.
1017
1128
1018 * IPython/completer.py (IPCompleter.complete): extend the
1129 * IPython/completer.py (IPCompleter.complete): extend the
1019 complete() call API to support completions by other mechanisms
1130 complete() call API to support completions by other mechanisms
1020 than readline. Closes #109.
1131 than readline. Closes #109.
1021
1132
1022 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1133 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1023 protect against a bug in Python's execfile(). Closes #123.
1134 protect against a bug in Python's execfile(). Closes #123.
1024
1135
1025 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1136 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1026
1137
1027 * IPython/iplib.py (split_user_input): ensure that when splitting
1138 * IPython/iplib.py (split_user_input): ensure that when splitting
1028 user input, the part that can be treated as a python name is pure
1139 user input, the part that can be treated as a python name is pure
1029 ascii (Python identifiers MUST be pure ascii). Part of the
1140 ascii (Python identifiers MUST be pure ascii). Part of the
1030 ongoing Unicode support work.
1141 ongoing Unicode support work.
1031
1142
1032 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1143 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1033 actual prompt number, without any coloring. This allows users to
1144 actual prompt number, without any coloring. This allows users to
1034 produce numbered prompts with their own colors. Added after a
1145 produce numbered prompts with their own colors. Added after a
1035 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1146 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1036
1147
1037 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1148 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1038
1149
1039 * IPython/Extensions/igrid.py: Map the return key
1150 * IPython/Extensions/igrid.py: Map the return key
1040 to enter() and shift-return to enterattr().
1151 to enter() and shift-return to enterattr().
1041
1152
1042 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1153 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1043
1154
1044 * IPython/Magic.py (magic_psearch): add unicode support by
1155 * IPython/Magic.py (magic_psearch): add unicode support by
1045 encoding to ascii the input, since this routine also only deals
1156 encoding to ascii the input, since this routine also only deals
1046 with valid Python names. Fixes a bug reported by Stefan.
1157 with valid Python names. Fixes a bug reported by Stefan.
1047
1158
1048 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1159 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1049
1160
1050 * IPython/Magic.py (_inspect): convert unicode input into ascii
1161 * IPython/Magic.py (_inspect): convert unicode input into ascii
1051 before trying to evaluate it as a Python identifier. This fixes a
1162 before trying to evaluate it as a Python identifier. This fixes a
1052 problem that the new unicode support had introduced when analyzing
1163 problem that the new unicode support had introduced when analyzing
1053 long definition lines for functions.
1164 long definition lines for functions.
1054
1165
1055 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1166 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1056
1167
1057 * IPython/Extensions/igrid.py: Fix picking. Using
1168 * IPython/Extensions/igrid.py: Fix picking. Using
1058 igrid with wxPython 2.6 and -wthread should work now.
1169 igrid with wxPython 2.6 and -wthread should work now.
1059 igrid.display() simply tries to create a frame without
1170 igrid.display() simply tries to create a frame without
1060 an application. Only if this fails an application is created.
1171 an application. Only if this fails an application is created.
1061
1172
1062 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1173 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1063
1174
1064 * IPython/Extensions/path.py: Updated to version 2.2.
1175 * IPython/Extensions/path.py: Updated to version 2.2.
1065
1176
1066 2007-03-23 Ville Vainio <vivainio@gmail.com>
1177 2007-03-23 Ville Vainio <vivainio@gmail.com>
1067
1178
1068 * iplib.py: recursive alias expansion now works better, so that
1179 * iplib.py: recursive alias expansion now works better, so that
1069 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1180 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1070 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1181 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1071
1182
1072 * Extensions/ipy_gnuglobal.py added, provides %global magic
1183 * Extensions/ipy_gnuglobal.py added, provides %global magic
1073 for users of http://www.gnu.org/software/global
1184 for users of http://www.gnu.org/software/global
1074
1185
1075 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1186 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1076 Closes #52. Patch by Stefan van der Walt.
1187 Closes #52. Patch by Stefan van der Walt.
1077
1188
1078 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1189 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1079
1190
1080 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1191 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1081 respect the __file__ attribute when using %run. Thanks to a bug
1192 respect the __file__ attribute when using %run. Thanks to a bug
1082 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1193 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1083
1194
1084 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1195 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1085
1196
1086 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1197 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1087 input. Patch sent by Stefan.
1198 input. Patch sent by Stefan.
1088
1199
1089 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1200 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1090 * IPython/Extensions/ipy_stock_completer.py
1201 * IPython/Extensions/ipy_stock_completer.py
1091 shlex_split, fix bug in shlex_split. len function
1202 shlex_split, fix bug in shlex_split. len function
1092 call was missing an if statement. Caused shlex_split to
1203 call was missing an if statement. Caused shlex_split to
1093 sometimes return "" as last element.
1204 sometimes return "" as last element.
1094
1205
1095 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1206 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1096
1207
1097 * IPython/completer.py
1208 * IPython/completer.py
1098 (IPCompleter.file_matches.single_dir_expand): fix a problem
1209 (IPCompleter.file_matches.single_dir_expand): fix a problem
1099 reported by Stefan, where directories containign a single subdir
1210 reported by Stefan, where directories containign a single subdir
1100 would be completed too early.
1211 would be completed too early.
1101
1212
1102 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1213 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1103 pylab import *' when -pylab is given be optional. A new flag,
1214 pylab import *' when -pylab is given be optional. A new flag,
1104 pylab_import_all controls this behavior, the default is True for
1215 pylab_import_all controls this behavior, the default is True for
1105 backwards compatibility.
1216 backwards compatibility.
1106
1217
1107 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1218 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1108 modified) R. Bernstein's patch for fully syntax highlighted
1219 modified) R. Bernstein's patch for fully syntax highlighted
1109 tracebacks. The functionality is also available under ultraTB for
1220 tracebacks. The functionality is also available under ultraTB for
1110 non-ipython users (someone using ultraTB but outside an ipython
1221 non-ipython users (someone using ultraTB but outside an ipython
1111 session). They can select the color scheme by setting the
1222 session). They can select the color scheme by setting the
1112 module-level global DEFAULT_SCHEME. The highlight functionality
1223 module-level global DEFAULT_SCHEME. The highlight functionality
1113 also works when debugging.
1224 also works when debugging.
1114
1225
1115 * IPython/genutils.py (IOStream.close): small patch by
1226 * IPython/genutils.py (IOStream.close): small patch by
1116 R. Bernstein for improved pydb support.
1227 R. Bernstein for improved pydb support.
1117
1228
1118 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1229 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1119 DaveS <davls@telus.net> to improve support of debugging under
1230 DaveS <davls@telus.net> to improve support of debugging under
1120 NTEmacs, including improved pydb behavior.
1231 NTEmacs, including improved pydb behavior.
1121
1232
1122 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1233 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1123 Python 2.5, where the stats object API changed a little. Thanks
1234 Python 2.5, where the stats object API changed a little. Thanks
1124 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1235 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1125
1236
1126 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1237 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1127 Pernetty's patch to improve support for (X)Emacs under Win32.
1238 Pernetty's patch to improve support for (X)Emacs under Win32.
1128
1239
1129 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1240 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1130
1241
1131 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1242 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1132 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1243 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1133 a report by Nik Tautenhahn.
1244 a report by Nik Tautenhahn.
1134
1245
1135 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1246 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1136
1247
1137 * setup.py: Add the igrid help files to the list of data files
1248 * setup.py: Add the igrid help files to the list of data files
1138 to be installed alongside igrid.
1249 to be installed alongside igrid.
1139 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1250 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1140 Show the input object of the igrid browser as the window tile.
1251 Show the input object of the igrid browser as the window tile.
1141 Show the object the cursor is on in the statusbar.
1252 Show the object the cursor is on in the statusbar.
1142
1253
1143 2007-03-15 Ville Vainio <vivainio@gmail.com>
1254 2007-03-15 Ville Vainio <vivainio@gmail.com>
1144
1255
1145 * Extensions/ipy_stock_completers.py: Fixed exception
1256 * Extensions/ipy_stock_completers.py: Fixed exception
1146 on mismatching quotes in %run completer. Patch by
1257 on mismatching quotes in %run completer. Patch by
1147 Jorgen Stenarson. Closes #127.
1258 Jorgen Stenarson. Closes #127.
1148
1259
1149 2007-03-14 Ville Vainio <vivainio@gmail.com>
1260 2007-03-14 Ville Vainio <vivainio@gmail.com>
1150
1261
1151 * Extensions/ext_rehashdir.py: Do not do auto_alias
1262 * Extensions/ext_rehashdir.py: Do not do auto_alias
1152 in %rehashdir, it clobbers %store'd aliases.
1263 in %rehashdir, it clobbers %store'd aliases.
1153
1264
1154 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1265 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1155 (beefed up %env) imported for sh profile.
1266 (beefed up %env) imported for sh profile.
1156
1267
1157 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1268 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1158
1269
1159 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1270 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1160 as the default browser.
1271 as the default browser.
1161 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1272 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1162 As igrid displays all attributes it ever encounters, fetch() (which has
1273 As igrid displays all attributes it ever encounters, fetch() (which has
1163 been renamed to _fetch()) doesn't have to recalculate the display attributes
1274 been renamed to _fetch()) doesn't have to recalculate the display attributes
1164 every time a new item is fetched. This should speed up scrolling.
1275 every time a new item is fetched. This should speed up scrolling.
1165
1276
1166 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1277 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1167
1278
1168 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1279 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1169 Schmolck's recently reported tab-completion bug (my previous one
1280 Schmolck's recently reported tab-completion bug (my previous one
1170 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1281 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1171
1282
1172 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1283 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1173
1284
1174 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1285 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1175 Close help window if exiting igrid.
1286 Close help window if exiting igrid.
1176
1287
1177 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1288 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1178
1289
1179 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1290 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1180 before calling functions from readline.
1291 before calling functions from readline.
1181
1292
1182 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1293 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1183
1294
1184 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1295 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1185 igrid is a wxPython-based display object for ipipe. If your system has
1296 igrid is a wxPython-based display object for ipipe. If your system has
1186 wx installed igrid will be the default display. Without wx ipipe falls
1297 wx installed igrid will be the default display. Without wx ipipe falls
1187 back to ibrowse (which needs curses). If no curses is installed ipipe
1298 back to ibrowse (which needs curses). If no curses is installed ipipe
1188 falls back to idump.
1299 falls back to idump.
1189
1300
1190 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1301 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1191
1302
1192 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1303 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1193 my changes from yesterday, they introduced bugs. Will reactivate
1304 my changes from yesterday, they introduced bugs. Will reactivate
1194 once I get a correct solution, which will be much easier thanks to
1305 once I get a correct solution, which will be much easier thanks to
1195 Dan Milstein's new prefilter test suite.
1306 Dan Milstein's new prefilter test suite.
1196
1307
1197 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1308 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1198
1309
1199 * IPython/iplib.py (split_user_input): fix input splitting so we
1310 * IPython/iplib.py (split_user_input): fix input splitting so we
1200 don't attempt attribute accesses on things that can't possibly be
1311 don't attempt attribute accesses on things that can't possibly be
1201 valid Python attributes. After a bug report by Alex Schmolck.
1312 valid Python attributes. After a bug report by Alex Schmolck.
1202 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1313 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1203 %magic with explicit % prefix.
1314 %magic with explicit % prefix.
1204
1315
1205 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1316 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1206
1317
1207 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1318 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1208 avoid a DeprecationWarning from GTK.
1319 avoid a DeprecationWarning from GTK.
1209
1320
1210 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1321 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1211
1322
1212 * IPython/genutils.py (clock): I modified clock() to return total
1323 * IPython/genutils.py (clock): I modified clock() to return total
1213 time, user+system. This is a more commonly needed metric. I also
1324 time, user+system. This is a more commonly needed metric. I also
1214 introduced the new clocku/clocks to get only user/system time if
1325 introduced the new clocku/clocks to get only user/system time if
1215 one wants those instead.
1326 one wants those instead.
1216
1327
1217 ***WARNING: API CHANGE*** clock() used to return only user time,
1328 ***WARNING: API CHANGE*** clock() used to return only user time,
1218 so if you want exactly the same results as before, use clocku
1329 so if you want exactly the same results as before, use clocku
1219 instead.
1330 instead.
1220
1331
1221 2007-02-22 Ville Vainio <vivainio@gmail.com>
1332 2007-02-22 Ville Vainio <vivainio@gmail.com>
1222
1333
1223 * IPython/Extensions/ipy_p4.py: Extension for improved
1334 * IPython/Extensions/ipy_p4.py: Extension for improved
1224 p4 (perforce version control system) experience.
1335 p4 (perforce version control system) experience.
1225 Adds %p4 magic with p4 command completion and
1336 Adds %p4 magic with p4 command completion and
1226 automatic -G argument (marshall output as python dict)
1337 automatic -G argument (marshall output as python dict)
1227
1338
1228 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1339 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1229
1340
1230 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1341 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1231 stop marks.
1342 stop marks.
1232 (ClearingMixin): a simple mixin to easily make a Demo class clear
1343 (ClearingMixin): a simple mixin to easily make a Demo class clear
1233 the screen in between blocks and have empty marquees. The
1344 the screen in between blocks and have empty marquees. The
1234 ClearDemo and ClearIPDemo classes that use it are included.
1345 ClearDemo and ClearIPDemo classes that use it are included.
1235
1346
1236 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1347 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1237
1348
1238 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1349 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1239 protect against exceptions at Python shutdown time. Patch
1350 protect against exceptions at Python shutdown time. Patch
1240 sumbmitted to upstream.
1351 sumbmitted to upstream.
1241
1352
1242 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1353 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1243
1354
1244 * IPython/Extensions/ibrowse.py: If entering the first object level
1355 * IPython/Extensions/ibrowse.py: If entering the first object level
1245 (i.e. the object for which the browser has been started) fails,
1356 (i.e. the object for which the browser has been started) fails,
1246 now the error is raised directly (aborting the browser) instead of
1357 now the error is raised directly (aborting the browser) instead of
1247 running into an empty levels list later.
1358 running into an empty levels list later.
1248
1359
1249 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1360 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1250
1361
1251 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1362 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1252 for the noitem object.
1363 for the noitem object.
1253
1364
1254 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1365 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1255
1366
1256 * IPython/completer.py (Completer.attr_matches): Fix small
1367 * IPython/completer.py (Completer.attr_matches): Fix small
1257 tab-completion bug with Enthought Traits objects with units.
1368 tab-completion bug with Enthought Traits objects with units.
1258 Thanks to a bug report by Tom Denniston
1369 Thanks to a bug report by Tom Denniston
1259 <tom.denniston-AT-alum.dartmouth.org>.
1370 <tom.denniston-AT-alum.dartmouth.org>.
1260
1371
1261 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1372 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1262
1373
1263 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1374 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1264 bug where only .ipy or .py would be completed. Once the first
1375 bug where only .ipy or .py would be completed. Once the first
1265 argument to %run has been given, all completions are valid because
1376 argument to %run has been given, all completions are valid because
1266 they are the arguments to the script, which may well be non-python
1377 they are the arguments to the script, which may well be non-python
1267 filenames.
1378 filenames.
1268
1379
1269 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1380 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1270 to irunner to allow it to correctly support real doctesting of
1381 to irunner to allow it to correctly support real doctesting of
1271 out-of-process ipython code.
1382 out-of-process ipython code.
1272
1383
1273 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1384 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1274 title an option (-noterm_title) because it completely breaks
1385 title an option (-noterm_title) because it completely breaks
1275 doctesting.
1386 doctesting.
1276
1387
1277 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1388 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1278
1389
1279 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1390 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1280
1391
1281 * IPython/irunner.py (main): fix small bug where extensions were
1392 * IPython/irunner.py (main): fix small bug where extensions were
1282 not being correctly recognized.
1393 not being correctly recognized.
1283
1394
1284 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1395 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1285
1396
1286 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1397 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1287 a string containing a single line yields the string itself as the
1398 a string containing a single line yields the string itself as the
1288 only item.
1399 only item.
1289
1400
1290 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1401 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1291 object if it's the same as the one on the last level (This avoids
1402 object if it's the same as the one on the last level (This avoids
1292 infinite recursion for one line strings).
1403 infinite recursion for one line strings).
1293
1404
1294 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1405 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1295
1406
1296 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1407 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1297 all output streams before printing tracebacks. This ensures that
1408 all output streams before printing tracebacks. This ensures that
1298 user output doesn't end up interleaved with traceback output.
1409 user output doesn't end up interleaved with traceback output.
1299
1410
1300 2007-01-10 Ville Vainio <vivainio@gmail.com>
1411 2007-01-10 Ville Vainio <vivainio@gmail.com>
1301
1412
1302 * Extensions/envpersist.py: Turbocharged %env that remembers
1413 * Extensions/envpersist.py: Turbocharged %env that remembers
1303 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1414 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1304 "%env VISUAL=jed".
1415 "%env VISUAL=jed".
1305
1416
1306 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1417 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1307
1418
1308 * IPython/iplib.py (showtraceback): ensure that we correctly call
1419 * IPython/iplib.py (showtraceback): ensure that we correctly call
1309 custom handlers in all cases (some with pdb were slipping through,
1420 custom handlers in all cases (some with pdb were slipping through,
1310 but I'm not exactly sure why).
1421 but I'm not exactly sure why).
1311
1422
1312 * IPython/Debugger.py (Tracer.__init__): added new class to
1423 * IPython/Debugger.py (Tracer.__init__): added new class to
1313 support set_trace-like usage of IPython's enhanced debugger.
1424 support set_trace-like usage of IPython's enhanced debugger.
1314
1425
1315 2006-12-24 Ville Vainio <vivainio@gmail.com>
1426 2006-12-24 Ville Vainio <vivainio@gmail.com>
1316
1427
1317 * ipmaker.py: more informative message when ipy_user_conf
1428 * ipmaker.py: more informative message when ipy_user_conf
1318 import fails (suggest running %upgrade).
1429 import fails (suggest running %upgrade).
1319
1430
1320 * tools/run_ipy_in_profiler.py: Utility to see where
1431 * tools/run_ipy_in_profiler.py: Utility to see where
1321 the time during IPython startup is spent.
1432 the time during IPython startup is spent.
1322
1433
1323 2006-12-20 Ville Vainio <vivainio@gmail.com>
1434 2006-12-20 Ville Vainio <vivainio@gmail.com>
1324
1435
1325 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1436 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1326
1437
1327 * ipapi.py: Add new ipapi method, expand_alias.
1438 * ipapi.py: Add new ipapi method, expand_alias.
1328
1439
1329 * Release.py: Bump up version to 0.7.4.svn
1440 * Release.py: Bump up version to 0.7.4.svn
1330
1441
1331 2006-12-17 Ville Vainio <vivainio@gmail.com>
1442 2006-12-17 Ville Vainio <vivainio@gmail.com>
1332
1443
1333 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1444 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1334 to work properly on posix too
1445 to work properly on posix too
1335
1446
1336 * Release.py: Update revnum (version is still just 0.7.3).
1447 * Release.py: Update revnum (version is still just 0.7.3).
1337
1448
1338 2006-12-15 Ville Vainio <vivainio@gmail.com>
1449 2006-12-15 Ville Vainio <vivainio@gmail.com>
1339
1450
1340 * scripts/ipython_win_post_install: create ipython.py in
1451 * scripts/ipython_win_post_install: create ipython.py in
1341 prefix + "/scripts".
1452 prefix + "/scripts".
1342
1453
1343 * Release.py: Update version to 0.7.3.
1454 * Release.py: Update version to 0.7.3.
1344
1455
1345 2006-12-14 Ville Vainio <vivainio@gmail.com>
1456 2006-12-14 Ville Vainio <vivainio@gmail.com>
1346
1457
1347 * scripts/ipython_win_post_install: Overwrite old shortcuts
1458 * scripts/ipython_win_post_install: Overwrite old shortcuts
1348 if they already exist
1459 if they already exist
1349
1460
1350 * Release.py: release 0.7.3rc2
1461 * Release.py: release 0.7.3rc2
1351
1462
1352 2006-12-13 Ville Vainio <vivainio@gmail.com>
1463 2006-12-13 Ville Vainio <vivainio@gmail.com>
1353
1464
1354 * Branch and update Release.py for 0.7.3rc1
1465 * Branch and update Release.py for 0.7.3rc1
1355
1466
1356 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1467 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1357
1468
1358 * IPython/Shell.py (IPShellWX): update for current WX naming
1469 * IPython/Shell.py (IPShellWX): update for current WX naming
1359 conventions, to avoid a deprecation warning with current WX
1470 conventions, to avoid a deprecation warning with current WX
1360 versions. Thanks to a report by Danny Shevitz.
1471 versions. Thanks to a report by Danny Shevitz.
1361
1472
1362 2006-12-12 Ville Vainio <vivainio@gmail.com>
1473 2006-12-12 Ville Vainio <vivainio@gmail.com>
1363
1474
1364 * ipmaker.py: apply david cournapeau's patch to make
1475 * ipmaker.py: apply david cournapeau's patch to make
1365 import_some work properly even when ipythonrc does
1476 import_some work properly even when ipythonrc does
1366 import_some on empty list (it was an old bug!).
1477 import_some on empty list (it was an old bug!).
1367
1478
1368 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1479 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1369 Add deprecation note to ipythonrc and a url to wiki
1480 Add deprecation note to ipythonrc and a url to wiki
1370 in ipy_user_conf.py
1481 in ipy_user_conf.py
1371
1482
1372
1483
1373 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1484 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1374 as if it was typed on IPython command prompt, i.e.
1485 as if it was typed on IPython command prompt, i.e.
1375 as IPython script.
1486 as IPython script.
1376
1487
1377 * example-magic.py, magic_grepl.py: remove outdated examples
1488 * example-magic.py, magic_grepl.py: remove outdated examples
1378
1489
1379 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1490 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1380
1491
1381 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1492 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1382 is called before any exception has occurred.
1493 is called before any exception has occurred.
1383
1494
1384 2006-12-08 Ville Vainio <vivainio@gmail.com>
1495 2006-12-08 Ville Vainio <vivainio@gmail.com>
1385
1496
1386 * Extensions/ipy_stock_completers.py: fix cd completer
1497 * Extensions/ipy_stock_completers.py: fix cd completer
1387 to translate /'s to \'s again.
1498 to translate /'s to \'s again.
1388
1499
1389 * completer.py: prevent traceback on file completions w/
1500 * completer.py: prevent traceback on file completions w/
1390 backslash.
1501 backslash.
1391
1502
1392 * Release.py: Update release number to 0.7.3b3 for release
1503 * Release.py: Update release number to 0.7.3b3 for release
1393
1504
1394 2006-12-07 Ville Vainio <vivainio@gmail.com>
1505 2006-12-07 Ville Vainio <vivainio@gmail.com>
1395
1506
1396 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1507 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1397 while executing external code. Provides more shell-like behaviour
1508 while executing external code. Provides more shell-like behaviour
1398 and overall better response to ctrl + C / ctrl + break.
1509 and overall better response to ctrl + C / ctrl + break.
1399
1510
1400 * tools/make_tarball.py: new script to create tarball straight from svn
1511 * tools/make_tarball.py: new script to create tarball straight from svn
1401 (setup.py sdist doesn't work on win32).
1512 (setup.py sdist doesn't work on win32).
1402
1513
1403 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1514 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1404 on dirnames with spaces and use the default completer instead.
1515 on dirnames with spaces and use the default completer instead.
1405
1516
1406 * Revision.py: Change version to 0.7.3b2 for release.
1517 * Revision.py: Change version to 0.7.3b2 for release.
1407
1518
1408 2006-12-05 Ville Vainio <vivainio@gmail.com>
1519 2006-12-05 Ville Vainio <vivainio@gmail.com>
1409
1520
1410 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1521 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1411 pydb patch 4 (rm debug printing, py 2.5 checking)
1522 pydb patch 4 (rm debug printing, py 2.5 checking)
1412
1523
1413 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1524 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1414 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1525 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1415 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1526 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1416 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1527 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1417 object the cursor was on before the refresh. The command "markrange" is
1528 object the cursor was on before the refresh. The command "markrange" is
1418 mapped to "%" now.
1529 mapped to "%" now.
1419 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1530 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1420
1531
1421 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1532 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1422
1533
1423 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1534 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1424 interactive debugger on the last traceback, without having to call
1535 interactive debugger on the last traceback, without having to call
1425 %pdb and rerun your code. Made minor changes in various modules,
1536 %pdb and rerun your code. Made minor changes in various modules,
1426 should automatically recognize pydb if available.
1537 should automatically recognize pydb if available.
1427
1538
1428 2006-11-28 Ville Vainio <vivainio@gmail.com>
1539 2006-11-28 Ville Vainio <vivainio@gmail.com>
1429
1540
1430 * completer.py: If the text start with !, show file completions
1541 * completer.py: If the text start with !, show file completions
1431 properly. This helps when trying to complete command name
1542 properly. This helps when trying to complete command name
1432 for shell escapes.
1543 for shell escapes.
1433
1544
1434 2006-11-27 Ville Vainio <vivainio@gmail.com>
1545 2006-11-27 Ville Vainio <vivainio@gmail.com>
1435
1546
1436 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1547 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1437 der Walt. Clean up svn and hg completers by using a common
1548 der Walt. Clean up svn and hg completers by using a common
1438 vcs_completer.
1549 vcs_completer.
1439
1550
1440 2006-11-26 Ville Vainio <vivainio@gmail.com>
1551 2006-11-26 Ville Vainio <vivainio@gmail.com>
1441
1552
1442 * Remove ipconfig and %config; you should use _ip.options structure
1553 * Remove ipconfig and %config; you should use _ip.options structure
1443 directly instead!
1554 directly instead!
1444
1555
1445 * genutils.py: add wrap_deprecated function for deprecating callables
1556 * genutils.py: add wrap_deprecated function for deprecating callables
1446
1557
1447 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1558 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1448 _ip.system instead. ipalias is redundant.
1559 _ip.system instead. ipalias is redundant.
1449
1560
1450 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1561 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1451 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1562 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1452 explicit.
1563 explicit.
1453
1564
1454 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1565 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1455 completer. Try it by entering 'hg ' and pressing tab.
1566 completer. Try it by entering 'hg ' and pressing tab.
1456
1567
1457 * macro.py: Give Macro a useful __repr__ method
1568 * macro.py: Give Macro a useful __repr__ method
1458
1569
1459 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1570 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1460
1571
1461 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1572 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1462 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1573 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1463 we don't get a duplicate ipipe module, where registration of the xrepr
1574 we don't get a duplicate ipipe module, where registration of the xrepr
1464 implementation for Text is useless.
1575 implementation for Text is useless.
1465
1576
1466 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1577 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1467
1578
1468 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1579 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1469
1580
1470 2006-11-24 Ville Vainio <vivainio@gmail.com>
1581 2006-11-24 Ville Vainio <vivainio@gmail.com>
1471
1582
1472 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1583 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1473 try to use "cProfile" instead of the slower pure python
1584 try to use "cProfile" instead of the slower pure python
1474 "profile"
1585 "profile"
1475
1586
1476 2006-11-23 Ville Vainio <vivainio@gmail.com>
1587 2006-11-23 Ville Vainio <vivainio@gmail.com>
1477
1588
1478 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1589 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1479 Qt+IPython+Designer link in documentation.
1590 Qt+IPython+Designer link in documentation.
1480
1591
1481 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1592 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1482 correct Pdb object to %pydb.
1593 correct Pdb object to %pydb.
1483
1594
1484
1595
1485 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1596 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1486 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1597 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1487 generic xrepr(), otherwise the list implementation would kick in.
1598 generic xrepr(), otherwise the list implementation would kick in.
1488
1599
1489 2006-11-21 Ville Vainio <vivainio@gmail.com>
1600 2006-11-21 Ville Vainio <vivainio@gmail.com>
1490
1601
1491 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1602 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1492 with one from UserConfig.
1603 with one from UserConfig.
1493
1604
1494 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1605 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1495 it was missing which broke the sh profile.
1606 it was missing which broke the sh profile.
1496
1607
1497 * completer.py: file completer now uses explicit '/' instead
1608 * completer.py: file completer now uses explicit '/' instead
1498 of os.path.join, expansion of 'foo' was broken on win32
1609 of os.path.join, expansion of 'foo' was broken on win32
1499 if there was one directory with name 'foobar'.
1610 if there was one directory with name 'foobar'.
1500
1611
1501 * A bunch of patches from Kirill Smelkov:
1612 * A bunch of patches from Kirill Smelkov:
1502
1613
1503 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1614 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1504
1615
1505 * [patch 7/9] Implement %page -r (page in raw mode) -
1616 * [patch 7/9] Implement %page -r (page in raw mode) -
1506
1617
1507 * [patch 5/9] ScientificPython webpage has moved
1618 * [patch 5/9] ScientificPython webpage has moved
1508
1619
1509 * [patch 4/9] The manual mentions %ds, should be %dhist
1620 * [patch 4/9] The manual mentions %ds, should be %dhist
1510
1621
1511 * [patch 3/9] Kill old bits from %prun doc.
1622 * [patch 3/9] Kill old bits from %prun doc.
1512
1623
1513 * [patch 1/9] Fix typos here and there.
1624 * [patch 1/9] Fix typos here and there.
1514
1625
1515 2006-11-08 Ville Vainio <vivainio@gmail.com>
1626 2006-11-08 Ville Vainio <vivainio@gmail.com>
1516
1627
1517 * completer.py (attr_matches): catch all exceptions raised
1628 * completer.py (attr_matches): catch all exceptions raised
1518 by eval of expr with dots.
1629 by eval of expr with dots.
1519
1630
1520 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1631 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1521
1632
1522 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1633 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1523 input if it starts with whitespace. This allows you to paste
1634 input if it starts with whitespace. This allows you to paste
1524 indented input from any editor without manually having to type in
1635 indented input from any editor without manually having to type in
1525 the 'if 1:', which is convenient when working interactively.
1636 the 'if 1:', which is convenient when working interactively.
1526 Slightly modifed version of a patch by Bo Peng
1637 Slightly modifed version of a patch by Bo Peng
1527 <bpeng-AT-rice.edu>.
1638 <bpeng-AT-rice.edu>.
1528
1639
1529 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1640 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1530
1641
1531 * IPython/irunner.py (main): modified irunner so it automatically
1642 * IPython/irunner.py (main): modified irunner so it automatically
1532 recognizes the right runner to use based on the extension (.py for
1643 recognizes the right runner to use based on the extension (.py for
1533 python, .ipy for ipython and .sage for sage).
1644 python, .ipy for ipython and .sage for sage).
1534
1645
1535 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1646 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1536 visible in ipapi as ip.config(), to programatically control the
1647 visible in ipapi as ip.config(), to programatically control the
1537 internal rc object. There's an accompanying %config magic for
1648 internal rc object. There's an accompanying %config magic for
1538 interactive use, which has been enhanced to match the
1649 interactive use, which has been enhanced to match the
1539 funtionality in ipconfig.
1650 funtionality in ipconfig.
1540
1651
1541 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1652 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1542 so it's not just a toggle, it now takes an argument. Add support
1653 so it's not just a toggle, it now takes an argument. Add support
1543 for a customizable header when making system calls, as the new
1654 for a customizable header when making system calls, as the new
1544 system_header variable in the ipythonrc file.
1655 system_header variable in the ipythonrc file.
1545
1656
1546 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1657 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1547
1658
1548 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1659 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1549 generic functions (using Philip J. Eby's simplegeneric package).
1660 generic functions (using Philip J. Eby's simplegeneric package).
1550 This makes it possible to customize the display of third-party classes
1661 This makes it possible to customize the display of third-party classes
1551 without having to monkeypatch them. xiter() no longer supports a mode
1662 without having to monkeypatch them. xiter() no longer supports a mode
1552 argument and the XMode class has been removed. The same functionality can
1663 argument and the XMode class has been removed. The same functionality can
1553 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1664 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1554 One consequence of the switch to generic functions is that xrepr() and
1665 One consequence of the switch to generic functions is that xrepr() and
1555 xattrs() implementation must define the default value for the mode
1666 xattrs() implementation must define the default value for the mode
1556 argument themselves and xattrs() implementations must return real
1667 argument themselves and xattrs() implementations must return real
1557 descriptors.
1668 descriptors.
1558
1669
1559 * IPython/external: This new subpackage will contain all third-party
1670 * IPython/external: This new subpackage will contain all third-party
1560 packages that are bundled with IPython. (The first one is simplegeneric).
1671 packages that are bundled with IPython. (The first one is simplegeneric).
1561
1672
1562 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1673 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1563 directory which as been dropped in r1703.
1674 directory which as been dropped in r1703.
1564
1675
1565 * IPython/Extensions/ipipe.py (iless): Fixed.
1676 * IPython/Extensions/ipipe.py (iless): Fixed.
1566
1677
1567 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1678 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1568
1679
1569 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1680 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1570
1681
1571 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1682 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1572 handling in variable expansion so that shells and magics recognize
1683 handling in variable expansion so that shells and magics recognize
1573 function local scopes correctly. Bug reported by Brian.
1684 function local scopes correctly. Bug reported by Brian.
1574
1685
1575 * scripts/ipython: remove the very first entry in sys.path which
1686 * scripts/ipython: remove the very first entry in sys.path which
1576 Python auto-inserts for scripts, so that sys.path under IPython is
1687 Python auto-inserts for scripts, so that sys.path under IPython is
1577 as similar as possible to that under plain Python.
1688 as similar as possible to that under plain Python.
1578
1689
1579 * IPython/completer.py (IPCompleter.file_matches): Fix
1690 * IPython/completer.py (IPCompleter.file_matches): Fix
1580 tab-completion so that quotes are not closed unless the completion
1691 tab-completion so that quotes are not closed unless the completion
1581 is unambiguous. After a request by Stefan. Minor cleanups in
1692 is unambiguous. After a request by Stefan. Minor cleanups in
1582 ipy_stock_completers.
1693 ipy_stock_completers.
1583
1694
1584 2006-11-02 Ville Vainio <vivainio@gmail.com>
1695 2006-11-02 Ville Vainio <vivainio@gmail.com>
1585
1696
1586 * ipy_stock_completers.py: Add %run and %cd completers.
1697 * ipy_stock_completers.py: Add %run and %cd completers.
1587
1698
1588 * completer.py: Try running custom completer for both
1699 * completer.py: Try running custom completer for both
1589 "foo" and "%foo" if the command is just "foo". Ignore case
1700 "foo" and "%foo" if the command is just "foo". Ignore case
1590 when filtering possible completions.
1701 when filtering possible completions.
1591
1702
1592 * UserConfig/ipy_user_conf.py: install stock completers as default
1703 * UserConfig/ipy_user_conf.py: install stock completers as default
1593
1704
1594 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1705 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1595 simplified readline history save / restore through a wrapper
1706 simplified readline history save / restore through a wrapper
1596 function
1707 function
1597
1708
1598
1709
1599 2006-10-31 Ville Vainio <vivainio@gmail.com>
1710 2006-10-31 Ville Vainio <vivainio@gmail.com>
1600
1711
1601 * strdispatch.py, completer.py, ipy_stock_completers.py:
1712 * strdispatch.py, completer.py, ipy_stock_completers.py:
1602 Allow str_key ("command") in completer hooks. Implement
1713 Allow str_key ("command") in completer hooks. Implement
1603 trivial completer for 'import' (stdlib modules only). Rename
1714 trivial completer for 'import' (stdlib modules only). Rename
1604 ipy_linux_package_managers.py to ipy_stock_completers.py.
1715 ipy_linux_package_managers.py to ipy_stock_completers.py.
1605 SVN completer.
1716 SVN completer.
1606
1717
1607 * Extensions/ledit.py: %magic line editor for easily and
1718 * Extensions/ledit.py: %magic line editor for easily and
1608 incrementally manipulating lists of strings. The magic command
1719 incrementally manipulating lists of strings. The magic command
1609 name is %led.
1720 name is %led.
1610
1721
1611 2006-10-30 Ville Vainio <vivainio@gmail.com>
1722 2006-10-30 Ville Vainio <vivainio@gmail.com>
1612
1723
1613 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1724 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1614 Bernsteins's patches for pydb integration.
1725 Bernsteins's patches for pydb integration.
1615 http://bashdb.sourceforge.net/pydb/
1726 http://bashdb.sourceforge.net/pydb/
1616
1727
1617 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1728 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1618 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1729 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1619 custom completer hook to allow the users to implement their own
1730 custom completer hook to allow the users to implement their own
1620 completers. See ipy_linux_package_managers.py for example. The
1731 completers. See ipy_linux_package_managers.py for example. The
1621 hook name is 'complete_command'.
1732 hook name is 'complete_command'.
1622
1733
1623 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1734 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1624
1735
1625 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1736 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1626 Numeric leftovers.
1737 Numeric leftovers.
1627
1738
1628 * ipython.el (py-execute-region): apply Stefan's patch to fix
1739 * ipython.el (py-execute-region): apply Stefan's patch to fix
1629 garbled results if the python shell hasn't been previously started.
1740 garbled results if the python shell hasn't been previously started.
1630
1741
1631 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1742 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1632 pretty generic function and useful for other things.
1743 pretty generic function and useful for other things.
1633
1744
1634 * IPython/OInspect.py (getsource): Add customizable source
1745 * IPython/OInspect.py (getsource): Add customizable source
1635 extractor. After a request/patch form W. Stein (SAGE).
1746 extractor. After a request/patch form W. Stein (SAGE).
1636
1747
1637 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1748 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1638 window size to a more reasonable value from what pexpect does,
1749 window size to a more reasonable value from what pexpect does,
1639 since their choice causes wrapping bugs with long input lines.
1750 since their choice causes wrapping bugs with long input lines.
1640
1751
1641 2006-10-28 Ville Vainio <vivainio@gmail.com>
1752 2006-10-28 Ville Vainio <vivainio@gmail.com>
1642
1753
1643 * Magic.py (%run): Save and restore the readline history from
1754 * Magic.py (%run): Save and restore the readline history from
1644 file around %run commands to prevent side effects from
1755 file around %run commands to prevent side effects from
1645 %runned programs that might use readline (e.g. pydb).
1756 %runned programs that might use readline (e.g. pydb).
1646
1757
1647 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1758 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1648 invoking the pydb enhanced debugger.
1759 invoking the pydb enhanced debugger.
1649
1760
1650 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1761 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1651
1762
1652 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1763 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1653 call the base class method and propagate the return value to
1764 call the base class method and propagate the return value to
1654 ifile. This is now done by path itself.
1765 ifile. This is now done by path itself.
1655
1766
1656 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1767 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1657
1768
1658 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1769 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1659 api: set_crash_handler(), to expose the ability to change the
1770 api: set_crash_handler(), to expose the ability to change the
1660 internal crash handler.
1771 internal crash handler.
1661
1772
1662 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1773 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1663 the various parameters of the crash handler so that apps using
1774 the various parameters of the crash handler so that apps using
1664 IPython as their engine can customize crash handling. Ipmlemented
1775 IPython as their engine can customize crash handling. Ipmlemented
1665 at the request of SAGE.
1776 at the request of SAGE.
1666
1777
1667 2006-10-14 Ville Vainio <vivainio@gmail.com>
1778 2006-10-14 Ville Vainio <vivainio@gmail.com>
1668
1779
1669 * Magic.py, ipython.el: applied first "safe" part of Rocky
1780 * Magic.py, ipython.el: applied first "safe" part of Rocky
1670 Bernstein's patch set for pydb integration.
1781 Bernstein's patch set for pydb integration.
1671
1782
1672 * Magic.py (%unalias, %alias): %store'd aliases can now be
1783 * Magic.py (%unalias, %alias): %store'd aliases can now be
1673 removed with '%unalias'. %alias w/o args now shows most
1784 removed with '%unalias'. %alias w/o args now shows most
1674 interesting (stored / manually defined) aliases last
1785 interesting (stored / manually defined) aliases last
1675 where they catch the eye w/o scrolling.
1786 where they catch the eye w/o scrolling.
1676
1787
1677 * Magic.py (%rehashx), ext_rehashdir.py: files with
1788 * Magic.py (%rehashx), ext_rehashdir.py: files with
1678 'py' extension are always considered executable, even
1789 'py' extension are always considered executable, even
1679 when not in PATHEXT environment variable.
1790 when not in PATHEXT environment variable.
1680
1791
1681 2006-10-12 Ville Vainio <vivainio@gmail.com>
1792 2006-10-12 Ville Vainio <vivainio@gmail.com>
1682
1793
1683 * jobctrl.py: Add new "jobctrl" extension for spawning background
1794 * jobctrl.py: Add new "jobctrl" extension for spawning background
1684 processes with "&find /". 'import jobctrl' to try it out. Requires
1795 processes with "&find /". 'import jobctrl' to try it out. Requires
1685 'subprocess' module, standard in python 2.4+.
1796 'subprocess' module, standard in python 2.4+.
1686
1797
1687 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1798 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1688 so if foo -> bar and bar -> baz, then foo -> baz.
1799 so if foo -> bar and bar -> baz, then foo -> baz.
1689
1800
1690 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1801 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1691
1802
1692 * IPython/Magic.py (Magic.parse_options): add a new posix option
1803 * IPython/Magic.py (Magic.parse_options): add a new posix option
1693 to allow parsing of input args in magics that doesn't strip quotes
1804 to allow parsing of input args in magics that doesn't strip quotes
1694 (if posix=False). This also closes %timeit bug reported by
1805 (if posix=False). This also closes %timeit bug reported by
1695 Stefan.
1806 Stefan.
1696
1807
1697 2006-10-03 Ville Vainio <vivainio@gmail.com>
1808 2006-10-03 Ville Vainio <vivainio@gmail.com>
1698
1809
1699 * iplib.py (raw_input, interact): Return ValueError catching for
1810 * iplib.py (raw_input, interact): Return ValueError catching for
1700 raw_input. Fixes infinite loop for sys.stdin.close() or
1811 raw_input. Fixes infinite loop for sys.stdin.close() or
1701 sys.stdout.close().
1812 sys.stdout.close().
1702
1813
1703 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1814 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1704
1815
1705 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1816 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1706 to help in handling doctests. irunner is now pretty useful for
1817 to help in handling doctests. irunner is now pretty useful for
1707 running standalone scripts and simulate a full interactive session
1818 running standalone scripts and simulate a full interactive session
1708 in a format that can be then pasted as a doctest.
1819 in a format that can be then pasted as a doctest.
1709
1820
1710 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1821 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1711 on top of the default (useless) ones. This also fixes the nasty
1822 on top of the default (useless) ones. This also fixes the nasty
1712 way in which 2.5's Quitter() exits (reverted [1785]).
1823 way in which 2.5's Quitter() exits (reverted [1785]).
1713
1824
1714 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1825 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1715 2.5.
1826 2.5.
1716
1827
1717 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1828 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1718 color scheme is updated as well when color scheme is changed
1829 color scheme is updated as well when color scheme is changed
1719 interactively.
1830 interactively.
1720
1831
1721 2006-09-27 Ville Vainio <vivainio@gmail.com>
1832 2006-09-27 Ville Vainio <vivainio@gmail.com>
1722
1833
1723 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1834 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1724 infinite loop and just exit. It's a hack, but will do for a while.
1835 infinite loop and just exit. It's a hack, but will do for a while.
1725
1836
1726 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1837 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1727
1838
1728 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1839 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1729 the constructor, this makes it possible to get a list of only directories
1840 the constructor, this makes it possible to get a list of only directories
1730 or only files.
1841 or only files.
1731
1842
1732 2006-08-12 Ville Vainio <vivainio@gmail.com>
1843 2006-08-12 Ville Vainio <vivainio@gmail.com>
1733
1844
1734 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1845 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1735 they broke unittest
1846 they broke unittest
1736
1847
1737 2006-08-11 Ville Vainio <vivainio@gmail.com>
1848 2006-08-11 Ville Vainio <vivainio@gmail.com>
1738
1849
1739 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1850 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1740 by resolving issue properly, i.e. by inheriting FakeModule
1851 by resolving issue properly, i.e. by inheriting FakeModule
1741 from types.ModuleType. Pickling ipython interactive data
1852 from types.ModuleType. Pickling ipython interactive data
1742 should still work as usual (testing appreciated).
1853 should still work as usual (testing appreciated).
1743
1854
1744 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1855 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1745
1856
1746 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1857 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1747 running under python 2.3 with code from 2.4 to fix a bug with
1858 running under python 2.3 with code from 2.4 to fix a bug with
1748 help(). Reported by the Debian maintainers, Norbert Tretkowski
1859 help(). Reported by the Debian maintainers, Norbert Tretkowski
1749 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1860 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1750 <afayolle-AT-debian.org>.
1861 <afayolle-AT-debian.org>.
1751
1862
1752 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1863 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1753
1864
1754 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1865 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1755 (which was displaying "quit" twice).
1866 (which was displaying "quit" twice).
1756
1867
1757 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1868 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1758
1869
1759 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1870 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1760 the mode argument).
1871 the mode argument).
1761
1872
1762 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1873 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1763
1874
1764 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1875 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1765 not running under IPython.
1876 not running under IPython.
1766
1877
1767 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1878 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1768 and make it iterable (iterating over the attribute itself). Add two new
1879 and make it iterable (iterating over the attribute itself). Add two new
1769 magic strings for __xattrs__(): If the string starts with "-", the attribute
1880 magic strings for __xattrs__(): If the string starts with "-", the attribute
1770 will not be displayed in ibrowse's detail view (but it can still be
1881 will not be displayed in ibrowse's detail view (but it can still be
1771 iterated over). This makes it possible to add attributes that are large
1882 iterated over). This makes it possible to add attributes that are large
1772 lists or generator methods to the detail view. Replace magic attribute names
1883 lists or generator methods to the detail view. Replace magic attribute names
1773 and _attrname() and _getattr() with "descriptors": For each type of magic
1884 and _attrname() and _getattr() with "descriptors": For each type of magic
1774 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1885 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1775 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1886 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1776 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1887 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1777 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1888 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1778 are still supported.
1889 are still supported.
1779
1890
1780 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1891 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1781 fails in ibrowse.fetch(), the exception object is added as the last item
1892 fails in ibrowse.fetch(), the exception object is added as the last item
1782 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1893 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1783 a generator throws an exception midway through execution.
1894 a generator throws an exception midway through execution.
1784
1895
1785 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1896 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1786 encoding into methods.
1897 encoding into methods.
1787
1898
1788 2006-07-26 Ville Vainio <vivainio@gmail.com>
1899 2006-07-26 Ville Vainio <vivainio@gmail.com>
1789
1900
1790 * iplib.py: history now stores multiline input as single
1901 * iplib.py: history now stores multiline input as single
1791 history entries. Patch by Jorgen Cederlof.
1902 history entries. Patch by Jorgen Cederlof.
1792
1903
1793 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1904 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1794
1905
1795 * IPython/Extensions/ibrowse.py: Make cursor visible over
1906 * IPython/Extensions/ibrowse.py: Make cursor visible over
1796 non existing attributes.
1907 non existing attributes.
1797
1908
1798 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1909 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1799
1910
1800 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1911 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1801 error output of the running command doesn't mess up the screen.
1912 error output of the running command doesn't mess up the screen.
1802
1913
1803 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1914 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1804
1915
1805 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1916 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1806 argument. This sorts the items themselves.
1917 argument. This sorts the items themselves.
1807
1918
1808 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1919 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1809
1920
1810 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1921 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1811 Compile expression strings into code objects. This should speed
1922 Compile expression strings into code objects. This should speed
1812 up ifilter and friends somewhat.
1923 up ifilter and friends somewhat.
1813
1924
1814 2006-07-08 Ville Vainio <vivainio@gmail.com>
1925 2006-07-08 Ville Vainio <vivainio@gmail.com>
1815
1926
1816 * Magic.py: %cpaste now strips > from the beginning of lines
1927 * Magic.py: %cpaste now strips > from the beginning of lines
1817 to ease pasting quoted code from emails. Contributed by
1928 to ease pasting quoted code from emails. Contributed by
1818 Stefan van der Walt.
1929 Stefan van der Walt.
1819
1930
1820 2006-06-29 Ville Vainio <vivainio@gmail.com>
1931 2006-06-29 Ville Vainio <vivainio@gmail.com>
1821
1932
1822 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1933 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1823 mode, patch contributed by Darren Dale. NEEDS TESTING!
1934 mode, patch contributed by Darren Dale. NEEDS TESTING!
1824
1935
1825 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1936 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1826
1937
1827 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1938 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1828 a blue background. Fix fetching new display rows when the browser
1939 a blue background. Fix fetching new display rows when the browser
1829 scrolls more than a screenful (e.g. by using the goto command).
1940 scrolls more than a screenful (e.g. by using the goto command).
1830
1941
1831 2006-06-27 Ville Vainio <vivainio@gmail.com>
1942 2006-06-27 Ville Vainio <vivainio@gmail.com>
1832
1943
1833 * Magic.py (_inspect, _ofind) Apply David Huard's
1944 * Magic.py (_inspect, _ofind) Apply David Huard's
1834 patch for displaying the correct docstring for 'property'
1945 patch for displaying the correct docstring for 'property'
1835 attributes.
1946 attributes.
1836
1947
1837 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1948 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1838
1949
1839 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1950 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1840 commands into the methods implementing them.
1951 commands into the methods implementing them.
1841
1952
1842 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1953 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1843
1954
1844 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1955 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1845 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1956 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1846 autoindent support was authored by Jin Liu.
1957 autoindent support was authored by Jin Liu.
1847
1958
1848 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1959 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1849
1960
1850 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1961 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1851 for keymaps with a custom class that simplifies handling.
1962 for keymaps with a custom class that simplifies handling.
1852
1963
1853 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1964 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1854
1965
1855 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1966 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1856 resizing. This requires Python 2.5 to work.
1967 resizing. This requires Python 2.5 to work.
1857
1968
1858 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1969 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1859
1970
1860 * IPython/Extensions/ibrowse.py: Add two new commands to
1971 * IPython/Extensions/ibrowse.py: Add two new commands to
1861 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1972 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1862 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1973 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1863 attributes again. Remapped the help command to "?". Display
1974 attributes again. Remapped the help command to "?". Display
1864 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1975 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1865 as keys for the "home" and "end" commands. Add three new commands
1976 as keys for the "home" and "end" commands. Add three new commands
1866 to the input mode for "find" and friends: "delend" (CTRL-K)
1977 to the input mode for "find" and friends: "delend" (CTRL-K)
1867 deletes to the end of line. "incsearchup" searches upwards in the
1978 deletes to the end of line. "incsearchup" searches upwards in the
1868 command history for an input that starts with the text before the cursor.
1979 command history for an input that starts with the text before the cursor.
1869 "incsearchdown" does the same downwards. Removed a bogus mapping of
1980 "incsearchdown" does the same downwards. Removed a bogus mapping of
1870 the x key to "delete".
1981 the x key to "delete".
1871
1982
1872 2006-06-15 Ville Vainio <vivainio@gmail.com>
1983 2006-06-15 Ville Vainio <vivainio@gmail.com>
1873
1984
1874 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1985 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1875 used to create prompts dynamically, instead of the "old" way of
1986 used to create prompts dynamically, instead of the "old" way of
1876 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1987 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1877 way still works (it's invoked by the default hook), of course.
1988 way still works (it's invoked by the default hook), of course.
1878
1989
1879 * Prompts.py: added generate_output_prompt hook for altering output
1990 * Prompts.py: added generate_output_prompt hook for altering output
1880 prompt
1991 prompt
1881
1992
1882 * Release.py: Changed version string to 0.7.3.svn.
1993 * Release.py: Changed version string to 0.7.3.svn.
1883
1994
1884 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1995 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1885
1996
1886 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1997 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1887 the call to fetch() always tries to fetch enough data for at least one
1998 the call to fetch() always tries to fetch enough data for at least one
1888 full screen. This makes it possible to simply call moveto(0,0,True) in
1999 full screen. This makes it possible to simply call moveto(0,0,True) in
1889 the constructor. Fix typos and removed the obsolete goto attribute.
2000 the constructor. Fix typos and removed the obsolete goto attribute.
1890
2001
1891 2006-06-12 Ville Vainio <vivainio@gmail.com>
2002 2006-06-12 Ville Vainio <vivainio@gmail.com>
1892
2003
1893 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2004 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1894 allowing $variable interpolation within multiline statements,
2005 allowing $variable interpolation within multiline statements,
1895 though so far only with "sh" profile for a testing period.
2006 though so far only with "sh" profile for a testing period.
1896 The patch also enables splitting long commands with \ but it
2007 The patch also enables splitting long commands with \ but it
1897 doesn't work properly yet.
2008 doesn't work properly yet.
1898
2009
1899 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2010 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1900
2011
1901 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2012 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1902 input history and the position of the cursor in the input history for
2013 input history and the position of the cursor in the input history for
1903 the find, findbackwards and goto command.
2014 the find, findbackwards and goto command.
1904
2015
1905 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2016 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1906
2017
1907 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2018 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1908 implements the basic functionality of browser commands that require
2019 implements the basic functionality of browser commands that require
1909 input. Reimplement the goto, find and findbackwards commands as
2020 input. Reimplement the goto, find and findbackwards commands as
1910 subclasses of _CommandInput. Add an input history and keymaps to those
2021 subclasses of _CommandInput. Add an input history and keymaps to those
1911 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2022 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1912 execute commands.
2023 execute commands.
1913
2024
1914 2006-06-07 Ville Vainio <vivainio@gmail.com>
2025 2006-06-07 Ville Vainio <vivainio@gmail.com>
1915
2026
1916 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2027 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1917 running the batch files instead of leaving the session open.
2028 running the batch files instead of leaving the session open.
1918
2029
1919 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2030 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1920
2031
1921 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2032 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1922 the original fix was incomplete. Patch submitted by W. Maier.
2033 the original fix was incomplete. Patch submitted by W. Maier.
1923
2034
1924 2006-06-07 Ville Vainio <vivainio@gmail.com>
2035 2006-06-07 Ville Vainio <vivainio@gmail.com>
1925
2036
1926 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2037 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1927 Confirmation prompts can be supressed by 'quiet' option.
2038 Confirmation prompts can be supressed by 'quiet' option.
1928 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2039 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1929
2040
1930 2006-06-06 *** Released version 0.7.2
2041 2006-06-06 *** Released version 0.7.2
1931
2042
1932 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2043 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1933
2044
1934 * IPython/Release.py (version): Made 0.7.2 final for release.
2045 * IPython/Release.py (version): Made 0.7.2 final for release.
1935 Repo tagged and release cut.
2046 Repo tagged and release cut.
1936
2047
1937 2006-06-05 Ville Vainio <vivainio@gmail.com>
2048 2006-06-05 Ville Vainio <vivainio@gmail.com>
1938
2049
1939 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2050 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1940 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2051 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1941
2052
1942 * upgrade_dir.py: try import 'path' module a bit harder
2053 * upgrade_dir.py: try import 'path' module a bit harder
1943 (for %upgrade)
2054 (for %upgrade)
1944
2055
1945 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2056 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1946
2057
1947 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2058 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1948 instead of looping 20 times.
2059 instead of looping 20 times.
1949
2060
1950 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2061 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1951 correctly at initialization time. Bug reported by Krishna Mohan
2062 correctly at initialization time. Bug reported by Krishna Mohan
1952 Gundu <gkmohan-AT-gmail.com> on the user list.
2063 Gundu <gkmohan-AT-gmail.com> on the user list.
1953
2064
1954 * IPython/Release.py (version): Mark 0.7.2 version to start
2065 * IPython/Release.py (version): Mark 0.7.2 version to start
1955 testing for release on 06/06.
2066 testing for release on 06/06.
1956
2067
1957 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2068 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1958
2069
1959 * scripts/irunner: thin script interface so users don't have to
2070 * scripts/irunner: thin script interface so users don't have to
1960 find the module and call it as an executable, since modules rarely
2071 find the module and call it as an executable, since modules rarely
1961 live in people's PATH.
2072 live in people's PATH.
1962
2073
1963 * IPython/irunner.py (InteractiveRunner.__init__): added
2074 * IPython/irunner.py (InteractiveRunner.__init__): added
1964 delaybeforesend attribute to control delays with newer versions of
2075 delaybeforesend attribute to control delays with newer versions of
1965 pexpect. Thanks to detailed help from pexpect's author, Noah
2076 pexpect. Thanks to detailed help from pexpect's author, Noah
1966 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2077 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1967 correctly (it works in NoColor mode).
2078 correctly (it works in NoColor mode).
1968
2079
1969 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2080 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1970 SAGE list, from improper log() calls.
2081 SAGE list, from improper log() calls.
1971
2082
1972 2006-05-31 Ville Vainio <vivainio@gmail.com>
2083 2006-05-31 Ville Vainio <vivainio@gmail.com>
1973
2084
1974 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2085 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1975 with args in parens to work correctly with dirs that have spaces.
2086 with args in parens to work correctly with dirs that have spaces.
1976
2087
1977 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2088 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1978
2089
1979 * IPython/Logger.py (Logger.logstart): add option to log raw input
2090 * IPython/Logger.py (Logger.logstart): add option to log raw input
1980 instead of the processed one. A -r flag was added to the
2091 instead of the processed one. A -r flag was added to the
1981 %logstart magic used for controlling logging.
2092 %logstart magic used for controlling logging.
1982
2093
1983 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2094 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1984
2095
1985 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2096 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1986 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2097 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1987 recognize the option. After a bug report by Will Maier. This
2098 recognize the option. After a bug report by Will Maier. This
1988 closes #64 (will do it after confirmation from W. Maier).
2099 closes #64 (will do it after confirmation from W. Maier).
1989
2100
1990 * IPython/irunner.py: New module to run scripts as if manually
2101 * IPython/irunner.py: New module to run scripts as if manually
1991 typed into an interactive environment, based on pexpect. After a
2102 typed into an interactive environment, based on pexpect. After a
1992 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2103 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1993 ipython-user list. Simple unittests in the tests/ directory.
2104 ipython-user list. Simple unittests in the tests/ directory.
1994
2105
1995 * tools/release: add Will Maier, OpenBSD port maintainer, to
2106 * tools/release: add Will Maier, OpenBSD port maintainer, to
1996 recepients list. We are now officially part of the OpenBSD ports:
2107 recepients list. We are now officially part of the OpenBSD ports:
1997 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2108 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1998 work.
2109 work.
1999
2110
2000 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2111 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2001
2112
2002 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2113 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2003 so that it doesn't break tkinter apps.
2114 so that it doesn't break tkinter apps.
2004
2115
2005 * IPython/iplib.py (_prefilter): fix bug where aliases would
2116 * IPython/iplib.py (_prefilter): fix bug where aliases would
2006 shadow variables when autocall was fully off. Reported by SAGE
2117 shadow variables when autocall was fully off. Reported by SAGE
2007 author William Stein.
2118 author William Stein.
2008
2119
2009 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2120 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2010 at what detail level strings are computed when foo? is requested.
2121 at what detail level strings are computed when foo? is requested.
2011 This allows users to ask for example that the string form of an
2122 This allows users to ask for example that the string form of an
2012 object is only computed when foo?? is called, or even never, by
2123 object is only computed when foo?? is called, or even never, by
2013 setting the object_info_string_level >= 2 in the configuration
2124 setting the object_info_string_level >= 2 in the configuration
2014 file. This new option has been added and documented. After a
2125 file. This new option has been added and documented. After a
2015 request by SAGE to be able to control the printing of very large
2126 request by SAGE to be able to control the printing of very large
2016 objects more easily.
2127 objects more easily.
2017
2128
2018 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2129 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2019
2130
2020 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2131 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2021 from sys.argv, to be 100% consistent with how Python itself works
2132 from sys.argv, to be 100% consistent with how Python itself works
2022 (as seen for example with python -i file.py). After a bug report
2133 (as seen for example with python -i file.py). After a bug report
2023 by Jeffrey Collins.
2134 by Jeffrey Collins.
2024
2135
2025 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2136 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2026 nasty bug which was preventing custom namespaces with -pylab,
2137 nasty bug which was preventing custom namespaces with -pylab,
2027 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2138 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2028 compatibility (long gone from mpl).
2139 compatibility (long gone from mpl).
2029
2140
2030 * IPython/ipapi.py (make_session): name change: create->make. We
2141 * IPython/ipapi.py (make_session): name change: create->make. We
2031 use make in other places (ipmaker,...), it's shorter and easier to
2142 use make in other places (ipmaker,...), it's shorter and easier to
2032 type and say, etc. I'm trying to clean things before 0.7.2 so
2143 type and say, etc. I'm trying to clean things before 0.7.2 so
2033 that I can keep things stable wrt to ipapi in the chainsaw branch.
2144 that I can keep things stable wrt to ipapi in the chainsaw branch.
2034
2145
2035 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2146 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2036 python-mode recognizes our debugger mode. Add support for
2147 python-mode recognizes our debugger mode. Add support for
2037 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2148 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2038 <m.liu.jin-AT-gmail.com> originally written by
2149 <m.liu.jin-AT-gmail.com> originally written by
2039 doxgen-AT-newsmth.net (with minor modifications for xemacs
2150 doxgen-AT-newsmth.net (with minor modifications for xemacs
2040 compatibility)
2151 compatibility)
2041
2152
2042 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2153 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2043 tracebacks when walking the stack so that the stack tracking system
2154 tracebacks when walking the stack so that the stack tracking system
2044 in emacs' python-mode can identify the frames correctly.
2155 in emacs' python-mode can identify the frames correctly.
2045
2156
2046 * IPython/ipmaker.py (make_IPython): make the internal (and
2157 * IPython/ipmaker.py (make_IPython): make the internal (and
2047 default config) autoedit_syntax value false by default. Too many
2158 default config) autoedit_syntax value false by default. Too many
2048 users have complained to me (both on and off-list) about problems
2159 users have complained to me (both on and off-list) about problems
2049 with this option being on by default, so I'm making it default to
2160 with this option being on by default, so I'm making it default to
2050 off. It can still be enabled by anyone via the usual mechanisms.
2161 off. It can still be enabled by anyone via the usual mechanisms.
2051
2162
2052 * IPython/completer.py (Completer.attr_matches): add support for
2163 * IPython/completer.py (Completer.attr_matches): add support for
2053 PyCrust-style _getAttributeNames magic method. Patch contributed
2164 PyCrust-style _getAttributeNames magic method. Patch contributed
2054 by <mscott-AT-goldenspud.com>. Closes #50.
2165 by <mscott-AT-goldenspud.com>. Closes #50.
2055
2166
2056 * IPython/iplib.py (InteractiveShell.__init__): remove the
2167 * IPython/iplib.py (InteractiveShell.__init__): remove the
2057 deletion of exit/quit from __builtin__, which can break
2168 deletion of exit/quit from __builtin__, which can break
2058 third-party tools like the Zope debugging console. The
2169 third-party tools like the Zope debugging console. The
2059 %exit/%quit magics remain. In general, it's probably a good idea
2170 %exit/%quit magics remain. In general, it's probably a good idea
2060 not to delete anything from __builtin__, since we never know what
2171 not to delete anything from __builtin__, since we never know what
2061 that will break. In any case, python now (for 2.5) will support
2172 that will break. In any case, python now (for 2.5) will support
2062 'real' exit/quit, so this issue is moot. Closes #55.
2173 'real' exit/quit, so this issue is moot. Closes #55.
2063
2174
2064 * IPython/genutils.py (with_obj): rename the 'with' function to
2175 * IPython/genutils.py (with_obj): rename the 'with' function to
2065 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2176 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2066 becomes a language keyword. Closes #53.
2177 becomes a language keyword. Closes #53.
2067
2178
2068 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2179 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2069 __file__ attribute to this so it fools more things into thinking
2180 __file__ attribute to this so it fools more things into thinking
2070 it is a real module. Closes #59.
2181 it is a real module. Closes #59.
2071
2182
2072 * IPython/Magic.py (magic_edit): add -n option to open the editor
2183 * IPython/Magic.py (magic_edit): add -n option to open the editor
2073 at a specific line number. After a patch by Stefan van der Walt.
2184 at a specific line number. After a patch by Stefan van der Walt.
2074
2185
2075 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2186 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2076
2187
2077 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2188 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2078 reason the file could not be opened. After automatic crash
2189 reason the file could not be opened. After automatic crash
2079 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2190 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2080 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2191 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2081 (_should_recompile): Don't fire editor if using %bg, since there
2192 (_should_recompile): Don't fire editor if using %bg, since there
2082 is no file in the first place. From the same report as above.
2193 is no file in the first place. From the same report as above.
2083 (raw_input): protect against faulty third-party prefilters. After
2194 (raw_input): protect against faulty third-party prefilters. After
2084 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2195 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2085 while running under SAGE.
2196 while running under SAGE.
2086
2197
2087 2006-05-23 Ville Vainio <vivainio@gmail.com>
2198 2006-05-23 Ville Vainio <vivainio@gmail.com>
2088
2199
2089 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2200 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2090 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2201 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2091 now returns None (again), unless dummy is specifically allowed by
2202 now returns None (again), unless dummy is specifically allowed by
2092 ipapi.get(allow_dummy=True).
2203 ipapi.get(allow_dummy=True).
2093
2204
2094 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2205 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2095
2206
2096 * IPython: remove all 2.2-compatibility objects and hacks from
2207 * IPython: remove all 2.2-compatibility objects and hacks from
2097 everywhere, since we only support 2.3 at this point. Docs
2208 everywhere, since we only support 2.3 at this point. Docs
2098 updated.
2209 updated.
2099
2210
2100 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2211 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2101 Anything requiring extra validation can be turned into a Python
2212 Anything requiring extra validation can be turned into a Python
2102 property in the future. I used a property for the db one b/c
2213 property in the future. I used a property for the db one b/c
2103 there was a nasty circularity problem with the initialization
2214 there was a nasty circularity problem with the initialization
2104 order, which right now I don't have time to clean up.
2215 order, which right now I don't have time to clean up.
2105
2216
2106 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2217 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2107 another locking bug reported by Jorgen. I'm not 100% sure though,
2218 another locking bug reported by Jorgen. I'm not 100% sure though,
2108 so more testing is needed...
2219 so more testing is needed...
2109
2220
2110 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2221 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2111
2222
2112 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2223 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2113 local variables from any routine in user code (typically executed
2224 local variables from any routine in user code (typically executed
2114 with %run) directly into the interactive namespace. Very useful
2225 with %run) directly into the interactive namespace. Very useful
2115 when doing complex debugging.
2226 when doing complex debugging.
2116 (IPythonNotRunning): Changed the default None object to a dummy
2227 (IPythonNotRunning): Changed the default None object to a dummy
2117 whose attributes can be queried as well as called without
2228 whose attributes can be queried as well as called without
2118 exploding, to ease writing code which works transparently both in
2229 exploding, to ease writing code which works transparently both in
2119 and out of ipython and uses some of this API.
2230 and out of ipython and uses some of this API.
2120
2231
2121 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2232 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2122
2233
2123 * IPython/hooks.py (result_display): Fix the fact that our display
2234 * IPython/hooks.py (result_display): Fix the fact that our display
2124 hook was using str() instead of repr(), as the default python
2235 hook was using str() instead of repr(), as the default python
2125 console does. This had gone unnoticed b/c it only happened if
2236 console does. This had gone unnoticed b/c it only happened if
2126 %Pprint was off, but the inconsistency was there.
2237 %Pprint was off, but the inconsistency was there.
2127
2238
2128 2006-05-15 Ville Vainio <vivainio@gmail.com>
2239 2006-05-15 Ville Vainio <vivainio@gmail.com>
2129
2240
2130 * Oinspect.py: Only show docstring for nonexisting/binary files
2241 * Oinspect.py: Only show docstring for nonexisting/binary files
2131 when doing object??, closing ticket #62
2242 when doing object??, closing ticket #62
2132
2243
2133 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2244 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2134
2245
2135 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2246 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2136 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2247 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2137 was being released in a routine which hadn't checked if it had
2248 was being released in a routine which hadn't checked if it had
2138 been the one to acquire it.
2249 been the one to acquire it.
2139
2250
2140 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2251 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2141
2252
2142 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2253 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2143
2254
2144 2006-04-11 Ville Vainio <vivainio@gmail.com>
2255 2006-04-11 Ville Vainio <vivainio@gmail.com>
2145
2256
2146 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2257 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2147 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2258 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2148 prefilters, allowing stuff like magics and aliases in the file.
2259 prefilters, allowing stuff like magics and aliases in the file.
2149
2260
2150 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2261 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2151 added. Supported now are "%clear in" and "%clear out" (clear input and
2262 added. Supported now are "%clear in" and "%clear out" (clear input and
2152 output history, respectively). Also fixed CachedOutput.flush to
2263 output history, respectively). Also fixed CachedOutput.flush to
2153 properly flush the output cache.
2264 properly flush the output cache.
2154
2265
2155 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2266 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2156 half-success (and fail explicitly).
2267 half-success (and fail explicitly).
2157
2268
2158 2006-03-28 Ville Vainio <vivainio@gmail.com>
2269 2006-03-28 Ville Vainio <vivainio@gmail.com>
2159
2270
2160 * iplib.py: Fix quoting of aliases so that only argless ones
2271 * iplib.py: Fix quoting of aliases so that only argless ones
2161 are quoted
2272 are quoted
2162
2273
2163 2006-03-28 Ville Vainio <vivainio@gmail.com>
2274 2006-03-28 Ville Vainio <vivainio@gmail.com>
2164
2275
2165 * iplib.py: Quote aliases with spaces in the name.
2276 * iplib.py: Quote aliases with spaces in the name.
2166 "c:\program files\blah\bin" is now legal alias target.
2277 "c:\program files\blah\bin" is now legal alias target.
2167
2278
2168 * ext_rehashdir.py: Space no longer allowed as arg
2279 * ext_rehashdir.py: Space no longer allowed as arg
2169 separator, since space is legal in path names.
2280 separator, since space is legal in path names.
2170
2281
2171 2006-03-16 Ville Vainio <vivainio@gmail.com>
2282 2006-03-16 Ville Vainio <vivainio@gmail.com>
2172
2283
2173 * upgrade_dir.py: Take path.py from Extensions, correcting
2284 * upgrade_dir.py: Take path.py from Extensions, correcting
2174 %upgrade magic
2285 %upgrade magic
2175
2286
2176 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2287 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2177
2288
2178 * hooks.py: Only enclose editor binary in quotes if legal and
2289 * hooks.py: Only enclose editor binary in quotes if legal and
2179 necessary (space in the name, and is an existing file). Fixes a bug
2290 necessary (space in the name, and is an existing file). Fixes a bug
2180 reported by Zachary Pincus.
2291 reported by Zachary Pincus.
2181
2292
2182 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2293 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2183
2294
2184 * Manual: thanks to a tip on proper color handling for Emacs, by
2295 * Manual: thanks to a tip on proper color handling for Emacs, by
2185 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2296 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2186
2297
2187 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2298 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2188 by applying the provided patch. Thanks to Liu Jin
2299 by applying the provided patch. Thanks to Liu Jin
2189 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2300 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2190 XEmacs/Linux, I'm trusting the submitter that it actually helps
2301 XEmacs/Linux, I'm trusting the submitter that it actually helps
2191 under win32/GNU Emacs. Will revisit if any problems are reported.
2302 under win32/GNU Emacs. Will revisit if any problems are reported.
2192
2303
2193 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2304 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2194
2305
2195 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2306 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2196 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2307 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2197
2308
2198 2006-03-12 Ville Vainio <vivainio@gmail.com>
2309 2006-03-12 Ville Vainio <vivainio@gmail.com>
2199
2310
2200 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2311 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2201 Torsten Marek.
2312 Torsten Marek.
2202
2313
2203 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2314 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2204
2315
2205 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2316 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2206 line ranges works again.
2317 line ranges works again.
2207
2318
2208 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2319 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2209
2320
2210 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2321 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2211 and friends, after a discussion with Zach Pincus on ipython-user.
2322 and friends, after a discussion with Zach Pincus on ipython-user.
2212 I'm not 100% sure, but after thinking about it quite a bit, it may
2323 I'm not 100% sure, but after thinking about it quite a bit, it may
2213 be OK. Testing with the multithreaded shells didn't reveal any
2324 be OK. Testing with the multithreaded shells didn't reveal any
2214 problems, but let's keep an eye out.
2325 problems, but let's keep an eye out.
2215
2326
2216 In the process, I fixed a few things which were calling
2327 In the process, I fixed a few things which were calling
2217 self.InteractiveTB() directly (like safe_execfile), which is a
2328 self.InteractiveTB() directly (like safe_execfile), which is a
2218 mistake: ALL exception reporting should be done by calling
2329 mistake: ALL exception reporting should be done by calling
2219 self.showtraceback(), which handles state and tab-completion and
2330 self.showtraceback(), which handles state and tab-completion and
2220 more.
2331 more.
2221
2332
2222 2006-03-01 Ville Vainio <vivainio@gmail.com>
2333 2006-03-01 Ville Vainio <vivainio@gmail.com>
2223
2334
2224 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2335 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2225 To use, do "from ipipe import *".
2336 To use, do "from ipipe import *".
2226
2337
2227 2006-02-24 Ville Vainio <vivainio@gmail.com>
2338 2006-02-24 Ville Vainio <vivainio@gmail.com>
2228
2339
2229 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2340 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2230 "cleanly" and safely than the older upgrade mechanism.
2341 "cleanly" and safely than the older upgrade mechanism.
2231
2342
2232 2006-02-21 Ville Vainio <vivainio@gmail.com>
2343 2006-02-21 Ville Vainio <vivainio@gmail.com>
2233
2344
2234 * Magic.py: %save works again.
2345 * Magic.py: %save works again.
2235
2346
2236 2006-02-15 Ville Vainio <vivainio@gmail.com>
2347 2006-02-15 Ville Vainio <vivainio@gmail.com>
2237
2348
2238 * Magic.py: %Pprint works again
2349 * Magic.py: %Pprint works again
2239
2350
2240 * Extensions/ipy_sane_defaults.py: Provide everything provided
2351 * Extensions/ipy_sane_defaults.py: Provide everything provided
2241 in default ipythonrc, to make it possible to have a completely empty
2352 in default ipythonrc, to make it possible to have a completely empty
2242 ipythonrc (and thus completely rc-file free configuration)
2353 ipythonrc (and thus completely rc-file free configuration)
2243
2354
2244 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2355 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2245
2356
2246 * IPython/hooks.py (editor): quote the call to the editor command,
2357 * IPython/hooks.py (editor): quote the call to the editor command,
2247 to allow commands with spaces in them. Problem noted by watching
2358 to allow commands with spaces in them. Problem noted by watching
2248 Ian Oswald's video about textpad under win32 at
2359 Ian Oswald's video about textpad under win32 at
2249 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2360 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2250
2361
2251 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2362 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2252 describing magics (we haven't used @ for a loong time).
2363 describing magics (we haven't used @ for a loong time).
2253
2364
2254 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2365 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2255 contributed by marienz to close
2366 contributed by marienz to close
2256 http://www.scipy.net/roundup/ipython/issue53.
2367 http://www.scipy.net/roundup/ipython/issue53.
2257
2368
2258 2006-02-10 Ville Vainio <vivainio@gmail.com>
2369 2006-02-10 Ville Vainio <vivainio@gmail.com>
2259
2370
2260 * genutils.py: getoutput now works in win32 too
2371 * genutils.py: getoutput now works in win32 too
2261
2372
2262 * completer.py: alias and magic completion only invoked
2373 * completer.py: alias and magic completion only invoked
2263 at the first "item" in the line, to avoid "cd %store"
2374 at the first "item" in the line, to avoid "cd %store"
2264 nonsense.
2375 nonsense.
2265
2376
2266 2006-02-09 Ville Vainio <vivainio@gmail.com>
2377 2006-02-09 Ville Vainio <vivainio@gmail.com>
2267
2378
2268 * test/*: Added a unit testing framework (finally).
2379 * test/*: Added a unit testing framework (finally).
2269 '%run runtests.py' to run test_*.
2380 '%run runtests.py' to run test_*.
2270
2381
2271 * ipapi.py: Exposed runlines and set_custom_exc
2382 * ipapi.py: Exposed runlines and set_custom_exc
2272
2383
2273 2006-02-07 Ville Vainio <vivainio@gmail.com>
2384 2006-02-07 Ville Vainio <vivainio@gmail.com>
2274
2385
2275 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2386 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2276 instead use "f(1 2)" as before.
2387 instead use "f(1 2)" as before.
2277
2388
2278 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2389 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2279
2390
2280 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2391 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2281 facilities, for demos processed by the IPython input filter
2392 facilities, for demos processed by the IPython input filter
2282 (IPythonDemo), and for running a script one-line-at-a-time as a
2393 (IPythonDemo), and for running a script one-line-at-a-time as a
2283 demo, both for pure Python (LineDemo) and for IPython-processed
2394 demo, both for pure Python (LineDemo) and for IPython-processed
2284 input (IPythonLineDemo). After a request by Dave Kohel, from the
2395 input (IPythonLineDemo). After a request by Dave Kohel, from the
2285 SAGE team.
2396 SAGE team.
2286 (Demo.edit): added an edit() method to the demo objects, to edit
2397 (Demo.edit): added an edit() method to the demo objects, to edit
2287 the in-memory copy of the last executed block.
2398 the in-memory copy of the last executed block.
2288
2399
2289 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2400 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2290 processing to %edit, %macro and %save. These commands can now be
2401 processing to %edit, %macro and %save. These commands can now be
2291 invoked on the unprocessed input as it was typed by the user
2402 invoked on the unprocessed input as it was typed by the user
2292 (without any prefilters applied). After requests by the SAGE team
2403 (without any prefilters applied). After requests by the SAGE team
2293 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2404 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2294
2405
2295 2006-02-01 Ville Vainio <vivainio@gmail.com>
2406 2006-02-01 Ville Vainio <vivainio@gmail.com>
2296
2407
2297 * setup.py, eggsetup.py: easy_install ipython==dev works
2408 * setup.py, eggsetup.py: easy_install ipython==dev works
2298 correctly now (on Linux)
2409 correctly now (on Linux)
2299
2410
2300 * ipy_user_conf,ipmaker: user config changes, removed spurious
2411 * ipy_user_conf,ipmaker: user config changes, removed spurious
2301 warnings
2412 warnings
2302
2413
2303 * iplib: if rc.banner is string, use it as is.
2414 * iplib: if rc.banner is string, use it as is.
2304
2415
2305 * Magic: %pycat accepts a string argument and pages it's contents.
2416 * Magic: %pycat accepts a string argument and pages it's contents.
2306
2417
2307
2418
2308 2006-01-30 Ville Vainio <vivainio@gmail.com>
2419 2006-01-30 Ville Vainio <vivainio@gmail.com>
2309
2420
2310 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2421 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2311 Now %store and bookmarks work through PickleShare, meaning that
2422 Now %store and bookmarks work through PickleShare, meaning that
2312 concurrent access is possible and all ipython sessions see the
2423 concurrent access is possible and all ipython sessions see the
2313 same database situation all the time, instead of snapshot of
2424 same database situation all the time, instead of snapshot of
2314 the situation when the session was started. Hence, %bookmark
2425 the situation when the session was started. Hence, %bookmark
2315 results are immediately accessible from othes sessions. The database
2426 results are immediately accessible from othes sessions. The database
2316 is also available for use by user extensions. See:
2427 is also available for use by user extensions. See:
2317 http://www.python.org/pypi/pickleshare
2428 http://www.python.org/pypi/pickleshare
2318
2429
2319 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2430 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2320
2431
2321 * aliases can now be %store'd
2432 * aliases can now be %store'd
2322
2433
2323 * path.py moved to Extensions so that pickleshare does not need
2434 * path.py moved to Extensions so that pickleshare does not need
2324 IPython-specific import. Extensions added to pythonpath right
2435 IPython-specific import. Extensions added to pythonpath right
2325 at __init__.
2436 at __init__.
2326
2437
2327 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2438 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2328 called with _ip.system and the pre-transformed command string.
2439 called with _ip.system and the pre-transformed command string.
2329
2440
2330 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2441 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2331
2442
2332 * IPython/iplib.py (interact): Fix that we were not catching
2443 * IPython/iplib.py (interact): Fix that we were not catching
2333 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2444 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2334 logic here had to change, but it's fixed now.
2445 logic here had to change, but it's fixed now.
2335
2446
2336 2006-01-29 Ville Vainio <vivainio@gmail.com>
2447 2006-01-29 Ville Vainio <vivainio@gmail.com>
2337
2448
2338 * iplib.py: Try to import pyreadline on Windows.
2449 * iplib.py: Try to import pyreadline on Windows.
2339
2450
2340 2006-01-27 Ville Vainio <vivainio@gmail.com>
2451 2006-01-27 Ville Vainio <vivainio@gmail.com>
2341
2452
2342 * iplib.py: Expose ipapi as _ip in builtin namespace.
2453 * iplib.py: Expose ipapi as _ip in builtin namespace.
2343 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2454 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2344 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2455 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2345 syntax now produce _ip.* variant of the commands.
2456 syntax now produce _ip.* variant of the commands.
2346
2457
2347 * "_ip.options().autoedit_syntax = 2" automatically throws
2458 * "_ip.options().autoedit_syntax = 2" automatically throws
2348 user to editor for syntax error correction without prompting.
2459 user to editor for syntax error correction without prompting.
2349
2460
2350 2006-01-27 Ville Vainio <vivainio@gmail.com>
2461 2006-01-27 Ville Vainio <vivainio@gmail.com>
2351
2462
2352 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2463 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2353 'ipython' at argv[0]) executed through command line.
2464 'ipython' at argv[0]) executed through command line.
2354 NOTE: this DEPRECATES calling ipython with multiple scripts
2465 NOTE: this DEPRECATES calling ipython with multiple scripts
2355 ("ipython a.py b.py c.py")
2466 ("ipython a.py b.py c.py")
2356
2467
2357 * iplib.py, hooks.py: Added configurable input prefilter,
2468 * iplib.py, hooks.py: Added configurable input prefilter,
2358 named 'input_prefilter'. See ext_rescapture.py for example
2469 named 'input_prefilter'. See ext_rescapture.py for example
2359 usage.
2470 usage.
2360
2471
2361 * ext_rescapture.py, Magic.py: Better system command output capture
2472 * ext_rescapture.py, Magic.py: Better system command output capture
2362 through 'var = !ls' (deprecates user-visible %sc). Same notation
2473 through 'var = !ls' (deprecates user-visible %sc). Same notation
2363 applies for magics, 'var = %alias' assigns alias list to var.
2474 applies for magics, 'var = %alias' assigns alias list to var.
2364
2475
2365 * ipapi.py: added meta() for accessing extension-usable data store.
2476 * ipapi.py: added meta() for accessing extension-usable data store.
2366
2477
2367 * iplib.py: added InteractiveShell.getapi(). New magics should be
2478 * iplib.py: added InteractiveShell.getapi(). New magics should be
2368 written doing self.getapi() instead of using the shell directly.
2479 written doing self.getapi() instead of using the shell directly.
2369
2480
2370 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2481 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2371 %store foo >> ~/myfoo.txt to store variables to files (in clean
2482 %store foo >> ~/myfoo.txt to store variables to files (in clean
2372 textual form, not a restorable pickle).
2483 textual form, not a restorable pickle).
2373
2484
2374 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2485 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2375
2486
2376 * usage.py, Magic.py: added %quickref
2487 * usage.py, Magic.py: added %quickref
2377
2488
2378 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2489 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2379
2490
2380 * GetoptErrors when invoking magics etc. with wrong args
2491 * GetoptErrors when invoking magics etc. with wrong args
2381 are now more helpful:
2492 are now more helpful:
2382 GetoptError: option -l not recognized (allowed: "qb" )
2493 GetoptError: option -l not recognized (allowed: "qb" )
2383
2494
2384 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2495 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2385
2496
2386 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2497 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2387 computationally intensive blocks don't appear to stall the demo.
2498 computationally intensive blocks don't appear to stall the demo.
2388
2499
2389 2006-01-24 Ville Vainio <vivainio@gmail.com>
2500 2006-01-24 Ville Vainio <vivainio@gmail.com>
2390
2501
2391 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2502 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2392 value to manipulate resulting history entry.
2503 value to manipulate resulting history entry.
2393
2504
2394 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2505 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2395 to instance methods of IPApi class, to make extending an embedded
2506 to instance methods of IPApi class, to make extending an embedded
2396 IPython feasible. See ext_rehashdir.py for example usage.
2507 IPython feasible. See ext_rehashdir.py for example usage.
2397
2508
2398 * Merged 1071-1076 from branches/0.7.1
2509 * Merged 1071-1076 from branches/0.7.1
2399
2510
2400
2511
2401 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2512 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2402
2513
2403 * tools/release (daystamp): Fix build tools to use the new
2514 * tools/release (daystamp): Fix build tools to use the new
2404 eggsetup.py script to build lightweight eggs.
2515 eggsetup.py script to build lightweight eggs.
2405
2516
2406 * Applied changesets 1062 and 1064 before 0.7.1 release.
2517 * Applied changesets 1062 and 1064 before 0.7.1 release.
2407
2518
2408 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2519 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2409 see the raw input history (without conversions like %ls ->
2520 see the raw input history (without conversions like %ls ->
2410 ipmagic("ls")). After a request from W. Stein, SAGE
2521 ipmagic("ls")). After a request from W. Stein, SAGE
2411 (http://modular.ucsd.edu/sage) developer. This information is
2522 (http://modular.ucsd.edu/sage) developer. This information is
2412 stored in the input_hist_raw attribute of the IPython instance, so
2523 stored in the input_hist_raw attribute of the IPython instance, so
2413 developers can access it if needed (it's an InputList instance).
2524 developers can access it if needed (it's an InputList instance).
2414
2525
2415 * Versionstring = 0.7.2.svn
2526 * Versionstring = 0.7.2.svn
2416
2527
2417 * eggsetup.py: A separate script for constructing eggs, creates
2528 * eggsetup.py: A separate script for constructing eggs, creates
2418 proper launch scripts even on Windows (an .exe file in
2529 proper launch scripts even on Windows (an .exe file in
2419 \python24\scripts).
2530 \python24\scripts).
2420
2531
2421 * ipapi.py: launch_new_instance, launch entry point needed for the
2532 * ipapi.py: launch_new_instance, launch entry point needed for the
2422 egg.
2533 egg.
2423
2534
2424 2006-01-23 Ville Vainio <vivainio@gmail.com>
2535 2006-01-23 Ville Vainio <vivainio@gmail.com>
2425
2536
2426 * Added %cpaste magic for pasting python code
2537 * Added %cpaste magic for pasting python code
2427
2538
2428 2006-01-22 Ville Vainio <vivainio@gmail.com>
2539 2006-01-22 Ville Vainio <vivainio@gmail.com>
2429
2540
2430 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2541 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2431
2542
2432 * Versionstring = 0.7.2.svn
2543 * Versionstring = 0.7.2.svn
2433
2544
2434 * eggsetup.py: A separate script for constructing eggs, creates
2545 * eggsetup.py: A separate script for constructing eggs, creates
2435 proper launch scripts even on Windows (an .exe file in
2546 proper launch scripts even on Windows (an .exe file in
2436 \python24\scripts).
2547 \python24\scripts).
2437
2548
2438 * ipapi.py: launch_new_instance, launch entry point needed for the
2549 * ipapi.py: launch_new_instance, launch entry point needed for the
2439 egg.
2550 egg.
2440
2551
2441 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2552 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2442
2553
2443 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2554 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2444 %pfile foo would print the file for foo even if it was a binary.
2555 %pfile foo would print the file for foo even if it was a binary.
2445 Now, extensions '.so' and '.dll' are skipped.
2556 Now, extensions '.so' and '.dll' are skipped.
2446
2557
2447 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2558 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2448 bug, where macros would fail in all threaded modes. I'm not 100%
2559 bug, where macros would fail in all threaded modes. I'm not 100%
2449 sure, so I'm going to put out an rc instead of making a release
2560 sure, so I'm going to put out an rc instead of making a release
2450 today, and wait for feedback for at least a few days.
2561 today, and wait for feedback for at least a few days.
2451
2562
2452 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2563 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2453 it...) the handling of pasting external code with autoindent on.
2564 it...) the handling of pasting external code with autoindent on.
2454 To get out of a multiline input, the rule will appear for most
2565 To get out of a multiline input, the rule will appear for most
2455 users unchanged: two blank lines or change the indent level
2566 users unchanged: two blank lines or change the indent level
2456 proposed by IPython. But there is a twist now: you can
2567 proposed by IPython. But there is a twist now: you can
2457 add/subtract only *one or two spaces*. If you add/subtract three
2568 add/subtract only *one or two spaces*. If you add/subtract three
2458 or more (unless you completely delete the line), IPython will
2569 or more (unless you completely delete the line), IPython will
2459 accept that line, and you'll need to enter a second one of pure
2570 accept that line, and you'll need to enter a second one of pure
2460 whitespace. I know it sounds complicated, but I can't find a
2571 whitespace. I know it sounds complicated, but I can't find a
2461 different solution that covers all the cases, with the right
2572 different solution that covers all the cases, with the right
2462 heuristics. Hopefully in actual use, nobody will really notice
2573 heuristics. Hopefully in actual use, nobody will really notice
2463 all these strange rules and things will 'just work'.
2574 all these strange rules and things will 'just work'.
2464
2575
2465 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2576 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2466
2577
2467 * IPython/iplib.py (interact): catch exceptions which can be
2578 * IPython/iplib.py (interact): catch exceptions which can be
2468 triggered asynchronously by signal handlers. Thanks to an
2579 triggered asynchronously by signal handlers. Thanks to an
2469 automatic crash report, submitted by Colin Kingsley
2580 automatic crash report, submitted by Colin Kingsley
2470 <tercel-AT-gentoo.org>.
2581 <tercel-AT-gentoo.org>.
2471
2582
2472 2006-01-20 Ville Vainio <vivainio@gmail.com>
2583 2006-01-20 Ville Vainio <vivainio@gmail.com>
2473
2584
2474 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2585 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2475 (%rehashdir, very useful, try it out) of how to extend ipython
2586 (%rehashdir, very useful, try it out) of how to extend ipython
2476 with new magics. Also added Extensions dir to pythonpath to make
2587 with new magics. Also added Extensions dir to pythonpath to make
2477 importing extensions easy.
2588 importing extensions easy.
2478
2589
2479 * %store now complains when trying to store interactively declared
2590 * %store now complains when trying to store interactively declared
2480 classes / instances of those classes.
2591 classes / instances of those classes.
2481
2592
2482 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2593 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2483 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2594 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2484 if they exist, and ipy_user_conf.py with some defaults is created for
2595 if they exist, and ipy_user_conf.py with some defaults is created for
2485 the user.
2596 the user.
2486
2597
2487 * Startup rehashing done by the config file, not InterpreterExec.
2598 * Startup rehashing done by the config file, not InterpreterExec.
2488 This means system commands are available even without selecting the
2599 This means system commands are available even without selecting the
2489 pysh profile. It's the sensible default after all.
2600 pysh profile. It's the sensible default after all.
2490
2601
2491 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2602 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2492
2603
2493 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2604 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2494 multiline code with autoindent on working. But I am really not
2605 multiline code with autoindent on working. But I am really not
2495 sure, so this needs more testing. Will commit a debug-enabled
2606 sure, so this needs more testing. Will commit a debug-enabled
2496 version for now, while I test it some more, so that Ville and
2607 version for now, while I test it some more, so that Ville and
2497 others may also catch any problems. Also made
2608 others may also catch any problems. Also made
2498 self.indent_current_str() a method, to ensure that there's no
2609 self.indent_current_str() a method, to ensure that there's no
2499 chance of the indent space count and the corresponding string
2610 chance of the indent space count and the corresponding string
2500 falling out of sync. All code needing the string should just call
2611 falling out of sync. All code needing the string should just call
2501 the method.
2612 the method.
2502
2613
2503 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2614 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2504
2615
2505 * IPython/Magic.py (magic_edit): fix check for when users don't
2616 * IPython/Magic.py (magic_edit): fix check for when users don't
2506 save their output files, the try/except was in the wrong section.
2617 save their output files, the try/except was in the wrong section.
2507
2618
2508 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2619 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2509
2620
2510 * IPython/Magic.py (magic_run): fix __file__ global missing from
2621 * IPython/Magic.py (magic_run): fix __file__ global missing from
2511 script's namespace when executed via %run. After a report by
2622 script's namespace when executed via %run. After a report by
2512 Vivian.
2623 Vivian.
2513
2624
2514 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2625 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2515 when using python 2.4. The parent constructor changed in 2.4, and
2626 when using python 2.4. The parent constructor changed in 2.4, and
2516 we need to track it directly (we can't call it, as it messes up
2627 we need to track it directly (we can't call it, as it messes up
2517 readline and tab-completion inside our pdb would stop working).
2628 readline and tab-completion inside our pdb would stop working).
2518 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2629 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2519
2630
2520 2006-01-16 Ville Vainio <vivainio@gmail.com>
2631 2006-01-16 Ville Vainio <vivainio@gmail.com>
2521
2632
2522 * Ipython/magic.py: Reverted back to old %edit functionality
2633 * Ipython/magic.py: Reverted back to old %edit functionality
2523 that returns file contents on exit.
2634 that returns file contents on exit.
2524
2635
2525 * IPython/path.py: Added Jason Orendorff's "path" module to
2636 * IPython/path.py: Added Jason Orendorff's "path" module to
2526 IPython tree, http://www.jorendorff.com/articles/python/path/.
2637 IPython tree, http://www.jorendorff.com/articles/python/path/.
2527 You can get path objects conveniently through %sc, and !!, e.g.:
2638 You can get path objects conveniently through %sc, and !!, e.g.:
2528 sc files=ls
2639 sc files=ls
2529 for p in files.paths: # or files.p
2640 for p in files.paths: # or files.p
2530 print p,p.mtime
2641 print p,p.mtime
2531
2642
2532 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2643 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2533 now work again without considering the exclusion regexp -
2644 now work again without considering the exclusion regexp -
2534 hence, things like ',foo my/path' turn to 'foo("my/path")'
2645 hence, things like ',foo my/path' turn to 'foo("my/path")'
2535 instead of syntax error.
2646 instead of syntax error.
2536
2647
2537
2648
2538 2006-01-14 Ville Vainio <vivainio@gmail.com>
2649 2006-01-14 Ville Vainio <vivainio@gmail.com>
2539
2650
2540 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2651 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2541 ipapi decorators for python 2.4 users, options() provides access to rc
2652 ipapi decorators for python 2.4 users, options() provides access to rc
2542 data.
2653 data.
2543
2654
2544 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2655 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2545 as path separators (even on Linux ;-). Space character after
2656 as path separators (even on Linux ;-). Space character after
2546 backslash (as yielded by tab completer) is still space;
2657 backslash (as yielded by tab completer) is still space;
2547 "%cd long\ name" works as expected.
2658 "%cd long\ name" works as expected.
2548
2659
2549 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2660 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2550 as "chain of command", with priority. API stays the same,
2661 as "chain of command", with priority. API stays the same,
2551 TryNext exception raised by a hook function signals that
2662 TryNext exception raised by a hook function signals that
2552 current hook failed and next hook should try handling it, as
2663 current hook failed and next hook should try handling it, as
2553 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2664 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2554 requested configurable display hook, which is now implemented.
2665 requested configurable display hook, which is now implemented.
2555
2666
2556 2006-01-13 Ville Vainio <vivainio@gmail.com>
2667 2006-01-13 Ville Vainio <vivainio@gmail.com>
2557
2668
2558 * IPython/platutils*.py: platform specific utility functions,
2669 * IPython/platutils*.py: platform specific utility functions,
2559 so far only set_term_title is implemented (change terminal
2670 so far only set_term_title is implemented (change terminal
2560 label in windowing systems). %cd now changes the title to
2671 label in windowing systems). %cd now changes the title to
2561 current dir.
2672 current dir.
2562
2673
2563 * IPython/Release.py: Added myself to "authors" list,
2674 * IPython/Release.py: Added myself to "authors" list,
2564 had to create new files.
2675 had to create new files.
2565
2676
2566 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2677 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2567 shell escape; not a known bug but had potential to be one in the
2678 shell escape; not a known bug but had potential to be one in the
2568 future.
2679 future.
2569
2680
2570 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2681 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2571 extension API for IPython! See the module for usage example. Fix
2682 extension API for IPython! See the module for usage example. Fix
2572 OInspect for docstring-less magic functions.
2683 OInspect for docstring-less magic functions.
2573
2684
2574
2685
2575 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2686 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2576
2687
2577 * IPython/iplib.py (raw_input): temporarily deactivate all
2688 * IPython/iplib.py (raw_input): temporarily deactivate all
2578 attempts at allowing pasting of code with autoindent on. It
2689 attempts at allowing pasting of code with autoindent on. It
2579 introduced bugs (reported by Prabhu) and I can't seem to find a
2690 introduced bugs (reported by Prabhu) and I can't seem to find a
2580 robust combination which works in all cases. Will have to revisit
2691 robust combination which works in all cases. Will have to revisit
2581 later.
2692 later.
2582
2693
2583 * IPython/genutils.py: remove isspace() function. We've dropped
2694 * IPython/genutils.py: remove isspace() function. We've dropped
2584 2.2 compatibility, so it's OK to use the string method.
2695 2.2 compatibility, so it's OK to use the string method.
2585
2696
2586 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2697 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2587
2698
2588 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2699 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2589 matching what NOT to autocall on, to include all python binary
2700 matching what NOT to autocall on, to include all python binary
2590 operators (including things like 'and', 'or', 'is' and 'in').
2701 operators (including things like 'and', 'or', 'is' and 'in').
2591 Prompted by a bug report on 'foo & bar', but I realized we had
2702 Prompted by a bug report on 'foo & bar', but I realized we had
2592 many more potential bug cases with other operators. The regexp is
2703 many more potential bug cases with other operators. The regexp is
2593 self.re_exclude_auto, it's fairly commented.
2704 self.re_exclude_auto, it's fairly commented.
2594
2705
2595 2006-01-12 Ville Vainio <vivainio@gmail.com>
2706 2006-01-12 Ville Vainio <vivainio@gmail.com>
2596
2707
2597 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2708 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2598 Prettified and hardened string/backslash quoting with ipsystem(),
2709 Prettified and hardened string/backslash quoting with ipsystem(),
2599 ipalias() and ipmagic(). Now even \ characters are passed to
2710 ipalias() and ipmagic(). Now even \ characters are passed to
2600 %magics, !shell escapes and aliases exactly as they are in the
2711 %magics, !shell escapes and aliases exactly as they are in the
2601 ipython command line. Should improve backslash experience,
2712 ipython command line. Should improve backslash experience,
2602 particularly in Windows (path delimiter for some commands that
2713 particularly in Windows (path delimiter for some commands that
2603 won't understand '/'), but Unix benefits as well (regexps). %cd
2714 won't understand '/'), but Unix benefits as well (regexps). %cd
2604 magic still doesn't support backslash path delimiters, though. Also
2715 magic still doesn't support backslash path delimiters, though. Also
2605 deleted all pretense of supporting multiline command strings in
2716 deleted all pretense of supporting multiline command strings in
2606 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2717 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2607
2718
2608 * doc/build_doc_instructions.txt added. Documentation on how to
2719 * doc/build_doc_instructions.txt added. Documentation on how to
2609 use doc/update_manual.py, added yesterday. Both files contributed
2720 use doc/update_manual.py, added yesterday. Both files contributed
2610 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2721 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2611 doc/*.sh for deprecation at a later date.
2722 doc/*.sh for deprecation at a later date.
2612
2723
2613 * /ipython.py Added ipython.py to root directory for
2724 * /ipython.py Added ipython.py to root directory for
2614 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2725 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2615 ipython.py) and development convenience (no need to keep doing
2726 ipython.py) and development convenience (no need to keep doing
2616 "setup.py install" between changes).
2727 "setup.py install" between changes).
2617
2728
2618 * Made ! and !! shell escapes work (again) in multiline expressions:
2729 * Made ! and !! shell escapes work (again) in multiline expressions:
2619 if 1:
2730 if 1:
2620 !ls
2731 !ls
2621 !!ls
2732 !!ls
2622
2733
2623 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2734 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2624
2735
2625 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2736 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2626 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2737 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2627 module in case-insensitive installation. Was causing crashes
2738 module in case-insensitive installation. Was causing crashes
2628 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2739 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2629
2740
2630 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2741 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2631 <marienz-AT-gentoo.org>, closes
2742 <marienz-AT-gentoo.org>, closes
2632 http://www.scipy.net/roundup/ipython/issue51.
2743 http://www.scipy.net/roundup/ipython/issue51.
2633
2744
2634 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2745 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2635
2746
2636 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2747 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2637 problem of excessive CPU usage under *nix and keyboard lag under
2748 problem of excessive CPU usage under *nix and keyboard lag under
2638 win32.
2749 win32.
2639
2750
2640 2006-01-10 *** Released version 0.7.0
2751 2006-01-10 *** Released version 0.7.0
2641
2752
2642 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2753 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2643
2754
2644 * IPython/Release.py (revision): tag version number to 0.7.0,
2755 * IPython/Release.py (revision): tag version number to 0.7.0,
2645 ready for release.
2756 ready for release.
2646
2757
2647 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2758 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2648 it informs the user of the name of the temp. file used. This can
2759 it informs the user of the name of the temp. file used. This can
2649 help if you decide later to reuse that same file, so you know
2760 help if you decide later to reuse that same file, so you know
2650 where to copy the info from.
2761 where to copy the info from.
2651
2762
2652 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2763 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2653
2764
2654 * setup_bdist_egg.py: little script to build an egg. Added
2765 * setup_bdist_egg.py: little script to build an egg. Added
2655 support in the release tools as well.
2766 support in the release tools as well.
2656
2767
2657 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2768 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2658
2769
2659 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2770 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2660 version selection (new -wxversion command line and ipythonrc
2771 version selection (new -wxversion command line and ipythonrc
2661 parameter). Patch contributed by Arnd Baecker
2772 parameter). Patch contributed by Arnd Baecker
2662 <arnd.baecker-AT-web.de>.
2773 <arnd.baecker-AT-web.de>.
2663
2774
2664 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2775 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2665 embedded instances, for variables defined at the interactive
2776 embedded instances, for variables defined at the interactive
2666 prompt of the embedded ipython. Reported by Arnd.
2777 prompt of the embedded ipython. Reported by Arnd.
2667
2778
2668 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2779 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2669 it can be used as a (stateful) toggle, or with a direct parameter.
2780 it can be used as a (stateful) toggle, or with a direct parameter.
2670
2781
2671 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2782 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2672 could be triggered in certain cases and cause the traceback
2783 could be triggered in certain cases and cause the traceback
2673 printer not to work.
2784 printer not to work.
2674
2785
2675 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2786 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2676
2787
2677 * IPython/iplib.py (_should_recompile): Small fix, closes
2788 * IPython/iplib.py (_should_recompile): Small fix, closes
2678 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2789 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2679
2790
2680 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2791 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2681
2792
2682 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2793 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2683 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2794 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2684 Moad for help with tracking it down.
2795 Moad for help with tracking it down.
2685
2796
2686 * IPython/iplib.py (handle_auto): fix autocall handling for
2797 * IPython/iplib.py (handle_auto): fix autocall handling for
2687 objects which support BOTH __getitem__ and __call__ (so that f [x]
2798 objects which support BOTH __getitem__ and __call__ (so that f [x]
2688 is left alone, instead of becoming f([x]) automatically).
2799 is left alone, instead of becoming f([x]) automatically).
2689
2800
2690 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2801 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2691 Ville's patch.
2802 Ville's patch.
2692
2803
2693 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2804 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2694
2805
2695 * IPython/iplib.py (handle_auto): changed autocall semantics to
2806 * IPython/iplib.py (handle_auto): changed autocall semantics to
2696 include 'smart' mode, where the autocall transformation is NOT
2807 include 'smart' mode, where the autocall transformation is NOT
2697 applied if there are no arguments on the line. This allows you to
2808 applied if there are no arguments on the line. This allows you to
2698 just type 'foo' if foo is a callable to see its internal form,
2809 just type 'foo' if foo is a callable to see its internal form,
2699 instead of having it called with no arguments (typically a
2810 instead of having it called with no arguments (typically a
2700 mistake). The old 'full' autocall still exists: for that, you
2811 mistake). The old 'full' autocall still exists: for that, you
2701 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2812 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2702
2813
2703 * IPython/completer.py (Completer.attr_matches): add
2814 * IPython/completer.py (Completer.attr_matches): add
2704 tab-completion support for Enthoughts' traits. After a report by
2815 tab-completion support for Enthoughts' traits. After a report by
2705 Arnd and a patch by Prabhu.
2816 Arnd and a patch by Prabhu.
2706
2817
2707 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2818 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2708
2819
2709 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2820 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2710 Schmolck's patch to fix inspect.getinnerframes().
2821 Schmolck's patch to fix inspect.getinnerframes().
2711
2822
2712 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2823 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2713 for embedded instances, regarding handling of namespaces and items
2824 for embedded instances, regarding handling of namespaces and items
2714 added to the __builtin__ one. Multiple embedded instances and
2825 added to the __builtin__ one. Multiple embedded instances and
2715 recursive embeddings should work better now (though I'm not sure
2826 recursive embeddings should work better now (though I'm not sure
2716 I've got all the corner cases fixed, that code is a bit of a brain
2827 I've got all the corner cases fixed, that code is a bit of a brain
2717 twister).
2828 twister).
2718
2829
2719 * IPython/Magic.py (magic_edit): added support to edit in-memory
2830 * IPython/Magic.py (magic_edit): added support to edit in-memory
2720 macros (automatically creates the necessary temp files). %edit
2831 macros (automatically creates the necessary temp files). %edit
2721 also doesn't return the file contents anymore, it's just noise.
2832 also doesn't return the file contents anymore, it's just noise.
2722
2833
2723 * IPython/completer.py (Completer.attr_matches): revert change to
2834 * IPython/completer.py (Completer.attr_matches): revert change to
2724 complete only on attributes listed in __all__. I realized it
2835 complete only on attributes listed in __all__. I realized it
2725 cripples the tab-completion system as a tool for exploring the
2836 cripples the tab-completion system as a tool for exploring the
2726 internals of unknown libraries (it renders any non-__all__
2837 internals of unknown libraries (it renders any non-__all__
2727 attribute off-limits). I got bit by this when trying to see
2838 attribute off-limits). I got bit by this when trying to see
2728 something inside the dis module.
2839 something inside the dis module.
2729
2840
2730 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2841 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2731
2842
2732 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2843 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2733 namespace for users and extension writers to hold data in. This
2844 namespace for users and extension writers to hold data in. This
2734 follows the discussion in
2845 follows the discussion in
2735 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2846 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2736
2847
2737 * IPython/completer.py (IPCompleter.complete): small patch to help
2848 * IPython/completer.py (IPCompleter.complete): small patch to help
2738 tab-completion under Emacs, after a suggestion by John Barnard
2849 tab-completion under Emacs, after a suggestion by John Barnard
2739 <barnarj-AT-ccf.org>.
2850 <barnarj-AT-ccf.org>.
2740
2851
2741 * IPython/Magic.py (Magic.extract_input_slices): added support for
2852 * IPython/Magic.py (Magic.extract_input_slices): added support for
2742 the slice notation in magics to use N-M to represent numbers N...M
2853 the slice notation in magics to use N-M to represent numbers N...M
2743 (closed endpoints). This is used by %macro and %save.
2854 (closed endpoints). This is used by %macro and %save.
2744
2855
2745 * IPython/completer.py (Completer.attr_matches): for modules which
2856 * IPython/completer.py (Completer.attr_matches): for modules which
2746 define __all__, complete only on those. After a patch by Jeffrey
2857 define __all__, complete only on those. After a patch by Jeffrey
2747 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2858 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2748 speed up this routine.
2859 speed up this routine.
2749
2860
2750 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2861 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2751 don't know if this is the end of it, but the behavior now is
2862 don't know if this is the end of it, but the behavior now is
2752 certainly much more correct. Note that coupled with macros,
2863 certainly much more correct. Note that coupled with macros,
2753 slightly surprising (at first) behavior may occur: a macro will in
2864 slightly surprising (at first) behavior may occur: a macro will in
2754 general expand to multiple lines of input, so upon exiting, the
2865 general expand to multiple lines of input, so upon exiting, the
2755 in/out counters will both be bumped by the corresponding amount
2866 in/out counters will both be bumped by the corresponding amount
2756 (as if the macro's contents had been typed interactively). Typing
2867 (as if the macro's contents had been typed interactively). Typing
2757 %hist will reveal the intermediate (silently processed) lines.
2868 %hist will reveal the intermediate (silently processed) lines.
2758
2869
2759 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2870 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2760 pickle to fail (%run was overwriting __main__ and not restoring
2871 pickle to fail (%run was overwriting __main__ and not restoring
2761 it, but pickle relies on __main__ to operate).
2872 it, but pickle relies on __main__ to operate).
2762
2873
2763 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2874 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2764 using properties, but forgot to make the main InteractiveShell
2875 using properties, but forgot to make the main InteractiveShell
2765 class a new-style class. Properties fail silently, and
2876 class a new-style class. Properties fail silently, and
2766 mysteriously, with old-style class (getters work, but
2877 mysteriously, with old-style class (getters work, but
2767 setters don't do anything).
2878 setters don't do anything).
2768
2879
2769 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2880 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2770
2881
2771 * IPython/Magic.py (magic_history): fix history reporting bug (I
2882 * IPython/Magic.py (magic_history): fix history reporting bug (I
2772 know some nasties are still there, I just can't seem to find a
2883 know some nasties are still there, I just can't seem to find a
2773 reproducible test case to track them down; the input history is
2884 reproducible test case to track them down; the input history is
2774 falling out of sync...)
2885 falling out of sync...)
2775
2886
2776 * IPython/iplib.py (handle_shell_escape): fix bug where both
2887 * IPython/iplib.py (handle_shell_escape): fix bug where both
2777 aliases and system accesses where broken for indented code (such
2888 aliases and system accesses where broken for indented code (such
2778 as loops).
2889 as loops).
2779
2890
2780 * IPython/genutils.py (shell): fix small but critical bug for
2891 * IPython/genutils.py (shell): fix small but critical bug for
2781 win32 system access.
2892 win32 system access.
2782
2893
2783 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2894 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2784
2895
2785 * IPython/iplib.py (showtraceback): remove use of the
2896 * IPython/iplib.py (showtraceback): remove use of the
2786 sys.last_{type/value/traceback} structures, which are non
2897 sys.last_{type/value/traceback} structures, which are non
2787 thread-safe.
2898 thread-safe.
2788 (_prefilter): change control flow to ensure that we NEVER
2899 (_prefilter): change control flow to ensure that we NEVER
2789 introspect objects when autocall is off. This will guarantee that
2900 introspect objects when autocall is off. This will guarantee that
2790 having an input line of the form 'x.y', where access to attribute
2901 having an input line of the form 'x.y', where access to attribute
2791 'y' has side effects, doesn't trigger the side effect TWICE. It
2902 'y' has side effects, doesn't trigger the side effect TWICE. It
2792 is important to note that, with autocall on, these side effects
2903 is important to note that, with autocall on, these side effects
2793 can still happen.
2904 can still happen.
2794 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2905 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2795 trio. IPython offers these three kinds of special calls which are
2906 trio. IPython offers these three kinds of special calls which are
2796 not python code, and it's a good thing to have their call method
2907 not python code, and it's a good thing to have their call method
2797 be accessible as pure python functions (not just special syntax at
2908 be accessible as pure python functions (not just special syntax at
2798 the command line). It gives us a better internal implementation
2909 the command line). It gives us a better internal implementation
2799 structure, as well as exposing these for user scripting more
2910 structure, as well as exposing these for user scripting more
2800 cleanly.
2911 cleanly.
2801
2912
2802 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2913 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2803 file. Now that they'll be more likely to be used with the
2914 file. Now that they'll be more likely to be used with the
2804 persistance system (%store), I want to make sure their module path
2915 persistance system (%store), I want to make sure their module path
2805 doesn't change in the future, so that we don't break things for
2916 doesn't change in the future, so that we don't break things for
2806 users' persisted data.
2917 users' persisted data.
2807
2918
2808 * IPython/iplib.py (autoindent_update): move indentation
2919 * IPython/iplib.py (autoindent_update): move indentation
2809 management into the _text_ processing loop, not the keyboard
2920 management into the _text_ processing loop, not the keyboard
2810 interactive one. This is necessary to correctly process non-typed
2921 interactive one. This is necessary to correctly process non-typed
2811 multiline input (such as macros).
2922 multiline input (such as macros).
2812
2923
2813 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2924 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2814 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2925 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2815 which was producing problems in the resulting manual.
2926 which was producing problems in the resulting manual.
2816 (magic_whos): improve reporting of instances (show their class,
2927 (magic_whos): improve reporting of instances (show their class,
2817 instead of simply printing 'instance' which isn't terribly
2928 instead of simply printing 'instance' which isn't terribly
2818 informative).
2929 informative).
2819
2930
2820 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2931 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2821 (minor mods) to support network shares under win32.
2932 (minor mods) to support network shares under win32.
2822
2933
2823 * IPython/winconsole.py (get_console_size): add new winconsole
2934 * IPython/winconsole.py (get_console_size): add new winconsole
2824 module and fixes to page_dumb() to improve its behavior under
2935 module and fixes to page_dumb() to improve its behavior under
2825 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2936 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2826
2937
2827 * IPython/Magic.py (Macro): simplified Macro class to just
2938 * IPython/Magic.py (Macro): simplified Macro class to just
2828 subclass list. We've had only 2.2 compatibility for a very long
2939 subclass list. We've had only 2.2 compatibility for a very long
2829 time, yet I was still avoiding subclassing the builtin types. No
2940 time, yet I was still avoiding subclassing the builtin types. No
2830 more (I'm also starting to use properties, though I won't shift to
2941 more (I'm also starting to use properties, though I won't shift to
2831 2.3-specific features quite yet).
2942 2.3-specific features quite yet).
2832 (magic_store): added Ville's patch for lightweight variable
2943 (magic_store): added Ville's patch for lightweight variable
2833 persistence, after a request on the user list by Matt Wilkie
2944 persistence, after a request on the user list by Matt Wilkie
2834 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2945 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2835 details.
2946 details.
2836
2947
2837 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2948 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2838 changed the default logfile name from 'ipython.log' to
2949 changed the default logfile name from 'ipython.log' to
2839 'ipython_log.py'. These logs are real python files, and now that
2950 'ipython_log.py'. These logs are real python files, and now that
2840 we have much better multiline support, people are more likely to
2951 we have much better multiline support, people are more likely to
2841 want to use them as such. Might as well name them correctly.
2952 want to use them as such. Might as well name them correctly.
2842
2953
2843 * IPython/Magic.py: substantial cleanup. While we can't stop
2954 * IPython/Magic.py: substantial cleanup. While we can't stop
2844 using magics as mixins, due to the existing customizations 'out
2955 using magics as mixins, due to the existing customizations 'out
2845 there' which rely on the mixin naming conventions, at least I
2956 there' which rely on the mixin naming conventions, at least I
2846 cleaned out all cross-class name usage. So once we are OK with
2957 cleaned out all cross-class name usage. So once we are OK with
2847 breaking compatibility, the two systems can be separated.
2958 breaking compatibility, the two systems can be separated.
2848
2959
2849 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2960 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2850 anymore, and the class is a fair bit less hideous as well. New
2961 anymore, and the class is a fair bit less hideous as well. New
2851 features were also introduced: timestamping of input, and logging
2962 features were also introduced: timestamping of input, and logging
2852 of output results. These are user-visible with the -t and -o
2963 of output results. These are user-visible with the -t and -o
2853 options to %logstart. Closes
2964 options to %logstart. Closes
2854 http://www.scipy.net/roundup/ipython/issue11 and a request by
2965 http://www.scipy.net/roundup/ipython/issue11 and a request by
2855 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2966 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2856
2967
2857 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2968 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2858
2969
2859 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2970 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2860 better handle backslashes in paths. See the thread 'More Windows
2971 better handle backslashes in paths. See the thread 'More Windows
2861 questions part 2 - \/ characters revisited' on the iypthon user
2972 questions part 2 - \/ characters revisited' on the iypthon user
2862 list:
2973 list:
2863 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2974 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2864
2975
2865 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2976 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2866
2977
2867 (InteractiveShell.__init__): change threaded shells to not use the
2978 (InteractiveShell.__init__): change threaded shells to not use the
2868 ipython crash handler. This was causing more problems than not,
2979 ipython crash handler. This was causing more problems than not,
2869 as exceptions in the main thread (GUI code, typically) would
2980 as exceptions in the main thread (GUI code, typically) would
2870 always show up as a 'crash', when they really weren't.
2981 always show up as a 'crash', when they really weren't.
2871
2982
2872 The colors and exception mode commands (%colors/%xmode) have been
2983 The colors and exception mode commands (%colors/%xmode) have been
2873 synchronized to also take this into account, so users can get
2984 synchronized to also take this into account, so users can get
2874 verbose exceptions for their threaded code as well. I also added
2985 verbose exceptions for their threaded code as well. I also added
2875 support for activating pdb inside this exception handler as well,
2986 support for activating pdb inside this exception handler as well,
2876 so now GUI authors can use IPython's enhanced pdb at runtime.
2987 so now GUI authors can use IPython's enhanced pdb at runtime.
2877
2988
2878 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2989 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2879 true by default, and add it to the shipped ipythonrc file. Since
2990 true by default, and add it to the shipped ipythonrc file. Since
2880 this asks the user before proceeding, I think it's OK to make it
2991 this asks the user before proceeding, I think it's OK to make it
2881 true by default.
2992 true by default.
2882
2993
2883 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2994 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2884 of the previous special-casing of input in the eval loop. I think
2995 of the previous special-casing of input in the eval loop. I think
2885 this is cleaner, as they really are commands and shouldn't have
2996 this is cleaner, as they really are commands and shouldn't have
2886 a special role in the middle of the core code.
2997 a special role in the middle of the core code.
2887
2998
2888 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2999 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2889
3000
2890 * IPython/iplib.py (edit_syntax_error): added support for
3001 * IPython/iplib.py (edit_syntax_error): added support for
2891 automatically reopening the editor if the file had a syntax error
3002 automatically reopening the editor if the file had a syntax error
2892 in it. Thanks to scottt who provided the patch at:
3003 in it. Thanks to scottt who provided the patch at:
2893 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3004 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2894 version committed).
3005 version committed).
2895
3006
2896 * IPython/iplib.py (handle_normal): add suport for multi-line
3007 * IPython/iplib.py (handle_normal): add suport for multi-line
2897 input with emtpy lines. This fixes
3008 input with emtpy lines. This fixes
2898 http://www.scipy.net/roundup/ipython/issue43 and a similar
3009 http://www.scipy.net/roundup/ipython/issue43 and a similar
2899 discussion on the user list.
3010 discussion on the user list.
2900
3011
2901 WARNING: a behavior change is necessarily introduced to support
3012 WARNING: a behavior change is necessarily introduced to support
2902 blank lines: now a single blank line with whitespace does NOT
3013 blank lines: now a single blank line with whitespace does NOT
2903 break the input loop, which means that when autoindent is on, by
3014 break the input loop, which means that when autoindent is on, by
2904 default hitting return on the next (indented) line does NOT exit.
3015 default hitting return on the next (indented) line does NOT exit.
2905
3016
2906 Instead, to exit a multiline input you can either have:
3017 Instead, to exit a multiline input you can either have:
2907
3018
2908 - TWO whitespace lines (just hit return again), or
3019 - TWO whitespace lines (just hit return again), or
2909 - a single whitespace line of a different length than provided
3020 - a single whitespace line of a different length than provided
2910 by the autoindent (add or remove a space).
3021 by the autoindent (add or remove a space).
2911
3022
2912 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3023 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2913 module to better organize all readline-related functionality.
3024 module to better organize all readline-related functionality.
2914 I've deleted FlexCompleter and put all completion clases here.
3025 I've deleted FlexCompleter and put all completion clases here.
2915
3026
2916 * IPython/iplib.py (raw_input): improve indentation management.
3027 * IPython/iplib.py (raw_input): improve indentation management.
2917 It is now possible to paste indented code with autoindent on, and
3028 It is now possible to paste indented code with autoindent on, and
2918 the code is interpreted correctly (though it still looks bad on
3029 the code is interpreted correctly (though it still looks bad on
2919 screen, due to the line-oriented nature of ipython).
3030 screen, due to the line-oriented nature of ipython).
2920 (MagicCompleter.complete): change behavior so that a TAB key on an
3031 (MagicCompleter.complete): change behavior so that a TAB key on an
2921 otherwise empty line actually inserts a tab, instead of completing
3032 otherwise empty line actually inserts a tab, instead of completing
2922 on the entire global namespace. This makes it easier to use the
3033 on the entire global namespace. This makes it easier to use the
2923 TAB key for indentation. After a request by Hans Meine
3034 TAB key for indentation. After a request by Hans Meine
2924 <hans_meine-AT-gmx.net>
3035 <hans_meine-AT-gmx.net>
2925 (_prefilter): add support so that typing plain 'exit' or 'quit'
3036 (_prefilter): add support so that typing plain 'exit' or 'quit'
2926 does a sensible thing. Originally I tried to deviate as little as
3037 does a sensible thing. Originally I tried to deviate as little as
2927 possible from the default python behavior, but even that one may
3038 possible from the default python behavior, but even that one may
2928 change in this direction (thread on python-dev to that effect).
3039 change in this direction (thread on python-dev to that effect).
2929 Regardless, ipython should do the right thing even if CPython's
3040 Regardless, ipython should do the right thing even if CPython's
2930 '>>>' prompt doesn't.
3041 '>>>' prompt doesn't.
2931 (InteractiveShell): removed subclassing code.InteractiveConsole
3042 (InteractiveShell): removed subclassing code.InteractiveConsole
2932 class. By now we'd overridden just about all of its methods: I've
3043 class. By now we'd overridden just about all of its methods: I've
2933 copied the remaining two over, and now ipython is a standalone
3044 copied the remaining two over, and now ipython is a standalone
2934 class. This will provide a clearer picture for the chainsaw
3045 class. This will provide a clearer picture for the chainsaw
2935 branch refactoring.
3046 branch refactoring.
2936
3047
2937 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3048 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2938
3049
2939 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3050 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2940 failures for objects which break when dir() is called on them.
3051 failures for objects which break when dir() is called on them.
2941
3052
2942 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3053 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2943 distinct local and global namespaces in the completer API. This
3054 distinct local and global namespaces in the completer API. This
2944 change allows us to properly handle completion with distinct
3055 change allows us to properly handle completion with distinct
2945 scopes, including in embedded instances (this had never really
3056 scopes, including in embedded instances (this had never really
2946 worked correctly).
3057 worked correctly).
2947
3058
2948 Note: this introduces a change in the constructor for
3059 Note: this introduces a change in the constructor for
2949 MagicCompleter, as a new global_namespace parameter is now the
3060 MagicCompleter, as a new global_namespace parameter is now the
2950 second argument (the others were bumped one position).
3061 second argument (the others were bumped one position).
2951
3062
2952 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3063 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2953
3064
2954 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3065 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2955 embedded instances (which can be done now thanks to Vivian's
3066 embedded instances (which can be done now thanks to Vivian's
2956 frame-handling fixes for pdb).
3067 frame-handling fixes for pdb).
2957 (InteractiveShell.__init__): Fix namespace handling problem in
3068 (InteractiveShell.__init__): Fix namespace handling problem in
2958 embedded instances. We were overwriting __main__ unconditionally,
3069 embedded instances. We were overwriting __main__ unconditionally,
2959 and this should only be done for 'full' (non-embedded) IPython;
3070 and this should only be done for 'full' (non-embedded) IPython;
2960 embedded instances must respect the caller's __main__. Thanks to
3071 embedded instances must respect the caller's __main__. Thanks to
2961 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3072 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2962
3073
2963 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3074 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2964
3075
2965 * setup.py: added download_url to setup(). This registers the
3076 * setup.py: added download_url to setup(). This registers the
2966 download address at PyPI, which is not only useful to humans
3077 download address at PyPI, which is not only useful to humans
2967 browsing the site, but is also picked up by setuptools (the Eggs
3078 browsing the site, but is also picked up by setuptools (the Eggs
2968 machinery). Thanks to Ville and R. Kern for the info/discussion
3079 machinery). Thanks to Ville and R. Kern for the info/discussion
2969 on this.
3080 on this.
2970
3081
2971 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3082 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2972
3083
2973 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3084 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2974 This brings a lot of nice functionality to the pdb mode, which now
3085 This brings a lot of nice functionality to the pdb mode, which now
2975 has tab-completion, syntax highlighting, and better stack handling
3086 has tab-completion, syntax highlighting, and better stack handling
2976 than before. Many thanks to Vivian De Smedt
3087 than before. Many thanks to Vivian De Smedt
2977 <vivian-AT-vdesmedt.com> for the original patches.
3088 <vivian-AT-vdesmedt.com> for the original patches.
2978
3089
2979 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3090 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2980
3091
2981 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3092 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2982 sequence to consistently accept the banner argument. The
3093 sequence to consistently accept the banner argument. The
2983 inconsistency was tripping SAGE, thanks to Gary Zablackis
3094 inconsistency was tripping SAGE, thanks to Gary Zablackis
2984 <gzabl-AT-yahoo.com> for the report.
3095 <gzabl-AT-yahoo.com> for the report.
2985
3096
2986 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3097 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2987
3098
2988 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3099 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2989 Fix bug where a naked 'alias' call in the ipythonrc file would
3100 Fix bug where a naked 'alias' call in the ipythonrc file would
2990 cause a crash. Bug reported by Jorgen Stenarson.
3101 cause a crash. Bug reported by Jorgen Stenarson.
2991
3102
2992 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3103 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2993
3104
2994 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3105 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2995 startup time.
3106 startup time.
2996
3107
2997 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3108 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2998 instances had introduced a bug with globals in normal code. Now
3109 instances had introduced a bug with globals in normal code. Now
2999 it's working in all cases.
3110 it's working in all cases.
3000
3111
3001 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3112 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3002 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3113 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3003 has been introduced to set the default case sensitivity of the
3114 has been introduced to set the default case sensitivity of the
3004 searches. Users can still select either mode at runtime on a
3115 searches. Users can still select either mode at runtime on a
3005 per-search basis.
3116 per-search basis.
3006
3117
3007 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3118 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3008
3119
3009 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3120 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3010 attributes in wildcard searches for subclasses. Modified version
3121 attributes in wildcard searches for subclasses. Modified version
3011 of a patch by Jorgen.
3122 of a patch by Jorgen.
3012
3123
3013 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3124 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3014
3125
3015 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3126 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3016 embedded instances. I added a user_global_ns attribute to the
3127 embedded instances. I added a user_global_ns attribute to the
3017 InteractiveShell class to handle this.
3128 InteractiveShell class to handle this.
3018
3129
3019 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3130 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3020
3131
3021 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3132 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3022 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3133 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3023 (reported under win32, but may happen also in other platforms).
3134 (reported under win32, but may happen also in other platforms).
3024 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3135 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3025
3136
3026 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3137 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3027
3138
3028 * IPython/Magic.py (magic_psearch): new support for wildcard
3139 * IPython/Magic.py (magic_psearch): new support for wildcard
3029 patterns. Now, typing ?a*b will list all names which begin with a
3140 patterns. Now, typing ?a*b will list all names which begin with a
3030 and end in b, for example. The %psearch magic has full
3141 and end in b, for example. The %psearch magic has full
3031 docstrings. Many thanks to JΓΆrgen Stenarson
3142 docstrings. Many thanks to JΓΆrgen Stenarson
3032 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3143 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3033 implementing this functionality.
3144 implementing this functionality.
3034
3145
3035 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3146 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3036
3147
3037 * Manual: fixed long-standing annoyance of double-dashes (as in
3148 * Manual: fixed long-standing annoyance of double-dashes (as in
3038 --prefix=~, for example) being stripped in the HTML version. This
3149 --prefix=~, for example) being stripped in the HTML version. This
3039 is a latex2html bug, but a workaround was provided. Many thanks
3150 is a latex2html bug, but a workaround was provided. Many thanks
3040 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3151 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3041 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3152 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3042 rolling. This seemingly small issue had tripped a number of users
3153 rolling. This seemingly small issue had tripped a number of users
3043 when first installing, so I'm glad to see it gone.
3154 when first installing, so I'm glad to see it gone.
3044
3155
3045 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3156 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3046
3157
3047 * IPython/Extensions/numeric_formats.py: fix missing import,
3158 * IPython/Extensions/numeric_formats.py: fix missing import,
3048 reported by Stephen Walton.
3159 reported by Stephen Walton.
3049
3160
3050 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3161 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3051
3162
3052 * IPython/demo.py: finish demo module, fully documented now.
3163 * IPython/demo.py: finish demo module, fully documented now.
3053
3164
3054 * IPython/genutils.py (file_read): simple little utility to read a
3165 * IPython/genutils.py (file_read): simple little utility to read a
3055 file and ensure it's closed afterwards.
3166 file and ensure it's closed afterwards.
3056
3167
3057 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3168 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3058
3169
3059 * IPython/demo.py (Demo.__init__): added support for individually
3170 * IPython/demo.py (Demo.__init__): added support for individually
3060 tagging blocks for automatic execution.
3171 tagging blocks for automatic execution.
3061
3172
3062 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3173 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3063 syntax-highlighted python sources, requested by John.
3174 syntax-highlighted python sources, requested by John.
3064
3175
3065 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3176 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3066
3177
3067 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3178 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3068 finishing.
3179 finishing.
3069
3180
3070 * IPython/genutils.py (shlex_split): moved from Magic to here,
3181 * IPython/genutils.py (shlex_split): moved from Magic to here,
3071 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3182 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3072
3183
3073 * IPython/demo.py (Demo.__init__): added support for silent
3184 * IPython/demo.py (Demo.__init__): added support for silent
3074 blocks, improved marks as regexps, docstrings written.
3185 blocks, improved marks as regexps, docstrings written.
3075 (Demo.__init__): better docstring, added support for sys.argv.
3186 (Demo.__init__): better docstring, added support for sys.argv.
3076
3187
3077 * IPython/genutils.py (marquee): little utility used by the demo
3188 * IPython/genutils.py (marquee): little utility used by the demo
3078 code, handy in general.
3189 code, handy in general.
3079
3190
3080 * IPython/demo.py (Demo.__init__): new class for interactive
3191 * IPython/demo.py (Demo.__init__): new class for interactive
3081 demos. Not documented yet, I just wrote it in a hurry for
3192 demos. Not documented yet, I just wrote it in a hurry for
3082 scipy'05. Will docstring later.
3193 scipy'05. Will docstring later.
3083
3194
3084 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3195 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3085
3196
3086 * IPython/Shell.py (sigint_handler): Drastic simplification which
3197 * IPython/Shell.py (sigint_handler): Drastic simplification which
3087 also seems to make Ctrl-C work correctly across threads! This is
3198 also seems to make Ctrl-C work correctly across threads! This is
3088 so simple, that I can't beleive I'd missed it before. Needs more
3199 so simple, that I can't beleive I'd missed it before. Needs more
3089 testing, though.
3200 testing, though.
3090 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3201 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3091 like this before...
3202 like this before...
3092
3203
3093 * IPython/genutils.py (get_home_dir): add protection against
3204 * IPython/genutils.py (get_home_dir): add protection against
3094 non-dirs in win32 registry.
3205 non-dirs in win32 registry.
3095
3206
3096 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3207 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3097 bug where dict was mutated while iterating (pysh crash).
3208 bug where dict was mutated while iterating (pysh crash).
3098
3209
3099 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3210 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3100
3211
3101 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3212 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3102 spurious newlines added by this routine. After a report by
3213 spurious newlines added by this routine. After a report by
3103 F. Mantegazza.
3214 F. Mantegazza.
3104
3215
3105 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3216 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3106
3217
3107 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3218 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3108 calls. These were a leftover from the GTK 1.x days, and can cause
3219 calls. These were a leftover from the GTK 1.x days, and can cause
3109 problems in certain cases (after a report by John Hunter).
3220 problems in certain cases (after a report by John Hunter).
3110
3221
3111 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3222 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3112 os.getcwd() fails at init time. Thanks to patch from David Remahl
3223 os.getcwd() fails at init time. Thanks to patch from David Remahl
3113 <chmod007-AT-mac.com>.
3224 <chmod007-AT-mac.com>.
3114 (InteractiveShell.__init__): prevent certain special magics from
3225 (InteractiveShell.__init__): prevent certain special magics from
3115 being shadowed by aliases. Closes
3226 being shadowed by aliases. Closes
3116 http://www.scipy.net/roundup/ipython/issue41.
3227 http://www.scipy.net/roundup/ipython/issue41.
3117
3228
3118 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3229 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3119
3230
3120 * IPython/iplib.py (InteractiveShell.complete): Added new
3231 * IPython/iplib.py (InteractiveShell.complete): Added new
3121 top-level completion method to expose the completion mechanism
3232 top-level completion method to expose the completion mechanism
3122 beyond readline-based environments.
3233 beyond readline-based environments.
3123
3234
3124 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3235 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3125
3236
3126 * tools/ipsvnc (svnversion): fix svnversion capture.
3237 * tools/ipsvnc (svnversion): fix svnversion capture.
3127
3238
3128 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3239 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3129 attribute to self, which was missing. Before, it was set by a
3240 attribute to self, which was missing. Before, it was set by a
3130 routine which in certain cases wasn't being called, so the
3241 routine which in certain cases wasn't being called, so the
3131 instance could end up missing the attribute. This caused a crash.
3242 instance could end up missing the attribute. This caused a crash.
3132 Closes http://www.scipy.net/roundup/ipython/issue40.
3243 Closes http://www.scipy.net/roundup/ipython/issue40.
3133
3244
3134 2005-08-16 Fernando Perez <fperez@colorado.edu>
3245 2005-08-16 Fernando Perez <fperez@colorado.edu>
3135
3246
3136 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3247 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3137 contains non-string attribute. Closes
3248 contains non-string attribute. Closes
3138 http://www.scipy.net/roundup/ipython/issue38.
3249 http://www.scipy.net/roundup/ipython/issue38.
3139
3250
3140 2005-08-14 Fernando Perez <fperez@colorado.edu>
3251 2005-08-14 Fernando Perez <fperez@colorado.edu>
3141
3252
3142 * tools/ipsvnc: Minor improvements, to add changeset info.
3253 * tools/ipsvnc: Minor improvements, to add changeset info.
3143
3254
3144 2005-08-12 Fernando Perez <fperez@colorado.edu>
3255 2005-08-12 Fernando Perez <fperez@colorado.edu>
3145
3256
3146 * IPython/iplib.py (runsource): remove self.code_to_run_src
3257 * IPython/iplib.py (runsource): remove self.code_to_run_src
3147 attribute. I realized this is nothing more than
3258 attribute. I realized this is nothing more than
3148 '\n'.join(self.buffer), and having the same data in two different
3259 '\n'.join(self.buffer), and having the same data in two different
3149 places is just asking for synchronization bugs. This may impact
3260 places is just asking for synchronization bugs. This may impact
3150 people who have custom exception handlers, so I need to warn
3261 people who have custom exception handlers, so I need to warn
3151 ipython-dev about it (F. Mantegazza may use them).
3262 ipython-dev about it (F. Mantegazza may use them).
3152
3263
3153 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3264 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3154
3265
3155 * IPython/genutils.py: fix 2.2 compatibility (generators)
3266 * IPython/genutils.py: fix 2.2 compatibility (generators)
3156
3267
3157 2005-07-18 Fernando Perez <fperez@colorado.edu>
3268 2005-07-18 Fernando Perez <fperez@colorado.edu>
3158
3269
3159 * IPython/genutils.py (get_home_dir): fix to help users with
3270 * IPython/genutils.py (get_home_dir): fix to help users with
3160 invalid $HOME under win32.
3271 invalid $HOME under win32.
3161
3272
3162 2005-07-17 Fernando Perez <fperez@colorado.edu>
3273 2005-07-17 Fernando Perez <fperez@colorado.edu>
3163
3274
3164 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3275 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3165 some old hacks and clean up a bit other routines; code should be
3276 some old hacks and clean up a bit other routines; code should be
3166 simpler and a bit faster.
3277 simpler and a bit faster.
3167
3278
3168 * IPython/iplib.py (interact): removed some last-resort attempts
3279 * IPython/iplib.py (interact): removed some last-resort attempts
3169 to survive broken stdout/stderr. That code was only making it
3280 to survive broken stdout/stderr. That code was only making it
3170 harder to abstract out the i/o (necessary for gui integration),
3281 harder to abstract out the i/o (necessary for gui integration),
3171 and the crashes it could prevent were extremely rare in practice
3282 and the crashes it could prevent were extremely rare in practice
3172 (besides being fully user-induced in a pretty violent manner).
3283 (besides being fully user-induced in a pretty violent manner).
3173
3284
3174 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3285 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3175 Nothing major yet, but the code is simpler to read; this should
3286 Nothing major yet, but the code is simpler to read; this should
3176 make it easier to do more serious modifications in the future.
3287 make it easier to do more serious modifications in the future.
3177
3288
3178 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3289 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3179 which broke in .15 (thanks to a report by Ville).
3290 which broke in .15 (thanks to a report by Ville).
3180
3291
3181 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3292 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3182 be quite correct, I know next to nothing about unicode). This
3293 be quite correct, I know next to nothing about unicode). This
3183 will allow unicode strings to be used in prompts, amongst other
3294 will allow unicode strings to be used in prompts, amongst other
3184 cases. It also will prevent ipython from crashing when unicode
3295 cases. It also will prevent ipython from crashing when unicode
3185 shows up unexpectedly in many places. If ascii encoding fails, we
3296 shows up unexpectedly in many places. If ascii encoding fails, we
3186 assume utf_8. Currently the encoding is not a user-visible
3297 assume utf_8. Currently the encoding is not a user-visible
3187 setting, though it could be made so if there is demand for it.
3298 setting, though it could be made so if there is demand for it.
3188
3299
3189 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3300 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3190
3301
3191 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3302 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3192
3303
3193 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3304 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3194
3305
3195 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3306 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3196 code can work transparently for 2.2/2.3.
3307 code can work transparently for 2.2/2.3.
3197
3308
3198 2005-07-16 Fernando Perez <fperez@colorado.edu>
3309 2005-07-16 Fernando Perez <fperez@colorado.edu>
3199
3310
3200 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3311 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3201 out of the color scheme table used for coloring exception
3312 out of the color scheme table used for coloring exception
3202 tracebacks. This allows user code to add new schemes at runtime.
3313 tracebacks. This allows user code to add new schemes at runtime.
3203 This is a minimally modified version of the patch at
3314 This is a minimally modified version of the patch at
3204 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3315 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3205 for the contribution.
3316 for the contribution.
3206
3317
3207 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3318 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3208 slightly modified version of the patch in
3319 slightly modified version of the patch in
3209 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3320 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3210 to remove the previous try/except solution (which was costlier).
3321 to remove the previous try/except solution (which was costlier).
3211 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3322 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3212
3323
3213 2005-06-08 Fernando Perez <fperez@colorado.edu>
3324 2005-06-08 Fernando Perez <fperez@colorado.edu>
3214
3325
3215 * IPython/iplib.py (write/write_err): Add methods to abstract all
3326 * IPython/iplib.py (write/write_err): Add methods to abstract all
3216 I/O a bit more.
3327 I/O a bit more.
3217
3328
3218 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3329 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3219 warning, reported by Aric Hagberg, fix by JD Hunter.
3330 warning, reported by Aric Hagberg, fix by JD Hunter.
3220
3331
3221 2005-06-02 *** Released version 0.6.15
3332 2005-06-02 *** Released version 0.6.15
3222
3333
3223 2005-06-01 Fernando Perez <fperez@colorado.edu>
3334 2005-06-01 Fernando Perez <fperez@colorado.edu>
3224
3335
3225 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3336 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3226 tab-completion of filenames within open-quoted strings. Note that
3337 tab-completion of filenames within open-quoted strings. Note that
3227 this requires that in ~/.ipython/ipythonrc, users change the
3338 this requires that in ~/.ipython/ipythonrc, users change the
3228 readline delimiters configuration to read:
3339 readline delimiters configuration to read:
3229
3340
3230 readline_remove_delims -/~
3341 readline_remove_delims -/~
3231
3342
3232
3343
3233 2005-05-31 *** Released version 0.6.14
3344 2005-05-31 *** Released version 0.6.14
3234
3345
3235 2005-05-29 Fernando Perez <fperez@colorado.edu>
3346 2005-05-29 Fernando Perez <fperez@colorado.edu>
3236
3347
3237 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3348 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3238 with files not on the filesystem. Reported by Eliyahu Sandler
3349 with files not on the filesystem. Reported by Eliyahu Sandler
3239 <eli@gondolin.net>
3350 <eli@gondolin.net>
3240
3351
3241 2005-05-22 Fernando Perez <fperez@colorado.edu>
3352 2005-05-22 Fernando Perez <fperez@colorado.edu>
3242
3353
3243 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3354 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3244 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3355 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3245
3356
3246 2005-05-19 Fernando Perez <fperez@colorado.edu>
3357 2005-05-19 Fernando Perez <fperez@colorado.edu>
3247
3358
3248 * IPython/iplib.py (safe_execfile): close a file which could be
3359 * IPython/iplib.py (safe_execfile): close a file which could be
3249 left open (causing problems in win32, which locks open files).
3360 left open (causing problems in win32, which locks open files).
3250 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3361 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3251
3362
3252 2005-05-18 Fernando Perez <fperez@colorado.edu>
3363 2005-05-18 Fernando Perez <fperez@colorado.edu>
3253
3364
3254 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3365 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3255 keyword arguments correctly to safe_execfile().
3366 keyword arguments correctly to safe_execfile().
3256
3367
3257 2005-05-13 Fernando Perez <fperez@colorado.edu>
3368 2005-05-13 Fernando Perez <fperez@colorado.edu>
3258
3369
3259 * ipython.1: Added info about Qt to manpage, and threads warning
3370 * ipython.1: Added info about Qt to manpage, and threads warning
3260 to usage page (invoked with --help).
3371 to usage page (invoked with --help).
3261
3372
3262 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3373 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3263 new matcher (it goes at the end of the priority list) to do
3374 new matcher (it goes at the end of the priority list) to do
3264 tab-completion on named function arguments. Submitted by George
3375 tab-completion on named function arguments. Submitted by George
3265 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3376 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3266 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3377 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3267 for more details.
3378 for more details.
3268
3379
3269 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3380 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3270 SystemExit exceptions in the script being run. Thanks to a report
3381 SystemExit exceptions in the script being run. Thanks to a report
3271 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3382 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3272 producing very annoying behavior when running unit tests.
3383 producing very annoying behavior when running unit tests.
3273
3384
3274 2005-05-12 Fernando Perez <fperez@colorado.edu>
3385 2005-05-12 Fernando Perez <fperez@colorado.edu>
3275
3386
3276 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3387 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3277 which I'd broken (again) due to a changed regexp. In the process,
3388 which I'd broken (again) due to a changed regexp. In the process,
3278 added ';' as an escape to auto-quote the whole line without
3389 added ';' as an escape to auto-quote the whole line without
3279 splitting its arguments. Thanks to a report by Jerry McRae
3390 splitting its arguments. Thanks to a report by Jerry McRae
3280 <qrs0xyc02-AT-sneakemail.com>.
3391 <qrs0xyc02-AT-sneakemail.com>.
3281
3392
3282 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3393 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3283 possible crashes caused by a TokenError. Reported by Ed Schofield
3394 possible crashes caused by a TokenError. Reported by Ed Schofield
3284 <schofield-AT-ftw.at>.
3395 <schofield-AT-ftw.at>.
3285
3396
3286 2005-05-06 Fernando Perez <fperez@colorado.edu>
3397 2005-05-06 Fernando Perez <fperez@colorado.edu>
3287
3398
3288 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3399 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3289
3400
3290 2005-04-29 Fernando Perez <fperez@colorado.edu>
3401 2005-04-29 Fernando Perez <fperez@colorado.edu>
3291
3402
3292 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3403 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3293 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3404 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3294 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3405 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3295 which provides support for Qt interactive usage (similar to the
3406 which provides support for Qt interactive usage (similar to the
3296 existing one for WX and GTK). This had been often requested.
3407 existing one for WX and GTK). This had been often requested.
3297
3408
3298 2005-04-14 *** Released version 0.6.13
3409 2005-04-14 *** Released version 0.6.13
3299
3410
3300 2005-04-08 Fernando Perez <fperez@colorado.edu>
3411 2005-04-08 Fernando Perez <fperez@colorado.edu>
3301
3412
3302 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3413 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3303 from _ofind, which gets called on almost every input line. Now,
3414 from _ofind, which gets called on almost every input line. Now,
3304 we only try to get docstrings if they are actually going to be
3415 we only try to get docstrings if they are actually going to be
3305 used (the overhead of fetching unnecessary docstrings can be
3416 used (the overhead of fetching unnecessary docstrings can be
3306 noticeable for certain objects, such as Pyro proxies).
3417 noticeable for certain objects, such as Pyro proxies).
3307
3418
3308 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3419 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3309 for completers. For some reason I had been passing them the state
3420 for completers. For some reason I had been passing them the state
3310 variable, which completers never actually need, and was in
3421 variable, which completers never actually need, and was in
3311 conflict with the rlcompleter API. Custom completers ONLY need to
3422 conflict with the rlcompleter API. Custom completers ONLY need to
3312 take the text parameter.
3423 take the text parameter.
3313
3424
3314 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3425 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3315 work correctly in pysh. I've also moved all the logic which used
3426 work correctly in pysh. I've also moved all the logic which used
3316 to be in pysh.py here, which will prevent problems with future
3427 to be in pysh.py here, which will prevent problems with future
3317 upgrades. However, this time I must warn users to update their
3428 upgrades. However, this time I must warn users to update their
3318 pysh profile to include the line
3429 pysh profile to include the line
3319
3430
3320 import_all IPython.Extensions.InterpreterExec
3431 import_all IPython.Extensions.InterpreterExec
3321
3432
3322 because otherwise things won't work for them. They MUST also
3433 because otherwise things won't work for them. They MUST also
3323 delete pysh.py and the line
3434 delete pysh.py and the line
3324
3435
3325 execfile pysh.py
3436 execfile pysh.py
3326
3437
3327 from their ipythonrc-pysh.
3438 from their ipythonrc-pysh.
3328
3439
3329 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3440 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3330 robust in the face of objects whose dir() returns non-strings
3441 robust in the face of objects whose dir() returns non-strings
3331 (which it shouldn't, but some broken libs like ITK do). Thanks to
3442 (which it shouldn't, but some broken libs like ITK do). Thanks to
3332 a patch by John Hunter (implemented differently, though). Also
3443 a patch by John Hunter (implemented differently, though). Also
3333 minor improvements by using .extend instead of + on lists.
3444 minor improvements by using .extend instead of + on lists.
3334
3445
3335 * pysh.py:
3446 * pysh.py:
3336
3447
3337 2005-04-06 Fernando Perez <fperez@colorado.edu>
3448 2005-04-06 Fernando Perez <fperez@colorado.edu>
3338
3449
3339 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3450 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3340 by default, so that all users benefit from it. Those who don't
3451 by default, so that all users benefit from it. Those who don't
3341 want it can still turn it off.
3452 want it can still turn it off.
3342
3453
3343 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3454 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3344 config file, I'd forgotten about this, so users were getting it
3455 config file, I'd forgotten about this, so users were getting it
3345 off by default.
3456 off by default.
3346
3457
3347 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3458 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3348 consistency. Now magics can be called in multiline statements,
3459 consistency. Now magics can be called in multiline statements,
3349 and python variables can be expanded in magic calls via $var.
3460 and python variables can be expanded in magic calls via $var.
3350 This makes the magic system behave just like aliases or !system
3461 This makes the magic system behave just like aliases or !system
3351 calls.
3462 calls.
3352
3463
3353 2005-03-28 Fernando Perez <fperez@colorado.edu>
3464 2005-03-28 Fernando Perez <fperez@colorado.edu>
3354
3465
3355 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3466 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3356 expensive string additions for building command. Add support for
3467 expensive string additions for building command. Add support for
3357 trailing ';' when autocall is used.
3468 trailing ';' when autocall is used.
3358
3469
3359 2005-03-26 Fernando Perez <fperez@colorado.edu>
3470 2005-03-26 Fernando Perez <fperez@colorado.edu>
3360
3471
3361 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3472 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3362 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3473 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3363 ipython.el robust against prompts with any number of spaces
3474 ipython.el robust against prompts with any number of spaces
3364 (including 0) after the ':' character.
3475 (including 0) after the ':' character.
3365
3476
3366 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3477 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3367 continuation prompt, which misled users to think the line was
3478 continuation prompt, which misled users to think the line was
3368 already indented. Closes debian Bug#300847, reported to me by
3479 already indented. Closes debian Bug#300847, reported to me by
3369 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3480 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3370
3481
3371 2005-03-23 Fernando Perez <fperez@colorado.edu>
3482 2005-03-23 Fernando Perez <fperez@colorado.edu>
3372
3483
3373 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3484 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3374 properly aligned if they have embedded newlines.
3485 properly aligned if they have embedded newlines.
3375
3486
3376 * IPython/iplib.py (runlines): Add a public method to expose
3487 * IPython/iplib.py (runlines): Add a public method to expose
3377 IPython's code execution machinery, so that users can run strings
3488 IPython's code execution machinery, so that users can run strings
3378 as if they had been typed at the prompt interactively.
3489 as if they had been typed at the prompt interactively.
3379 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3490 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3380 methods which can call the system shell, but with python variable
3491 methods which can call the system shell, but with python variable
3381 expansion. The three such methods are: __IPYTHON__.system,
3492 expansion. The three such methods are: __IPYTHON__.system,
3382 .getoutput and .getoutputerror. These need to be documented in a
3493 .getoutput and .getoutputerror. These need to be documented in a
3383 'public API' section (to be written) of the manual.
3494 'public API' section (to be written) of the manual.
3384
3495
3385 2005-03-20 Fernando Perez <fperez@colorado.edu>
3496 2005-03-20 Fernando Perez <fperez@colorado.edu>
3386
3497
3387 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3498 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3388 for custom exception handling. This is quite powerful, and it
3499 for custom exception handling. This is quite powerful, and it
3389 allows for user-installable exception handlers which can trap
3500 allows for user-installable exception handlers which can trap
3390 custom exceptions at runtime and treat them separately from
3501 custom exceptions at runtime and treat them separately from
3391 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3502 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3392 Mantegazza <mantegazza-AT-ill.fr>.
3503 Mantegazza <mantegazza-AT-ill.fr>.
3393 (InteractiveShell.set_custom_completer): public API function to
3504 (InteractiveShell.set_custom_completer): public API function to
3394 add new completers at runtime.
3505 add new completers at runtime.
3395
3506
3396 2005-03-19 Fernando Perez <fperez@colorado.edu>
3507 2005-03-19 Fernando Perez <fperez@colorado.edu>
3397
3508
3398 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3509 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3399 allow objects which provide their docstrings via non-standard
3510 allow objects which provide their docstrings via non-standard
3400 mechanisms (like Pyro proxies) to still be inspected by ipython's
3511 mechanisms (like Pyro proxies) to still be inspected by ipython's
3401 ? system.
3512 ? system.
3402
3513
3403 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3514 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3404 automatic capture system. I tried quite hard to make it work
3515 automatic capture system. I tried quite hard to make it work
3405 reliably, and simply failed. I tried many combinations with the
3516 reliably, and simply failed. I tried many combinations with the
3406 subprocess module, but eventually nothing worked in all needed
3517 subprocess module, but eventually nothing worked in all needed
3407 cases (not blocking stdin for the child, duplicating stdout
3518 cases (not blocking stdin for the child, duplicating stdout
3408 without blocking, etc). The new %sc/%sx still do capture to these
3519 without blocking, etc). The new %sc/%sx still do capture to these
3409 magical list/string objects which make shell use much more
3520 magical list/string objects which make shell use much more
3410 conveninent, so not all is lost.
3521 conveninent, so not all is lost.
3411
3522
3412 XXX - FIX MANUAL for the change above!
3523 XXX - FIX MANUAL for the change above!
3413
3524
3414 (runsource): I copied code.py's runsource() into ipython to modify
3525 (runsource): I copied code.py's runsource() into ipython to modify
3415 it a bit. Now the code object and source to be executed are
3526 it a bit. Now the code object and source to be executed are
3416 stored in ipython. This makes this info accessible to third-party
3527 stored in ipython. This makes this info accessible to third-party
3417 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3528 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3418 Mantegazza <mantegazza-AT-ill.fr>.
3529 Mantegazza <mantegazza-AT-ill.fr>.
3419
3530
3420 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3531 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3421 history-search via readline (like C-p/C-n). I'd wanted this for a
3532 history-search via readline (like C-p/C-n). I'd wanted this for a
3422 long time, but only recently found out how to do it. For users
3533 long time, but only recently found out how to do it. For users
3423 who already have their ipythonrc files made and want this, just
3534 who already have their ipythonrc files made and want this, just
3424 add:
3535 add:
3425
3536
3426 readline_parse_and_bind "\e[A": history-search-backward
3537 readline_parse_and_bind "\e[A": history-search-backward
3427 readline_parse_and_bind "\e[B": history-search-forward
3538 readline_parse_and_bind "\e[B": history-search-forward
3428
3539
3429 2005-03-18 Fernando Perez <fperez@colorado.edu>
3540 2005-03-18 Fernando Perez <fperez@colorado.edu>
3430
3541
3431 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3542 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3432 LSString and SList classes which allow transparent conversions
3543 LSString and SList classes which allow transparent conversions
3433 between list mode and whitespace-separated string.
3544 between list mode and whitespace-separated string.
3434 (magic_r): Fix recursion problem in %r.
3545 (magic_r): Fix recursion problem in %r.
3435
3546
3436 * IPython/genutils.py (LSString): New class to be used for
3547 * IPython/genutils.py (LSString): New class to be used for
3437 automatic storage of the results of all alias/system calls in _o
3548 automatic storage of the results of all alias/system calls in _o
3438 and _e (stdout/err). These provide a .l/.list attribute which
3549 and _e (stdout/err). These provide a .l/.list attribute which
3439 does automatic splitting on newlines. This means that for most
3550 does automatic splitting on newlines. This means that for most
3440 uses, you'll never need to do capturing of output with %sc/%sx
3551 uses, you'll never need to do capturing of output with %sc/%sx
3441 anymore, since ipython keeps this always done for you. Note that
3552 anymore, since ipython keeps this always done for you. Note that
3442 only the LAST results are stored, the _o/e variables are
3553 only the LAST results are stored, the _o/e variables are
3443 overwritten on each call. If you need to save their contents
3554 overwritten on each call. If you need to save their contents
3444 further, simply bind them to any other name.
3555 further, simply bind them to any other name.
3445
3556
3446 2005-03-17 Fernando Perez <fperez@colorado.edu>
3557 2005-03-17 Fernando Perez <fperez@colorado.edu>
3447
3558
3448 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3559 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3449 prompt namespace handling.
3560 prompt namespace handling.
3450
3561
3451 2005-03-16 Fernando Perez <fperez@colorado.edu>
3562 2005-03-16 Fernando Perez <fperez@colorado.edu>
3452
3563
3453 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3564 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3454 classic prompts to be '>>> ' (final space was missing, and it
3565 classic prompts to be '>>> ' (final space was missing, and it
3455 trips the emacs python mode).
3566 trips the emacs python mode).
3456 (BasePrompt.__str__): Added safe support for dynamic prompt
3567 (BasePrompt.__str__): Added safe support for dynamic prompt
3457 strings. Now you can set your prompt string to be '$x', and the
3568 strings. Now you can set your prompt string to be '$x', and the
3458 value of x will be printed from your interactive namespace. The
3569 value of x will be printed from your interactive namespace. The
3459 interpolation syntax includes the full Itpl support, so
3570 interpolation syntax includes the full Itpl support, so
3460 ${foo()+x+bar()} is a valid prompt string now, and the function
3571 ${foo()+x+bar()} is a valid prompt string now, and the function
3461 calls will be made at runtime.
3572 calls will be made at runtime.
3462
3573
3463 2005-03-15 Fernando Perez <fperez@colorado.edu>
3574 2005-03-15 Fernando Perez <fperez@colorado.edu>
3464
3575
3465 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3576 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3466 avoid name clashes in pylab. %hist still works, it just forwards
3577 avoid name clashes in pylab. %hist still works, it just forwards
3467 the call to %history.
3578 the call to %history.
3468
3579
3469 2005-03-02 *** Released version 0.6.12
3580 2005-03-02 *** Released version 0.6.12
3470
3581
3471 2005-03-02 Fernando Perez <fperez@colorado.edu>
3582 2005-03-02 Fernando Perez <fperez@colorado.edu>
3472
3583
3473 * IPython/iplib.py (handle_magic): log magic calls properly as
3584 * IPython/iplib.py (handle_magic): log magic calls properly as
3474 ipmagic() function calls.
3585 ipmagic() function calls.
3475
3586
3476 * IPython/Magic.py (magic_time): Improved %time to support
3587 * IPython/Magic.py (magic_time): Improved %time to support
3477 statements and provide wall-clock as well as CPU time.
3588 statements and provide wall-clock as well as CPU time.
3478
3589
3479 2005-02-27 Fernando Perez <fperez@colorado.edu>
3590 2005-02-27 Fernando Perez <fperez@colorado.edu>
3480
3591
3481 * IPython/hooks.py: New hooks module, to expose user-modifiable
3592 * IPython/hooks.py: New hooks module, to expose user-modifiable
3482 IPython functionality in a clean manner. For now only the editor
3593 IPython functionality in a clean manner. For now only the editor
3483 hook is actually written, and other thigns which I intend to turn
3594 hook is actually written, and other thigns which I intend to turn
3484 into proper hooks aren't yet there. The display and prefilter
3595 into proper hooks aren't yet there. The display and prefilter
3485 stuff, for example, should be hooks. But at least now the
3596 stuff, for example, should be hooks. But at least now the
3486 framework is in place, and the rest can be moved here with more
3597 framework is in place, and the rest can be moved here with more
3487 time later. IPython had had a .hooks variable for a long time for
3598 time later. IPython had had a .hooks variable for a long time for
3488 this purpose, but I'd never actually used it for anything.
3599 this purpose, but I'd never actually used it for anything.
3489
3600
3490 2005-02-26 Fernando Perez <fperez@colorado.edu>
3601 2005-02-26 Fernando Perez <fperez@colorado.edu>
3491
3602
3492 * IPython/ipmaker.py (make_IPython): make the default ipython
3603 * IPython/ipmaker.py (make_IPython): make the default ipython
3493 directory be called _ipython under win32, to follow more the
3604 directory be called _ipython under win32, to follow more the
3494 naming peculiarities of that platform (where buggy software like
3605 naming peculiarities of that platform (where buggy software like
3495 Visual Sourcesafe breaks with .named directories). Reported by
3606 Visual Sourcesafe breaks with .named directories). Reported by
3496 Ville Vainio.
3607 Ville Vainio.
3497
3608
3498 2005-02-23 Fernando Perez <fperez@colorado.edu>
3609 2005-02-23 Fernando Perez <fperez@colorado.edu>
3499
3610
3500 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3611 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3501 auto_aliases for win32 which were causing problems. Users can
3612 auto_aliases for win32 which were causing problems. Users can
3502 define the ones they personally like.
3613 define the ones they personally like.
3503
3614
3504 2005-02-21 Fernando Perez <fperez@colorado.edu>
3615 2005-02-21 Fernando Perez <fperez@colorado.edu>
3505
3616
3506 * IPython/Magic.py (magic_time): new magic to time execution of
3617 * IPython/Magic.py (magic_time): new magic to time execution of
3507 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3618 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3508
3619
3509 2005-02-19 Fernando Perez <fperez@colorado.edu>
3620 2005-02-19 Fernando Perez <fperez@colorado.edu>
3510
3621
3511 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3622 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3512 into keys (for prompts, for example).
3623 into keys (for prompts, for example).
3513
3624
3514 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3625 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3515 prompts in case users want them. This introduces a small behavior
3626 prompts in case users want them. This introduces a small behavior
3516 change: ipython does not automatically add a space to all prompts
3627 change: ipython does not automatically add a space to all prompts
3517 anymore. To get the old prompts with a space, users should add it
3628 anymore. To get the old prompts with a space, users should add it
3518 manually to their ipythonrc file, so for example prompt_in1 should
3629 manually to their ipythonrc file, so for example prompt_in1 should
3519 now read 'In [\#]: ' instead of 'In [\#]:'.
3630 now read 'In [\#]: ' instead of 'In [\#]:'.
3520 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3631 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3521 file) to control left-padding of secondary prompts.
3632 file) to control left-padding of secondary prompts.
3522
3633
3523 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3634 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3524 the profiler can't be imported. Fix for Debian, which removed
3635 the profiler can't be imported. Fix for Debian, which removed
3525 profile.py because of License issues. I applied a slightly
3636 profile.py because of License issues. I applied a slightly
3526 modified version of the original Debian patch at
3637 modified version of the original Debian patch at
3527 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3638 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3528
3639
3529 2005-02-17 Fernando Perez <fperez@colorado.edu>
3640 2005-02-17 Fernando Perez <fperez@colorado.edu>
3530
3641
3531 * IPython/genutils.py (native_line_ends): Fix bug which would
3642 * IPython/genutils.py (native_line_ends): Fix bug which would
3532 cause improper line-ends under win32 b/c I was not opening files
3643 cause improper line-ends under win32 b/c I was not opening files
3533 in binary mode. Bug report and fix thanks to Ville.
3644 in binary mode. Bug report and fix thanks to Ville.
3534
3645
3535 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3646 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3536 trying to catch spurious foo[1] autocalls. My fix actually broke
3647 trying to catch spurious foo[1] autocalls. My fix actually broke
3537 ',/' autoquote/call with explicit escape (bad regexp).
3648 ',/' autoquote/call with explicit escape (bad regexp).
3538
3649
3539 2005-02-15 *** Released version 0.6.11
3650 2005-02-15 *** Released version 0.6.11
3540
3651
3541 2005-02-14 Fernando Perez <fperez@colorado.edu>
3652 2005-02-14 Fernando Perez <fperez@colorado.edu>
3542
3653
3543 * IPython/background_jobs.py: New background job management
3654 * IPython/background_jobs.py: New background job management
3544 subsystem. This is implemented via a new set of classes, and
3655 subsystem. This is implemented via a new set of classes, and
3545 IPython now provides a builtin 'jobs' object for background job
3656 IPython now provides a builtin 'jobs' object for background job
3546 execution. A convenience %bg magic serves as a lightweight
3657 execution. A convenience %bg magic serves as a lightweight
3547 frontend for starting the more common type of calls. This was
3658 frontend for starting the more common type of calls. This was
3548 inspired by discussions with B. Granger and the BackgroundCommand
3659 inspired by discussions with B. Granger and the BackgroundCommand
3549 class described in the book Python Scripting for Computational
3660 class described in the book Python Scripting for Computational
3550 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3661 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3551 (although ultimately no code from this text was used, as IPython's
3662 (although ultimately no code from this text was used, as IPython's
3552 system is a separate implementation).
3663 system is a separate implementation).
3553
3664
3554 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3665 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3555 to control the completion of single/double underscore names
3666 to control the completion of single/double underscore names
3556 separately. As documented in the example ipytonrc file, the
3667 separately. As documented in the example ipytonrc file, the
3557 readline_omit__names variable can now be set to 2, to omit even
3668 readline_omit__names variable can now be set to 2, to omit even
3558 single underscore names. Thanks to a patch by Brian Wong
3669 single underscore names. Thanks to a patch by Brian Wong
3559 <BrianWong-AT-AirgoNetworks.Com>.
3670 <BrianWong-AT-AirgoNetworks.Com>.
3560 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3671 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3561 be autocalled as foo([1]) if foo were callable. A problem for
3672 be autocalled as foo([1]) if foo were callable. A problem for
3562 things which are both callable and implement __getitem__.
3673 things which are both callable and implement __getitem__.
3563 (init_readline): Fix autoindentation for win32. Thanks to a patch
3674 (init_readline): Fix autoindentation for win32. Thanks to a patch
3564 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3675 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3565
3676
3566 2005-02-12 Fernando Perez <fperez@colorado.edu>
3677 2005-02-12 Fernando Perez <fperez@colorado.edu>
3567
3678
3568 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3679 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3569 which I had written long ago to sort out user error messages which
3680 which I had written long ago to sort out user error messages which
3570 may occur during startup. This seemed like a good idea initially,
3681 may occur during startup. This seemed like a good idea initially,
3571 but it has proven a disaster in retrospect. I don't want to
3682 but it has proven a disaster in retrospect. I don't want to
3572 change much code for now, so my fix is to set the internal 'debug'
3683 change much code for now, so my fix is to set the internal 'debug'
3573 flag to true everywhere, whose only job was precisely to control
3684 flag to true everywhere, whose only job was precisely to control
3574 this subsystem. This closes issue 28 (as well as avoiding all
3685 this subsystem. This closes issue 28 (as well as avoiding all
3575 sorts of strange hangups which occur from time to time).
3686 sorts of strange hangups which occur from time to time).
3576
3687
3577 2005-02-07 Fernando Perez <fperez@colorado.edu>
3688 2005-02-07 Fernando Perez <fperez@colorado.edu>
3578
3689
3579 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3690 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3580 previous call produced a syntax error.
3691 previous call produced a syntax error.
3581
3692
3582 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3693 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3583 classes without constructor.
3694 classes without constructor.
3584
3695
3585 2005-02-06 Fernando Perez <fperez@colorado.edu>
3696 2005-02-06 Fernando Perez <fperez@colorado.edu>
3586
3697
3587 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3698 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3588 completions with the results of each matcher, so we return results
3699 completions with the results of each matcher, so we return results
3589 to the user from all namespaces. This breaks with ipython
3700 to the user from all namespaces. This breaks with ipython
3590 tradition, but I think it's a nicer behavior. Now you get all
3701 tradition, but I think it's a nicer behavior. Now you get all
3591 possible completions listed, from all possible namespaces (python,
3702 possible completions listed, from all possible namespaces (python,
3592 filesystem, magics...) After a request by John Hunter
3703 filesystem, magics...) After a request by John Hunter
3593 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3704 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3594
3705
3595 2005-02-05 Fernando Perez <fperez@colorado.edu>
3706 2005-02-05 Fernando Perez <fperez@colorado.edu>
3596
3707
3597 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3708 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3598 the call had quote characters in it (the quotes were stripped).
3709 the call had quote characters in it (the quotes were stripped).
3599
3710
3600 2005-01-31 Fernando Perez <fperez@colorado.edu>
3711 2005-01-31 Fernando Perez <fperez@colorado.edu>
3601
3712
3602 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3713 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3603 Itpl.itpl() to make the code more robust against psyco
3714 Itpl.itpl() to make the code more robust against psyco
3604 optimizations.
3715 optimizations.
3605
3716
3606 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3717 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3607 of causing an exception. Quicker, cleaner.
3718 of causing an exception. Quicker, cleaner.
3608
3719
3609 2005-01-28 Fernando Perez <fperez@colorado.edu>
3720 2005-01-28 Fernando Perez <fperez@colorado.edu>
3610
3721
3611 * scripts/ipython_win_post_install.py (install): hardcode
3722 * scripts/ipython_win_post_install.py (install): hardcode
3612 sys.prefix+'python.exe' as the executable path. It turns out that
3723 sys.prefix+'python.exe' as the executable path. It turns out that
3613 during the post-installation run, sys.executable resolves to the
3724 during the post-installation run, sys.executable resolves to the
3614 name of the binary installer! I should report this as a distutils
3725 name of the binary installer! I should report this as a distutils
3615 bug, I think. I updated the .10 release with this tiny fix, to
3726 bug, I think. I updated the .10 release with this tiny fix, to
3616 avoid annoying the lists further.
3727 avoid annoying the lists further.
3617
3728
3618 2005-01-27 *** Released version 0.6.10
3729 2005-01-27 *** Released version 0.6.10
3619
3730
3620 2005-01-27 Fernando Perez <fperez@colorado.edu>
3731 2005-01-27 Fernando Perez <fperez@colorado.edu>
3621
3732
3622 * IPython/numutils.py (norm): Added 'inf' as optional name for
3733 * IPython/numutils.py (norm): Added 'inf' as optional name for
3623 L-infinity norm, included references to mathworld.com for vector
3734 L-infinity norm, included references to mathworld.com for vector
3624 norm definitions.
3735 norm definitions.
3625 (amin/amax): added amin/amax for array min/max. Similar to what
3736 (amin/amax): added amin/amax for array min/max. Similar to what
3626 pylab ships with after the recent reorganization of names.
3737 pylab ships with after the recent reorganization of names.
3627 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3738 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3628
3739
3629 * ipython.el: committed Alex's recent fixes and improvements.
3740 * ipython.el: committed Alex's recent fixes and improvements.
3630 Tested with python-mode from CVS, and it looks excellent. Since
3741 Tested with python-mode from CVS, and it looks excellent. Since
3631 python-mode hasn't released anything in a while, I'm temporarily
3742 python-mode hasn't released anything in a while, I'm temporarily
3632 putting a copy of today's CVS (v 4.70) of python-mode in:
3743 putting a copy of today's CVS (v 4.70) of python-mode in:
3633 http://ipython.scipy.org/tmp/python-mode.el
3744 http://ipython.scipy.org/tmp/python-mode.el
3634
3745
3635 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3746 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3636 sys.executable for the executable name, instead of assuming it's
3747 sys.executable for the executable name, instead of assuming it's
3637 called 'python.exe' (the post-installer would have produced broken
3748 called 'python.exe' (the post-installer would have produced broken
3638 setups on systems with a differently named python binary).
3749 setups on systems with a differently named python binary).
3639
3750
3640 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3751 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3641 references to os.linesep, to make the code more
3752 references to os.linesep, to make the code more
3642 platform-independent. This is also part of the win32 coloring
3753 platform-independent. This is also part of the win32 coloring
3643 fixes.
3754 fixes.
3644
3755
3645 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3756 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3646 lines, which actually cause coloring bugs because the length of
3757 lines, which actually cause coloring bugs because the length of
3647 the line is very difficult to correctly compute with embedded
3758 the line is very difficult to correctly compute with embedded
3648 escapes. This was the source of all the coloring problems under
3759 escapes. This was the source of all the coloring problems under
3649 Win32. I think that _finally_, Win32 users have a properly
3760 Win32. I think that _finally_, Win32 users have a properly
3650 working ipython in all respects. This would never have happened
3761 working ipython in all respects. This would never have happened
3651 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3762 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3652
3763
3653 2005-01-26 *** Released version 0.6.9
3764 2005-01-26 *** Released version 0.6.9
3654
3765
3655 2005-01-25 Fernando Perez <fperez@colorado.edu>
3766 2005-01-25 Fernando Perez <fperez@colorado.edu>
3656
3767
3657 * setup.py: finally, we have a true Windows installer, thanks to
3768 * setup.py: finally, we have a true Windows installer, thanks to
3658 the excellent work of Viktor Ransmayr
3769 the excellent work of Viktor Ransmayr
3659 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3770 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3660 Windows users. The setup routine is quite a bit cleaner thanks to
3771 Windows users. The setup routine is quite a bit cleaner thanks to
3661 this, and the post-install script uses the proper functions to
3772 this, and the post-install script uses the proper functions to
3662 allow a clean de-installation using the standard Windows Control
3773 allow a clean de-installation using the standard Windows Control
3663 Panel.
3774 Panel.
3664
3775
3665 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3776 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3666 environment variable under all OSes (including win32) if
3777 environment variable under all OSes (including win32) if
3667 available. This will give consistency to win32 users who have set
3778 available. This will give consistency to win32 users who have set
3668 this variable for any reason. If os.environ['HOME'] fails, the
3779 this variable for any reason. If os.environ['HOME'] fails, the
3669 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3780 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3670
3781
3671 2005-01-24 Fernando Perez <fperez@colorado.edu>
3782 2005-01-24 Fernando Perez <fperez@colorado.edu>
3672
3783
3673 * IPython/numutils.py (empty_like): add empty_like(), similar to
3784 * IPython/numutils.py (empty_like): add empty_like(), similar to
3674 zeros_like() but taking advantage of the new empty() Numeric routine.
3785 zeros_like() but taking advantage of the new empty() Numeric routine.
3675
3786
3676 2005-01-23 *** Released version 0.6.8
3787 2005-01-23 *** Released version 0.6.8
3677
3788
3678 2005-01-22 Fernando Perez <fperez@colorado.edu>
3789 2005-01-22 Fernando Perez <fperez@colorado.edu>
3679
3790
3680 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3791 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3681 automatic show() calls. After discussing things with JDH, it
3792 automatic show() calls. After discussing things with JDH, it
3682 turns out there are too many corner cases where this can go wrong.
3793 turns out there are too many corner cases where this can go wrong.
3683 It's best not to try to be 'too smart', and simply have ipython
3794 It's best not to try to be 'too smart', and simply have ipython
3684 reproduce as much as possible the default behavior of a normal
3795 reproduce as much as possible the default behavior of a normal
3685 python shell.
3796 python shell.
3686
3797
3687 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3798 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3688 line-splitting regexp and _prefilter() to avoid calling getattr()
3799 line-splitting regexp and _prefilter() to avoid calling getattr()
3689 on assignments. This closes
3800 on assignments. This closes
3690 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3801 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3691 readline uses getattr(), so a simple <TAB> keypress is still
3802 readline uses getattr(), so a simple <TAB> keypress is still
3692 enough to trigger getattr() calls on an object.
3803 enough to trigger getattr() calls on an object.
3693
3804
3694 2005-01-21 Fernando Perez <fperez@colorado.edu>
3805 2005-01-21 Fernando Perez <fperez@colorado.edu>
3695
3806
3696 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3807 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3697 docstring under pylab so it doesn't mask the original.
3808 docstring under pylab so it doesn't mask the original.
3698
3809
3699 2005-01-21 *** Released version 0.6.7
3810 2005-01-21 *** Released version 0.6.7
3700
3811
3701 2005-01-21 Fernando Perez <fperez@colorado.edu>
3812 2005-01-21 Fernando Perez <fperez@colorado.edu>
3702
3813
3703 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3814 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3704 signal handling for win32 users in multithreaded mode.
3815 signal handling for win32 users in multithreaded mode.
3705
3816
3706 2005-01-17 Fernando Perez <fperez@colorado.edu>
3817 2005-01-17 Fernando Perez <fperez@colorado.edu>
3707
3818
3708 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3819 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3709 instances with no __init__. After a crash report by Norbert Nemec
3820 instances with no __init__. After a crash report by Norbert Nemec
3710 <Norbert-AT-nemec-online.de>.
3821 <Norbert-AT-nemec-online.de>.
3711
3822
3712 2005-01-14 Fernando Perez <fperez@colorado.edu>
3823 2005-01-14 Fernando Perez <fperez@colorado.edu>
3713
3824
3714 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3825 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3715 names for verbose exceptions, when multiple dotted names and the
3826 names for verbose exceptions, when multiple dotted names and the
3716 'parent' object were present on the same line.
3827 'parent' object were present on the same line.
3717
3828
3718 2005-01-11 Fernando Perez <fperez@colorado.edu>
3829 2005-01-11 Fernando Perez <fperez@colorado.edu>
3719
3830
3720 * IPython/genutils.py (flag_calls): new utility to trap and flag
3831 * IPython/genutils.py (flag_calls): new utility to trap and flag
3721 calls in functions. I need it to clean up matplotlib support.
3832 calls in functions. I need it to clean up matplotlib support.
3722 Also removed some deprecated code in genutils.
3833 Also removed some deprecated code in genutils.
3723
3834
3724 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3835 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3725 that matplotlib scripts called with %run, which don't call show()
3836 that matplotlib scripts called with %run, which don't call show()
3726 themselves, still have their plotting windows open.
3837 themselves, still have their plotting windows open.
3727
3838
3728 2005-01-05 Fernando Perez <fperez@colorado.edu>
3839 2005-01-05 Fernando Perez <fperez@colorado.edu>
3729
3840
3730 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3841 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3731 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3842 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3732
3843
3733 2004-12-19 Fernando Perez <fperez@colorado.edu>
3844 2004-12-19 Fernando Perez <fperez@colorado.edu>
3734
3845
3735 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3846 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3736 parent_runcode, which was an eyesore. The same result can be
3847 parent_runcode, which was an eyesore. The same result can be
3737 obtained with Python's regular superclass mechanisms.
3848 obtained with Python's regular superclass mechanisms.
3738
3849
3739 2004-12-17 Fernando Perez <fperez@colorado.edu>
3850 2004-12-17 Fernando Perez <fperez@colorado.edu>
3740
3851
3741 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3852 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3742 reported by Prabhu.
3853 reported by Prabhu.
3743 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3854 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3744 sys.stderr) instead of explicitly calling sys.stderr. This helps
3855 sys.stderr) instead of explicitly calling sys.stderr. This helps
3745 maintain our I/O abstractions clean, for future GUI embeddings.
3856 maintain our I/O abstractions clean, for future GUI embeddings.
3746
3857
3747 * IPython/genutils.py (info): added new utility for sys.stderr
3858 * IPython/genutils.py (info): added new utility for sys.stderr
3748 unified info message handling (thin wrapper around warn()).
3859 unified info message handling (thin wrapper around warn()).
3749
3860
3750 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3861 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3751 composite (dotted) names on verbose exceptions.
3862 composite (dotted) names on verbose exceptions.
3752 (VerboseTB.nullrepr): harden against another kind of errors which
3863 (VerboseTB.nullrepr): harden against another kind of errors which
3753 Python's inspect module can trigger, and which were crashing
3864 Python's inspect module can trigger, and which were crashing
3754 IPython. Thanks to a report by Marco Lombardi
3865 IPython. Thanks to a report by Marco Lombardi
3755 <mlombard-AT-ma010192.hq.eso.org>.
3866 <mlombard-AT-ma010192.hq.eso.org>.
3756
3867
3757 2004-12-13 *** Released version 0.6.6
3868 2004-12-13 *** Released version 0.6.6
3758
3869
3759 2004-12-12 Fernando Perez <fperez@colorado.edu>
3870 2004-12-12 Fernando Perez <fperez@colorado.edu>
3760
3871
3761 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3872 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3762 generated by pygtk upon initialization if it was built without
3873 generated by pygtk upon initialization if it was built without
3763 threads (for matplotlib users). After a crash reported by
3874 threads (for matplotlib users). After a crash reported by
3764 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3875 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3765
3876
3766 * IPython/ipmaker.py (make_IPython): fix small bug in the
3877 * IPython/ipmaker.py (make_IPython): fix small bug in the
3767 import_some parameter for multiple imports.
3878 import_some parameter for multiple imports.
3768
3879
3769 * IPython/iplib.py (ipmagic): simplified the interface of
3880 * IPython/iplib.py (ipmagic): simplified the interface of
3770 ipmagic() to take a single string argument, just as it would be
3881 ipmagic() to take a single string argument, just as it would be
3771 typed at the IPython cmd line.
3882 typed at the IPython cmd line.
3772 (ipalias): Added new ipalias() with an interface identical to
3883 (ipalias): Added new ipalias() with an interface identical to
3773 ipmagic(). This completes exposing a pure python interface to the
3884 ipmagic(). This completes exposing a pure python interface to the
3774 alias and magic system, which can be used in loops or more complex
3885 alias and magic system, which can be used in loops or more complex
3775 code where IPython's automatic line mangling is not active.
3886 code where IPython's automatic line mangling is not active.
3776
3887
3777 * IPython/genutils.py (timing): changed interface of timing to
3888 * IPython/genutils.py (timing): changed interface of timing to
3778 simply run code once, which is the most common case. timings()
3889 simply run code once, which is the most common case. timings()
3779 remains unchanged, for the cases where you want multiple runs.
3890 remains unchanged, for the cases where you want multiple runs.
3780
3891
3781 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3892 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3782 bug where Python2.2 crashes with exec'ing code which does not end
3893 bug where Python2.2 crashes with exec'ing code which does not end
3783 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3894 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3784 before.
3895 before.
3785
3896
3786 2004-12-10 Fernando Perez <fperez@colorado.edu>
3897 2004-12-10 Fernando Perez <fperez@colorado.edu>
3787
3898
3788 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3899 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3789 -t to -T, to accomodate the new -t flag in %run (the %run and
3900 -t to -T, to accomodate the new -t flag in %run (the %run and
3790 %prun options are kind of intermixed, and it's not easy to change
3901 %prun options are kind of intermixed, and it's not easy to change
3791 this with the limitations of python's getopt).
3902 this with the limitations of python's getopt).
3792
3903
3793 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3904 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3794 the execution of scripts. It's not as fine-tuned as timeit.py,
3905 the execution of scripts. It's not as fine-tuned as timeit.py,
3795 but it works from inside ipython (and under 2.2, which lacks
3906 but it works from inside ipython (and under 2.2, which lacks
3796 timeit.py). Optionally a number of runs > 1 can be given for
3907 timeit.py). Optionally a number of runs > 1 can be given for
3797 timing very short-running code.
3908 timing very short-running code.
3798
3909
3799 * IPython/genutils.py (uniq_stable): new routine which returns a
3910 * IPython/genutils.py (uniq_stable): new routine which returns a
3800 list of unique elements in any iterable, but in stable order of
3911 list of unique elements in any iterable, but in stable order of
3801 appearance. I needed this for the ultraTB fixes, and it's a handy
3912 appearance. I needed this for the ultraTB fixes, and it's a handy
3802 utility.
3913 utility.
3803
3914
3804 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3915 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3805 dotted names in Verbose exceptions. This had been broken since
3916 dotted names in Verbose exceptions. This had been broken since
3806 the very start, now x.y will properly be printed in a Verbose
3917 the very start, now x.y will properly be printed in a Verbose
3807 traceback, instead of x being shown and y appearing always as an
3918 traceback, instead of x being shown and y appearing always as an
3808 'undefined global'. Getting this to work was a bit tricky,
3919 'undefined global'. Getting this to work was a bit tricky,
3809 because by default python tokenizers are stateless. Saved by
3920 because by default python tokenizers are stateless. Saved by
3810 python's ability to easily add a bit of state to an arbitrary
3921 python's ability to easily add a bit of state to an arbitrary
3811 function (without needing to build a full-blown callable object).
3922 function (without needing to build a full-blown callable object).
3812
3923
3813 Also big cleanup of this code, which had horrendous runtime
3924 Also big cleanup of this code, which had horrendous runtime
3814 lookups of zillions of attributes for colorization. Moved all
3925 lookups of zillions of attributes for colorization. Moved all
3815 this code into a few templates, which make it cleaner and quicker.
3926 this code into a few templates, which make it cleaner and quicker.
3816
3927
3817 Printout quality was also improved for Verbose exceptions: one
3928 Printout quality was also improved for Verbose exceptions: one
3818 variable per line, and memory addresses are printed (this can be
3929 variable per line, and memory addresses are printed (this can be
3819 quite handy in nasty debugging situations, which is what Verbose
3930 quite handy in nasty debugging situations, which is what Verbose
3820 is for).
3931 is for).
3821
3932
3822 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3933 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3823 the command line as scripts to be loaded by embedded instances.
3934 the command line as scripts to be loaded by embedded instances.
3824 Doing so has the potential for an infinite recursion if there are
3935 Doing so has the potential for an infinite recursion if there are
3825 exceptions thrown in the process. This fixes a strange crash
3936 exceptions thrown in the process. This fixes a strange crash
3826 reported by Philippe MULLER <muller-AT-irit.fr>.
3937 reported by Philippe MULLER <muller-AT-irit.fr>.
3827
3938
3828 2004-12-09 Fernando Perez <fperez@colorado.edu>
3939 2004-12-09 Fernando Perez <fperez@colorado.edu>
3829
3940
3830 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3941 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3831 to reflect new names in matplotlib, which now expose the
3942 to reflect new names in matplotlib, which now expose the
3832 matlab-compatible interface via a pylab module instead of the
3943 matlab-compatible interface via a pylab module instead of the
3833 'matlab' name. The new code is backwards compatible, so users of
3944 'matlab' name. The new code is backwards compatible, so users of
3834 all matplotlib versions are OK. Patch by J. Hunter.
3945 all matplotlib versions are OK. Patch by J. Hunter.
3835
3946
3836 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3947 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3837 of __init__ docstrings for instances (class docstrings are already
3948 of __init__ docstrings for instances (class docstrings are already
3838 automatically printed). Instances with customized docstrings
3949 automatically printed). Instances with customized docstrings
3839 (indep. of the class) are also recognized and all 3 separate
3950 (indep. of the class) are also recognized and all 3 separate
3840 docstrings are printed (instance, class, constructor). After some
3951 docstrings are printed (instance, class, constructor). After some
3841 comments/suggestions by J. Hunter.
3952 comments/suggestions by J. Hunter.
3842
3953
3843 2004-12-05 Fernando Perez <fperez@colorado.edu>
3954 2004-12-05 Fernando Perez <fperez@colorado.edu>
3844
3955
3845 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3956 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3846 warnings when tab-completion fails and triggers an exception.
3957 warnings when tab-completion fails and triggers an exception.
3847
3958
3848 2004-12-03 Fernando Perez <fperez@colorado.edu>
3959 2004-12-03 Fernando Perez <fperez@colorado.edu>
3849
3960
3850 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3961 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3851 be triggered when using 'run -p'. An incorrect option flag was
3962 be triggered when using 'run -p'. An incorrect option flag was
3852 being set ('d' instead of 'D').
3963 being set ('d' instead of 'D').
3853 (manpage): fix missing escaped \- sign.
3964 (manpage): fix missing escaped \- sign.
3854
3965
3855 2004-11-30 *** Released version 0.6.5
3966 2004-11-30 *** Released version 0.6.5
3856
3967
3857 2004-11-30 Fernando Perez <fperez@colorado.edu>
3968 2004-11-30 Fernando Perez <fperez@colorado.edu>
3858
3969
3859 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3970 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3860 setting with -d option.
3971 setting with -d option.
3861
3972
3862 * setup.py (docfiles): Fix problem where the doc glob I was using
3973 * setup.py (docfiles): Fix problem where the doc glob I was using
3863 was COMPLETELY BROKEN. It was giving the right files by pure
3974 was COMPLETELY BROKEN. It was giving the right files by pure
3864 accident, but failed once I tried to include ipython.el. Note:
3975 accident, but failed once I tried to include ipython.el. Note:
3865 glob() does NOT allow you to do exclusion on multiple endings!
3976 glob() does NOT allow you to do exclusion on multiple endings!
3866
3977
3867 2004-11-29 Fernando Perez <fperez@colorado.edu>
3978 2004-11-29 Fernando Perez <fperez@colorado.edu>
3868
3979
3869 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3980 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3870 the manpage as the source. Better formatting & consistency.
3981 the manpage as the source. Better formatting & consistency.
3871
3982
3872 * IPython/Magic.py (magic_run): Added new -d option, to run
3983 * IPython/Magic.py (magic_run): Added new -d option, to run
3873 scripts under the control of the python pdb debugger. Note that
3984 scripts under the control of the python pdb debugger. Note that
3874 this required changing the %prun option -d to -D, to avoid a clash
3985 this required changing the %prun option -d to -D, to avoid a clash
3875 (since %run must pass options to %prun, and getopt is too dumb to
3986 (since %run must pass options to %prun, and getopt is too dumb to
3876 handle options with string values with embedded spaces). Thanks
3987 handle options with string values with embedded spaces). Thanks
3877 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3988 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3878 (magic_who_ls): added type matching to %who and %whos, so that one
3989 (magic_who_ls): added type matching to %who and %whos, so that one
3879 can filter their output to only include variables of certain
3990 can filter their output to only include variables of certain
3880 types. Another suggestion by Matthew.
3991 types. Another suggestion by Matthew.
3881 (magic_whos): Added memory summaries in kb and Mb for arrays.
3992 (magic_whos): Added memory summaries in kb and Mb for arrays.
3882 (magic_who): Improve formatting (break lines every 9 vars).
3993 (magic_who): Improve formatting (break lines every 9 vars).
3883
3994
3884 2004-11-28 Fernando Perez <fperez@colorado.edu>
3995 2004-11-28 Fernando Perez <fperez@colorado.edu>
3885
3996
3886 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3997 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3887 cache when empty lines were present.
3998 cache when empty lines were present.
3888
3999
3889 2004-11-24 Fernando Perez <fperez@colorado.edu>
4000 2004-11-24 Fernando Perez <fperez@colorado.edu>
3890
4001
3891 * IPython/usage.py (__doc__): document the re-activated threading
4002 * IPython/usage.py (__doc__): document the re-activated threading
3892 options for WX and GTK.
4003 options for WX and GTK.
3893
4004
3894 2004-11-23 Fernando Perez <fperez@colorado.edu>
4005 2004-11-23 Fernando Perez <fperez@colorado.edu>
3895
4006
3896 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4007 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3897 the -wthread and -gthread options, along with a new -tk one to try
4008 the -wthread and -gthread options, along with a new -tk one to try
3898 and coordinate Tk threading with wx/gtk. The tk support is very
4009 and coordinate Tk threading with wx/gtk. The tk support is very
3899 platform dependent, since it seems to require Tcl and Tk to be
4010 platform dependent, since it seems to require Tcl and Tk to be
3900 built with threads (Fedora1/2 appears NOT to have it, but in
4011 built with threads (Fedora1/2 appears NOT to have it, but in
3901 Prabhu's Debian boxes it works OK). But even with some Tk
4012 Prabhu's Debian boxes it works OK). But even with some Tk
3902 limitations, this is a great improvement.
4013 limitations, this is a great improvement.
3903
4014
3904 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4015 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3905 info in user prompts. Patch by Prabhu.
4016 info in user prompts. Patch by Prabhu.
3906
4017
3907 2004-11-18 Fernando Perez <fperez@colorado.edu>
4018 2004-11-18 Fernando Perez <fperez@colorado.edu>
3908
4019
3909 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4020 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3910 EOFErrors and bail, to avoid infinite loops if a non-terminating
4021 EOFErrors and bail, to avoid infinite loops if a non-terminating
3911 file is fed into ipython. Patch submitted in issue 19 by user,
4022 file is fed into ipython. Patch submitted in issue 19 by user,
3912 many thanks.
4023 many thanks.
3913
4024
3914 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4025 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3915 autoquote/parens in continuation prompts, which can cause lots of
4026 autoquote/parens in continuation prompts, which can cause lots of
3916 problems. Closes roundup issue 20.
4027 problems. Closes roundup issue 20.
3917
4028
3918 2004-11-17 Fernando Perez <fperez@colorado.edu>
4029 2004-11-17 Fernando Perez <fperez@colorado.edu>
3919
4030
3920 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4031 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3921 reported as debian bug #280505. I'm not sure my local changelog
4032 reported as debian bug #280505. I'm not sure my local changelog
3922 entry has the proper debian format (Jack?).
4033 entry has the proper debian format (Jack?).
3923
4034
3924 2004-11-08 *** Released version 0.6.4
4035 2004-11-08 *** Released version 0.6.4
3925
4036
3926 2004-11-08 Fernando Perez <fperez@colorado.edu>
4037 2004-11-08 Fernando Perez <fperez@colorado.edu>
3927
4038
3928 * IPython/iplib.py (init_readline): Fix exit message for Windows
4039 * IPython/iplib.py (init_readline): Fix exit message for Windows
3929 when readline is active. Thanks to a report by Eric Jones
4040 when readline is active. Thanks to a report by Eric Jones
3930 <eric-AT-enthought.com>.
4041 <eric-AT-enthought.com>.
3931
4042
3932 2004-11-07 Fernando Perez <fperez@colorado.edu>
4043 2004-11-07 Fernando Perez <fperez@colorado.edu>
3933
4044
3934 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4045 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3935 sometimes seen by win2k/cygwin users.
4046 sometimes seen by win2k/cygwin users.
3936
4047
3937 2004-11-06 Fernando Perez <fperez@colorado.edu>
4048 2004-11-06 Fernando Perez <fperez@colorado.edu>
3938
4049
3939 * IPython/iplib.py (interact): Change the handling of %Exit from
4050 * IPython/iplib.py (interact): Change the handling of %Exit from
3940 trying to propagate a SystemExit to an internal ipython flag.
4051 trying to propagate a SystemExit to an internal ipython flag.
3941 This is less elegant than using Python's exception mechanism, but
4052 This is less elegant than using Python's exception mechanism, but
3942 I can't get that to work reliably with threads, so under -pylab
4053 I can't get that to work reliably with threads, so under -pylab
3943 %Exit was hanging IPython. Cross-thread exception handling is
4054 %Exit was hanging IPython. Cross-thread exception handling is
3944 really a bitch. Thaks to a bug report by Stephen Walton
4055 really a bitch. Thaks to a bug report by Stephen Walton
3945 <stephen.walton-AT-csun.edu>.
4056 <stephen.walton-AT-csun.edu>.
3946
4057
3947 2004-11-04 Fernando Perez <fperez@colorado.edu>
4058 2004-11-04 Fernando Perez <fperez@colorado.edu>
3948
4059
3949 * IPython/iplib.py (raw_input_original): store a pointer to the
4060 * IPython/iplib.py (raw_input_original): store a pointer to the
3950 true raw_input to harden against code which can modify it
4061 true raw_input to harden against code which can modify it
3951 (wx.py.PyShell does this and would otherwise crash ipython).
4062 (wx.py.PyShell does this and would otherwise crash ipython).
3952 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4063 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3953
4064
3954 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4065 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3955 Ctrl-C problem, which does not mess up the input line.
4066 Ctrl-C problem, which does not mess up the input line.
3956
4067
3957 2004-11-03 Fernando Perez <fperez@colorado.edu>
4068 2004-11-03 Fernando Perez <fperez@colorado.edu>
3958
4069
3959 * IPython/Release.py: Changed licensing to BSD, in all files.
4070 * IPython/Release.py: Changed licensing to BSD, in all files.
3960 (name): lowercase name for tarball/RPM release.
4071 (name): lowercase name for tarball/RPM release.
3961
4072
3962 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4073 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3963 use throughout ipython.
4074 use throughout ipython.
3964
4075
3965 * IPython/Magic.py (Magic._ofind): Switch to using the new
4076 * IPython/Magic.py (Magic._ofind): Switch to using the new
3966 OInspect.getdoc() function.
4077 OInspect.getdoc() function.
3967
4078
3968 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4079 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3969 of the line currently being canceled via Ctrl-C. It's extremely
4080 of the line currently being canceled via Ctrl-C. It's extremely
3970 ugly, but I don't know how to do it better (the problem is one of
4081 ugly, but I don't know how to do it better (the problem is one of
3971 handling cross-thread exceptions).
4082 handling cross-thread exceptions).
3972
4083
3973 2004-10-28 Fernando Perez <fperez@colorado.edu>
4084 2004-10-28 Fernando Perez <fperez@colorado.edu>
3974
4085
3975 * IPython/Shell.py (signal_handler): add signal handlers to trap
4086 * IPython/Shell.py (signal_handler): add signal handlers to trap
3976 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4087 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3977 report by Francesc Alted.
4088 report by Francesc Alted.
3978
4089
3979 2004-10-21 Fernando Perez <fperez@colorado.edu>
4090 2004-10-21 Fernando Perez <fperez@colorado.edu>
3980
4091
3981 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4092 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3982 to % for pysh syntax extensions.
4093 to % for pysh syntax extensions.
3983
4094
3984 2004-10-09 Fernando Perez <fperez@colorado.edu>
4095 2004-10-09 Fernando Perez <fperez@colorado.edu>
3985
4096
3986 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4097 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3987 arrays to print a more useful summary, without calling str(arr).
4098 arrays to print a more useful summary, without calling str(arr).
3988 This avoids the problem of extremely lengthy computations which
4099 This avoids the problem of extremely lengthy computations which
3989 occur if arr is large, and appear to the user as a system lockup
4100 occur if arr is large, and appear to the user as a system lockup
3990 with 100% cpu activity. After a suggestion by Kristian Sandberg
4101 with 100% cpu activity. After a suggestion by Kristian Sandberg
3991 <Kristian.Sandberg@colorado.edu>.
4102 <Kristian.Sandberg@colorado.edu>.
3992 (Magic.__init__): fix bug in global magic escapes not being
4103 (Magic.__init__): fix bug in global magic escapes not being
3993 correctly set.
4104 correctly set.
3994
4105
3995 2004-10-08 Fernando Perez <fperez@colorado.edu>
4106 2004-10-08 Fernando Perez <fperez@colorado.edu>
3996
4107
3997 * IPython/Magic.py (__license__): change to absolute imports of
4108 * IPython/Magic.py (__license__): change to absolute imports of
3998 ipython's own internal packages, to start adapting to the absolute
4109 ipython's own internal packages, to start adapting to the absolute
3999 import requirement of PEP-328.
4110 import requirement of PEP-328.
4000
4111
4001 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4112 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4002 files, and standardize author/license marks through the Release
4113 files, and standardize author/license marks through the Release
4003 module instead of having per/file stuff (except for files with
4114 module instead of having per/file stuff (except for files with
4004 particular licenses, like the MIT/PSF-licensed codes).
4115 particular licenses, like the MIT/PSF-licensed codes).
4005
4116
4006 * IPython/Debugger.py: remove dead code for python 2.1
4117 * IPython/Debugger.py: remove dead code for python 2.1
4007
4118
4008 2004-10-04 Fernando Perez <fperez@colorado.edu>
4119 2004-10-04 Fernando Perez <fperez@colorado.edu>
4009
4120
4010 * IPython/iplib.py (ipmagic): New function for accessing magics
4121 * IPython/iplib.py (ipmagic): New function for accessing magics
4011 via a normal python function call.
4122 via a normal python function call.
4012
4123
4013 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4124 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4014 from '@' to '%', to accomodate the new @decorator syntax of python
4125 from '@' to '%', to accomodate the new @decorator syntax of python
4015 2.4.
4126 2.4.
4016
4127
4017 2004-09-29 Fernando Perez <fperez@colorado.edu>
4128 2004-09-29 Fernando Perez <fperez@colorado.edu>
4018
4129
4019 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4130 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4020 matplotlib.use to prevent running scripts which try to switch
4131 matplotlib.use to prevent running scripts which try to switch
4021 interactive backends from within ipython. This will just crash
4132 interactive backends from within ipython. This will just crash
4022 the python interpreter, so we can't allow it (but a detailed error
4133 the python interpreter, so we can't allow it (but a detailed error
4023 is given to the user).
4134 is given to the user).
4024
4135
4025 2004-09-28 Fernando Perez <fperez@colorado.edu>
4136 2004-09-28 Fernando Perez <fperez@colorado.edu>
4026
4137
4027 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4138 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4028 matplotlib-related fixes so that using @run with non-matplotlib
4139 matplotlib-related fixes so that using @run with non-matplotlib
4029 scripts doesn't pop up spurious plot windows. This requires
4140 scripts doesn't pop up spurious plot windows. This requires
4030 matplotlib >= 0.63, where I had to make some changes as well.
4141 matplotlib >= 0.63, where I had to make some changes as well.
4031
4142
4032 * IPython/ipmaker.py (make_IPython): update version requirement to
4143 * IPython/ipmaker.py (make_IPython): update version requirement to
4033 python 2.2.
4144 python 2.2.
4034
4145
4035 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4146 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4036 banner arg for embedded customization.
4147 banner arg for embedded customization.
4037
4148
4038 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4149 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4039 explicit uses of __IP as the IPython's instance name. Now things
4150 explicit uses of __IP as the IPython's instance name. Now things
4040 are properly handled via the shell.name value. The actual code
4151 are properly handled via the shell.name value. The actual code
4041 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4152 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4042 is much better than before. I'll clean things completely when the
4153 is much better than before. I'll clean things completely when the
4043 magic stuff gets a real overhaul.
4154 magic stuff gets a real overhaul.
4044
4155
4045 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4156 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4046 minor changes to debian dir.
4157 minor changes to debian dir.
4047
4158
4048 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4159 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4049 pointer to the shell itself in the interactive namespace even when
4160 pointer to the shell itself in the interactive namespace even when
4050 a user-supplied dict is provided. This is needed for embedding
4161 a user-supplied dict is provided. This is needed for embedding
4051 purposes (found by tests with Michel Sanner).
4162 purposes (found by tests with Michel Sanner).
4052
4163
4053 2004-09-27 Fernando Perez <fperez@colorado.edu>
4164 2004-09-27 Fernando Perez <fperez@colorado.edu>
4054
4165
4055 * IPython/UserConfig/ipythonrc: remove []{} from
4166 * IPython/UserConfig/ipythonrc: remove []{} from
4056 readline_remove_delims, so that things like [modname.<TAB> do
4167 readline_remove_delims, so that things like [modname.<TAB> do
4057 proper completion. This disables [].TAB, but that's a less common
4168 proper completion. This disables [].TAB, but that's a less common
4058 case than module names in list comprehensions, for example.
4169 case than module names in list comprehensions, for example.
4059 Thanks to a report by Andrea Riciputi.
4170 Thanks to a report by Andrea Riciputi.
4060
4171
4061 2004-09-09 Fernando Perez <fperez@colorado.edu>
4172 2004-09-09 Fernando Perez <fperez@colorado.edu>
4062
4173
4063 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4174 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4064 blocking problems in win32 and osx. Fix by John.
4175 blocking problems in win32 and osx. Fix by John.
4065
4176
4066 2004-09-08 Fernando Perez <fperez@colorado.edu>
4177 2004-09-08 Fernando Perez <fperez@colorado.edu>
4067
4178
4068 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4179 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4069 for Win32 and OSX. Fix by John Hunter.
4180 for Win32 and OSX. Fix by John Hunter.
4070
4181
4071 2004-08-30 *** Released version 0.6.3
4182 2004-08-30 *** Released version 0.6.3
4072
4183
4073 2004-08-30 Fernando Perez <fperez@colorado.edu>
4184 2004-08-30 Fernando Perez <fperez@colorado.edu>
4074
4185
4075 * setup.py (isfile): Add manpages to list of dependent files to be
4186 * setup.py (isfile): Add manpages to list of dependent files to be
4076 updated.
4187 updated.
4077
4188
4078 2004-08-27 Fernando Perez <fperez@colorado.edu>
4189 2004-08-27 Fernando Perez <fperez@colorado.edu>
4079
4190
4080 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4191 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4081 for now. They don't really work with standalone WX/GTK code
4192 for now. They don't really work with standalone WX/GTK code
4082 (though matplotlib IS working fine with both of those backends).
4193 (though matplotlib IS working fine with both of those backends).
4083 This will neeed much more testing. I disabled most things with
4194 This will neeed much more testing. I disabled most things with
4084 comments, so turning it back on later should be pretty easy.
4195 comments, so turning it back on later should be pretty easy.
4085
4196
4086 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4197 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4087 autocalling of expressions like r'foo', by modifying the line
4198 autocalling of expressions like r'foo', by modifying the line
4088 split regexp. Closes
4199 split regexp. Closes
4089 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4200 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4090 Riley <ipythonbugs-AT-sabi.net>.
4201 Riley <ipythonbugs-AT-sabi.net>.
4091 (InteractiveShell.mainloop): honor --nobanner with banner
4202 (InteractiveShell.mainloop): honor --nobanner with banner
4092 extensions.
4203 extensions.
4093
4204
4094 * IPython/Shell.py: Significant refactoring of all classes, so
4205 * IPython/Shell.py: Significant refactoring of all classes, so
4095 that we can really support ALL matplotlib backends and threading
4206 that we can really support ALL matplotlib backends and threading
4096 models (John spotted a bug with Tk which required this). Now we
4207 models (John spotted a bug with Tk which required this). Now we
4097 should support single-threaded, WX-threads and GTK-threads, both
4208 should support single-threaded, WX-threads and GTK-threads, both
4098 for generic code and for matplotlib.
4209 for generic code and for matplotlib.
4099
4210
4100 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4211 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4101 -pylab, to simplify things for users. Will also remove the pylab
4212 -pylab, to simplify things for users. Will also remove the pylab
4102 profile, since now all of matplotlib configuration is directly
4213 profile, since now all of matplotlib configuration is directly
4103 handled here. This also reduces startup time.
4214 handled here. This also reduces startup time.
4104
4215
4105 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4216 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4106 shell wasn't being correctly called. Also in IPShellWX.
4217 shell wasn't being correctly called. Also in IPShellWX.
4107
4218
4108 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4219 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4109 fine-tune banner.
4220 fine-tune banner.
4110
4221
4111 * IPython/numutils.py (spike): Deprecate these spike functions,
4222 * IPython/numutils.py (spike): Deprecate these spike functions,
4112 delete (long deprecated) gnuplot_exec handler.
4223 delete (long deprecated) gnuplot_exec handler.
4113
4224
4114 2004-08-26 Fernando Perez <fperez@colorado.edu>
4225 2004-08-26 Fernando Perez <fperez@colorado.edu>
4115
4226
4116 * ipython.1: Update for threading options, plus some others which
4227 * ipython.1: Update for threading options, plus some others which
4117 were missing.
4228 were missing.
4118
4229
4119 * IPython/ipmaker.py (__call__): Added -wthread option for
4230 * IPython/ipmaker.py (__call__): Added -wthread option for
4120 wxpython thread handling. Make sure threading options are only
4231 wxpython thread handling. Make sure threading options are only
4121 valid at the command line.
4232 valid at the command line.
4122
4233
4123 * scripts/ipython: moved shell selection into a factory function
4234 * scripts/ipython: moved shell selection into a factory function
4124 in Shell.py, to keep the starter script to a minimum.
4235 in Shell.py, to keep the starter script to a minimum.
4125
4236
4126 2004-08-25 Fernando Perez <fperez@colorado.edu>
4237 2004-08-25 Fernando Perez <fperez@colorado.edu>
4127
4238
4128 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4239 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4129 John. Along with some recent changes he made to matplotlib, the
4240 John. Along with some recent changes he made to matplotlib, the
4130 next versions of both systems should work very well together.
4241 next versions of both systems should work very well together.
4131
4242
4132 2004-08-24 Fernando Perez <fperez@colorado.edu>
4243 2004-08-24 Fernando Perez <fperez@colorado.edu>
4133
4244
4134 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4245 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4135 tried to switch the profiling to using hotshot, but I'm getting
4246 tried to switch the profiling to using hotshot, but I'm getting
4136 strange errors from prof.runctx() there. I may be misreading the
4247 strange errors from prof.runctx() there. I may be misreading the
4137 docs, but it looks weird. For now the profiling code will
4248 docs, but it looks weird. For now the profiling code will
4138 continue to use the standard profiler.
4249 continue to use the standard profiler.
4139
4250
4140 2004-08-23 Fernando Perez <fperez@colorado.edu>
4251 2004-08-23 Fernando Perez <fperez@colorado.edu>
4141
4252
4142 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4253 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4143 threaded shell, by John Hunter. It's not quite ready yet, but
4254 threaded shell, by John Hunter. It's not quite ready yet, but
4144 close.
4255 close.
4145
4256
4146 2004-08-22 Fernando Perez <fperez@colorado.edu>
4257 2004-08-22 Fernando Perez <fperez@colorado.edu>
4147
4258
4148 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4259 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4149 in Magic and ultraTB.
4260 in Magic and ultraTB.
4150
4261
4151 * ipython.1: document threading options in manpage.
4262 * ipython.1: document threading options in manpage.
4152
4263
4153 * scripts/ipython: Changed name of -thread option to -gthread,
4264 * scripts/ipython: Changed name of -thread option to -gthread,
4154 since this is GTK specific. I want to leave the door open for a
4265 since this is GTK specific. I want to leave the door open for a
4155 -wthread option for WX, which will most likely be necessary. This
4266 -wthread option for WX, which will most likely be necessary. This
4156 change affects usage and ipmaker as well.
4267 change affects usage and ipmaker as well.
4157
4268
4158 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4269 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4159 handle the matplotlib shell issues. Code by John Hunter
4270 handle the matplotlib shell issues. Code by John Hunter
4160 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4271 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4161 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4272 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4162 broken (and disabled for end users) for now, but it puts the
4273 broken (and disabled for end users) for now, but it puts the
4163 infrastructure in place.
4274 infrastructure in place.
4164
4275
4165 2004-08-21 Fernando Perez <fperez@colorado.edu>
4276 2004-08-21 Fernando Perez <fperez@colorado.edu>
4166
4277
4167 * ipythonrc-pylab: Add matplotlib support.
4278 * ipythonrc-pylab: Add matplotlib support.
4168
4279
4169 * matplotlib_config.py: new files for matplotlib support, part of
4280 * matplotlib_config.py: new files for matplotlib support, part of
4170 the pylab profile.
4281 the pylab profile.
4171
4282
4172 * IPython/usage.py (__doc__): documented the threading options.
4283 * IPython/usage.py (__doc__): documented the threading options.
4173
4284
4174 2004-08-20 Fernando Perez <fperez@colorado.edu>
4285 2004-08-20 Fernando Perez <fperez@colorado.edu>
4175
4286
4176 * ipython: Modified the main calling routine to handle the -thread
4287 * ipython: Modified the main calling routine to handle the -thread
4177 and -mpthread options. This needs to be done as a top-level hack,
4288 and -mpthread options. This needs to be done as a top-level hack,
4178 because it determines which class to instantiate for IPython
4289 because it determines which class to instantiate for IPython
4179 itself.
4290 itself.
4180
4291
4181 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4292 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4182 classes to support multithreaded GTK operation without blocking,
4293 classes to support multithreaded GTK operation without blocking,
4183 and matplotlib with all backends. This is a lot of still very
4294 and matplotlib with all backends. This is a lot of still very
4184 experimental code, and threads are tricky. So it may still have a
4295 experimental code, and threads are tricky. So it may still have a
4185 few rough edges... This code owes a lot to
4296 few rough edges... This code owes a lot to
4186 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4297 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4187 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4298 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4188 to John Hunter for all the matplotlib work.
4299 to John Hunter for all the matplotlib work.
4189
4300
4190 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4301 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4191 options for gtk thread and matplotlib support.
4302 options for gtk thread and matplotlib support.
4192
4303
4193 2004-08-16 Fernando Perez <fperez@colorado.edu>
4304 2004-08-16 Fernando Perez <fperez@colorado.edu>
4194
4305
4195 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4306 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4196 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4307 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4197 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4308 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4198
4309
4199 2004-08-11 Fernando Perez <fperez@colorado.edu>
4310 2004-08-11 Fernando Perez <fperez@colorado.edu>
4200
4311
4201 * setup.py (isfile): Fix build so documentation gets updated for
4312 * setup.py (isfile): Fix build so documentation gets updated for
4202 rpms (it was only done for .tgz builds).
4313 rpms (it was only done for .tgz builds).
4203
4314
4204 2004-08-10 Fernando Perez <fperez@colorado.edu>
4315 2004-08-10 Fernando Perez <fperez@colorado.edu>
4205
4316
4206 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4317 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4207
4318
4208 * iplib.py : Silence syntax error exceptions in tab-completion.
4319 * iplib.py : Silence syntax error exceptions in tab-completion.
4209
4320
4210 2004-08-05 Fernando Perez <fperez@colorado.edu>
4321 2004-08-05 Fernando Perez <fperez@colorado.edu>
4211
4322
4212 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4323 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4213 'color off' mark for continuation prompts. This was causing long
4324 'color off' mark for continuation prompts. This was causing long
4214 continuation lines to mis-wrap.
4325 continuation lines to mis-wrap.
4215
4326
4216 2004-08-01 Fernando Perez <fperez@colorado.edu>
4327 2004-08-01 Fernando Perez <fperez@colorado.edu>
4217
4328
4218 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4329 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4219 for building ipython to be a parameter. All this is necessary
4330 for building ipython to be a parameter. All this is necessary
4220 right now to have a multithreaded version, but this insane
4331 right now to have a multithreaded version, but this insane
4221 non-design will be cleaned up soon. For now, it's a hack that
4332 non-design will be cleaned up soon. For now, it's a hack that
4222 works.
4333 works.
4223
4334
4224 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4335 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4225 args in various places. No bugs so far, but it's a dangerous
4336 args in various places. No bugs so far, but it's a dangerous
4226 practice.
4337 practice.
4227
4338
4228 2004-07-31 Fernando Perez <fperez@colorado.edu>
4339 2004-07-31 Fernando Perez <fperez@colorado.edu>
4229
4340
4230 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4341 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4231 fix completion of files with dots in their names under most
4342 fix completion of files with dots in their names under most
4232 profiles (pysh was OK because the completion order is different).
4343 profiles (pysh was OK because the completion order is different).
4233
4344
4234 2004-07-27 Fernando Perez <fperez@colorado.edu>
4345 2004-07-27 Fernando Perez <fperez@colorado.edu>
4235
4346
4236 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4347 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4237 keywords manually, b/c the one in keyword.py was removed in python
4348 keywords manually, b/c the one in keyword.py was removed in python
4238 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4349 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4239 This is NOT a bug under python 2.3 and earlier.
4350 This is NOT a bug under python 2.3 and earlier.
4240
4351
4241 2004-07-26 Fernando Perez <fperez@colorado.edu>
4352 2004-07-26 Fernando Perez <fperez@colorado.edu>
4242
4353
4243 * IPython/ultraTB.py (VerboseTB.text): Add another
4354 * IPython/ultraTB.py (VerboseTB.text): Add another
4244 linecache.checkcache() call to try to prevent inspect.py from
4355 linecache.checkcache() call to try to prevent inspect.py from
4245 crashing under python 2.3. I think this fixes
4356 crashing under python 2.3. I think this fixes
4246 http://www.scipy.net/roundup/ipython/issue17.
4357 http://www.scipy.net/roundup/ipython/issue17.
4247
4358
4248 2004-07-26 *** Released version 0.6.2
4359 2004-07-26 *** Released version 0.6.2
4249
4360
4250 2004-07-26 Fernando Perez <fperez@colorado.edu>
4361 2004-07-26 Fernando Perez <fperez@colorado.edu>
4251
4362
4252 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4363 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4253 fail for any number.
4364 fail for any number.
4254 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4365 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4255 empty bookmarks.
4366 empty bookmarks.
4256
4367
4257 2004-07-26 *** Released version 0.6.1
4368 2004-07-26 *** Released version 0.6.1
4258
4369
4259 2004-07-26 Fernando Perez <fperez@colorado.edu>
4370 2004-07-26 Fernando Perez <fperez@colorado.edu>
4260
4371
4261 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4372 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4262
4373
4263 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4374 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4264 escaping '()[]{}' in filenames.
4375 escaping '()[]{}' in filenames.
4265
4376
4266 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4377 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4267 Python 2.2 users who lack a proper shlex.split.
4378 Python 2.2 users who lack a proper shlex.split.
4268
4379
4269 2004-07-19 Fernando Perez <fperez@colorado.edu>
4380 2004-07-19 Fernando Perez <fperez@colorado.edu>
4270
4381
4271 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4382 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4272 for reading readline's init file. I follow the normal chain:
4383 for reading readline's init file. I follow the normal chain:
4273 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4384 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4274 report by Mike Heeter. This closes
4385 report by Mike Heeter. This closes
4275 http://www.scipy.net/roundup/ipython/issue16.
4386 http://www.scipy.net/roundup/ipython/issue16.
4276
4387
4277 2004-07-18 Fernando Perez <fperez@colorado.edu>
4388 2004-07-18 Fernando Perez <fperez@colorado.edu>
4278
4389
4279 * IPython/iplib.py (__init__): Add better handling of '\' under
4390 * IPython/iplib.py (__init__): Add better handling of '\' under
4280 Win32 for filenames. After a patch by Ville.
4391 Win32 for filenames. After a patch by Ville.
4281
4392
4282 2004-07-17 Fernando Perez <fperez@colorado.edu>
4393 2004-07-17 Fernando Perez <fperez@colorado.edu>
4283
4394
4284 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4395 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4285 autocalling would be triggered for 'foo is bar' if foo is
4396 autocalling would be triggered for 'foo is bar' if foo is
4286 callable. I also cleaned up the autocall detection code to use a
4397 callable. I also cleaned up the autocall detection code to use a
4287 regexp, which is faster. Bug reported by Alexander Schmolck.
4398 regexp, which is faster. Bug reported by Alexander Schmolck.
4288
4399
4289 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4400 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4290 '?' in them would confuse the help system. Reported by Alex
4401 '?' in them would confuse the help system. Reported by Alex
4291 Schmolck.
4402 Schmolck.
4292
4403
4293 2004-07-16 Fernando Perez <fperez@colorado.edu>
4404 2004-07-16 Fernando Perez <fperez@colorado.edu>
4294
4405
4295 * IPython/GnuplotInteractive.py (__all__): added plot2.
4406 * IPython/GnuplotInteractive.py (__all__): added plot2.
4296
4407
4297 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4408 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4298 plotting dictionaries, lists or tuples of 1d arrays.
4409 plotting dictionaries, lists or tuples of 1d arrays.
4299
4410
4300 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4411 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4301 optimizations.
4412 optimizations.
4302
4413
4303 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4414 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4304 the information which was there from Janko's original IPP code:
4415 the information which was there from Janko's original IPP code:
4305
4416
4306 03.05.99 20:53 porto.ifm.uni-kiel.de
4417 03.05.99 20:53 porto.ifm.uni-kiel.de
4307 --Started changelog.
4418 --Started changelog.
4308 --make clear do what it say it does
4419 --make clear do what it say it does
4309 --added pretty output of lines from inputcache
4420 --added pretty output of lines from inputcache
4310 --Made Logger a mixin class, simplifies handling of switches
4421 --Made Logger a mixin class, simplifies handling of switches
4311 --Added own completer class. .string<TAB> expands to last history
4422 --Added own completer class. .string<TAB> expands to last history
4312 line which starts with string. The new expansion is also present
4423 line which starts with string. The new expansion is also present
4313 with Ctrl-r from the readline library. But this shows, who this
4424 with Ctrl-r from the readline library. But this shows, who this
4314 can be done for other cases.
4425 can be done for other cases.
4315 --Added convention that all shell functions should accept a
4426 --Added convention that all shell functions should accept a
4316 parameter_string This opens the door for different behaviour for
4427 parameter_string This opens the door for different behaviour for
4317 each function. @cd is a good example of this.
4428 each function. @cd is a good example of this.
4318
4429
4319 04.05.99 12:12 porto.ifm.uni-kiel.de
4430 04.05.99 12:12 porto.ifm.uni-kiel.de
4320 --added logfile rotation
4431 --added logfile rotation
4321 --added new mainloop method which freezes first the namespace
4432 --added new mainloop method which freezes first the namespace
4322
4433
4323 07.05.99 21:24 porto.ifm.uni-kiel.de
4434 07.05.99 21:24 porto.ifm.uni-kiel.de
4324 --added the docreader classes. Now there is a help system.
4435 --added the docreader classes. Now there is a help system.
4325 -This is only a first try. Currently it's not easy to put new
4436 -This is only a first try. Currently it's not easy to put new
4326 stuff in the indices. But this is the way to go. Info would be
4437 stuff in the indices. But this is the way to go. Info would be
4327 better, but HTML is every where and not everybody has an info
4438 better, but HTML is every where and not everybody has an info
4328 system installed and it's not so easy to change html-docs to info.
4439 system installed and it's not so easy to change html-docs to info.
4329 --added global logfile option
4440 --added global logfile option
4330 --there is now a hook for object inspection method pinfo needs to
4441 --there is now a hook for object inspection method pinfo needs to
4331 be provided for this. Can be reached by two '??'.
4442 be provided for this. Can be reached by two '??'.
4332
4443
4333 08.05.99 20:51 porto.ifm.uni-kiel.de
4444 08.05.99 20:51 porto.ifm.uni-kiel.de
4334 --added a README
4445 --added a README
4335 --bug in rc file. Something has changed so functions in the rc
4446 --bug in rc file. Something has changed so functions in the rc
4336 file need to reference the shell and not self. Not clear if it's a
4447 file need to reference the shell and not self. Not clear if it's a
4337 bug or feature.
4448 bug or feature.
4338 --changed rc file for new behavior
4449 --changed rc file for new behavior
4339
4450
4340 2004-07-15 Fernando Perez <fperez@colorado.edu>
4451 2004-07-15 Fernando Perez <fperez@colorado.edu>
4341
4452
4342 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4453 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4343 cache was falling out of sync in bizarre manners when multi-line
4454 cache was falling out of sync in bizarre manners when multi-line
4344 input was present. Minor optimizations and cleanup.
4455 input was present. Minor optimizations and cleanup.
4345
4456
4346 (Logger): Remove old Changelog info for cleanup. This is the
4457 (Logger): Remove old Changelog info for cleanup. This is the
4347 information which was there from Janko's original code:
4458 information which was there from Janko's original code:
4348
4459
4349 Changes to Logger: - made the default log filename a parameter
4460 Changes to Logger: - made the default log filename a parameter
4350
4461
4351 - put a check for lines beginning with !@? in log(). Needed
4462 - put a check for lines beginning with !@? in log(). Needed
4352 (even if the handlers properly log their lines) for mid-session
4463 (even if the handlers properly log their lines) for mid-session
4353 logging activation to work properly. Without this, lines logged
4464 logging activation to work properly. Without this, lines logged
4354 in mid session, which get read from the cache, would end up
4465 in mid session, which get read from the cache, would end up
4355 'bare' (with !@? in the open) in the log. Now they are caught
4466 'bare' (with !@? in the open) in the log. Now they are caught
4356 and prepended with a #.
4467 and prepended with a #.
4357
4468
4358 * IPython/iplib.py (InteractiveShell.init_readline): added check
4469 * IPython/iplib.py (InteractiveShell.init_readline): added check
4359 in case MagicCompleter fails to be defined, so we don't crash.
4470 in case MagicCompleter fails to be defined, so we don't crash.
4360
4471
4361 2004-07-13 Fernando Perez <fperez@colorado.edu>
4472 2004-07-13 Fernando Perez <fperez@colorado.edu>
4362
4473
4363 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4474 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4364 of EPS if the requested filename ends in '.eps'.
4475 of EPS if the requested filename ends in '.eps'.
4365
4476
4366 2004-07-04 Fernando Perez <fperez@colorado.edu>
4477 2004-07-04 Fernando Perez <fperez@colorado.edu>
4367
4478
4368 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4479 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4369 escaping of quotes when calling the shell.
4480 escaping of quotes when calling the shell.
4370
4481
4371 2004-07-02 Fernando Perez <fperez@colorado.edu>
4482 2004-07-02 Fernando Perez <fperez@colorado.edu>
4372
4483
4373 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4484 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4374 gettext not working because we were clobbering '_'. Fixes
4485 gettext not working because we were clobbering '_'. Fixes
4375 http://www.scipy.net/roundup/ipython/issue6.
4486 http://www.scipy.net/roundup/ipython/issue6.
4376
4487
4377 2004-07-01 Fernando Perez <fperez@colorado.edu>
4488 2004-07-01 Fernando Perez <fperez@colorado.edu>
4378
4489
4379 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4490 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4380 into @cd. Patch by Ville.
4491 into @cd. Patch by Ville.
4381
4492
4382 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4493 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4383 new function to store things after ipmaker runs. Patch by Ville.
4494 new function to store things after ipmaker runs. Patch by Ville.
4384 Eventually this will go away once ipmaker is removed and the class
4495 Eventually this will go away once ipmaker is removed and the class
4385 gets cleaned up, but for now it's ok. Key functionality here is
4496 gets cleaned up, but for now it's ok. Key functionality here is
4386 the addition of the persistent storage mechanism, a dict for
4497 the addition of the persistent storage mechanism, a dict for
4387 keeping data across sessions (for now just bookmarks, but more can
4498 keeping data across sessions (for now just bookmarks, but more can
4388 be implemented later).
4499 be implemented later).
4389
4500
4390 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4501 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4391 persistent across sections. Patch by Ville, I modified it
4502 persistent across sections. Patch by Ville, I modified it
4392 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4503 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4393 added a '-l' option to list all bookmarks.
4504 added a '-l' option to list all bookmarks.
4394
4505
4395 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4506 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4396 center for cleanup. Registered with atexit.register(). I moved
4507 center for cleanup. Registered with atexit.register(). I moved
4397 here the old exit_cleanup(). After a patch by Ville.
4508 here the old exit_cleanup(). After a patch by Ville.
4398
4509
4399 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4510 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4400 characters in the hacked shlex_split for python 2.2.
4511 characters in the hacked shlex_split for python 2.2.
4401
4512
4402 * IPython/iplib.py (file_matches): more fixes to filenames with
4513 * IPython/iplib.py (file_matches): more fixes to filenames with
4403 whitespace in them. It's not perfect, but limitations in python's
4514 whitespace in them. It's not perfect, but limitations in python's
4404 readline make it impossible to go further.
4515 readline make it impossible to go further.
4405
4516
4406 2004-06-29 Fernando Perez <fperez@colorado.edu>
4517 2004-06-29 Fernando Perez <fperez@colorado.edu>
4407
4518
4408 * IPython/iplib.py (file_matches): escape whitespace correctly in
4519 * IPython/iplib.py (file_matches): escape whitespace correctly in
4409 filename completions. Bug reported by Ville.
4520 filename completions. Bug reported by Ville.
4410
4521
4411 2004-06-28 Fernando Perez <fperez@colorado.edu>
4522 2004-06-28 Fernando Perez <fperez@colorado.edu>
4412
4523
4413 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4524 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4414 the history file will be called 'history-PROFNAME' (or just
4525 the history file will be called 'history-PROFNAME' (or just
4415 'history' if no profile is loaded). I was getting annoyed at
4526 'history' if no profile is loaded). I was getting annoyed at
4416 getting my Numerical work history clobbered by pysh sessions.
4527 getting my Numerical work history clobbered by pysh sessions.
4417
4528
4418 * IPython/iplib.py (InteractiveShell.__init__): Internal
4529 * IPython/iplib.py (InteractiveShell.__init__): Internal
4419 getoutputerror() function so that we can honor the system_verbose
4530 getoutputerror() function so that we can honor the system_verbose
4420 flag for _all_ system calls. I also added escaping of #
4531 flag for _all_ system calls. I also added escaping of #
4421 characters here to avoid confusing Itpl.
4532 characters here to avoid confusing Itpl.
4422
4533
4423 * IPython/Magic.py (shlex_split): removed call to shell in
4534 * IPython/Magic.py (shlex_split): removed call to shell in
4424 parse_options and replaced it with shlex.split(). The annoying
4535 parse_options and replaced it with shlex.split(). The annoying
4425 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4536 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4426 to backport it from 2.3, with several frail hacks (the shlex
4537 to backport it from 2.3, with several frail hacks (the shlex
4427 module is rather limited in 2.2). Thanks to a suggestion by Ville
4538 module is rather limited in 2.2). Thanks to a suggestion by Ville
4428 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4539 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4429 problem.
4540 problem.
4430
4541
4431 (Magic.magic_system_verbose): new toggle to print the actual
4542 (Magic.magic_system_verbose): new toggle to print the actual
4432 system calls made by ipython. Mainly for debugging purposes.
4543 system calls made by ipython. Mainly for debugging purposes.
4433
4544
4434 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4545 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4435 doesn't support persistence. Reported (and fix suggested) by
4546 doesn't support persistence. Reported (and fix suggested) by
4436 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4547 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4437
4548
4438 2004-06-26 Fernando Perez <fperez@colorado.edu>
4549 2004-06-26 Fernando Perez <fperez@colorado.edu>
4439
4550
4440 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4551 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4441 continue prompts.
4552 continue prompts.
4442
4553
4443 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4554 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4444 function (basically a big docstring) and a few more things here to
4555 function (basically a big docstring) and a few more things here to
4445 speedup startup. pysh.py is now very lightweight. We want because
4556 speedup startup. pysh.py is now very lightweight. We want because
4446 it gets execfile'd, while InterpreterExec gets imported, so
4557 it gets execfile'd, while InterpreterExec gets imported, so
4447 byte-compilation saves time.
4558 byte-compilation saves time.
4448
4559
4449 2004-06-25 Fernando Perez <fperez@colorado.edu>
4560 2004-06-25 Fernando Perez <fperez@colorado.edu>
4450
4561
4451 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4562 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4452 -NUM', which was recently broken.
4563 -NUM', which was recently broken.
4453
4564
4454 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4565 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4455 in multi-line input (but not !!, which doesn't make sense there).
4566 in multi-line input (but not !!, which doesn't make sense there).
4456
4567
4457 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4568 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4458 It's just too useful, and people can turn it off in the less
4569 It's just too useful, and people can turn it off in the less
4459 common cases where it's a problem.
4570 common cases where it's a problem.
4460
4571
4461 2004-06-24 Fernando Perez <fperez@colorado.edu>
4572 2004-06-24 Fernando Perez <fperez@colorado.edu>
4462
4573
4463 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4574 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4464 special syntaxes (like alias calling) is now allied in multi-line
4575 special syntaxes (like alias calling) is now allied in multi-line
4465 input. This is still _very_ experimental, but it's necessary for
4576 input. This is still _very_ experimental, but it's necessary for
4466 efficient shell usage combining python looping syntax with system
4577 efficient shell usage combining python looping syntax with system
4467 calls. For now it's restricted to aliases, I don't think it
4578 calls. For now it's restricted to aliases, I don't think it
4468 really even makes sense to have this for magics.
4579 really even makes sense to have this for magics.
4469
4580
4470 2004-06-23 Fernando Perez <fperez@colorado.edu>
4581 2004-06-23 Fernando Perez <fperez@colorado.edu>
4471
4582
4472 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4583 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4473 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4584 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4474
4585
4475 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4586 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4476 extensions under Windows (after code sent by Gary Bishop). The
4587 extensions under Windows (after code sent by Gary Bishop). The
4477 extensions considered 'executable' are stored in IPython's rc
4588 extensions considered 'executable' are stored in IPython's rc
4478 structure as win_exec_ext.
4589 structure as win_exec_ext.
4479
4590
4480 * IPython/genutils.py (shell): new function, like system() but
4591 * IPython/genutils.py (shell): new function, like system() but
4481 without return value. Very useful for interactive shell work.
4592 without return value. Very useful for interactive shell work.
4482
4593
4483 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4594 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4484 delete aliases.
4595 delete aliases.
4485
4596
4486 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4597 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4487 sure that the alias table doesn't contain python keywords.
4598 sure that the alias table doesn't contain python keywords.
4488
4599
4489 2004-06-21 Fernando Perez <fperez@colorado.edu>
4600 2004-06-21 Fernando Perez <fperez@colorado.edu>
4490
4601
4491 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4602 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4492 non-existent items are found in $PATH. Reported by Thorsten.
4603 non-existent items are found in $PATH. Reported by Thorsten.
4493
4604
4494 2004-06-20 Fernando Perez <fperez@colorado.edu>
4605 2004-06-20 Fernando Perez <fperez@colorado.edu>
4495
4606
4496 * IPython/iplib.py (complete): modified the completer so that the
4607 * IPython/iplib.py (complete): modified the completer so that the
4497 order of priorities can be easily changed at runtime.
4608 order of priorities can be easily changed at runtime.
4498
4609
4499 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4610 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4500 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4611 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4501
4612
4502 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4613 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4503 expand Python variables prepended with $ in all system calls. The
4614 expand Python variables prepended with $ in all system calls. The
4504 same was done to InteractiveShell.handle_shell_escape. Now all
4615 same was done to InteractiveShell.handle_shell_escape. Now all
4505 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4616 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4506 expansion of python variables and expressions according to the
4617 expansion of python variables and expressions according to the
4507 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4618 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4508
4619
4509 Though PEP-215 has been rejected, a similar (but simpler) one
4620 Though PEP-215 has been rejected, a similar (but simpler) one
4510 seems like it will go into Python 2.4, PEP-292 -
4621 seems like it will go into Python 2.4, PEP-292 -
4511 http://www.python.org/peps/pep-0292.html.
4622 http://www.python.org/peps/pep-0292.html.
4512
4623
4513 I'll keep the full syntax of PEP-215, since IPython has since the
4624 I'll keep the full syntax of PEP-215, since IPython has since the
4514 start used Ka-Ping Yee's reference implementation discussed there
4625 start used Ka-Ping Yee's reference implementation discussed there
4515 (Itpl), and I actually like the powerful semantics it offers.
4626 (Itpl), and I actually like the powerful semantics it offers.
4516
4627
4517 In order to access normal shell variables, the $ has to be escaped
4628 In order to access normal shell variables, the $ has to be escaped
4518 via an extra $. For example:
4629 via an extra $. For example:
4519
4630
4520 In [7]: PATH='a python variable'
4631 In [7]: PATH='a python variable'
4521
4632
4522 In [8]: !echo $PATH
4633 In [8]: !echo $PATH
4523 a python variable
4634 a python variable
4524
4635
4525 In [9]: !echo $$PATH
4636 In [9]: !echo $$PATH
4526 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4637 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4527
4638
4528 (Magic.parse_options): escape $ so the shell doesn't evaluate
4639 (Magic.parse_options): escape $ so the shell doesn't evaluate
4529 things prematurely.
4640 things prematurely.
4530
4641
4531 * IPython/iplib.py (InteractiveShell.call_alias): added the
4642 * IPython/iplib.py (InteractiveShell.call_alias): added the
4532 ability for aliases to expand python variables via $.
4643 ability for aliases to expand python variables via $.
4533
4644
4534 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4645 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4535 system, now there's a @rehash/@rehashx pair of magics. These work
4646 system, now there's a @rehash/@rehashx pair of magics. These work
4536 like the csh rehash command, and can be invoked at any time. They
4647 like the csh rehash command, and can be invoked at any time. They
4537 build a table of aliases to everything in the user's $PATH
4648 build a table of aliases to everything in the user's $PATH
4538 (@rehash uses everything, @rehashx is slower but only adds
4649 (@rehash uses everything, @rehashx is slower but only adds
4539 executable files). With this, the pysh.py-based shell profile can
4650 executable files). With this, the pysh.py-based shell profile can
4540 now simply call rehash upon startup, and full access to all
4651 now simply call rehash upon startup, and full access to all
4541 programs in the user's path is obtained.
4652 programs in the user's path is obtained.
4542
4653
4543 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4654 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4544 functionality is now fully in place. I removed the old dynamic
4655 functionality is now fully in place. I removed the old dynamic
4545 code generation based approach, in favor of a much lighter one
4656 code generation based approach, in favor of a much lighter one
4546 based on a simple dict. The advantage is that this allows me to
4657 based on a simple dict. The advantage is that this allows me to
4547 now have thousands of aliases with negligible cost (unthinkable
4658 now have thousands of aliases with negligible cost (unthinkable
4548 with the old system).
4659 with the old system).
4549
4660
4550 2004-06-19 Fernando Perez <fperez@colorado.edu>
4661 2004-06-19 Fernando Perez <fperez@colorado.edu>
4551
4662
4552 * IPython/iplib.py (__init__): extended MagicCompleter class to
4663 * IPython/iplib.py (__init__): extended MagicCompleter class to
4553 also complete (last in priority) on user aliases.
4664 also complete (last in priority) on user aliases.
4554
4665
4555 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4666 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4556 call to eval.
4667 call to eval.
4557 (ItplNS.__init__): Added a new class which functions like Itpl,
4668 (ItplNS.__init__): Added a new class which functions like Itpl,
4558 but allows configuring the namespace for the evaluation to occur
4669 but allows configuring the namespace for the evaluation to occur
4559 in.
4670 in.
4560
4671
4561 2004-06-18 Fernando Perez <fperez@colorado.edu>
4672 2004-06-18 Fernando Perez <fperez@colorado.edu>
4562
4673
4563 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4674 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4564 better message when 'exit' or 'quit' are typed (a common newbie
4675 better message when 'exit' or 'quit' are typed (a common newbie
4565 confusion).
4676 confusion).
4566
4677
4567 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4678 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4568 check for Windows users.
4679 check for Windows users.
4569
4680
4570 * IPython/iplib.py (InteractiveShell.user_setup): removed
4681 * IPython/iplib.py (InteractiveShell.user_setup): removed
4571 disabling of colors for Windows. I'll test at runtime and issue a
4682 disabling of colors for Windows. I'll test at runtime and issue a
4572 warning if Gary's readline isn't found, as to nudge users to
4683 warning if Gary's readline isn't found, as to nudge users to
4573 download it.
4684 download it.
4574
4685
4575 2004-06-16 Fernando Perez <fperez@colorado.edu>
4686 2004-06-16 Fernando Perez <fperez@colorado.edu>
4576
4687
4577 * IPython/genutils.py (Stream.__init__): changed to print errors
4688 * IPython/genutils.py (Stream.__init__): changed to print errors
4578 to sys.stderr. I had a circular dependency here. Now it's
4689 to sys.stderr. I had a circular dependency here. Now it's
4579 possible to run ipython as IDLE's shell (consider this pre-alpha,
4690 possible to run ipython as IDLE's shell (consider this pre-alpha,
4580 since true stdout things end up in the starting terminal instead
4691 since true stdout things end up in the starting terminal instead
4581 of IDLE's out).
4692 of IDLE's out).
4582
4693
4583 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4694 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4584 users who haven't # updated their prompt_in2 definitions. Remove
4695 users who haven't # updated their prompt_in2 definitions. Remove
4585 eventually.
4696 eventually.
4586 (multiple_replace): added credit to original ASPN recipe.
4697 (multiple_replace): added credit to original ASPN recipe.
4587
4698
4588 2004-06-15 Fernando Perez <fperez@colorado.edu>
4699 2004-06-15 Fernando Perez <fperez@colorado.edu>
4589
4700
4590 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4701 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4591 list of auto-defined aliases.
4702 list of auto-defined aliases.
4592
4703
4593 2004-06-13 Fernando Perez <fperez@colorado.edu>
4704 2004-06-13 Fernando Perez <fperez@colorado.edu>
4594
4705
4595 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4706 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4596 install was really requested (so setup.py can be used for other
4707 install was really requested (so setup.py can be used for other
4597 things under Windows).
4708 things under Windows).
4598
4709
4599 2004-06-10 Fernando Perez <fperez@colorado.edu>
4710 2004-06-10 Fernando Perez <fperez@colorado.edu>
4600
4711
4601 * IPython/Logger.py (Logger.create_log): Manually remove any old
4712 * IPython/Logger.py (Logger.create_log): Manually remove any old
4602 backup, since os.remove may fail under Windows. Fixes bug
4713 backup, since os.remove may fail under Windows. Fixes bug
4603 reported by Thorsten.
4714 reported by Thorsten.
4604
4715
4605 2004-06-09 Fernando Perez <fperez@colorado.edu>
4716 2004-06-09 Fernando Perez <fperez@colorado.edu>
4606
4717
4607 * examples/example-embed.py: fixed all references to %n (replaced
4718 * examples/example-embed.py: fixed all references to %n (replaced
4608 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4719 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4609 for all examples and the manual as well.
4720 for all examples and the manual as well.
4610
4721
4611 2004-06-08 Fernando Perez <fperez@colorado.edu>
4722 2004-06-08 Fernando Perez <fperez@colorado.edu>
4612
4723
4613 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4724 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4614 alignment and color management. All 3 prompt subsystems now
4725 alignment and color management. All 3 prompt subsystems now
4615 inherit from BasePrompt.
4726 inherit from BasePrompt.
4616
4727
4617 * tools/release: updates for windows installer build and tag rpms
4728 * tools/release: updates for windows installer build and tag rpms
4618 with python version (since paths are fixed).
4729 with python version (since paths are fixed).
4619
4730
4620 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4731 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4621 which will become eventually obsolete. Also fixed the default
4732 which will become eventually obsolete. Also fixed the default
4622 prompt_in2 to use \D, so at least new users start with the correct
4733 prompt_in2 to use \D, so at least new users start with the correct
4623 defaults.
4734 defaults.
4624 WARNING: Users with existing ipythonrc files will need to apply
4735 WARNING: Users with existing ipythonrc files will need to apply
4625 this fix manually!
4736 this fix manually!
4626
4737
4627 * setup.py: make windows installer (.exe). This is finally the
4738 * setup.py: make windows installer (.exe). This is finally the
4628 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4739 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4629 which I hadn't included because it required Python 2.3 (or recent
4740 which I hadn't included because it required Python 2.3 (or recent
4630 distutils).
4741 distutils).
4631
4742
4632 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4743 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4633 usage of new '\D' escape.
4744 usage of new '\D' escape.
4634
4745
4635 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4746 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4636 lacks os.getuid())
4747 lacks os.getuid())
4637 (CachedOutput.set_colors): Added the ability to turn coloring
4748 (CachedOutput.set_colors): Added the ability to turn coloring
4638 on/off with @colors even for manually defined prompt colors. It
4749 on/off with @colors even for manually defined prompt colors. It
4639 uses a nasty global, but it works safely and via the generic color
4750 uses a nasty global, but it works safely and via the generic color
4640 handling mechanism.
4751 handling mechanism.
4641 (Prompt2.__init__): Introduced new escape '\D' for continuation
4752 (Prompt2.__init__): Introduced new escape '\D' for continuation
4642 prompts. It represents the counter ('\#') as dots.
4753 prompts. It represents the counter ('\#') as dots.
4643 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4754 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4644 need to update their ipythonrc files and replace '%n' with '\D' in
4755 need to update their ipythonrc files and replace '%n' with '\D' in
4645 their prompt_in2 settings everywhere. Sorry, but there's
4756 their prompt_in2 settings everywhere. Sorry, but there's
4646 otherwise no clean way to get all prompts to properly align. The
4757 otherwise no clean way to get all prompts to properly align. The
4647 ipythonrc shipped with IPython has been updated.
4758 ipythonrc shipped with IPython has been updated.
4648
4759
4649 2004-06-07 Fernando Perez <fperez@colorado.edu>
4760 2004-06-07 Fernando Perez <fperez@colorado.edu>
4650
4761
4651 * setup.py (isfile): Pass local_icons option to latex2html, so the
4762 * setup.py (isfile): Pass local_icons option to latex2html, so the
4652 resulting HTML file is self-contained. Thanks to
4763 resulting HTML file is self-contained. Thanks to
4653 dryice-AT-liu.com.cn for the tip.
4764 dryice-AT-liu.com.cn for the tip.
4654
4765
4655 * pysh.py: I created a new profile 'shell', which implements a
4766 * pysh.py: I created a new profile 'shell', which implements a
4656 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4767 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4657 system shell, nor will it become one anytime soon. It's mainly
4768 system shell, nor will it become one anytime soon. It's mainly
4658 meant to illustrate the use of the new flexible bash-like prompts.
4769 meant to illustrate the use of the new flexible bash-like prompts.
4659 I guess it could be used by hardy souls for true shell management,
4770 I guess it could be used by hardy souls for true shell management,
4660 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4771 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4661 profile. This uses the InterpreterExec extension provided by
4772 profile. This uses the InterpreterExec extension provided by
4662 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4773 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4663
4774
4664 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4775 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4665 auto-align itself with the length of the previous input prompt
4776 auto-align itself with the length of the previous input prompt
4666 (taking into account the invisible color escapes).
4777 (taking into account the invisible color escapes).
4667 (CachedOutput.__init__): Large restructuring of this class. Now
4778 (CachedOutput.__init__): Large restructuring of this class. Now
4668 all three prompts (primary1, primary2, output) are proper objects,
4779 all three prompts (primary1, primary2, output) are proper objects,
4669 managed by the 'parent' CachedOutput class. The code is still a
4780 managed by the 'parent' CachedOutput class. The code is still a
4670 bit hackish (all prompts share state via a pointer to the cache),
4781 bit hackish (all prompts share state via a pointer to the cache),
4671 but it's overall far cleaner than before.
4782 but it's overall far cleaner than before.
4672
4783
4673 * IPython/genutils.py (getoutputerror): modified to add verbose,
4784 * IPython/genutils.py (getoutputerror): modified to add verbose,
4674 debug and header options. This makes the interface of all getout*
4785 debug and header options. This makes the interface of all getout*
4675 functions uniform.
4786 functions uniform.
4676 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4787 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4677
4788
4678 * IPython/Magic.py (Magic.default_option): added a function to
4789 * IPython/Magic.py (Magic.default_option): added a function to
4679 allow registering default options for any magic command. This
4790 allow registering default options for any magic command. This
4680 makes it easy to have profiles which customize the magics globally
4791 makes it easy to have profiles which customize the magics globally
4681 for a certain use. The values set through this function are
4792 for a certain use. The values set through this function are
4682 picked up by the parse_options() method, which all magics should
4793 picked up by the parse_options() method, which all magics should
4683 use to parse their options.
4794 use to parse their options.
4684
4795
4685 * IPython/genutils.py (warn): modified the warnings framework to
4796 * IPython/genutils.py (warn): modified the warnings framework to
4686 use the Term I/O class. I'm trying to slowly unify all of
4797 use the Term I/O class. I'm trying to slowly unify all of
4687 IPython's I/O operations to pass through Term.
4798 IPython's I/O operations to pass through Term.
4688
4799
4689 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4800 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4690 the secondary prompt to correctly match the length of the primary
4801 the secondary prompt to correctly match the length of the primary
4691 one for any prompt. Now multi-line code will properly line up
4802 one for any prompt. Now multi-line code will properly line up
4692 even for path dependent prompts, such as the new ones available
4803 even for path dependent prompts, such as the new ones available
4693 via the prompt_specials.
4804 via the prompt_specials.
4694
4805
4695 2004-06-06 Fernando Perez <fperez@colorado.edu>
4806 2004-06-06 Fernando Perez <fperez@colorado.edu>
4696
4807
4697 * IPython/Prompts.py (prompt_specials): Added the ability to have
4808 * IPython/Prompts.py (prompt_specials): Added the ability to have
4698 bash-like special sequences in the prompts, which get
4809 bash-like special sequences in the prompts, which get
4699 automatically expanded. Things like hostname, current working
4810 automatically expanded. Things like hostname, current working
4700 directory and username are implemented already, but it's easy to
4811 directory and username are implemented already, but it's easy to
4701 add more in the future. Thanks to a patch by W.J. van der Laan
4812 add more in the future. Thanks to a patch by W.J. van der Laan
4702 <gnufnork-AT-hetdigitalegat.nl>
4813 <gnufnork-AT-hetdigitalegat.nl>
4703 (prompt_specials): Added color support for prompt strings, so
4814 (prompt_specials): Added color support for prompt strings, so
4704 users can define arbitrary color setups for their prompts.
4815 users can define arbitrary color setups for their prompts.
4705
4816
4706 2004-06-05 Fernando Perez <fperez@colorado.edu>
4817 2004-06-05 Fernando Perez <fperez@colorado.edu>
4707
4818
4708 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4819 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4709 code to load Gary Bishop's readline and configure it
4820 code to load Gary Bishop's readline and configure it
4710 automatically. Thanks to Gary for help on this.
4821 automatically. Thanks to Gary for help on this.
4711
4822
4712 2004-06-01 Fernando Perez <fperez@colorado.edu>
4823 2004-06-01 Fernando Perez <fperez@colorado.edu>
4713
4824
4714 * IPython/Logger.py (Logger.create_log): fix bug for logging
4825 * IPython/Logger.py (Logger.create_log): fix bug for logging
4715 with no filename (previous fix was incomplete).
4826 with no filename (previous fix was incomplete).
4716
4827
4717 2004-05-25 Fernando Perez <fperez@colorado.edu>
4828 2004-05-25 Fernando Perez <fperez@colorado.edu>
4718
4829
4719 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4830 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4720 parens would get passed to the shell.
4831 parens would get passed to the shell.
4721
4832
4722 2004-05-20 Fernando Perez <fperez@colorado.edu>
4833 2004-05-20 Fernando Perez <fperez@colorado.edu>
4723
4834
4724 * IPython/Magic.py (Magic.magic_prun): changed default profile
4835 * IPython/Magic.py (Magic.magic_prun): changed default profile
4725 sort order to 'time' (the more common profiling need).
4836 sort order to 'time' (the more common profiling need).
4726
4837
4727 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4838 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4728 so that source code shown is guaranteed in sync with the file on
4839 so that source code shown is guaranteed in sync with the file on
4729 disk (also changed in psource). Similar fix to the one for
4840 disk (also changed in psource). Similar fix to the one for
4730 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4841 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4731 <yann.ledu-AT-noos.fr>.
4842 <yann.ledu-AT-noos.fr>.
4732
4843
4733 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4844 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4734 with a single option would not be correctly parsed. Closes
4845 with a single option would not be correctly parsed. Closes
4735 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4846 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4736 introduced in 0.6.0 (on 2004-05-06).
4847 introduced in 0.6.0 (on 2004-05-06).
4737
4848
4738 2004-05-13 *** Released version 0.6.0
4849 2004-05-13 *** Released version 0.6.0
4739
4850
4740 2004-05-13 Fernando Perez <fperez@colorado.edu>
4851 2004-05-13 Fernando Perez <fperez@colorado.edu>
4741
4852
4742 * debian/: Added debian/ directory to CVS, so that debian support
4853 * debian/: Added debian/ directory to CVS, so that debian support
4743 is publicly accessible. The debian package is maintained by Jack
4854 is publicly accessible. The debian package is maintained by Jack
4744 Moffit <jack-AT-xiph.org>.
4855 Moffit <jack-AT-xiph.org>.
4745
4856
4746 * Documentation: included the notes about an ipython-based system
4857 * Documentation: included the notes about an ipython-based system
4747 shell (the hypothetical 'pysh') into the new_design.pdf document,
4858 shell (the hypothetical 'pysh') into the new_design.pdf document,
4748 so that these ideas get distributed to users along with the
4859 so that these ideas get distributed to users along with the
4749 official documentation.
4860 official documentation.
4750
4861
4751 2004-05-10 Fernando Perez <fperez@colorado.edu>
4862 2004-05-10 Fernando Perez <fperez@colorado.edu>
4752
4863
4753 * IPython/Logger.py (Logger.create_log): fix recently introduced
4864 * IPython/Logger.py (Logger.create_log): fix recently introduced
4754 bug (misindented line) where logstart would fail when not given an
4865 bug (misindented line) where logstart would fail when not given an
4755 explicit filename.
4866 explicit filename.
4756
4867
4757 2004-05-09 Fernando Perez <fperez@colorado.edu>
4868 2004-05-09 Fernando Perez <fperez@colorado.edu>
4758
4869
4759 * IPython/Magic.py (Magic.parse_options): skip system call when
4870 * IPython/Magic.py (Magic.parse_options): skip system call when
4760 there are no options to look for. Faster, cleaner for the common
4871 there are no options to look for. Faster, cleaner for the common
4761 case.
4872 case.
4762
4873
4763 * Documentation: many updates to the manual: describing Windows
4874 * Documentation: many updates to the manual: describing Windows
4764 support better, Gnuplot updates, credits, misc small stuff. Also
4875 support better, Gnuplot updates, credits, misc small stuff. Also
4765 updated the new_design doc a bit.
4876 updated the new_design doc a bit.
4766
4877
4767 2004-05-06 *** Released version 0.6.0.rc1
4878 2004-05-06 *** Released version 0.6.0.rc1
4768
4879
4769 2004-05-06 Fernando Perez <fperez@colorado.edu>
4880 2004-05-06 Fernando Perez <fperez@colorado.edu>
4770
4881
4771 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4882 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4772 operations to use the vastly more efficient list/''.join() method.
4883 operations to use the vastly more efficient list/''.join() method.
4773 (FormattedTB.text): Fix
4884 (FormattedTB.text): Fix
4774 http://www.scipy.net/roundup/ipython/issue12 - exception source
4885 http://www.scipy.net/roundup/ipython/issue12 - exception source
4775 extract not updated after reload. Thanks to Mike Salib
4886 extract not updated after reload. Thanks to Mike Salib
4776 <msalib-AT-mit.edu> for pinning the source of the problem.
4887 <msalib-AT-mit.edu> for pinning the source of the problem.
4777 Fortunately, the solution works inside ipython and doesn't require
4888 Fortunately, the solution works inside ipython and doesn't require
4778 any changes to python proper.
4889 any changes to python proper.
4779
4890
4780 * IPython/Magic.py (Magic.parse_options): Improved to process the
4891 * IPython/Magic.py (Magic.parse_options): Improved to process the
4781 argument list as a true shell would (by actually using the
4892 argument list as a true shell would (by actually using the
4782 underlying system shell). This way, all @magics automatically get
4893 underlying system shell). This way, all @magics automatically get
4783 shell expansion for variables. Thanks to a comment by Alex
4894 shell expansion for variables. Thanks to a comment by Alex
4784 Schmolck.
4895 Schmolck.
4785
4896
4786 2004-04-04 Fernando Perez <fperez@colorado.edu>
4897 2004-04-04 Fernando Perez <fperez@colorado.edu>
4787
4898
4788 * IPython/iplib.py (InteractiveShell.interact): Added a special
4899 * IPython/iplib.py (InteractiveShell.interact): Added a special
4789 trap for a debugger quit exception, which is basically impossible
4900 trap for a debugger quit exception, which is basically impossible
4790 to handle by normal mechanisms, given what pdb does to the stack.
4901 to handle by normal mechanisms, given what pdb does to the stack.
4791 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4902 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4792
4903
4793 2004-04-03 Fernando Perez <fperez@colorado.edu>
4904 2004-04-03 Fernando Perez <fperez@colorado.edu>
4794
4905
4795 * IPython/genutils.py (Term): Standardized the names of the Term
4906 * IPython/genutils.py (Term): Standardized the names of the Term
4796 class streams to cin/cout/cerr, following C++ naming conventions
4907 class streams to cin/cout/cerr, following C++ naming conventions
4797 (I can't use in/out/err because 'in' is not a valid attribute
4908 (I can't use in/out/err because 'in' is not a valid attribute
4798 name).
4909 name).
4799
4910
4800 * IPython/iplib.py (InteractiveShell.interact): don't increment
4911 * IPython/iplib.py (InteractiveShell.interact): don't increment
4801 the prompt if there's no user input. By Daniel 'Dang' Griffith
4912 the prompt if there's no user input. By Daniel 'Dang' Griffith
4802 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4913 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4803 Francois Pinard.
4914 Francois Pinard.
4804
4915
4805 2004-04-02 Fernando Perez <fperez@colorado.edu>
4916 2004-04-02 Fernando Perez <fperez@colorado.edu>
4806
4917
4807 * IPython/genutils.py (Stream.__init__): Modified to survive at
4918 * IPython/genutils.py (Stream.__init__): Modified to survive at
4808 least importing in contexts where stdin/out/err aren't true file
4919 least importing in contexts where stdin/out/err aren't true file
4809 objects, such as PyCrust (they lack fileno() and mode). However,
4920 objects, such as PyCrust (they lack fileno() and mode). However,
4810 the recovery facilities which rely on these things existing will
4921 the recovery facilities which rely on these things existing will
4811 not work.
4922 not work.
4812
4923
4813 2004-04-01 Fernando Perez <fperez@colorado.edu>
4924 2004-04-01 Fernando Perez <fperez@colorado.edu>
4814
4925
4815 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4926 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4816 use the new getoutputerror() function, so it properly
4927 use the new getoutputerror() function, so it properly
4817 distinguishes stdout/err.
4928 distinguishes stdout/err.
4818
4929
4819 * IPython/genutils.py (getoutputerror): added a function to
4930 * IPython/genutils.py (getoutputerror): added a function to
4820 capture separately the standard output and error of a command.
4931 capture separately the standard output and error of a command.
4821 After a comment from dang on the mailing lists. This code is
4932 After a comment from dang on the mailing lists. This code is
4822 basically a modified version of commands.getstatusoutput(), from
4933 basically a modified version of commands.getstatusoutput(), from
4823 the standard library.
4934 the standard library.
4824
4935
4825 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4936 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4826 '!!' as a special syntax (shorthand) to access @sx.
4937 '!!' as a special syntax (shorthand) to access @sx.
4827
4938
4828 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4939 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4829 command and return its output as a list split on '\n'.
4940 command and return its output as a list split on '\n'.
4830
4941
4831 2004-03-31 Fernando Perez <fperez@colorado.edu>
4942 2004-03-31 Fernando Perez <fperez@colorado.edu>
4832
4943
4833 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4944 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4834 method to dictionaries used as FakeModule instances if they lack
4945 method to dictionaries used as FakeModule instances if they lack
4835 it. At least pydoc in python2.3 breaks for runtime-defined
4946 it. At least pydoc in python2.3 breaks for runtime-defined
4836 functions without this hack. At some point I need to _really_
4947 functions without this hack. At some point I need to _really_
4837 understand what FakeModule is doing, because it's a gross hack.
4948 understand what FakeModule is doing, because it's a gross hack.
4838 But it solves Arnd's problem for now...
4949 But it solves Arnd's problem for now...
4839
4950
4840 2004-02-27 Fernando Perez <fperez@colorado.edu>
4951 2004-02-27 Fernando Perez <fperez@colorado.edu>
4841
4952
4842 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4953 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4843 mode would behave erratically. Also increased the number of
4954 mode would behave erratically. Also increased the number of
4844 possible logs in rotate mod to 999. Thanks to Rod Holland
4955 possible logs in rotate mod to 999. Thanks to Rod Holland
4845 <rhh@StructureLABS.com> for the report and fixes.
4956 <rhh@StructureLABS.com> for the report and fixes.
4846
4957
4847 2004-02-26 Fernando Perez <fperez@colorado.edu>
4958 2004-02-26 Fernando Perez <fperez@colorado.edu>
4848
4959
4849 * IPython/genutils.py (page): Check that the curses module really
4960 * IPython/genutils.py (page): Check that the curses module really
4850 has the initscr attribute before trying to use it. For some
4961 has the initscr attribute before trying to use it. For some
4851 reason, the Solaris curses module is missing this. I think this
4962 reason, the Solaris curses module is missing this. I think this
4852 should be considered a Solaris python bug, but I'm not sure.
4963 should be considered a Solaris python bug, but I'm not sure.
4853
4964
4854 2004-01-17 Fernando Perez <fperez@colorado.edu>
4965 2004-01-17 Fernando Perez <fperez@colorado.edu>
4855
4966
4856 * IPython/genutils.py (Stream.__init__): Changes to try to make
4967 * IPython/genutils.py (Stream.__init__): Changes to try to make
4857 ipython robust against stdin/out/err being closed by the user.
4968 ipython robust against stdin/out/err being closed by the user.
4858 This is 'user error' (and blocks a normal python session, at least
4969 This is 'user error' (and blocks a normal python session, at least
4859 the stdout case). However, Ipython should be able to survive such
4970 the stdout case). However, Ipython should be able to survive such
4860 instances of abuse as gracefully as possible. To simplify the
4971 instances of abuse as gracefully as possible. To simplify the
4861 coding and maintain compatibility with Gary Bishop's Term
4972 coding and maintain compatibility with Gary Bishop's Term
4862 contributions, I've made use of classmethods for this. I think
4973 contributions, I've made use of classmethods for this. I think
4863 this introduces a dependency on python 2.2.
4974 this introduces a dependency on python 2.2.
4864
4975
4865 2004-01-13 Fernando Perez <fperez@colorado.edu>
4976 2004-01-13 Fernando Perez <fperez@colorado.edu>
4866
4977
4867 * IPython/numutils.py (exp_safe): simplified the code a bit and
4978 * IPython/numutils.py (exp_safe): simplified the code a bit and
4868 removed the need for importing the kinds module altogether.
4979 removed the need for importing the kinds module altogether.
4869
4980
4870 2004-01-06 Fernando Perez <fperez@colorado.edu>
4981 2004-01-06 Fernando Perez <fperez@colorado.edu>
4871
4982
4872 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4983 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4873 a magic function instead, after some community feedback. No
4984 a magic function instead, after some community feedback. No
4874 special syntax will exist for it, but its name is deliberately
4985 special syntax will exist for it, but its name is deliberately
4875 very short.
4986 very short.
4876
4987
4877 2003-12-20 Fernando Perez <fperez@colorado.edu>
4988 2003-12-20 Fernando Perez <fperez@colorado.edu>
4878
4989
4879 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4990 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4880 new functionality, to automagically assign the result of a shell
4991 new functionality, to automagically assign the result of a shell
4881 command to a variable. I'll solicit some community feedback on
4992 command to a variable. I'll solicit some community feedback on
4882 this before making it permanent.
4993 this before making it permanent.
4883
4994
4884 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4995 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4885 requested about callables for which inspect couldn't obtain a
4996 requested about callables for which inspect couldn't obtain a
4886 proper argspec. Thanks to a crash report sent by Etienne
4997 proper argspec. Thanks to a crash report sent by Etienne
4887 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4998 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4888
4999
4889 2003-12-09 Fernando Perez <fperez@colorado.edu>
5000 2003-12-09 Fernando Perez <fperez@colorado.edu>
4890
5001
4891 * IPython/genutils.py (page): patch for the pager to work across
5002 * IPython/genutils.py (page): patch for the pager to work across
4892 various versions of Windows. By Gary Bishop.
5003 various versions of Windows. By Gary Bishop.
4893
5004
4894 2003-12-04 Fernando Perez <fperez@colorado.edu>
5005 2003-12-04 Fernando Perez <fperez@colorado.edu>
4895
5006
4896 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5007 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4897 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5008 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4898 While I tested this and it looks ok, there may still be corner
5009 While I tested this and it looks ok, there may still be corner
4899 cases I've missed.
5010 cases I've missed.
4900
5011
4901 2003-12-01 Fernando Perez <fperez@colorado.edu>
5012 2003-12-01 Fernando Perez <fperez@colorado.edu>
4902
5013
4903 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5014 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4904 where a line like 'p,q=1,2' would fail because the automagic
5015 where a line like 'p,q=1,2' would fail because the automagic
4905 system would be triggered for @p.
5016 system would be triggered for @p.
4906
5017
4907 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5018 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4908 cleanups, code unmodified.
5019 cleanups, code unmodified.
4909
5020
4910 * IPython/genutils.py (Term): added a class for IPython to handle
5021 * IPython/genutils.py (Term): added a class for IPython to handle
4911 output. In most cases it will just be a proxy for stdout/err, but
5022 output. In most cases it will just be a proxy for stdout/err, but
4912 having this allows modifications to be made for some platforms,
5023 having this allows modifications to be made for some platforms,
4913 such as handling color escapes under Windows. All of this code
5024 such as handling color escapes under Windows. All of this code
4914 was contributed by Gary Bishop, with minor modifications by me.
5025 was contributed by Gary Bishop, with minor modifications by me.
4915 The actual changes affect many files.
5026 The actual changes affect many files.
4916
5027
4917 2003-11-30 Fernando Perez <fperez@colorado.edu>
5028 2003-11-30 Fernando Perez <fperez@colorado.edu>
4918
5029
4919 * IPython/iplib.py (file_matches): new completion code, courtesy
5030 * IPython/iplib.py (file_matches): new completion code, courtesy
4920 of Jeff Collins. This enables filename completion again under
5031 of Jeff Collins. This enables filename completion again under
4921 python 2.3, which disabled it at the C level.
5032 python 2.3, which disabled it at the C level.
4922
5033
4923 2003-11-11 Fernando Perez <fperez@colorado.edu>
5034 2003-11-11 Fernando Perez <fperez@colorado.edu>
4924
5035
4925 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5036 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4926 for Numeric.array(map(...)), but often convenient.
5037 for Numeric.array(map(...)), but often convenient.
4927
5038
4928 2003-11-05 Fernando Perez <fperez@colorado.edu>
5039 2003-11-05 Fernando Perez <fperez@colorado.edu>
4929
5040
4930 * IPython/numutils.py (frange): Changed a call from int() to
5041 * IPython/numutils.py (frange): Changed a call from int() to
4931 int(round()) to prevent a problem reported with arange() in the
5042 int(round()) to prevent a problem reported with arange() in the
4932 numpy list.
5043 numpy list.
4933
5044
4934 2003-10-06 Fernando Perez <fperez@colorado.edu>
5045 2003-10-06 Fernando Perez <fperez@colorado.edu>
4935
5046
4936 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5047 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4937 prevent crashes if sys lacks an argv attribute (it happens with
5048 prevent crashes if sys lacks an argv attribute (it happens with
4938 embedded interpreters which build a bare-bones sys module).
5049 embedded interpreters which build a bare-bones sys module).
4939 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5050 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4940
5051
4941 2003-09-24 Fernando Perez <fperez@colorado.edu>
5052 2003-09-24 Fernando Perez <fperez@colorado.edu>
4942
5053
4943 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5054 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4944 to protect against poorly written user objects where __getattr__
5055 to protect against poorly written user objects where __getattr__
4945 raises exceptions other than AttributeError. Thanks to a bug
5056 raises exceptions other than AttributeError. Thanks to a bug
4946 report by Oliver Sander <osander-AT-gmx.de>.
5057 report by Oliver Sander <osander-AT-gmx.de>.
4947
5058
4948 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5059 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4949 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5060 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4950
5061
4951 2003-09-09 Fernando Perez <fperez@colorado.edu>
5062 2003-09-09 Fernando Perez <fperez@colorado.edu>
4952
5063
4953 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5064 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4954 unpacking a list whith a callable as first element would
5065 unpacking a list whith a callable as first element would
4955 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5066 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4956 Collins.
5067 Collins.
4957
5068
4958 2003-08-25 *** Released version 0.5.0
5069 2003-08-25 *** Released version 0.5.0
4959
5070
4960 2003-08-22 Fernando Perez <fperez@colorado.edu>
5071 2003-08-22 Fernando Perez <fperez@colorado.edu>
4961
5072
4962 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5073 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4963 improperly defined user exceptions. Thanks to feedback from Mark
5074 improperly defined user exceptions. Thanks to feedback from Mark
4964 Russell <mrussell-AT-verio.net>.
5075 Russell <mrussell-AT-verio.net>.
4965
5076
4966 2003-08-20 Fernando Perez <fperez@colorado.edu>
5077 2003-08-20 Fernando Perez <fperez@colorado.edu>
4967
5078
4968 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5079 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4969 printing so that it would print multi-line string forms starting
5080 printing so that it would print multi-line string forms starting
4970 with a new line. This way the formatting is better respected for
5081 with a new line. This way the formatting is better respected for
4971 objects which work hard to make nice string forms.
5082 objects which work hard to make nice string forms.
4972
5083
4973 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5084 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4974 autocall would overtake data access for objects with both
5085 autocall would overtake data access for objects with both
4975 __getitem__ and __call__.
5086 __getitem__ and __call__.
4976
5087
4977 2003-08-19 *** Released version 0.5.0-rc1
5088 2003-08-19 *** Released version 0.5.0-rc1
4978
5089
4979 2003-08-19 Fernando Perez <fperez@colorado.edu>
5090 2003-08-19 Fernando Perez <fperez@colorado.edu>
4980
5091
4981 * IPython/deep_reload.py (load_tail): single tiny change here
5092 * IPython/deep_reload.py (load_tail): single tiny change here
4982 seems to fix the long-standing bug of dreload() failing to work
5093 seems to fix the long-standing bug of dreload() failing to work
4983 for dotted names. But this module is pretty tricky, so I may have
5094 for dotted names. But this module is pretty tricky, so I may have
4984 missed some subtlety. Needs more testing!.
5095 missed some subtlety. Needs more testing!.
4985
5096
4986 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5097 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4987 exceptions which have badly implemented __str__ methods.
5098 exceptions which have badly implemented __str__ methods.
4988 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5099 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4989 which I've been getting reports about from Python 2.3 users. I
5100 which I've been getting reports about from Python 2.3 users. I
4990 wish I had a simple test case to reproduce the problem, so I could
5101 wish I had a simple test case to reproduce the problem, so I could
4991 either write a cleaner workaround or file a bug report if
5102 either write a cleaner workaround or file a bug report if
4992 necessary.
5103 necessary.
4993
5104
4994 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5105 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4995 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5106 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4996 a bug report by Tjabo Kloppenburg.
5107 a bug report by Tjabo Kloppenburg.
4997
5108
4998 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5109 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4999 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5110 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5000 seems rather unstable. Thanks to a bug report by Tjabo
5111 seems rather unstable. Thanks to a bug report by Tjabo
5001 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5112 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5002
5113
5003 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5114 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5004 this out soon because of the critical fixes in the inner loop for
5115 this out soon because of the critical fixes in the inner loop for
5005 generators.
5116 generators.
5006
5117
5007 * IPython/Magic.py (Magic.getargspec): removed. This (and
5118 * IPython/Magic.py (Magic.getargspec): removed. This (and
5008 _get_def) have been obsoleted by OInspect for a long time, I
5119 _get_def) have been obsoleted by OInspect for a long time, I
5009 hadn't noticed that they were dead code.
5120 hadn't noticed that they were dead code.
5010 (Magic._ofind): restored _ofind functionality for a few literals
5121 (Magic._ofind): restored _ofind functionality for a few literals
5011 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5122 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5012 for things like "hello".capitalize?, since that would require a
5123 for things like "hello".capitalize?, since that would require a
5013 potentially dangerous eval() again.
5124 potentially dangerous eval() again.
5014
5125
5015 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5126 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5016 logic a bit more to clean up the escapes handling and minimize the
5127 logic a bit more to clean up the escapes handling and minimize the
5017 use of _ofind to only necessary cases. The interactive 'feel' of
5128 use of _ofind to only necessary cases. The interactive 'feel' of
5018 IPython should have improved quite a bit with the changes in
5129 IPython should have improved quite a bit with the changes in
5019 _prefilter and _ofind (besides being far safer than before).
5130 _prefilter and _ofind (besides being far safer than before).
5020
5131
5021 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5132 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5022 obscure, never reported). Edit would fail to find the object to
5133 obscure, never reported). Edit would fail to find the object to
5023 edit under some circumstances.
5134 edit under some circumstances.
5024 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5135 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5025 which were causing double-calling of generators. Those eval calls
5136 which were causing double-calling of generators. Those eval calls
5026 were _very_ dangerous, since code with side effects could be
5137 were _very_ dangerous, since code with side effects could be
5027 triggered. As they say, 'eval is evil'... These were the
5138 triggered. As they say, 'eval is evil'... These were the
5028 nastiest evals in IPython. Besides, _ofind is now far simpler,
5139 nastiest evals in IPython. Besides, _ofind is now far simpler,
5029 and it should also be quite a bit faster. Its use of inspect is
5140 and it should also be quite a bit faster. Its use of inspect is
5030 also safer, so perhaps some of the inspect-related crashes I've
5141 also safer, so perhaps some of the inspect-related crashes I've
5031 seen lately with Python 2.3 might be taken care of. That will
5142 seen lately with Python 2.3 might be taken care of. That will
5032 need more testing.
5143 need more testing.
5033
5144
5034 2003-08-17 Fernando Perez <fperez@colorado.edu>
5145 2003-08-17 Fernando Perez <fperez@colorado.edu>
5035
5146
5036 * IPython/iplib.py (InteractiveShell._prefilter): significant
5147 * IPython/iplib.py (InteractiveShell._prefilter): significant
5037 simplifications to the logic for handling user escapes. Faster
5148 simplifications to the logic for handling user escapes. Faster
5038 and simpler code.
5149 and simpler code.
5039
5150
5040 2003-08-14 Fernando Perez <fperez@colorado.edu>
5151 2003-08-14 Fernando Perez <fperez@colorado.edu>
5041
5152
5042 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5153 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5043 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5154 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5044 but it should be quite a bit faster. And the recursive version
5155 but it should be quite a bit faster. And the recursive version
5045 generated O(log N) intermediate storage for all rank>1 arrays,
5156 generated O(log N) intermediate storage for all rank>1 arrays,
5046 even if they were contiguous.
5157 even if they were contiguous.
5047 (l1norm): Added this function.
5158 (l1norm): Added this function.
5048 (norm): Added this function for arbitrary norms (including
5159 (norm): Added this function for arbitrary norms (including
5049 l-infinity). l1 and l2 are still special cases for convenience
5160 l-infinity). l1 and l2 are still special cases for convenience
5050 and speed.
5161 and speed.
5051
5162
5052 2003-08-03 Fernando Perez <fperez@colorado.edu>
5163 2003-08-03 Fernando Perez <fperez@colorado.edu>
5053
5164
5054 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5165 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5055 exceptions, which now raise PendingDeprecationWarnings in Python
5166 exceptions, which now raise PendingDeprecationWarnings in Python
5056 2.3. There were some in Magic and some in Gnuplot2.
5167 2.3. There were some in Magic and some in Gnuplot2.
5057
5168
5058 2003-06-30 Fernando Perez <fperez@colorado.edu>
5169 2003-06-30 Fernando Perez <fperez@colorado.edu>
5059
5170
5060 * IPython/genutils.py (page): modified to call curses only for
5171 * IPython/genutils.py (page): modified to call curses only for
5061 terminals where TERM=='xterm'. After problems under many other
5172 terminals where TERM=='xterm'. After problems under many other
5062 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5173 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5063
5174
5064 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5175 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5065 would be triggered when readline was absent. This was just an old
5176 would be triggered when readline was absent. This was just an old
5066 debugging statement I'd forgotten to take out.
5177 debugging statement I'd forgotten to take out.
5067
5178
5068 2003-06-20 Fernando Perez <fperez@colorado.edu>
5179 2003-06-20 Fernando Perez <fperez@colorado.edu>
5069
5180
5070 * IPython/genutils.py (clock): modified to return only user time
5181 * IPython/genutils.py (clock): modified to return only user time
5071 (not counting system time), after a discussion on scipy. While
5182 (not counting system time), after a discussion on scipy. While
5072 system time may be a useful quantity occasionally, it may much
5183 system time may be a useful quantity occasionally, it may much
5073 more easily be skewed by occasional swapping or other similar
5184 more easily be skewed by occasional swapping or other similar
5074 activity.
5185 activity.
5075
5186
5076 2003-06-05 Fernando Perez <fperez@colorado.edu>
5187 2003-06-05 Fernando Perez <fperez@colorado.edu>
5077
5188
5078 * IPython/numutils.py (identity): new function, for building
5189 * IPython/numutils.py (identity): new function, for building
5079 arbitrary rank Kronecker deltas (mostly backwards compatible with
5190 arbitrary rank Kronecker deltas (mostly backwards compatible with
5080 Numeric.identity)
5191 Numeric.identity)
5081
5192
5082 2003-06-03 Fernando Perez <fperez@colorado.edu>
5193 2003-06-03 Fernando Perez <fperez@colorado.edu>
5083
5194
5084 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5195 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5085 arguments passed to magics with spaces, to allow trailing '\' to
5196 arguments passed to magics with spaces, to allow trailing '\' to
5086 work normally (mainly for Windows users).
5197 work normally (mainly for Windows users).
5087
5198
5088 2003-05-29 Fernando Perez <fperez@colorado.edu>
5199 2003-05-29 Fernando Perez <fperez@colorado.edu>
5089
5200
5090 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5201 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5091 instead of pydoc.help. This fixes a bizarre behavior where
5202 instead of pydoc.help. This fixes a bizarre behavior where
5092 printing '%s' % locals() would trigger the help system. Now
5203 printing '%s' % locals() would trigger the help system. Now
5093 ipython behaves like normal python does.
5204 ipython behaves like normal python does.
5094
5205
5095 Note that if one does 'from pydoc import help', the bizarre
5206 Note that if one does 'from pydoc import help', the bizarre
5096 behavior returns, but this will also happen in normal python, so
5207 behavior returns, but this will also happen in normal python, so
5097 it's not an ipython bug anymore (it has to do with how pydoc.help
5208 it's not an ipython bug anymore (it has to do with how pydoc.help
5098 is implemented).
5209 is implemented).
5099
5210
5100 2003-05-22 Fernando Perez <fperez@colorado.edu>
5211 2003-05-22 Fernando Perez <fperez@colorado.edu>
5101
5212
5102 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5213 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5103 return [] instead of None when nothing matches, also match to end
5214 return [] instead of None when nothing matches, also match to end
5104 of line. Patch by Gary Bishop.
5215 of line. Patch by Gary Bishop.
5105
5216
5106 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5217 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5107 protection as before, for files passed on the command line. This
5218 protection as before, for files passed on the command line. This
5108 prevents the CrashHandler from kicking in if user files call into
5219 prevents the CrashHandler from kicking in if user files call into
5109 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5220 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5110 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5221 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5111
5222
5112 2003-05-20 *** Released version 0.4.0
5223 2003-05-20 *** Released version 0.4.0
5113
5224
5114 2003-05-20 Fernando Perez <fperez@colorado.edu>
5225 2003-05-20 Fernando Perez <fperez@colorado.edu>
5115
5226
5116 * setup.py: added support for manpages. It's a bit hackish b/c of
5227 * setup.py: added support for manpages. It's a bit hackish b/c of
5117 a bug in the way the bdist_rpm distutils target handles gzipped
5228 a bug in the way the bdist_rpm distutils target handles gzipped
5118 manpages, but it works. After a patch by Jack.
5229 manpages, but it works. After a patch by Jack.
5119
5230
5120 2003-05-19 Fernando Perez <fperez@colorado.edu>
5231 2003-05-19 Fernando Perez <fperez@colorado.edu>
5121
5232
5122 * IPython/numutils.py: added a mockup of the kinds module, since
5233 * IPython/numutils.py: added a mockup of the kinds module, since
5123 it was recently removed from Numeric. This way, numutils will
5234 it was recently removed from Numeric. This way, numutils will
5124 work for all users even if they are missing kinds.
5235 work for all users even if they are missing kinds.
5125
5236
5126 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5237 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5127 failure, which can occur with SWIG-wrapped extensions. After a
5238 failure, which can occur with SWIG-wrapped extensions. After a
5128 crash report from Prabhu.
5239 crash report from Prabhu.
5129
5240
5130 2003-05-16 Fernando Perez <fperez@colorado.edu>
5241 2003-05-16 Fernando Perez <fperez@colorado.edu>
5131
5242
5132 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5243 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5133 protect ipython from user code which may call directly
5244 protect ipython from user code which may call directly
5134 sys.excepthook (this looks like an ipython crash to the user, even
5245 sys.excepthook (this looks like an ipython crash to the user, even
5135 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5246 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5136 This is especially important to help users of WxWindows, but may
5247 This is especially important to help users of WxWindows, but may
5137 also be useful in other cases.
5248 also be useful in other cases.
5138
5249
5139 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5250 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5140 an optional tb_offset to be specified, and to preserve exception
5251 an optional tb_offset to be specified, and to preserve exception
5141 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5252 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5142
5253
5143 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5254 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5144
5255
5145 2003-05-15 Fernando Perez <fperez@colorado.edu>
5256 2003-05-15 Fernando Perez <fperez@colorado.edu>
5146
5257
5147 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5258 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5148 installing for a new user under Windows.
5259 installing for a new user under Windows.
5149
5260
5150 2003-05-12 Fernando Perez <fperez@colorado.edu>
5261 2003-05-12 Fernando Perez <fperez@colorado.edu>
5151
5262
5152 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5263 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5153 handler for Emacs comint-based lines. Currently it doesn't do
5264 handler for Emacs comint-based lines. Currently it doesn't do
5154 much (but importantly, it doesn't update the history cache). In
5265 much (but importantly, it doesn't update the history cache). In
5155 the future it may be expanded if Alex needs more functionality
5266 the future it may be expanded if Alex needs more functionality
5156 there.
5267 there.
5157
5268
5158 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5269 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5159 info to crash reports.
5270 info to crash reports.
5160
5271
5161 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5272 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5162 just like Python's -c. Also fixed crash with invalid -color
5273 just like Python's -c. Also fixed crash with invalid -color
5163 option value at startup. Thanks to Will French
5274 option value at startup. Thanks to Will French
5164 <wfrench-AT-bestweb.net> for the bug report.
5275 <wfrench-AT-bestweb.net> for the bug report.
5165
5276
5166 2003-05-09 Fernando Perez <fperez@colorado.edu>
5277 2003-05-09 Fernando Perez <fperez@colorado.edu>
5167
5278
5168 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5279 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5169 to EvalDict (it's a mapping, after all) and simplified its code
5280 to EvalDict (it's a mapping, after all) and simplified its code
5170 quite a bit, after a nice discussion on c.l.py where Gustavo
5281 quite a bit, after a nice discussion on c.l.py where Gustavo
5171 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5282 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5172
5283
5173 2003-04-30 Fernando Perez <fperez@colorado.edu>
5284 2003-04-30 Fernando Perez <fperez@colorado.edu>
5174
5285
5175 * IPython/genutils.py (timings_out): modified it to reduce its
5286 * IPython/genutils.py (timings_out): modified it to reduce its
5176 overhead in the common reps==1 case.
5287 overhead in the common reps==1 case.
5177
5288
5178 2003-04-29 Fernando Perez <fperez@colorado.edu>
5289 2003-04-29 Fernando Perez <fperez@colorado.edu>
5179
5290
5180 * IPython/genutils.py (timings_out): Modified to use the resource
5291 * IPython/genutils.py (timings_out): Modified to use the resource
5181 module, which avoids the wraparound problems of time.clock().
5292 module, which avoids the wraparound problems of time.clock().
5182
5293
5183 2003-04-17 *** Released version 0.2.15pre4
5294 2003-04-17 *** Released version 0.2.15pre4
5184
5295
5185 2003-04-17 Fernando Perez <fperez@colorado.edu>
5296 2003-04-17 Fernando Perez <fperez@colorado.edu>
5186
5297
5187 * setup.py (scriptfiles): Split windows-specific stuff over to a
5298 * setup.py (scriptfiles): Split windows-specific stuff over to a
5188 separate file, in an attempt to have a Windows GUI installer.
5299 separate file, in an attempt to have a Windows GUI installer.
5189 That didn't work, but part of the groundwork is done.
5300 That didn't work, but part of the groundwork is done.
5190
5301
5191 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5302 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5192 indent/unindent with 4 spaces. Particularly useful in combination
5303 indent/unindent with 4 spaces. Particularly useful in combination
5193 with the new auto-indent option.
5304 with the new auto-indent option.
5194
5305
5195 2003-04-16 Fernando Perez <fperez@colorado.edu>
5306 2003-04-16 Fernando Perez <fperez@colorado.edu>
5196
5307
5197 * IPython/Magic.py: various replacements of self.rc for
5308 * IPython/Magic.py: various replacements of self.rc for
5198 self.shell.rc. A lot more remains to be done to fully disentangle
5309 self.shell.rc. A lot more remains to be done to fully disentangle
5199 this class from the main Shell class.
5310 this class from the main Shell class.
5200
5311
5201 * IPython/GnuplotRuntime.py: added checks for mouse support so
5312 * IPython/GnuplotRuntime.py: added checks for mouse support so
5202 that we don't try to enable it if the current gnuplot doesn't
5313 that we don't try to enable it if the current gnuplot doesn't
5203 really support it. Also added checks so that we don't try to
5314 really support it. Also added checks so that we don't try to
5204 enable persist under Windows (where Gnuplot doesn't recognize the
5315 enable persist under Windows (where Gnuplot doesn't recognize the
5205 option).
5316 option).
5206
5317
5207 * IPython/iplib.py (InteractiveShell.interact): Added optional
5318 * IPython/iplib.py (InteractiveShell.interact): Added optional
5208 auto-indenting code, after a patch by King C. Shu
5319 auto-indenting code, after a patch by King C. Shu
5209 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5320 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5210 get along well with pasting indented code. If I ever figure out
5321 get along well with pasting indented code. If I ever figure out
5211 how to make that part go well, it will become on by default.
5322 how to make that part go well, it will become on by default.
5212
5323
5213 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5324 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5214 crash ipython if there was an unmatched '%' in the user's prompt
5325 crash ipython if there was an unmatched '%' in the user's prompt
5215 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5326 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5216
5327
5217 * IPython/iplib.py (InteractiveShell.interact): removed the
5328 * IPython/iplib.py (InteractiveShell.interact): removed the
5218 ability to ask the user whether he wants to crash or not at the
5329 ability to ask the user whether he wants to crash or not at the
5219 'last line' exception handler. Calling functions at that point
5330 'last line' exception handler. Calling functions at that point
5220 changes the stack, and the error reports would have incorrect
5331 changes the stack, and the error reports would have incorrect
5221 tracebacks.
5332 tracebacks.
5222
5333
5223 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5334 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5224 pass through a peger a pretty-printed form of any object. After a
5335 pass through a peger a pretty-printed form of any object. After a
5225 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5336 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5226
5337
5227 2003-04-14 Fernando Perez <fperez@colorado.edu>
5338 2003-04-14 Fernando Perez <fperez@colorado.edu>
5228
5339
5229 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5340 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5230 all files in ~ would be modified at first install (instead of
5341 all files in ~ would be modified at first install (instead of
5231 ~/.ipython). This could be potentially disastrous, as the
5342 ~/.ipython). This could be potentially disastrous, as the
5232 modification (make line-endings native) could damage binary files.
5343 modification (make line-endings native) could damage binary files.
5233
5344
5234 2003-04-10 Fernando Perez <fperez@colorado.edu>
5345 2003-04-10 Fernando Perez <fperez@colorado.edu>
5235
5346
5236 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5347 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5237 handle only lines which are invalid python. This now means that
5348 handle only lines which are invalid python. This now means that
5238 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5349 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5239 for the bug report.
5350 for the bug report.
5240
5351
5241 2003-04-01 Fernando Perez <fperez@colorado.edu>
5352 2003-04-01 Fernando Perez <fperez@colorado.edu>
5242
5353
5243 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5354 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5244 where failing to set sys.last_traceback would crash pdb.pm().
5355 where failing to set sys.last_traceback would crash pdb.pm().
5245 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5356 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5246 report.
5357 report.
5247
5358
5248 2003-03-25 Fernando Perez <fperez@colorado.edu>
5359 2003-03-25 Fernando Perez <fperez@colorado.edu>
5249
5360
5250 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5361 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5251 before printing it (it had a lot of spurious blank lines at the
5362 before printing it (it had a lot of spurious blank lines at the
5252 end).
5363 end).
5253
5364
5254 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5365 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5255 output would be sent 21 times! Obviously people don't use this
5366 output would be sent 21 times! Obviously people don't use this
5256 too often, or I would have heard about it.
5367 too often, or I would have heard about it.
5257
5368
5258 2003-03-24 Fernando Perez <fperez@colorado.edu>
5369 2003-03-24 Fernando Perez <fperez@colorado.edu>
5259
5370
5260 * setup.py (scriptfiles): renamed the data_files parameter from
5371 * setup.py (scriptfiles): renamed the data_files parameter from
5261 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5372 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5262 for the patch.
5373 for the patch.
5263
5374
5264 2003-03-20 Fernando Perez <fperez@colorado.edu>
5375 2003-03-20 Fernando Perez <fperez@colorado.edu>
5265
5376
5266 * IPython/genutils.py (error): added error() and fatal()
5377 * IPython/genutils.py (error): added error() and fatal()
5267 functions.
5378 functions.
5268
5379
5269 2003-03-18 *** Released version 0.2.15pre3
5380 2003-03-18 *** Released version 0.2.15pre3
5270
5381
5271 2003-03-18 Fernando Perez <fperez@colorado.edu>
5382 2003-03-18 Fernando Perez <fperez@colorado.edu>
5272
5383
5273 * setupext/install_data_ext.py
5384 * setupext/install_data_ext.py
5274 (install_data_ext.initialize_options): Class contributed by Jack
5385 (install_data_ext.initialize_options): Class contributed by Jack
5275 Moffit for fixing the old distutils hack. He is sending this to
5386 Moffit for fixing the old distutils hack. He is sending this to
5276 the distutils folks so in the future we may not need it as a
5387 the distutils folks so in the future we may not need it as a
5277 private fix.
5388 private fix.
5278
5389
5279 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5390 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5280 changes for Debian packaging. See his patch for full details.
5391 changes for Debian packaging. See his patch for full details.
5281 The old distutils hack of making the ipythonrc* files carry a
5392 The old distutils hack of making the ipythonrc* files carry a
5282 bogus .py extension is gone, at last. Examples were moved to a
5393 bogus .py extension is gone, at last. Examples were moved to a
5283 separate subdir under doc/, and the separate executable scripts
5394 separate subdir under doc/, and the separate executable scripts
5284 now live in their own directory. Overall a great cleanup. The
5395 now live in their own directory. Overall a great cleanup. The
5285 manual was updated to use the new files, and setup.py has been
5396 manual was updated to use the new files, and setup.py has been
5286 fixed for this setup.
5397 fixed for this setup.
5287
5398
5288 * IPython/PyColorize.py (Parser.usage): made non-executable and
5399 * IPython/PyColorize.py (Parser.usage): made non-executable and
5289 created a pycolor wrapper around it to be included as a script.
5400 created a pycolor wrapper around it to be included as a script.
5290
5401
5291 2003-03-12 *** Released version 0.2.15pre2
5402 2003-03-12 *** Released version 0.2.15pre2
5292
5403
5293 2003-03-12 Fernando Perez <fperez@colorado.edu>
5404 2003-03-12 Fernando Perez <fperez@colorado.edu>
5294
5405
5295 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5406 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5296 long-standing problem with garbage characters in some terminals.
5407 long-standing problem with garbage characters in some terminals.
5297 The issue was really that the \001 and \002 escapes must _only_ be
5408 The issue was really that the \001 and \002 escapes must _only_ be
5298 passed to input prompts (which call readline), but _never_ to
5409 passed to input prompts (which call readline), but _never_ to
5299 normal text to be printed on screen. I changed ColorANSI to have
5410 normal text to be printed on screen. I changed ColorANSI to have
5300 two classes: TermColors and InputTermColors, each with the
5411 two classes: TermColors and InputTermColors, each with the
5301 appropriate escapes for input prompts or normal text. The code in
5412 appropriate escapes for input prompts or normal text. The code in
5302 Prompts.py got slightly more complicated, but this very old and
5413 Prompts.py got slightly more complicated, but this very old and
5303 annoying bug is finally fixed.
5414 annoying bug is finally fixed.
5304
5415
5305 All the credit for nailing down the real origin of this problem
5416 All the credit for nailing down the real origin of this problem
5306 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5417 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5307 *Many* thanks to him for spending quite a bit of effort on this.
5418 *Many* thanks to him for spending quite a bit of effort on this.
5308
5419
5309 2003-03-05 *** Released version 0.2.15pre1
5420 2003-03-05 *** Released version 0.2.15pre1
5310
5421
5311 2003-03-03 Fernando Perez <fperez@colorado.edu>
5422 2003-03-03 Fernando Perez <fperez@colorado.edu>
5312
5423
5313 * IPython/FakeModule.py: Moved the former _FakeModule to a
5424 * IPython/FakeModule.py: Moved the former _FakeModule to a
5314 separate file, because it's also needed by Magic (to fix a similar
5425 separate file, because it's also needed by Magic (to fix a similar
5315 pickle-related issue in @run).
5426 pickle-related issue in @run).
5316
5427
5317 2003-03-02 Fernando Perez <fperez@colorado.edu>
5428 2003-03-02 Fernando Perez <fperez@colorado.edu>
5318
5429
5319 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5430 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5320 the autocall option at runtime.
5431 the autocall option at runtime.
5321 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5432 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5322 across Magic.py to start separating Magic from InteractiveShell.
5433 across Magic.py to start separating Magic from InteractiveShell.
5323 (Magic._ofind): Fixed to return proper namespace for dotted
5434 (Magic._ofind): Fixed to return proper namespace for dotted
5324 names. Before, a dotted name would always return 'not currently
5435 names. Before, a dotted name would always return 'not currently
5325 defined', because it would find the 'parent'. s.x would be found,
5436 defined', because it would find the 'parent'. s.x would be found,
5326 but since 'x' isn't defined by itself, it would get confused.
5437 but since 'x' isn't defined by itself, it would get confused.
5327 (Magic.magic_run): Fixed pickling problems reported by Ralf
5438 (Magic.magic_run): Fixed pickling problems reported by Ralf
5328 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5439 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5329 that I'd used when Mike Heeter reported similar issues at the
5440 that I'd used when Mike Heeter reported similar issues at the
5330 top-level, but now for @run. It boils down to injecting the
5441 top-level, but now for @run. It boils down to injecting the
5331 namespace where code is being executed with something that looks
5442 namespace where code is being executed with something that looks
5332 enough like a module to fool pickle.dump(). Since a pickle stores
5443 enough like a module to fool pickle.dump(). Since a pickle stores
5333 a named reference to the importing module, we need this for
5444 a named reference to the importing module, we need this for
5334 pickles to save something sensible.
5445 pickles to save something sensible.
5335
5446
5336 * IPython/ipmaker.py (make_IPython): added an autocall option.
5447 * IPython/ipmaker.py (make_IPython): added an autocall option.
5337
5448
5338 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5449 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5339 the auto-eval code. Now autocalling is an option, and the code is
5450 the auto-eval code. Now autocalling is an option, and the code is
5340 also vastly safer. There is no more eval() involved at all.
5451 also vastly safer. There is no more eval() involved at all.
5341
5452
5342 2003-03-01 Fernando Perez <fperez@colorado.edu>
5453 2003-03-01 Fernando Perez <fperez@colorado.edu>
5343
5454
5344 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5455 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5345 dict with named keys instead of a tuple.
5456 dict with named keys instead of a tuple.
5346
5457
5347 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5458 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5348
5459
5349 * setup.py (make_shortcut): Fixed message about directories
5460 * setup.py (make_shortcut): Fixed message about directories
5350 created during Windows installation (the directories were ok, just
5461 created during Windows installation (the directories were ok, just
5351 the printed message was misleading). Thanks to Chris Liechti
5462 the printed message was misleading). Thanks to Chris Liechti
5352 <cliechti-AT-gmx.net> for the heads up.
5463 <cliechti-AT-gmx.net> for the heads up.
5353
5464
5354 2003-02-21 Fernando Perez <fperez@colorado.edu>
5465 2003-02-21 Fernando Perez <fperez@colorado.edu>
5355
5466
5356 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5467 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5357 of ValueError exception when checking for auto-execution. This
5468 of ValueError exception when checking for auto-execution. This
5358 one is raised by things like Numeric arrays arr.flat when the
5469 one is raised by things like Numeric arrays arr.flat when the
5359 array is non-contiguous.
5470 array is non-contiguous.
5360
5471
5361 2003-01-31 Fernando Perez <fperez@colorado.edu>
5472 2003-01-31 Fernando Perez <fperez@colorado.edu>
5362
5473
5363 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5474 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5364 not return any value at all (even though the command would get
5475 not return any value at all (even though the command would get
5365 executed).
5476 executed).
5366 (xsys): Flush stdout right after printing the command to ensure
5477 (xsys): Flush stdout right after printing the command to ensure
5367 proper ordering of commands and command output in the total
5478 proper ordering of commands and command output in the total
5368 output.
5479 output.
5369 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5480 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5370 system/getoutput as defaults. The old ones are kept for
5481 system/getoutput as defaults. The old ones are kept for
5371 compatibility reasons, so no code which uses this library needs
5482 compatibility reasons, so no code which uses this library needs
5372 changing.
5483 changing.
5373
5484
5374 2003-01-27 *** Released version 0.2.14
5485 2003-01-27 *** Released version 0.2.14
5375
5486
5376 2003-01-25 Fernando Perez <fperez@colorado.edu>
5487 2003-01-25 Fernando Perez <fperez@colorado.edu>
5377
5488
5378 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5489 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5379 functions defined in previous edit sessions could not be re-edited
5490 functions defined in previous edit sessions could not be re-edited
5380 (because the temp files were immediately removed). Now temp files
5491 (because the temp files were immediately removed). Now temp files
5381 are removed only at IPython's exit.
5492 are removed only at IPython's exit.
5382 (Magic.magic_run): Improved @run to perform shell-like expansions
5493 (Magic.magic_run): Improved @run to perform shell-like expansions
5383 on its arguments (~users and $VARS). With this, @run becomes more
5494 on its arguments (~users and $VARS). With this, @run becomes more
5384 like a normal command-line.
5495 like a normal command-line.
5385
5496
5386 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5497 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5387 bugs related to embedding and cleaned up that code. A fairly
5498 bugs related to embedding and cleaned up that code. A fairly
5388 important one was the impossibility to access the global namespace
5499 important one was the impossibility to access the global namespace
5389 through the embedded IPython (only local variables were visible).
5500 through the embedded IPython (only local variables were visible).
5390
5501
5391 2003-01-14 Fernando Perez <fperez@colorado.edu>
5502 2003-01-14 Fernando Perez <fperez@colorado.edu>
5392
5503
5393 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5504 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5394 auto-calling to be a bit more conservative. Now it doesn't get
5505 auto-calling to be a bit more conservative. Now it doesn't get
5395 triggered if any of '!=()<>' are in the rest of the input line, to
5506 triggered if any of '!=()<>' are in the rest of the input line, to
5396 allow comparing callables. Thanks to Alex for the heads up.
5507 allow comparing callables. Thanks to Alex for the heads up.
5397
5508
5398 2003-01-07 Fernando Perez <fperez@colorado.edu>
5509 2003-01-07 Fernando Perez <fperez@colorado.edu>
5399
5510
5400 * IPython/genutils.py (page): fixed estimation of the number of
5511 * IPython/genutils.py (page): fixed estimation of the number of
5401 lines in a string to be paged to simply count newlines. This
5512 lines in a string to be paged to simply count newlines. This
5402 prevents over-guessing due to embedded escape sequences. A better
5513 prevents over-guessing due to embedded escape sequences. A better
5403 long-term solution would involve stripping out the control chars
5514 long-term solution would involve stripping out the control chars
5404 for the count, but it's potentially so expensive I just don't
5515 for the count, but it's potentially so expensive I just don't
5405 think it's worth doing.
5516 think it's worth doing.
5406
5517
5407 2002-12-19 *** Released version 0.2.14pre50
5518 2002-12-19 *** Released version 0.2.14pre50
5408
5519
5409 2002-12-19 Fernando Perez <fperez@colorado.edu>
5520 2002-12-19 Fernando Perez <fperez@colorado.edu>
5410
5521
5411 * tools/release (version): Changed release scripts to inform
5522 * tools/release (version): Changed release scripts to inform
5412 Andrea and build a NEWS file with a list of recent changes.
5523 Andrea and build a NEWS file with a list of recent changes.
5413
5524
5414 * IPython/ColorANSI.py (__all__): changed terminal detection
5525 * IPython/ColorANSI.py (__all__): changed terminal detection
5415 code. Seems to work better for xterms without breaking
5526 code. Seems to work better for xterms without breaking
5416 konsole. Will need more testing to determine if WinXP and Mac OSX
5527 konsole. Will need more testing to determine if WinXP and Mac OSX
5417 also work ok.
5528 also work ok.
5418
5529
5419 2002-12-18 *** Released version 0.2.14pre49
5530 2002-12-18 *** Released version 0.2.14pre49
5420
5531
5421 2002-12-18 Fernando Perez <fperez@colorado.edu>
5532 2002-12-18 Fernando Perez <fperez@colorado.edu>
5422
5533
5423 * Docs: added new info about Mac OSX, from Andrea.
5534 * Docs: added new info about Mac OSX, from Andrea.
5424
5535
5425 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5536 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5426 allow direct plotting of python strings whose format is the same
5537 allow direct plotting of python strings whose format is the same
5427 of gnuplot data files.
5538 of gnuplot data files.
5428
5539
5429 2002-12-16 Fernando Perez <fperez@colorado.edu>
5540 2002-12-16 Fernando Perez <fperez@colorado.edu>
5430
5541
5431 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5542 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5432 value of exit question to be acknowledged.
5543 value of exit question to be acknowledged.
5433
5544
5434 2002-12-03 Fernando Perez <fperez@colorado.edu>
5545 2002-12-03 Fernando Perez <fperez@colorado.edu>
5435
5546
5436 * IPython/ipmaker.py: removed generators, which had been added
5547 * IPython/ipmaker.py: removed generators, which had been added
5437 by mistake in an earlier debugging run. This was causing trouble
5548 by mistake in an earlier debugging run. This was causing trouble
5438 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5549 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5439 for pointing this out.
5550 for pointing this out.
5440
5551
5441 2002-11-17 Fernando Perez <fperez@colorado.edu>
5552 2002-11-17 Fernando Perez <fperez@colorado.edu>
5442
5553
5443 * Manual: updated the Gnuplot section.
5554 * Manual: updated the Gnuplot section.
5444
5555
5445 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5556 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5446 a much better split of what goes in Runtime and what goes in
5557 a much better split of what goes in Runtime and what goes in
5447 Interactive.
5558 Interactive.
5448
5559
5449 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5560 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5450 being imported from iplib.
5561 being imported from iplib.
5451
5562
5452 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5563 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5453 for command-passing. Now the global Gnuplot instance is called
5564 for command-passing. Now the global Gnuplot instance is called
5454 'gp' instead of 'g', which was really a far too fragile and
5565 'gp' instead of 'g', which was really a far too fragile and
5455 common name.
5566 common name.
5456
5567
5457 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5568 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5458 bounding boxes generated by Gnuplot for square plots.
5569 bounding boxes generated by Gnuplot for square plots.
5459
5570
5460 * IPython/genutils.py (popkey): new function added. I should
5571 * IPython/genutils.py (popkey): new function added. I should
5461 suggest this on c.l.py as a dict method, it seems useful.
5572 suggest this on c.l.py as a dict method, it seems useful.
5462
5573
5463 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5574 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5464 to transparently handle PostScript generation. MUCH better than
5575 to transparently handle PostScript generation. MUCH better than
5465 the previous plot_eps/replot_eps (which I removed now). The code
5576 the previous plot_eps/replot_eps (which I removed now). The code
5466 is also fairly clean and well documented now (including
5577 is also fairly clean and well documented now (including
5467 docstrings).
5578 docstrings).
5468
5579
5469 2002-11-13 Fernando Perez <fperez@colorado.edu>
5580 2002-11-13 Fernando Perez <fperez@colorado.edu>
5470
5581
5471 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5582 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5472 (inconsistent with options).
5583 (inconsistent with options).
5473
5584
5474 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5585 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5475 manually disabled, I don't know why. Fixed it.
5586 manually disabled, I don't know why. Fixed it.
5476 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5587 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5477 eps output.
5588 eps output.
5478
5589
5479 2002-11-12 Fernando Perez <fperez@colorado.edu>
5590 2002-11-12 Fernando Perez <fperez@colorado.edu>
5480
5591
5481 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5592 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5482 don't propagate up to caller. Fixes crash reported by François
5593 don't propagate up to caller. Fixes crash reported by François
5483 Pinard.
5594 Pinard.
5484
5595
5485 2002-11-09 Fernando Perez <fperez@colorado.edu>
5596 2002-11-09 Fernando Perez <fperez@colorado.edu>
5486
5597
5487 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5598 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5488 history file for new users.
5599 history file for new users.
5489 (make_IPython): fixed bug where initial install would leave the
5600 (make_IPython): fixed bug where initial install would leave the
5490 user running in the .ipython dir.
5601 user running in the .ipython dir.
5491 (make_IPython): fixed bug where config dir .ipython would be
5602 (make_IPython): fixed bug where config dir .ipython would be
5492 created regardless of the given -ipythondir option. Thanks to Cory
5603 created regardless of the given -ipythondir option. Thanks to Cory
5493 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5604 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5494
5605
5495 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5606 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5496 type confirmations. Will need to use it in all of IPython's code
5607 type confirmations. Will need to use it in all of IPython's code
5497 consistently.
5608 consistently.
5498
5609
5499 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5610 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5500 context to print 31 lines instead of the default 5. This will make
5611 context to print 31 lines instead of the default 5. This will make
5501 the crash reports extremely detailed in case the problem is in
5612 the crash reports extremely detailed in case the problem is in
5502 libraries I don't have access to.
5613 libraries I don't have access to.
5503
5614
5504 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5615 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5505 line of defense' code to still crash, but giving users fair
5616 line of defense' code to still crash, but giving users fair
5506 warning. I don't want internal errors to go unreported: if there's
5617 warning. I don't want internal errors to go unreported: if there's
5507 an internal problem, IPython should crash and generate a full
5618 an internal problem, IPython should crash and generate a full
5508 report.
5619 report.
5509
5620
5510 2002-11-08 Fernando Perez <fperez@colorado.edu>
5621 2002-11-08 Fernando Perez <fperez@colorado.edu>
5511
5622
5512 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5623 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5513 otherwise uncaught exceptions which can appear if people set
5624 otherwise uncaught exceptions which can appear if people set
5514 sys.stdout to something badly broken. Thanks to a crash report
5625 sys.stdout to something badly broken. Thanks to a crash report
5515 from henni-AT-mail.brainbot.com.
5626 from henni-AT-mail.brainbot.com.
5516
5627
5517 2002-11-04 Fernando Perez <fperez@colorado.edu>
5628 2002-11-04 Fernando Perez <fperez@colorado.edu>
5518
5629
5519 * IPython/iplib.py (InteractiveShell.interact): added
5630 * IPython/iplib.py (InteractiveShell.interact): added
5520 __IPYTHON__active to the builtins. It's a flag which goes on when
5631 __IPYTHON__active to the builtins. It's a flag which goes on when
5521 the interaction starts and goes off again when it stops. This
5632 the interaction starts and goes off again when it stops. This
5522 allows embedding code to detect being inside IPython. Before this
5633 allows embedding code to detect being inside IPython. Before this
5523 was done via __IPYTHON__, but that only shows that an IPython
5634 was done via __IPYTHON__, but that only shows that an IPython
5524 instance has been created.
5635 instance has been created.
5525
5636
5526 * IPython/Magic.py (Magic.magic_env): I realized that in a
5637 * IPython/Magic.py (Magic.magic_env): I realized that in a
5527 UserDict, instance.data holds the data as a normal dict. So I
5638 UserDict, instance.data holds the data as a normal dict. So I
5528 modified @env to return os.environ.data instead of rebuilding a
5639 modified @env to return os.environ.data instead of rebuilding a
5529 dict by hand.
5640 dict by hand.
5530
5641
5531 2002-11-02 Fernando Perez <fperez@colorado.edu>
5642 2002-11-02 Fernando Perez <fperez@colorado.edu>
5532
5643
5533 * IPython/genutils.py (warn): changed so that level 1 prints no
5644 * IPython/genutils.py (warn): changed so that level 1 prints no
5534 header. Level 2 is now the default (with 'WARNING' header, as
5645 header. Level 2 is now the default (with 'WARNING' header, as
5535 before). I think I tracked all places where changes were needed in
5646 before). I think I tracked all places where changes were needed in
5536 IPython, but outside code using the old level numbering may have
5647 IPython, but outside code using the old level numbering may have
5537 broken.
5648 broken.
5538
5649
5539 * IPython/iplib.py (InteractiveShell.runcode): added this to
5650 * IPython/iplib.py (InteractiveShell.runcode): added this to
5540 handle the tracebacks in SystemExit traps correctly. The previous
5651 handle the tracebacks in SystemExit traps correctly. The previous
5541 code (through interact) was printing more of the stack than
5652 code (through interact) was printing more of the stack than
5542 necessary, showing IPython internal code to the user.
5653 necessary, showing IPython internal code to the user.
5543
5654
5544 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5655 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5545 default. Now that the default at the confirmation prompt is yes,
5656 default. Now that the default at the confirmation prompt is yes,
5546 it's not so intrusive. François' argument that ipython sessions
5657 it's not so intrusive. François' argument that ipython sessions
5547 tend to be complex enough not to lose them from an accidental C-d,
5658 tend to be complex enough not to lose them from an accidental C-d,
5548 is a valid one.
5659 is a valid one.
5549
5660
5550 * IPython/iplib.py (InteractiveShell.interact): added a
5661 * IPython/iplib.py (InteractiveShell.interact): added a
5551 showtraceback() call to the SystemExit trap, and modified the exit
5662 showtraceback() call to the SystemExit trap, and modified the exit
5552 confirmation to have yes as the default.
5663 confirmation to have yes as the default.
5553
5664
5554 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5665 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5555 this file. It's been gone from the code for a long time, this was
5666 this file. It's been gone from the code for a long time, this was
5556 simply leftover junk.
5667 simply leftover junk.
5557
5668
5558 2002-11-01 Fernando Perez <fperez@colorado.edu>
5669 2002-11-01 Fernando Perez <fperez@colorado.edu>
5559
5670
5560 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5671 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5561 added. If set, IPython now traps EOF and asks for
5672 added. If set, IPython now traps EOF and asks for
5562 confirmation. After a request by François Pinard.
5673 confirmation. After a request by François Pinard.
5563
5674
5564 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5675 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5565 of @abort, and with a new (better) mechanism for handling the
5676 of @abort, and with a new (better) mechanism for handling the
5566 exceptions.
5677 exceptions.
5567
5678
5568 2002-10-27 Fernando Perez <fperez@colorado.edu>
5679 2002-10-27 Fernando Perez <fperez@colorado.edu>
5569
5680
5570 * IPython/usage.py (__doc__): updated the --help information and
5681 * IPython/usage.py (__doc__): updated the --help information and
5571 the ipythonrc file to indicate that -log generates
5682 the ipythonrc file to indicate that -log generates
5572 ./ipython.log. Also fixed the corresponding info in @logstart.
5683 ./ipython.log. Also fixed the corresponding info in @logstart.
5573 This and several other fixes in the manuals thanks to reports by
5684 This and several other fixes in the manuals thanks to reports by
5574 François Pinard <pinard-AT-iro.umontreal.ca>.
5685 François Pinard <pinard-AT-iro.umontreal.ca>.
5575
5686
5576 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5687 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5577 refer to @logstart (instead of @log, which doesn't exist).
5688 refer to @logstart (instead of @log, which doesn't exist).
5578
5689
5579 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5690 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5580 AttributeError crash. Thanks to Christopher Armstrong
5691 AttributeError crash. Thanks to Christopher Armstrong
5581 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5692 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5582 introduced recently (in 0.2.14pre37) with the fix to the eval
5693 introduced recently (in 0.2.14pre37) with the fix to the eval
5583 problem mentioned below.
5694 problem mentioned below.
5584
5695
5585 2002-10-17 Fernando Perez <fperez@colorado.edu>
5696 2002-10-17 Fernando Perez <fperez@colorado.edu>
5586
5697
5587 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5698 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5588 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5699 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5589
5700
5590 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5701 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5591 this function to fix a problem reported by Alex Schmolck. He saw
5702 this function to fix a problem reported by Alex Schmolck. He saw
5592 it with list comprehensions and generators, which were getting
5703 it with list comprehensions and generators, which were getting
5593 called twice. The real problem was an 'eval' call in testing for
5704 called twice. The real problem was an 'eval' call in testing for
5594 automagic which was evaluating the input line silently.
5705 automagic which was evaluating the input line silently.
5595
5706
5596 This is a potentially very nasty bug, if the input has side
5707 This is a potentially very nasty bug, if the input has side
5597 effects which must not be repeated. The code is much cleaner now,
5708 effects which must not be repeated. The code is much cleaner now,
5598 without any blanket 'except' left and with a regexp test for
5709 without any blanket 'except' left and with a regexp test for
5599 actual function names.
5710 actual function names.
5600
5711
5601 But an eval remains, which I'm not fully comfortable with. I just
5712 But an eval remains, which I'm not fully comfortable with. I just
5602 don't know how to find out if an expression could be a callable in
5713 don't know how to find out if an expression could be a callable in
5603 the user's namespace without doing an eval on the string. However
5714 the user's namespace without doing an eval on the string. However
5604 that string is now much more strictly checked so that no code
5715 that string is now much more strictly checked so that no code
5605 slips by, so the eval should only happen for things that can
5716 slips by, so the eval should only happen for things that can
5606 really be only function/method names.
5717 really be only function/method names.
5607
5718
5608 2002-10-15 Fernando Perez <fperez@colorado.edu>
5719 2002-10-15 Fernando Perez <fperez@colorado.edu>
5609
5720
5610 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5721 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5611 OSX information to main manual, removed README_Mac_OSX file from
5722 OSX information to main manual, removed README_Mac_OSX file from
5612 distribution. Also updated credits for recent additions.
5723 distribution. Also updated credits for recent additions.
5613
5724
5614 2002-10-10 Fernando Perez <fperez@colorado.edu>
5725 2002-10-10 Fernando Perez <fperez@colorado.edu>
5615
5726
5616 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5727 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5617 terminal-related issues. Many thanks to Andrea Riciputi
5728 terminal-related issues. Many thanks to Andrea Riciputi
5618 <andrea.riciputi-AT-libero.it> for writing it.
5729 <andrea.riciputi-AT-libero.it> for writing it.
5619
5730
5620 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5731 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5621 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5732 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5622
5733
5623 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5734 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5624 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5735 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5625 <syver-en-AT-online.no> who both submitted patches for this problem.
5736 <syver-en-AT-online.no> who both submitted patches for this problem.
5626
5737
5627 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5738 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5628 global embedding to make sure that things don't overwrite user
5739 global embedding to make sure that things don't overwrite user
5629 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5740 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5630
5741
5631 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5742 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5632 compatibility. Thanks to Hayden Callow
5743 compatibility. Thanks to Hayden Callow
5633 <h.callow-AT-elec.canterbury.ac.nz>
5744 <h.callow-AT-elec.canterbury.ac.nz>
5634
5745
5635 2002-10-04 Fernando Perez <fperez@colorado.edu>
5746 2002-10-04 Fernando Perez <fperez@colorado.edu>
5636
5747
5637 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5748 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5638 Gnuplot.File objects.
5749 Gnuplot.File objects.
5639
5750
5640 2002-07-23 Fernando Perez <fperez@colorado.edu>
5751 2002-07-23 Fernando Perez <fperez@colorado.edu>
5641
5752
5642 * IPython/genutils.py (timing): Added timings() and timing() for
5753 * IPython/genutils.py (timing): Added timings() and timing() for
5643 quick access to the most commonly needed data, the execution
5754 quick access to the most commonly needed data, the execution
5644 times. Old timing() renamed to timings_out().
5755 times. Old timing() renamed to timings_out().
5645
5756
5646 2002-07-18 Fernando Perez <fperez@colorado.edu>
5757 2002-07-18 Fernando Perez <fperez@colorado.edu>
5647
5758
5648 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5759 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5649 bug with nested instances disrupting the parent's tab completion.
5760 bug with nested instances disrupting the parent's tab completion.
5650
5761
5651 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5762 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5652 all_completions code to begin the emacs integration.
5763 all_completions code to begin the emacs integration.
5653
5764
5654 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5765 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5655 argument to allow titling individual arrays when plotting.
5766 argument to allow titling individual arrays when plotting.
5656
5767
5657 2002-07-15 Fernando Perez <fperez@colorado.edu>
5768 2002-07-15 Fernando Perez <fperez@colorado.edu>
5658
5769
5659 * setup.py (make_shortcut): changed to retrieve the value of
5770 * setup.py (make_shortcut): changed to retrieve the value of
5660 'Program Files' directory from the registry (this value changes in
5771 'Program Files' directory from the registry (this value changes in
5661 non-english versions of Windows). Thanks to Thomas Fanslau
5772 non-english versions of Windows). Thanks to Thomas Fanslau
5662 <tfanslau-AT-gmx.de> for the report.
5773 <tfanslau-AT-gmx.de> for the report.
5663
5774
5664 2002-07-10 Fernando Perez <fperez@colorado.edu>
5775 2002-07-10 Fernando Perez <fperez@colorado.edu>
5665
5776
5666 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5777 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5667 a bug in pdb, which crashes if a line with only whitespace is
5778 a bug in pdb, which crashes if a line with only whitespace is
5668 entered. Bug report submitted to sourceforge.
5779 entered. Bug report submitted to sourceforge.
5669
5780
5670 2002-07-09 Fernando Perez <fperez@colorado.edu>
5781 2002-07-09 Fernando Perez <fperez@colorado.edu>
5671
5782
5672 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5783 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5673 reporting exceptions (it's a bug in inspect.py, I just set a
5784 reporting exceptions (it's a bug in inspect.py, I just set a
5674 workaround).
5785 workaround).
5675
5786
5676 2002-07-08 Fernando Perez <fperez@colorado.edu>
5787 2002-07-08 Fernando Perez <fperez@colorado.edu>
5677
5788
5678 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5789 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5679 __IPYTHON__ in __builtins__ to show up in user_ns.
5790 __IPYTHON__ in __builtins__ to show up in user_ns.
5680
5791
5681 2002-07-03 Fernando Perez <fperez@colorado.edu>
5792 2002-07-03 Fernando Perez <fperez@colorado.edu>
5682
5793
5683 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5794 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5684 name from @gp_set_instance to @gp_set_default.
5795 name from @gp_set_instance to @gp_set_default.
5685
5796
5686 * IPython/ipmaker.py (make_IPython): default editor value set to
5797 * IPython/ipmaker.py (make_IPython): default editor value set to
5687 '0' (a string), to match the rc file. Otherwise will crash when
5798 '0' (a string), to match the rc file. Otherwise will crash when
5688 .strip() is called on it.
5799 .strip() is called on it.
5689
5800
5690
5801
5691 2002-06-28 Fernando Perez <fperez@colorado.edu>
5802 2002-06-28 Fernando Perez <fperez@colorado.edu>
5692
5803
5693 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5804 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5694 of files in current directory when a file is executed via
5805 of files in current directory when a file is executed via
5695 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5806 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5696
5807
5697 * setup.py (manfiles): fix for rpm builds, submitted by RA
5808 * setup.py (manfiles): fix for rpm builds, submitted by RA
5698 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5809 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5699
5810
5700 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5811 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5701 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5812 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5702 string!). A. Schmolck caught this one.
5813 string!). A. Schmolck caught this one.
5703
5814
5704 2002-06-27 Fernando Perez <fperez@colorado.edu>
5815 2002-06-27 Fernando Perez <fperez@colorado.edu>
5705
5816
5706 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5817 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5707 defined files at the cmd line. __name__ wasn't being set to
5818 defined files at the cmd line. __name__ wasn't being set to
5708 __main__.
5819 __main__.
5709
5820
5710 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5821 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5711 regular lists and tuples besides Numeric arrays.
5822 regular lists and tuples besides Numeric arrays.
5712
5823
5713 * IPython/Prompts.py (CachedOutput.__call__): Added output
5824 * IPython/Prompts.py (CachedOutput.__call__): Added output
5714 supression for input ending with ';'. Similar to Mathematica and
5825 supression for input ending with ';'. Similar to Mathematica and
5715 Matlab. The _* vars and Out[] list are still updated, just like
5826 Matlab. The _* vars and Out[] list are still updated, just like
5716 Mathematica behaves.
5827 Mathematica behaves.
5717
5828
5718 2002-06-25 Fernando Perez <fperez@colorado.edu>
5829 2002-06-25 Fernando Perez <fperez@colorado.edu>
5719
5830
5720 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5831 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5721 .ini extensions for profiels under Windows.
5832 .ini extensions for profiels under Windows.
5722
5833
5723 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5834 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5724 string form. Fix contributed by Alexander Schmolck
5835 string form. Fix contributed by Alexander Schmolck
5725 <a.schmolck-AT-gmx.net>
5836 <a.schmolck-AT-gmx.net>
5726
5837
5727 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5838 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5728 pre-configured Gnuplot instance.
5839 pre-configured Gnuplot instance.
5729
5840
5730 2002-06-21 Fernando Perez <fperez@colorado.edu>
5841 2002-06-21 Fernando Perez <fperez@colorado.edu>
5731
5842
5732 * IPython/numutils.py (exp_safe): new function, works around the
5843 * IPython/numutils.py (exp_safe): new function, works around the
5733 underflow problems in Numeric.
5844 underflow problems in Numeric.
5734 (log2): New fn. Safe log in base 2: returns exact integer answer
5845 (log2): New fn. Safe log in base 2: returns exact integer answer
5735 for exact integer powers of 2.
5846 for exact integer powers of 2.
5736
5847
5737 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5848 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5738 properly.
5849 properly.
5739
5850
5740 2002-06-20 Fernando Perez <fperez@colorado.edu>
5851 2002-06-20 Fernando Perez <fperez@colorado.edu>
5741
5852
5742 * IPython/genutils.py (timing): new function like
5853 * IPython/genutils.py (timing): new function like
5743 Mathematica's. Similar to time_test, but returns more info.
5854 Mathematica's. Similar to time_test, but returns more info.
5744
5855
5745 2002-06-18 Fernando Perez <fperez@colorado.edu>
5856 2002-06-18 Fernando Perez <fperez@colorado.edu>
5746
5857
5747 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5858 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5748 according to Mike Heeter's suggestions.
5859 according to Mike Heeter's suggestions.
5749
5860
5750 2002-06-16 Fernando Perez <fperez@colorado.edu>
5861 2002-06-16 Fernando Perez <fperez@colorado.edu>
5751
5862
5752 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5863 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5753 system. GnuplotMagic is gone as a user-directory option. New files
5864 system. GnuplotMagic is gone as a user-directory option. New files
5754 make it easier to use all the gnuplot stuff both from external
5865 make it easier to use all the gnuplot stuff both from external
5755 programs as well as from IPython. Had to rewrite part of
5866 programs as well as from IPython. Had to rewrite part of
5756 hardcopy() b/c of a strange bug: often the ps files simply don't
5867 hardcopy() b/c of a strange bug: often the ps files simply don't
5757 get created, and require a repeat of the command (often several
5868 get created, and require a repeat of the command (often several
5758 times).
5869 times).
5759
5870
5760 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5871 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5761 resolve output channel at call time, so that if sys.stderr has
5872 resolve output channel at call time, so that if sys.stderr has
5762 been redirected by user this gets honored.
5873 been redirected by user this gets honored.
5763
5874
5764 2002-06-13 Fernando Perez <fperez@colorado.edu>
5875 2002-06-13 Fernando Perez <fperez@colorado.edu>
5765
5876
5766 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5877 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5767 IPShell. Kept a copy with the old names to avoid breaking people's
5878 IPShell. Kept a copy with the old names to avoid breaking people's
5768 embedded code.
5879 embedded code.
5769
5880
5770 * IPython/ipython: simplified it to the bare minimum after
5881 * IPython/ipython: simplified it to the bare minimum after
5771 Holger's suggestions. Added info about how to use it in
5882 Holger's suggestions. Added info about how to use it in
5772 PYTHONSTARTUP.
5883 PYTHONSTARTUP.
5773
5884
5774 * IPython/Shell.py (IPythonShell): changed the options passing
5885 * IPython/Shell.py (IPythonShell): changed the options passing
5775 from a string with funky %s replacements to a straight list. Maybe
5886 from a string with funky %s replacements to a straight list. Maybe
5776 a bit more typing, but it follows sys.argv conventions, so there's
5887 a bit more typing, but it follows sys.argv conventions, so there's
5777 less special-casing to remember.
5888 less special-casing to remember.
5778
5889
5779 2002-06-12 Fernando Perez <fperez@colorado.edu>
5890 2002-06-12 Fernando Perez <fperez@colorado.edu>
5780
5891
5781 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5892 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5782 command. Thanks to a suggestion by Mike Heeter.
5893 command. Thanks to a suggestion by Mike Heeter.
5783 (Magic.magic_pfile): added behavior to look at filenames if given
5894 (Magic.magic_pfile): added behavior to look at filenames if given
5784 arg is not a defined object.
5895 arg is not a defined object.
5785 (Magic.magic_save): New @save function to save code snippets. Also
5896 (Magic.magic_save): New @save function to save code snippets. Also
5786 a Mike Heeter idea.
5897 a Mike Heeter idea.
5787
5898
5788 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5899 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5789 plot() and replot(). Much more convenient now, especially for
5900 plot() and replot(). Much more convenient now, especially for
5790 interactive use.
5901 interactive use.
5791
5902
5792 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5903 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5793 filenames.
5904 filenames.
5794
5905
5795 2002-06-02 Fernando Perez <fperez@colorado.edu>
5906 2002-06-02 Fernando Perez <fperez@colorado.edu>
5796
5907
5797 * IPython/Struct.py (Struct.__init__): modified to admit
5908 * IPython/Struct.py (Struct.__init__): modified to admit
5798 initialization via another struct.
5909 initialization via another struct.
5799
5910
5800 * IPython/genutils.py (SystemExec.__init__): New stateful
5911 * IPython/genutils.py (SystemExec.__init__): New stateful
5801 interface to xsys and bq. Useful for writing system scripts.
5912 interface to xsys and bq. Useful for writing system scripts.
5802
5913
5803 2002-05-30 Fernando Perez <fperez@colorado.edu>
5914 2002-05-30 Fernando Perez <fperez@colorado.edu>
5804
5915
5805 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5916 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5806 documents. This will make the user download smaller (it's getting
5917 documents. This will make the user download smaller (it's getting
5807 too big).
5918 too big).
5808
5919
5809 2002-05-29 Fernando Perez <fperez@colorado.edu>
5920 2002-05-29 Fernando Perez <fperez@colorado.edu>
5810
5921
5811 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5922 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5812 fix problems with shelve and pickle. Seems to work, but I don't
5923 fix problems with shelve and pickle. Seems to work, but I don't
5813 know if corner cases break it. Thanks to Mike Heeter
5924 know if corner cases break it. Thanks to Mike Heeter
5814 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5925 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5815
5926
5816 2002-05-24 Fernando Perez <fperez@colorado.edu>
5927 2002-05-24 Fernando Perez <fperez@colorado.edu>
5817
5928
5818 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5929 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5819 macros having broken.
5930 macros having broken.
5820
5931
5821 2002-05-21 Fernando Perez <fperez@colorado.edu>
5932 2002-05-21 Fernando Perez <fperez@colorado.edu>
5822
5933
5823 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5934 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5824 introduced logging bug: all history before logging started was
5935 introduced logging bug: all history before logging started was
5825 being written one character per line! This came from the redesign
5936 being written one character per line! This came from the redesign
5826 of the input history as a special list which slices to strings,
5937 of the input history as a special list which slices to strings,
5827 not to lists.
5938 not to lists.
5828
5939
5829 2002-05-20 Fernando Perez <fperez@colorado.edu>
5940 2002-05-20 Fernando Perez <fperez@colorado.edu>
5830
5941
5831 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5942 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5832 be an attribute of all classes in this module. The design of these
5943 be an attribute of all classes in this module. The design of these
5833 classes needs some serious overhauling.
5944 classes needs some serious overhauling.
5834
5945
5835 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5946 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5836 which was ignoring '_' in option names.
5947 which was ignoring '_' in option names.
5837
5948
5838 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5949 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5839 'Verbose_novars' to 'Context' and made it the new default. It's a
5950 'Verbose_novars' to 'Context' and made it the new default. It's a
5840 bit more readable and also safer than verbose.
5951 bit more readable and also safer than verbose.
5841
5952
5842 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5953 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5843 triple-quoted strings.
5954 triple-quoted strings.
5844
5955
5845 * IPython/OInspect.py (__all__): new module exposing the object
5956 * IPython/OInspect.py (__all__): new module exposing the object
5846 introspection facilities. Now the corresponding magics are dummy
5957 introspection facilities. Now the corresponding magics are dummy
5847 wrappers around this. Having this module will make it much easier
5958 wrappers around this. Having this module will make it much easier
5848 to put these functions into our modified pdb.
5959 to put these functions into our modified pdb.
5849 This new object inspector system uses the new colorizing module,
5960 This new object inspector system uses the new colorizing module,
5850 so source code and other things are nicely syntax highlighted.
5961 so source code and other things are nicely syntax highlighted.
5851
5962
5852 2002-05-18 Fernando Perez <fperez@colorado.edu>
5963 2002-05-18 Fernando Perez <fperez@colorado.edu>
5853
5964
5854 * IPython/ColorANSI.py: Split the coloring tools into a separate
5965 * IPython/ColorANSI.py: Split the coloring tools into a separate
5855 module so I can use them in other code easier (they were part of
5966 module so I can use them in other code easier (they were part of
5856 ultraTB).
5967 ultraTB).
5857
5968
5858 2002-05-17 Fernando Perez <fperez@colorado.edu>
5969 2002-05-17 Fernando Perez <fperez@colorado.edu>
5859
5970
5860 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5971 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5861 fixed it to set the global 'g' also to the called instance, as
5972 fixed it to set the global 'g' also to the called instance, as
5862 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5973 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5863 user's 'g' variables).
5974 user's 'g' variables).
5864
5975
5865 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5976 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5866 global variables (aliases to _ih,_oh) so that users which expect
5977 global variables (aliases to _ih,_oh) so that users which expect
5867 In[5] or Out[7] to work aren't unpleasantly surprised.
5978 In[5] or Out[7] to work aren't unpleasantly surprised.
5868 (InputList.__getslice__): new class to allow executing slices of
5979 (InputList.__getslice__): new class to allow executing slices of
5869 input history directly. Very simple class, complements the use of
5980 input history directly. Very simple class, complements the use of
5870 macros.
5981 macros.
5871
5982
5872 2002-05-16 Fernando Perez <fperez@colorado.edu>
5983 2002-05-16 Fernando Perez <fperez@colorado.edu>
5873
5984
5874 * setup.py (docdirbase): make doc directory be just doc/IPython
5985 * setup.py (docdirbase): make doc directory be just doc/IPython
5875 without version numbers, it will reduce clutter for users.
5986 without version numbers, it will reduce clutter for users.
5876
5987
5877 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5988 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5878 execfile call to prevent possible memory leak. See for details:
5989 execfile call to prevent possible memory leak. See for details:
5879 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5990 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5880
5991
5881 2002-05-15 Fernando Perez <fperez@colorado.edu>
5992 2002-05-15 Fernando Perez <fperez@colorado.edu>
5882
5993
5883 * IPython/Magic.py (Magic.magic_psource): made the object
5994 * IPython/Magic.py (Magic.magic_psource): made the object
5884 introspection names be more standard: pdoc, pdef, pfile and
5995 introspection names be more standard: pdoc, pdef, pfile and
5885 psource. They all print/page their output, and it makes
5996 psource. They all print/page their output, and it makes
5886 remembering them easier. Kept old names for compatibility as
5997 remembering them easier. Kept old names for compatibility as
5887 aliases.
5998 aliases.
5888
5999
5889 2002-05-14 Fernando Perez <fperez@colorado.edu>
6000 2002-05-14 Fernando Perez <fperez@colorado.edu>
5890
6001
5891 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6002 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5892 what the mouse problem was. The trick is to use gnuplot with temp
6003 what the mouse problem was. The trick is to use gnuplot with temp
5893 files and NOT with pipes (for data communication), because having
6004 files and NOT with pipes (for data communication), because having
5894 both pipes and the mouse on is bad news.
6005 both pipes and the mouse on is bad news.
5895
6006
5896 2002-05-13 Fernando Perez <fperez@colorado.edu>
6007 2002-05-13 Fernando Perez <fperez@colorado.edu>
5897
6008
5898 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6009 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5899 bug. Information would be reported about builtins even when
6010 bug. Information would be reported about builtins even when
5900 user-defined functions overrode them.
6011 user-defined functions overrode them.
5901
6012
5902 2002-05-11 Fernando Perez <fperez@colorado.edu>
6013 2002-05-11 Fernando Perez <fperez@colorado.edu>
5903
6014
5904 * IPython/__init__.py (__all__): removed FlexCompleter from
6015 * IPython/__init__.py (__all__): removed FlexCompleter from
5905 __all__ so that things don't fail in platforms without readline.
6016 __all__ so that things don't fail in platforms without readline.
5906
6017
5907 2002-05-10 Fernando Perez <fperez@colorado.edu>
6018 2002-05-10 Fernando Perez <fperez@colorado.edu>
5908
6019
5909 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6020 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5910 it requires Numeric, effectively making Numeric a dependency for
6021 it requires Numeric, effectively making Numeric a dependency for
5911 IPython.
6022 IPython.
5912
6023
5913 * Released 0.2.13
6024 * Released 0.2.13
5914
6025
5915 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6026 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5916 profiler interface. Now all the major options from the profiler
6027 profiler interface. Now all the major options from the profiler
5917 module are directly supported in IPython, both for single
6028 module are directly supported in IPython, both for single
5918 expressions (@prun) and for full programs (@run -p).
6029 expressions (@prun) and for full programs (@run -p).
5919
6030
5920 2002-05-09 Fernando Perez <fperez@colorado.edu>
6031 2002-05-09 Fernando Perez <fperez@colorado.edu>
5921
6032
5922 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6033 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5923 magic properly formatted for screen.
6034 magic properly formatted for screen.
5924
6035
5925 * setup.py (make_shortcut): Changed things to put pdf version in
6036 * setup.py (make_shortcut): Changed things to put pdf version in
5926 doc/ instead of doc/manual (had to change lyxport a bit).
6037 doc/ instead of doc/manual (had to change lyxport a bit).
5927
6038
5928 * IPython/Magic.py (Profile.string_stats): made profile runs go
6039 * IPython/Magic.py (Profile.string_stats): made profile runs go
5929 through pager (they are long and a pager allows searching, saving,
6040 through pager (they are long and a pager allows searching, saving,
5930 etc.)
6041 etc.)
5931
6042
5932 2002-05-08 Fernando Perez <fperez@colorado.edu>
6043 2002-05-08 Fernando Perez <fperez@colorado.edu>
5933
6044
5934 * Released 0.2.12
6045 * Released 0.2.12
5935
6046
5936 2002-05-06 Fernando Perez <fperez@colorado.edu>
6047 2002-05-06 Fernando Perez <fperez@colorado.edu>
5937
6048
5938 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6049 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5939 introduced); 'hist n1 n2' was broken.
6050 introduced); 'hist n1 n2' was broken.
5940 (Magic.magic_pdb): added optional on/off arguments to @pdb
6051 (Magic.magic_pdb): added optional on/off arguments to @pdb
5941 (Magic.magic_run): added option -i to @run, which executes code in
6052 (Magic.magic_run): added option -i to @run, which executes code in
5942 the IPython namespace instead of a clean one. Also added @irun as
6053 the IPython namespace instead of a clean one. Also added @irun as
5943 an alias to @run -i.
6054 an alias to @run -i.
5944
6055
5945 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6056 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5946 fixed (it didn't really do anything, the namespaces were wrong).
6057 fixed (it didn't really do anything, the namespaces were wrong).
5947
6058
5948 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6059 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5949
6060
5950 * IPython/__init__.py (__all__): Fixed package namespace, now
6061 * IPython/__init__.py (__all__): Fixed package namespace, now
5951 'import IPython' does give access to IPython.<all> as
6062 'import IPython' does give access to IPython.<all> as
5952 expected. Also renamed __release__ to Release.
6063 expected. Also renamed __release__ to Release.
5953
6064
5954 * IPython/Debugger.py (__license__): created new Pdb class which
6065 * IPython/Debugger.py (__license__): created new Pdb class which
5955 functions like a drop-in for the normal pdb.Pdb but does NOT
6066 functions like a drop-in for the normal pdb.Pdb but does NOT
5956 import readline by default. This way it doesn't muck up IPython's
6067 import readline by default. This way it doesn't muck up IPython's
5957 readline handling, and now tab-completion finally works in the
6068 readline handling, and now tab-completion finally works in the
5958 debugger -- sort of. It completes things globally visible, but the
6069 debugger -- sort of. It completes things globally visible, but the
5959 completer doesn't track the stack as pdb walks it. That's a bit
6070 completer doesn't track the stack as pdb walks it. That's a bit
5960 tricky, and I'll have to implement it later.
6071 tricky, and I'll have to implement it later.
5961
6072
5962 2002-05-05 Fernando Perez <fperez@colorado.edu>
6073 2002-05-05 Fernando Perez <fperez@colorado.edu>
5963
6074
5964 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6075 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5965 magic docstrings when printed via ? (explicit \'s were being
6076 magic docstrings when printed via ? (explicit \'s were being
5966 printed).
6077 printed).
5967
6078
5968 * IPython/ipmaker.py (make_IPython): fixed namespace
6079 * IPython/ipmaker.py (make_IPython): fixed namespace
5969 identification bug. Now variables loaded via logs or command-line
6080 identification bug. Now variables loaded via logs or command-line
5970 files are recognized in the interactive namespace by @who.
6081 files are recognized in the interactive namespace by @who.
5971
6082
5972 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6083 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5973 log replay system stemming from the string form of Structs.
6084 log replay system stemming from the string form of Structs.
5974
6085
5975 * IPython/Magic.py (Macro.__init__): improved macros to properly
6086 * IPython/Magic.py (Macro.__init__): improved macros to properly
5976 handle magic commands in them.
6087 handle magic commands in them.
5977 (Magic.magic_logstart): usernames are now expanded so 'logstart
6088 (Magic.magic_logstart): usernames are now expanded so 'logstart
5978 ~/mylog' now works.
6089 ~/mylog' now works.
5979
6090
5980 * IPython/iplib.py (complete): fixed bug where paths starting with
6091 * IPython/iplib.py (complete): fixed bug where paths starting with
5981 '/' would be completed as magic names.
6092 '/' would be completed as magic names.
5982
6093
5983 2002-05-04 Fernando Perez <fperez@colorado.edu>
6094 2002-05-04 Fernando Perez <fperez@colorado.edu>
5984
6095
5985 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6096 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5986 allow running full programs under the profiler's control.
6097 allow running full programs under the profiler's control.
5987
6098
5988 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6099 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5989 mode to report exceptions verbosely but without formatting
6100 mode to report exceptions verbosely but without formatting
5990 variables. This addresses the issue of ipython 'freezing' (it's
6101 variables. This addresses the issue of ipython 'freezing' (it's
5991 not frozen, but caught in an expensive formatting loop) when huge
6102 not frozen, but caught in an expensive formatting loop) when huge
5992 variables are in the context of an exception.
6103 variables are in the context of an exception.
5993 (VerboseTB.text): Added '--->' markers at line where exception was
6104 (VerboseTB.text): Added '--->' markers at line where exception was
5994 triggered. Much clearer to read, especially in NoColor modes.
6105 triggered. Much clearer to read, especially in NoColor modes.
5995
6106
5996 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6107 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5997 implemented in reverse when changing to the new parse_options().
6108 implemented in reverse when changing to the new parse_options().
5998
6109
5999 2002-05-03 Fernando Perez <fperez@colorado.edu>
6110 2002-05-03 Fernando Perez <fperez@colorado.edu>
6000
6111
6001 * IPython/Magic.py (Magic.parse_options): new function so that
6112 * IPython/Magic.py (Magic.parse_options): new function so that
6002 magics can parse options easier.
6113 magics can parse options easier.
6003 (Magic.magic_prun): new function similar to profile.run(),
6114 (Magic.magic_prun): new function similar to profile.run(),
6004 suggested by Chris Hart.
6115 suggested by Chris Hart.
6005 (Magic.magic_cd): fixed behavior so that it only changes if
6116 (Magic.magic_cd): fixed behavior so that it only changes if
6006 directory actually is in history.
6117 directory actually is in history.
6007
6118
6008 * IPython/usage.py (__doc__): added information about potential
6119 * IPython/usage.py (__doc__): added information about potential
6009 slowness of Verbose exception mode when there are huge data
6120 slowness of Verbose exception mode when there are huge data
6010 structures to be formatted (thanks to Archie Paulson).
6121 structures to be formatted (thanks to Archie Paulson).
6011
6122
6012 * IPython/ipmaker.py (make_IPython): Changed default logging
6123 * IPython/ipmaker.py (make_IPython): Changed default logging
6013 (when simply called with -log) to use curr_dir/ipython.log in
6124 (when simply called with -log) to use curr_dir/ipython.log in
6014 rotate mode. Fixed crash which was occuring with -log before
6125 rotate mode. Fixed crash which was occuring with -log before
6015 (thanks to Jim Boyle).
6126 (thanks to Jim Boyle).
6016
6127
6017 2002-05-01 Fernando Perez <fperez@colorado.edu>
6128 2002-05-01 Fernando Perez <fperez@colorado.edu>
6018
6129
6019 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6130 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6020 was nasty -- though somewhat of a corner case).
6131 was nasty -- though somewhat of a corner case).
6021
6132
6022 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6133 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6023 text (was a bug).
6134 text (was a bug).
6024
6135
6025 2002-04-30 Fernando Perez <fperez@colorado.edu>
6136 2002-04-30 Fernando Perez <fperez@colorado.edu>
6026
6137
6027 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6138 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6028 a print after ^D or ^C from the user so that the In[] prompt
6139 a print after ^D or ^C from the user so that the In[] prompt
6029 doesn't over-run the gnuplot one.
6140 doesn't over-run the gnuplot one.
6030
6141
6031 2002-04-29 Fernando Perez <fperez@colorado.edu>
6142 2002-04-29 Fernando Perez <fperez@colorado.edu>
6032
6143
6033 * Released 0.2.10
6144 * Released 0.2.10
6034
6145
6035 * IPython/__release__.py (version): get date dynamically.
6146 * IPython/__release__.py (version): get date dynamically.
6036
6147
6037 * Misc. documentation updates thanks to Arnd's comments. Also ran
6148 * Misc. documentation updates thanks to Arnd's comments. Also ran
6038 a full spellcheck on the manual (hadn't been done in a while).
6149 a full spellcheck on the manual (hadn't been done in a while).
6039
6150
6040 2002-04-27 Fernando Perez <fperez@colorado.edu>
6151 2002-04-27 Fernando Perez <fperez@colorado.edu>
6041
6152
6042 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6153 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6043 starting a log in mid-session would reset the input history list.
6154 starting a log in mid-session would reset the input history list.
6044
6155
6045 2002-04-26 Fernando Perez <fperez@colorado.edu>
6156 2002-04-26 Fernando Perez <fperez@colorado.edu>
6046
6157
6047 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6158 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6048 all files were being included in an update. Now anything in
6159 all files were being included in an update. Now anything in
6049 UserConfig that matches [A-Za-z]*.py will go (this excludes
6160 UserConfig that matches [A-Za-z]*.py will go (this excludes
6050 __init__.py)
6161 __init__.py)
6051
6162
6052 2002-04-25 Fernando Perez <fperez@colorado.edu>
6163 2002-04-25 Fernando Perez <fperez@colorado.edu>
6053
6164
6054 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6165 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6055 to __builtins__ so that any form of embedded or imported code can
6166 to __builtins__ so that any form of embedded or imported code can
6056 test for being inside IPython.
6167 test for being inside IPython.
6057
6168
6058 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6169 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6059 changed to GnuplotMagic because it's now an importable module,
6170 changed to GnuplotMagic because it's now an importable module,
6060 this makes the name follow that of the standard Gnuplot module.
6171 this makes the name follow that of the standard Gnuplot module.
6061 GnuplotMagic can now be loaded at any time in mid-session.
6172 GnuplotMagic can now be loaded at any time in mid-session.
6062
6173
6063 2002-04-24 Fernando Perez <fperez@colorado.edu>
6174 2002-04-24 Fernando Perez <fperez@colorado.edu>
6064
6175
6065 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6176 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6066 the globals (IPython has its own namespace) and the
6177 the globals (IPython has its own namespace) and the
6067 PhysicalQuantity stuff is much better anyway.
6178 PhysicalQuantity stuff is much better anyway.
6068
6179
6069 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6180 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6070 embedding example to standard user directory for
6181 embedding example to standard user directory for
6071 distribution. Also put it in the manual.
6182 distribution. Also put it in the manual.
6072
6183
6073 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6184 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6074 instance as first argument (so it doesn't rely on some obscure
6185 instance as first argument (so it doesn't rely on some obscure
6075 hidden global).
6186 hidden global).
6076
6187
6077 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6188 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6078 delimiters. While it prevents ().TAB from working, it allows
6189 delimiters. While it prevents ().TAB from working, it allows
6079 completions in open (... expressions. This is by far a more common
6190 completions in open (... expressions. This is by far a more common
6080 case.
6191 case.
6081
6192
6082 2002-04-23 Fernando Perez <fperez@colorado.edu>
6193 2002-04-23 Fernando Perez <fperez@colorado.edu>
6083
6194
6084 * IPython/Extensions/InterpreterPasteInput.py: new
6195 * IPython/Extensions/InterpreterPasteInput.py: new
6085 syntax-processing module for pasting lines with >>> or ... at the
6196 syntax-processing module for pasting lines with >>> or ... at the
6086 start.
6197 start.
6087
6198
6088 * IPython/Extensions/PhysicalQ_Interactive.py
6199 * IPython/Extensions/PhysicalQ_Interactive.py
6089 (PhysicalQuantityInteractive.__int__): fixed to work with either
6200 (PhysicalQuantityInteractive.__int__): fixed to work with either
6090 Numeric or math.
6201 Numeric or math.
6091
6202
6092 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6203 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6093 provided profiles. Now we have:
6204 provided profiles. Now we have:
6094 -math -> math module as * and cmath with its own namespace.
6205 -math -> math module as * and cmath with its own namespace.
6095 -numeric -> Numeric as *, plus gnuplot & grace
6206 -numeric -> Numeric as *, plus gnuplot & grace
6096 -physics -> same as before
6207 -physics -> same as before
6097
6208
6098 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6209 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6099 user-defined magics wouldn't be found by @magic if they were
6210 user-defined magics wouldn't be found by @magic if they were
6100 defined as class methods. Also cleaned up the namespace search
6211 defined as class methods. Also cleaned up the namespace search
6101 logic and the string building (to use %s instead of many repeated
6212 logic and the string building (to use %s instead of many repeated
6102 string adds).
6213 string adds).
6103
6214
6104 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6215 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6105 of user-defined magics to operate with class methods (cleaner, in
6216 of user-defined magics to operate with class methods (cleaner, in
6106 line with the gnuplot code).
6217 line with the gnuplot code).
6107
6218
6108 2002-04-22 Fernando Perez <fperez@colorado.edu>
6219 2002-04-22 Fernando Perez <fperez@colorado.edu>
6109
6220
6110 * setup.py: updated dependency list so that manual is updated when
6221 * setup.py: updated dependency list so that manual is updated when
6111 all included files change.
6222 all included files change.
6112
6223
6113 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6224 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6114 the delimiter removal option (the fix is ugly right now).
6225 the delimiter removal option (the fix is ugly right now).
6115
6226
6116 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6227 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6117 all of the math profile (quicker loading, no conflict between
6228 all of the math profile (quicker loading, no conflict between
6118 g-9.8 and g-gnuplot).
6229 g-9.8 and g-gnuplot).
6119
6230
6120 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6231 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6121 name of post-mortem files to IPython_crash_report.txt.
6232 name of post-mortem files to IPython_crash_report.txt.
6122
6233
6123 * Cleanup/update of the docs. Added all the new readline info and
6234 * Cleanup/update of the docs. Added all the new readline info and
6124 formatted all lists as 'real lists'.
6235 formatted all lists as 'real lists'.
6125
6236
6126 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6237 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6127 tab-completion options, since the full readline parse_and_bind is
6238 tab-completion options, since the full readline parse_and_bind is
6128 now accessible.
6239 now accessible.
6129
6240
6130 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6241 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6131 handling of readline options. Now users can specify any string to
6242 handling of readline options. Now users can specify any string to
6132 be passed to parse_and_bind(), as well as the delimiters to be
6243 be passed to parse_and_bind(), as well as the delimiters to be
6133 removed.
6244 removed.
6134 (InteractiveShell.__init__): Added __name__ to the global
6245 (InteractiveShell.__init__): Added __name__ to the global
6135 namespace so that things like Itpl which rely on its existence
6246 namespace so that things like Itpl which rely on its existence
6136 don't crash.
6247 don't crash.
6137 (InteractiveShell._prefilter): Defined the default with a _ so
6248 (InteractiveShell._prefilter): Defined the default with a _ so
6138 that prefilter() is easier to override, while the default one
6249 that prefilter() is easier to override, while the default one
6139 remains available.
6250 remains available.
6140
6251
6141 2002-04-18 Fernando Perez <fperez@colorado.edu>
6252 2002-04-18 Fernando Perez <fperez@colorado.edu>
6142
6253
6143 * Added information about pdb in the docs.
6254 * Added information about pdb in the docs.
6144
6255
6145 2002-04-17 Fernando Perez <fperez@colorado.edu>
6256 2002-04-17 Fernando Perez <fperez@colorado.edu>
6146
6257
6147 * IPython/ipmaker.py (make_IPython): added rc_override option to
6258 * IPython/ipmaker.py (make_IPython): added rc_override option to
6148 allow passing config options at creation time which may override
6259 allow passing config options at creation time which may override
6149 anything set in the config files or command line. This is
6260 anything set in the config files or command line. This is
6150 particularly useful for configuring embedded instances.
6261 particularly useful for configuring embedded instances.
6151
6262
6152 2002-04-15 Fernando Perez <fperez@colorado.edu>
6263 2002-04-15 Fernando Perez <fperez@colorado.edu>
6153
6264
6154 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6265 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6155 crash embedded instances because of the input cache falling out of
6266 crash embedded instances because of the input cache falling out of
6156 sync with the output counter.
6267 sync with the output counter.
6157
6268
6158 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6269 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6159 mode which calls pdb after an uncaught exception in IPython itself.
6270 mode which calls pdb after an uncaught exception in IPython itself.
6160
6271
6161 2002-04-14 Fernando Perez <fperez@colorado.edu>
6272 2002-04-14 Fernando Perez <fperez@colorado.edu>
6162
6273
6163 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6274 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6164 readline, fix it back after each call.
6275 readline, fix it back after each call.
6165
6276
6166 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6277 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6167 method to force all access via __call__(), which guarantees that
6278 method to force all access via __call__(), which guarantees that
6168 traceback references are properly deleted.
6279 traceback references are properly deleted.
6169
6280
6170 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6281 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6171 improve printing when pprint is in use.
6282 improve printing when pprint is in use.
6172
6283
6173 2002-04-13 Fernando Perez <fperez@colorado.edu>
6284 2002-04-13 Fernando Perez <fperez@colorado.edu>
6174
6285
6175 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6286 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6176 exceptions aren't caught anymore. If the user triggers one, he
6287 exceptions aren't caught anymore. If the user triggers one, he
6177 should know why he's doing it and it should go all the way up,
6288 should know why he's doing it and it should go all the way up,
6178 just like any other exception. So now @abort will fully kill the
6289 just like any other exception. So now @abort will fully kill the
6179 embedded interpreter and the embedding code (unless that happens
6290 embedded interpreter and the embedding code (unless that happens
6180 to catch SystemExit).
6291 to catch SystemExit).
6181
6292
6182 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6293 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6183 and a debugger() method to invoke the interactive pdb debugger
6294 and a debugger() method to invoke the interactive pdb debugger
6184 after printing exception information. Also added the corresponding
6295 after printing exception information. Also added the corresponding
6185 -pdb option and @pdb magic to control this feature, and updated
6296 -pdb option and @pdb magic to control this feature, and updated
6186 the docs. After a suggestion from Christopher Hart
6297 the docs. After a suggestion from Christopher Hart
6187 (hart-AT-caltech.edu).
6298 (hart-AT-caltech.edu).
6188
6299
6189 2002-04-12 Fernando Perez <fperez@colorado.edu>
6300 2002-04-12 Fernando Perez <fperez@colorado.edu>
6190
6301
6191 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6302 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6192 the exception handlers defined by the user (not the CrashHandler)
6303 the exception handlers defined by the user (not the CrashHandler)
6193 so that user exceptions don't trigger an ipython bug report.
6304 so that user exceptions don't trigger an ipython bug report.
6194
6305
6195 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6306 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6196 configurable (it should have always been so).
6307 configurable (it should have always been so).
6197
6308
6198 2002-03-26 Fernando Perez <fperez@colorado.edu>
6309 2002-03-26 Fernando Perez <fperez@colorado.edu>
6199
6310
6200 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6311 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6201 and there to fix embedding namespace issues. This should all be
6312 and there to fix embedding namespace issues. This should all be
6202 done in a more elegant way.
6313 done in a more elegant way.
6203
6314
6204 2002-03-25 Fernando Perez <fperez@colorado.edu>
6315 2002-03-25 Fernando Perez <fperez@colorado.edu>
6205
6316
6206 * IPython/genutils.py (get_home_dir): Try to make it work under
6317 * IPython/genutils.py (get_home_dir): Try to make it work under
6207 win9x also.
6318 win9x also.
6208
6319
6209 2002-03-20 Fernando Perez <fperez@colorado.edu>
6320 2002-03-20 Fernando Perez <fperez@colorado.edu>
6210
6321
6211 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6322 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6212 sys.displayhook untouched upon __init__.
6323 sys.displayhook untouched upon __init__.
6213
6324
6214 2002-03-19 Fernando Perez <fperez@colorado.edu>
6325 2002-03-19 Fernando Perez <fperez@colorado.edu>
6215
6326
6216 * Released 0.2.9 (for embedding bug, basically).
6327 * Released 0.2.9 (for embedding bug, basically).
6217
6328
6218 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6329 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6219 exceptions so that enclosing shell's state can be restored.
6330 exceptions so that enclosing shell's state can be restored.
6220
6331
6221 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6332 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6222 naming conventions in the .ipython/ dir.
6333 naming conventions in the .ipython/ dir.
6223
6334
6224 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6335 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6225 from delimiters list so filenames with - in them get expanded.
6336 from delimiters list so filenames with - in them get expanded.
6226
6337
6227 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6338 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6228 sys.displayhook not being properly restored after an embedded call.
6339 sys.displayhook not being properly restored after an embedded call.
6229
6340
6230 2002-03-18 Fernando Perez <fperez@colorado.edu>
6341 2002-03-18 Fernando Perez <fperez@colorado.edu>
6231
6342
6232 * Released 0.2.8
6343 * Released 0.2.8
6233
6344
6234 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6345 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6235 some files weren't being included in a -upgrade.
6346 some files weren't being included in a -upgrade.
6236 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6347 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6237 on' so that the first tab completes.
6348 on' so that the first tab completes.
6238 (InteractiveShell.handle_magic): fixed bug with spaces around
6349 (InteractiveShell.handle_magic): fixed bug with spaces around
6239 quotes breaking many magic commands.
6350 quotes breaking many magic commands.
6240
6351
6241 * setup.py: added note about ignoring the syntax error messages at
6352 * setup.py: added note about ignoring the syntax error messages at
6242 installation.
6353 installation.
6243
6354
6244 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6355 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6245 streamlining the gnuplot interface, now there's only one magic @gp.
6356 streamlining the gnuplot interface, now there's only one magic @gp.
6246
6357
6247 2002-03-17 Fernando Perez <fperez@colorado.edu>
6358 2002-03-17 Fernando Perez <fperez@colorado.edu>
6248
6359
6249 * IPython/UserConfig/magic_gnuplot.py: new name for the
6360 * IPython/UserConfig/magic_gnuplot.py: new name for the
6250 example-magic_pm.py file. Much enhanced system, now with a shell
6361 example-magic_pm.py file. Much enhanced system, now with a shell
6251 for communicating directly with gnuplot, one command at a time.
6362 for communicating directly with gnuplot, one command at a time.
6252
6363
6253 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6364 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6254 setting __name__=='__main__'.
6365 setting __name__=='__main__'.
6255
6366
6256 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6367 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6257 mini-shell for accessing gnuplot from inside ipython. Should
6368 mini-shell for accessing gnuplot from inside ipython. Should
6258 extend it later for grace access too. Inspired by Arnd's
6369 extend it later for grace access too. Inspired by Arnd's
6259 suggestion.
6370 suggestion.
6260
6371
6261 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6372 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6262 calling magic functions with () in their arguments. Thanks to Arnd
6373 calling magic functions with () in their arguments. Thanks to Arnd
6263 Baecker for pointing this to me.
6374 Baecker for pointing this to me.
6264
6375
6265 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6376 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6266 infinitely for integer or complex arrays (only worked with floats).
6377 infinitely for integer or complex arrays (only worked with floats).
6267
6378
6268 2002-03-16 Fernando Perez <fperez@colorado.edu>
6379 2002-03-16 Fernando Perez <fperez@colorado.edu>
6269
6380
6270 * setup.py: Merged setup and setup_windows into a single script
6381 * setup.py: Merged setup and setup_windows into a single script
6271 which properly handles things for windows users.
6382 which properly handles things for windows users.
6272
6383
6273 2002-03-15 Fernando Perez <fperez@colorado.edu>
6384 2002-03-15 Fernando Perez <fperez@colorado.edu>
6274
6385
6275 * Big change to the manual: now the magics are all automatically
6386 * Big change to the manual: now the magics are all automatically
6276 documented. This information is generated from their docstrings
6387 documented. This information is generated from their docstrings
6277 and put in a latex file included by the manual lyx file. This way
6388 and put in a latex file included by the manual lyx file. This way
6278 we get always up to date information for the magics. The manual
6389 we get always up to date information for the magics. The manual
6279 now also has proper version information, also auto-synced.
6390 now also has proper version information, also auto-synced.
6280
6391
6281 For this to work, an undocumented --magic_docstrings option was added.
6392 For this to work, an undocumented --magic_docstrings option was added.
6282
6393
6283 2002-03-13 Fernando Perez <fperez@colorado.edu>
6394 2002-03-13 Fernando Perez <fperez@colorado.edu>
6284
6395
6285 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6396 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6286 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6397 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6287
6398
6288 2002-03-12 Fernando Perez <fperez@colorado.edu>
6399 2002-03-12 Fernando Perez <fperez@colorado.edu>
6289
6400
6290 * IPython/ultraTB.py (TermColors): changed color escapes again to
6401 * IPython/ultraTB.py (TermColors): changed color escapes again to
6291 fix the (old, reintroduced) line-wrapping bug. Basically, if
6402 fix the (old, reintroduced) line-wrapping bug. Basically, if
6292 \001..\002 aren't given in the color escapes, lines get wrapped
6403 \001..\002 aren't given in the color escapes, lines get wrapped
6293 weirdly. But giving those screws up old xterms and emacs terms. So
6404 weirdly. But giving those screws up old xterms and emacs terms. So
6294 I added some logic for emacs terms to be ok, but I can't identify old
6405 I added some logic for emacs terms to be ok, but I can't identify old
6295 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6406 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6296
6407
6297 2002-03-10 Fernando Perez <fperez@colorado.edu>
6408 2002-03-10 Fernando Perez <fperez@colorado.edu>
6298
6409
6299 * IPython/usage.py (__doc__): Various documentation cleanups and
6410 * IPython/usage.py (__doc__): Various documentation cleanups and
6300 updates, both in usage docstrings and in the manual.
6411 updates, both in usage docstrings and in the manual.
6301
6412
6302 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6413 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6303 handling of caching. Set minimum acceptabe value for having a
6414 handling of caching. Set minimum acceptabe value for having a
6304 cache at 20 values.
6415 cache at 20 values.
6305
6416
6306 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6417 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6307 install_first_time function to a method, renamed it and added an
6418 install_first_time function to a method, renamed it and added an
6308 'upgrade' mode. Now people can update their config directory with
6419 'upgrade' mode. Now people can update their config directory with
6309 a simple command line switch (-upgrade, also new).
6420 a simple command line switch (-upgrade, also new).
6310
6421
6311 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6422 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6312 @file (convenient for automagic users under Python >= 2.2).
6423 @file (convenient for automagic users under Python >= 2.2).
6313 Removed @files (it seemed more like a plural than an abbrev. of
6424 Removed @files (it seemed more like a plural than an abbrev. of
6314 'file show').
6425 'file show').
6315
6426
6316 * IPython/iplib.py (install_first_time): Fixed crash if there were
6427 * IPython/iplib.py (install_first_time): Fixed crash if there were
6317 backup files ('~') in .ipython/ install directory.
6428 backup files ('~') in .ipython/ install directory.
6318
6429
6319 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6430 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6320 system. Things look fine, but these changes are fairly
6431 system. Things look fine, but these changes are fairly
6321 intrusive. Test them for a few days.
6432 intrusive. Test them for a few days.
6322
6433
6323 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6434 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6324 the prompts system. Now all in/out prompt strings are user
6435 the prompts system. Now all in/out prompt strings are user
6325 controllable. This is particularly useful for embedding, as one
6436 controllable. This is particularly useful for embedding, as one
6326 can tag embedded instances with particular prompts.
6437 can tag embedded instances with particular prompts.
6327
6438
6328 Also removed global use of sys.ps1/2, which now allows nested
6439 Also removed global use of sys.ps1/2, which now allows nested
6329 embeddings without any problems. Added command-line options for
6440 embeddings without any problems. Added command-line options for
6330 the prompt strings.
6441 the prompt strings.
6331
6442
6332 2002-03-08 Fernando Perez <fperez@colorado.edu>
6443 2002-03-08 Fernando Perez <fperez@colorado.edu>
6333
6444
6334 * IPython/UserConfig/example-embed-short.py (ipshell): added
6445 * IPython/UserConfig/example-embed-short.py (ipshell): added
6335 example file with the bare minimum code for embedding.
6446 example file with the bare minimum code for embedding.
6336
6447
6337 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6448 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6338 functionality for the embeddable shell to be activated/deactivated
6449 functionality for the embeddable shell to be activated/deactivated
6339 either globally or at each call.
6450 either globally or at each call.
6340
6451
6341 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6452 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6342 rewriting the prompt with '--->' for auto-inputs with proper
6453 rewriting the prompt with '--->' for auto-inputs with proper
6343 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6454 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6344 this is handled by the prompts class itself, as it should.
6455 this is handled by the prompts class itself, as it should.
6345
6456
6346 2002-03-05 Fernando Perez <fperez@colorado.edu>
6457 2002-03-05 Fernando Perez <fperez@colorado.edu>
6347
6458
6348 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6459 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6349 @logstart to avoid name clashes with the math log function.
6460 @logstart to avoid name clashes with the math log function.
6350
6461
6351 * Big updates to X/Emacs section of the manual.
6462 * Big updates to X/Emacs section of the manual.
6352
6463
6353 * Removed ipython_emacs. Milan explained to me how to pass
6464 * Removed ipython_emacs. Milan explained to me how to pass
6354 arguments to ipython through Emacs. Some day I'm going to end up
6465 arguments to ipython through Emacs. Some day I'm going to end up
6355 learning some lisp...
6466 learning some lisp...
6356
6467
6357 2002-03-04 Fernando Perez <fperez@colorado.edu>
6468 2002-03-04 Fernando Perez <fperez@colorado.edu>
6358
6469
6359 * IPython/ipython_emacs: Created script to be used as the
6470 * IPython/ipython_emacs: Created script to be used as the
6360 py-python-command Emacs variable so we can pass IPython
6471 py-python-command Emacs variable so we can pass IPython
6361 parameters. I can't figure out how to tell Emacs directly to pass
6472 parameters. I can't figure out how to tell Emacs directly to pass
6362 parameters to IPython, so a dummy shell script will do it.
6473 parameters to IPython, so a dummy shell script will do it.
6363
6474
6364 Other enhancements made for things to work better under Emacs'
6475 Other enhancements made for things to work better under Emacs'
6365 various types of terminals. Many thanks to Milan Zamazal
6476 various types of terminals. Many thanks to Milan Zamazal
6366 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6477 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6367
6478
6368 2002-03-01 Fernando Perez <fperez@colorado.edu>
6479 2002-03-01 Fernando Perez <fperez@colorado.edu>
6369
6480
6370 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6481 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6371 that loading of readline is now optional. This gives better
6482 that loading of readline is now optional. This gives better
6372 control to emacs users.
6483 control to emacs users.
6373
6484
6374 * IPython/ultraTB.py (__date__): Modified color escape sequences
6485 * IPython/ultraTB.py (__date__): Modified color escape sequences
6375 and now things work fine under xterm and in Emacs' term buffers
6486 and now things work fine under xterm and in Emacs' term buffers
6376 (though not shell ones). Well, in emacs you get colors, but all
6487 (though not shell ones). Well, in emacs you get colors, but all
6377 seem to be 'light' colors (no difference between dark and light
6488 seem to be 'light' colors (no difference between dark and light
6378 ones). But the garbage chars are gone, and also in xterms. It
6489 ones). But the garbage chars are gone, and also in xterms. It
6379 seems that now I'm using 'cleaner' ansi sequences.
6490 seems that now I'm using 'cleaner' ansi sequences.
6380
6491
6381 2002-02-21 Fernando Perez <fperez@colorado.edu>
6492 2002-02-21 Fernando Perez <fperez@colorado.edu>
6382
6493
6383 * Released 0.2.7 (mainly to publish the scoping fix).
6494 * Released 0.2.7 (mainly to publish the scoping fix).
6384
6495
6385 * IPython/Logger.py (Logger.logstate): added. A corresponding
6496 * IPython/Logger.py (Logger.logstate): added. A corresponding
6386 @logstate magic was created.
6497 @logstate magic was created.
6387
6498
6388 * IPython/Magic.py: fixed nested scoping problem under Python
6499 * IPython/Magic.py: fixed nested scoping problem under Python
6389 2.1.x (automagic wasn't working).
6500 2.1.x (automagic wasn't working).
6390
6501
6391 2002-02-20 Fernando Perez <fperez@colorado.edu>
6502 2002-02-20 Fernando Perez <fperez@colorado.edu>
6392
6503
6393 * Released 0.2.6.
6504 * Released 0.2.6.
6394
6505
6395 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6506 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6396 option so that logs can come out without any headers at all.
6507 option so that logs can come out without any headers at all.
6397
6508
6398 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6509 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6399 SciPy.
6510 SciPy.
6400
6511
6401 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6512 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6402 that embedded IPython calls don't require vars() to be explicitly
6513 that embedded IPython calls don't require vars() to be explicitly
6403 passed. Now they are extracted from the caller's frame (code
6514 passed. Now they are extracted from the caller's frame (code
6404 snatched from Eric Jones' weave). Added better documentation to
6515 snatched from Eric Jones' weave). Added better documentation to
6405 the section on embedding and the example file.
6516 the section on embedding and the example file.
6406
6517
6407 * IPython/genutils.py (page): Changed so that under emacs, it just
6518 * IPython/genutils.py (page): Changed so that under emacs, it just
6408 prints the string. You can then page up and down in the emacs
6519 prints the string. You can then page up and down in the emacs
6409 buffer itself. This is how the builtin help() works.
6520 buffer itself. This is how the builtin help() works.
6410
6521
6411 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6522 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6412 macro scoping: macros need to be executed in the user's namespace
6523 macro scoping: macros need to be executed in the user's namespace
6413 to work as if they had been typed by the user.
6524 to work as if they had been typed by the user.
6414
6525
6415 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6526 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6416 execute automatically (no need to type 'exec...'). They then
6527 execute automatically (no need to type 'exec...'). They then
6417 behave like 'true macros'. The printing system was also modified
6528 behave like 'true macros'. The printing system was also modified
6418 for this to work.
6529 for this to work.
6419
6530
6420 2002-02-19 Fernando Perez <fperez@colorado.edu>
6531 2002-02-19 Fernando Perez <fperez@colorado.edu>
6421
6532
6422 * IPython/genutils.py (page_file): new function for paging files
6533 * IPython/genutils.py (page_file): new function for paging files
6423 in an OS-independent way. Also necessary for file viewing to work
6534 in an OS-independent way. Also necessary for file viewing to work
6424 well inside Emacs buffers.
6535 well inside Emacs buffers.
6425 (page): Added checks for being in an emacs buffer.
6536 (page): Added checks for being in an emacs buffer.
6426 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6537 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6427 same bug in iplib.
6538 same bug in iplib.
6428
6539
6429 2002-02-18 Fernando Perez <fperez@colorado.edu>
6540 2002-02-18 Fernando Perez <fperez@colorado.edu>
6430
6541
6431 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6542 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6432 of readline so that IPython can work inside an Emacs buffer.
6543 of readline so that IPython can work inside an Emacs buffer.
6433
6544
6434 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6545 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6435 method signatures (they weren't really bugs, but it looks cleaner
6546 method signatures (they weren't really bugs, but it looks cleaner
6436 and keeps PyChecker happy).
6547 and keeps PyChecker happy).
6437
6548
6438 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6549 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6439 for implementing various user-defined hooks. Currently only
6550 for implementing various user-defined hooks. Currently only
6440 display is done.
6551 display is done.
6441
6552
6442 * IPython/Prompts.py (CachedOutput._display): changed display
6553 * IPython/Prompts.py (CachedOutput._display): changed display
6443 functions so that they can be dynamically changed by users easily.
6554 functions so that they can be dynamically changed by users easily.
6444
6555
6445 * IPython/Extensions/numeric_formats.py (num_display): added an
6556 * IPython/Extensions/numeric_formats.py (num_display): added an
6446 extension for printing NumPy arrays in flexible manners. It
6557 extension for printing NumPy arrays in flexible manners. It
6447 doesn't do anything yet, but all the structure is in
6558 doesn't do anything yet, but all the structure is in
6448 place. Ultimately the plan is to implement output format control
6559 place. Ultimately the plan is to implement output format control
6449 like in Octave.
6560 like in Octave.
6450
6561
6451 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6562 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6452 methods are found at run-time by all the automatic machinery.
6563 methods are found at run-time by all the automatic machinery.
6453
6564
6454 2002-02-17 Fernando Perez <fperez@colorado.edu>
6565 2002-02-17 Fernando Perez <fperez@colorado.edu>
6455
6566
6456 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6567 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6457 whole file a little.
6568 whole file a little.
6458
6569
6459 * ToDo: closed this document. Now there's a new_design.lyx
6570 * ToDo: closed this document. Now there's a new_design.lyx
6460 document for all new ideas. Added making a pdf of it for the
6571 document for all new ideas. Added making a pdf of it for the
6461 end-user distro.
6572 end-user distro.
6462
6573
6463 * IPython/Logger.py (Logger.switch_log): Created this to replace
6574 * IPython/Logger.py (Logger.switch_log): Created this to replace
6464 logon() and logoff(). It also fixes a nasty crash reported by
6575 logon() and logoff(). It also fixes a nasty crash reported by
6465 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6576 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6466
6577
6467 * IPython/iplib.py (complete): got auto-completion to work with
6578 * IPython/iplib.py (complete): got auto-completion to work with
6468 automagic (I had wanted this for a long time).
6579 automagic (I had wanted this for a long time).
6469
6580
6470 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6581 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6471 to @file, since file() is now a builtin and clashes with automagic
6582 to @file, since file() is now a builtin and clashes with automagic
6472 for @file.
6583 for @file.
6473
6584
6474 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6585 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6475 of this was previously in iplib, which had grown to more than 2000
6586 of this was previously in iplib, which had grown to more than 2000
6476 lines, way too long. No new functionality, but it makes managing
6587 lines, way too long. No new functionality, but it makes managing
6477 the code a bit easier.
6588 the code a bit easier.
6478
6589
6479 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6590 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6480 information to crash reports.
6591 information to crash reports.
6481
6592
6482 2002-02-12 Fernando Perez <fperez@colorado.edu>
6593 2002-02-12 Fernando Perez <fperez@colorado.edu>
6483
6594
6484 * Released 0.2.5.
6595 * Released 0.2.5.
6485
6596
6486 2002-02-11 Fernando Perez <fperez@colorado.edu>
6597 2002-02-11 Fernando Perez <fperez@colorado.edu>
6487
6598
6488 * Wrote a relatively complete Windows installer. It puts
6599 * Wrote a relatively complete Windows installer. It puts
6489 everything in place, creates Start Menu entries and fixes the
6600 everything in place, creates Start Menu entries and fixes the
6490 color issues. Nothing fancy, but it works.
6601 color issues. Nothing fancy, but it works.
6491
6602
6492 2002-02-10 Fernando Perez <fperez@colorado.edu>
6603 2002-02-10 Fernando Perez <fperez@colorado.edu>
6493
6604
6494 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6605 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6495 os.path.expanduser() call so that we can type @run ~/myfile.py and
6606 os.path.expanduser() call so that we can type @run ~/myfile.py and
6496 have thigs work as expected.
6607 have thigs work as expected.
6497
6608
6498 * IPython/genutils.py (page): fixed exception handling so things
6609 * IPython/genutils.py (page): fixed exception handling so things
6499 work both in Unix and Windows correctly. Quitting a pager triggers
6610 work both in Unix and Windows correctly. Quitting a pager triggers
6500 an IOError/broken pipe in Unix, and in windows not finding a pager
6611 an IOError/broken pipe in Unix, and in windows not finding a pager
6501 is also an IOError, so I had to actually look at the return value
6612 is also an IOError, so I had to actually look at the return value
6502 of the exception, not just the exception itself. Should be ok now.
6613 of the exception, not just the exception itself. Should be ok now.
6503
6614
6504 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6615 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6505 modified to allow case-insensitive color scheme changes.
6616 modified to allow case-insensitive color scheme changes.
6506
6617
6507 2002-02-09 Fernando Perez <fperez@colorado.edu>
6618 2002-02-09 Fernando Perez <fperez@colorado.edu>
6508
6619
6509 * IPython/genutils.py (native_line_ends): new function to leave
6620 * IPython/genutils.py (native_line_ends): new function to leave
6510 user config files with os-native line-endings.
6621 user config files with os-native line-endings.
6511
6622
6512 * README and manual updates.
6623 * README and manual updates.
6513
6624
6514 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6625 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6515 instead of StringType to catch Unicode strings.
6626 instead of StringType to catch Unicode strings.
6516
6627
6517 * IPython/genutils.py (filefind): fixed bug for paths with
6628 * IPython/genutils.py (filefind): fixed bug for paths with
6518 embedded spaces (very common in Windows).
6629 embedded spaces (very common in Windows).
6519
6630
6520 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6631 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6521 files under Windows, so that they get automatically associated
6632 files under Windows, so that they get automatically associated
6522 with a text editor. Windows makes it a pain to handle
6633 with a text editor. Windows makes it a pain to handle
6523 extension-less files.
6634 extension-less files.
6524
6635
6525 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6636 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6526 warning about readline only occur for Posix. In Windows there's no
6637 warning about readline only occur for Posix. In Windows there's no
6527 way to get readline, so why bother with the warning.
6638 way to get readline, so why bother with the warning.
6528
6639
6529 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6640 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6530 for __str__ instead of dir(self), since dir() changed in 2.2.
6641 for __str__ instead of dir(self), since dir() changed in 2.2.
6531
6642
6532 * Ported to Windows! Tested on XP, I suspect it should work fine
6643 * Ported to Windows! Tested on XP, I suspect it should work fine
6533 on NT/2000, but I don't think it will work on 98 et al. That
6644 on NT/2000, but I don't think it will work on 98 et al. That
6534 series of Windows is such a piece of junk anyway that I won't try
6645 series of Windows is such a piece of junk anyway that I won't try
6535 porting it there. The XP port was straightforward, showed a few
6646 porting it there. The XP port was straightforward, showed a few
6536 bugs here and there (fixed all), in particular some string
6647 bugs here and there (fixed all), in particular some string
6537 handling stuff which required considering Unicode strings (which
6648 handling stuff which required considering Unicode strings (which
6538 Windows uses). This is good, but hasn't been too tested :) No
6649 Windows uses). This is good, but hasn't been too tested :) No
6539 fancy installer yet, I'll put a note in the manual so people at
6650 fancy installer yet, I'll put a note in the manual so people at
6540 least make manually a shortcut.
6651 least make manually a shortcut.
6541
6652
6542 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6653 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6543 into a single one, "colors". This now controls both prompt and
6654 into a single one, "colors". This now controls both prompt and
6544 exception color schemes, and can be changed both at startup
6655 exception color schemes, and can be changed both at startup
6545 (either via command-line switches or via ipythonrc files) and at
6656 (either via command-line switches or via ipythonrc files) and at
6546 runtime, with @colors.
6657 runtime, with @colors.
6547 (Magic.magic_run): renamed @prun to @run and removed the old
6658 (Magic.magic_run): renamed @prun to @run and removed the old
6548 @run. The two were too similar to warrant keeping both.
6659 @run. The two were too similar to warrant keeping both.
6549
6660
6550 2002-02-03 Fernando Perez <fperez@colorado.edu>
6661 2002-02-03 Fernando Perez <fperez@colorado.edu>
6551
6662
6552 * IPython/iplib.py (install_first_time): Added comment on how to
6663 * IPython/iplib.py (install_first_time): Added comment on how to
6553 configure the color options for first-time users. Put a <return>
6664 configure the color options for first-time users. Put a <return>
6554 request at the end so that small-terminal users get a chance to
6665 request at the end so that small-terminal users get a chance to
6555 read the startup info.
6666 read the startup info.
6556
6667
6557 2002-01-23 Fernando Perez <fperez@colorado.edu>
6668 2002-01-23 Fernando Perez <fperez@colorado.edu>
6558
6669
6559 * IPython/iplib.py (CachedOutput.update): Changed output memory
6670 * IPython/iplib.py (CachedOutput.update): Changed output memory
6560 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6671 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6561 input history we still use _i. Did this b/c these variable are
6672 input history we still use _i. Did this b/c these variable are
6562 very commonly used in interactive work, so the less we need to
6673 very commonly used in interactive work, so the less we need to
6563 type the better off we are.
6674 type the better off we are.
6564 (Magic.magic_prun): updated @prun to better handle the namespaces
6675 (Magic.magic_prun): updated @prun to better handle the namespaces
6565 the file will run in, including a fix for __name__ not being set
6676 the file will run in, including a fix for __name__ not being set
6566 before.
6677 before.
6567
6678
6568 2002-01-20 Fernando Perez <fperez@colorado.edu>
6679 2002-01-20 Fernando Perez <fperez@colorado.edu>
6569
6680
6570 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6681 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6571 extra garbage for Python 2.2. Need to look more carefully into
6682 extra garbage for Python 2.2. Need to look more carefully into
6572 this later.
6683 this later.
6573
6684
6574 2002-01-19 Fernando Perez <fperez@colorado.edu>
6685 2002-01-19 Fernando Perez <fperez@colorado.edu>
6575
6686
6576 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6687 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6577 display SyntaxError exceptions properly formatted when they occur
6688 display SyntaxError exceptions properly formatted when they occur
6578 (they can be triggered by imported code).
6689 (they can be triggered by imported code).
6579
6690
6580 2002-01-18 Fernando Perez <fperez@colorado.edu>
6691 2002-01-18 Fernando Perez <fperez@colorado.edu>
6581
6692
6582 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6693 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6583 SyntaxError exceptions are reported nicely formatted, instead of
6694 SyntaxError exceptions are reported nicely formatted, instead of
6584 spitting out only offset information as before.
6695 spitting out only offset information as before.
6585 (Magic.magic_prun): Added the @prun function for executing
6696 (Magic.magic_prun): Added the @prun function for executing
6586 programs with command line args inside IPython.
6697 programs with command line args inside IPython.
6587
6698
6588 2002-01-16 Fernando Perez <fperez@colorado.edu>
6699 2002-01-16 Fernando Perez <fperez@colorado.edu>
6589
6700
6590 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6701 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6591 to *not* include the last item given in a range. This brings their
6702 to *not* include the last item given in a range. This brings their
6592 behavior in line with Python's slicing:
6703 behavior in line with Python's slicing:
6593 a[n1:n2] -> a[n1]...a[n2-1]
6704 a[n1:n2] -> a[n1]...a[n2-1]
6594 It may be a bit less convenient, but I prefer to stick to Python's
6705 It may be a bit less convenient, but I prefer to stick to Python's
6595 conventions *everywhere*, so users never have to wonder.
6706 conventions *everywhere*, so users never have to wonder.
6596 (Magic.magic_macro): Added @macro function to ease the creation of
6707 (Magic.magic_macro): Added @macro function to ease the creation of
6597 macros.
6708 macros.
6598
6709
6599 2002-01-05 Fernando Perez <fperez@colorado.edu>
6710 2002-01-05 Fernando Perez <fperez@colorado.edu>
6600
6711
6601 * Released 0.2.4.
6712 * Released 0.2.4.
6602
6713
6603 * IPython/iplib.py (Magic.magic_pdef):
6714 * IPython/iplib.py (Magic.magic_pdef):
6604 (InteractiveShell.safe_execfile): report magic lines and error
6715 (InteractiveShell.safe_execfile): report magic lines and error
6605 lines without line numbers so one can easily copy/paste them for
6716 lines without line numbers so one can easily copy/paste them for
6606 re-execution.
6717 re-execution.
6607
6718
6608 * Updated manual with recent changes.
6719 * Updated manual with recent changes.
6609
6720
6610 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6721 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6611 docstring printing when class? is called. Very handy for knowing
6722 docstring printing when class? is called. Very handy for knowing
6612 how to create class instances (as long as __init__ is well
6723 how to create class instances (as long as __init__ is well
6613 documented, of course :)
6724 documented, of course :)
6614 (Magic.magic_doc): print both class and constructor docstrings.
6725 (Magic.magic_doc): print both class and constructor docstrings.
6615 (Magic.magic_pdef): give constructor info if passed a class and
6726 (Magic.magic_pdef): give constructor info if passed a class and
6616 __call__ info for callable object instances.
6727 __call__ info for callable object instances.
6617
6728
6618 2002-01-04 Fernando Perez <fperez@colorado.edu>
6729 2002-01-04 Fernando Perez <fperez@colorado.edu>
6619
6730
6620 * Made deep_reload() off by default. It doesn't always work
6731 * Made deep_reload() off by default. It doesn't always work
6621 exactly as intended, so it's probably safer to have it off. It's
6732 exactly as intended, so it's probably safer to have it off. It's
6622 still available as dreload() anyway, so nothing is lost.
6733 still available as dreload() anyway, so nothing is lost.
6623
6734
6624 2002-01-02 Fernando Perez <fperez@colorado.edu>
6735 2002-01-02 Fernando Perez <fperez@colorado.edu>
6625
6736
6626 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6737 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6627 so I wanted an updated release).
6738 so I wanted an updated release).
6628
6739
6629 2001-12-27 Fernando Perez <fperez@colorado.edu>
6740 2001-12-27 Fernando Perez <fperez@colorado.edu>
6630
6741
6631 * IPython/iplib.py (InteractiveShell.interact): Added the original
6742 * IPython/iplib.py (InteractiveShell.interact): Added the original
6632 code from 'code.py' for this module in order to change the
6743 code from 'code.py' for this module in order to change the
6633 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6744 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6634 the history cache would break when the user hit Ctrl-C, and
6745 the history cache would break when the user hit Ctrl-C, and
6635 interact() offers no way to add any hooks to it.
6746 interact() offers no way to add any hooks to it.
6636
6747
6637 2001-12-23 Fernando Perez <fperez@colorado.edu>
6748 2001-12-23 Fernando Perez <fperez@colorado.edu>
6638
6749
6639 * setup.py: added check for 'MANIFEST' before trying to remove
6750 * setup.py: added check for 'MANIFEST' before trying to remove
6640 it. Thanks to Sean Reifschneider.
6751 it. Thanks to Sean Reifschneider.
6641
6752
6642 2001-12-22 Fernando Perez <fperez@colorado.edu>
6753 2001-12-22 Fernando Perez <fperez@colorado.edu>
6643
6754
6644 * Released 0.2.2.
6755 * Released 0.2.2.
6645
6756
6646 * Finished (reasonably) writing the manual. Later will add the
6757 * Finished (reasonably) writing the manual. Later will add the
6647 python-standard navigation stylesheets, but for the time being
6758 python-standard navigation stylesheets, but for the time being
6648 it's fairly complete. Distribution will include html and pdf
6759 it's fairly complete. Distribution will include html and pdf
6649 versions.
6760 versions.
6650
6761
6651 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6762 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6652 (MayaVi author).
6763 (MayaVi author).
6653
6764
6654 2001-12-21 Fernando Perez <fperez@colorado.edu>
6765 2001-12-21 Fernando Perez <fperez@colorado.edu>
6655
6766
6656 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6767 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6657 good public release, I think (with the manual and the distutils
6768 good public release, I think (with the manual and the distutils
6658 installer). The manual can use some work, but that can go
6769 installer). The manual can use some work, but that can go
6659 slowly. Otherwise I think it's quite nice for end users. Next
6770 slowly. Otherwise I think it's quite nice for end users. Next
6660 summer, rewrite the guts of it...
6771 summer, rewrite the guts of it...
6661
6772
6662 * Changed format of ipythonrc files to use whitespace as the
6773 * Changed format of ipythonrc files to use whitespace as the
6663 separator instead of an explicit '='. Cleaner.
6774 separator instead of an explicit '='. Cleaner.
6664
6775
6665 2001-12-20 Fernando Perez <fperez@colorado.edu>
6776 2001-12-20 Fernando Perez <fperez@colorado.edu>
6666
6777
6667 * Started a manual in LyX. For now it's just a quick merge of the
6778 * Started a manual in LyX. For now it's just a quick merge of the
6668 various internal docstrings and READMEs. Later it may grow into a
6779 various internal docstrings and READMEs. Later it may grow into a
6669 nice, full-blown manual.
6780 nice, full-blown manual.
6670
6781
6671 * Set up a distutils based installer. Installation should now be
6782 * Set up a distutils based installer. Installation should now be
6672 trivially simple for end-users.
6783 trivially simple for end-users.
6673
6784
6674 2001-12-11 Fernando Perez <fperez@colorado.edu>
6785 2001-12-11 Fernando Perez <fperez@colorado.edu>
6675
6786
6676 * Released 0.2.0. First public release, announced it at
6787 * Released 0.2.0. First public release, announced it at
6677 comp.lang.python. From now on, just bugfixes...
6788 comp.lang.python. From now on, just bugfixes...
6678
6789
6679 * Went through all the files, set copyright/license notices and
6790 * Went through all the files, set copyright/license notices and
6680 cleaned up things. Ready for release.
6791 cleaned up things. Ready for release.
6681
6792
6682 2001-12-10 Fernando Perez <fperez@colorado.edu>
6793 2001-12-10 Fernando Perez <fperez@colorado.edu>
6683
6794
6684 * Changed the first-time installer not to use tarfiles. It's more
6795 * Changed the first-time installer not to use tarfiles. It's more
6685 robust now and less unix-dependent. Also makes it easier for
6796 robust now and less unix-dependent. Also makes it easier for
6686 people to later upgrade versions.
6797 people to later upgrade versions.
6687
6798
6688 * Changed @exit to @abort to reflect the fact that it's pretty
6799 * Changed @exit to @abort to reflect the fact that it's pretty
6689 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6800 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6690 becomes significant only when IPyhton is embedded: in that case,
6801 becomes significant only when IPyhton is embedded: in that case,
6691 C-D closes IPython only, but @abort kills the enclosing program
6802 C-D closes IPython only, but @abort kills the enclosing program
6692 too (unless it had called IPython inside a try catching
6803 too (unless it had called IPython inside a try catching
6693 SystemExit).
6804 SystemExit).
6694
6805
6695 * Created Shell module which exposes the actuall IPython Shell
6806 * Created Shell module which exposes the actuall IPython Shell
6696 classes, currently the normal and the embeddable one. This at
6807 classes, currently the normal and the embeddable one. This at
6697 least offers a stable interface we won't need to change when
6808 least offers a stable interface we won't need to change when
6698 (later) the internals are rewritten. That rewrite will be confined
6809 (later) the internals are rewritten. That rewrite will be confined
6699 to iplib and ipmaker, but the Shell interface should remain as is.
6810 to iplib and ipmaker, but the Shell interface should remain as is.
6700
6811
6701 * Added embed module which offers an embeddable IPShell object,
6812 * Added embed module which offers an embeddable IPShell object,
6702 useful to fire up IPython *inside* a running program. Great for
6813 useful to fire up IPython *inside* a running program. Great for
6703 debugging or dynamical data analysis.
6814 debugging or dynamical data analysis.
6704
6815
6705 2001-12-08 Fernando Perez <fperez@colorado.edu>
6816 2001-12-08 Fernando Perez <fperez@colorado.edu>
6706
6817
6707 * Fixed small bug preventing seeing info from methods of defined
6818 * Fixed small bug preventing seeing info from methods of defined
6708 objects (incorrect namespace in _ofind()).
6819 objects (incorrect namespace in _ofind()).
6709
6820
6710 * Documentation cleanup. Moved the main usage docstrings to a
6821 * Documentation cleanup. Moved the main usage docstrings to a
6711 separate file, usage.py (cleaner to maintain, and hopefully in the
6822 separate file, usage.py (cleaner to maintain, and hopefully in the
6712 future some perlpod-like way of producing interactive, man and
6823 future some perlpod-like way of producing interactive, man and
6713 html docs out of it will be found).
6824 html docs out of it will be found).
6714
6825
6715 * Added @profile to see your profile at any time.
6826 * Added @profile to see your profile at any time.
6716
6827
6717 * Added @p as an alias for 'print'. It's especially convenient if
6828 * Added @p as an alias for 'print'. It's especially convenient if
6718 using automagic ('p x' prints x).
6829 using automagic ('p x' prints x).
6719
6830
6720 * Small cleanups and fixes after a pychecker run.
6831 * Small cleanups and fixes after a pychecker run.
6721
6832
6722 * Changed the @cd command to handle @cd - and @cd -<n> for
6833 * Changed the @cd command to handle @cd - and @cd -<n> for
6723 visiting any directory in _dh.
6834 visiting any directory in _dh.
6724
6835
6725 * Introduced _dh, a history of visited directories. @dhist prints
6836 * Introduced _dh, a history of visited directories. @dhist prints
6726 it out with numbers.
6837 it out with numbers.
6727
6838
6728 2001-12-07 Fernando Perez <fperez@colorado.edu>
6839 2001-12-07 Fernando Perez <fperez@colorado.edu>
6729
6840
6730 * Released 0.1.22
6841 * Released 0.1.22
6731
6842
6732 * Made initialization a bit more robust against invalid color
6843 * Made initialization a bit more robust against invalid color
6733 options in user input (exit, not traceback-crash).
6844 options in user input (exit, not traceback-crash).
6734
6845
6735 * Changed the bug crash reporter to write the report only in the
6846 * Changed the bug crash reporter to write the report only in the
6736 user's .ipython directory. That way IPython won't litter people's
6847 user's .ipython directory. That way IPython won't litter people's
6737 hard disks with crash files all over the place. Also print on
6848 hard disks with crash files all over the place. Also print on
6738 screen the necessary mail command.
6849 screen the necessary mail command.
6739
6850
6740 * With the new ultraTB, implemented LightBG color scheme for light
6851 * With the new ultraTB, implemented LightBG color scheme for light
6741 background terminals. A lot of people like white backgrounds, so I
6852 background terminals. A lot of people like white backgrounds, so I
6742 guess we should at least give them something readable.
6853 guess we should at least give them something readable.
6743
6854
6744 2001-12-06 Fernando Perez <fperez@colorado.edu>
6855 2001-12-06 Fernando Perez <fperez@colorado.edu>
6745
6856
6746 * Modified the structure of ultraTB. Now there's a proper class
6857 * Modified the structure of ultraTB. Now there's a proper class
6747 for tables of color schemes which allow adding schemes easily and
6858 for tables of color schemes which allow adding schemes easily and
6748 switching the active scheme without creating a new instance every
6859 switching the active scheme without creating a new instance every
6749 time (which was ridiculous). The syntax for creating new schemes
6860 time (which was ridiculous). The syntax for creating new schemes
6750 is also cleaner. I think ultraTB is finally done, with a clean
6861 is also cleaner. I think ultraTB is finally done, with a clean
6751 class structure. Names are also much cleaner (now there's proper
6862 class structure. Names are also much cleaner (now there's proper
6752 color tables, no need for every variable to also have 'color' in
6863 color tables, no need for every variable to also have 'color' in
6753 its name).
6864 its name).
6754
6865
6755 * Broke down genutils into separate files. Now genutils only
6866 * Broke down genutils into separate files. Now genutils only
6756 contains utility functions, and classes have been moved to their
6867 contains utility functions, and classes have been moved to their
6757 own files (they had enough independent functionality to warrant
6868 own files (they had enough independent functionality to warrant
6758 it): ConfigLoader, OutputTrap, Struct.
6869 it): ConfigLoader, OutputTrap, Struct.
6759
6870
6760 2001-12-05 Fernando Perez <fperez@colorado.edu>
6871 2001-12-05 Fernando Perez <fperez@colorado.edu>
6761
6872
6762 * IPython turns 21! Released version 0.1.21, as a candidate for
6873 * IPython turns 21! Released version 0.1.21, as a candidate for
6763 public consumption. If all goes well, release in a few days.
6874 public consumption. If all goes well, release in a few days.
6764
6875
6765 * Fixed path bug (files in Extensions/ directory wouldn't be found
6876 * Fixed path bug (files in Extensions/ directory wouldn't be found
6766 unless IPython/ was explicitly in sys.path).
6877 unless IPython/ was explicitly in sys.path).
6767
6878
6768 * Extended the FlexCompleter class as MagicCompleter to allow
6879 * Extended the FlexCompleter class as MagicCompleter to allow
6769 completion of @-starting lines.
6880 completion of @-starting lines.
6770
6881
6771 * Created __release__.py file as a central repository for release
6882 * Created __release__.py file as a central repository for release
6772 info that other files can read from.
6883 info that other files can read from.
6773
6884
6774 * Fixed small bug in logging: when logging was turned on in
6885 * Fixed small bug in logging: when logging was turned on in
6775 mid-session, old lines with special meanings (!@?) were being
6886 mid-session, old lines with special meanings (!@?) were being
6776 logged without the prepended comment, which is necessary since
6887 logged without the prepended comment, which is necessary since
6777 they are not truly valid python syntax. This should make session
6888 they are not truly valid python syntax. This should make session
6778 restores produce less errors.
6889 restores produce less errors.
6779
6890
6780 * The namespace cleanup forced me to make a FlexCompleter class
6891 * The namespace cleanup forced me to make a FlexCompleter class
6781 which is nothing but a ripoff of rlcompleter, but with selectable
6892 which is nothing but a ripoff of rlcompleter, but with selectable
6782 namespace (rlcompleter only works in __main__.__dict__). I'll try
6893 namespace (rlcompleter only works in __main__.__dict__). I'll try
6783 to submit a note to the authors to see if this change can be
6894 to submit a note to the authors to see if this change can be
6784 incorporated in future rlcompleter releases (Dec.6: done)
6895 incorporated in future rlcompleter releases (Dec.6: done)
6785
6896
6786 * More fixes to namespace handling. It was a mess! Now all
6897 * More fixes to namespace handling. It was a mess! Now all
6787 explicit references to __main__.__dict__ are gone (except when
6898 explicit references to __main__.__dict__ are gone (except when
6788 really needed) and everything is handled through the namespace
6899 really needed) and everything is handled through the namespace
6789 dicts in the IPython instance. We seem to be getting somewhere
6900 dicts in the IPython instance. We seem to be getting somewhere
6790 with this, finally...
6901 with this, finally...
6791
6902
6792 * Small documentation updates.
6903 * Small documentation updates.
6793
6904
6794 * Created the Extensions directory under IPython (with an
6905 * Created the Extensions directory under IPython (with an
6795 __init__.py). Put the PhysicalQ stuff there. This directory should
6906 __init__.py). Put the PhysicalQ stuff there. This directory should
6796 be used for all special-purpose extensions.
6907 be used for all special-purpose extensions.
6797
6908
6798 * File renaming:
6909 * File renaming:
6799 ipythonlib --> ipmaker
6910 ipythonlib --> ipmaker
6800 ipplib --> iplib
6911 ipplib --> iplib
6801 This makes a bit more sense in terms of what these files actually do.
6912 This makes a bit more sense in terms of what these files actually do.
6802
6913
6803 * Moved all the classes and functions in ipythonlib to ipplib, so
6914 * Moved all the classes and functions in ipythonlib to ipplib, so
6804 now ipythonlib only has make_IPython(). This will ease up its
6915 now ipythonlib only has make_IPython(). This will ease up its
6805 splitting in smaller functional chunks later.
6916 splitting in smaller functional chunks later.
6806
6917
6807 * Cleaned up (done, I think) output of @whos. Better column
6918 * Cleaned up (done, I think) output of @whos. Better column
6808 formatting, and now shows str(var) for as much as it can, which is
6919 formatting, and now shows str(var) for as much as it can, which is
6809 typically what one gets with a 'print var'.
6920 typically what one gets with a 'print var'.
6810
6921
6811 2001-12-04 Fernando Perez <fperez@colorado.edu>
6922 2001-12-04 Fernando Perez <fperez@colorado.edu>
6812
6923
6813 * Fixed namespace problems. Now builtin/IPyhton/user names get
6924 * Fixed namespace problems. Now builtin/IPyhton/user names get
6814 properly reported in their namespace. Internal namespace handling
6925 properly reported in their namespace. Internal namespace handling
6815 is finally getting decent (not perfect yet, but much better than
6926 is finally getting decent (not perfect yet, but much better than
6816 the ad-hoc mess we had).
6927 the ad-hoc mess we had).
6817
6928
6818 * Removed -exit option. If people just want to run a python
6929 * Removed -exit option. If people just want to run a python
6819 script, that's what the normal interpreter is for. Less
6930 script, that's what the normal interpreter is for. Less
6820 unnecessary options, less chances for bugs.
6931 unnecessary options, less chances for bugs.
6821
6932
6822 * Added a crash handler which generates a complete post-mortem if
6933 * Added a crash handler which generates a complete post-mortem if
6823 IPython crashes. This will help a lot in tracking bugs down the
6934 IPython crashes. This will help a lot in tracking bugs down the
6824 road.
6935 road.
6825
6936
6826 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6937 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6827 which were boud to functions being reassigned would bypass the
6938 which were boud to functions being reassigned would bypass the
6828 logger, breaking the sync of _il with the prompt counter. This
6939 logger, breaking the sync of _il with the prompt counter. This
6829 would then crash IPython later when a new line was logged.
6940 would then crash IPython later when a new line was logged.
6830
6941
6831 2001-12-02 Fernando Perez <fperez@colorado.edu>
6942 2001-12-02 Fernando Perez <fperez@colorado.edu>
6832
6943
6833 * Made IPython a package. This means people don't have to clutter
6944 * Made IPython a package. This means people don't have to clutter
6834 their sys.path with yet another directory. Changed the INSTALL
6945 their sys.path with yet another directory. Changed the INSTALL
6835 file accordingly.
6946 file accordingly.
6836
6947
6837 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6948 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6838 sorts its output (so @who shows it sorted) and @whos formats the
6949 sorts its output (so @who shows it sorted) and @whos formats the
6839 table according to the width of the first column. Nicer, easier to
6950 table according to the width of the first column. Nicer, easier to
6840 read. Todo: write a generic table_format() which takes a list of
6951 read. Todo: write a generic table_format() which takes a list of
6841 lists and prints it nicely formatted, with optional row/column
6952 lists and prints it nicely formatted, with optional row/column
6842 separators and proper padding and justification.
6953 separators and proper padding and justification.
6843
6954
6844 * Released 0.1.20
6955 * Released 0.1.20
6845
6956
6846 * Fixed bug in @log which would reverse the inputcache list (a
6957 * Fixed bug in @log which would reverse the inputcache list (a
6847 copy operation was missing).
6958 copy operation was missing).
6848
6959
6849 * Code cleanup. @config was changed to use page(). Better, since
6960 * Code cleanup. @config was changed to use page(). Better, since
6850 its output is always quite long.
6961 its output is always quite long.
6851
6962
6852 * Itpl is back as a dependency. I was having too many problems
6963 * Itpl is back as a dependency. I was having too many problems
6853 getting the parametric aliases to work reliably, and it's just
6964 getting the parametric aliases to work reliably, and it's just
6854 easier to code weird string operations with it than playing %()s
6965 easier to code weird string operations with it than playing %()s
6855 games. It's only ~6k, so I don't think it's too big a deal.
6966 games. It's only ~6k, so I don't think it's too big a deal.
6856
6967
6857 * Found (and fixed) a very nasty bug with history. !lines weren't
6968 * Found (and fixed) a very nasty bug with history. !lines weren't
6858 getting cached, and the out of sync caches would crash
6969 getting cached, and the out of sync caches would crash
6859 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6970 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6860 division of labor a bit better. Bug fixed, cleaner structure.
6971 division of labor a bit better. Bug fixed, cleaner structure.
6861
6972
6862 2001-12-01 Fernando Perez <fperez@colorado.edu>
6973 2001-12-01 Fernando Perez <fperez@colorado.edu>
6863
6974
6864 * Released 0.1.19
6975 * Released 0.1.19
6865
6976
6866 * Added option -n to @hist to prevent line number printing. Much
6977 * Added option -n to @hist to prevent line number printing. Much
6867 easier to copy/paste code this way.
6978 easier to copy/paste code this way.
6868
6979
6869 * Created global _il to hold the input list. Allows easy
6980 * Created global _il to hold the input list. Allows easy
6870 re-execution of blocks of code by slicing it (inspired by Janko's
6981 re-execution of blocks of code by slicing it (inspired by Janko's
6871 comment on 'macros').
6982 comment on 'macros').
6872
6983
6873 * Small fixes and doc updates.
6984 * Small fixes and doc updates.
6874
6985
6875 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6986 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6876 much too fragile with automagic. Handles properly multi-line
6987 much too fragile with automagic. Handles properly multi-line
6877 statements and takes parameters.
6988 statements and takes parameters.
6878
6989
6879 2001-11-30 Fernando Perez <fperez@colorado.edu>
6990 2001-11-30 Fernando Perez <fperez@colorado.edu>
6880
6991
6881 * Version 0.1.18 released.
6992 * Version 0.1.18 released.
6882
6993
6883 * Fixed nasty namespace bug in initial module imports.
6994 * Fixed nasty namespace bug in initial module imports.
6884
6995
6885 * Added copyright/license notes to all code files (except
6996 * Added copyright/license notes to all code files (except
6886 DPyGetOpt). For the time being, LGPL. That could change.
6997 DPyGetOpt). For the time being, LGPL. That could change.
6887
6998
6888 * Rewrote a much nicer README, updated INSTALL, cleaned up
6999 * Rewrote a much nicer README, updated INSTALL, cleaned up
6889 ipythonrc-* samples.
7000 ipythonrc-* samples.
6890
7001
6891 * Overall code/documentation cleanup. Basically ready for
7002 * Overall code/documentation cleanup. Basically ready for
6892 release. Only remaining thing: licence decision (LGPL?).
7003 release. Only remaining thing: licence decision (LGPL?).
6893
7004
6894 * Converted load_config to a class, ConfigLoader. Now recursion
7005 * Converted load_config to a class, ConfigLoader. Now recursion
6895 control is better organized. Doesn't include the same file twice.
7006 control is better organized. Doesn't include the same file twice.
6896
7007
6897 2001-11-29 Fernando Perez <fperez@colorado.edu>
7008 2001-11-29 Fernando Perez <fperez@colorado.edu>
6898
7009
6899 * Got input history working. Changed output history variables from
7010 * Got input history working. Changed output history variables from
6900 _p to _o so that _i is for input and _o for output. Just cleaner
7011 _p to _o so that _i is for input and _o for output. Just cleaner
6901 convention.
7012 convention.
6902
7013
6903 * Implemented parametric aliases. This pretty much allows the
7014 * Implemented parametric aliases. This pretty much allows the
6904 alias system to offer full-blown shell convenience, I think.
7015 alias system to offer full-blown shell convenience, I think.
6905
7016
6906 * Version 0.1.17 released, 0.1.18 opened.
7017 * Version 0.1.17 released, 0.1.18 opened.
6907
7018
6908 * dot_ipython/ipythonrc (alias): added documentation.
7019 * dot_ipython/ipythonrc (alias): added documentation.
6909 (xcolor): Fixed small bug (xcolors -> xcolor)
7020 (xcolor): Fixed small bug (xcolors -> xcolor)
6910
7021
6911 * Changed the alias system. Now alias is a magic command to define
7022 * Changed the alias system. Now alias is a magic command to define
6912 aliases just like the shell. Rationale: the builtin magics should
7023 aliases just like the shell. Rationale: the builtin magics should
6913 be there for things deeply connected to IPython's
7024 be there for things deeply connected to IPython's
6914 architecture. And this is a much lighter system for what I think
7025 architecture. And this is a much lighter system for what I think
6915 is the really important feature: allowing users to define quickly
7026 is the really important feature: allowing users to define quickly
6916 magics that will do shell things for them, so they can customize
7027 magics that will do shell things for them, so they can customize
6917 IPython easily to match their work habits. If someone is really
7028 IPython easily to match their work habits. If someone is really
6918 desperate to have another name for a builtin alias, they can
7029 desperate to have another name for a builtin alias, they can
6919 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7030 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6920 works.
7031 works.
6921
7032
6922 2001-11-28 Fernando Perez <fperez@colorado.edu>
7033 2001-11-28 Fernando Perez <fperez@colorado.edu>
6923
7034
6924 * Changed @file so that it opens the source file at the proper
7035 * Changed @file so that it opens the source file at the proper
6925 line. Since it uses less, if your EDITOR environment is
7036 line. Since it uses less, if your EDITOR environment is
6926 configured, typing v will immediately open your editor of choice
7037 configured, typing v will immediately open your editor of choice
6927 right at the line where the object is defined. Not as quick as
7038 right at the line where the object is defined. Not as quick as
6928 having a direct @edit command, but for all intents and purposes it
7039 having a direct @edit command, but for all intents and purposes it
6929 works. And I don't have to worry about writing @edit to deal with
7040 works. And I don't have to worry about writing @edit to deal with
6930 all the editors, less does that.
7041 all the editors, less does that.
6931
7042
6932 * Version 0.1.16 released, 0.1.17 opened.
7043 * Version 0.1.16 released, 0.1.17 opened.
6933
7044
6934 * Fixed some nasty bugs in the page/page_dumb combo that could
7045 * Fixed some nasty bugs in the page/page_dumb combo that could
6935 crash IPython.
7046 crash IPython.
6936
7047
6937 2001-11-27 Fernando Perez <fperez@colorado.edu>
7048 2001-11-27 Fernando Perez <fperez@colorado.edu>
6938
7049
6939 * Version 0.1.15 released, 0.1.16 opened.
7050 * Version 0.1.15 released, 0.1.16 opened.
6940
7051
6941 * Finally got ? and ?? to work for undefined things: now it's
7052 * Finally got ? and ?? to work for undefined things: now it's
6942 possible to type {}.get? and get information about the get method
7053 possible to type {}.get? and get information about the get method
6943 of dicts, or os.path? even if only os is defined (so technically
7054 of dicts, or os.path? even if only os is defined (so technically
6944 os.path isn't). Works at any level. For example, after import os,
7055 os.path isn't). Works at any level. For example, after import os,
6945 os?, os.path?, os.path.abspath? all work. This is great, took some
7056 os?, os.path?, os.path.abspath? all work. This is great, took some
6946 work in _ofind.
7057 work in _ofind.
6947
7058
6948 * Fixed more bugs with logging. The sanest way to do it was to add
7059 * Fixed more bugs with logging. The sanest way to do it was to add
6949 to @log a 'mode' parameter. Killed two in one shot (this mode
7060 to @log a 'mode' parameter. Killed two in one shot (this mode
6950 option was a request of Janko's). I think it's finally clean
7061 option was a request of Janko's). I think it's finally clean
6951 (famous last words).
7062 (famous last words).
6952
7063
6953 * Added a page_dumb() pager which does a decent job of paging on
7064 * Added a page_dumb() pager which does a decent job of paging on
6954 screen, if better things (like less) aren't available. One less
7065 screen, if better things (like less) aren't available. One less
6955 unix dependency (someday maybe somebody will port this to
7066 unix dependency (someday maybe somebody will port this to
6956 windows).
7067 windows).
6957
7068
6958 * Fixed problem in magic_log: would lock of logging out if log
7069 * Fixed problem in magic_log: would lock of logging out if log
6959 creation failed (because it would still think it had succeeded).
7070 creation failed (because it would still think it had succeeded).
6960
7071
6961 * Improved the page() function using curses to auto-detect screen
7072 * Improved the page() function using curses to auto-detect screen
6962 size. Now it can make a much better decision on whether to print
7073 size. Now it can make a much better decision on whether to print
6963 or page a string. Option screen_length was modified: a value 0
7074 or page a string. Option screen_length was modified: a value 0
6964 means auto-detect, and that's the default now.
7075 means auto-detect, and that's the default now.
6965
7076
6966 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7077 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6967 go out. I'll test it for a few days, then talk to Janko about
7078 go out. I'll test it for a few days, then talk to Janko about
6968 licences and announce it.
7079 licences and announce it.
6969
7080
6970 * Fixed the length of the auto-generated ---> prompt which appears
7081 * Fixed the length of the auto-generated ---> prompt which appears
6971 for auto-parens and auto-quotes. Getting this right isn't trivial,
7082 for auto-parens and auto-quotes. Getting this right isn't trivial,
6972 with all the color escapes, different prompt types and optional
7083 with all the color escapes, different prompt types and optional
6973 separators. But it seems to be working in all the combinations.
7084 separators. But it seems to be working in all the combinations.
6974
7085
6975 2001-11-26 Fernando Perez <fperez@colorado.edu>
7086 2001-11-26 Fernando Perez <fperez@colorado.edu>
6976
7087
6977 * Wrote a regexp filter to get option types from the option names
7088 * Wrote a regexp filter to get option types from the option names
6978 string. This eliminates the need to manually keep two duplicate
7089 string. This eliminates the need to manually keep two duplicate
6979 lists.
7090 lists.
6980
7091
6981 * Removed the unneeded check_option_names. Now options are handled
7092 * Removed the unneeded check_option_names. Now options are handled
6982 in a much saner manner and it's easy to visually check that things
7093 in a much saner manner and it's easy to visually check that things
6983 are ok.
7094 are ok.
6984
7095
6985 * Updated version numbers on all files I modified to carry a
7096 * Updated version numbers on all files I modified to carry a
6986 notice so Janko and Nathan have clear version markers.
7097 notice so Janko and Nathan have clear version markers.
6987
7098
6988 * Updated docstring for ultraTB with my changes. I should send
7099 * Updated docstring for ultraTB with my changes. I should send
6989 this to Nathan.
7100 this to Nathan.
6990
7101
6991 * Lots of small fixes. Ran everything through pychecker again.
7102 * Lots of small fixes. Ran everything through pychecker again.
6992
7103
6993 * Made loading of deep_reload an cmd line option. If it's not too
7104 * Made loading of deep_reload an cmd line option. If it's not too
6994 kosher, now people can just disable it. With -nodeep_reload it's
7105 kosher, now people can just disable it. With -nodeep_reload it's
6995 still available as dreload(), it just won't overwrite reload().
7106 still available as dreload(), it just won't overwrite reload().
6996
7107
6997 * Moved many options to the no| form (-opt and -noopt
7108 * Moved many options to the no| form (-opt and -noopt
6998 accepted). Cleaner.
7109 accepted). Cleaner.
6999
7110
7000 * Changed magic_log so that if called with no parameters, it uses
7111 * Changed magic_log so that if called with no parameters, it uses
7001 'rotate' mode. That way auto-generated logs aren't automatically
7112 'rotate' mode. That way auto-generated logs aren't automatically
7002 over-written. For normal logs, now a backup is made if it exists
7113 over-written. For normal logs, now a backup is made if it exists
7003 (only 1 level of backups). A new 'backup' mode was added to the
7114 (only 1 level of backups). A new 'backup' mode was added to the
7004 Logger class to support this. This was a request by Janko.
7115 Logger class to support this. This was a request by Janko.
7005
7116
7006 * Added @logoff/@logon to stop/restart an active log.
7117 * Added @logoff/@logon to stop/restart an active log.
7007
7118
7008 * Fixed a lot of bugs in log saving/replay. It was pretty
7119 * Fixed a lot of bugs in log saving/replay. It was pretty
7009 broken. Now special lines (!@,/) appear properly in the command
7120 broken. Now special lines (!@,/) appear properly in the command
7010 history after a log replay.
7121 history after a log replay.
7011
7122
7012 * Tried and failed to implement full session saving via pickle. My
7123 * Tried and failed to implement full session saving via pickle. My
7013 idea was to pickle __main__.__dict__, but modules can't be
7124 idea was to pickle __main__.__dict__, but modules can't be
7014 pickled. This would be a better alternative to replaying logs, but
7125 pickled. This would be a better alternative to replaying logs, but
7015 seems quite tricky to get to work. Changed -session to be called
7126 seems quite tricky to get to work. Changed -session to be called
7016 -logplay, which more accurately reflects what it does. And if we
7127 -logplay, which more accurately reflects what it does. And if we
7017 ever get real session saving working, -session is now available.
7128 ever get real session saving working, -session is now available.
7018
7129
7019 * Implemented color schemes for prompts also. As for tracebacks,
7130 * Implemented color schemes for prompts also. As for tracebacks,
7020 currently only NoColor and Linux are supported. But now the
7131 currently only NoColor and Linux are supported. But now the
7021 infrastructure is in place, based on a generic ColorScheme
7132 infrastructure is in place, based on a generic ColorScheme
7022 class. So writing and activating new schemes both for the prompts
7133 class. So writing and activating new schemes both for the prompts
7023 and the tracebacks should be straightforward.
7134 and the tracebacks should be straightforward.
7024
7135
7025 * Version 0.1.13 released, 0.1.14 opened.
7136 * Version 0.1.13 released, 0.1.14 opened.
7026
7137
7027 * Changed handling of options for output cache. Now counter is
7138 * Changed handling of options for output cache. Now counter is
7028 hardwired starting at 1 and one specifies the maximum number of
7139 hardwired starting at 1 and one specifies the maximum number of
7029 entries *in the outcache* (not the max prompt counter). This is
7140 entries *in the outcache* (not the max prompt counter). This is
7030 much better, since many statements won't increase the cache
7141 much better, since many statements won't increase the cache
7031 count. It also eliminated some confusing options, now there's only
7142 count. It also eliminated some confusing options, now there's only
7032 one: cache_size.
7143 one: cache_size.
7033
7144
7034 * Added 'alias' magic function and magic_alias option in the
7145 * Added 'alias' magic function and magic_alias option in the
7035 ipythonrc file. Now the user can easily define whatever names he
7146 ipythonrc file. Now the user can easily define whatever names he
7036 wants for the magic functions without having to play weird
7147 wants for the magic functions without having to play weird
7037 namespace games. This gives IPython a real shell-like feel.
7148 namespace games. This gives IPython a real shell-like feel.
7038
7149
7039 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7150 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7040 @ or not).
7151 @ or not).
7041
7152
7042 This was one of the last remaining 'visible' bugs (that I know
7153 This was one of the last remaining 'visible' bugs (that I know
7043 of). I think if I can clean up the session loading so it works
7154 of). I think if I can clean up the session loading so it works
7044 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7155 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7045 about licensing).
7156 about licensing).
7046
7157
7047 2001-11-25 Fernando Perez <fperez@colorado.edu>
7158 2001-11-25 Fernando Perez <fperez@colorado.edu>
7048
7159
7049 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7160 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7050 there's a cleaner distinction between what ? and ?? show.
7161 there's a cleaner distinction between what ? and ?? show.
7051
7162
7052 * Added screen_length option. Now the user can define his own
7163 * Added screen_length option. Now the user can define his own
7053 screen size for page() operations.
7164 screen size for page() operations.
7054
7165
7055 * Implemented magic shell-like functions with automatic code
7166 * Implemented magic shell-like functions with automatic code
7056 generation. Now adding another function is just a matter of adding
7167 generation. Now adding another function is just a matter of adding
7057 an entry to a dict, and the function is dynamically generated at
7168 an entry to a dict, and the function is dynamically generated at
7058 run-time. Python has some really cool features!
7169 run-time. Python has some really cool features!
7059
7170
7060 * Renamed many options to cleanup conventions a little. Now all
7171 * Renamed many options to cleanup conventions a little. Now all
7061 are lowercase, and only underscores where needed. Also in the code
7172 are lowercase, and only underscores where needed. Also in the code
7062 option name tables are clearer.
7173 option name tables are clearer.
7063
7174
7064 * Changed prompts a little. Now input is 'In [n]:' instead of
7175 * Changed prompts a little. Now input is 'In [n]:' instead of
7065 'In[n]:='. This allows it the numbers to be aligned with the
7176 'In[n]:='. This allows it the numbers to be aligned with the
7066 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7177 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7067 Python (it was a Mathematica thing). The '...' continuation prompt
7178 Python (it was a Mathematica thing). The '...' continuation prompt
7068 was also changed a little to align better.
7179 was also changed a little to align better.
7069
7180
7070 * Fixed bug when flushing output cache. Not all _p<n> variables
7181 * Fixed bug when flushing output cache. Not all _p<n> variables
7071 exist, so their deletion needs to be wrapped in a try:
7182 exist, so their deletion needs to be wrapped in a try:
7072
7183
7073 * Figured out how to properly use inspect.formatargspec() (it
7184 * Figured out how to properly use inspect.formatargspec() (it
7074 requires the args preceded by *). So I removed all the code from
7185 requires the args preceded by *). So I removed all the code from
7075 _get_pdef in Magic, which was just replicating that.
7186 _get_pdef in Magic, which was just replicating that.
7076
7187
7077 * Added test to prefilter to allow redefining magic function names
7188 * Added test to prefilter to allow redefining magic function names
7078 as variables. This is ok, since the @ form is always available,
7189 as variables. This is ok, since the @ form is always available,
7079 but whe should allow the user to define a variable called 'ls' if
7190 but whe should allow the user to define a variable called 'ls' if
7080 he needs it.
7191 he needs it.
7081
7192
7082 * Moved the ToDo information from README into a separate ToDo.
7193 * Moved the ToDo information from README into a separate ToDo.
7083
7194
7084 * General code cleanup and small bugfixes. I think it's close to a
7195 * General code cleanup and small bugfixes. I think it's close to a
7085 state where it can be released, obviously with a big 'beta'
7196 state where it can be released, obviously with a big 'beta'
7086 warning on it.
7197 warning on it.
7087
7198
7088 * Got the magic function split to work. Now all magics are defined
7199 * Got the magic function split to work. Now all magics are defined
7089 in a separate class. It just organizes things a bit, and now
7200 in a separate class. It just organizes things a bit, and now
7090 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7201 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7091 was too long).
7202 was too long).
7092
7203
7093 * Changed @clear to @reset to avoid potential confusions with
7204 * Changed @clear to @reset to avoid potential confusions with
7094 the shell command clear. Also renamed @cl to @clear, which does
7205 the shell command clear. Also renamed @cl to @clear, which does
7095 exactly what people expect it to from their shell experience.
7206 exactly what people expect it to from their shell experience.
7096
7207
7097 Added a check to the @reset command (since it's so
7208 Added a check to the @reset command (since it's so
7098 destructive, it's probably a good idea to ask for confirmation).
7209 destructive, it's probably a good idea to ask for confirmation).
7099 But now reset only works for full namespace resetting. Since the
7210 But now reset only works for full namespace resetting. Since the
7100 del keyword is already there for deleting a few specific
7211 del keyword is already there for deleting a few specific
7101 variables, I don't see the point of having a redundant magic
7212 variables, I don't see the point of having a redundant magic
7102 function for the same task.
7213 function for the same task.
7103
7214
7104 2001-11-24 Fernando Perez <fperez@colorado.edu>
7215 2001-11-24 Fernando Perez <fperez@colorado.edu>
7105
7216
7106 * Updated the builtin docs (esp. the ? ones).
7217 * Updated the builtin docs (esp. the ? ones).
7107
7218
7108 * Ran all the code through pychecker. Not terribly impressed with
7219 * Ran all the code through pychecker. Not terribly impressed with
7109 it: lots of spurious warnings and didn't really find anything of
7220 it: lots of spurious warnings and didn't really find anything of
7110 substance (just a few modules being imported and not used).
7221 substance (just a few modules being imported and not used).
7111
7222
7112 * Implemented the new ultraTB functionality into IPython. New
7223 * Implemented the new ultraTB functionality into IPython. New
7113 option: xcolors. This chooses color scheme. xmode now only selects
7224 option: xcolors. This chooses color scheme. xmode now only selects
7114 between Plain and Verbose. Better orthogonality.
7225 between Plain and Verbose. Better orthogonality.
7115
7226
7116 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7227 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7117 mode and color scheme for the exception handlers. Now it's
7228 mode and color scheme for the exception handlers. Now it's
7118 possible to have the verbose traceback with no coloring.
7229 possible to have the verbose traceback with no coloring.
7119
7230
7120 2001-11-23 Fernando Perez <fperez@colorado.edu>
7231 2001-11-23 Fernando Perez <fperez@colorado.edu>
7121
7232
7122 * Version 0.1.12 released, 0.1.13 opened.
7233 * Version 0.1.12 released, 0.1.13 opened.
7123
7234
7124 * Removed option to set auto-quote and auto-paren escapes by
7235 * Removed option to set auto-quote and auto-paren escapes by
7125 user. The chances of breaking valid syntax are just too high. If
7236 user. The chances of breaking valid syntax are just too high. If
7126 someone *really* wants, they can always dig into the code.
7237 someone *really* wants, they can always dig into the code.
7127
7238
7128 * Made prompt separators configurable.
7239 * Made prompt separators configurable.
7129
7240
7130 2001-11-22 Fernando Perez <fperez@colorado.edu>
7241 2001-11-22 Fernando Perez <fperez@colorado.edu>
7131
7242
7132 * Small bugfixes in many places.
7243 * Small bugfixes in many places.
7133
7244
7134 * Removed the MyCompleter class from ipplib. It seemed redundant
7245 * Removed the MyCompleter class from ipplib. It seemed redundant
7135 with the C-p,C-n history search functionality. Less code to
7246 with the C-p,C-n history search functionality. Less code to
7136 maintain.
7247 maintain.
7137
7248
7138 * Moved all the original ipython.py code into ipythonlib.py. Right
7249 * Moved all the original ipython.py code into ipythonlib.py. Right
7139 now it's just one big dump into a function called make_IPython, so
7250 now it's just one big dump into a function called make_IPython, so
7140 no real modularity has been gained. But at least it makes the
7251 no real modularity has been gained. But at least it makes the
7141 wrapper script tiny, and since ipythonlib is a module, it gets
7252 wrapper script tiny, and since ipythonlib is a module, it gets
7142 compiled and startup is much faster.
7253 compiled and startup is much faster.
7143
7254
7144 This is a reasobably 'deep' change, so we should test it for a
7255 This is a reasobably 'deep' change, so we should test it for a
7145 while without messing too much more with the code.
7256 while without messing too much more with the code.
7146
7257
7147 2001-11-21 Fernando Perez <fperez@colorado.edu>
7258 2001-11-21 Fernando Perez <fperez@colorado.edu>
7148
7259
7149 * Version 0.1.11 released, 0.1.12 opened for further work.
7260 * Version 0.1.11 released, 0.1.12 opened for further work.
7150
7261
7151 * Removed dependency on Itpl. It was only needed in one place. It
7262 * Removed dependency on Itpl. It was only needed in one place. It
7152 would be nice if this became part of python, though. It makes life
7263 would be nice if this became part of python, though. It makes life
7153 *a lot* easier in some cases.
7264 *a lot* easier in some cases.
7154
7265
7155 * Simplified the prefilter code a bit. Now all handlers are
7266 * Simplified the prefilter code a bit. Now all handlers are
7156 expected to explicitly return a value (at least a blank string).
7267 expected to explicitly return a value (at least a blank string).
7157
7268
7158 * Heavy edits in ipplib. Removed the help system altogether. Now
7269 * Heavy edits in ipplib. Removed the help system altogether. Now
7159 obj?/?? is used for inspecting objects, a magic @doc prints
7270 obj?/?? is used for inspecting objects, a magic @doc prints
7160 docstrings, and full-blown Python help is accessed via the 'help'
7271 docstrings, and full-blown Python help is accessed via the 'help'
7161 keyword. This cleans up a lot of code (less to maintain) and does
7272 keyword. This cleans up a lot of code (less to maintain) and does
7162 the job. Since 'help' is now a standard Python component, might as
7273 the job. Since 'help' is now a standard Python component, might as
7163 well use it and remove duplicate functionality.
7274 well use it and remove duplicate functionality.
7164
7275
7165 Also removed the option to use ipplib as a standalone program. By
7276 Also removed the option to use ipplib as a standalone program. By
7166 now it's too dependent on other parts of IPython to function alone.
7277 now it's too dependent on other parts of IPython to function alone.
7167
7278
7168 * Fixed bug in genutils.pager. It would crash if the pager was
7279 * Fixed bug in genutils.pager. It would crash if the pager was
7169 exited immediately after opening (broken pipe).
7280 exited immediately after opening (broken pipe).
7170
7281
7171 * Trimmed down the VerboseTB reporting a little. The header is
7282 * Trimmed down the VerboseTB reporting a little. The header is
7172 much shorter now and the repeated exception arguments at the end
7283 much shorter now and the repeated exception arguments at the end
7173 have been removed. For interactive use the old header seemed a bit
7284 have been removed. For interactive use the old header seemed a bit
7174 excessive.
7285 excessive.
7175
7286
7176 * Fixed small bug in output of @whos for variables with multi-word
7287 * Fixed small bug in output of @whos for variables with multi-word
7177 types (only first word was displayed).
7288 types (only first word was displayed).
7178
7289
7179 2001-11-17 Fernando Perez <fperez@colorado.edu>
7290 2001-11-17 Fernando Perez <fperez@colorado.edu>
7180
7291
7181 * Version 0.1.10 released, 0.1.11 opened for further work.
7292 * Version 0.1.10 released, 0.1.11 opened for further work.
7182
7293
7183 * Modified dirs and friends. dirs now *returns* the stack (not
7294 * Modified dirs and friends. dirs now *returns* the stack (not
7184 prints), so one can manipulate it as a variable. Convenient to
7295 prints), so one can manipulate it as a variable. Convenient to
7185 travel along many directories.
7296 travel along many directories.
7186
7297
7187 * Fixed bug in magic_pdef: would only work with functions with
7298 * Fixed bug in magic_pdef: would only work with functions with
7188 arguments with default values.
7299 arguments with default values.
7189
7300
7190 2001-11-14 Fernando Perez <fperez@colorado.edu>
7301 2001-11-14 Fernando Perez <fperez@colorado.edu>
7191
7302
7192 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7303 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7193 example with IPython. Various other minor fixes and cleanups.
7304 example with IPython. Various other minor fixes and cleanups.
7194
7305
7195 * Version 0.1.9 released, 0.1.10 opened for further work.
7306 * Version 0.1.9 released, 0.1.10 opened for further work.
7196
7307
7197 * Added sys.path to the list of directories searched in the
7308 * Added sys.path to the list of directories searched in the
7198 execfile= option. It used to be the current directory and the
7309 execfile= option. It used to be the current directory and the
7199 user's IPYTHONDIR only.
7310 user's IPYTHONDIR only.
7200
7311
7201 2001-11-13 Fernando Perez <fperez@colorado.edu>
7312 2001-11-13 Fernando Perez <fperez@colorado.edu>
7202
7313
7203 * Reinstated the raw_input/prefilter separation that Janko had
7314 * Reinstated the raw_input/prefilter separation that Janko had
7204 initially. This gives a more convenient setup for extending the
7315 initially. This gives a more convenient setup for extending the
7205 pre-processor from the outside: raw_input always gets a string,
7316 pre-processor from the outside: raw_input always gets a string,
7206 and prefilter has to process it. We can then redefine prefilter
7317 and prefilter has to process it. We can then redefine prefilter
7207 from the outside and implement extensions for special
7318 from the outside and implement extensions for special
7208 purposes.
7319 purposes.
7209
7320
7210 Today I got one for inputting PhysicalQuantity objects
7321 Today I got one for inputting PhysicalQuantity objects
7211 (from Scientific) without needing any function calls at
7322 (from Scientific) without needing any function calls at
7212 all. Extremely convenient, and it's all done as a user-level
7323 all. Extremely convenient, and it's all done as a user-level
7213 extension (no IPython code was touched). Now instead of:
7324 extension (no IPython code was touched). Now instead of:
7214 a = PhysicalQuantity(4.2,'m/s**2')
7325 a = PhysicalQuantity(4.2,'m/s**2')
7215 one can simply say
7326 one can simply say
7216 a = 4.2 m/s**2
7327 a = 4.2 m/s**2
7217 or even
7328 or even
7218 a = 4.2 m/s^2
7329 a = 4.2 m/s^2
7219
7330
7220 I use this, but it's also a proof of concept: IPython really is
7331 I use this, but it's also a proof of concept: IPython really is
7221 fully user-extensible, even at the level of the parsing of the
7332 fully user-extensible, even at the level of the parsing of the
7222 command line. It's not trivial, but it's perfectly doable.
7333 command line. It's not trivial, but it's perfectly doable.
7223
7334
7224 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7335 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7225 the problem of modules being loaded in the inverse order in which
7336 the problem of modules being loaded in the inverse order in which
7226 they were defined in
7337 they were defined in
7227
7338
7228 * Version 0.1.8 released, 0.1.9 opened for further work.
7339 * Version 0.1.8 released, 0.1.9 opened for further work.
7229
7340
7230 * Added magics pdef, source and file. They respectively show the
7341 * Added magics pdef, source and file. They respectively show the
7231 definition line ('prototype' in C), source code and full python
7342 definition line ('prototype' in C), source code and full python
7232 file for any callable object. The object inspector oinfo uses
7343 file for any callable object. The object inspector oinfo uses
7233 these to show the same information.
7344 these to show the same information.
7234
7345
7235 * Version 0.1.7 released, 0.1.8 opened for further work.
7346 * Version 0.1.7 released, 0.1.8 opened for further work.
7236
7347
7237 * Separated all the magic functions into a class called Magic. The
7348 * Separated all the magic functions into a class called Magic. The
7238 InteractiveShell class was becoming too big for Xemacs to handle
7349 InteractiveShell class was becoming too big for Xemacs to handle
7239 (de-indenting a line would lock it up for 10 seconds while it
7350 (de-indenting a line would lock it up for 10 seconds while it
7240 backtracked on the whole class!)
7351 backtracked on the whole class!)
7241
7352
7242 FIXME: didn't work. It can be done, but right now namespaces are
7353 FIXME: didn't work. It can be done, but right now namespaces are
7243 all messed up. Do it later (reverted it for now, so at least
7354 all messed up. Do it later (reverted it for now, so at least
7244 everything works as before).
7355 everything works as before).
7245
7356
7246 * Got the object introspection system (magic_oinfo) working! I
7357 * Got the object introspection system (magic_oinfo) working! I
7247 think this is pretty much ready for release to Janko, so he can
7358 think this is pretty much ready for release to Janko, so he can
7248 test it for a while and then announce it. Pretty much 100% of what
7359 test it for a while and then announce it. Pretty much 100% of what
7249 I wanted for the 'phase 1' release is ready. Happy, tired.
7360 I wanted for the 'phase 1' release is ready. Happy, tired.
7250
7361
7251 2001-11-12 Fernando Perez <fperez@colorado.edu>
7362 2001-11-12 Fernando Perez <fperez@colorado.edu>
7252
7363
7253 * Version 0.1.6 released, 0.1.7 opened for further work.
7364 * Version 0.1.6 released, 0.1.7 opened for further work.
7254
7365
7255 * Fixed bug in printing: it used to test for truth before
7366 * Fixed bug in printing: it used to test for truth before
7256 printing, so 0 wouldn't print. Now checks for None.
7367 printing, so 0 wouldn't print. Now checks for None.
7257
7368
7258 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7369 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7259 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7370 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7260 reaches by hand into the outputcache. Think of a better way to do
7371 reaches by hand into the outputcache. Think of a better way to do
7261 this later.
7372 this later.
7262
7373
7263 * Various small fixes thanks to Nathan's comments.
7374 * Various small fixes thanks to Nathan's comments.
7264
7375
7265 * Changed magic_pprint to magic_Pprint. This way it doesn't
7376 * Changed magic_pprint to magic_Pprint. This way it doesn't
7266 collide with pprint() and the name is consistent with the command
7377 collide with pprint() and the name is consistent with the command
7267 line option.
7378 line option.
7268
7379
7269 * Changed prompt counter behavior to be fully like
7380 * Changed prompt counter behavior to be fully like
7270 Mathematica's. That is, even input that doesn't return a result
7381 Mathematica's. That is, even input that doesn't return a result
7271 raises the prompt counter. The old behavior was kind of confusing
7382 raises the prompt counter. The old behavior was kind of confusing
7272 (getting the same prompt number several times if the operation
7383 (getting the same prompt number several times if the operation
7273 didn't return a result).
7384 didn't return a result).
7274
7385
7275 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7386 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7276
7387
7277 * Fixed -Classic mode (wasn't working anymore).
7388 * Fixed -Classic mode (wasn't working anymore).
7278
7389
7279 * Added colored prompts using Nathan's new code. Colors are
7390 * Added colored prompts using Nathan's new code. Colors are
7280 currently hardwired, they can be user-configurable. For
7391 currently hardwired, they can be user-configurable. For
7281 developers, they can be chosen in file ipythonlib.py, at the
7392 developers, they can be chosen in file ipythonlib.py, at the
7282 beginning of the CachedOutput class def.
7393 beginning of the CachedOutput class def.
7283
7394
7284 2001-11-11 Fernando Perez <fperez@colorado.edu>
7395 2001-11-11 Fernando Perez <fperez@colorado.edu>
7285
7396
7286 * Version 0.1.5 released, 0.1.6 opened for further work.
7397 * Version 0.1.5 released, 0.1.6 opened for further work.
7287
7398
7288 * Changed magic_env to *return* the environment as a dict (not to
7399 * Changed magic_env to *return* the environment as a dict (not to
7289 print it). This way it prints, but it can also be processed.
7400 print it). This way it prints, but it can also be processed.
7290
7401
7291 * Added Verbose exception reporting to interactive
7402 * Added Verbose exception reporting to interactive
7292 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7403 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7293 traceback. Had to make some changes to the ultraTB file. This is
7404 traceback. Had to make some changes to the ultraTB file. This is
7294 probably the last 'big' thing in my mental todo list. This ties
7405 probably the last 'big' thing in my mental todo list. This ties
7295 in with the next entry:
7406 in with the next entry:
7296
7407
7297 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7408 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7298 has to specify is Plain, Color or Verbose for all exception
7409 has to specify is Plain, Color or Verbose for all exception
7299 handling.
7410 handling.
7300
7411
7301 * Removed ShellServices option. All this can really be done via
7412 * Removed ShellServices option. All this can really be done via
7302 the magic system. It's easier to extend, cleaner and has automatic
7413 the magic system. It's easier to extend, cleaner and has automatic
7303 namespace protection and documentation.
7414 namespace protection and documentation.
7304
7415
7305 2001-11-09 Fernando Perez <fperez@colorado.edu>
7416 2001-11-09 Fernando Perez <fperez@colorado.edu>
7306
7417
7307 * Fixed bug in output cache flushing (missing parameter to
7418 * Fixed bug in output cache flushing (missing parameter to
7308 __init__). Other small bugs fixed (found using pychecker).
7419 __init__). Other small bugs fixed (found using pychecker).
7309
7420
7310 * Version 0.1.4 opened for bugfixing.
7421 * Version 0.1.4 opened for bugfixing.
7311
7422
7312 2001-11-07 Fernando Perez <fperez@colorado.edu>
7423 2001-11-07 Fernando Perez <fperez@colorado.edu>
7313
7424
7314 * Version 0.1.3 released, mainly because of the raw_input bug.
7425 * Version 0.1.3 released, mainly because of the raw_input bug.
7315
7426
7316 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7427 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7317 and when testing for whether things were callable, a call could
7428 and when testing for whether things were callable, a call could
7318 actually be made to certain functions. They would get called again
7429 actually be made to certain functions. They would get called again
7319 once 'really' executed, with a resulting double call. A disaster
7430 once 'really' executed, with a resulting double call. A disaster
7320 in many cases (list.reverse() would never work!).
7431 in many cases (list.reverse() would never work!).
7321
7432
7322 * Removed prefilter() function, moved its code to raw_input (which
7433 * Removed prefilter() function, moved its code to raw_input (which
7323 after all was just a near-empty caller for prefilter). This saves
7434 after all was just a near-empty caller for prefilter). This saves
7324 a function call on every prompt, and simplifies the class a tiny bit.
7435 a function call on every prompt, and simplifies the class a tiny bit.
7325
7436
7326 * Fix _ip to __ip name in magic example file.
7437 * Fix _ip to __ip name in magic example file.
7327
7438
7328 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7439 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7329 work with non-gnu versions of tar.
7440 work with non-gnu versions of tar.
7330
7441
7331 2001-11-06 Fernando Perez <fperez@colorado.edu>
7442 2001-11-06 Fernando Perez <fperez@colorado.edu>
7332
7443
7333 * Version 0.1.2. Just to keep track of the recent changes.
7444 * Version 0.1.2. Just to keep track of the recent changes.
7334
7445
7335 * Fixed nasty bug in output prompt routine. It used to check 'if
7446 * Fixed nasty bug in output prompt routine. It used to check 'if
7336 arg != None...'. Problem is, this fails if arg implements a
7447 arg != None...'. Problem is, this fails if arg implements a
7337 special comparison (__cmp__) which disallows comparing to
7448 special comparison (__cmp__) which disallows comparing to
7338 None. Found it when trying to use the PhysicalQuantity module from
7449 None. Found it when trying to use the PhysicalQuantity module from
7339 ScientificPython.
7450 ScientificPython.
7340
7451
7341 2001-11-05 Fernando Perez <fperez@colorado.edu>
7452 2001-11-05 Fernando Perez <fperez@colorado.edu>
7342
7453
7343 * Also added dirs. Now the pushd/popd/dirs family functions
7454 * Also added dirs. Now the pushd/popd/dirs family functions
7344 basically like the shell, with the added convenience of going home
7455 basically like the shell, with the added convenience of going home
7345 when called with no args.
7456 when called with no args.
7346
7457
7347 * pushd/popd slightly modified to mimic shell behavior more
7458 * pushd/popd slightly modified to mimic shell behavior more
7348 closely.
7459 closely.
7349
7460
7350 * Added env,pushd,popd from ShellServices as magic functions. I
7461 * Added env,pushd,popd from ShellServices as magic functions. I
7351 think the cleanest will be to port all desired functions from
7462 think the cleanest will be to port all desired functions from
7352 ShellServices as magics and remove ShellServices altogether. This
7463 ShellServices as magics and remove ShellServices altogether. This
7353 will provide a single, clean way of adding functionality
7464 will provide a single, clean way of adding functionality
7354 (shell-type or otherwise) to IP.
7465 (shell-type or otherwise) to IP.
7355
7466
7356 2001-11-04 Fernando Perez <fperez@colorado.edu>
7467 2001-11-04 Fernando Perez <fperez@colorado.edu>
7357
7468
7358 * Added .ipython/ directory to sys.path. This way users can keep
7469 * Added .ipython/ directory to sys.path. This way users can keep
7359 customizations there and access them via import.
7470 customizations there and access them via import.
7360
7471
7361 2001-11-03 Fernando Perez <fperez@colorado.edu>
7472 2001-11-03 Fernando Perez <fperez@colorado.edu>
7362
7473
7363 * Opened version 0.1.1 for new changes.
7474 * Opened version 0.1.1 for new changes.
7364
7475
7365 * Changed version number to 0.1.0: first 'public' release, sent to
7476 * Changed version number to 0.1.0: first 'public' release, sent to
7366 Nathan and Janko.
7477 Nathan and Janko.
7367
7478
7368 * Lots of small fixes and tweaks.
7479 * Lots of small fixes and tweaks.
7369
7480
7370 * Minor changes to whos format. Now strings are shown, snipped if
7481 * Minor changes to whos format. Now strings are shown, snipped if
7371 too long.
7482 too long.
7372
7483
7373 * Changed ShellServices to work on __main__ so they show up in @who
7484 * Changed ShellServices to work on __main__ so they show up in @who
7374
7485
7375 * Help also works with ? at the end of a line:
7486 * Help also works with ? at the end of a line:
7376 ?sin and sin?
7487 ?sin and sin?
7377 both produce the same effect. This is nice, as often I use the
7488 both produce the same effect. This is nice, as often I use the
7378 tab-complete to find the name of a method, but I used to then have
7489 tab-complete to find the name of a method, but I used to then have
7379 to go to the beginning of the line to put a ? if I wanted more
7490 to go to the beginning of the line to put a ? if I wanted more
7380 info. Now I can just add the ? and hit return. Convenient.
7491 info. Now I can just add the ? and hit return. Convenient.
7381
7492
7382 2001-11-02 Fernando Perez <fperez@colorado.edu>
7493 2001-11-02 Fernando Perez <fperez@colorado.edu>
7383
7494
7384 * Python version check (>=2.1) added.
7495 * Python version check (>=2.1) added.
7385
7496
7386 * Added LazyPython documentation. At this point the docs are quite
7497 * Added LazyPython documentation. At this point the docs are quite
7387 a mess. A cleanup is in order.
7498 a mess. A cleanup is in order.
7388
7499
7389 * Auto-installer created. For some bizarre reason, the zipfiles
7500 * Auto-installer created. For some bizarre reason, the zipfiles
7390 module isn't working on my system. So I made a tar version
7501 module isn't working on my system. So I made a tar version
7391 (hopefully the command line options in various systems won't kill
7502 (hopefully the command line options in various systems won't kill
7392 me).
7503 me).
7393
7504
7394 * Fixes to Struct in genutils. Now all dictionary-like methods are
7505 * Fixes to Struct in genutils. Now all dictionary-like methods are
7395 protected (reasonably).
7506 protected (reasonably).
7396
7507
7397 * Added pager function to genutils and changed ? to print usage
7508 * Added pager function to genutils and changed ? to print usage
7398 note through it (it was too long).
7509 note through it (it was too long).
7399
7510
7400 * Added the LazyPython functionality. Works great! I changed the
7511 * Added the LazyPython functionality. Works great! I changed the
7401 auto-quote escape to ';', it's on home row and next to '. But
7512 auto-quote escape to ';', it's on home row and next to '. But
7402 both auto-quote and auto-paren (still /) escapes are command-line
7513 both auto-quote and auto-paren (still /) escapes are command-line
7403 parameters.
7514 parameters.
7404
7515
7405
7516
7406 2001-11-01 Fernando Perez <fperez@colorado.edu>
7517 2001-11-01 Fernando Perez <fperez@colorado.edu>
7407
7518
7408 * Version changed to 0.0.7. Fairly large change: configuration now
7519 * Version changed to 0.0.7. Fairly large change: configuration now
7409 is all stored in a directory, by default .ipython. There, all
7520 is all stored in a directory, by default .ipython. There, all
7410 config files have normal looking names (not .names)
7521 config files have normal looking names (not .names)
7411
7522
7412 * Version 0.0.6 Released first to Lucas and Archie as a test
7523 * Version 0.0.6 Released first to Lucas and Archie as a test
7413 run. Since it's the first 'semi-public' release, change version to
7524 run. Since it's the first 'semi-public' release, change version to
7414 > 0.0.6 for any changes now.
7525 > 0.0.6 for any changes now.
7415
7526
7416 * Stuff I had put in the ipplib.py changelog:
7527 * Stuff I had put in the ipplib.py changelog:
7417
7528
7418 Changes to InteractiveShell:
7529 Changes to InteractiveShell:
7419
7530
7420 - Made the usage message a parameter.
7531 - Made the usage message a parameter.
7421
7532
7422 - Require the name of the shell variable to be given. It's a bit
7533 - Require the name of the shell variable to be given. It's a bit
7423 of a hack, but allows the name 'shell' not to be hardwired in the
7534 of a hack, but allows the name 'shell' not to be hardwired in the
7424 magic (@) handler, which is problematic b/c it requires
7535 magic (@) handler, which is problematic b/c it requires
7425 polluting the global namespace with 'shell'. This in turn is
7536 polluting the global namespace with 'shell'. This in turn is
7426 fragile: if a user redefines a variable called shell, things
7537 fragile: if a user redefines a variable called shell, things
7427 break.
7538 break.
7428
7539
7429 - magic @: all functions available through @ need to be defined
7540 - magic @: all functions available through @ need to be defined
7430 as magic_<name>, even though they can be called simply as
7541 as magic_<name>, even though they can be called simply as
7431 @<name>. This allows the special command @magic to gather
7542 @<name>. This allows the special command @magic to gather
7432 information automatically about all existing magic functions,
7543 information automatically about all existing magic functions,
7433 even if they are run-time user extensions, by parsing the shell
7544 even if they are run-time user extensions, by parsing the shell
7434 instance __dict__ looking for special magic_ names.
7545 instance __dict__ looking for special magic_ names.
7435
7546
7436 - mainloop: added *two* local namespace parameters. This allows
7547 - mainloop: added *two* local namespace parameters. This allows
7437 the class to differentiate between parameters which were there
7548 the class to differentiate between parameters which were there
7438 before and after command line initialization was processed. This
7549 before and after command line initialization was processed. This
7439 way, later @who can show things loaded at startup by the
7550 way, later @who can show things loaded at startup by the
7440 user. This trick was necessary to make session saving/reloading
7551 user. This trick was necessary to make session saving/reloading
7441 really work: ideally after saving/exiting/reloading a session,
7552 really work: ideally after saving/exiting/reloading a session,
7442 *everything* should look the same, including the output of @who. I
7553 *everything* should look the same, including the output of @who. I
7443 was only able to make this work with this double namespace
7554 was only able to make this work with this double namespace
7444 trick.
7555 trick.
7445
7556
7446 - added a header to the logfile which allows (almost) full
7557 - added a header to the logfile which allows (almost) full
7447 session restoring.
7558 session restoring.
7448
7559
7449 - prepend lines beginning with @ or !, with a and log
7560 - prepend lines beginning with @ or !, with a and log
7450 them. Why? !lines: may be useful to know what you did @lines:
7561 them. Why? !lines: may be useful to know what you did @lines:
7451 they may affect session state. So when restoring a session, at
7562 they may affect session state. So when restoring a session, at
7452 least inform the user of their presence. I couldn't quite get
7563 least inform the user of their presence. I couldn't quite get
7453 them to properly re-execute, but at least the user is warned.
7564 them to properly re-execute, but at least the user is warned.
7454
7565
7455 * Started ChangeLog.
7566 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now