##// END OF EJS Templates
changelog
Ville M. Vainio -
Show More
@@ -1,7452 +1,7455 b''
1 2008-02-20 Ville Vainio <vivainio@gmail.com>
1 2008-02-20 Ville Vainio <vivainio@gmail.com>
2
2
3 * completer.py: do not treat [](){} as protectable chars anymore
3 * completer.py: do not treat [](){} as protectable chars anymore
4
5 * magic.py, test_cpaste.py: Allow different prefix for pasting
6 from email
4
7
5 2008-02-17 Ville Vainio <vivainio@gmail.com>
8 2008-02-17 Ville Vainio <vivainio@gmail.com>
6
9
7 * Switched over to Launchpad/bzr as primary VCS.
10 * Switched over to Launchpad/bzr as primary VCS.
8
11
9 2008-02-14 Ville Vainio <vivainio@gmail.com>
12 2008-02-14 Ville Vainio <vivainio@gmail.com>
10
13
11 * ipapi.py: _ip.runlines() is now much more liberal about
14 * ipapi.py: _ip.runlines() is now much more liberal about
12 indentation - it cleans up the scripts it gets
15 indentation - it cleans up the scripts it gets
13
16
14 2008-02-14 Ville Vainio <vivainio@gmail.com>
17 2008-02-14 Ville Vainio <vivainio@gmail.com>
15
18
16 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
19 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
17 Changes to it (later on) are too numerous to list in ChangeLog
20 Changes to it (later on) are too numerous to list in ChangeLog
18 until it stabilizes
21 until it stabilizes
19
22
20 2008-02-07 Darren Dale <darren.dale@cornell.edu>
23 2008-02-07 Darren Dale <darren.dale@cornell.edu>
21
24
22 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
25 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
23 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
26 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
24 interaction in the interpreter (like Tkinter does), but it seems to
27 interaction in the interpreter (like Tkinter does), but it seems to
25 partially interfere with the IPython implementation and exec_()
28 partially interfere with the IPython implementation and exec_()
26 still seems to block. So we disable the PyQt implementation and
29 still seems to block. So we disable the PyQt implementation and
27 stick with the IPython one for now.
30 stick with the IPython one for now.
28
31
29 2008-02-02 Walter Doerwald <walter@livinglogic.de>
32 2008-02-02 Walter Doerwald <walter@livinglogic.de>
30
33
31 * ipipe.py: A new ipipe table has been added: ialias produces all
34 * ipipe.py: A new ipipe table has been added: ialias produces all
32 entries from IPython's alias table.
35 entries from IPython's alias table.
33
36
34 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
37 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
35
38
36 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
39 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
37 of KBINT in threaded shells. After code provided by Marc in #212.
40 of KBINT in threaded shells. After code provided by Marc in #212.
38
41
39 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
42 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
40
43
41 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
44 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
42 that could occur due to a race condition in threaded shells.
45 that could occur due to a race condition in threaded shells.
43 Thanks to code provided by Marc, as #210.
46 Thanks to code provided by Marc, as #210.
44
47
45 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
48 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
46
49
47 * IPython/Magic.py (magic_doctest_mode): respect the user's
50 * IPython/Magic.py (magic_doctest_mode): respect the user's
48 settings for input separators rather than overriding them. After
51 settings for input separators rather than overriding them. After
49 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
52 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
50
53
51 * IPython/history.py (magic_history): Add support for declaring an
54 * IPython/history.py (magic_history): Add support for declaring an
52 output file directly from the history command.
55 output file directly from the history command.
53
56
54 2008-01-21 Walter Doerwald <walter@livinglogic.de>
57 2008-01-21 Walter Doerwald <walter@livinglogic.de>
55
58
56 * ipipe.py: Register ipipe's displayhooks via the generic function
59 * ipipe.py: Register ipipe's displayhooks via the generic function
57 generics.result_display() instead of using ipapi.set_hook().
60 generics.result_display() instead of using ipapi.set_hook().
58
61
59 2008-01-19 Walter Doerwald <walter@livinglogic.de>
62 2008-01-19 Walter Doerwald <walter@livinglogic.de>
60
63
61 * ibrowse.py, igrid.py, ipipe.py:
64 * ibrowse.py, igrid.py, ipipe.py:
62 The input object can now be passed to the constructor of the display classes.
65 The input object can now be passed to the constructor of the display classes.
63 This makes it possible to use them with objects that implement __or__.
66 This makes it possible to use them with objects that implement __or__.
64 Use this constructor in the displayhook instead of piping.
67 Use this constructor in the displayhook instead of piping.
65
68
66 * ipipe.py: Importing astyle.py is done as late as possible to
69 * ipipe.py: Importing astyle.py is done as late as possible to
67 avoid problems with circular imports.
70 avoid problems with circular imports.
68
71
69 2008-01-19 Ville Vainio <vivainio@gmail.com>
72 2008-01-19 Ville Vainio <vivainio@gmail.com>
70
73
71 * hooks.py, iplib.py: Added 'shell_hook' to customize how
74 * hooks.py, iplib.py: Added 'shell_hook' to customize how
72 IPython calls shell.
75 IPython calls shell.
73
76
74 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
77 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
75 how IPython pages text (%page, %pycat, %pdoc etc.)
78 how IPython pages text (%page, %pycat, %pdoc etc.)
76
79
77 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
80 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
78 and '%kill' to kill hanging processes that won't obey ctrl+C.
81 and '%kill' to kill hanging processes that won't obey ctrl+C.
79
82
80 2008-01-16 Ville Vainio <vivainio@gmail.com>
83 2008-01-16 Ville Vainio <vivainio@gmail.com>
81
84
82 * ipy_completers.py: pyw extension support for %run completer.
85 * ipy_completers.py: pyw extension support for %run completer.
83
86
84 2008-01-11 Ville Vainio <vivainio@gmail.com>
87 2008-01-11 Ville Vainio <vivainio@gmail.com>
85
88
86 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
89 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
87 of ipython commands to be run when IPython has started up
90 of ipython commands to be run when IPython has started up
88 (just before running the scripts and -c arg on command line).
91 (just before running the scripts and -c arg on command line).
89
92
90 * ipy_user_conf.py: Added an example on how to change term
93 * ipy_user_conf.py: Added an example on how to change term
91 colors in config file (through using autoexec).
94 colors in config file (through using autoexec).
92
95
93 * completer.py, test_completer.py: Ability to specify custom
96 * completer.py, test_completer.py: Ability to specify custom
94 get_endidx to replace readline.get_endidx. For emacs users.
97 get_endidx to replace readline.get_endidx. For emacs users.
95
98
96 2008-01-10 Ville Vainio <vivainio@gmail.com>
99 2008-01-10 Ville Vainio <vivainio@gmail.com>
97
100
98 * Prompts.py (set_p_str): do not crash on illegal prompt strings
101 * Prompts.py (set_p_str): do not crash on illegal prompt strings
99
102
100 2008-01-08 Ville Vainio <vivainio@gmail.com>
103 2008-01-08 Ville Vainio <vivainio@gmail.com>
101
104
102 * '%macro -r' (raw mode) is now default in sh profile.
105 * '%macro -r' (raw mode) is now default in sh profile.
103
106
104 2007-12-31 Ville Vainio <vivainio@gmail.com>
107 2007-12-31 Ville Vainio <vivainio@gmail.com>
105
108
106 * completer.py: custom completer matching is now case sensitive
109 * completer.py: custom completer matching is now case sensitive
107 (#207).
110 (#207).
108
111
109 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
112 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
110 an attempt to prevent occasional crashes.
113 an attempt to prevent occasional crashes.
111
114
112 * CrashHandler.py: Crash log dump now asks user to press enter
115 * CrashHandler.py: Crash log dump now asks user to press enter
113 before exiting.
116 before exiting.
114
117
115 * Store _ip in user_ns instead of __builtin__, enabling safer
118 * Store _ip in user_ns instead of __builtin__, enabling safer
116 coexistence of multiple IPython instances in the same python
119 coexistence of multiple IPython instances in the same python
117 interpreter (#197).
120 interpreter (#197).
118
121
119 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
122 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
120 switch to enable pydb in post-mortem debugging and %run -d.
123 switch to enable pydb in post-mortem debugging and %run -d.
121
124
122 2007-12-28 Ville Vainio <vivainio@gmail.com>
125 2007-12-28 Ville Vainio <vivainio@gmail.com>
123
126
124 * ipy_server.py: TCP socket server for "remote control" of an IPython
127 * ipy_server.py: TCP socket server for "remote control" of an IPython
125 instance.
128 instance.
126
129
127 * Debugger.py: Change to PSF license
130 * Debugger.py: Change to PSF license
128
131
129 * simplegeneric.py: Add license & author notes.
132 * simplegeneric.py: Add license & author notes.
130
133
131 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
134 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
132 to navigate file system with a custom completer. Run
135 to navigate file system with a custom completer. Run
133 ipy_fsops.test_pathobj() to play with it.
136 ipy_fsops.test_pathobj() to play with it.
134
137
135 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
138 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
136
139
137 * IPython/dtutils.py: Add utilities for interactively running
140 * IPython/dtutils.py: Add utilities for interactively running
138 doctests. Still needs work to more easily handle the namespace of
141 doctests. Still needs work to more easily handle the namespace of
139 the package one may be working on, but the basics are in place.
142 the package one may be working on, but the basics are in place.
140
143
141 2007-12-27 Ville Vainio <vivainio@gmail.com>
144 2007-12-27 Ville Vainio <vivainio@gmail.com>
142
145
143 * ipy_completers.py: Applied arno's patch to get proper list of
146 * ipy_completers.py: Applied arno's patch to get proper list of
144 packages in import completer. Closes #196.
147 packages in import completer. Closes #196.
145
148
146 2007-12-20 Ville Vainio <vivainio@gmail.com>
149 2007-12-20 Ville Vainio <vivainio@gmail.com>
147
150
148 * completer.py, generics.py(complete_object): Allow
151 * completer.py, generics.py(complete_object): Allow
149 custom complers based on python objects via simplegeneric.
152 custom complers based on python objects via simplegeneric.
150 See generics.py / my_demo_complete_object
153 See generics.py / my_demo_complete_object
151
154
152 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
155 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
153
156
154 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
157 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
155 behavior to prompt objects, useful for display hooks to adjust
158 behavior to prompt objects, useful for display hooks to adjust
156 themselves depending on whether prompts will be there or not.
159 themselves depending on whether prompts will be there or not.
157
160
158 2007-12-13 Ville Vainio <vivainio@gmail.com>
161 2007-12-13 Ville Vainio <vivainio@gmail.com>
159
162
160 * iplib.py(raw_input): unix readline does not allow unicode in
163 * iplib.py(raw_input): unix readline does not allow unicode in
161 history, encode to normal string. After patch by Tiago.
164 history, encode to normal string. After patch by Tiago.
162 Close #201
165 Close #201
163
166
164 2007-12-12 Ville Vainio <vivainio@gmail.com>
167 2007-12-12 Ville Vainio <vivainio@gmail.com>
165
168
166 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
169 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
167 current directory.
170 current directory.
168
171
169 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
172 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
170
173
171 * IPython/Shell.py (_select_shell): add support for controlling
174 * IPython/Shell.py (_select_shell): add support for controlling
172 the pylab threading mode directly at the command line, without
175 the pylab threading mode directly at the command line, without
173 having to modify MPL config files. Added unit tests for this
176 having to modify MPL config files. Added unit tests for this
174 feature, though manual/docs update is still pending, will do later.
177 feature, though manual/docs update is still pending, will do later.
175
178
176 2007-12-11 Ville Vainio <vivainio@gmail.com>
179 2007-12-11 Ville Vainio <vivainio@gmail.com>
177
180
178 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
181 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
179 use in scripts)
182 use in scripts)
180
183
181 2007-12-07 Ville Vainio <vivainio@gmail.com>
184 2007-12-07 Ville Vainio <vivainio@gmail.com>
182
185
183 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
186 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
184 anymore (to \#) - even if it is a comment char that is implicitly
187 anymore (to \#) - even if it is a comment char that is implicitly
185 escaped in some unix shells in interactive mode, it is ok to leave
188 escaped in some unix shells in interactive mode, it is ok to leave
186 it in IPython as such.
189 it in IPython as such.
187
190
188
191
189 2007-12-01 Robert Kern <robert.kern@gmail.com>
192 2007-12-01 Robert Kern <robert.kern@gmail.com>
190
193
191 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
194 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
192 inspect.findsource(). It can now find source lines inside zipped
195 inspect.findsource(). It can now find source lines inside zipped
193 packages.
196 packages.
194
197
195 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
198 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
196 in the frame's namespace before trusting the filename in the code object
199 in the frame's namespace before trusting the filename in the code object
197 which created the frame.
200 which created the frame.
198
201
199 2007-11-29 *** Released version 0.8.2
202 2007-11-29 *** Released version 0.8.2
200
203
201 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
204 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
202
205
203 * IPython/Logger.py (Logger.logstop): add a proper logstop()
206 * IPython/Logger.py (Logger.logstop): add a proper logstop()
204 method to fully stop the logger, along with a corresponding
207 method to fully stop the logger, along with a corresponding
205 %logstop magic for interactive use.
208 %logstop magic for interactive use.
206
209
207 * IPython/Extensions/ipy_host_completers.py: added new host
210 * IPython/Extensions/ipy_host_completers.py: added new host
208 completers functionality, contributed by Gael Pasgrimaud
211 completers functionality, contributed by Gael Pasgrimaud
209 <gawel-AT-afpy.org>.
212 <gawel-AT-afpy.org>.
210
213
211 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
214 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
212
215
213 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
216 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
214 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
217 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
215 options handling. Unicode fix in %whos (committed a while ago)
218 options handling. Unicode fix in %whos (committed a while ago)
216 was also contributed by Paul.
219 was also contributed by Paul.
217
220
218 2007-11-23 Darren Dale <darren.dale@cornell.edu>
221 2007-11-23 Darren Dale <darren.dale@cornell.edu>
219 * ipy_traits_completer.py: let traits_completer respect the user's
222 * ipy_traits_completer.py: let traits_completer respect the user's
220 readline_omit__names setting.
223 readline_omit__names setting.
221
224
222 2007-11-08 Ville Vainio <vivainio@gmail.com>
225 2007-11-08 Ville Vainio <vivainio@gmail.com>
223
226
224 * ipy_completers.py (import completer): assume 'xml' module exists.
227 * ipy_completers.py (import completer): assume 'xml' module exists.
225 Do not add every module twice anymore. Closes #196.
228 Do not add every module twice anymore. Closes #196.
226
229
227 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
230 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
228 completer that uses apt-cache to search for existing packages.
231 completer that uses apt-cache to search for existing packages.
229
232
230 2007-11-06 Ville Vainio <vivainio@gmail.com>
233 2007-11-06 Ville Vainio <vivainio@gmail.com>
231
234
232 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
235 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
233 true. Closes #194.
236 true. Closes #194.
234
237
235 2007-11-01 Brian Granger <ellisonbg@gmail.com>
238 2007-11-01 Brian Granger <ellisonbg@gmail.com>
236
239
237 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
240 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
238 working with OS X 10.5 libedit implementation of readline.
241 working with OS X 10.5 libedit implementation of readline.
239
242
240 2007-10-24 Ville Vainio <vivainio@gmail.com>
243 2007-10-24 Ville Vainio <vivainio@gmail.com>
241
244
242 * iplib.py(user_setup): To route around buggy installations where
245 * iplib.py(user_setup): To route around buggy installations where
243 UserConfig is not available, create a minimal _ipython.
246 UserConfig is not available, create a minimal _ipython.
244
247
245 * iplib.py: Unicode fixes from Jorgen.
248 * iplib.py: Unicode fixes from Jorgen.
246
249
247 * genutils.py: Slist now has new method 'fields()' for extraction of
250 * genutils.py: Slist now has new method 'fields()' for extraction of
248 whitespace-separated fields from line-oriented data.
251 whitespace-separated fields from line-oriented data.
249
252
250 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
253 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
251
254
252 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
255 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
253 when querying objects with no __class__ attribute (such as
256 when querying objects with no __class__ attribute (such as
254 f2py-generated modules).
257 f2py-generated modules).
255
258
256 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
259 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
257
260
258 * IPython/Magic.py (magic_time): track compilation time and report
261 * IPython/Magic.py (magic_time): track compilation time and report
259 it if longer than 0.1s (fix done to %time and %timeit). After a
262 it if longer than 0.1s (fix done to %time and %timeit). After a
260 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
263 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
261
264
262 2007-09-18 Ville Vainio <vivainio@gmail.com>
265 2007-09-18 Ville Vainio <vivainio@gmail.com>
263
266
264 * genutils.py(make_quoted_expr): Do not use Itpl, it does
267 * genutils.py(make_quoted_expr): Do not use Itpl, it does
265 not support unicode at the moment. Fixes (many) magic calls with
268 not support unicode at the moment. Fixes (many) magic calls with
266 special characters.
269 special characters.
267
270
268 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
271 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
269
272
270 * IPython/genutils.py (doctest_reload): expose the doctest
273 * IPython/genutils.py (doctest_reload): expose the doctest
271 reloader to the user so that people can easily reset doctest while
274 reloader to the user so that people can easily reset doctest while
272 using it interactively. Fixes a problem reported by Jorgen.
275 using it interactively. Fixes a problem reported by Jorgen.
273
276
274 * IPython/iplib.py (InteractiveShell.__init__): protect the
277 * IPython/iplib.py (InteractiveShell.__init__): protect the
275 FakeModule instances used for __main__ in %run calls from
278 FakeModule instances used for __main__ in %run calls from
276 deletion, so that user code defined in them isn't left with
279 deletion, so that user code defined in them isn't left with
277 dangling references due to the Python module deletion machinery.
280 dangling references due to the Python module deletion machinery.
278 This should fix the problems reported by Darren.
281 This should fix the problems reported by Darren.
279
282
280 2007-09-10 Darren Dale <dd55@cornell.edu>
283 2007-09-10 Darren Dale <dd55@cornell.edu>
281
284
282 * Cleanup of IPShellQt and IPShellQt4
285 * Cleanup of IPShellQt and IPShellQt4
283
286
284 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
287 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
285
288
286 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
289 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
287 doctest support.
290 doctest support.
288
291
289 * IPython/iplib.py (safe_execfile): minor docstring improvements.
292 * IPython/iplib.py (safe_execfile): minor docstring improvements.
290
293
291 2007-09-08 Ville Vainio <vivainio@gmail.com>
294 2007-09-08 Ville Vainio <vivainio@gmail.com>
292
295
293 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
296 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
294 directory, not the target directory.
297 directory, not the target directory.
295
298
296 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
299 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
297 exception that won't print the tracebacks. Switched many magics to
300 exception that won't print the tracebacks. Switched many magics to
298 raise them on error situations, also GetoptError is not printed
301 raise them on error situations, also GetoptError is not printed
299 anymore.
302 anymore.
300
303
301 2007-09-07 Ville Vainio <vivainio@gmail.com>
304 2007-09-07 Ville Vainio <vivainio@gmail.com>
302
305
303 * iplib.py: do not auto-alias "dir", it screws up other dir auto
306 * iplib.py: do not auto-alias "dir", it screws up other dir auto
304 aliases.
307 aliases.
305
308
306 * genutils.py: SList.grep() implemented.
309 * genutils.py: SList.grep() implemented.
307
310
308 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
311 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
309 for easy "out of the box" setup of several common editors, so that
312 for easy "out of the box" setup of several common editors, so that
310 e.g. '%edit os.path.isfile' will jump to the correct line
313 e.g. '%edit os.path.isfile' will jump to the correct line
311 automatically. Contributions for command lines of your favourite
314 automatically. Contributions for command lines of your favourite
312 editors welcome.
315 editors welcome.
313
316
314 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
317 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
315
318
316 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
319 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
317 preventing source display in certain cases. In reality I think
320 preventing source display in certain cases. In reality I think
318 the problem is with Ubuntu's Python build, but this change works
321 the problem is with Ubuntu's Python build, but this change works
319 around the issue in some cases (not in all, unfortunately). I'd
322 around the issue in some cases (not in all, unfortunately). I'd
320 filed a Python bug on this with more details, but in the change of
323 filed a Python bug on this with more details, but in the change of
321 bug trackers it seems to have been lost.
324 bug trackers it seems to have been lost.
322
325
323 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
326 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
324 not the same, it's not self-documenting, doesn't allow range
327 not the same, it's not self-documenting, doesn't allow range
325 selection, and sorts alphabetically instead of numerically.
328 selection, and sorts alphabetically instead of numerically.
326 (magic_r): restore %r. No, "up + enter. One char magic" is not
329 (magic_r): restore %r. No, "up + enter. One char magic" is not
327 the same thing, since %r takes parameters to allow fast retrieval
330 the same thing, since %r takes parameters to allow fast retrieval
328 of old commands. I've received emails from users who use this a
331 of old commands. I've received emails from users who use this a
329 LOT, so it stays.
332 LOT, so it stays.
330 (magic_automagic): restore %automagic. "use _ip.option.automagic"
333 (magic_automagic): restore %automagic. "use _ip.option.automagic"
331 is not a valid replacement b/c it doesn't provide an complete
334 is not a valid replacement b/c it doesn't provide an complete
332 explanation (which the automagic docstring does).
335 explanation (which the automagic docstring does).
333 (magic_autocall): restore %autocall, with improved docstring.
336 (magic_autocall): restore %autocall, with improved docstring.
334 Same argument as for others, "use _ip.options.autocall" is not a
337 Same argument as for others, "use _ip.options.autocall" is not a
335 valid replacement.
338 valid replacement.
336 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
339 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
337 tutorials and online docs.
340 tutorials and online docs.
338
341
339 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
342 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
340
343
341 * IPython/usage.py (quick_reference): mention magics in quickref,
344 * IPython/usage.py (quick_reference): mention magics in quickref,
342 modified main banner to mention %quickref.
345 modified main banner to mention %quickref.
343
346
344 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
347 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
345
348
346 2007-09-06 Ville Vainio <vivainio@gmail.com>
349 2007-09-06 Ville Vainio <vivainio@gmail.com>
347
350
348 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
351 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
349 Callable aliases now pass the _ip as first arg. This breaks
352 Callable aliases now pass the _ip as first arg. This breaks
350 compatibility with earlier 0.8.2.svn series! (though they should
353 compatibility with earlier 0.8.2.svn series! (though they should
351 not have been in use yet outside these few extensions)
354 not have been in use yet outside these few extensions)
352
355
353 2007-09-05 Ville Vainio <vivainio@gmail.com>
356 2007-09-05 Ville Vainio <vivainio@gmail.com>
354
357
355 * external/mglob.py: expand('dirname') => ['dirname'], instead
358 * external/mglob.py: expand('dirname') => ['dirname'], instead
356 of ['dirname/foo','dirname/bar', ...].
359 of ['dirname/foo','dirname/bar', ...].
357
360
358 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
361 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
359 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
362 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
360 is useful for others as well).
363 is useful for others as well).
361
364
362 * iplib.py: on callable aliases (as opposed to old style aliases),
365 * iplib.py: on callable aliases (as opposed to old style aliases),
363 do var_expand() immediately, and use make_quoted_expr instead
366 do var_expand() immediately, and use make_quoted_expr instead
364 of hardcoded r"""
367 of hardcoded r"""
365
368
366 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
369 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
367 if not available load ipy_fsops.py for cp, mv, etc. replacements
370 if not available load ipy_fsops.py for cp, mv, etc. replacements
368
371
369 * OInspect.py, ipy_which.py: improve %which and obj? for callable
372 * OInspect.py, ipy_which.py: improve %which and obj? for callable
370 aliases
373 aliases
371
374
372 2007-09-04 Ville Vainio <vivainio@gmail.com>
375 2007-09-04 Ville Vainio <vivainio@gmail.com>
373
376
374 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
377 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
375 Relicensed under BSD with the authors approval.
378 Relicensed under BSD with the authors approval.
376
379
377 * ipmaker.py, usage.py: Remove %magic from default banner, improve
380 * ipmaker.py, usage.py: Remove %magic from default banner, improve
378 %quickref
381 %quickref
379
382
380 2007-09-03 Ville Vainio <vivainio@gmail.com>
383 2007-09-03 Ville Vainio <vivainio@gmail.com>
381
384
382 * Magic.py: %time now passes expression through prefilter,
385 * Magic.py: %time now passes expression through prefilter,
383 allowing IPython syntax.
386 allowing IPython syntax.
384
387
385 2007-09-01 Ville Vainio <vivainio@gmail.com>
388 2007-09-01 Ville Vainio <vivainio@gmail.com>
386
389
387 * ipmaker.py: Always show full traceback when newstyle config fails
390 * ipmaker.py: Always show full traceback when newstyle config fails
388
391
389 2007-08-27 Ville Vainio <vivainio@gmail.com>
392 2007-08-27 Ville Vainio <vivainio@gmail.com>
390
393
391 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
394 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
392
395
393 2007-08-26 Ville Vainio <vivainio@gmail.com>
396 2007-08-26 Ville Vainio <vivainio@gmail.com>
394
397
395 * ipmaker.py: Command line args have the highest priority again
398 * ipmaker.py: Command line args have the highest priority again
396
399
397 * iplib.py, ipmaker.py: -i command line argument now behaves as in
400 * iplib.py, ipmaker.py: -i command line argument now behaves as in
398 normal python, i.e. leaves the IPython session running after -c
401 normal python, i.e. leaves the IPython session running after -c
399 command or running a batch file from command line.
402 command or running a batch file from command line.
400
403
401 2007-08-22 Ville Vainio <vivainio@gmail.com>
404 2007-08-22 Ville Vainio <vivainio@gmail.com>
402
405
403 * iplib.py: no extra empty (last) line in raw hist w/ multiline
406 * iplib.py: no extra empty (last) line in raw hist w/ multiline
404 statements
407 statements
405
408
406 * logger.py: Fix bug where blank lines in history were not
409 * logger.py: Fix bug where blank lines in history were not
407 added until AFTER adding the current line; translated and raw
410 added until AFTER adding the current line; translated and raw
408 history should finally be in sync with prompt now.
411 history should finally be in sync with prompt now.
409
412
410 * ipy_completers.py: quick_completer now makes it easy to create
413 * ipy_completers.py: quick_completer now makes it easy to create
411 trivial custom completers
414 trivial custom completers
412
415
413 * clearcmd.py: shadow history compression & erasing, fixed input hist
416 * clearcmd.py: shadow history compression & erasing, fixed input hist
414 clearing.
417 clearing.
415
418
416 * envpersist.py, history.py: %env (sh profile only), %hist completers
419 * envpersist.py, history.py: %env (sh profile only), %hist completers
417
420
418 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
421 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
419 term title now include the drive letter, and always use / instead of
422 term title now include the drive letter, and always use / instead of
420 os.sep (as per recommended approach for win32 ipython in general).
423 os.sep (as per recommended approach for win32 ipython in general).
421
424
422 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
425 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
423 plain python scripts from ipykit command line by running
426 plain python scripts from ipykit command line by running
424 "py myscript.py", even w/o installed python.
427 "py myscript.py", even w/o installed python.
425
428
426 2007-08-21 Ville Vainio <vivainio@gmail.com>
429 2007-08-21 Ville Vainio <vivainio@gmail.com>
427
430
428 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
431 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
429 (for backwards compatibility)
432 (for backwards compatibility)
430
433
431 * history.py: switch back to %hist -t from %hist -r as default.
434 * history.py: switch back to %hist -t from %hist -r as default.
432 At least until raw history is fixed for good.
435 At least until raw history is fixed for good.
433
436
434 2007-08-20 Ville Vainio <vivainio@gmail.com>
437 2007-08-20 Ville Vainio <vivainio@gmail.com>
435
438
436 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
439 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
437 locate alias redeclarations etc. Also, avoid handling
440 locate alias redeclarations etc. Also, avoid handling
438 _ip.IP.alias_table directly, prefer using _ip.defalias.
441 _ip.IP.alias_table directly, prefer using _ip.defalias.
439
442
440
443
441 2007-08-15 Ville Vainio <vivainio@gmail.com>
444 2007-08-15 Ville Vainio <vivainio@gmail.com>
442
445
443 * prefilter.py: ! is now always served first
446 * prefilter.py: ! is now always served first
444
447
445 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
448 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
446
449
447 * IPython/iplib.py (safe_execfile): fix the SystemExit
450 * IPython/iplib.py (safe_execfile): fix the SystemExit
448 auto-suppression code to work in Python2.4 (the internal structure
451 auto-suppression code to work in Python2.4 (the internal structure
449 of that exception changed and I'd only tested the code with 2.5).
452 of that exception changed and I'd only tested the code with 2.5).
450 Bug reported by a SciPy attendee.
453 Bug reported by a SciPy attendee.
451
454
452 2007-08-13 Ville Vainio <vivainio@gmail.com>
455 2007-08-13 Ville Vainio <vivainio@gmail.com>
453
456
454 * prefilter.py: reverted !c:/bin/foo fix, made % in
457 * prefilter.py: reverted !c:/bin/foo fix, made % in
455 multiline specials work again
458 multiline specials work again
456
459
457 2007-08-13 Ville Vainio <vivainio@gmail.com>
460 2007-08-13 Ville Vainio <vivainio@gmail.com>
458
461
459 * prefilter.py: Take more care to special-case !, so that
462 * prefilter.py: Take more care to special-case !, so that
460 !c:/bin/foo.exe works.
463 !c:/bin/foo.exe works.
461
464
462 * setup.py: if we are building eggs, strip all docs and
465 * setup.py: if we are building eggs, strip all docs and
463 examples (it doesn't make sense to bytecompile examples,
466 examples (it doesn't make sense to bytecompile examples,
464 and docs would be in an awkward place anyway).
467 and docs would be in an awkward place anyway).
465
468
466 * Ryan Krauss' patch fixes start menu shortcuts when IPython
469 * Ryan Krauss' patch fixes start menu shortcuts when IPython
467 is installed into a directory that has spaces in the name.
470 is installed into a directory that has spaces in the name.
468
471
469 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
472 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
470
473
471 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
474 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
472 doctest profile and %doctest_mode, so they actually generate the
475 doctest profile and %doctest_mode, so they actually generate the
473 blank lines needed by doctest to separate individual tests.
476 blank lines needed by doctest to separate individual tests.
474
477
475 * IPython/iplib.py (safe_execfile): modify so that running code
478 * IPython/iplib.py (safe_execfile): modify so that running code
476 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
479 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
477 doesn't get a printed traceback. Any other value in sys.exit(),
480 doesn't get a printed traceback. Any other value in sys.exit(),
478 including the empty call, still generates a traceback. This
481 including the empty call, still generates a traceback. This
479 enables use of %run without having to pass '-e' for codes that
482 enables use of %run without having to pass '-e' for codes that
480 correctly set the exit status flag.
483 correctly set the exit status flag.
481
484
482 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
485 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
483
486
484 * IPython/iplib.py (InteractiveShell.post_config_initialization):
487 * IPython/iplib.py (InteractiveShell.post_config_initialization):
485 fix problems with doctests failing when run inside IPython due to
488 fix problems with doctests failing when run inside IPython due to
486 IPython's modifications of sys.displayhook.
489 IPython's modifications of sys.displayhook.
487
490
488 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
491 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
489
492
490 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
493 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
491 a string with names.
494 a string with names.
492
495
493 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
496 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
494
497
495 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
498 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
496 magic to toggle on/off the doctest pasting support without having
499 magic to toggle on/off the doctest pasting support without having
497 to leave a session to switch to a separate profile.
500 to leave a session to switch to a separate profile.
498
501
499 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
502 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
500
503
501 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
504 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
502 introduce a blank line between inputs, to conform to doctest
505 introduce a blank line between inputs, to conform to doctest
503 requirements.
506 requirements.
504
507
505 * IPython/OInspect.py (Inspector.pinfo): fix another part where
508 * IPython/OInspect.py (Inspector.pinfo): fix another part where
506 auto-generated docstrings for new-style classes were showing up.
509 auto-generated docstrings for new-style classes were showing up.
507
510
508 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
511 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
509
512
510 * api_changes: Add new file to track backward-incompatible
513 * api_changes: Add new file to track backward-incompatible
511 user-visible changes.
514 user-visible changes.
512
515
513 2007-08-06 Ville Vainio <vivainio@gmail.com>
516 2007-08-06 Ville Vainio <vivainio@gmail.com>
514
517
515 * ipmaker.py: fix bug where user_config_ns didn't exist at all
518 * ipmaker.py: fix bug where user_config_ns didn't exist at all
516 before all the config files were handled.
519 before all the config files were handled.
517
520
518 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
521 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
519
522
520 * IPython/irunner.py (RunnerFactory): Add new factory class for
523 * IPython/irunner.py (RunnerFactory): Add new factory class for
521 creating reusable runners based on filenames.
524 creating reusable runners based on filenames.
522
525
523 * IPython/Extensions/ipy_profile_doctest.py: New profile for
526 * IPython/Extensions/ipy_profile_doctest.py: New profile for
524 doctest support. It sets prompts/exceptions as similar to
527 doctest support. It sets prompts/exceptions as similar to
525 standard Python as possible, so that ipython sessions in this
528 standard Python as possible, so that ipython sessions in this
526 profile can be easily pasted as doctests with minimal
529 profile can be easily pasted as doctests with minimal
527 modifications. It also enables pasting of doctests from external
530 modifications. It also enables pasting of doctests from external
528 sources (even if they have leading whitespace), so that you can
531 sources (even if they have leading whitespace), so that you can
529 rerun doctests from existing sources.
532 rerun doctests from existing sources.
530
533
531 * IPython/iplib.py (_prefilter): fix a buglet where after entering
534 * IPython/iplib.py (_prefilter): fix a buglet where after entering
532 some whitespace, the prompt would become a continuation prompt
535 some whitespace, the prompt would become a continuation prompt
533 with no way of exiting it other than Ctrl-C. This fix brings us
536 with no way of exiting it other than Ctrl-C. This fix brings us
534 into conformity with how the default python prompt works.
537 into conformity with how the default python prompt works.
535
538
536 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
539 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
537 Add support for pasting not only lines that start with '>>>', but
540 Add support for pasting not only lines that start with '>>>', but
538 also with ' >>>'. That is, arbitrary whitespace can now precede
541 also with ' >>>'. That is, arbitrary whitespace can now precede
539 the prompts. This makes the system useful for pasting doctests
542 the prompts. This makes the system useful for pasting doctests
540 from docstrings back into a normal session.
543 from docstrings back into a normal session.
541
544
542 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
545 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
543
546
544 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
547 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
545 r1357, which had killed multiple invocations of an embedded
548 r1357, which had killed multiple invocations of an embedded
546 ipython (this means that example-embed has been broken for over 1
549 ipython (this means that example-embed has been broken for over 1
547 year!!!). Rather than possibly breaking the batch stuff for which
550 year!!!). Rather than possibly breaking the batch stuff for which
548 the code in iplib.py/interact was introduced, I worked around the
551 the code in iplib.py/interact was introduced, I worked around the
549 problem in the embedding class in Shell.py. We really need a
552 problem in the embedding class in Shell.py. We really need a
550 bloody test suite for this code, I'm sick of finding stuff that
553 bloody test suite for this code, I'm sick of finding stuff that
551 used to work breaking left and right every time I use an old
554 used to work breaking left and right every time I use an old
552 feature I hadn't touched in a few months.
555 feature I hadn't touched in a few months.
553 (kill_embedded): Add a new magic that only shows up in embedded
556 (kill_embedded): Add a new magic that only shows up in embedded
554 mode, to allow users to permanently deactivate an embedded instance.
557 mode, to allow users to permanently deactivate an embedded instance.
555
558
556 2007-08-01 Ville Vainio <vivainio@gmail.com>
559 2007-08-01 Ville Vainio <vivainio@gmail.com>
557
560
558 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
561 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
559 history gets out of sync on runlines (e.g. when running macros).
562 history gets out of sync on runlines (e.g. when running macros).
560
563
561 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
564 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
562
565
563 * IPython/Magic.py (magic_colors): fix win32-related error message
566 * IPython/Magic.py (magic_colors): fix win32-related error message
564 that could appear under *nix when readline was missing. Patch by
567 that could appear under *nix when readline was missing. Patch by
565 Scott Jackson, closes #175.
568 Scott Jackson, closes #175.
566
569
567 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
570 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
568
571
569 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
572 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
570 completer that it traits-aware, so that traits objects don't show
573 completer that it traits-aware, so that traits objects don't show
571 all of their internal attributes all the time.
574 all of their internal attributes all the time.
572
575
573 * IPython/genutils.py (dir2): moved this code from inside
576 * IPython/genutils.py (dir2): moved this code from inside
574 completer.py to expose it publicly, so I could use it in the
577 completer.py to expose it publicly, so I could use it in the
575 wildcards bugfix.
578 wildcards bugfix.
576
579
577 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
580 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
578 Stefan with Traits.
581 Stefan with Traits.
579
582
580 * IPython/completer.py (Completer.attr_matches): change internal
583 * IPython/completer.py (Completer.attr_matches): change internal
581 var name from 'object' to 'obj', since 'object' is now a builtin
584 var name from 'object' to 'obj', since 'object' is now a builtin
582 and this can lead to weird bugs if reusing this code elsewhere.
585 and this can lead to weird bugs if reusing this code elsewhere.
583
586
584 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
587 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
585
588
586 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
589 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
587 'foo?' and update the code to prevent printing of default
590 'foo?' and update the code to prevent printing of default
588 docstrings that started appearing after I added support for
591 docstrings that started appearing after I added support for
589 new-style classes. The approach I'm using isn't ideal (I just
592 new-style classes. The approach I'm using isn't ideal (I just
590 special-case those strings) but I'm not sure how to more robustly
593 special-case those strings) but I'm not sure how to more robustly
591 differentiate between truly user-written strings and Python's
594 differentiate between truly user-written strings and Python's
592 automatic ones.
595 automatic ones.
593
596
594 2007-07-09 Ville Vainio <vivainio@gmail.com>
597 2007-07-09 Ville Vainio <vivainio@gmail.com>
595
598
596 * completer.py: Applied Matthew Neeley's patch:
599 * completer.py: Applied Matthew Neeley's patch:
597 Dynamic attributes from trait_names and _getAttributeNames are added
600 Dynamic attributes from trait_names and _getAttributeNames are added
598 to the list of tab completions, but when this happens, the attribute
601 to the list of tab completions, but when this happens, the attribute
599 list is turned into a set, so the attributes are unordered when
602 list is turned into a set, so the attributes are unordered when
600 printed, which makes it hard to find the right completion. This patch
603 printed, which makes it hard to find the right completion. This patch
601 turns this set back into a list and sort it.
604 turns this set back into a list and sort it.
602
605
603 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
606 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
604
607
605 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
608 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
606 classes in various inspector functions.
609 classes in various inspector functions.
607
610
608 2007-06-28 Ville Vainio <vivainio@gmail.com>
611 2007-06-28 Ville Vainio <vivainio@gmail.com>
609
612
610 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
613 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
611 Implement "shadow" namespace, and callable aliases that reside there.
614 Implement "shadow" namespace, and callable aliases that reside there.
612 Use them by:
615 Use them by:
613
616
614 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
617 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
615
618
616 foo hello world
619 foo hello world
617 (gets translated to:)
620 (gets translated to:)
618 _sh.foo(r"""hello world""")
621 _sh.foo(r"""hello world""")
619
622
620 In practice, this kind of alias can take the role of a magic function
623 In practice, this kind of alias can take the role of a magic function
621
624
622 * New generic inspect_object, called on obj? and obj??
625 * New generic inspect_object, called on obj? and obj??
623
626
624 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
627 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
625
628
626 * IPython/ultraTB.py (findsource): fix a problem with
629 * IPython/ultraTB.py (findsource): fix a problem with
627 inspect.getfile that can cause crashes during traceback construction.
630 inspect.getfile that can cause crashes during traceback construction.
628
631
629 2007-06-14 Ville Vainio <vivainio@gmail.com>
632 2007-06-14 Ville Vainio <vivainio@gmail.com>
630
633
631 * iplib.py (handle_auto): Try to use ascii for printing "--->"
634 * iplib.py (handle_auto): Try to use ascii for printing "--->"
632 autocall rewrite indication, becausesometimes unicode fails to print
635 autocall rewrite indication, becausesometimes unicode fails to print
633 properly (and you get ' - - - '). Use plain uncoloured ---> for
636 properly (and you get ' - - - '). Use plain uncoloured ---> for
634 unicode.
637 unicode.
635
638
636 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
639 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
637
640
638 . pickleshare 'hash' commands (hget, hset, hcompress,
641 . pickleshare 'hash' commands (hget, hset, hcompress,
639 hdict) for efficient shadow history storage.
642 hdict) for efficient shadow history storage.
640
643
641 2007-06-13 Ville Vainio <vivainio@gmail.com>
644 2007-06-13 Ville Vainio <vivainio@gmail.com>
642
645
643 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
646 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
644 Added kw arg 'interactive', tell whether vars should be visible
647 Added kw arg 'interactive', tell whether vars should be visible
645 with %whos.
648 with %whos.
646
649
647 2007-06-11 Ville Vainio <vivainio@gmail.com>
650 2007-06-11 Ville Vainio <vivainio@gmail.com>
648
651
649 * pspersistence.py, Magic.py, iplib.py: directory history now saved
652 * pspersistence.py, Magic.py, iplib.py: directory history now saved
650 to db
653 to db
651
654
652 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
655 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
653 Also, it exits IPython immediately after evaluating the command (just like
656 Also, it exits IPython immediately after evaluating the command (just like
654 std python)
657 std python)
655
658
656 2007-06-05 Walter Doerwald <walter@livinglogic.de>
659 2007-06-05 Walter Doerwald <walter@livinglogic.de>
657
660
658 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
661 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
659 Python string and captures the output. (Idea and original patch by
662 Python string and captures the output. (Idea and original patch by
660 Stefan van der Walt)
663 Stefan van der Walt)
661
664
662 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
665 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
663
666
664 * IPython/ultraTB.py (VerboseTB.text): update printing of
667 * IPython/ultraTB.py (VerboseTB.text): update printing of
665 exception types for Python 2.5 (now all exceptions in the stdlib
668 exception types for Python 2.5 (now all exceptions in the stdlib
666 are new-style classes).
669 are new-style classes).
667
670
668 2007-05-31 Walter Doerwald <walter@livinglogic.de>
671 2007-05-31 Walter Doerwald <walter@livinglogic.de>
669
672
670 * IPython/Extensions/igrid.py: Add new commands refresh and
673 * IPython/Extensions/igrid.py: Add new commands refresh and
671 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
674 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
672 the iterator once (refresh) or after every x seconds (refresh_timer).
675 the iterator once (refresh) or after every x seconds (refresh_timer).
673 Add a working implementation of "searchexpression", where the text
676 Add a working implementation of "searchexpression", where the text
674 entered is not the text to search for, but an expression that must
677 entered is not the text to search for, but an expression that must
675 be true. Added display of shortcuts to the menu. Added commands "pickinput"
678 be true. Added display of shortcuts to the menu. Added commands "pickinput"
676 and "pickinputattr" that put the object or attribute under the cursor
679 and "pickinputattr" that put the object or attribute under the cursor
677 in the input line. Split the statusbar to be able to display the currently
680 in the input line. Split the statusbar to be able to display the currently
678 active refresh interval. (Patch by Nik Tautenhahn)
681 active refresh interval. (Patch by Nik Tautenhahn)
679
682
680 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
683 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
681
684
682 * fixing set_term_title to use ctypes as default
685 * fixing set_term_title to use ctypes as default
683
686
684 * fixing set_term_title fallback to work when curent dir
687 * fixing set_term_title fallback to work when curent dir
685 is on a windows network share
688 is on a windows network share
686
689
687 2007-05-28 Ville Vainio <vivainio@gmail.com>
690 2007-05-28 Ville Vainio <vivainio@gmail.com>
688
691
689 * %cpaste: strip + with > from left (diffs).
692 * %cpaste: strip + with > from left (diffs).
690
693
691 * iplib.py: Fix crash when readline not installed
694 * iplib.py: Fix crash when readline not installed
692
695
693 2007-05-26 Ville Vainio <vivainio@gmail.com>
696 2007-05-26 Ville Vainio <vivainio@gmail.com>
694
697
695 * generics.py: introduce easy to extend result_display generic
698 * generics.py: introduce easy to extend result_display generic
696 function (using simplegeneric.py).
699 function (using simplegeneric.py).
697
700
698 * Fixed the append functionality of %set.
701 * Fixed the append functionality of %set.
699
702
700 2007-05-25 Ville Vainio <vivainio@gmail.com>
703 2007-05-25 Ville Vainio <vivainio@gmail.com>
701
704
702 * New magic: %rep (fetch / run old commands from history)
705 * New magic: %rep (fetch / run old commands from history)
703
706
704 * New extension: mglob (%mglob magic), for powerful glob / find /filter
707 * New extension: mglob (%mglob magic), for powerful glob / find /filter
705 like functionality
708 like functionality
706
709
707 % maghistory.py: %hist -g PATTERM greps the history for pattern
710 % maghistory.py: %hist -g PATTERM greps the history for pattern
708
711
709 2007-05-24 Walter Doerwald <walter@livinglogic.de>
712 2007-05-24 Walter Doerwald <walter@livinglogic.de>
710
713
711 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
714 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
712 browse the IPython input history
715 browse the IPython input history
713
716
714 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
717 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
715 (mapped to "i") can be used to put the object under the curser in the input
718 (mapped to "i") can be used to put the object under the curser in the input
716 line. pickinputattr (mapped to "I") does the same for the attribute under
719 line. pickinputattr (mapped to "I") does the same for the attribute under
717 the cursor.
720 the cursor.
718
721
719 2007-05-24 Ville Vainio <vivainio@gmail.com>
722 2007-05-24 Ville Vainio <vivainio@gmail.com>
720
723
721 * Grand magic cleansing (changeset [2380]):
724 * Grand magic cleansing (changeset [2380]):
722
725
723 * Introduce ipy_legacy.py where the following magics were
726 * Introduce ipy_legacy.py where the following magics were
724 moved:
727 moved:
725
728
726 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
729 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
727
730
728 If you need them, either use default profile or "import ipy_legacy"
731 If you need them, either use default profile or "import ipy_legacy"
729 in your ipy_user_conf.py
732 in your ipy_user_conf.py
730
733
731 * Move sh and scipy profile to Extensions from UserConfig. this implies
734 * Move sh and scipy profile to Extensions from UserConfig. this implies
732 you should not edit them, but you don't need to run %upgrade when
735 you should not edit them, but you don't need to run %upgrade when
733 upgrading IPython anymore.
736 upgrading IPython anymore.
734
737
735 * %hist/%history now operates in "raw" mode by default. To get the old
738 * %hist/%history now operates in "raw" mode by default. To get the old
736 behaviour, run '%hist -n' (native mode).
739 behaviour, run '%hist -n' (native mode).
737
740
738 * split ipy_stock_completers.py to ipy_stock_completers.py and
741 * split ipy_stock_completers.py to ipy_stock_completers.py and
739 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
742 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
740 installed as default.
743 installed as default.
741
744
742 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
745 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
743 handling.
746 handling.
744
747
745 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
748 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
746 input if readline is available.
749 input if readline is available.
747
750
748 2007-05-23 Ville Vainio <vivainio@gmail.com>
751 2007-05-23 Ville Vainio <vivainio@gmail.com>
749
752
750 * macro.py: %store uses __getstate__ properly
753 * macro.py: %store uses __getstate__ properly
751
754
752 * exesetup.py: added new setup script for creating
755 * exesetup.py: added new setup script for creating
753 standalone IPython executables with py2exe (i.e.
756 standalone IPython executables with py2exe (i.e.
754 no python installation required).
757 no python installation required).
755
758
756 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
759 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
757 its place.
760 its place.
758
761
759 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
762 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
760
763
761 2007-05-21 Ville Vainio <vivainio@gmail.com>
764 2007-05-21 Ville Vainio <vivainio@gmail.com>
762
765
763 * platutil_win32.py (set_term_title): handle
766 * platutil_win32.py (set_term_title): handle
764 failure of 'title' system call properly.
767 failure of 'title' system call properly.
765
768
766 2007-05-17 Walter Doerwald <walter@livinglogic.de>
769 2007-05-17 Walter Doerwald <walter@livinglogic.de>
767
770
768 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
771 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
769 (Bug detected by Paul Mueller).
772 (Bug detected by Paul Mueller).
770
773
771 2007-05-16 Ville Vainio <vivainio@gmail.com>
774 2007-05-16 Ville Vainio <vivainio@gmail.com>
772
775
773 * ipy_profile_sci.py, ipython_win_post_install.py: Create
776 * ipy_profile_sci.py, ipython_win_post_install.py: Create
774 new "sci" profile, effectively a modern version of the old
777 new "sci" profile, effectively a modern version of the old
775 "scipy" profile (which is now slated for deprecation).
778 "scipy" profile (which is now slated for deprecation).
776
779
777 2007-05-15 Ville Vainio <vivainio@gmail.com>
780 2007-05-15 Ville Vainio <vivainio@gmail.com>
778
781
779 * pycolorize.py, pycolor.1: Paul Mueller's patches that
782 * pycolorize.py, pycolor.1: Paul Mueller's patches that
780 make pycolorize read input from stdin when run without arguments.
783 make pycolorize read input from stdin when run without arguments.
781
784
782 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
785 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
783
786
784 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
787 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
785 it in sh profile (instead of ipy_system_conf.py).
788 it in sh profile (instead of ipy_system_conf.py).
786
789
787 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
790 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
788 aliases are now lower case on windows (MyCommand.exe => mycommand).
791 aliases are now lower case on windows (MyCommand.exe => mycommand).
789
792
790 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
793 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
791 Macros are now callable objects that inherit from ipapi.IPyAutocall,
794 Macros are now callable objects that inherit from ipapi.IPyAutocall,
792 i.e. get autocalled regardless of system autocall setting.
795 i.e. get autocalled regardless of system autocall setting.
793
796
794 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
797 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
795
798
796 * IPython/rlineimpl.py: check for clear_history in readline and
799 * IPython/rlineimpl.py: check for clear_history in readline and
797 make it a dummy no-op if not available. This function isn't
800 make it a dummy no-op if not available. This function isn't
798 guaranteed to be in the API and appeared in Python 2.4, so we need
801 guaranteed to be in the API and appeared in Python 2.4, so we need
799 to check it ourselves. Also, clean up this file quite a bit.
802 to check it ourselves. Also, clean up this file quite a bit.
800
803
801 * ipython.1: update man page and full manual with information
804 * ipython.1: update man page and full manual with information
802 about threads (remove outdated warning). Closes #151.
805 about threads (remove outdated warning). Closes #151.
803
806
804 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
807 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
805
808
806 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
809 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
807 in trunk (note that this made it into the 0.8.1 release already,
810 in trunk (note that this made it into the 0.8.1 release already,
808 but the changelogs didn't get coordinated). Many thanks to Gael
811 but the changelogs didn't get coordinated). Many thanks to Gael
809 Varoquaux <gael.varoquaux-AT-normalesup.org>
812 Varoquaux <gael.varoquaux-AT-normalesup.org>
810
813
811 2007-05-09 *** Released version 0.8.1
814 2007-05-09 *** Released version 0.8.1
812
815
813 2007-05-10 Walter Doerwald <walter@livinglogic.de>
816 2007-05-10 Walter Doerwald <walter@livinglogic.de>
814
817
815 * IPython/Extensions/igrid.py: Incorporate html help into
818 * IPython/Extensions/igrid.py: Incorporate html help into
816 the module, so we don't have to search for the file.
819 the module, so we don't have to search for the file.
817
820
818 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
821 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
819
822
820 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
823 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
821
824
822 2007-04-30 Ville Vainio <vivainio@gmail.com>
825 2007-04-30 Ville Vainio <vivainio@gmail.com>
823
826
824 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
827 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
825 user has illegal (non-ascii) home directory name
828 user has illegal (non-ascii) home directory name
826
829
827 2007-04-27 Ville Vainio <vivainio@gmail.com>
830 2007-04-27 Ville Vainio <vivainio@gmail.com>
828
831
829 * platutils_win32.py: implement set_term_title for windows
832 * platutils_win32.py: implement set_term_title for windows
830
833
831 * Update version number
834 * Update version number
832
835
833 * ipy_profile_sh.py: more informative prompt (2 dir levels)
836 * ipy_profile_sh.py: more informative prompt (2 dir levels)
834
837
835 2007-04-26 Walter Doerwald <walter@livinglogic.de>
838 2007-04-26 Walter Doerwald <walter@livinglogic.de>
836
839
837 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
840 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
838 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
841 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
839 bug discovered by Ville).
842 bug discovered by Ville).
840
843
841 2007-04-26 Ville Vainio <vivainio@gmail.com>
844 2007-04-26 Ville Vainio <vivainio@gmail.com>
842
845
843 * Extensions/ipy_completers.py: Olivier's module completer now
846 * Extensions/ipy_completers.py: Olivier's module completer now
844 saves the list of root modules if it takes > 4 secs on the first run.
847 saves the list of root modules if it takes > 4 secs on the first run.
845
848
846 * Magic.py (%rehashx): %rehashx now clears the completer cache
849 * Magic.py (%rehashx): %rehashx now clears the completer cache
847
850
848
851
849 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
852 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
850
853
851 * ipython.el: fix incorrect color scheme, reported by Stefan.
854 * ipython.el: fix incorrect color scheme, reported by Stefan.
852 Closes #149.
855 Closes #149.
853
856
854 * IPython/PyColorize.py (Parser.format2): fix state-handling
857 * IPython/PyColorize.py (Parser.format2): fix state-handling
855 logic. I still don't like how that code handles state, but at
858 logic. I still don't like how that code handles state, but at
856 least now it should be correct, if inelegant. Closes #146.
859 least now it should be correct, if inelegant. Closes #146.
857
860
858 2007-04-25 Ville Vainio <vivainio@gmail.com>
861 2007-04-25 Ville Vainio <vivainio@gmail.com>
859
862
860 * Extensions/ipy_which.py: added extension for %which magic, works
863 * Extensions/ipy_which.py: added extension for %which magic, works
861 a lot like unix 'which' but also finds and expands aliases, and
864 a lot like unix 'which' but also finds and expands aliases, and
862 allows wildcards.
865 allows wildcards.
863
866
864 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
867 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
865 as opposed to returning nothing.
868 as opposed to returning nothing.
866
869
867 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
870 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
868 ipy_stock_completers on default profile, do import on sh profile.
871 ipy_stock_completers on default profile, do import on sh profile.
869
872
870 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
873 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
871
874
872 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
875 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
873 like ipython.py foo.py which raised a IndexError.
876 like ipython.py foo.py which raised a IndexError.
874
877
875 2007-04-21 Ville Vainio <vivainio@gmail.com>
878 2007-04-21 Ville Vainio <vivainio@gmail.com>
876
879
877 * Extensions/ipy_extutil.py: added extension to manage other ipython
880 * Extensions/ipy_extutil.py: added extension to manage other ipython
878 extensions. Now only supports 'ls' == list extensions.
881 extensions. Now only supports 'ls' == list extensions.
879
882
880 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
883 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
881
884
882 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
885 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
883 would prevent use of the exception system outside of a running
886 would prevent use of the exception system outside of a running
884 IPython instance.
887 IPython instance.
885
888
886 2007-04-20 Ville Vainio <vivainio@gmail.com>
889 2007-04-20 Ville Vainio <vivainio@gmail.com>
887
890
888 * Extensions/ipy_render.py: added extension for easy
891 * Extensions/ipy_render.py: added extension for easy
889 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
892 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
890 'Iptl' template notation,
893 'Iptl' template notation,
891
894
892 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
895 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
893 safer & faster 'import' completer.
896 safer & faster 'import' completer.
894
897
895 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
898 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
896 and _ip.defalias(name, command).
899 and _ip.defalias(name, command).
897
900
898 * Extensions/ipy_exportdb.py: New extension for exporting all the
901 * Extensions/ipy_exportdb.py: New extension for exporting all the
899 %store'd data in a portable format (normal ipapi calls like
902 %store'd data in a portable format (normal ipapi calls like
900 defmacro() etc.)
903 defmacro() etc.)
901
904
902 2007-04-19 Ville Vainio <vivainio@gmail.com>
905 2007-04-19 Ville Vainio <vivainio@gmail.com>
903
906
904 * upgrade_dir.py: skip junk files like *.pyc
907 * upgrade_dir.py: skip junk files like *.pyc
905
908
906 * Release.py: version number to 0.8.1
909 * Release.py: version number to 0.8.1
907
910
908 2007-04-18 Ville Vainio <vivainio@gmail.com>
911 2007-04-18 Ville Vainio <vivainio@gmail.com>
909
912
910 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
913 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
911 and later on win32.
914 and later on win32.
912
915
913 2007-04-16 Ville Vainio <vivainio@gmail.com>
916 2007-04-16 Ville Vainio <vivainio@gmail.com>
914
917
915 * iplib.py (showtraceback): Do not crash when running w/o readline.
918 * iplib.py (showtraceback): Do not crash when running w/o readline.
916
919
917 2007-04-12 Walter Doerwald <walter@livinglogic.de>
920 2007-04-12 Walter Doerwald <walter@livinglogic.de>
918
921
919 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
922 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
920 sorted (case sensitive with files and dirs mixed).
923 sorted (case sensitive with files and dirs mixed).
921
924
922 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
925 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
923
926
924 * IPython/Release.py (version): Open trunk for 0.8.1 development.
927 * IPython/Release.py (version): Open trunk for 0.8.1 development.
925
928
926 2007-04-10 *** Released version 0.8.0
929 2007-04-10 *** Released version 0.8.0
927
930
928 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
931 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
929
932
930 * Tag 0.8.0 for release.
933 * Tag 0.8.0 for release.
931
934
932 * IPython/iplib.py (reloadhist): add API function to cleanly
935 * IPython/iplib.py (reloadhist): add API function to cleanly
933 reload the readline history, which was growing inappropriately on
936 reload the readline history, which was growing inappropriately on
934 every %run call.
937 every %run call.
935
938
936 * win32_manual_post_install.py (run): apply last part of Nicolas
939 * win32_manual_post_install.py (run): apply last part of Nicolas
937 Pernetty's patch (I'd accidentally applied it in a different
940 Pernetty's patch (I'd accidentally applied it in a different
938 directory and this particular file didn't get patched).
941 directory and this particular file didn't get patched).
939
942
940 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
943 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
941
944
942 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
945 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
943 find the main thread id and use the proper API call. Thanks to
946 find the main thread id and use the proper API call. Thanks to
944 Stefan for the fix.
947 Stefan for the fix.
945
948
946 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
949 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
947 unit tests to reflect fixed ticket #52, and add more tests sent by
950 unit tests to reflect fixed ticket #52, and add more tests sent by
948 him.
951 him.
949
952
950 * IPython/iplib.py (raw_input): restore the readline completer
953 * IPython/iplib.py (raw_input): restore the readline completer
951 state on every input, in case third-party code messed it up.
954 state on every input, in case third-party code messed it up.
952 (_prefilter): revert recent addition of early-escape checks which
955 (_prefilter): revert recent addition of early-escape checks which
953 prevent many valid alias calls from working.
956 prevent many valid alias calls from working.
954
957
955 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
958 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
956 flag for sigint handler so we don't run a full signal() call on
959 flag for sigint handler so we don't run a full signal() call on
957 each runcode access.
960 each runcode access.
958
961
959 * IPython/Magic.py (magic_whos): small improvement to diagnostic
962 * IPython/Magic.py (magic_whos): small improvement to diagnostic
960 message.
963 message.
961
964
962 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
965 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
963
966
964 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
967 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
965 asynchronous exceptions working, i.e., Ctrl-C can actually
968 asynchronous exceptions working, i.e., Ctrl-C can actually
966 interrupt long-running code in the multithreaded shells.
969 interrupt long-running code in the multithreaded shells.
967
970
968 This is using Tomer Filiba's great ctypes-based trick:
971 This is using Tomer Filiba's great ctypes-based trick:
969 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
972 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
970 this in the past, but hadn't been able to make it work before. So
973 this in the past, but hadn't been able to make it work before. So
971 far it looks like it's actually running, but this needs more
974 far it looks like it's actually running, but this needs more
972 testing. If it really works, I'll be *very* happy, and we'll owe
975 testing. If it really works, I'll be *very* happy, and we'll owe
973 a huge thank you to Tomer. My current implementation is ugly,
976 a huge thank you to Tomer. My current implementation is ugly,
974 hackish and uses nasty globals, but I don't want to try and clean
977 hackish and uses nasty globals, but I don't want to try and clean
975 anything up until we know if it actually works.
978 anything up until we know if it actually works.
976
979
977 NOTE: this feature needs ctypes to work. ctypes is included in
980 NOTE: this feature needs ctypes to work. ctypes is included in
978 Python2.5, but 2.4 users will need to manually install it. This
981 Python2.5, but 2.4 users will need to manually install it. This
979 feature makes multi-threaded shells so much more usable that it's
982 feature makes multi-threaded shells so much more usable that it's
980 a minor price to pay (ctypes is very easy to install, already a
983 a minor price to pay (ctypes is very easy to install, already a
981 requirement for win32 and available in major linux distros).
984 requirement for win32 and available in major linux distros).
982
985
983 2007-04-04 Ville Vainio <vivainio@gmail.com>
986 2007-04-04 Ville Vainio <vivainio@gmail.com>
984
987
985 * Extensions/ipy_completers.py, ipy_stock_completers.py:
988 * Extensions/ipy_completers.py, ipy_stock_completers.py:
986 Moved implementations of 'bundled' completers to ipy_completers.py,
989 Moved implementations of 'bundled' completers to ipy_completers.py,
987 they are only enabled in ipy_stock_completers.py.
990 they are only enabled in ipy_stock_completers.py.
988
991
989 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
992 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
990
993
991 * IPython/PyColorize.py (Parser.format2): Fix identation of
994 * IPython/PyColorize.py (Parser.format2): Fix identation of
992 colorzied output and return early if color scheme is NoColor, to
995 colorzied output and return early if color scheme is NoColor, to
993 avoid unnecessary and expensive tokenization. Closes #131.
996 avoid unnecessary and expensive tokenization. Closes #131.
994
997
995 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
998 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
996
999
997 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1000 * IPython/Debugger.py: disable the use of pydb version 1.17. It
998 has a critical bug (a missing import that makes post-mortem not
1001 has a critical bug (a missing import that makes post-mortem not
999 work at all). Unfortunately as of this time, this is the version
1002 work at all). Unfortunately as of this time, this is the version
1000 shipped with Ubuntu Edgy, so quite a few people have this one. I
1003 shipped with Ubuntu Edgy, so quite a few people have this one. I
1001 hope Edgy will update to a more recent package.
1004 hope Edgy will update to a more recent package.
1002
1005
1003 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1006 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1004
1007
1005 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1008 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1006 set by Stefan (only the first part had been applied before).
1009 set by Stefan (only the first part had been applied before).
1007
1010
1008 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1011 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1009 remove usage of the dangerous pkgutil.walk_packages(). See
1012 remove usage of the dangerous pkgutil.walk_packages(). See
1010 details in comments left in the code.
1013 details in comments left in the code.
1011
1014
1012 * IPython/Magic.py (magic_whos): add support for numpy arrays
1015 * IPython/Magic.py (magic_whos): add support for numpy arrays
1013 similar to what we had for Numeric.
1016 similar to what we had for Numeric.
1014
1017
1015 * IPython/completer.py (IPCompleter.complete): extend the
1018 * IPython/completer.py (IPCompleter.complete): extend the
1016 complete() call API to support completions by other mechanisms
1019 complete() call API to support completions by other mechanisms
1017 than readline. Closes #109.
1020 than readline. Closes #109.
1018
1021
1019 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1022 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1020 protect against a bug in Python's execfile(). Closes #123.
1023 protect against a bug in Python's execfile(). Closes #123.
1021
1024
1022 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1025 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1023
1026
1024 * IPython/iplib.py (split_user_input): ensure that when splitting
1027 * IPython/iplib.py (split_user_input): ensure that when splitting
1025 user input, the part that can be treated as a python name is pure
1028 user input, the part that can be treated as a python name is pure
1026 ascii (Python identifiers MUST be pure ascii). Part of the
1029 ascii (Python identifiers MUST be pure ascii). Part of the
1027 ongoing Unicode support work.
1030 ongoing Unicode support work.
1028
1031
1029 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1032 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1030 actual prompt number, without any coloring. This allows users to
1033 actual prompt number, without any coloring. This allows users to
1031 produce numbered prompts with their own colors. Added after a
1034 produce numbered prompts with their own colors. Added after a
1032 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1035 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1033
1036
1034 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1037 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1035
1038
1036 * IPython/Extensions/igrid.py: Map the return key
1039 * IPython/Extensions/igrid.py: Map the return key
1037 to enter() and shift-return to enterattr().
1040 to enter() and shift-return to enterattr().
1038
1041
1039 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1042 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1040
1043
1041 * IPython/Magic.py (magic_psearch): add unicode support by
1044 * IPython/Magic.py (magic_psearch): add unicode support by
1042 encoding to ascii the input, since this routine also only deals
1045 encoding to ascii the input, since this routine also only deals
1043 with valid Python names. Fixes a bug reported by Stefan.
1046 with valid Python names. Fixes a bug reported by Stefan.
1044
1047
1045 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1048 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1046
1049
1047 * IPython/Magic.py (_inspect): convert unicode input into ascii
1050 * IPython/Magic.py (_inspect): convert unicode input into ascii
1048 before trying to evaluate it as a Python identifier. This fixes a
1051 before trying to evaluate it as a Python identifier. This fixes a
1049 problem that the new unicode support had introduced when analyzing
1052 problem that the new unicode support had introduced when analyzing
1050 long definition lines for functions.
1053 long definition lines for functions.
1051
1054
1052 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1055 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1053
1056
1054 * IPython/Extensions/igrid.py: Fix picking. Using
1057 * IPython/Extensions/igrid.py: Fix picking. Using
1055 igrid with wxPython 2.6 and -wthread should work now.
1058 igrid with wxPython 2.6 and -wthread should work now.
1056 igrid.display() simply tries to create a frame without
1059 igrid.display() simply tries to create a frame without
1057 an application. Only if this fails an application is created.
1060 an application. Only if this fails an application is created.
1058
1061
1059 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1062 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1060
1063
1061 * IPython/Extensions/path.py: Updated to version 2.2.
1064 * IPython/Extensions/path.py: Updated to version 2.2.
1062
1065
1063 2007-03-23 Ville Vainio <vivainio@gmail.com>
1066 2007-03-23 Ville Vainio <vivainio@gmail.com>
1064
1067
1065 * iplib.py: recursive alias expansion now works better, so that
1068 * iplib.py: recursive alias expansion now works better, so that
1066 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1069 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1067 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1070 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1068
1071
1069 * Extensions/ipy_gnuglobal.py added, provides %global magic
1072 * Extensions/ipy_gnuglobal.py added, provides %global magic
1070 for users of http://www.gnu.org/software/global
1073 for users of http://www.gnu.org/software/global
1071
1074
1072 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1075 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1073 Closes #52. Patch by Stefan van der Walt.
1076 Closes #52. Patch by Stefan van der Walt.
1074
1077
1075 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1078 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1076
1079
1077 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1080 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1078 respect the __file__ attribute when using %run. Thanks to a bug
1081 respect the __file__ attribute when using %run. Thanks to a bug
1079 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1082 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1080
1083
1081 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1084 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1082
1085
1083 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1086 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1084 input. Patch sent by Stefan.
1087 input. Patch sent by Stefan.
1085
1088
1086 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1089 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1087 * IPython/Extensions/ipy_stock_completer.py
1090 * IPython/Extensions/ipy_stock_completer.py
1088 shlex_split, fix bug in shlex_split. len function
1091 shlex_split, fix bug in shlex_split. len function
1089 call was missing an if statement. Caused shlex_split to
1092 call was missing an if statement. Caused shlex_split to
1090 sometimes return "" as last element.
1093 sometimes return "" as last element.
1091
1094
1092 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1095 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1093
1096
1094 * IPython/completer.py
1097 * IPython/completer.py
1095 (IPCompleter.file_matches.single_dir_expand): fix a problem
1098 (IPCompleter.file_matches.single_dir_expand): fix a problem
1096 reported by Stefan, where directories containign a single subdir
1099 reported by Stefan, where directories containign a single subdir
1097 would be completed too early.
1100 would be completed too early.
1098
1101
1099 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1102 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1100 pylab import *' when -pylab is given be optional. A new flag,
1103 pylab import *' when -pylab is given be optional. A new flag,
1101 pylab_import_all controls this behavior, the default is True for
1104 pylab_import_all controls this behavior, the default is True for
1102 backwards compatibility.
1105 backwards compatibility.
1103
1106
1104 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1107 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1105 modified) R. Bernstein's patch for fully syntax highlighted
1108 modified) R. Bernstein's patch for fully syntax highlighted
1106 tracebacks. The functionality is also available under ultraTB for
1109 tracebacks. The functionality is also available under ultraTB for
1107 non-ipython users (someone using ultraTB but outside an ipython
1110 non-ipython users (someone using ultraTB but outside an ipython
1108 session). They can select the color scheme by setting the
1111 session). They can select the color scheme by setting the
1109 module-level global DEFAULT_SCHEME. The highlight functionality
1112 module-level global DEFAULT_SCHEME. The highlight functionality
1110 also works when debugging.
1113 also works when debugging.
1111
1114
1112 * IPython/genutils.py (IOStream.close): small patch by
1115 * IPython/genutils.py (IOStream.close): small patch by
1113 R. Bernstein for improved pydb support.
1116 R. Bernstein for improved pydb support.
1114
1117
1115 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1118 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1116 DaveS <davls@telus.net> to improve support of debugging under
1119 DaveS <davls@telus.net> to improve support of debugging under
1117 NTEmacs, including improved pydb behavior.
1120 NTEmacs, including improved pydb behavior.
1118
1121
1119 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1122 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1120 Python 2.5, where the stats object API changed a little. Thanks
1123 Python 2.5, where the stats object API changed a little. Thanks
1121 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1124 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1122
1125
1123 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1126 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1124 Pernetty's patch to improve support for (X)Emacs under Win32.
1127 Pernetty's patch to improve support for (X)Emacs under Win32.
1125
1128
1126 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1129 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1127
1130
1128 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1131 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1129 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1132 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1130 a report by Nik Tautenhahn.
1133 a report by Nik Tautenhahn.
1131
1134
1132 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1135 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1133
1136
1134 * setup.py: Add the igrid help files to the list of data files
1137 * setup.py: Add the igrid help files to the list of data files
1135 to be installed alongside igrid.
1138 to be installed alongside igrid.
1136 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1139 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1137 Show the input object of the igrid browser as the window tile.
1140 Show the input object of the igrid browser as the window tile.
1138 Show the object the cursor is on in the statusbar.
1141 Show the object the cursor is on in the statusbar.
1139
1142
1140 2007-03-15 Ville Vainio <vivainio@gmail.com>
1143 2007-03-15 Ville Vainio <vivainio@gmail.com>
1141
1144
1142 * Extensions/ipy_stock_completers.py: Fixed exception
1145 * Extensions/ipy_stock_completers.py: Fixed exception
1143 on mismatching quotes in %run completer. Patch by
1146 on mismatching quotes in %run completer. Patch by
1144 Jorgen Stenarson. Closes #127.
1147 Jorgen Stenarson. Closes #127.
1145
1148
1146 2007-03-14 Ville Vainio <vivainio@gmail.com>
1149 2007-03-14 Ville Vainio <vivainio@gmail.com>
1147
1150
1148 * Extensions/ext_rehashdir.py: Do not do auto_alias
1151 * Extensions/ext_rehashdir.py: Do not do auto_alias
1149 in %rehashdir, it clobbers %store'd aliases.
1152 in %rehashdir, it clobbers %store'd aliases.
1150
1153
1151 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1154 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1152 (beefed up %env) imported for sh profile.
1155 (beefed up %env) imported for sh profile.
1153
1156
1154 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1157 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1155
1158
1156 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1159 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1157 as the default browser.
1160 as the default browser.
1158 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1161 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1159 As igrid displays all attributes it ever encounters, fetch() (which has
1162 As igrid displays all attributes it ever encounters, fetch() (which has
1160 been renamed to _fetch()) doesn't have to recalculate the display attributes
1163 been renamed to _fetch()) doesn't have to recalculate the display attributes
1161 every time a new item is fetched. This should speed up scrolling.
1164 every time a new item is fetched. This should speed up scrolling.
1162
1165
1163 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1166 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1164
1167
1165 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1168 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1166 Schmolck's recently reported tab-completion bug (my previous one
1169 Schmolck's recently reported tab-completion bug (my previous one
1167 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1170 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1168
1171
1169 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1172 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1170
1173
1171 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1174 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1172 Close help window if exiting igrid.
1175 Close help window if exiting igrid.
1173
1176
1174 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1177 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1175
1178
1176 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1179 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1177 before calling functions from readline.
1180 before calling functions from readline.
1178
1181
1179 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1182 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1180
1183
1181 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1184 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1182 igrid is a wxPython-based display object for ipipe. If your system has
1185 igrid is a wxPython-based display object for ipipe. If your system has
1183 wx installed igrid will be the default display. Without wx ipipe falls
1186 wx installed igrid will be the default display. Without wx ipipe falls
1184 back to ibrowse (which needs curses). If no curses is installed ipipe
1187 back to ibrowse (which needs curses). If no curses is installed ipipe
1185 falls back to idump.
1188 falls back to idump.
1186
1189
1187 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1190 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1188
1191
1189 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1192 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1190 my changes from yesterday, they introduced bugs. Will reactivate
1193 my changes from yesterday, they introduced bugs. Will reactivate
1191 once I get a correct solution, which will be much easier thanks to
1194 once I get a correct solution, which will be much easier thanks to
1192 Dan Milstein's new prefilter test suite.
1195 Dan Milstein's new prefilter test suite.
1193
1196
1194 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1197 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1195
1198
1196 * IPython/iplib.py (split_user_input): fix input splitting so we
1199 * IPython/iplib.py (split_user_input): fix input splitting so we
1197 don't attempt attribute accesses on things that can't possibly be
1200 don't attempt attribute accesses on things that can't possibly be
1198 valid Python attributes. After a bug report by Alex Schmolck.
1201 valid Python attributes. After a bug report by Alex Schmolck.
1199 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1202 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1200 %magic with explicit % prefix.
1203 %magic with explicit % prefix.
1201
1204
1202 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1205 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1203
1206
1204 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1207 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1205 avoid a DeprecationWarning from GTK.
1208 avoid a DeprecationWarning from GTK.
1206
1209
1207 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1210 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1208
1211
1209 * IPython/genutils.py (clock): I modified clock() to return total
1212 * IPython/genutils.py (clock): I modified clock() to return total
1210 time, user+system. This is a more commonly needed metric. I also
1213 time, user+system. This is a more commonly needed metric. I also
1211 introduced the new clocku/clocks to get only user/system time if
1214 introduced the new clocku/clocks to get only user/system time if
1212 one wants those instead.
1215 one wants those instead.
1213
1216
1214 ***WARNING: API CHANGE*** clock() used to return only user time,
1217 ***WARNING: API CHANGE*** clock() used to return only user time,
1215 so if you want exactly the same results as before, use clocku
1218 so if you want exactly the same results as before, use clocku
1216 instead.
1219 instead.
1217
1220
1218 2007-02-22 Ville Vainio <vivainio@gmail.com>
1221 2007-02-22 Ville Vainio <vivainio@gmail.com>
1219
1222
1220 * IPython/Extensions/ipy_p4.py: Extension for improved
1223 * IPython/Extensions/ipy_p4.py: Extension for improved
1221 p4 (perforce version control system) experience.
1224 p4 (perforce version control system) experience.
1222 Adds %p4 magic with p4 command completion and
1225 Adds %p4 magic with p4 command completion and
1223 automatic -G argument (marshall output as python dict)
1226 automatic -G argument (marshall output as python dict)
1224
1227
1225 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1228 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1226
1229
1227 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1230 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1228 stop marks.
1231 stop marks.
1229 (ClearingMixin): a simple mixin to easily make a Demo class clear
1232 (ClearingMixin): a simple mixin to easily make a Demo class clear
1230 the screen in between blocks and have empty marquees. The
1233 the screen in between blocks and have empty marquees. The
1231 ClearDemo and ClearIPDemo classes that use it are included.
1234 ClearDemo and ClearIPDemo classes that use it are included.
1232
1235
1233 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1236 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1234
1237
1235 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1238 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1236 protect against exceptions at Python shutdown time. Patch
1239 protect against exceptions at Python shutdown time. Patch
1237 sumbmitted to upstream.
1240 sumbmitted to upstream.
1238
1241
1239 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1242 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1240
1243
1241 * IPython/Extensions/ibrowse.py: If entering the first object level
1244 * IPython/Extensions/ibrowse.py: If entering the first object level
1242 (i.e. the object for which the browser has been started) fails,
1245 (i.e. the object for which the browser has been started) fails,
1243 now the error is raised directly (aborting the browser) instead of
1246 now the error is raised directly (aborting the browser) instead of
1244 running into an empty levels list later.
1247 running into an empty levels list later.
1245
1248
1246 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1249 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1247
1250
1248 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1251 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1249 for the noitem object.
1252 for the noitem object.
1250
1253
1251 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1254 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1252
1255
1253 * IPython/completer.py (Completer.attr_matches): Fix small
1256 * IPython/completer.py (Completer.attr_matches): Fix small
1254 tab-completion bug with Enthought Traits objects with units.
1257 tab-completion bug with Enthought Traits objects with units.
1255 Thanks to a bug report by Tom Denniston
1258 Thanks to a bug report by Tom Denniston
1256 <tom.denniston-AT-alum.dartmouth.org>.
1259 <tom.denniston-AT-alum.dartmouth.org>.
1257
1260
1258 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1261 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1259
1262
1260 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1263 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1261 bug where only .ipy or .py would be completed. Once the first
1264 bug where only .ipy or .py would be completed. Once the first
1262 argument to %run has been given, all completions are valid because
1265 argument to %run has been given, all completions are valid because
1263 they are the arguments to the script, which may well be non-python
1266 they are the arguments to the script, which may well be non-python
1264 filenames.
1267 filenames.
1265
1268
1266 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1269 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1267 to irunner to allow it to correctly support real doctesting of
1270 to irunner to allow it to correctly support real doctesting of
1268 out-of-process ipython code.
1271 out-of-process ipython code.
1269
1272
1270 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1273 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1271 title an option (-noterm_title) because it completely breaks
1274 title an option (-noterm_title) because it completely breaks
1272 doctesting.
1275 doctesting.
1273
1276
1274 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1277 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1275
1278
1276 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1279 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1277
1280
1278 * IPython/irunner.py (main): fix small bug where extensions were
1281 * IPython/irunner.py (main): fix small bug where extensions were
1279 not being correctly recognized.
1282 not being correctly recognized.
1280
1283
1281 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1284 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1282
1285
1283 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1286 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1284 a string containing a single line yields the string itself as the
1287 a string containing a single line yields the string itself as the
1285 only item.
1288 only item.
1286
1289
1287 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1290 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1288 object if it's the same as the one on the last level (This avoids
1291 object if it's the same as the one on the last level (This avoids
1289 infinite recursion for one line strings).
1292 infinite recursion for one line strings).
1290
1293
1291 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1294 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1292
1295
1293 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1296 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1294 all output streams before printing tracebacks. This ensures that
1297 all output streams before printing tracebacks. This ensures that
1295 user output doesn't end up interleaved with traceback output.
1298 user output doesn't end up interleaved with traceback output.
1296
1299
1297 2007-01-10 Ville Vainio <vivainio@gmail.com>
1300 2007-01-10 Ville Vainio <vivainio@gmail.com>
1298
1301
1299 * Extensions/envpersist.py: Turbocharged %env that remembers
1302 * Extensions/envpersist.py: Turbocharged %env that remembers
1300 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1303 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1301 "%env VISUAL=jed".
1304 "%env VISUAL=jed".
1302
1305
1303 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1306 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1304
1307
1305 * IPython/iplib.py (showtraceback): ensure that we correctly call
1308 * IPython/iplib.py (showtraceback): ensure that we correctly call
1306 custom handlers in all cases (some with pdb were slipping through,
1309 custom handlers in all cases (some with pdb were slipping through,
1307 but I'm not exactly sure why).
1310 but I'm not exactly sure why).
1308
1311
1309 * IPython/Debugger.py (Tracer.__init__): added new class to
1312 * IPython/Debugger.py (Tracer.__init__): added new class to
1310 support set_trace-like usage of IPython's enhanced debugger.
1313 support set_trace-like usage of IPython's enhanced debugger.
1311
1314
1312 2006-12-24 Ville Vainio <vivainio@gmail.com>
1315 2006-12-24 Ville Vainio <vivainio@gmail.com>
1313
1316
1314 * ipmaker.py: more informative message when ipy_user_conf
1317 * ipmaker.py: more informative message when ipy_user_conf
1315 import fails (suggest running %upgrade).
1318 import fails (suggest running %upgrade).
1316
1319
1317 * tools/run_ipy_in_profiler.py: Utility to see where
1320 * tools/run_ipy_in_profiler.py: Utility to see where
1318 the time during IPython startup is spent.
1321 the time during IPython startup is spent.
1319
1322
1320 2006-12-20 Ville Vainio <vivainio@gmail.com>
1323 2006-12-20 Ville Vainio <vivainio@gmail.com>
1321
1324
1322 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1325 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1323
1326
1324 * ipapi.py: Add new ipapi method, expand_alias.
1327 * ipapi.py: Add new ipapi method, expand_alias.
1325
1328
1326 * Release.py: Bump up version to 0.7.4.svn
1329 * Release.py: Bump up version to 0.7.4.svn
1327
1330
1328 2006-12-17 Ville Vainio <vivainio@gmail.com>
1331 2006-12-17 Ville Vainio <vivainio@gmail.com>
1329
1332
1330 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1333 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1331 to work properly on posix too
1334 to work properly on posix too
1332
1335
1333 * Release.py: Update revnum (version is still just 0.7.3).
1336 * Release.py: Update revnum (version is still just 0.7.3).
1334
1337
1335 2006-12-15 Ville Vainio <vivainio@gmail.com>
1338 2006-12-15 Ville Vainio <vivainio@gmail.com>
1336
1339
1337 * scripts/ipython_win_post_install: create ipython.py in
1340 * scripts/ipython_win_post_install: create ipython.py in
1338 prefix + "/scripts".
1341 prefix + "/scripts".
1339
1342
1340 * Release.py: Update version to 0.7.3.
1343 * Release.py: Update version to 0.7.3.
1341
1344
1342 2006-12-14 Ville Vainio <vivainio@gmail.com>
1345 2006-12-14 Ville Vainio <vivainio@gmail.com>
1343
1346
1344 * scripts/ipython_win_post_install: Overwrite old shortcuts
1347 * scripts/ipython_win_post_install: Overwrite old shortcuts
1345 if they already exist
1348 if they already exist
1346
1349
1347 * Release.py: release 0.7.3rc2
1350 * Release.py: release 0.7.3rc2
1348
1351
1349 2006-12-13 Ville Vainio <vivainio@gmail.com>
1352 2006-12-13 Ville Vainio <vivainio@gmail.com>
1350
1353
1351 * Branch and update Release.py for 0.7.3rc1
1354 * Branch and update Release.py for 0.7.3rc1
1352
1355
1353 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1356 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1354
1357
1355 * IPython/Shell.py (IPShellWX): update for current WX naming
1358 * IPython/Shell.py (IPShellWX): update for current WX naming
1356 conventions, to avoid a deprecation warning with current WX
1359 conventions, to avoid a deprecation warning with current WX
1357 versions. Thanks to a report by Danny Shevitz.
1360 versions. Thanks to a report by Danny Shevitz.
1358
1361
1359 2006-12-12 Ville Vainio <vivainio@gmail.com>
1362 2006-12-12 Ville Vainio <vivainio@gmail.com>
1360
1363
1361 * ipmaker.py: apply david cournapeau's patch to make
1364 * ipmaker.py: apply david cournapeau's patch to make
1362 import_some work properly even when ipythonrc does
1365 import_some work properly even when ipythonrc does
1363 import_some on empty list (it was an old bug!).
1366 import_some on empty list (it was an old bug!).
1364
1367
1365 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1368 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1366 Add deprecation note to ipythonrc and a url to wiki
1369 Add deprecation note to ipythonrc and a url to wiki
1367 in ipy_user_conf.py
1370 in ipy_user_conf.py
1368
1371
1369
1372
1370 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1373 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1371 as if it was typed on IPython command prompt, i.e.
1374 as if it was typed on IPython command prompt, i.e.
1372 as IPython script.
1375 as IPython script.
1373
1376
1374 * example-magic.py, magic_grepl.py: remove outdated examples
1377 * example-magic.py, magic_grepl.py: remove outdated examples
1375
1378
1376 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1379 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1377
1380
1378 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1381 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1379 is called before any exception has occurred.
1382 is called before any exception has occurred.
1380
1383
1381 2006-12-08 Ville Vainio <vivainio@gmail.com>
1384 2006-12-08 Ville Vainio <vivainio@gmail.com>
1382
1385
1383 * Extensions/ipy_stock_completers.py: fix cd completer
1386 * Extensions/ipy_stock_completers.py: fix cd completer
1384 to translate /'s to \'s again.
1387 to translate /'s to \'s again.
1385
1388
1386 * completer.py: prevent traceback on file completions w/
1389 * completer.py: prevent traceback on file completions w/
1387 backslash.
1390 backslash.
1388
1391
1389 * Release.py: Update release number to 0.7.3b3 for release
1392 * Release.py: Update release number to 0.7.3b3 for release
1390
1393
1391 2006-12-07 Ville Vainio <vivainio@gmail.com>
1394 2006-12-07 Ville Vainio <vivainio@gmail.com>
1392
1395
1393 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1396 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1394 while executing external code. Provides more shell-like behaviour
1397 while executing external code. Provides more shell-like behaviour
1395 and overall better response to ctrl + C / ctrl + break.
1398 and overall better response to ctrl + C / ctrl + break.
1396
1399
1397 * tools/make_tarball.py: new script to create tarball straight from svn
1400 * tools/make_tarball.py: new script to create tarball straight from svn
1398 (setup.py sdist doesn't work on win32).
1401 (setup.py sdist doesn't work on win32).
1399
1402
1400 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1403 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1401 on dirnames with spaces and use the default completer instead.
1404 on dirnames with spaces and use the default completer instead.
1402
1405
1403 * Revision.py: Change version to 0.7.3b2 for release.
1406 * Revision.py: Change version to 0.7.3b2 for release.
1404
1407
1405 2006-12-05 Ville Vainio <vivainio@gmail.com>
1408 2006-12-05 Ville Vainio <vivainio@gmail.com>
1406
1409
1407 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1410 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1408 pydb patch 4 (rm debug printing, py 2.5 checking)
1411 pydb patch 4 (rm debug printing, py 2.5 checking)
1409
1412
1410 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1413 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1411 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1414 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1412 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1415 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1413 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1416 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1414 object the cursor was on before the refresh. The command "markrange" is
1417 object the cursor was on before the refresh. The command "markrange" is
1415 mapped to "%" now.
1418 mapped to "%" now.
1416 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1419 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1417
1420
1418 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1421 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1419
1422
1420 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1423 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1421 interactive debugger on the last traceback, without having to call
1424 interactive debugger on the last traceback, without having to call
1422 %pdb and rerun your code. Made minor changes in various modules,
1425 %pdb and rerun your code. Made minor changes in various modules,
1423 should automatically recognize pydb if available.
1426 should automatically recognize pydb if available.
1424
1427
1425 2006-11-28 Ville Vainio <vivainio@gmail.com>
1428 2006-11-28 Ville Vainio <vivainio@gmail.com>
1426
1429
1427 * completer.py: If the text start with !, show file completions
1430 * completer.py: If the text start with !, show file completions
1428 properly. This helps when trying to complete command name
1431 properly. This helps when trying to complete command name
1429 for shell escapes.
1432 for shell escapes.
1430
1433
1431 2006-11-27 Ville Vainio <vivainio@gmail.com>
1434 2006-11-27 Ville Vainio <vivainio@gmail.com>
1432
1435
1433 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1436 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1434 der Walt. Clean up svn and hg completers by using a common
1437 der Walt. Clean up svn and hg completers by using a common
1435 vcs_completer.
1438 vcs_completer.
1436
1439
1437 2006-11-26 Ville Vainio <vivainio@gmail.com>
1440 2006-11-26 Ville Vainio <vivainio@gmail.com>
1438
1441
1439 * Remove ipconfig and %config; you should use _ip.options structure
1442 * Remove ipconfig and %config; you should use _ip.options structure
1440 directly instead!
1443 directly instead!
1441
1444
1442 * genutils.py: add wrap_deprecated function for deprecating callables
1445 * genutils.py: add wrap_deprecated function for deprecating callables
1443
1446
1444 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1447 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1445 _ip.system instead. ipalias is redundant.
1448 _ip.system instead. ipalias is redundant.
1446
1449
1447 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1450 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1448 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1451 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1449 explicit.
1452 explicit.
1450
1453
1451 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1454 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1452 completer. Try it by entering 'hg ' and pressing tab.
1455 completer. Try it by entering 'hg ' and pressing tab.
1453
1456
1454 * macro.py: Give Macro a useful __repr__ method
1457 * macro.py: Give Macro a useful __repr__ method
1455
1458
1456 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1459 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1457
1460
1458 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1461 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1459 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1462 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1460 we don't get a duplicate ipipe module, where registration of the xrepr
1463 we don't get a duplicate ipipe module, where registration of the xrepr
1461 implementation for Text is useless.
1464 implementation for Text is useless.
1462
1465
1463 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1466 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1464
1467
1465 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1468 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1466
1469
1467 2006-11-24 Ville Vainio <vivainio@gmail.com>
1470 2006-11-24 Ville Vainio <vivainio@gmail.com>
1468
1471
1469 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1472 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1470 try to use "cProfile" instead of the slower pure python
1473 try to use "cProfile" instead of the slower pure python
1471 "profile"
1474 "profile"
1472
1475
1473 2006-11-23 Ville Vainio <vivainio@gmail.com>
1476 2006-11-23 Ville Vainio <vivainio@gmail.com>
1474
1477
1475 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1478 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1476 Qt+IPython+Designer link in documentation.
1479 Qt+IPython+Designer link in documentation.
1477
1480
1478 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1481 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1479 correct Pdb object to %pydb.
1482 correct Pdb object to %pydb.
1480
1483
1481
1484
1482 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1485 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1483 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1486 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1484 generic xrepr(), otherwise the list implementation would kick in.
1487 generic xrepr(), otherwise the list implementation would kick in.
1485
1488
1486 2006-11-21 Ville Vainio <vivainio@gmail.com>
1489 2006-11-21 Ville Vainio <vivainio@gmail.com>
1487
1490
1488 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1491 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1489 with one from UserConfig.
1492 with one from UserConfig.
1490
1493
1491 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1494 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1492 it was missing which broke the sh profile.
1495 it was missing which broke the sh profile.
1493
1496
1494 * completer.py: file completer now uses explicit '/' instead
1497 * completer.py: file completer now uses explicit '/' instead
1495 of os.path.join, expansion of 'foo' was broken on win32
1498 of os.path.join, expansion of 'foo' was broken on win32
1496 if there was one directory with name 'foobar'.
1499 if there was one directory with name 'foobar'.
1497
1500
1498 * A bunch of patches from Kirill Smelkov:
1501 * A bunch of patches from Kirill Smelkov:
1499
1502
1500 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1503 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1501
1504
1502 * [patch 7/9] Implement %page -r (page in raw mode) -
1505 * [patch 7/9] Implement %page -r (page in raw mode) -
1503
1506
1504 * [patch 5/9] ScientificPython webpage has moved
1507 * [patch 5/9] ScientificPython webpage has moved
1505
1508
1506 * [patch 4/9] The manual mentions %ds, should be %dhist
1509 * [patch 4/9] The manual mentions %ds, should be %dhist
1507
1510
1508 * [patch 3/9] Kill old bits from %prun doc.
1511 * [patch 3/9] Kill old bits from %prun doc.
1509
1512
1510 * [patch 1/9] Fix typos here and there.
1513 * [patch 1/9] Fix typos here and there.
1511
1514
1512 2006-11-08 Ville Vainio <vivainio@gmail.com>
1515 2006-11-08 Ville Vainio <vivainio@gmail.com>
1513
1516
1514 * completer.py (attr_matches): catch all exceptions raised
1517 * completer.py (attr_matches): catch all exceptions raised
1515 by eval of expr with dots.
1518 by eval of expr with dots.
1516
1519
1517 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1520 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1518
1521
1519 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1522 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1520 input if it starts with whitespace. This allows you to paste
1523 input if it starts with whitespace. This allows you to paste
1521 indented input from any editor without manually having to type in
1524 indented input from any editor without manually having to type in
1522 the 'if 1:', which is convenient when working interactively.
1525 the 'if 1:', which is convenient when working interactively.
1523 Slightly modifed version of a patch by Bo Peng
1526 Slightly modifed version of a patch by Bo Peng
1524 <bpeng-AT-rice.edu>.
1527 <bpeng-AT-rice.edu>.
1525
1528
1526 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1529 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1527
1530
1528 * IPython/irunner.py (main): modified irunner so it automatically
1531 * IPython/irunner.py (main): modified irunner so it automatically
1529 recognizes the right runner to use based on the extension (.py for
1532 recognizes the right runner to use based on the extension (.py for
1530 python, .ipy for ipython and .sage for sage).
1533 python, .ipy for ipython and .sage for sage).
1531
1534
1532 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1535 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1533 visible in ipapi as ip.config(), to programatically control the
1536 visible in ipapi as ip.config(), to programatically control the
1534 internal rc object. There's an accompanying %config magic for
1537 internal rc object. There's an accompanying %config magic for
1535 interactive use, which has been enhanced to match the
1538 interactive use, which has been enhanced to match the
1536 funtionality in ipconfig.
1539 funtionality in ipconfig.
1537
1540
1538 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1541 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1539 so it's not just a toggle, it now takes an argument. Add support
1542 so it's not just a toggle, it now takes an argument. Add support
1540 for a customizable header when making system calls, as the new
1543 for a customizable header when making system calls, as the new
1541 system_header variable in the ipythonrc file.
1544 system_header variable in the ipythonrc file.
1542
1545
1543 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1546 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1544
1547
1545 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1548 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1546 generic functions (using Philip J. Eby's simplegeneric package).
1549 generic functions (using Philip J. Eby's simplegeneric package).
1547 This makes it possible to customize the display of third-party classes
1550 This makes it possible to customize the display of third-party classes
1548 without having to monkeypatch them. xiter() no longer supports a mode
1551 without having to monkeypatch them. xiter() no longer supports a mode
1549 argument and the XMode class has been removed. The same functionality can
1552 argument and the XMode class has been removed. The same functionality can
1550 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1553 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1551 One consequence of the switch to generic functions is that xrepr() and
1554 One consequence of the switch to generic functions is that xrepr() and
1552 xattrs() implementation must define the default value for the mode
1555 xattrs() implementation must define the default value for the mode
1553 argument themselves and xattrs() implementations must return real
1556 argument themselves and xattrs() implementations must return real
1554 descriptors.
1557 descriptors.
1555
1558
1556 * IPython/external: This new subpackage will contain all third-party
1559 * IPython/external: This new subpackage will contain all third-party
1557 packages that are bundled with IPython. (The first one is simplegeneric).
1560 packages that are bundled with IPython. (The first one is simplegeneric).
1558
1561
1559 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1562 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1560 directory which as been dropped in r1703.
1563 directory which as been dropped in r1703.
1561
1564
1562 * IPython/Extensions/ipipe.py (iless): Fixed.
1565 * IPython/Extensions/ipipe.py (iless): Fixed.
1563
1566
1564 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1567 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1565
1568
1566 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1569 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1567
1570
1568 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1571 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1569 handling in variable expansion so that shells and magics recognize
1572 handling in variable expansion so that shells and magics recognize
1570 function local scopes correctly. Bug reported by Brian.
1573 function local scopes correctly. Bug reported by Brian.
1571
1574
1572 * scripts/ipython: remove the very first entry in sys.path which
1575 * scripts/ipython: remove the very first entry in sys.path which
1573 Python auto-inserts for scripts, so that sys.path under IPython is
1576 Python auto-inserts for scripts, so that sys.path under IPython is
1574 as similar as possible to that under plain Python.
1577 as similar as possible to that under plain Python.
1575
1578
1576 * IPython/completer.py (IPCompleter.file_matches): Fix
1579 * IPython/completer.py (IPCompleter.file_matches): Fix
1577 tab-completion so that quotes are not closed unless the completion
1580 tab-completion so that quotes are not closed unless the completion
1578 is unambiguous. After a request by Stefan. Minor cleanups in
1581 is unambiguous. After a request by Stefan. Minor cleanups in
1579 ipy_stock_completers.
1582 ipy_stock_completers.
1580
1583
1581 2006-11-02 Ville Vainio <vivainio@gmail.com>
1584 2006-11-02 Ville Vainio <vivainio@gmail.com>
1582
1585
1583 * ipy_stock_completers.py: Add %run and %cd completers.
1586 * ipy_stock_completers.py: Add %run and %cd completers.
1584
1587
1585 * completer.py: Try running custom completer for both
1588 * completer.py: Try running custom completer for both
1586 "foo" and "%foo" if the command is just "foo". Ignore case
1589 "foo" and "%foo" if the command is just "foo". Ignore case
1587 when filtering possible completions.
1590 when filtering possible completions.
1588
1591
1589 * UserConfig/ipy_user_conf.py: install stock completers as default
1592 * UserConfig/ipy_user_conf.py: install stock completers as default
1590
1593
1591 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1594 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1592 simplified readline history save / restore through a wrapper
1595 simplified readline history save / restore through a wrapper
1593 function
1596 function
1594
1597
1595
1598
1596 2006-10-31 Ville Vainio <vivainio@gmail.com>
1599 2006-10-31 Ville Vainio <vivainio@gmail.com>
1597
1600
1598 * strdispatch.py, completer.py, ipy_stock_completers.py:
1601 * strdispatch.py, completer.py, ipy_stock_completers.py:
1599 Allow str_key ("command") in completer hooks. Implement
1602 Allow str_key ("command") in completer hooks. Implement
1600 trivial completer for 'import' (stdlib modules only). Rename
1603 trivial completer for 'import' (stdlib modules only). Rename
1601 ipy_linux_package_managers.py to ipy_stock_completers.py.
1604 ipy_linux_package_managers.py to ipy_stock_completers.py.
1602 SVN completer.
1605 SVN completer.
1603
1606
1604 * Extensions/ledit.py: %magic line editor for easily and
1607 * Extensions/ledit.py: %magic line editor for easily and
1605 incrementally manipulating lists of strings. The magic command
1608 incrementally manipulating lists of strings. The magic command
1606 name is %led.
1609 name is %led.
1607
1610
1608 2006-10-30 Ville Vainio <vivainio@gmail.com>
1611 2006-10-30 Ville Vainio <vivainio@gmail.com>
1609
1612
1610 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1613 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1611 Bernsteins's patches for pydb integration.
1614 Bernsteins's patches for pydb integration.
1612 http://bashdb.sourceforge.net/pydb/
1615 http://bashdb.sourceforge.net/pydb/
1613
1616
1614 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1617 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1615 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1618 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1616 custom completer hook to allow the users to implement their own
1619 custom completer hook to allow the users to implement their own
1617 completers. See ipy_linux_package_managers.py for example. The
1620 completers. See ipy_linux_package_managers.py for example. The
1618 hook name is 'complete_command'.
1621 hook name is 'complete_command'.
1619
1622
1620 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1623 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1621
1624
1622 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1625 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1623 Numeric leftovers.
1626 Numeric leftovers.
1624
1627
1625 * ipython.el (py-execute-region): apply Stefan's patch to fix
1628 * ipython.el (py-execute-region): apply Stefan's patch to fix
1626 garbled results if the python shell hasn't been previously started.
1629 garbled results if the python shell hasn't been previously started.
1627
1630
1628 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1631 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1629 pretty generic function and useful for other things.
1632 pretty generic function and useful for other things.
1630
1633
1631 * IPython/OInspect.py (getsource): Add customizable source
1634 * IPython/OInspect.py (getsource): Add customizable source
1632 extractor. After a request/patch form W. Stein (SAGE).
1635 extractor. After a request/patch form W. Stein (SAGE).
1633
1636
1634 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1637 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1635 window size to a more reasonable value from what pexpect does,
1638 window size to a more reasonable value from what pexpect does,
1636 since their choice causes wrapping bugs with long input lines.
1639 since their choice causes wrapping bugs with long input lines.
1637
1640
1638 2006-10-28 Ville Vainio <vivainio@gmail.com>
1641 2006-10-28 Ville Vainio <vivainio@gmail.com>
1639
1642
1640 * Magic.py (%run): Save and restore the readline history from
1643 * Magic.py (%run): Save and restore the readline history from
1641 file around %run commands to prevent side effects from
1644 file around %run commands to prevent side effects from
1642 %runned programs that might use readline (e.g. pydb).
1645 %runned programs that might use readline (e.g. pydb).
1643
1646
1644 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1647 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1645 invoking the pydb enhanced debugger.
1648 invoking the pydb enhanced debugger.
1646
1649
1647 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1650 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1648
1651
1649 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1652 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1650 call the base class method and propagate the return value to
1653 call the base class method and propagate the return value to
1651 ifile. This is now done by path itself.
1654 ifile. This is now done by path itself.
1652
1655
1653 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1656 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1654
1657
1655 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1658 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1656 api: set_crash_handler(), to expose the ability to change the
1659 api: set_crash_handler(), to expose the ability to change the
1657 internal crash handler.
1660 internal crash handler.
1658
1661
1659 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1662 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1660 the various parameters of the crash handler so that apps using
1663 the various parameters of the crash handler so that apps using
1661 IPython as their engine can customize crash handling. Ipmlemented
1664 IPython as their engine can customize crash handling. Ipmlemented
1662 at the request of SAGE.
1665 at the request of SAGE.
1663
1666
1664 2006-10-14 Ville Vainio <vivainio@gmail.com>
1667 2006-10-14 Ville Vainio <vivainio@gmail.com>
1665
1668
1666 * Magic.py, ipython.el: applied first "safe" part of Rocky
1669 * Magic.py, ipython.el: applied first "safe" part of Rocky
1667 Bernstein's patch set for pydb integration.
1670 Bernstein's patch set for pydb integration.
1668
1671
1669 * Magic.py (%unalias, %alias): %store'd aliases can now be
1672 * Magic.py (%unalias, %alias): %store'd aliases can now be
1670 removed with '%unalias'. %alias w/o args now shows most
1673 removed with '%unalias'. %alias w/o args now shows most
1671 interesting (stored / manually defined) aliases last
1674 interesting (stored / manually defined) aliases last
1672 where they catch the eye w/o scrolling.
1675 where they catch the eye w/o scrolling.
1673
1676
1674 * Magic.py (%rehashx), ext_rehashdir.py: files with
1677 * Magic.py (%rehashx), ext_rehashdir.py: files with
1675 'py' extension are always considered executable, even
1678 'py' extension are always considered executable, even
1676 when not in PATHEXT environment variable.
1679 when not in PATHEXT environment variable.
1677
1680
1678 2006-10-12 Ville Vainio <vivainio@gmail.com>
1681 2006-10-12 Ville Vainio <vivainio@gmail.com>
1679
1682
1680 * jobctrl.py: Add new "jobctrl" extension for spawning background
1683 * jobctrl.py: Add new "jobctrl" extension for spawning background
1681 processes with "&find /". 'import jobctrl' to try it out. Requires
1684 processes with "&find /". 'import jobctrl' to try it out. Requires
1682 'subprocess' module, standard in python 2.4+.
1685 'subprocess' module, standard in python 2.4+.
1683
1686
1684 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1687 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1685 so if foo -> bar and bar -> baz, then foo -> baz.
1688 so if foo -> bar and bar -> baz, then foo -> baz.
1686
1689
1687 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1690 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1688
1691
1689 * IPython/Magic.py (Magic.parse_options): add a new posix option
1692 * IPython/Magic.py (Magic.parse_options): add a new posix option
1690 to allow parsing of input args in magics that doesn't strip quotes
1693 to allow parsing of input args in magics that doesn't strip quotes
1691 (if posix=False). This also closes %timeit bug reported by
1694 (if posix=False). This also closes %timeit bug reported by
1692 Stefan.
1695 Stefan.
1693
1696
1694 2006-10-03 Ville Vainio <vivainio@gmail.com>
1697 2006-10-03 Ville Vainio <vivainio@gmail.com>
1695
1698
1696 * iplib.py (raw_input, interact): Return ValueError catching for
1699 * iplib.py (raw_input, interact): Return ValueError catching for
1697 raw_input. Fixes infinite loop for sys.stdin.close() or
1700 raw_input. Fixes infinite loop for sys.stdin.close() or
1698 sys.stdout.close().
1701 sys.stdout.close().
1699
1702
1700 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1703 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1701
1704
1702 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1705 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1703 to help in handling doctests. irunner is now pretty useful for
1706 to help in handling doctests. irunner is now pretty useful for
1704 running standalone scripts and simulate a full interactive session
1707 running standalone scripts and simulate a full interactive session
1705 in a format that can be then pasted as a doctest.
1708 in a format that can be then pasted as a doctest.
1706
1709
1707 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1710 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1708 on top of the default (useless) ones. This also fixes the nasty
1711 on top of the default (useless) ones. This also fixes the nasty
1709 way in which 2.5's Quitter() exits (reverted [1785]).
1712 way in which 2.5's Quitter() exits (reverted [1785]).
1710
1713
1711 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1714 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1712 2.5.
1715 2.5.
1713
1716
1714 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1717 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1715 color scheme is updated as well when color scheme is changed
1718 color scheme is updated as well when color scheme is changed
1716 interactively.
1719 interactively.
1717
1720
1718 2006-09-27 Ville Vainio <vivainio@gmail.com>
1721 2006-09-27 Ville Vainio <vivainio@gmail.com>
1719
1722
1720 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1723 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1721 infinite loop and just exit. It's a hack, but will do for a while.
1724 infinite loop and just exit. It's a hack, but will do for a while.
1722
1725
1723 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1726 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1724
1727
1725 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1728 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1726 the constructor, this makes it possible to get a list of only directories
1729 the constructor, this makes it possible to get a list of only directories
1727 or only files.
1730 or only files.
1728
1731
1729 2006-08-12 Ville Vainio <vivainio@gmail.com>
1732 2006-08-12 Ville Vainio <vivainio@gmail.com>
1730
1733
1731 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1734 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1732 they broke unittest
1735 they broke unittest
1733
1736
1734 2006-08-11 Ville Vainio <vivainio@gmail.com>
1737 2006-08-11 Ville Vainio <vivainio@gmail.com>
1735
1738
1736 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1739 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1737 by resolving issue properly, i.e. by inheriting FakeModule
1740 by resolving issue properly, i.e. by inheriting FakeModule
1738 from types.ModuleType. Pickling ipython interactive data
1741 from types.ModuleType. Pickling ipython interactive data
1739 should still work as usual (testing appreciated).
1742 should still work as usual (testing appreciated).
1740
1743
1741 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1744 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1742
1745
1743 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1746 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1744 running under python 2.3 with code from 2.4 to fix a bug with
1747 running under python 2.3 with code from 2.4 to fix a bug with
1745 help(). Reported by the Debian maintainers, Norbert Tretkowski
1748 help(). Reported by the Debian maintainers, Norbert Tretkowski
1746 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1749 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1747 <afayolle-AT-debian.org>.
1750 <afayolle-AT-debian.org>.
1748
1751
1749 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1752 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1750
1753
1751 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1754 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1752 (which was displaying "quit" twice).
1755 (which was displaying "quit" twice).
1753
1756
1754 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1757 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1755
1758
1756 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1759 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1757 the mode argument).
1760 the mode argument).
1758
1761
1759 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1762 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1760
1763
1761 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1764 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1762 not running under IPython.
1765 not running under IPython.
1763
1766
1764 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1767 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1765 and make it iterable (iterating over the attribute itself). Add two new
1768 and make it iterable (iterating over the attribute itself). Add two new
1766 magic strings for __xattrs__(): If the string starts with "-", the attribute
1769 magic strings for __xattrs__(): If the string starts with "-", the attribute
1767 will not be displayed in ibrowse's detail view (but it can still be
1770 will not be displayed in ibrowse's detail view (but it can still be
1768 iterated over). This makes it possible to add attributes that are large
1771 iterated over). This makes it possible to add attributes that are large
1769 lists or generator methods to the detail view. Replace magic attribute names
1772 lists or generator methods to the detail view. Replace magic attribute names
1770 and _attrname() and _getattr() with "descriptors": For each type of magic
1773 and _attrname() and _getattr() with "descriptors": For each type of magic
1771 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1774 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1772 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1775 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1773 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1776 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1774 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1777 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1775 are still supported.
1778 are still supported.
1776
1779
1777 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1780 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1778 fails in ibrowse.fetch(), the exception object is added as the last item
1781 fails in ibrowse.fetch(), the exception object is added as the last item
1779 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1782 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1780 a generator throws an exception midway through execution.
1783 a generator throws an exception midway through execution.
1781
1784
1782 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1785 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1783 encoding into methods.
1786 encoding into methods.
1784
1787
1785 2006-07-26 Ville Vainio <vivainio@gmail.com>
1788 2006-07-26 Ville Vainio <vivainio@gmail.com>
1786
1789
1787 * iplib.py: history now stores multiline input as single
1790 * iplib.py: history now stores multiline input as single
1788 history entries. Patch by Jorgen Cederlof.
1791 history entries. Patch by Jorgen Cederlof.
1789
1792
1790 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1793 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1791
1794
1792 * IPython/Extensions/ibrowse.py: Make cursor visible over
1795 * IPython/Extensions/ibrowse.py: Make cursor visible over
1793 non existing attributes.
1796 non existing attributes.
1794
1797
1795 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1798 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1796
1799
1797 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1800 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1798 error output of the running command doesn't mess up the screen.
1801 error output of the running command doesn't mess up the screen.
1799
1802
1800 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1803 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1801
1804
1802 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1805 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1803 argument. This sorts the items themselves.
1806 argument. This sorts the items themselves.
1804
1807
1805 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1808 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1806
1809
1807 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1810 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1808 Compile expression strings into code objects. This should speed
1811 Compile expression strings into code objects. This should speed
1809 up ifilter and friends somewhat.
1812 up ifilter and friends somewhat.
1810
1813
1811 2006-07-08 Ville Vainio <vivainio@gmail.com>
1814 2006-07-08 Ville Vainio <vivainio@gmail.com>
1812
1815
1813 * Magic.py: %cpaste now strips > from the beginning of lines
1816 * Magic.py: %cpaste now strips > from the beginning of lines
1814 to ease pasting quoted code from emails. Contributed by
1817 to ease pasting quoted code from emails. Contributed by
1815 Stefan van der Walt.
1818 Stefan van der Walt.
1816
1819
1817 2006-06-29 Ville Vainio <vivainio@gmail.com>
1820 2006-06-29 Ville Vainio <vivainio@gmail.com>
1818
1821
1819 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1822 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1820 mode, patch contributed by Darren Dale. NEEDS TESTING!
1823 mode, patch contributed by Darren Dale. NEEDS TESTING!
1821
1824
1822 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1825 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1823
1826
1824 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1827 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1825 a blue background. Fix fetching new display rows when the browser
1828 a blue background. Fix fetching new display rows when the browser
1826 scrolls more than a screenful (e.g. by using the goto command).
1829 scrolls more than a screenful (e.g. by using the goto command).
1827
1830
1828 2006-06-27 Ville Vainio <vivainio@gmail.com>
1831 2006-06-27 Ville Vainio <vivainio@gmail.com>
1829
1832
1830 * Magic.py (_inspect, _ofind) Apply David Huard's
1833 * Magic.py (_inspect, _ofind) Apply David Huard's
1831 patch for displaying the correct docstring for 'property'
1834 patch for displaying the correct docstring for 'property'
1832 attributes.
1835 attributes.
1833
1836
1834 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1837 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1835
1838
1836 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1839 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1837 commands into the methods implementing them.
1840 commands into the methods implementing them.
1838
1841
1839 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1842 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1840
1843
1841 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1844 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1842 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1845 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1843 autoindent support was authored by Jin Liu.
1846 autoindent support was authored by Jin Liu.
1844
1847
1845 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1848 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1846
1849
1847 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1850 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1848 for keymaps with a custom class that simplifies handling.
1851 for keymaps with a custom class that simplifies handling.
1849
1852
1850 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1853 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1851
1854
1852 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1855 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1853 resizing. This requires Python 2.5 to work.
1856 resizing. This requires Python 2.5 to work.
1854
1857
1855 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1858 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1856
1859
1857 * IPython/Extensions/ibrowse.py: Add two new commands to
1860 * IPython/Extensions/ibrowse.py: Add two new commands to
1858 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1861 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1859 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1862 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1860 attributes again. Remapped the help command to "?". Display
1863 attributes again. Remapped the help command to "?". Display
1861 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1864 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1862 as keys for the "home" and "end" commands. Add three new commands
1865 as keys for the "home" and "end" commands. Add three new commands
1863 to the input mode for "find" and friends: "delend" (CTRL-K)
1866 to the input mode for "find" and friends: "delend" (CTRL-K)
1864 deletes to the end of line. "incsearchup" searches upwards in the
1867 deletes to the end of line. "incsearchup" searches upwards in the
1865 command history for an input that starts with the text before the cursor.
1868 command history for an input that starts with the text before the cursor.
1866 "incsearchdown" does the same downwards. Removed a bogus mapping of
1869 "incsearchdown" does the same downwards. Removed a bogus mapping of
1867 the x key to "delete".
1870 the x key to "delete".
1868
1871
1869 2006-06-15 Ville Vainio <vivainio@gmail.com>
1872 2006-06-15 Ville Vainio <vivainio@gmail.com>
1870
1873
1871 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1874 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1872 used to create prompts dynamically, instead of the "old" way of
1875 used to create prompts dynamically, instead of the "old" way of
1873 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1876 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1874 way still works (it's invoked by the default hook), of course.
1877 way still works (it's invoked by the default hook), of course.
1875
1878
1876 * Prompts.py: added generate_output_prompt hook for altering output
1879 * Prompts.py: added generate_output_prompt hook for altering output
1877 prompt
1880 prompt
1878
1881
1879 * Release.py: Changed version string to 0.7.3.svn.
1882 * Release.py: Changed version string to 0.7.3.svn.
1880
1883
1881 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1884 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1882
1885
1883 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1886 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1884 the call to fetch() always tries to fetch enough data for at least one
1887 the call to fetch() always tries to fetch enough data for at least one
1885 full screen. This makes it possible to simply call moveto(0,0,True) in
1888 full screen. This makes it possible to simply call moveto(0,0,True) in
1886 the constructor. Fix typos and removed the obsolete goto attribute.
1889 the constructor. Fix typos and removed the obsolete goto attribute.
1887
1890
1888 2006-06-12 Ville Vainio <vivainio@gmail.com>
1891 2006-06-12 Ville Vainio <vivainio@gmail.com>
1889
1892
1890 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1893 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1891 allowing $variable interpolation within multiline statements,
1894 allowing $variable interpolation within multiline statements,
1892 though so far only with "sh" profile for a testing period.
1895 though so far only with "sh" profile for a testing period.
1893 The patch also enables splitting long commands with \ but it
1896 The patch also enables splitting long commands with \ but it
1894 doesn't work properly yet.
1897 doesn't work properly yet.
1895
1898
1896 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1899 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1897
1900
1898 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1901 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1899 input history and the position of the cursor in the input history for
1902 input history and the position of the cursor in the input history for
1900 the find, findbackwards and goto command.
1903 the find, findbackwards and goto command.
1901
1904
1902 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1905 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1903
1906
1904 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1907 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1905 implements the basic functionality of browser commands that require
1908 implements the basic functionality of browser commands that require
1906 input. Reimplement the goto, find and findbackwards commands as
1909 input. Reimplement the goto, find and findbackwards commands as
1907 subclasses of _CommandInput. Add an input history and keymaps to those
1910 subclasses of _CommandInput. Add an input history and keymaps to those
1908 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1911 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1909 execute commands.
1912 execute commands.
1910
1913
1911 2006-06-07 Ville Vainio <vivainio@gmail.com>
1914 2006-06-07 Ville Vainio <vivainio@gmail.com>
1912
1915
1913 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1916 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1914 running the batch files instead of leaving the session open.
1917 running the batch files instead of leaving the session open.
1915
1918
1916 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1919 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1917
1920
1918 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1921 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1919 the original fix was incomplete. Patch submitted by W. Maier.
1922 the original fix was incomplete. Patch submitted by W. Maier.
1920
1923
1921 2006-06-07 Ville Vainio <vivainio@gmail.com>
1924 2006-06-07 Ville Vainio <vivainio@gmail.com>
1922
1925
1923 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1926 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1924 Confirmation prompts can be supressed by 'quiet' option.
1927 Confirmation prompts can be supressed by 'quiet' option.
1925 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1928 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1926
1929
1927 2006-06-06 *** Released version 0.7.2
1930 2006-06-06 *** Released version 0.7.2
1928
1931
1929 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1932 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1930
1933
1931 * IPython/Release.py (version): Made 0.7.2 final for release.
1934 * IPython/Release.py (version): Made 0.7.2 final for release.
1932 Repo tagged and release cut.
1935 Repo tagged and release cut.
1933
1936
1934 2006-06-05 Ville Vainio <vivainio@gmail.com>
1937 2006-06-05 Ville Vainio <vivainio@gmail.com>
1935
1938
1936 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1939 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1937 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1940 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1938
1941
1939 * upgrade_dir.py: try import 'path' module a bit harder
1942 * upgrade_dir.py: try import 'path' module a bit harder
1940 (for %upgrade)
1943 (for %upgrade)
1941
1944
1942 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1945 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1943
1946
1944 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1947 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1945 instead of looping 20 times.
1948 instead of looping 20 times.
1946
1949
1947 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1950 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1948 correctly at initialization time. Bug reported by Krishna Mohan
1951 correctly at initialization time. Bug reported by Krishna Mohan
1949 Gundu <gkmohan-AT-gmail.com> on the user list.
1952 Gundu <gkmohan-AT-gmail.com> on the user list.
1950
1953
1951 * IPython/Release.py (version): Mark 0.7.2 version to start
1954 * IPython/Release.py (version): Mark 0.7.2 version to start
1952 testing for release on 06/06.
1955 testing for release on 06/06.
1953
1956
1954 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1957 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1955
1958
1956 * scripts/irunner: thin script interface so users don't have to
1959 * scripts/irunner: thin script interface so users don't have to
1957 find the module and call it as an executable, since modules rarely
1960 find the module and call it as an executable, since modules rarely
1958 live in people's PATH.
1961 live in people's PATH.
1959
1962
1960 * IPython/irunner.py (InteractiveRunner.__init__): added
1963 * IPython/irunner.py (InteractiveRunner.__init__): added
1961 delaybeforesend attribute to control delays with newer versions of
1964 delaybeforesend attribute to control delays with newer versions of
1962 pexpect. Thanks to detailed help from pexpect's author, Noah
1965 pexpect. Thanks to detailed help from pexpect's author, Noah
1963 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1966 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1964 correctly (it works in NoColor mode).
1967 correctly (it works in NoColor mode).
1965
1968
1966 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1969 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1967 SAGE list, from improper log() calls.
1970 SAGE list, from improper log() calls.
1968
1971
1969 2006-05-31 Ville Vainio <vivainio@gmail.com>
1972 2006-05-31 Ville Vainio <vivainio@gmail.com>
1970
1973
1971 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1974 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1972 with args in parens to work correctly with dirs that have spaces.
1975 with args in parens to work correctly with dirs that have spaces.
1973
1976
1974 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1977 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1975
1978
1976 * IPython/Logger.py (Logger.logstart): add option to log raw input
1979 * IPython/Logger.py (Logger.logstart): add option to log raw input
1977 instead of the processed one. A -r flag was added to the
1980 instead of the processed one. A -r flag was added to the
1978 %logstart magic used for controlling logging.
1981 %logstart magic used for controlling logging.
1979
1982
1980 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1983 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1981
1984
1982 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1985 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1983 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1986 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1984 recognize the option. After a bug report by Will Maier. This
1987 recognize the option. After a bug report by Will Maier. This
1985 closes #64 (will do it after confirmation from W. Maier).
1988 closes #64 (will do it after confirmation from W. Maier).
1986
1989
1987 * IPython/irunner.py: New module to run scripts as if manually
1990 * IPython/irunner.py: New module to run scripts as if manually
1988 typed into an interactive environment, based on pexpect. After a
1991 typed into an interactive environment, based on pexpect. After a
1989 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1992 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1990 ipython-user list. Simple unittests in the tests/ directory.
1993 ipython-user list. Simple unittests in the tests/ directory.
1991
1994
1992 * tools/release: add Will Maier, OpenBSD port maintainer, to
1995 * tools/release: add Will Maier, OpenBSD port maintainer, to
1993 recepients list. We are now officially part of the OpenBSD ports:
1996 recepients list. We are now officially part of the OpenBSD ports:
1994 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1997 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1995 work.
1998 work.
1996
1999
1997 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2000 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1998
2001
1999 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2002 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2000 so that it doesn't break tkinter apps.
2003 so that it doesn't break tkinter apps.
2001
2004
2002 * IPython/iplib.py (_prefilter): fix bug where aliases would
2005 * IPython/iplib.py (_prefilter): fix bug where aliases would
2003 shadow variables when autocall was fully off. Reported by SAGE
2006 shadow variables when autocall was fully off. Reported by SAGE
2004 author William Stein.
2007 author William Stein.
2005
2008
2006 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2009 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2007 at what detail level strings are computed when foo? is requested.
2010 at what detail level strings are computed when foo? is requested.
2008 This allows users to ask for example that the string form of an
2011 This allows users to ask for example that the string form of an
2009 object is only computed when foo?? is called, or even never, by
2012 object is only computed when foo?? is called, or even never, by
2010 setting the object_info_string_level >= 2 in the configuration
2013 setting the object_info_string_level >= 2 in the configuration
2011 file. This new option has been added and documented. After a
2014 file. This new option has been added and documented. After a
2012 request by SAGE to be able to control the printing of very large
2015 request by SAGE to be able to control the printing of very large
2013 objects more easily.
2016 objects more easily.
2014
2017
2015 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2018 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2016
2019
2017 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2020 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2018 from sys.argv, to be 100% consistent with how Python itself works
2021 from sys.argv, to be 100% consistent with how Python itself works
2019 (as seen for example with python -i file.py). After a bug report
2022 (as seen for example with python -i file.py). After a bug report
2020 by Jeffrey Collins.
2023 by Jeffrey Collins.
2021
2024
2022 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2025 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2023 nasty bug which was preventing custom namespaces with -pylab,
2026 nasty bug which was preventing custom namespaces with -pylab,
2024 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2027 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2025 compatibility (long gone from mpl).
2028 compatibility (long gone from mpl).
2026
2029
2027 * IPython/ipapi.py (make_session): name change: create->make. We
2030 * IPython/ipapi.py (make_session): name change: create->make. We
2028 use make in other places (ipmaker,...), it's shorter and easier to
2031 use make in other places (ipmaker,...), it's shorter and easier to
2029 type and say, etc. I'm trying to clean things before 0.7.2 so
2032 type and say, etc. I'm trying to clean things before 0.7.2 so
2030 that I can keep things stable wrt to ipapi in the chainsaw branch.
2033 that I can keep things stable wrt to ipapi in the chainsaw branch.
2031
2034
2032 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2035 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2033 python-mode recognizes our debugger mode. Add support for
2036 python-mode recognizes our debugger mode. Add support for
2034 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2037 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2035 <m.liu.jin-AT-gmail.com> originally written by
2038 <m.liu.jin-AT-gmail.com> originally written by
2036 doxgen-AT-newsmth.net (with minor modifications for xemacs
2039 doxgen-AT-newsmth.net (with minor modifications for xemacs
2037 compatibility)
2040 compatibility)
2038
2041
2039 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2042 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2040 tracebacks when walking the stack so that the stack tracking system
2043 tracebacks when walking the stack so that the stack tracking system
2041 in emacs' python-mode can identify the frames correctly.
2044 in emacs' python-mode can identify the frames correctly.
2042
2045
2043 * IPython/ipmaker.py (make_IPython): make the internal (and
2046 * IPython/ipmaker.py (make_IPython): make the internal (and
2044 default config) autoedit_syntax value false by default. Too many
2047 default config) autoedit_syntax value false by default. Too many
2045 users have complained to me (both on and off-list) about problems
2048 users have complained to me (both on and off-list) about problems
2046 with this option being on by default, so I'm making it default to
2049 with this option being on by default, so I'm making it default to
2047 off. It can still be enabled by anyone via the usual mechanisms.
2050 off. It can still be enabled by anyone via the usual mechanisms.
2048
2051
2049 * IPython/completer.py (Completer.attr_matches): add support for
2052 * IPython/completer.py (Completer.attr_matches): add support for
2050 PyCrust-style _getAttributeNames magic method. Patch contributed
2053 PyCrust-style _getAttributeNames magic method. Patch contributed
2051 by <mscott-AT-goldenspud.com>. Closes #50.
2054 by <mscott-AT-goldenspud.com>. Closes #50.
2052
2055
2053 * IPython/iplib.py (InteractiveShell.__init__): remove the
2056 * IPython/iplib.py (InteractiveShell.__init__): remove the
2054 deletion of exit/quit from __builtin__, which can break
2057 deletion of exit/quit from __builtin__, which can break
2055 third-party tools like the Zope debugging console. The
2058 third-party tools like the Zope debugging console. The
2056 %exit/%quit magics remain. In general, it's probably a good idea
2059 %exit/%quit magics remain. In general, it's probably a good idea
2057 not to delete anything from __builtin__, since we never know what
2060 not to delete anything from __builtin__, since we never know what
2058 that will break. In any case, python now (for 2.5) will support
2061 that will break. In any case, python now (for 2.5) will support
2059 'real' exit/quit, so this issue is moot. Closes #55.
2062 'real' exit/quit, so this issue is moot. Closes #55.
2060
2063
2061 * IPython/genutils.py (with_obj): rename the 'with' function to
2064 * IPython/genutils.py (with_obj): rename the 'with' function to
2062 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2065 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2063 becomes a language keyword. Closes #53.
2066 becomes a language keyword. Closes #53.
2064
2067
2065 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2068 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2066 __file__ attribute to this so it fools more things into thinking
2069 __file__ attribute to this so it fools more things into thinking
2067 it is a real module. Closes #59.
2070 it is a real module. Closes #59.
2068
2071
2069 * IPython/Magic.py (magic_edit): add -n option to open the editor
2072 * IPython/Magic.py (magic_edit): add -n option to open the editor
2070 at a specific line number. After a patch by Stefan van der Walt.
2073 at a specific line number. After a patch by Stefan van der Walt.
2071
2074
2072 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2075 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2073
2076
2074 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2077 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2075 reason the file could not be opened. After automatic crash
2078 reason the file could not be opened. After automatic crash
2076 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2079 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2077 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2080 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2078 (_should_recompile): Don't fire editor if using %bg, since there
2081 (_should_recompile): Don't fire editor if using %bg, since there
2079 is no file in the first place. From the same report as above.
2082 is no file in the first place. From the same report as above.
2080 (raw_input): protect against faulty third-party prefilters. After
2083 (raw_input): protect against faulty third-party prefilters. After
2081 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2084 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2082 while running under SAGE.
2085 while running under SAGE.
2083
2086
2084 2006-05-23 Ville Vainio <vivainio@gmail.com>
2087 2006-05-23 Ville Vainio <vivainio@gmail.com>
2085
2088
2086 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2089 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2087 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2090 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2088 now returns None (again), unless dummy is specifically allowed by
2091 now returns None (again), unless dummy is specifically allowed by
2089 ipapi.get(allow_dummy=True).
2092 ipapi.get(allow_dummy=True).
2090
2093
2091 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2094 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2092
2095
2093 * IPython: remove all 2.2-compatibility objects and hacks from
2096 * IPython: remove all 2.2-compatibility objects and hacks from
2094 everywhere, since we only support 2.3 at this point. Docs
2097 everywhere, since we only support 2.3 at this point. Docs
2095 updated.
2098 updated.
2096
2099
2097 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2100 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2098 Anything requiring extra validation can be turned into a Python
2101 Anything requiring extra validation can be turned into a Python
2099 property in the future. I used a property for the db one b/c
2102 property in the future. I used a property for the db one b/c
2100 there was a nasty circularity problem with the initialization
2103 there was a nasty circularity problem with the initialization
2101 order, which right now I don't have time to clean up.
2104 order, which right now I don't have time to clean up.
2102
2105
2103 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2106 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2104 another locking bug reported by Jorgen. I'm not 100% sure though,
2107 another locking bug reported by Jorgen. I'm not 100% sure though,
2105 so more testing is needed...
2108 so more testing is needed...
2106
2109
2107 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2110 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2108
2111
2109 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2112 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2110 local variables from any routine in user code (typically executed
2113 local variables from any routine in user code (typically executed
2111 with %run) directly into the interactive namespace. Very useful
2114 with %run) directly into the interactive namespace. Very useful
2112 when doing complex debugging.
2115 when doing complex debugging.
2113 (IPythonNotRunning): Changed the default None object to a dummy
2116 (IPythonNotRunning): Changed the default None object to a dummy
2114 whose attributes can be queried as well as called without
2117 whose attributes can be queried as well as called without
2115 exploding, to ease writing code which works transparently both in
2118 exploding, to ease writing code which works transparently both in
2116 and out of ipython and uses some of this API.
2119 and out of ipython and uses some of this API.
2117
2120
2118 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2121 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2119
2122
2120 * IPython/hooks.py (result_display): Fix the fact that our display
2123 * IPython/hooks.py (result_display): Fix the fact that our display
2121 hook was using str() instead of repr(), as the default python
2124 hook was using str() instead of repr(), as the default python
2122 console does. This had gone unnoticed b/c it only happened if
2125 console does. This had gone unnoticed b/c it only happened if
2123 %Pprint was off, but the inconsistency was there.
2126 %Pprint was off, but the inconsistency was there.
2124
2127
2125 2006-05-15 Ville Vainio <vivainio@gmail.com>
2128 2006-05-15 Ville Vainio <vivainio@gmail.com>
2126
2129
2127 * Oinspect.py: Only show docstring for nonexisting/binary files
2130 * Oinspect.py: Only show docstring for nonexisting/binary files
2128 when doing object??, closing ticket #62
2131 when doing object??, closing ticket #62
2129
2132
2130 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2133 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2131
2134
2132 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2135 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2133 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2136 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2134 was being released in a routine which hadn't checked if it had
2137 was being released in a routine which hadn't checked if it had
2135 been the one to acquire it.
2138 been the one to acquire it.
2136
2139
2137 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2140 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2138
2141
2139 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2142 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2140
2143
2141 2006-04-11 Ville Vainio <vivainio@gmail.com>
2144 2006-04-11 Ville Vainio <vivainio@gmail.com>
2142
2145
2143 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2146 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2144 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2147 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2145 prefilters, allowing stuff like magics and aliases in the file.
2148 prefilters, allowing stuff like magics and aliases in the file.
2146
2149
2147 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2150 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2148 added. Supported now are "%clear in" and "%clear out" (clear input and
2151 added. Supported now are "%clear in" and "%clear out" (clear input and
2149 output history, respectively). Also fixed CachedOutput.flush to
2152 output history, respectively). Also fixed CachedOutput.flush to
2150 properly flush the output cache.
2153 properly flush the output cache.
2151
2154
2152 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2155 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2153 half-success (and fail explicitly).
2156 half-success (and fail explicitly).
2154
2157
2155 2006-03-28 Ville Vainio <vivainio@gmail.com>
2158 2006-03-28 Ville Vainio <vivainio@gmail.com>
2156
2159
2157 * iplib.py: Fix quoting of aliases so that only argless ones
2160 * iplib.py: Fix quoting of aliases so that only argless ones
2158 are quoted
2161 are quoted
2159
2162
2160 2006-03-28 Ville Vainio <vivainio@gmail.com>
2163 2006-03-28 Ville Vainio <vivainio@gmail.com>
2161
2164
2162 * iplib.py: Quote aliases with spaces in the name.
2165 * iplib.py: Quote aliases with spaces in the name.
2163 "c:\program files\blah\bin" is now legal alias target.
2166 "c:\program files\blah\bin" is now legal alias target.
2164
2167
2165 * ext_rehashdir.py: Space no longer allowed as arg
2168 * ext_rehashdir.py: Space no longer allowed as arg
2166 separator, since space is legal in path names.
2169 separator, since space is legal in path names.
2167
2170
2168 2006-03-16 Ville Vainio <vivainio@gmail.com>
2171 2006-03-16 Ville Vainio <vivainio@gmail.com>
2169
2172
2170 * upgrade_dir.py: Take path.py from Extensions, correcting
2173 * upgrade_dir.py: Take path.py from Extensions, correcting
2171 %upgrade magic
2174 %upgrade magic
2172
2175
2173 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2176 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2174
2177
2175 * hooks.py: Only enclose editor binary in quotes if legal and
2178 * hooks.py: Only enclose editor binary in quotes if legal and
2176 necessary (space in the name, and is an existing file). Fixes a bug
2179 necessary (space in the name, and is an existing file). Fixes a bug
2177 reported by Zachary Pincus.
2180 reported by Zachary Pincus.
2178
2181
2179 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2182 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2180
2183
2181 * Manual: thanks to a tip on proper color handling for Emacs, by
2184 * Manual: thanks to a tip on proper color handling for Emacs, by
2182 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2185 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2183
2186
2184 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2187 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2185 by applying the provided patch. Thanks to Liu Jin
2188 by applying the provided patch. Thanks to Liu Jin
2186 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2189 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2187 XEmacs/Linux, I'm trusting the submitter that it actually helps
2190 XEmacs/Linux, I'm trusting the submitter that it actually helps
2188 under win32/GNU Emacs. Will revisit if any problems are reported.
2191 under win32/GNU Emacs. Will revisit if any problems are reported.
2189
2192
2190 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2193 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2191
2194
2192 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2195 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2193 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2196 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2194
2197
2195 2006-03-12 Ville Vainio <vivainio@gmail.com>
2198 2006-03-12 Ville Vainio <vivainio@gmail.com>
2196
2199
2197 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2200 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2198 Torsten Marek.
2201 Torsten Marek.
2199
2202
2200 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2203 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2201
2204
2202 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2205 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2203 line ranges works again.
2206 line ranges works again.
2204
2207
2205 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2208 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2206
2209
2207 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2210 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2208 and friends, after a discussion with Zach Pincus on ipython-user.
2211 and friends, after a discussion with Zach Pincus on ipython-user.
2209 I'm not 100% sure, but after thinking about it quite a bit, it may
2212 I'm not 100% sure, but after thinking about it quite a bit, it may
2210 be OK. Testing with the multithreaded shells didn't reveal any
2213 be OK. Testing with the multithreaded shells didn't reveal any
2211 problems, but let's keep an eye out.
2214 problems, but let's keep an eye out.
2212
2215
2213 In the process, I fixed a few things which were calling
2216 In the process, I fixed a few things which were calling
2214 self.InteractiveTB() directly (like safe_execfile), which is a
2217 self.InteractiveTB() directly (like safe_execfile), which is a
2215 mistake: ALL exception reporting should be done by calling
2218 mistake: ALL exception reporting should be done by calling
2216 self.showtraceback(), which handles state and tab-completion and
2219 self.showtraceback(), which handles state and tab-completion and
2217 more.
2220 more.
2218
2221
2219 2006-03-01 Ville Vainio <vivainio@gmail.com>
2222 2006-03-01 Ville Vainio <vivainio@gmail.com>
2220
2223
2221 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2224 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2222 To use, do "from ipipe import *".
2225 To use, do "from ipipe import *".
2223
2226
2224 2006-02-24 Ville Vainio <vivainio@gmail.com>
2227 2006-02-24 Ville Vainio <vivainio@gmail.com>
2225
2228
2226 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2229 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2227 "cleanly" and safely than the older upgrade mechanism.
2230 "cleanly" and safely than the older upgrade mechanism.
2228
2231
2229 2006-02-21 Ville Vainio <vivainio@gmail.com>
2232 2006-02-21 Ville Vainio <vivainio@gmail.com>
2230
2233
2231 * Magic.py: %save works again.
2234 * Magic.py: %save works again.
2232
2235
2233 2006-02-15 Ville Vainio <vivainio@gmail.com>
2236 2006-02-15 Ville Vainio <vivainio@gmail.com>
2234
2237
2235 * Magic.py: %Pprint works again
2238 * Magic.py: %Pprint works again
2236
2239
2237 * Extensions/ipy_sane_defaults.py: Provide everything provided
2240 * Extensions/ipy_sane_defaults.py: Provide everything provided
2238 in default ipythonrc, to make it possible to have a completely empty
2241 in default ipythonrc, to make it possible to have a completely empty
2239 ipythonrc (and thus completely rc-file free configuration)
2242 ipythonrc (and thus completely rc-file free configuration)
2240
2243
2241 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2244 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2242
2245
2243 * IPython/hooks.py (editor): quote the call to the editor command,
2246 * IPython/hooks.py (editor): quote the call to the editor command,
2244 to allow commands with spaces in them. Problem noted by watching
2247 to allow commands with spaces in them. Problem noted by watching
2245 Ian Oswald's video about textpad under win32 at
2248 Ian Oswald's video about textpad under win32 at
2246 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2249 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2247
2250
2248 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2251 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2249 describing magics (we haven't used @ for a loong time).
2252 describing magics (we haven't used @ for a loong time).
2250
2253
2251 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2254 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2252 contributed by marienz to close
2255 contributed by marienz to close
2253 http://www.scipy.net/roundup/ipython/issue53.
2256 http://www.scipy.net/roundup/ipython/issue53.
2254
2257
2255 2006-02-10 Ville Vainio <vivainio@gmail.com>
2258 2006-02-10 Ville Vainio <vivainio@gmail.com>
2256
2259
2257 * genutils.py: getoutput now works in win32 too
2260 * genutils.py: getoutput now works in win32 too
2258
2261
2259 * completer.py: alias and magic completion only invoked
2262 * completer.py: alias and magic completion only invoked
2260 at the first "item" in the line, to avoid "cd %store"
2263 at the first "item" in the line, to avoid "cd %store"
2261 nonsense.
2264 nonsense.
2262
2265
2263 2006-02-09 Ville Vainio <vivainio@gmail.com>
2266 2006-02-09 Ville Vainio <vivainio@gmail.com>
2264
2267
2265 * test/*: Added a unit testing framework (finally).
2268 * test/*: Added a unit testing framework (finally).
2266 '%run runtests.py' to run test_*.
2269 '%run runtests.py' to run test_*.
2267
2270
2268 * ipapi.py: Exposed runlines and set_custom_exc
2271 * ipapi.py: Exposed runlines and set_custom_exc
2269
2272
2270 2006-02-07 Ville Vainio <vivainio@gmail.com>
2273 2006-02-07 Ville Vainio <vivainio@gmail.com>
2271
2274
2272 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2275 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2273 instead use "f(1 2)" as before.
2276 instead use "f(1 2)" as before.
2274
2277
2275 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2278 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2276
2279
2277 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2280 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2278 facilities, for demos processed by the IPython input filter
2281 facilities, for demos processed by the IPython input filter
2279 (IPythonDemo), and for running a script one-line-at-a-time as a
2282 (IPythonDemo), and for running a script one-line-at-a-time as a
2280 demo, both for pure Python (LineDemo) and for IPython-processed
2283 demo, both for pure Python (LineDemo) and for IPython-processed
2281 input (IPythonLineDemo). After a request by Dave Kohel, from the
2284 input (IPythonLineDemo). After a request by Dave Kohel, from the
2282 SAGE team.
2285 SAGE team.
2283 (Demo.edit): added an edit() method to the demo objects, to edit
2286 (Demo.edit): added an edit() method to the demo objects, to edit
2284 the in-memory copy of the last executed block.
2287 the in-memory copy of the last executed block.
2285
2288
2286 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2289 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2287 processing to %edit, %macro and %save. These commands can now be
2290 processing to %edit, %macro and %save. These commands can now be
2288 invoked on the unprocessed input as it was typed by the user
2291 invoked on the unprocessed input as it was typed by the user
2289 (without any prefilters applied). After requests by the SAGE team
2292 (without any prefilters applied). After requests by the SAGE team
2290 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2293 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2291
2294
2292 2006-02-01 Ville Vainio <vivainio@gmail.com>
2295 2006-02-01 Ville Vainio <vivainio@gmail.com>
2293
2296
2294 * setup.py, eggsetup.py: easy_install ipython==dev works
2297 * setup.py, eggsetup.py: easy_install ipython==dev works
2295 correctly now (on Linux)
2298 correctly now (on Linux)
2296
2299
2297 * ipy_user_conf,ipmaker: user config changes, removed spurious
2300 * ipy_user_conf,ipmaker: user config changes, removed spurious
2298 warnings
2301 warnings
2299
2302
2300 * iplib: if rc.banner is string, use it as is.
2303 * iplib: if rc.banner is string, use it as is.
2301
2304
2302 * Magic: %pycat accepts a string argument and pages it's contents.
2305 * Magic: %pycat accepts a string argument and pages it's contents.
2303
2306
2304
2307
2305 2006-01-30 Ville Vainio <vivainio@gmail.com>
2308 2006-01-30 Ville Vainio <vivainio@gmail.com>
2306
2309
2307 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2310 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2308 Now %store and bookmarks work through PickleShare, meaning that
2311 Now %store and bookmarks work through PickleShare, meaning that
2309 concurrent access is possible and all ipython sessions see the
2312 concurrent access is possible and all ipython sessions see the
2310 same database situation all the time, instead of snapshot of
2313 same database situation all the time, instead of snapshot of
2311 the situation when the session was started. Hence, %bookmark
2314 the situation when the session was started. Hence, %bookmark
2312 results are immediately accessible from othes sessions. The database
2315 results are immediately accessible from othes sessions. The database
2313 is also available for use by user extensions. See:
2316 is also available for use by user extensions. See:
2314 http://www.python.org/pypi/pickleshare
2317 http://www.python.org/pypi/pickleshare
2315
2318
2316 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2319 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2317
2320
2318 * aliases can now be %store'd
2321 * aliases can now be %store'd
2319
2322
2320 * path.py moved to Extensions so that pickleshare does not need
2323 * path.py moved to Extensions so that pickleshare does not need
2321 IPython-specific import. Extensions added to pythonpath right
2324 IPython-specific import. Extensions added to pythonpath right
2322 at __init__.
2325 at __init__.
2323
2326
2324 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2327 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2325 called with _ip.system and the pre-transformed command string.
2328 called with _ip.system and the pre-transformed command string.
2326
2329
2327 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2330 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2328
2331
2329 * IPython/iplib.py (interact): Fix that we were not catching
2332 * IPython/iplib.py (interact): Fix that we were not catching
2330 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2333 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2331 logic here had to change, but it's fixed now.
2334 logic here had to change, but it's fixed now.
2332
2335
2333 2006-01-29 Ville Vainio <vivainio@gmail.com>
2336 2006-01-29 Ville Vainio <vivainio@gmail.com>
2334
2337
2335 * iplib.py: Try to import pyreadline on Windows.
2338 * iplib.py: Try to import pyreadline on Windows.
2336
2339
2337 2006-01-27 Ville Vainio <vivainio@gmail.com>
2340 2006-01-27 Ville Vainio <vivainio@gmail.com>
2338
2341
2339 * iplib.py: Expose ipapi as _ip in builtin namespace.
2342 * iplib.py: Expose ipapi as _ip in builtin namespace.
2340 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2343 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2341 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2344 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2342 syntax now produce _ip.* variant of the commands.
2345 syntax now produce _ip.* variant of the commands.
2343
2346
2344 * "_ip.options().autoedit_syntax = 2" automatically throws
2347 * "_ip.options().autoedit_syntax = 2" automatically throws
2345 user to editor for syntax error correction without prompting.
2348 user to editor for syntax error correction without prompting.
2346
2349
2347 2006-01-27 Ville Vainio <vivainio@gmail.com>
2350 2006-01-27 Ville Vainio <vivainio@gmail.com>
2348
2351
2349 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2352 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2350 'ipython' at argv[0]) executed through command line.
2353 'ipython' at argv[0]) executed through command line.
2351 NOTE: this DEPRECATES calling ipython with multiple scripts
2354 NOTE: this DEPRECATES calling ipython with multiple scripts
2352 ("ipython a.py b.py c.py")
2355 ("ipython a.py b.py c.py")
2353
2356
2354 * iplib.py, hooks.py: Added configurable input prefilter,
2357 * iplib.py, hooks.py: Added configurable input prefilter,
2355 named 'input_prefilter'. See ext_rescapture.py for example
2358 named 'input_prefilter'. See ext_rescapture.py for example
2356 usage.
2359 usage.
2357
2360
2358 * ext_rescapture.py, Magic.py: Better system command output capture
2361 * ext_rescapture.py, Magic.py: Better system command output capture
2359 through 'var = !ls' (deprecates user-visible %sc). Same notation
2362 through 'var = !ls' (deprecates user-visible %sc). Same notation
2360 applies for magics, 'var = %alias' assigns alias list to var.
2363 applies for magics, 'var = %alias' assigns alias list to var.
2361
2364
2362 * ipapi.py: added meta() for accessing extension-usable data store.
2365 * ipapi.py: added meta() for accessing extension-usable data store.
2363
2366
2364 * iplib.py: added InteractiveShell.getapi(). New magics should be
2367 * iplib.py: added InteractiveShell.getapi(). New magics should be
2365 written doing self.getapi() instead of using the shell directly.
2368 written doing self.getapi() instead of using the shell directly.
2366
2369
2367 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2370 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2368 %store foo >> ~/myfoo.txt to store variables to files (in clean
2371 %store foo >> ~/myfoo.txt to store variables to files (in clean
2369 textual form, not a restorable pickle).
2372 textual form, not a restorable pickle).
2370
2373
2371 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2374 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2372
2375
2373 * usage.py, Magic.py: added %quickref
2376 * usage.py, Magic.py: added %quickref
2374
2377
2375 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2378 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2376
2379
2377 * GetoptErrors when invoking magics etc. with wrong args
2380 * GetoptErrors when invoking magics etc. with wrong args
2378 are now more helpful:
2381 are now more helpful:
2379 GetoptError: option -l not recognized (allowed: "qb" )
2382 GetoptError: option -l not recognized (allowed: "qb" )
2380
2383
2381 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2384 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2382
2385
2383 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2386 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2384 computationally intensive blocks don't appear to stall the demo.
2387 computationally intensive blocks don't appear to stall the demo.
2385
2388
2386 2006-01-24 Ville Vainio <vivainio@gmail.com>
2389 2006-01-24 Ville Vainio <vivainio@gmail.com>
2387
2390
2388 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2391 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2389 value to manipulate resulting history entry.
2392 value to manipulate resulting history entry.
2390
2393
2391 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2394 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2392 to instance methods of IPApi class, to make extending an embedded
2395 to instance methods of IPApi class, to make extending an embedded
2393 IPython feasible. See ext_rehashdir.py for example usage.
2396 IPython feasible. See ext_rehashdir.py for example usage.
2394
2397
2395 * Merged 1071-1076 from branches/0.7.1
2398 * Merged 1071-1076 from branches/0.7.1
2396
2399
2397
2400
2398 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2401 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2399
2402
2400 * tools/release (daystamp): Fix build tools to use the new
2403 * tools/release (daystamp): Fix build tools to use the new
2401 eggsetup.py script to build lightweight eggs.
2404 eggsetup.py script to build lightweight eggs.
2402
2405
2403 * Applied changesets 1062 and 1064 before 0.7.1 release.
2406 * Applied changesets 1062 and 1064 before 0.7.1 release.
2404
2407
2405 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2408 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2406 see the raw input history (without conversions like %ls ->
2409 see the raw input history (without conversions like %ls ->
2407 ipmagic("ls")). After a request from W. Stein, SAGE
2410 ipmagic("ls")). After a request from W. Stein, SAGE
2408 (http://modular.ucsd.edu/sage) developer. This information is
2411 (http://modular.ucsd.edu/sage) developer. This information is
2409 stored in the input_hist_raw attribute of the IPython instance, so
2412 stored in the input_hist_raw attribute of the IPython instance, so
2410 developers can access it if needed (it's an InputList instance).
2413 developers can access it if needed (it's an InputList instance).
2411
2414
2412 * Versionstring = 0.7.2.svn
2415 * Versionstring = 0.7.2.svn
2413
2416
2414 * eggsetup.py: A separate script for constructing eggs, creates
2417 * eggsetup.py: A separate script for constructing eggs, creates
2415 proper launch scripts even on Windows (an .exe file in
2418 proper launch scripts even on Windows (an .exe file in
2416 \python24\scripts).
2419 \python24\scripts).
2417
2420
2418 * ipapi.py: launch_new_instance, launch entry point needed for the
2421 * ipapi.py: launch_new_instance, launch entry point needed for the
2419 egg.
2422 egg.
2420
2423
2421 2006-01-23 Ville Vainio <vivainio@gmail.com>
2424 2006-01-23 Ville Vainio <vivainio@gmail.com>
2422
2425
2423 * Added %cpaste magic for pasting python code
2426 * Added %cpaste magic for pasting python code
2424
2427
2425 2006-01-22 Ville Vainio <vivainio@gmail.com>
2428 2006-01-22 Ville Vainio <vivainio@gmail.com>
2426
2429
2427 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2430 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2428
2431
2429 * Versionstring = 0.7.2.svn
2432 * Versionstring = 0.7.2.svn
2430
2433
2431 * eggsetup.py: A separate script for constructing eggs, creates
2434 * eggsetup.py: A separate script for constructing eggs, creates
2432 proper launch scripts even on Windows (an .exe file in
2435 proper launch scripts even on Windows (an .exe file in
2433 \python24\scripts).
2436 \python24\scripts).
2434
2437
2435 * ipapi.py: launch_new_instance, launch entry point needed for the
2438 * ipapi.py: launch_new_instance, launch entry point needed for the
2436 egg.
2439 egg.
2437
2440
2438 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2441 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2439
2442
2440 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2443 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2441 %pfile foo would print the file for foo even if it was a binary.
2444 %pfile foo would print the file for foo even if it was a binary.
2442 Now, extensions '.so' and '.dll' are skipped.
2445 Now, extensions '.so' and '.dll' are skipped.
2443
2446
2444 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2447 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2445 bug, where macros would fail in all threaded modes. I'm not 100%
2448 bug, where macros would fail in all threaded modes. I'm not 100%
2446 sure, so I'm going to put out an rc instead of making a release
2449 sure, so I'm going to put out an rc instead of making a release
2447 today, and wait for feedback for at least a few days.
2450 today, and wait for feedback for at least a few days.
2448
2451
2449 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2452 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2450 it...) the handling of pasting external code with autoindent on.
2453 it...) the handling of pasting external code with autoindent on.
2451 To get out of a multiline input, the rule will appear for most
2454 To get out of a multiline input, the rule will appear for most
2452 users unchanged: two blank lines or change the indent level
2455 users unchanged: two blank lines or change the indent level
2453 proposed by IPython. But there is a twist now: you can
2456 proposed by IPython. But there is a twist now: you can
2454 add/subtract only *one or two spaces*. If you add/subtract three
2457 add/subtract only *one or two spaces*. If you add/subtract three
2455 or more (unless you completely delete the line), IPython will
2458 or more (unless you completely delete the line), IPython will
2456 accept that line, and you'll need to enter a second one of pure
2459 accept that line, and you'll need to enter a second one of pure
2457 whitespace. I know it sounds complicated, but I can't find a
2460 whitespace. I know it sounds complicated, but I can't find a
2458 different solution that covers all the cases, with the right
2461 different solution that covers all the cases, with the right
2459 heuristics. Hopefully in actual use, nobody will really notice
2462 heuristics. Hopefully in actual use, nobody will really notice
2460 all these strange rules and things will 'just work'.
2463 all these strange rules and things will 'just work'.
2461
2464
2462 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2465 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2463
2466
2464 * IPython/iplib.py (interact): catch exceptions which can be
2467 * IPython/iplib.py (interact): catch exceptions which can be
2465 triggered asynchronously by signal handlers. Thanks to an
2468 triggered asynchronously by signal handlers. Thanks to an
2466 automatic crash report, submitted by Colin Kingsley
2469 automatic crash report, submitted by Colin Kingsley
2467 <tercel-AT-gentoo.org>.
2470 <tercel-AT-gentoo.org>.
2468
2471
2469 2006-01-20 Ville Vainio <vivainio@gmail.com>
2472 2006-01-20 Ville Vainio <vivainio@gmail.com>
2470
2473
2471 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2474 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2472 (%rehashdir, very useful, try it out) of how to extend ipython
2475 (%rehashdir, very useful, try it out) of how to extend ipython
2473 with new magics. Also added Extensions dir to pythonpath to make
2476 with new magics. Also added Extensions dir to pythonpath to make
2474 importing extensions easy.
2477 importing extensions easy.
2475
2478
2476 * %store now complains when trying to store interactively declared
2479 * %store now complains when trying to store interactively declared
2477 classes / instances of those classes.
2480 classes / instances of those classes.
2478
2481
2479 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2482 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2480 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2483 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2481 if they exist, and ipy_user_conf.py with some defaults is created for
2484 if they exist, and ipy_user_conf.py with some defaults is created for
2482 the user.
2485 the user.
2483
2486
2484 * Startup rehashing done by the config file, not InterpreterExec.
2487 * Startup rehashing done by the config file, not InterpreterExec.
2485 This means system commands are available even without selecting the
2488 This means system commands are available even without selecting the
2486 pysh profile. It's the sensible default after all.
2489 pysh profile. It's the sensible default after all.
2487
2490
2488 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2491 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2489
2492
2490 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2493 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2491 multiline code with autoindent on working. But I am really not
2494 multiline code with autoindent on working. But I am really not
2492 sure, so this needs more testing. Will commit a debug-enabled
2495 sure, so this needs more testing. Will commit a debug-enabled
2493 version for now, while I test it some more, so that Ville and
2496 version for now, while I test it some more, so that Ville and
2494 others may also catch any problems. Also made
2497 others may also catch any problems. Also made
2495 self.indent_current_str() a method, to ensure that there's no
2498 self.indent_current_str() a method, to ensure that there's no
2496 chance of the indent space count and the corresponding string
2499 chance of the indent space count and the corresponding string
2497 falling out of sync. All code needing the string should just call
2500 falling out of sync. All code needing the string should just call
2498 the method.
2501 the method.
2499
2502
2500 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2503 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2501
2504
2502 * IPython/Magic.py (magic_edit): fix check for when users don't
2505 * IPython/Magic.py (magic_edit): fix check for when users don't
2503 save their output files, the try/except was in the wrong section.
2506 save their output files, the try/except was in the wrong section.
2504
2507
2505 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2508 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2506
2509
2507 * IPython/Magic.py (magic_run): fix __file__ global missing from
2510 * IPython/Magic.py (magic_run): fix __file__ global missing from
2508 script's namespace when executed via %run. After a report by
2511 script's namespace when executed via %run. After a report by
2509 Vivian.
2512 Vivian.
2510
2513
2511 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2514 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2512 when using python 2.4. The parent constructor changed in 2.4, and
2515 when using python 2.4. The parent constructor changed in 2.4, and
2513 we need to track it directly (we can't call it, as it messes up
2516 we need to track it directly (we can't call it, as it messes up
2514 readline and tab-completion inside our pdb would stop working).
2517 readline and tab-completion inside our pdb would stop working).
2515 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2518 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2516
2519
2517 2006-01-16 Ville Vainio <vivainio@gmail.com>
2520 2006-01-16 Ville Vainio <vivainio@gmail.com>
2518
2521
2519 * Ipython/magic.py: Reverted back to old %edit functionality
2522 * Ipython/magic.py: Reverted back to old %edit functionality
2520 that returns file contents on exit.
2523 that returns file contents on exit.
2521
2524
2522 * IPython/path.py: Added Jason Orendorff's "path" module to
2525 * IPython/path.py: Added Jason Orendorff's "path" module to
2523 IPython tree, http://www.jorendorff.com/articles/python/path/.
2526 IPython tree, http://www.jorendorff.com/articles/python/path/.
2524 You can get path objects conveniently through %sc, and !!, e.g.:
2527 You can get path objects conveniently through %sc, and !!, e.g.:
2525 sc files=ls
2528 sc files=ls
2526 for p in files.paths: # or files.p
2529 for p in files.paths: # or files.p
2527 print p,p.mtime
2530 print p,p.mtime
2528
2531
2529 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2532 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2530 now work again without considering the exclusion regexp -
2533 now work again without considering the exclusion regexp -
2531 hence, things like ',foo my/path' turn to 'foo("my/path")'
2534 hence, things like ',foo my/path' turn to 'foo("my/path")'
2532 instead of syntax error.
2535 instead of syntax error.
2533
2536
2534
2537
2535 2006-01-14 Ville Vainio <vivainio@gmail.com>
2538 2006-01-14 Ville Vainio <vivainio@gmail.com>
2536
2539
2537 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2540 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2538 ipapi decorators for python 2.4 users, options() provides access to rc
2541 ipapi decorators for python 2.4 users, options() provides access to rc
2539 data.
2542 data.
2540
2543
2541 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2544 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2542 as path separators (even on Linux ;-). Space character after
2545 as path separators (even on Linux ;-). Space character after
2543 backslash (as yielded by tab completer) is still space;
2546 backslash (as yielded by tab completer) is still space;
2544 "%cd long\ name" works as expected.
2547 "%cd long\ name" works as expected.
2545
2548
2546 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2549 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2547 as "chain of command", with priority. API stays the same,
2550 as "chain of command", with priority. API stays the same,
2548 TryNext exception raised by a hook function signals that
2551 TryNext exception raised by a hook function signals that
2549 current hook failed and next hook should try handling it, as
2552 current hook failed and next hook should try handling it, as
2550 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2553 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2551 requested configurable display hook, which is now implemented.
2554 requested configurable display hook, which is now implemented.
2552
2555
2553 2006-01-13 Ville Vainio <vivainio@gmail.com>
2556 2006-01-13 Ville Vainio <vivainio@gmail.com>
2554
2557
2555 * IPython/platutils*.py: platform specific utility functions,
2558 * IPython/platutils*.py: platform specific utility functions,
2556 so far only set_term_title is implemented (change terminal
2559 so far only set_term_title is implemented (change terminal
2557 label in windowing systems). %cd now changes the title to
2560 label in windowing systems). %cd now changes the title to
2558 current dir.
2561 current dir.
2559
2562
2560 * IPython/Release.py: Added myself to "authors" list,
2563 * IPython/Release.py: Added myself to "authors" list,
2561 had to create new files.
2564 had to create new files.
2562
2565
2563 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2566 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2564 shell escape; not a known bug but had potential to be one in the
2567 shell escape; not a known bug but had potential to be one in the
2565 future.
2568 future.
2566
2569
2567 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2570 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2568 extension API for IPython! See the module for usage example. Fix
2571 extension API for IPython! See the module for usage example. Fix
2569 OInspect for docstring-less magic functions.
2572 OInspect for docstring-less magic functions.
2570
2573
2571
2574
2572 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2575 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2573
2576
2574 * IPython/iplib.py (raw_input): temporarily deactivate all
2577 * IPython/iplib.py (raw_input): temporarily deactivate all
2575 attempts at allowing pasting of code with autoindent on. It
2578 attempts at allowing pasting of code with autoindent on. It
2576 introduced bugs (reported by Prabhu) and I can't seem to find a
2579 introduced bugs (reported by Prabhu) and I can't seem to find a
2577 robust combination which works in all cases. Will have to revisit
2580 robust combination which works in all cases. Will have to revisit
2578 later.
2581 later.
2579
2582
2580 * IPython/genutils.py: remove isspace() function. We've dropped
2583 * IPython/genutils.py: remove isspace() function. We've dropped
2581 2.2 compatibility, so it's OK to use the string method.
2584 2.2 compatibility, so it's OK to use the string method.
2582
2585
2583 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2586 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2584
2587
2585 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2588 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2586 matching what NOT to autocall on, to include all python binary
2589 matching what NOT to autocall on, to include all python binary
2587 operators (including things like 'and', 'or', 'is' and 'in').
2590 operators (including things like 'and', 'or', 'is' and 'in').
2588 Prompted by a bug report on 'foo & bar', but I realized we had
2591 Prompted by a bug report on 'foo & bar', but I realized we had
2589 many more potential bug cases with other operators. The regexp is
2592 many more potential bug cases with other operators. The regexp is
2590 self.re_exclude_auto, it's fairly commented.
2593 self.re_exclude_auto, it's fairly commented.
2591
2594
2592 2006-01-12 Ville Vainio <vivainio@gmail.com>
2595 2006-01-12 Ville Vainio <vivainio@gmail.com>
2593
2596
2594 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2597 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2595 Prettified and hardened string/backslash quoting with ipsystem(),
2598 Prettified and hardened string/backslash quoting with ipsystem(),
2596 ipalias() and ipmagic(). Now even \ characters are passed to
2599 ipalias() and ipmagic(). Now even \ characters are passed to
2597 %magics, !shell escapes and aliases exactly as they are in the
2600 %magics, !shell escapes and aliases exactly as they are in the
2598 ipython command line. Should improve backslash experience,
2601 ipython command line. Should improve backslash experience,
2599 particularly in Windows (path delimiter for some commands that
2602 particularly in Windows (path delimiter for some commands that
2600 won't understand '/'), but Unix benefits as well (regexps). %cd
2603 won't understand '/'), but Unix benefits as well (regexps). %cd
2601 magic still doesn't support backslash path delimiters, though. Also
2604 magic still doesn't support backslash path delimiters, though. Also
2602 deleted all pretense of supporting multiline command strings in
2605 deleted all pretense of supporting multiline command strings in
2603 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2606 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2604
2607
2605 * doc/build_doc_instructions.txt added. Documentation on how to
2608 * doc/build_doc_instructions.txt added. Documentation on how to
2606 use doc/update_manual.py, added yesterday. Both files contributed
2609 use doc/update_manual.py, added yesterday. Both files contributed
2607 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2610 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2608 doc/*.sh for deprecation at a later date.
2611 doc/*.sh for deprecation at a later date.
2609
2612
2610 * /ipython.py Added ipython.py to root directory for
2613 * /ipython.py Added ipython.py to root directory for
2611 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2614 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2612 ipython.py) and development convenience (no need to keep doing
2615 ipython.py) and development convenience (no need to keep doing
2613 "setup.py install" between changes).
2616 "setup.py install" between changes).
2614
2617
2615 * Made ! and !! shell escapes work (again) in multiline expressions:
2618 * Made ! and !! shell escapes work (again) in multiline expressions:
2616 if 1:
2619 if 1:
2617 !ls
2620 !ls
2618 !!ls
2621 !!ls
2619
2622
2620 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2623 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2621
2624
2622 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2625 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2623 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2626 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2624 module in case-insensitive installation. Was causing crashes
2627 module in case-insensitive installation. Was causing crashes
2625 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2628 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2626
2629
2627 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2630 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2628 <marienz-AT-gentoo.org>, closes
2631 <marienz-AT-gentoo.org>, closes
2629 http://www.scipy.net/roundup/ipython/issue51.
2632 http://www.scipy.net/roundup/ipython/issue51.
2630
2633
2631 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2634 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2632
2635
2633 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2636 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2634 problem of excessive CPU usage under *nix and keyboard lag under
2637 problem of excessive CPU usage under *nix and keyboard lag under
2635 win32.
2638 win32.
2636
2639
2637 2006-01-10 *** Released version 0.7.0
2640 2006-01-10 *** Released version 0.7.0
2638
2641
2639 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2642 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2640
2643
2641 * IPython/Release.py (revision): tag version number to 0.7.0,
2644 * IPython/Release.py (revision): tag version number to 0.7.0,
2642 ready for release.
2645 ready for release.
2643
2646
2644 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2647 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2645 it informs the user of the name of the temp. file used. This can
2648 it informs the user of the name of the temp. file used. This can
2646 help if you decide later to reuse that same file, so you know
2649 help if you decide later to reuse that same file, so you know
2647 where to copy the info from.
2650 where to copy the info from.
2648
2651
2649 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2652 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2650
2653
2651 * setup_bdist_egg.py: little script to build an egg. Added
2654 * setup_bdist_egg.py: little script to build an egg. Added
2652 support in the release tools as well.
2655 support in the release tools as well.
2653
2656
2654 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2657 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2655
2658
2656 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2659 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2657 version selection (new -wxversion command line and ipythonrc
2660 version selection (new -wxversion command line and ipythonrc
2658 parameter). Patch contributed by Arnd Baecker
2661 parameter). Patch contributed by Arnd Baecker
2659 <arnd.baecker-AT-web.de>.
2662 <arnd.baecker-AT-web.de>.
2660
2663
2661 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2664 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2662 embedded instances, for variables defined at the interactive
2665 embedded instances, for variables defined at the interactive
2663 prompt of the embedded ipython. Reported by Arnd.
2666 prompt of the embedded ipython. Reported by Arnd.
2664
2667
2665 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2668 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2666 it can be used as a (stateful) toggle, or with a direct parameter.
2669 it can be used as a (stateful) toggle, or with a direct parameter.
2667
2670
2668 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2671 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2669 could be triggered in certain cases and cause the traceback
2672 could be triggered in certain cases and cause the traceback
2670 printer not to work.
2673 printer not to work.
2671
2674
2672 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2675 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2673
2676
2674 * IPython/iplib.py (_should_recompile): Small fix, closes
2677 * IPython/iplib.py (_should_recompile): Small fix, closes
2675 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2678 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2676
2679
2677 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2680 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2678
2681
2679 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2682 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2680 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2683 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2681 Moad for help with tracking it down.
2684 Moad for help with tracking it down.
2682
2685
2683 * IPython/iplib.py (handle_auto): fix autocall handling for
2686 * IPython/iplib.py (handle_auto): fix autocall handling for
2684 objects which support BOTH __getitem__ and __call__ (so that f [x]
2687 objects which support BOTH __getitem__ and __call__ (so that f [x]
2685 is left alone, instead of becoming f([x]) automatically).
2688 is left alone, instead of becoming f([x]) automatically).
2686
2689
2687 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2690 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2688 Ville's patch.
2691 Ville's patch.
2689
2692
2690 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2693 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2691
2694
2692 * IPython/iplib.py (handle_auto): changed autocall semantics to
2695 * IPython/iplib.py (handle_auto): changed autocall semantics to
2693 include 'smart' mode, where the autocall transformation is NOT
2696 include 'smart' mode, where the autocall transformation is NOT
2694 applied if there are no arguments on the line. This allows you to
2697 applied if there are no arguments on the line. This allows you to
2695 just type 'foo' if foo is a callable to see its internal form,
2698 just type 'foo' if foo is a callable to see its internal form,
2696 instead of having it called with no arguments (typically a
2699 instead of having it called with no arguments (typically a
2697 mistake). The old 'full' autocall still exists: for that, you
2700 mistake). The old 'full' autocall still exists: for that, you
2698 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2701 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2699
2702
2700 * IPython/completer.py (Completer.attr_matches): add
2703 * IPython/completer.py (Completer.attr_matches): add
2701 tab-completion support for Enthoughts' traits. After a report by
2704 tab-completion support for Enthoughts' traits. After a report by
2702 Arnd and a patch by Prabhu.
2705 Arnd and a patch by Prabhu.
2703
2706
2704 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2707 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2705
2708
2706 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2709 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2707 Schmolck's patch to fix inspect.getinnerframes().
2710 Schmolck's patch to fix inspect.getinnerframes().
2708
2711
2709 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2712 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2710 for embedded instances, regarding handling of namespaces and items
2713 for embedded instances, regarding handling of namespaces and items
2711 added to the __builtin__ one. Multiple embedded instances and
2714 added to the __builtin__ one. Multiple embedded instances and
2712 recursive embeddings should work better now (though I'm not sure
2715 recursive embeddings should work better now (though I'm not sure
2713 I've got all the corner cases fixed, that code is a bit of a brain
2716 I've got all the corner cases fixed, that code is a bit of a brain
2714 twister).
2717 twister).
2715
2718
2716 * IPython/Magic.py (magic_edit): added support to edit in-memory
2719 * IPython/Magic.py (magic_edit): added support to edit in-memory
2717 macros (automatically creates the necessary temp files). %edit
2720 macros (automatically creates the necessary temp files). %edit
2718 also doesn't return the file contents anymore, it's just noise.
2721 also doesn't return the file contents anymore, it's just noise.
2719
2722
2720 * IPython/completer.py (Completer.attr_matches): revert change to
2723 * IPython/completer.py (Completer.attr_matches): revert change to
2721 complete only on attributes listed in __all__. I realized it
2724 complete only on attributes listed in __all__. I realized it
2722 cripples the tab-completion system as a tool for exploring the
2725 cripples the tab-completion system as a tool for exploring the
2723 internals of unknown libraries (it renders any non-__all__
2726 internals of unknown libraries (it renders any non-__all__
2724 attribute off-limits). I got bit by this when trying to see
2727 attribute off-limits). I got bit by this when trying to see
2725 something inside the dis module.
2728 something inside the dis module.
2726
2729
2727 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2730 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2728
2731
2729 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2732 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2730 namespace for users and extension writers to hold data in. This
2733 namespace for users and extension writers to hold data in. This
2731 follows the discussion in
2734 follows the discussion in
2732 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2735 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2733
2736
2734 * IPython/completer.py (IPCompleter.complete): small patch to help
2737 * IPython/completer.py (IPCompleter.complete): small patch to help
2735 tab-completion under Emacs, after a suggestion by John Barnard
2738 tab-completion under Emacs, after a suggestion by John Barnard
2736 <barnarj-AT-ccf.org>.
2739 <barnarj-AT-ccf.org>.
2737
2740
2738 * IPython/Magic.py (Magic.extract_input_slices): added support for
2741 * IPython/Magic.py (Magic.extract_input_slices): added support for
2739 the slice notation in magics to use N-M to represent numbers N...M
2742 the slice notation in magics to use N-M to represent numbers N...M
2740 (closed endpoints). This is used by %macro and %save.
2743 (closed endpoints). This is used by %macro and %save.
2741
2744
2742 * IPython/completer.py (Completer.attr_matches): for modules which
2745 * IPython/completer.py (Completer.attr_matches): for modules which
2743 define __all__, complete only on those. After a patch by Jeffrey
2746 define __all__, complete only on those. After a patch by Jeffrey
2744 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2747 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2745 speed up this routine.
2748 speed up this routine.
2746
2749
2747 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2750 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2748 don't know if this is the end of it, but the behavior now is
2751 don't know if this is the end of it, but the behavior now is
2749 certainly much more correct. Note that coupled with macros,
2752 certainly much more correct. Note that coupled with macros,
2750 slightly surprising (at first) behavior may occur: a macro will in
2753 slightly surprising (at first) behavior may occur: a macro will in
2751 general expand to multiple lines of input, so upon exiting, the
2754 general expand to multiple lines of input, so upon exiting, the
2752 in/out counters will both be bumped by the corresponding amount
2755 in/out counters will both be bumped by the corresponding amount
2753 (as if the macro's contents had been typed interactively). Typing
2756 (as if the macro's contents had been typed interactively). Typing
2754 %hist will reveal the intermediate (silently processed) lines.
2757 %hist will reveal the intermediate (silently processed) lines.
2755
2758
2756 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2759 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2757 pickle to fail (%run was overwriting __main__ and not restoring
2760 pickle to fail (%run was overwriting __main__ and not restoring
2758 it, but pickle relies on __main__ to operate).
2761 it, but pickle relies on __main__ to operate).
2759
2762
2760 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2763 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2761 using properties, but forgot to make the main InteractiveShell
2764 using properties, but forgot to make the main InteractiveShell
2762 class a new-style class. Properties fail silently, and
2765 class a new-style class. Properties fail silently, and
2763 mysteriously, with old-style class (getters work, but
2766 mysteriously, with old-style class (getters work, but
2764 setters don't do anything).
2767 setters don't do anything).
2765
2768
2766 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2769 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2767
2770
2768 * IPython/Magic.py (magic_history): fix history reporting bug (I
2771 * IPython/Magic.py (magic_history): fix history reporting bug (I
2769 know some nasties are still there, I just can't seem to find a
2772 know some nasties are still there, I just can't seem to find a
2770 reproducible test case to track them down; the input history is
2773 reproducible test case to track them down; the input history is
2771 falling out of sync...)
2774 falling out of sync...)
2772
2775
2773 * IPython/iplib.py (handle_shell_escape): fix bug where both
2776 * IPython/iplib.py (handle_shell_escape): fix bug where both
2774 aliases and system accesses where broken for indented code (such
2777 aliases and system accesses where broken for indented code (such
2775 as loops).
2778 as loops).
2776
2779
2777 * IPython/genutils.py (shell): fix small but critical bug for
2780 * IPython/genutils.py (shell): fix small but critical bug for
2778 win32 system access.
2781 win32 system access.
2779
2782
2780 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2783 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2781
2784
2782 * IPython/iplib.py (showtraceback): remove use of the
2785 * IPython/iplib.py (showtraceback): remove use of the
2783 sys.last_{type/value/traceback} structures, which are non
2786 sys.last_{type/value/traceback} structures, which are non
2784 thread-safe.
2787 thread-safe.
2785 (_prefilter): change control flow to ensure that we NEVER
2788 (_prefilter): change control flow to ensure that we NEVER
2786 introspect objects when autocall is off. This will guarantee that
2789 introspect objects when autocall is off. This will guarantee that
2787 having an input line of the form 'x.y', where access to attribute
2790 having an input line of the form 'x.y', where access to attribute
2788 'y' has side effects, doesn't trigger the side effect TWICE. It
2791 'y' has side effects, doesn't trigger the side effect TWICE. It
2789 is important to note that, with autocall on, these side effects
2792 is important to note that, with autocall on, these side effects
2790 can still happen.
2793 can still happen.
2791 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2794 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2792 trio. IPython offers these three kinds of special calls which are
2795 trio. IPython offers these three kinds of special calls which are
2793 not python code, and it's a good thing to have their call method
2796 not python code, and it's a good thing to have their call method
2794 be accessible as pure python functions (not just special syntax at
2797 be accessible as pure python functions (not just special syntax at
2795 the command line). It gives us a better internal implementation
2798 the command line). It gives us a better internal implementation
2796 structure, as well as exposing these for user scripting more
2799 structure, as well as exposing these for user scripting more
2797 cleanly.
2800 cleanly.
2798
2801
2799 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2802 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2800 file. Now that they'll be more likely to be used with the
2803 file. Now that they'll be more likely to be used with the
2801 persistance system (%store), I want to make sure their module path
2804 persistance system (%store), I want to make sure their module path
2802 doesn't change in the future, so that we don't break things for
2805 doesn't change in the future, so that we don't break things for
2803 users' persisted data.
2806 users' persisted data.
2804
2807
2805 * IPython/iplib.py (autoindent_update): move indentation
2808 * IPython/iplib.py (autoindent_update): move indentation
2806 management into the _text_ processing loop, not the keyboard
2809 management into the _text_ processing loop, not the keyboard
2807 interactive one. This is necessary to correctly process non-typed
2810 interactive one. This is necessary to correctly process non-typed
2808 multiline input (such as macros).
2811 multiline input (such as macros).
2809
2812
2810 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2813 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2811 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2814 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2812 which was producing problems in the resulting manual.
2815 which was producing problems in the resulting manual.
2813 (magic_whos): improve reporting of instances (show their class,
2816 (magic_whos): improve reporting of instances (show their class,
2814 instead of simply printing 'instance' which isn't terribly
2817 instead of simply printing 'instance' which isn't terribly
2815 informative).
2818 informative).
2816
2819
2817 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2820 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2818 (minor mods) to support network shares under win32.
2821 (minor mods) to support network shares under win32.
2819
2822
2820 * IPython/winconsole.py (get_console_size): add new winconsole
2823 * IPython/winconsole.py (get_console_size): add new winconsole
2821 module and fixes to page_dumb() to improve its behavior under
2824 module and fixes to page_dumb() to improve its behavior under
2822 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2825 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2823
2826
2824 * IPython/Magic.py (Macro): simplified Macro class to just
2827 * IPython/Magic.py (Macro): simplified Macro class to just
2825 subclass list. We've had only 2.2 compatibility for a very long
2828 subclass list. We've had only 2.2 compatibility for a very long
2826 time, yet I was still avoiding subclassing the builtin types. No
2829 time, yet I was still avoiding subclassing the builtin types. No
2827 more (I'm also starting to use properties, though I won't shift to
2830 more (I'm also starting to use properties, though I won't shift to
2828 2.3-specific features quite yet).
2831 2.3-specific features quite yet).
2829 (magic_store): added Ville's patch for lightweight variable
2832 (magic_store): added Ville's patch for lightweight variable
2830 persistence, after a request on the user list by Matt Wilkie
2833 persistence, after a request on the user list by Matt Wilkie
2831 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2834 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2832 details.
2835 details.
2833
2836
2834 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2837 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2835 changed the default logfile name from 'ipython.log' to
2838 changed the default logfile name from 'ipython.log' to
2836 'ipython_log.py'. These logs are real python files, and now that
2839 'ipython_log.py'. These logs are real python files, and now that
2837 we have much better multiline support, people are more likely to
2840 we have much better multiline support, people are more likely to
2838 want to use them as such. Might as well name them correctly.
2841 want to use them as such. Might as well name them correctly.
2839
2842
2840 * IPython/Magic.py: substantial cleanup. While we can't stop
2843 * IPython/Magic.py: substantial cleanup. While we can't stop
2841 using magics as mixins, due to the existing customizations 'out
2844 using magics as mixins, due to the existing customizations 'out
2842 there' which rely on the mixin naming conventions, at least I
2845 there' which rely on the mixin naming conventions, at least I
2843 cleaned out all cross-class name usage. So once we are OK with
2846 cleaned out all cross-class name usage. So once we are OK with
2844 breaking compatibility, the two systems can be separated.
2847 breaking compatibility, the two systems can be separated.
2845
2848
2846 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2849 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2847 anymore, and the class is a fair bit less hideous as well. New
2850 anymore, and the class is a fair bit less hideous as well. New
2848 features were also introduced: timestamping of input, and logging
2851 features were also introduced: timestamping of input, and logging
2849 of output results. These are user-visible with the -t and -o
2852 of output results. These are user-visible with the -t and -o
2850 options to %logstart. Closes
2853 options to %logstart. Closes
2851 http://www.scipy.net/roundup/ipython/issue11 and a request by
2854 http://www.scipy.net/roundup/ipython/issue11 and a request by
2852 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2855 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2853
2856
2854 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2857 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2855
2858
2856 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2859 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2857 better handle backslashes in paths. See the thread 'More Windows
2860 better handle backslashes in paths. See the thread 'More Windows
2858 questions part 2 - \/ characters revisited' on the iypthon user
2861 questions part 2 - \/ characters revisited' on the iypthon user
2859 list:
2862 list:
2860 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2863 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2861
2864
2862 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2865 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2863
2866
2864 (InteractiveShell.__init__): change threaded shells to not use the
2867 (InteractiveShell.__init__): change threaded shells to not use the
2865 ipython crash handler. This was causing more problems than not,
2868 ipython crash handler. This was causing more problems than not,
2866 as exceptions in the main thread (GUI code, typically) would
2869 as exceptions in the main thread (GUI code, typically) would
2867 always show up as a 'crash', when they really weren't.
2870 always show up as a 'crash', when they really weren't.
2868
2871
2869 The colors and exception mode commands (%colors/%xmode) have been
2872 The colors and exception mode commands (%colors/%xmode) have been
2870 synchronized to also take this into account, so users can get
2873 synchronized to also take this into account, so users can get
2871 verbose exceptions for their threaded code as well. I also added
2874 verbose exceptions for their threaded code as well. I also added
2872 support for activating pdb inside this exception handler as well,
2875 support for activating pdb inside this exception handler as well,
2873 so now GUI authors can use IPython's enhanced pdb at runtime.
2876 so now GUI authors can use IPython's enhanced pdb at runtime.
2874
2877
2875 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2878 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2876 true by default, and add it to the shipped ipythonrc file. Since
2879 true by default, and add it to the shipped ipythonrc file. Since
2877 this asks the user before proceeding, I think it's OK to make it
2880 this asks the user before proceeding, I think it's OK to make it
2878 true by default.
2881 true by default.
2879
2882
2880 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2883 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2881 of the previous special-casing of input in the eval loop. I think
2884 of the previous special-casing of input in the eval loop. I think
2882 this is cleaner, as they really are commands and shouldn't have
2885 this is cleaner, as they really are commands and shouldn't have
2883 a special role in the middle of the core code.
2886 a special role in the middle of the core code.
2884
2887
2885 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2888 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2886
2889
2887 * IPython/iplib.py (edit_syntax_error): added support for
2890 * IPython/iplib.py (edit_syntax_error): added support for
2888 automatically reopening the editor if the file had a syntax error
2891 automatically reopening the editor if the file had a syntax error
2889 in it. Thanks to scottt who provided the patch at:
2892 in it. Thanks to scottt who provided the patch at:
2890 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2893 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2891 version committed).
2894 version committed).
2892
2895
2893 * IPython/iplib.py (handle_normal): add suport for multi-line
2896 * IPython/iplib.py (handle_normal): add suport for multi-line
2894 input with emtpy lines. This fixes
2897 input with emtpy lines. This fixes
2895 http://www.scipy.net/roundup/ipython/issue43 and a similar
2898 http://www.scipy.net/roundup/ipython/issue43 and a similar
2896 discussion on the user list.
2899 discussion on the user list.
2897
2900
2898 WARNING: a behavior change is necessarily introduced to support
2901 WARNING: a behavior change is necessarily introduced to support
2899 blank lines: now a single blank line with whitespace does NOT
2902 blank lines: now a single blank line with whitespace does NOT
2900 break the input loop, which means that when autoindent is on, by
2903 break the input loop, which means that when autoindent is on, by
2901 default hitting return on the next (indented) line does NOT exit.
2904 default hitting return on the next (indented) line does NOT exit.
2902
2905
2903 Instead, to exit a multiline input you can either have:
2906 Instead, to exit a multiline input you can either have:
2904
2907
2905 - TWO whitespace lines (just hit return again), or
2908 - TWO whitespace lines (just hit return again), or
2906 - a single whitespace line of a different length than provided
2909 - a single whitespace line of a different length than provided
2907 by the autoindent (add or remove a space).
2910 by the autoindent (add or remove a space).
2908
2911
2909 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2912 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2910 module to better organize all readline-related functionality.
2913 module to better organize all readline-related functionality.
2911 I've deleted FlexCompleter and put all completion clases here.
2914 I've deleted FlexCompleter and put all completion clases here.
2912
2915
2913 * IPython/iplib.py (raw_input): improve indentation management.
2916 * IPython/iplib.py (raw_input): improve indentation management.
2914 It is now possible to paste indented code with autoindent on, and
2917 It is now possible to paste indented code with autoindent on, and
2915 the code is interpreted correctly (though it still looks bad on
2918 the code is interpreted correctly (though it still looks bad on
2916 screen, due to the line-oriented nature of ipython).
2919 screen, due to the line-oriented nature of ipython).
2917 (MagicCompleter.complete): change behavior so that a TAB key on an
2920 (MagicCompleter.complete): change behavior so that a TAB key on an
2918 otherwise empty line actually inserts a tab, instead of completing
2921 otherwise empty line actually inserts a tab, instead of completing
2919 on the entire global namespace. This makes it easier to use the
2922 on the entire global namespace. This makes it easier to use the
2920 TAB key for indentation. After a request by Hans Meine
2923 TAB key for indentation. After a request by Hans Meine
2921 <hans_meine-AT-gmx.net>
2924 <hans_meine-AT-gmx.net>
2922 (_prefilter): add support so that typing plain 'exit' or 'quit'
2925 (_prefilter): add support so that typing plain 'exit' or 'quit'
2923 does a sensible thing. Originally I tried to deviate as little as
2926 does a sensible thing. Originally I tried to deviate as little as
2924 possible from the default python behavior, but even that one may
2927 possible from the default python behavior, but even that one may
2925 change in this direction (thread on python-dev to that effect).
2928 change in this direction (thread on python-dev to that effect).
2926 Regardless, ipython should do the right thing even if CPython's
2929 Regardless, ipython should do the right thing even if CPython's
2927 '>>>' prompt doesn't.
2930 '>>>' prompt doesn't.
2928 (InteractiveShell): removed subclassing code.InteractiveConsole
2931 (InteractiveShell): removed subclassing code.InteractiveConsole
2929 class. By now we'd overridden just about all of its methods: I've
2932 class. By now we'd overridden just about all of its methods: I've
2930 copied the remaining two over, and now ipython is a standalone
2933 copied the remaining two over, and now ipython is a standalone
2931 class. This will provide a clearer picture for the chainsaw
2934 class. This will provide a clearer picture for the chainsaw
2932 branch refactoring.
2935 branch refactoring.
2933
2936
2934 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2937 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2935
2938
2936 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2939 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2937 failures for objects which break when dir() is called on them.
2940 failures for objects which break when dir() is called on them.
2938
2941
2939 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2942 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2940 distinct local and global namespaces in the completer API. This
2943 distinct local and global namespaces in the completer API. This
2941 change allows us to properly handle completion with distinct
2944 change allows us to properly handle completion with distinct
2942 scopes, including in embedded instances (this had never really
2945 scopes, including in embedded instances (this had never really
2943 worked correctly).
2946 worked correctly).
2944
2947
2945 Note: this introduces a change in the constructor for
2948 Note: this introduces a change in the constructor for
2946 MagicCompleter, as a new global_namespace parameter is now the
2949 MagicCompleter, as a new global_namespace parameter is now the
2947 second argument (the others were bumped one position).
2950 second argument (the others were bumped one position).
2948
2951
2949 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2952 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2950
2953
2951 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2954 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2952 embedded instances (which can be done now thanks to Vivian's
2955 embedded instances (which can be done now thanks to Vivian's
2953 frame-handling fixes for pdb).
2956 frame-handling fixes for pdb).
2954 (InteractiveShell.__init__): Fix namespace handling problem in
2957 (InteractiveShell.__init__): Fix namespace handling problem in
2955 embedded instances. We were overwriting __main__ unconditionally,
2958 embedded instances. We were overwriting __main__ unconditionally,
2956 and this should only be done for 'full' (non-embedded) IPython;
2959 and this should only be done for 'full' (non-embedded) IPython;
2957 embedded instances must respect the caller's __main__. Thanks to
2960 embedded instances must respect the caller's __main__. Thanks to
2958 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2961 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2959
2962
2960 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2963 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2961
2964
2962 * setup.py: added download_url to setup(). This registers the
2965 * setup.py: added download_url to setup(). This registers the
2963 download address at PyPI, which is not only useful to humans
2966 download address at PyPI, which is not only useful to humans
2964 browsing the site, but is also picked up by setuptools (the Eggs
2967 browsing the site, but is also picked up by setuptools (the Eggs
2965 machinery). Thanks to Ville and R. Kern for the info/discussion
2968 machinery). Thanks to Ville and R. Kern for the info/discussion
2966 on this.
2969 on this.
2967
2970
2968 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2971 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2969
2972
2970 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2973 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2971 This brings a lot of nice functionality to the pdb mode, which now
2974 This brings a lot of nice functionality to the pdb mode, which now
2972 has tab-completion, syntax highlighting, and better stack handling
2975 has tab-completion, syntax highlighting, and better stack handling
2973 than before. Many thanks to Vivian De Smedt
2976 than before. Many thanks to Vivian De Smedt
2974 <vivian-AT-vdesmedt.com> for the original patches.
2977 <vivian-AT-vdesmedt.com> for the original patches.
2975
2978
2976 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2979 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2977
2980
2978 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2981 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2979 sequence to consistently accept the banner argument. The
2982 sequence to consistently accept the banner argument. The
2980 inconsistency was tripping SAGE, thanks to Gary Zablackis
2983 inconsistency was tripping SAGE, thanks to Gary Zablackis
2981 <gzabl-AT-yahoo.com> for the report.
2984 <gzabl-AT-yahoo.com> for the report.
2982
2985
2983 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2986 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2984
2987
2985 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2988 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2986 Fix bug where a naked 'alias' call in the ipythonrc file would
2989 Fix bug where a naked 'alias' call in the ipythonrc file would
2987 cause a crash. Bug reported by Jorgen Stenarson.
2990 cause a crash. Bug reported by Jorgen Stenarson.
2988
2991
2989 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2992 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2990
2993
2991 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2994 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2992 startup time.
2995 startup time.
2993
2996
2994 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2997 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2995 instances had introduced a bug with globals in normal code. Now
2998 instances had introduced a bug with globals in normal code. Now
2996 it's working in all cases.
2999 it's working in all cases.
2997
3000
2998 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3001 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2999 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3002 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3000 has been introduced to set the default case sensitivity of the
3003 has been introduced to set the default case sensitivity of the
3001 searches. Users can still select either mode at runtime on a
3004 searches. Users can still select either mode at runtime on a
3002 per-search basis.
3005 per-search basis.
3003
3006
3004 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3007 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3005
3008
3006 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3009 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3007 attributes in wildcard searches for subclasses. Modified version
3010 attributes in wildcard searches for subclasses. Modified version
3008 of a patch by Jorgen.
3011 of a patch by Jorgen.
3009
3012
3010 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3013 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3011
3014
3012 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3015 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3013 embedded instances. I added a user_global_ns attribute to the
3016 embedded instances. I added a user_global_ns attribute to the
3014 InteractiveShell class to handle this.
3017 InteractiveShell class to handle this.
3015
3018
3016 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3019 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3017
3020
3018 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3021 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3019 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3022 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3020 (reported under win32, but may happen also in other platforms).
3023 (reported under win32, but may happen also in other platforms).
3021 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3024 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3022
3025
3023 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3026 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3024
3027
3025 * IPython/Magic.py (magic_psearch): new support for wildcard
3028 * IPython/Magic.py (magic_psearch): new support for wildcard
3026 patterns. Now, typing ?a*b will list all names which begin with a
3029 patterns. Now, typing ?a*b will list all names which begin with a
3027 and end in b, for example. The %psearch magic has full
3030 and end in b, for example. The %psearch magic has full
3028 docstrings. Many thanks to JΓΆrgen Stenarson
3031 docstrings. Many thanks to JΓΆrgen Stenarson
3029 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3032 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3030 implementing this functionality.
3033 implementing this functionality.
3031
3034
3032 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3035 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3033
3036
3034 * Manual: fixed long-standing annoyance of double-dashes (as in
3037 * Manual: fixed long-standing annoyance of double-dashes (as in
3035 --prefix=~, for example) being stripped in the HTML version. This
3038 --prefix=~, for example) being stripped in the HTML version. This
3036 is a latex2html bug, but a workaround was provided. Many thanks
3039 is a latex2html bug, but a workaround was provided. Many thanks
3037 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3040 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3038 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3041 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3039 rolling. This seemingly small issue had tripped a number of users
3042 rolling. This seemingly small issue had tripped a number of users
3040 when first installing, so I'm glad to see it gone.
3043 when first installing, so I'm glad to see it gone.
3041
3044
3042 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3045 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3043
3046
3044 * IPython/Extensions/numeric_formats.py: fix missing import,
3047 * IPython/Extensions/numeric_formats.py: fix missing import,
3045 reported by Stephen Walton.
3048 reported by Stephen Walton.
3046
3049
3047 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3050 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3048
3051
3049 * IPython/demo.py: finish demo module, fully documented now.
3052 * IPython/demo.py: finish demo module, fully documented now.
3050
3053
3051 * IPython/genutils.py (file_read): simple little utility to read a
3054 * IPython/genutils.py (file_read): simple little utility to read a
3052 file and ensure it's closed afterwards.
3055 file and ensure it's closed afterwards.
3053
3056
3054 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3057 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3055
3058
3056 * IPython/demo.py (Demo.__init__): added support for individually
3059 * IPython/demo.py (Demo.__init__): added support for individually
3057 tagging blocks for automatic execution.
3060 tagging blocks for automatic execution.
3058
3061
3059 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3062 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3060 syntax-highlighted python sources, requested by John.
3063 syntax-highlighted python sources, requested by John.
3061
3064
3062 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3065 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3063
3066
3064 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3067 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3065 finishing.
3068 finishing.
3066
3069
3067 * IPython/genutils.py (shlex_split): moved from Magic to here,
3070 * IPython/genutils.py (shlex_split): moved from Magic to here,
3068 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3071 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3069
3072
3070 * IPython/demo.py (Demo.__init__): added support for silent
3073 * IPython/demo.py (Demo.__init__): added support for silent
3071 blocks, improved marks as regexps, docstrings written.
3074 blocks, improved marks as regexps, docstrings written.
3072 (Demo.__init__): better docstring, added support for sys.argv.
3075 (Demo.__init__): better docstring, added support for sys.argv.
3073
3076
3074 * IPython/genutils.py (marquee): little utility used by the demo
3077 * IPython/genutils.py (marquee): little utility used by the demo
3075 code, handy in general.
3078 code, handy in general.
3076
3079
3077 * IPython/demo.py (Demo.__init__): new class for interactive
3080 * IPython/demo.py (Demo.__init__): new class for interactive
3078 demos. Not documented yet, I just wrote it in a hurry for
3081 demos. Not documented yet, I just wrote it in a hurry for
3079 scipy'05. Will docstring later.
3082 scipy'05. Will docstring later.
3080
3083
3081 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3084 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3082
3085
3083 * IPython/Shell.py (sigint_handler): Drastic simplification which
3086 * IPython/Shell.py (sigint_handler): Drastic simplification which
3084 also seems to make Ctrl-C work correctly across threads! This is
3087 also seems to make Ctrl-C work correctly across threads! This is
3085 so simple, that I can't beleive I'd missed it before. Needs more
3088 so simple, that I can't beleive I'd missed it before. Needs more
3086 testing, though.
3089 testing, though.
3087 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3090 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3088 like this before...
3091 like this before...
3089
3092
3090 * IPython/genutils.py (get_home_dir): add protection against
3093 * IPython/genutils.py (get_home_dir): add protection against
3091 non-dirs in win32 registry.
3094 non-dirs in win32 registry.
3092
3095
3093 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3096 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3094 bug where dict was mutated while iterating (pysh crash).
3097 bug where dict was mutated while iterating (pysh crash).
3095
3098
3096 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3099 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3097
3100
3098 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3101 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3099 spurious newlines added by this routine. After a report by
3102 spurious newlines added by this routine. After a report by
3100 F. Mantegazza.
3103 F. Mantegazza.
3101
3104
3102 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3105 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3103
3106
3104 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3107 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3105 calls. These were a leftover from the GTK 1.x days, and can cause
3108 calls. These were a leftover from the GTK 1.x days, and can cause
3106 problems in certain cases (after a report by John Hunter).
3109 problems in certain cases (after a report by John Hunter).
3107
3110
3108 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3111 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3109 os.getcwd() fails at init time. Thanks to patch from David Remahl
3112 os.getcwd() fails at init time. Thanks to patch from David Remahl
3110 <chmod007-AT-mac.com>.
3113 <chmod007-AT-mac.com>.
3111 (InteractiveShell.__init__): prevent certain special magics from
3114 (InteractiveShell.__init__): prevent certain special magics from
3112 being shadowed by aliases. Closes
3115 being shadowed by aliases. Closes
3113 http://www.scipy.net/roundup/ipython/issue41.
3116 http://www.scipy.net/roundup/ipython/issue41.
3114
3117
3115 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3118 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3116
3119
3117 * IPython/iplib.py (InteractiveShell.complete): Added new
3120 * IPython/iplib.py (InteractiveShell.complete): Added new
3118 top-level completion method to expose the completion mechanism
3121 top-level completion method to expose the completion mechanism
3119 beyond readline-based environments.
3122 beyond readline-based environments.
3120
3123
3121 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3124 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3122
3125
3123 * tools/ipsvnc (svnversion): fix svnversion capture.
3126 * tools/ipsvnc (svnversion): fix svnversion capture.
3124
3127
3125 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3128 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3126 attribute to self, which was missing. Before, it was set by a
3129 attribute to self, which was missing. Before, it was set by a
3127 routine which in certain cases wasn't being called, so the
3130 routine which in certain cases wasn't being called, so the
3128 instance could end up missing the attribute. This caused a crash.
3131 instance could end up missing the attribute. This caused a crash.
3129 Closes http://www.scipy.net/roundup/ipython/issue40.
3132 Closes http://www.scipy.net/roundup/ipython/issue40.
3130
3133
3131 2005-08-16 Fernando Perez <fperez@colorado.edu>
3134 2005-08-16 Fernando Perez <fperez@colorado.edu>
3132
3135
3133 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3136 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3134 contains non-string attribute. Closes
3137 contains non-string attribute. Closes
3135 http://www.scipy.net/roundup/ipython/issue38.
3138 http://www.scipy.net/roundup/ipython/issue38.
3136
3139
3137 2005-08-14 Fernando Perez <fperez@colorado.edu>
3140 2005-08-14 Fernando Perez <fperez@colorado.edu>
3138
3141
3139 * tools/ipsvnc: Minor improvements, to add changeset info.
3142 * tools/ipsvnc: Minor improvements, to add changeset info.
3140
3143
3141 2005-08-12 Fernando Perez <fperez@colorado.edu>
3144 2005-08-12 Fernando Perez <fperez@colorado.edu>
3142
3145
3143 * IPython/iplib.py (runsource): remove self.code_to_run_src
3146 * IPython/iplib.py (runsource): remove self.code_to_run_src
3144 attribute. I realized this is nothing more than
3147 attribute. I realized this is nothing more than
3145 '\n'.join(self.buffer), and having the same data in two different
3148 '\n'.join(self.buffer), and having the same data in two different
3146 places is just asking for synchronization bugs. This may impact
3149 places is just asking for synchronization bugs. This may impact
3147 people who have custom exception handlers, so I need to warn
3150 people who have custom exception handlers, so I need to warn
3148 ipython-dev about it (F. Mantegazza may use them).
3151 ipython-dev about it (F. Mantegazza may use them).
3149
3152
3150 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3153 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3151
3154
3152 * IPython/genutils.py: fix 2.2 compatibility (generators)
3155 * IPython/genutils.py: fix 2.2 compatibility (generators)
3153
3156
3154 2005-07-18 Fernando Perez <fperez@colorado.edu>
3157 2005-07-18 Fernando Perez <fperez@colorado.edu>
3155
3158
3156 * IPython/genutils.py (get_home_dir): fix to help users with
3159 * IPython/genutils.py (get_home_dir): fix to help users with
3157 invalid $HOME under win32.
3160 invalid $HOME under win32.
3158
3161
3159 2005-07-17 Fernando Perez <fperez@colorado.edu>
3162 2005-07-17 Fernando Perez <fperez@colorado.edu>
3160
3163
3161 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3164 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3162 some old hacks and clean up a bit other routines; code should be
3165 some old hacks and clean up a bit other routines; code should be
3163 simpler and a bit faster.
3166 simpler and a bit faster.
3164
3167
3165 * IPython/iplib.py (interact): removed some last-resort attempts
3168 * IPython/iplib.py (interact): removed some last-resort attempts
3166 to survive broken stdout/stderr. That code was only making it
3169 to survive broken stdout/stderr. That code was only making it
3167 harder to abstract out the i/o (necessary for gui integration),
3170 harder to abstract out the i/o (necessary for gui integration),
3168 and the crashes it could prevent were extremely rare in practice
3171 and the crashes it could prevent were extremely rare in practice
3169 (besides being fully user-induced in a pretty violent manner).
3172 (besides being fully user-induced in a pretty violent manner).
3170
3173
3171 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3174 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3172 Nothing major yet, but the code is simpler to read; this should
3175 Nothing major yet, but the code is simpler to read; this should
3173 make it easier to do more serious modifications in the future.
3176 make it easier to do more serious modifications in the future.
3174
3177
3175 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3178 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3176 which broke in .15 (thanks to a report by Ville).
3179 which broke in .15 (thanks to a report by Ville).
3177
3180
3178 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3181 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3179 be quite correct, I know next to nothing about unicode). This
3182 be quite correct, I know next to nothing about unicode). This
3180 will allow unicode strings to be used in prompts, amongst other
3183 will allow unicode strings to be used in prompts, amongst other
3181 cases. It also will prevent ipython from crashing when unicode
3184 cases. It also will prevent ipython from crashing when unicode
3182 shows up unexpectedly in many places. If ascii encoding fails, we
3185 shows up unexpectedly in many places. If ascii encoding fails, we
3183 assume utf_8. Currently the encoding is not a user-visible
3186 assume utf_8. Currently the encoding is not a user-visible
3184 setting, though it could be made so if there is demand for it.
3187 setting, though it could be made so if there is demand for it.
3185
3188
3186 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3189 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3187
3190
3188 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3191 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3189
3192
3190 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3193 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3191
3194
3192 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3195 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3193 code can work transparently for 2.2/2.3.
3196 code can work transparently for 2.2/2.3.
3194
3197
3195 2005-07-16 Fernando Perez <fperez@colorado.edu>
3198 2005-07-16 Fernando Perez <fperez@colorado.edu>
3196
3199
3197 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3200 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3198 out of the color scheme table used for coloring exception
3201 out of the color scheme table used for coloring exception
3199 tracebacks. This allows user code to add new schemes at runtime.
3202 tracebacks. This allows user code to add new schemes at runtime.
3200 This is a minimally modified version of the patch at
3203 This is a minimally modified version of the patch at
3201 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3204 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3202 for the contribution.
3205 for the contribution.
3203
3206
3204 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3207 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3205 slightly modified version of the patch in
3208 slightly modified version of the patch in
3206 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3209 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3207 to remove the previous try/except solution (which was costlier).
3210 to remove the previous try/except solution (which was costlier).
3208 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3211 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3209
3212
3210 2005-06-08 Fernando Perez <fperez@colorado.edu>
3213 2005-06-08 Fernando Perez <fperez@colorado.edu>
3211
3214
3212 * IPython/iplib.py (write/write_err): Add methods to abstract all
3215 * IPython/iplib.py (write/write_err): Add methods to abstract all
3213 I/O a bit more.
3216 I/O a bit more.
3214
3217
3215 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3218 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3216 warning, reported by Aric Hagberg, fix by JD Hunter.
3219 warning, reported by Aric Hagberg, fix by JD Hunter.
3217
3220
3218 2005-06-02 *** Released version 0.6.15
3221 2005-06-02 *** Released version 0.6.15
3219
3222
3220 2005-06-01 Fernando Perez <fperez@colorado.edu>
3223 2005-06-01 Fernando Perez <fperez@colorado.edu>
3221
3224
3222 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3225 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3223 tab-completion of filenames within open-quoted strings. Note that
3226 tab-completion of filenames within open-quoted strings. Note that
3224 this requires that in ~/.ipython/ipythonrc, users change the
3227 this requires that in ~/.ipython/ipythonrc, users change the
3225 readline delimiters configuration to read:
3228 readline delimiters configuration to read:
3226
3229
3227 readline_remove_delims -/~
3230 readline_remove_delims -/~
3228
3231
3229
3232
3230 2005-05-31 *** Released version 0.6.14
3233 2005-05-31 *** Released version 0.6.14
3231
3234
3232 2005-05-29 Fernando Perez <fperez@colorado.edu>
3235 2005-05-29 Fernando Perez <fperez@colorado.edu>
3233
3236
3234 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3237 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3235 with files not on the filesystem. Reported by Eliyahu Sandler
3238 with files not on the filesystem. Reported by Eliyahu Sandler
3236 <eli@gondolin.net>
3239 <eli@gondolin.net>
3237
3240
3238 2005-05-22 Fernando Perez <fperez@colorado.edu>
3241 2005-05-22 Fernando Perez <fperez@colorado.edu>
3239
3242
3240 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3243 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3241 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3244 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3242
3245
3243 2005-05-19 Fernando Perez <fperez@colorado.edu>
3246 2005-05-19 Fernando Perez <fperez@colorado.edu>
3244
3247
3245 * IPython/iplib.py (safe_execfile): close a file which could be
3248 * IPython/iplib.py (safe_execfile): close a file which could be
3246 left open (causing problems in win32, which locks open files).
3249 left open (causing problems in win32, which locks open files).
3247 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3250 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3248
3251
3249 2005-05-18 Fernando Perez <fperez@colorado.edu>
3252 2005-05-18 Fernando Perez <fperez@colorado.edu>
3250
3253
3251 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3254 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3252 keyword arguments correctly to safe_execfile().
3255 keyword arguments correctly to safe_execfile().
3253
3256
3254 2005-05-13 Fernando Perez <fperez@colorado.edu>
3257 2005-05-13 Fernando Perez <fperez@colorado.edu>
3255
3258
3256 * ipython.1: Added info about Qt to manpage, and threads warning
3259 * ipython.1: Added info about Qt to manpage, and threads warning
3257 to usage page (invoked with --help).
3260 to usage page (invoked with --help).
3258
3261
3259 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3262 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3260 new matcher (it goes at the end of the priority list) to do
3263 new matcher (it goes at the end of the priority list) to do
3261 tab-completion on named function arguments. Submitted by George
3264 tab-completion on named function arguments. Submitted by George
3262 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3265 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3263 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3266 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3264 for more details.
3267 for more details.
3265
3268
3266 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3269 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3267 SystemExit exceptions in the script being run. Thanks to a report
3270 SystemExit exceptions in the script being run. Thanks to a report
3268 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3271 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3269 producing very annoying behavior when running unit tests.
3272 producing very annoying behavior when running unit tests.
3270
3273
3271 2005-05-12 Fernando Perez <fperez@colorado.edu>
3274 2005-05-12 Fernando Perez <fperez@colorado.edu>
3272
3275
3273 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3276 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3274 which I'd broken (again) due to a changed regexp. In the process,
3277 which I'd broken (again) due to a changed regexp. In the process,
3275 added ';' as an escape to auto-quote the whole line without
3278 added ';' as an escape to auto-quote the whole line without
3276 splitting its arguments. Thanks to a report by Jerry McRae
3279 splitting its arguments. Thanks to a report by Jerry McRae
3277 <qrs0xyc02-AT-sneakemail.com>.
3280 <qrs0xyc02-AT-sneakemail.com>.
3278
3281
3279 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3282 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3280 possible crashes caused by a TokenError. Reported by Ed Schofield
3283 possible crashes caused by a TokenError. Reported by Ed Schofield
3281 <schofield-AT-ftw.at>.
3284 <schofield-AT-ftw.at>.
3282
3285
3283 2005-05-06 Fernando Perez <fperez@colorado.edu>
3286 2005-05-06 Fernando Perez <fperez@colorado.edu>
3284
3287
3285 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3288 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3286
3289
3287 2005-04-29 Fernando Perez <fperez@colorado.edu>
3290 2005-04-29 Fernando Perez <fperez@colorado.edu>
3288
3291
3289 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3292 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3290 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3293 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3291 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3294 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3292 which provides support for Qt interactive usage (similar to the
3295 which provides support for Qt interactive usage (similar to the
3293 existing one for WX and GTK). This had been often requested.
3296 existing one for WX and GTK). This had been often requested.
3294
3297
3295 2005-04-14 *** Released version 0.6.13
3298 2005-04-14 *** Released version 0.6.13
3296
3299
3297 2005-04-08 Fernando Perez <fperez@colorado.edu>
3300 2005-04-08 Fernando Perez <fperez@colorado.edu>
3298
3301
3299 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3302 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3300 from _ofind, which gets called on almost every input line. Now,
3303 from _ofind, which gets called on almost every input line. Now,
3301 we only try to get docstrings if they are actually going to be
3304 we only try to get docstrings if they are actually going to be
3302 used (the overhead of fetching unnecessary docstrings can be
3305 used (the overhead of fetching unnecessary docstrings can be
3303 noticeable for certain objects, such as Pyro proxies).
3306 noticeable for certain objects, such as Pyro proxies).
3304
3307
3305 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3308 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3306 for completers. For some reason I had been passing them the state
3309 for completers. For some reason I had been passing them the state
3307 variable, which completers never actually need, and was in
3310 variable, which completers never actually need, and was in
3308 conflict with the rlcompleter API. Custom completers ONLY need to
3311 conflict with the rlcompleter API. Custom completers ONLY need to
3309 take the text parameter.
3312 take the text parameter.
3310
3313
3311 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3314 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3312 work correctly in pysh. I've also moved all the logic which used
3315 work correctly in pysh. I've also moved all the logic which used
3313 to be in pysh.py here, which will prevent problems with future
3316 to be in pysh.py here, which will prevent problems with future
3314 upgrades. However, this time I must warn users to update their
3317 upgrades. However, this time I must warn users to update their
3315 pysh profile to include the line
3318 pysh profile to include the line
3316
3319
3317 import_all IPython.Extensions.InterpreterExec
3320 import_all IPython.Extensions.InterpreterExec
3318
3321
3319 because otherwise things won't work for them. They MUST also
3322 because otherwise things won't work for them. They MUST also
3320 delete pysh.py and the line
3323 delete pysh.py and the line
3321
3324
3322 execfile pysh.py
3325 execfile pysh.py
3323
3326
3324 from their ipythonrc-pysh.
3327 from their ipythonrc-pysh.
3325
3328
3326 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3329 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3327 robust in the face of objects whose dir() returns non-strings
3330 robust in the face of objects whose dir() returns non-strings
3328 (which it shouldn't, but some broken libs like ITK do). Thanks to
3331 (which it shouldn't, but some broken libs like ITK do). Thanks to
3329 a patch by John Hunter (implemented differently, though). Also
3332 a patch by John Hunter (implemented differently, though). Also
3330 minor improvements by using .extend instead of + on lists.
3333 minor improvements by using .extend instead of + on lists.
3331
3334
3332 * pysh.py:
3335 * pysh.py:
3333
3336
3334 2005-04-06 Fernando Perez <fperez@colorado.edu>
3337 2005-04-06 Fernando Perez <fperez@colorado.edu>
3335
3338
3336 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3339 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3337 by default, so that all users benefit from it. Those who don't
3340 by default, so that all users benefit from it. Those who don't
3338 want it can still turn it off.
3341 want it can still turn it off.
3339
3342
3340 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3343 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3341 config file, I'd forgotten about this, so users were getting it
3344 config file, I'd forgotten about this, so users were getting it
3342 off by default.
3345 off by default.
3343
3346
3344 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3347 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3345 consistency. Now magics can be called in multiline statements,
3348 consistency. Now magics can be called in multiline statements,
3346 and python variables can be expanded in magic calls via $var.
3349 and python variables can be expanded in magic calls via $var.
3347 This makes the magic system behave just like aliases or !system
3350 This makes the magic system behave just like aliases or !system
3348 calls.
3351 calls.
3349
3352
3350 2005-03-28 Fernando Perez <fperez@colorado.edu>
3353 2005-03-28 Fernando Perez <fperez@colorado.edu>
3351
3354
3352 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3355 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3353 expensive string additions for building command. Add support for
3356 expensive string additions for building command. Add support for
3354 trailing ';' when autocall is used.
3357 trailing ';' when autocall is used.
3355
3358
3356 2005-03-26 Fernando Perez <fperez@colorado.edu>
3359 2005-03-26 Fernando Perez <fperez@colorado.edu>
3357
3360
3358 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3361 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3359 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3362 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3360 ipython.el robust against prompts with any number of spaces
3363 ipython.el robust against prompts with any number of spaces
3361 (including 0) after the ':' character.
3364 (including 0) after the ':' character.
3362
3365
3363 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3366 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3364 continuation prompt, which misled users to think the line was
3367 continuation prompt, which misled users to think the line was
3365 already indented. Closes debian Bug#300847, reported to me by
3368 already indented. Closes debian Bug#300847, reported to me by
3366 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3369 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3367
3370
3368 2005-03-23 Fernando Perez <fperez@colorado.edu>
3371 2005-03-23 Fernando Perez <fperez@colorado.edu>
3369
3372
3370 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3373 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3371 properly aligned if they have embedded newlines.
3374 properly aligned if they have embedded newlines.
3372
3375
3373 * IPython/iplib.py (runlines): Add a public method to expose
3376 * IPython/iplib.py (runlines): Add a public method to expose
3374 IPython's code execution machinery, so that users can run strings
3377 IPython's code execution machinery, so that users can run strings
3375 as if they had been typed at the prompt interactively.
3378 as if they had been typed at the prompt interactively.
3376 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3379 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3377 methods which can call the system shell, but with python variable
3380 methods which can call the system shell, but with python variable
3378 expansion. The three such methods are: __IPYTHON__.system,
3381 expansion. The three such methods are: __IPYTHON__.system,
3379 .getoutput and .getoutputerror. These need to be documented in a
3382 .getoutput and .getoutputerror. These need to be documented in a
3380 'public API' section (to be written) of the manual.
3383 'public API' section (to be written) of the manual.
3381
3384
3382 2005-03-20 Fernando Perez <fperez@colorado.edu>
3385 2005-03-20 Fernando Perez <fperez@colorado.edu>
3383
3386
3384 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3387 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3385 for custom exception handling. This is quite powerful, and it
3388 for custom exception handling. This is quite powerful, and it
3386 allows for user-installable exception handlers which can trap
3389 allows for user-installable exception handlers which can trap
3387 custom exceptions at runtime and treat them separately from
3390 custom exceptions at runtime and treat them separately from
3388 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3391 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3389 Mantegazza <mantegazza-AT-ill.fr>.
3392 Mantegazza <mantegazza-AT-ill.fr>.
3390 (InteractiveShell.set_custom_completer): public API function to
3393 (InteractiveShell.set_custom_completer): public API function to
3391 add new completers at runtime.
3394 add new completers at runtime.
3392
3395
3393 2005-03-19 Fernando Perez <fperez@colorado.edu>
3396 2005-03-19 Fernando Perez <fperez@colorado.edu>
3394
3397
3395 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3398 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3396 allow objects which provide their docstrings via non-standard
3399 allow objects which provide their docstrings via non-standard
3397 mechanisms (like Pyro proxies) to still be inspected by ipython's
3400 mechanisms (like Pyro proxies) to still be inspected by ipython's
3398 ? system.
3401 ? system.
3399
3402
3400 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3403 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3401 automatic capture system. I tried quite hard to make it work
3404 automatic capture system. I tried quite hard to make it work
3402 reliably, and simply failed. I tried many combinations with the
3405 reliably, and simply failed. I tried many combinations with the
3403 subprocess module, but eventually nothing worked in all needed
3406 subprocess module, but eventually nothing worked in all needed
3404 cases (not blocking stdin for the child, duplicating stdout
3407 cases (not blocking stdin for the child, duplicating stdout
3405 without blocking, etc). The new %sc/%sx still do capture to these
3408 without blocking, etc). The new %sc/%sx still do capture to these
3406 magical list/string objects which make shell use much more
3409 magical list/string objects which make shell use much more
3407 conveninent, so not all is lost.
3410 conveninent, so not all is lost.
3408
3411
3409 XXX - FIX MANUAL for the change above!
3412 XXX - FIX MANUAL for the change above!
3410
3413
3411 (runsource): I copied code.py's runsource() into ipython to modify
3414 (runsource): I copied code.py's runsource() into ipython to modify
3412 it a bit. Now the code object and source to be executed are
3415 it a bit. Now the code object and source to be executed are
3413 stored in ipython. This makes this info accessible to third-party
3416 stored in ipython. This makes this info accessible to third-party
3414 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3417 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3415 Mantegazza <mantegazza-AT-ill.fr>.
3418 Mantegazza <mantegazza-AT-ill.fr>.
3416
3419
3417 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3420 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3418 history-search via readline (like C-p/C-n). I'd wanted this for a
3421 history-search via readline (like C-p/C-n). I'd wanted this for a
3419 long time, but only recently found out how to do it. For users
3422 long time, but only recently found out how to do it. For users
3420 who already have their ipythonrc files made and want this, just
3423 who already have their ipythonrc files made and want this, just
3421 add:
3424 add:
3422
3425
3423 readline_parse_and_bind "\e[A": history-search-backward
3426 readline_parse_and_bind "\e[A": history-search-backward
3424 readline_parse_and_bind "\e[B": history-search-forward
3427 readline_parse_and_bind "\e[B": history-search-forward
3425
3428
3426 2005-03-18 Fernando Perez <fperez@colorado.edu>
3429 2005-03-18 Fernando Perez <fperez@colorado.edu>
3427
3430
3428 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3431 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3429 LSString and SList classes which allow transparent conversions
3432 LSString and SList classes which allow transparent conversions
3430 between list mode and whitespace-separated string.
3433 between list mode and whitespace-separated string.
3431 (magic_r): Fix recursion problem in %r.
3434 (magic_r): Fix recursion problem in %r.
3432
3435
3433 * IPython/genutils.py (LSString): New class to be used for
3436 * IPython/genutils.py (LSString): New class to be used for
3434 automatic storage of the results of all alias/system calls in _o
3437 automatic storage of the results of all alias/system calls in _o
3435 and _e (stdout/err). These provide a .l/.list attribute which
3438 and _e (stdout/err). These provide a .l/.list attribute which
3436 does automatic splitting on newlines. This means that for most
3439 does automatic splitting on newlines. This means that for most
3437 uses, you'll never need to do capturing of output with %sc/%sx
3440 uses, you'll never need to do capturing of output with %sc/%sx
3438 anymore, since ipython keeps this always done for you. Note that
3441 anymore, since ipython keeps this always done for you. Note that
3439 only the LAST results are stored, the _o/e variables are
3442 only the LAST results are stored, the _o/e variables are
3440 overwritten on each call. If you need to save their contents
3443 overwritten on each call. If you need to save their contents
3441 further, simply bind them to any other name.
3444 further, simply bind them to any other name.
3442
3445
3443 2005-03-17 Fernando Perez <fperez@colorado.edu>
3446 2005-03-17 Fernando Perez <fperez@colorado.edu>
3444
3447
3445 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3448 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3446 prompt namespace handling.
3449 prompt namespace handling.
3447
3450
3448 2005-03-16 Fernando Perez <fperez@colorado.edu>
3451 2005-03-16 Fernando Perez <fperez@colorado.edu>
3449
3452
3450 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3453 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3451 classic prompts to be '>>> ' (final space was missing, and it
3454 classic prompts to be '>>> ' (final space was missing, and it
3452 trips the emacs python mode).
3455 trips the emacs python mode).
3453 (BasePrompt.__str__): Added safe support for dynamic prompt
3456 (BasePrompt.__str__): Added safe support for dynamic prompt
3454 strings. Now you can set your prompt string to be '$x', and the
3457 strings. Now you can set your prompt string to be '$x', and the
3455 value of x will be printed from your interactive namespace. The
3458 value of x will be printed from your interactive namespace. The
3456 interpolation syntax includes the full Itpl support, so
3459 interpolation syntax includes the full Itpl support, so
3457 ${foo()+x+bar()} is a valid prompt string now, and the function
3460 ${foo()+x+bar()} is a valid prompt string now, and the function
3458 calls will be made at runtime.
3461 calls will be made at runtime.
3459
3462
3460 2005-03-15 Fernando Perez <fperez@colorado.edu>
3463 2005-03-15 Fernando Perez <fperez@colorado.edu>
3461
3464
3462 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3465 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3463 avoid name clashes in pylab. %hist still works, it just forwards
3466 avoid name clashes in pylab. %hist still works, it just forwards
3464 the call to %history.
3467 the call to %history.
3465
3468
3466 2005-03-02 *** Released version 0.6.12
3469 2005-03-02 *** Released version 0.6.12
3467
3470
3468 2005-03-02 Fernando Perez <fperez@colorado.edu>
3471 2005-03-02 Fernando Perez <fperez@colorado.edu>
3469
3472
3470 * IPython/iplib.py (handle_magic): log magic calls properly as
3473 * IPython/iplib.py (handle_magic): log magic calls properly as
3471 ipmagic() function calls.
3474 ipmagic() function calls.
3472
3475
3473 * IPython/Magic.py (magic_time): Improved %time to support
3476 * IPython/Magic.py (magic_time): Improved %time to support
3474 statements and provide wall-clock as well as CPU time.
3477 statements and provide wall-clock as well as CPU time.
3475
3478
3476 2005-02-27 Fernando Perez <fperez@colorado.edu>
3479 2005-02-27 Fernando Perez <fperez@colorado.edu>
3477
3480
3478 * IPython/hooks.py: New hooks module, to expose user-modifiable
3481 * IPython/hooks.py: New hooks module, to expose user-modifiable
3479 IPython functionality in a clean manner. For now only the editor
3482 IPython functionality in a clean manner. For now only the editor
3480 hook is actually written, and other thigns which I intend to turn
3483 hook is actually written, and other thigns which I intend to turn
3481 into proper hooks aren't yet there. The display and prefilter
3484 into proper hooks aren't yet there. The display and prefilter
3482 stuff, for example, should be hooks. But at least now the
3485 stuff, for example, should be hooks. But at least now the
3483 framework is in place, and the rest can be moved here with more
3486 framework is in place, and the rest can be moved here with more
3484 time later. IPython had had a .hooks variable for a long time for
3487 time later. IPython had had a .hooks variable for a long time for
3485 this purpose, but I'd never actually used it for anything.
3488 this purpose, but I'd never actually used it for anything.
3486
3489
3487 2005-02-26 Fernando Perez <fperez@colorado.edu>
3490 2005-02-26 Fernando Perez <fperez@colorado.edu>
3488
3491
3489 * IPython/ipmaker.py (make_IPython): make the default ipython
3492 * IPython/ipmaker.py (make_IPython): make the default ipython
3490 directory be called _ipython under win32, to follow more the
3493 directory be called _ipython under win32, to follow more the
3491 naming peculiarities of that platform (where buggy software like
3494 naming peculiarities of that platform (where buggy software like
3492 Visual Sourcesafe breaks with .named directories). Reported by
3495 Visual Sourcesafe breaks with .named directories). Reported by
3493 Ville Vainio.
3496 Ville Vainio.
3494
3497
3495 2005-02-23 Fernando Perez <fperez@colorado.edu>
3498 2005-02-23 Fernando Perez <fperez@colorado.edu>
3496
3499
3497 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3500 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3498 auto_aliases for win32 which were causing problems. Users can
3501 auto_aliases for win32 which were causing problems. Users can
3499 define the ones they personally like.
3502 define the ones they personally like.
3500
3503
3501 2005-02-21 Fernando Perez <fperez@colorado.edu>
3504 2005-02-21 Fernando Perez <fperez@colorado.edu>
3502
3505
3503 * IPython/Magic.py (magic_time): new magic to time execution of
3506 * IPython/Magic.py (magic_time): new magic to time execution of
3504 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3507 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3505
3508
3506 2005-02-19 Fernando Perez <fperez@colorado.edu>
3509 2005-02-19 Fernando Perez <fperez@colorado.edu>
3507
3510
3508 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3511 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3509 into keys (for prompts, for example).
3512 into keys (for prompts, for example).
3510
3513
3511 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3514 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3512 prompts in case users want them. This introduces a small behavior
3515 prompts in case users want them. This introduces a small behavior
3513 change: ipython does not automatically add a space to all prompts
3516 change: ipython does not automatically add a space to all prompts
3514 anymore. To get the old prompts with a space, users should add it
3517 anymore. To get the old prompts with a space, users should add it
3515 manually to their ipythonrc file, so for example prompt_in1 should
3518 manually to their ipythonrc file, so for example prompt_in1 should
3516 now read 'In [\#]: ' instead of 'In [\#]:'.
3519 now read 'In [\#]: ' instead of 'In [\#]:'.
3517 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3520 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3518 file) to control left-padding of secondary prompts.
3521 file) to control left-padding of secondary prompts.
3519
3522
3520 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3523 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3521 the profiler can't be imported. Fix for Debian, which removed
3524 the profiler can't be imported. Fix for Debian, which removed
3522 profile.py because of License issues. I applied a slightly
3525 profile.py because of License issues. I applied a slightly
3523 modified version of the original Debian patch at
3526 modified version of the original Debian patch at
3524 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3527 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3525
3528
3526 2005-02-17 Fernando Perez <fperez@colorado.edu>
3529 2005-02-17 Fernando Perez <fperez@colorado.edu>
3527
3530
3528 * IPython/genutils.py (native_line_ends): Fix bug which would
3531 * IPython/genutils.py (native_line_ends): Fix bug which would
3529 cause improper line-ends under win32 b/c I was not opening files
3532 cause improper line-ends under win32 b/c I was not opening files
3530 in binary mode. Bug report and fix thanks to Ville.
3533 in binary mode. Bug report and fix thanks to Ville.
3531
3534
3532 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3535 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3533 trying to catch spurious foo[1] autocalls. My fix actually broke
3536 trying to catch spurious foo[1] autocalls. My fix actually broke
3534 ',/' autoquote/call with explicit escape (bad regexp).
3537 ',/' autoquote/call with explicit escape (bad regexp).
3535
3538
3536 2005-02-15 *** Released version 0.6.11
3539 2005-02-15 *** Released version 0.6.11
3537
3540
3538 2005-02-14 Fernando Perez <fperez@colorado.edu>
3541 2005-02-14 Fernando Perez <fperez@colorado.edu>
3539
3542
3540 * IPython/background_jobs.py: New background job management
3543 * IPython/background_jobs.py: New background job management
3541 subsystem. This is implemented via a new set of classes, and
3544 subsystem. This is implemented via a new set of classes, and
3542 IPython now provides a builtin 'jobs' object for background job
3545 IPython now provides a builtin 'jobs' object for background job
3543 execution. A convenience %bg magic serves as a lightweight
3546 execution. A convenience %bg magic serves as a lightweight
3544 frontend for starting the more common type of calls. This was
3547 frontend for starting the more common type of calls. This was
3545 inspired by discussions with B. Granger and the BackgroundCommand
3548 inspired by discussions with B. Granger and the BackgroundCommand
3546 class described in the book Python Scripting for Computational
3549 class described in the book Python Scripting for Computational
3547 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3550 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3548 (although ultimately no code from this text was used, as IPython's
3551 (although ultimately no code from this text was used, as IPython's
3549 system is a separate implementation).
3552 system is a separate implementation).
3550
3553
3551 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3554 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3552 to control the completion of single/double underscore names
3555 to control the completion of single/double underscore names
3553 separately. As documented in the example ipytonrc file, the
3556 separately. As documented in the example ipytonrc file, the
3554 readline_omit__names variable can now be set to 2, to omit even
3557 readline_omit__names variable can now be set to 2, to omit even
3555 single underscore names. Thanks to a patch by Brian Wong
3558 single underscore names. Thanks to a patch by Brian Wong
3556 <BrianWong-AT-AirgoNetworks.Com>.
3559 <BrianWong-AT-AirgoNetworks.Com>.
3557 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3560 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3558 be autocalled as foo([1]) if foo were callable. A problem for
3561 be autocalled as foo([1]) if foo were callable. A problem for
3559 things which are both callable and implement __getitem__.
3562 things which are both callable and implement __getitem__.
3560 (init_readline): Fix autoindentation for win32. Thanks to a patch
3563 (init_readline): Fix autoindentation for win32. Thanks to a patch
3561 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3564 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3562
3565
3563 2005-02-12 Fernando Perez <fperez@colorado.edu>
3566 2005-02-12 Fernando Perez <fperez@colorado.edu>
3564
3567
3565 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3568 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3566 which I had written long ago to sort out user error messages which
3569 which I had written long ago to sort out user error messages which
3567 may occur during startup. This seemed like a good idea initially,
3570 may occur during startup. This seemed like a good idea initially,
3568 but it has proven a disaster in retrospect. I don't want to
3571 but it has proven a disaster in retrospect. I don't want to
3569 change much code for now, so my fix is to set the internal 'debug'
3572 change much code for now, so my fix is to set the internal 'debug'
3570 flag to true everywhere, whose only job was precisely to control
3573 flag to true everywhere, whose only job was precisely to control
3571 this subsystem. This closes issue 28 (as well as avoiding all
3574 this subsystem. This closes issue 28 (as well as avoiding all
3572 sorts of strange hangups which occur from time to time).
3575 sorts of strange hangups which occur from time to time).
3573
3576
3574 2005-02-07 Fernando Perez <fperez@colorado.edu>
3577 2005-02-07 Fernando Perez <fperez@colorado.edu>
3575
3578
3576 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3579 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3577 previous call produced a syntax error.
3580 previous call produced a syntax error.
3578
3581
3579 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3582 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3580 classes without constructor.
3583 classes without constructor.
3581
3584
3582 2005-02-06 Fernando Perez <fperez@colorado.edu>
3585 2005-02-06 Fernando Perez <fperez@colorado.edu>
3583
3586
3584 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3587 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3585 completions with the results of each matcher, so we return results
3588 completions with the results of each matcher, so we return results
3586 to the user from all namespaces. This breaks with ipython
3589 to the user from all namespaces. This breaks with ipython
3587 tradition, but I think it's a nicer behavior. Now you get all
3590 tradition, but I think it's a nicer behavior. Now you get all
3588 possible completions listed, from all possible namespaces (python,
3591 possible completions listed, from all possible namespaces (python,
3589 filesystem, magics...) After a request by John Hunter
3592 filesystem, magics...) After a request by John Hunter
3590 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3593 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3591
3594
3592 2005-02-05 Fernando Perez <fperez@colorado.edu>
3595 2005-02-05 Fernando Perez <fperez@colorado.edu>
3593
3596
3594 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3597 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3595 the call had quote characters in it (the quotes were stripped).
3598 the call had quote characters in it (the quotes were stripped).
3596
3599
3597 2005-01-31 Fernando Perez <fperez@colorado.edu>
3600 2005-01-31 Fernando Perez <fperez@colorado.edu>
3598
3601
3599 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3602 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3600 Itpl.itpl() to make the code more robust against psyco
3603 Itpl.itpl() to make the code more robust against psyco
3601 optimizations.
3604 optimizations.
3602
3605
3603 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3606 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3604 of causing an exception. Quicker, cleaner.
3607 of causing an exception. Quicker, cleaner.
3605
3608
3606 2005-01-28 Fernando Perez <fperez@colorado.edu>
3609 2005-01-28 Fernando Perez <fperez@colorado.edu>
3607
3610
3608 * scripts/ipython_win_post_install.py (install): hardcode
3611 * scripts/ipython_win_post_install.py (install): hardcode
3609 sys.prefix+'python.exe' as the executable path. It turns out that
3612 sys.prefix+'python.exe' as the executable path. It turns out that
3610 during the post-installation run, sys.executable resolves to the
3613 during the post-installation run, sys.executable resolves to the
3611 name of the binary installer! I should report this as a distutils
3614 name of the binary installer! I should report this as a distutils
3612 bug, I think. I updated the .10 release with this tiny fix, to
3615 bug, I think. I updated the .10 release with this tiny fix, to
3613 avoid annoying the lists further.
3616 avoid annoying the lists further.
3614
3617
3615 2005-01-27 *** Released version 0.6.10
3618 2005-01-27 *** Released version 0.6.10
3616
3619
3617 2005-01-27 Fernando Perez <fperez@colorado.edu>
3620 2005-01-27 Fernando Perez <fperez@colorado.edu>
3618
3621
3619 * IPython/numutils.py (norm): Added 'inf' as optional name for
3622 * IPython/numutils.py (norm): Added 'inf' as optional name for
3620 L-infinity norm, included references to mathworld.com for vector
3623 L-infinity norm, included references to mathworld.com for vector
3621 norm definitions.
3624 norm definitions.
3622 (amin/amax): added amin/amax for array min/max. Similar to what
3625 (amin/amax): added amin/amax for array min/max. Similar to what
3623 pylab ships with after the recent reorganization of names.
3626 pylab ships with after the recent reorganization of names.
3624 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3627 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3625
3628
3626 * ipython.el: committed Alex's recent fixes and improvements.
3629 * ipython.el: committed Alex's recent fixes and improvements.
3627 Tested with python-mode from CVS, and it looks excellent. Since
3630 Tested with python-mode from CVS, and it looks excellent. Since
3628 python-mode hasn't released anything in a while, I'm temporarily
3631 python-mode hasn't released anything in a while, I'm temporarily
3629 putting a copy of today's CVS (v 4.70) of python-mode in:
3632 putting a copy of today's CVS (v 4.70) of python-mode in:
3630 http://ipython.scipy.org/tmp/python-mode.el
3633 http://ipython.scipy.org/tmp/python-mode.el
3631
3634
3632 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3635 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3633 sys.executable for the executable name, instead of assuming it's
3636 sys.executable for the executable name, instead of assuming it's
3634 called 'python.exe' (the post-installer would have produced broken
3637 called 'python.exe' (the post-installer would have produced broken
3635 setups on systems with a differently named python binary).
3638 setups on systems with a differently named python binary).
3636
3639
3637 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3640 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3638 references to os.linesep, to make the code more
3641 references to os.linesep, to make the code more
3639 platform-independent. This is also part of the win32 coloring
3642 platform-independent. This is also part of the win32 coloring
3640 fixes.
3643 fixes.
3641
3644
3642 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3645 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3643 lines, which actually cause coloring bugs because the length of
3646 lines, which actually cause coloring bugs because the length of
3644 the line is very difficult to correctly compute with embedded
3647 the line is very difficult to correctly compute with embedded
3645 escapes. This was the source of all the coloring problems under
3648 escapes. This was the source of all the coloring problems under
3646 Win32. I think that _finally_, Win32 users have a properly
3649 Win32. I think that _finally_, Win32 users have a properly
3647 working ipython in all respects. This would never have happened
3650 working ipython in all respects. This would never have happened
3648 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3651 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3649
3652
3650 2005-01-26 *** Released version 0.6.9
3653 2005-01-26 *** Released version 0.6.9
3651
3654
3652 2005-01-25 Fernando Perez <fperez@colorado.edu>
3655 2005-01-25 Fernando Perez <fperez@colorado.edu>
3653
3656
3654 * setup.py: finally, we have a true Windows installer, thanks to
3657 * setup.py: finally, we have a true Windows installer, thanks to
3655 the excellent work of Viktor Ransmayr
3658 the excellent work of Viktor Ransmayr
3656 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3659 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3657 Windows users. The setup routine is quite a bit cleaner thanks to
3660 Windows users. The setup routine is quite a bit cleaner thanks to
3658 this, and the post-install script uses the proper functions to
3661 this, and the post-install script uses the proper functions to
3659 allow a clean de-installation using the standard Windows Control
3662 allow a clean de-installation using the standard Windows Control
3660 Panel.
3663 Panel.
3661
3664
3662 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3665 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3663 environment variable under all OSes (including win32) if
3666 environment variable under all OSes (including win32) if
3664 available. This will give consistency to win32 users who have set
3667 available. This will give consistency to win32 users who have set
3665 this variable for any reason. If os.environ['HOME'] fails, the
3668 this variable for any reason. If os.environ['HOME'] fails, the
3666 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3669 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3667
3670
3668 2005-01-24 Fernando Perez <fperez@colorado.edu>
3671 2005-01-24 Fernando Perez <fperez@colorado.edu>
3669
3672
3670 * IPython/numutils.py (empty_like): add empty_like(), similar to
3673 * IPython/numutils.py (empty_like): add empty_like(), similar to
3671 zeros_like() but taking advantage of the new empty() Numeric routine.
3674 zeros_like() but taking advantage of the new empty() Numeric routine.
3672
3675
3673 2005-01-23 *** Released version 0.6.8
3676 2005-01-23 *** Released version 0.6.8
3674
3677
3675 2005-01-22 Fernando Perez <fperez@colorado.edu>
3678 2005-01-22 Fernando Perez <fperez@colorado.edu>
3676
3679
3677 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3680 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3678 automatic show() calls. After discussing things with JDH, it
3681 automatic show() calls. After discussing things with JDH, it
3679 turns out there are too many corner cases where this can go wrong.
3682 turns out there are too many corner cases where this can go wrong.
3680 It's best not to try to be 'too smart', and simply have ipython
3683 It's best not to try to be 'too smart', and simply have ipython
3681 reproduce as much as possible the default behavior of a normal
3684 reproduce as much as possible the default behavior of a normal
3682 python shell.
3685 python shell.
3683
3686
3684 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3687 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3685 line-splitting regexp and _prefilter() to avoid calling getattr()
3688 line-splitting regexp and _prefilter() to avoid calling getattr()
3686 on assignments. This closes
3689 on assignments. This closes
3687 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3690 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3688 readline uses getattr(), so a simple <TAB> keypress is still
3691 readline uses getattr(), so a simple <TAB> keypress is still
3689 enough to trigger getattr() calls on an object.
3692 enough to trigger getattr() calls on an object.
3690
3693
3691 2005-01-21 Fernando Perez <fperez@colorado.edu>
3694 2005-01-21 Fernando Perez <fperez@colorado.edu>
3692
3695
3693 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3696 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3694 docstring under pylab so it doesn't mask the original.
3697 docstring under pylab so it doesn't mask the original.
3695
3698
3696 2005-01-21 *** Released version 0.6.7
3699 2005-01-21 *** Released version 0.6.7
3697
3700
3698 2005-01-21 Fernando Perez <fperez@colorado.edu>
3701 2005-01-21 Fernando Perez <fperez@colorado.edu>
3699
3702
3700 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3703 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3701 signal handling for win32 users in multithreaded mode.
3704 signal handling for win32 users in multithreaded mode.
3702
3705
3703 2005-01-17 Fernando Perez <fperez@colorado.edu>
3706 2005-01-17 Fernando Perez <fperez@colorado.edu>
3704
3707
3705 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3708 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3706 instances with no __init__. After a crash report by Norbert Nemec
3709 instances with no __init__. After a crash report by Norbert Nemec
3707 <Norbert-AT-nemec-online.de>.
3710 <Norbert-AT-nemec-online.de>.
3708
3711
3709 2005-01-14 Fernando Perez <fperez@colorado.edu>
3712 2005-01-14 Fernando Perez <fperez@colorado.edu>
3710
3713
3711 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3714 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3712 names for verbose exceptions, when multiple dotted names and the
3715 names for verbose exceptions, when multiple dotted names and the
3713 'parent' object were present on the same line.
3716 'parent' object were present on the same line.
3714
3717
3715 2005-01-11 Fernando Perez <fperez@colorado.edu>
3718 2005-01-11 Fernando Perez <fperez@colorado.edu>
3716
3719
3717 * IPython/genutils.py (flag_calls): new utility to trap and flag
3720 * IPython/genutils.py (flag_calls): new utility to trap and flag
3718 calls in functions. I need it to clean up matplotlib support.
3721 calls in functions. I need it to clean up matplotlib support.
3719 Also removed some deprecated code in genutils.
3722 Also removed some deprecated code in genutils.
3720
3723
3721 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3724 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3722 that matplotlib scripts called with %run, which don't call show()
3725 that matplotlib scripts called with %run, which don't call show()
3723 themselves, still have their plotting windows open.
3726 themselves, still have their plotting windows open.
3724
3727
3725 2005-01-05 Fernando Perez <fperez@colorado.edu>
3728 2005-01-05 Fernando Perez <fperez@colorado.edu>
3726
3729
3727 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3730 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3728 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3731 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3729
3732
3730 2004-12-19 Fernando Perez <fperez@colorado.edu>
3733 2004-12-19 Fernando Perez <fperez@colorado.edu>
3731
3734
3732 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3735 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3733 parent_runcode, which was an eyesore. The same result can be
3736 parent_runcode, which was an eyesore. The same result can be
3734 obtained with Python's regular superclass mechanisms.
3737 obtained with Python's regular superclass mechanisms.
3735
3738
3736 2004-12-17 Fernando Perez <fperez@colorado.edu>
3739 2004-12-17 Fernando Perez <fperez@colorado.edu>
3737
3740
3738 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3741 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3739 reported by Prabhu.
3742 reported by Prabhu.
3740 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3743 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3741 sys.stderr) instead of explicitly calling sys.stderr. This helps
3744 sys.stderr) instead of explicitly calling sys.stderr. This helps
3742 maintain our I/O abstractions clean, for future GUI embeddings.
3745 maintain our I/O abstractions clean, for future GUI embeddings.
3743
3746
3744 * IPython/genutils.py (info): added new utility for sys.stderr
3747 * IPython/genutils.py (info): added new utility for sys.stderr
3745 unified info message handling (thin wrapper around warn()).
3748 unified info message handling (thin wrapper around warn()).
3746
3749
3747 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3750 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3748 composite (dotted) names on verbose exceptions.
3751 composite (dotted) names on verbose exceptions.
3749 (VerboseTB.nullrepr): harden against another kind of errors which
3752 (VerboseTB.nullrepr): harden against another kind of errors which
3750 Python's inspect module can trigger, and which were crashing
3753 Python's inspect module can trigger, and which were crashing
3751 IPython. Thanks to a report by Marco Lombardi
3754 IPython. Thanks to a report by Marco Lombardi
3752 <mlombard-AT-ma010192.hq.eso.org>.
3755 <mlombard-AT-ma010192.hq.eso.org>.
3753
3756
3754 2004-12-13 *** Released version 0.6.6
3757 2004-12-13 *** Released version 0.6.6
3755
3758
3756 2004-12-12 Fernando Perez <fperez@colorado.edu>
3759 2004-12-12 Fernando Perez <fperez@colorado.edu>
3757
3760
3758 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3761 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3759 generated by pygtk upon initialization if it was built without
3762 generated by pygtk upon initialization if it was built without
3760 threads (for matplotlib users). After a crash reported by
3763 threads (for matplotlib users). After a crash reported by
3761 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3764 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3762
3765
3763 * IPython/ipmaker.py (make_IPython): fix small bug in the
3766 * IPython/ipmaker.py (make_IPython): fix small bug in the
3764 import_some parameter for multiple imports.
3767 import_some parameter for multiple imports.
3765
3768
3766 * IPython/iplib.py (ipmagic): simplified the interface of
3769 * IPython/iplib.py (ipmagic): simplified the interface of
3767 ipmagic() to take a single string argument, just as it would be
3770 ipmagic() to take a single string argument, just as it would be
3768 typed at the IPython cmd line.
3771 typed at the IPython cmd line.
3769 (ipalias): Added new ipalias() with an interface identical to
3772 (ipalias): Added new ipalias() with an interface identical to
3770 ipmagic(). This completes exposing a pure python interface to the
3773 ipmagic(). This completes exposing a pure python interface to the
3771 alias and magic system, which can be used in loops or more complex
3774 alias and magic system, which can be used in loops or more complex
3772 code where IPython's automatic line mangling is not active.
3775 code where IPython's automatic line mangling is not active.
3773
3776
3774 * IPython/genutils.py (timing): changed interface of timing to
3777 * IPython/genutils.py (timing): changed interface of timing to
3775 simply run code once, which is the most common case. timings()
3778 simply run code once, which is the most common case. timings()
3776 remains unchanged, for the cases where you want multiple runs.
3779 remains unchanged, for the cases where you want multiple runs.
3777
3780
3778 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3781 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3779 bug where Python2.2 crashes with exec'ing code which does not end
3782 bug where Python2.2 crashes with exec'ing code which does not end
3780 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3783 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3781 before.
3784 before.
3782
3785
3783 2004-12-10 Fernando Perez <fperez@colorado.edu>
3786 2004-12-10 Fernando Perez <fperez@colorado.edu>
3784
3787
3785 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3788 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3786 -t to -T, to accomodate the new -t flag in %run (the %run and
3789 -t to -T, to accomodate the new -t flag in %run (the %run and
3787 %prun options are kind of intermixed, and it's not easy to change
3790 %prun options are kind of intermixed, and it's not easy to change
3788 this with the limitations of python's getopt).
3791 this with the limitations of python's getopt).
3789
3792
3790 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3793 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3791 the execution of scripts. It's not as fine-tuned as timeit.py,
3794 the execution of scripts. It's not as fine-tuned as timeit.py,
3792 but it works from inside ipython (and under 2.2, which lacks
3795 but it works from inside ipython (and under 2.2, which lacks
3793 timeit.py). Optionally a number of runs > 1 can be given for
3796 timeit.py). Optionally a number of runs > 1 can be given for
3794 timing very short-running code.
3797 timing very short-running code.
3795
3798
3796 * IPython/genutils.py (uniq_stable): new routine which returns a
3799 * IPython/genutils.py (uniq_stable): new routine which returns a
3797 list of unique elements in any iterable, but in stable order of
3800 list of unique elements in any iterable, but in stable order of
3798 appearance. I needed this for the ultraTB fixes, and it's a handy
3801 appearance. I needed this for the ultraTB fixes, and it's a handy
3799 utility.
3802 utility.
3800
3803
3801 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3804 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3802 dotted names in Verbose exceptions. This had been broken since
3805 dotted names in Verbose exceptions. This had been broken since
3803 the very start, now x.y will properly be printed in a Verbose
3806 the very start, now x.y will properly be printed in a Verbose
3804 traceback, instead of x being shown and y appearing always as an
3807 traceback, instead of x being shown and y appearing always as an
3805 'undefined global'. Getting this to work was a bit tricky,
3808 'undefined global'. Getting this to work was a bit tricky,
3806 because by default python tokenizers are stateless. Saved by
3809 because by default python tokenizers are stateless. Saved by
3807 python's ability to easily add a bit of state to an arbitrary
3810 python's ability to easily add a bit of state to an arbitrary
3808 function (without needing to build a full-blown callable object).
3811 function (without needing to build a full-blown callable object).
3809
3812
3810 Also big cleanup of this code, which had horrendous runtime
3813 Also big cleanup of this code, which had horrendous runtime
3811 lookups of zillions of attributes for colorization. Moved all
3814 lookups of zillions of attributes for colorization. Moved all
3812 this code into a few templates, which make it cleaner and quicker.
3815 this code into a few templates, which make it cleaner and quicker.
3813
3816
3814 Printout quality was also improved for Verbose exceptions: one
3817 Printout quality was also improved for Verbose exceptions: one
3815 variable per line, and memory addresses are printed (this can be
3818 variable per line, and memory addresses are printed (this can be
3816 quite handy in nasty debugging situations, which is what Verbose
3819 quite handy in nasty debugging situations, which is what Verbose
3817 is for).
3820 is for).
3818
3821
3819 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3822 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3820 the command line as scripts to be loaded by embedded instances.
3823 the command line as scripts to be loaded by embedded instances.
3821 Doing so has the potential for an infinite recursion if there are
3824 Doing so has the potential for an infinite recursion if there are
3822 exceptions thrown in the process. This fixes a strange crash
3825 exceptions thrown in the process. This fixes a strange crash
3823 reported by Philippe MULLER <muller-AT-irit.fr>.
3826 reported by Philippe MULLER <muller-AT-irit.fr>.
3824
3827
3825 2004-12-09 Fernando Perez <fperez@colorado.edu>
3828 2004-12-09 Fernando Perez <fperez@colorado.edu>
3826
3829
3827 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3830 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3828 to reflect new names in matplotlib, which now expose the
3831 to reflect new names in matplotlib, which now expose the
3829 matlab-compatible interface via a pylab module instead of the
3832 matlab-compatible interface via a pylab module instead of the
3830 'matlab' name. The new code is backwards compatible, so users of
3833 'matlab' name. The new code is backwards compatible, so users of
3831 all matplotlib versions are OK. Patch by J. Hunter.
3834 all matplotlib versions are OK. Patch by J. Hunter.
3832
3835
3833 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3836 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3834 of __init__ docstrings for instances (class docstrings are already
3837 of __init__ docstrings for instances (class docstrings are already
3835 automatically printed). Instances with customized docstrings
3838 automatically printed). Instances with customized docstrings
3836 (indep. of the class) are also recognized and all 3 separate
3839 (indep. of the class) are also recognized and all 3 separate
3837 docstrings are printed (instance, class, constructor). After some
3840 docstrings are printed (instance, class, constructor). After some
3838 comments/suggestions by J. Hunter.
3841 comments/suggestions by J. Hunter.
3839
3842
3840 2004-12-05 Fernando Perez <fperez@colorado.edu>
3843 2004-12-05 Fernando Perez <fperez@colorado.edu>
3841
3844
3842 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3845 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3843 warnings when tab-completion fails and triggers an exception.
3846 warnings when tab-completion fails and triggers an exception.
3844
3847
3845 2004-12-03 Fernando Perez <fperez@colorado.edu>
3848 2004-12-03 Fernando Perez <fperez@colorado.edu>
3846
3849
3847 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3850 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3848 be triggered when using 'run -p'. An incorrect option flag was
3851 be triggered when using 'run -p'. An incorrect option flag was
3849 being set ('d' instead of 'D').
3852 being set ('d' instead of 'D').
3850 (manpage): fix missing escaped \- sign.
3853 (manpage): fix missing escaped \- sign.
3851
3854
3852 2004-11-30 *** Released version 0.6.5
3855 2004-11-30 *** Released version 0.6.5
3853
3856
3854 2004-11-30 Fernando Perez <fperez@colorado.edu>
3857 2004-11-30 Fernando Perez <fperez@colorado.edu>
3855
3858
3856 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3859 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3857 setting with -d option.
3860 setting with -d option.
3858
3861
3859 * setup.py (docfiles): Fix problem where the doc glob I was using
3862 * setup.py (docfiles): Fix problem where the doc glob I was using
3860 was COMPLETELY BROKEN. It was giving the right files by pure
3863 was COMPLETELY BROKEN. It was giving the right files by pure
3861 accident, but failed once I tried to include ipython.el. Note:
3864 accident, but failed once I tried to include ipython.el. Note:
3862 glob() does NOT allow you to do exclusion on multiple endings!
3865 glob() does NOT allow you to do exclusion on multiple endings!
3863
3866
3864 2004-11-29 Fernando Perez <fperez@colorado.edu>
3867 2004-11-29 Fernando Perez <fperez@colorado.edu>
3865
3868
3866 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3869 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3867 the manpage as the source. Better formatting & consistency.
3870 the manpage as the source. Better formatting & consistency.
3868
3871
3869 * IPython/Magic.py (magic_run): Added new -d option, to run
3872 * IPython/Magic.py (magic_run): Added new -d option, to run
3870 scripts under the control of the python pdb debugger. Note that
3873 scripts under the control of the python pdb debugger. Note that
3871 this required changing the %prun option -d to -D, to avoid a clash
3874 this required changing the %prun option -d to -D, to avoid a clash
3872 (since %run must pass options to %prun, and getopt is too dumb to
3875 (since %run must pass options to %prun, and getopt is too dumb to
3873 handle options with string values with embedded spaces). Thanks
3876 handle options with string values with embedded spaces). Thanks
3874 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3877 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3875 (magic_who_ls): added type matching to %who and %whos, so that one
3878 (magic_who_ls): added type matching to %who and %whos, so that one
3876 can filter their output to only include variables of certain
3879 can filter their output to only include variables of certain
3877 types. Another suggestion by Matthew.
3880 types. Another suggestion by Matthew.
3878 (magic_whos): Added memory summaries in kb and Mb for arrays.
3881 (magic_whos): Added memory summaries in kb and Mb for arrays.
3879 (magic_who): Improve formatting (break lines every 9 vars).
3882 (magic_who): Improve formatting (break lines every 9 vars).
3880
3883
3881 2004-11-28 Fernando Perez <fperez@colorado.edu>
3884 2004-11-28 Fernando Perez <fperez@colorado.edu>
3882
3885
3883 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3886 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3884 cache when empty lines were present.
3887 cache when empty lines were present.
3885
3888
3886 2004-11-24 Fernando Perez <fperez@colorado.edu>
3889 2004-11-24 Fernando Perez <fperez@colorado.edu>
3887
3890
3888 * IPython/usage.py (__doc__): document the re-activated threading
3891 * IPython/usage.py (__doc__): document the re-activated threading
3889 options for WX and GTK.
3892 options for WX and GTK.
3890
3893
3891 2004-11-23 Fernando Perez <fperez@colorado.edu>
3894 2004-11-23 Fernando Perez <fperez@colorado.edu>
3892
3895
3893 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3896 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3894 the -wthread and -gthread options, along with a new -tk one to try
3897 the -wthread and -gthread options, along with a new -tk one to try
3895 and coordinate Tk threading with wx/gtk. The tk support is very
3898 and coordinate Tk threading with wx/gtk. The tk support is very
3896 platform dependent, since it seems to require Tcl and Tk to be
3899 platform dependent, since it seems to require Tcl and Tk to be
3897 built with threads (Fedora1/2 appears NOT to have it, but in
3900 built with threads (Fedora1/2 appears NOT to have it, but in
3898 Prabhu's Debian boxes it works OK). But even with some Tk
3901 Prabhu's Debian boxes it works OK). But even with some Tk
3899 limitations, this is a great improvement.
3902 limitations, this is a great improvement.
3900
3903
3901 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3904 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3902 info in user prompts. Patch by Prabhu.
3905 info in user prompts. Patch by Prabhu.
3903
3906
3904 2004-11-18 Fernando Perez <fperez@colorado.edu>
3907 2004-11-18 Fernando Perez <fperez@colorado.edu>
3905
3908
3906 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3909 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3907 EOFErrors and bail, to avoid infinite loops if a non-terminating
3910 EOFErrors and bail, to avoid infinite loops if a non-terminating
3908 file is fed into ipython. Patch submitted in issue 19 by user,
3911 file is fed into ipython. Patch submitted in issue 19 by user,
3909 many thanks.
3912 many thanks.
3910
3913
3911 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3914 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3912 autoquote/parens in continuation prompts, which can cause lots of
3915 autoquote/parens in continuation prompts, which can cause lots of
3913 problems. Closes roundup issue 20.
3916 problems. Closes roundup issue 20.
3914
3917
3915 2004-11-17 Fernando Perez <fperez@colorado.edu>
3918 2004-11-17 Fernando Perez <fperez@colorado.edu>
3916
3919
3917 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3920 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3918 reported as debian bug #280505. I'm not sure my local changelog
3921 reported as debian bug #280505. I'm not sure my local changelog
3919 entry has the proper debian format (Jack?).
3922 entry has the proper debian format (Jack?).
3920
3923
3921 2004-11-08 *** Released version 0.6.4
3924 2004-11-08 *** Released version 0.6.4
3922
3925
3923 2004-11-08 Fernando Perez <fperez@colorado.edu>
3926 2004-11-08 Fernando Perez <fperez@colorado.edu>
3924
3927
3925 * IPython/iplib.py (init_readline): Fix exit message for Windows
3928 * IPython/iplib.py (init_readline): Fix exit message for Windows
3926 when readline is active. Thanks to a report by Eric Jones
3929 when readline is active. Thanks to a report by Eric Jones
3927 <eric-AT-enthought.com>.
3930 <eric-AT-enthought.com>.
3928
3931
3929 2004-11-07 Fernando Perez <fperez@colorado.edu>
3932 2004-11-07 Fernando Perez <fperez@colorado.edu>
3930
3933
3931 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3934 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3932 sometimes seen by win2k/cygwin users.
3935 sometimes seen by win2k/cygwin users.
3933
3936
3934 2004-11-06 Fernando Perez <fperez@colorado.edu>
3937 2004-11-06 Fernando Perez <fperez@colorado.edu>
3935
3938
3936 * IPython/iplib.py (interact): Change the handling of %Exit from
3939 * IPython/iplib.py (interact): Change the handling of %Exit from
3937 trying to propagate a SystemExit to an internal ipython flag.
3940 trying to propagate a SystemExit to an internal ipython flag.
3938 This is less elegant than using Python's exception mechanism, but
3941 This is less elegant than using Python's exception mechanism, but
3939 I can't get that to work reliably with threads, so under -pylab
3942 I can't get that to work reliably with threads, so under -pylab
3940 %Exit was hanging IPython. Cross-thread exception handling is
3943 %Exit was hanging IPython. Cross-thread exception handling is
3941 really a bitch. Thaks to a bug report by Stephen Walton
3944 really a bitch. Thaks to a bug report by Stephen Walton
3942 <stephen.walton-AT-csun.edu>.
3945 <stephen.walton-AT-csun.edu>.
3943
3946
3944 2004-11-04 Fernando Perez <fperez@colorado.edu>
3947 2004-11-04 Fernando Perez <fperez@colorado.edu>
3945
3948
3946 * IPython/iplib.py (raw_input_original): store a pointer to the
3949 * IPython/iplib.py (raw_input_original): store a pointer to the
3947 true raw_input to harden against code which can modify it
3950 true raw_input to harden against code which can modify it
3948 (wx.py.PyShell does this and would otherwise crash ipython).
3951 (wx.py.PyShell does this and would otherwise crash ipython).
3949 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3952 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3950
3953
3951 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3954 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3952 Ctrl-C problem, which does not mess up the input line.
3955 Ctrl-C problem, which does not mess up the input line.
3953
3956
3954 2004-11-03 Fernando Perez <fperez@colorado.edu>
3957 2004-11-03 Fernando Perez <fperez@colorado.edu>
3955
3958
3956 * IPython/Release.py: Changed licensing to BSD, in all files.
3959 * IPython/Release.py: Changed licensing to BSD, in all files.
3957 (name): lowercase name for tarball/RPM release.
3960 (name): lowercase name for tarball/RPM release.
3958
3961
3959 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3962 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3960 use throughout ipython.
3963 use throughout ipython.
3961
3964
3962 * IPython/Magic.py (Magic._ofind): Switch to using the new
3965 * IPython/Magic.py (Magic._ofind): Switch to using the new
3963 OInspect.getdoc() function.
3966 OInspect.getdoc() function.
3964
3967
3965 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3968 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3966 of the line currently being canceled via Ctrl-C. It's extremely
3969 of the line currently being canceled via Ctrl-C. It's extremely
3967 ugly, but I don't know how to do it better (the problem is one of
3970 ugly, but I don't know how to do it better (the problem is one of
3968 handling cross-thread exceptions).
3971 handling cross-thread exceptions).
3969
3972
3970 2004-10-28 Fernando Perez <fperez@colorado.edu>
3973 2004-10-28 Fernando Perez <fperez@colorado.edu>
3971
3974
3972 * IPython/Shell.py (signal_handler): add signal handlers to trap
3975 * IPython/Shell.py (signal_handler): add signal handlers to trap
3973 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3976 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3974 report by Francesc Alted.
3977 report by Francesc Alted.
3975
3978
3976 2004-10-21 Fernando Perez <fperez@colorado.edu>
3979 2004-10-21 Fernando Perez <fperez@colorado.edu>
3977
3980
3978 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3981 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3979 to % for pysh syntax extensions.
3982 to % for pysh syntax extensions.
3980
3983
3981 2004-10-09 Fernando Perez <fperez@colorado.edu>
3984 2004-10-09 Fernando Perez <fperez@colorado.edu>
3982
3985
3983 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3986 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3984 arrays to print a more useful summary, without calling str(arr).
3987 arrays to print a more useful summary, without calling str(arr).
3985 This avoids the problem of extremely lengthy computations which
3988 This avoids the problem of extremely lengthy computations which
3986 occur if arr is large, and appear to the user as a system lockup
3989 occur if arr is large, and appear to the user as a system lockup
3987 with 100% cpu activity. After a suggestion by Kristian Sandberg
3990 with 100% cpu activity. After a suggestion by Kristian Sandberg
3988 <Kristian.Sandberg@colorado.edu>.
3991 <Kristian.Sandberg@colorado.edu>.
3989 (Magic.__init__): fix bug in global magic escapes not being
3992 (Magic.__init__): fix bug in global magic escapes not being
3990 correctly set.
3993 correctly set.
3991
3994
3992 2004-10-08 Fernando Perez <fperez@colorado.edu>
3995 2004-10-08 Fernando Perez <fperez@colorado.edu>
3993
3996
3994 * IPython/Magic.py (__license__): change to absolute imports of
3997 * IPython/Magic.py (__license__): change to absolute imports of
3995 ipython's own internal packages, to start adapting to the absolute
3998 ipython's own internal packages, to start adapting to the absolute
3996 import requirement of PEP-328.
3999 import requirement of PEP-328.
3997
4000
3998 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4001 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3999 files, and standardize author/license marks through the Release
4002 files, and standardize author/license marks through the Release
4000 module instead of having per/file stuff (except for files with
4003 module instead of having per/file stuff (except for files with
4001 particular licenses, like the MIT/PSF-licensed codes).
4004 particular licenses, like the MIT/PSF-licensed codes).
4002
4005
4003 * IPython/Debugger.py: remove dead code for python 2.1
4006 * IPython/Debugger.py: remove dead code for python 2.1
4004
4007
4005 2004-10-04 Fernando Perez <fperez@colorado.edu>
4008 2004-10-04 Fernando Perez <fperez@colorado.edu>
4006
4009
4007 * IPython/iplib.py (ipmagic): New function for accessing magics
4010 * IPython/iplib.py (ipmagic): New function for accessing magics
4008 via a normal python function call.
4011 via a normal python function call.
4009
4012
4010 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4013 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4011 from '@' to '%', to accomodate the new @decorator syntax of python
4014 from '@' to '%', to accomodate the new @decorator syntax of python
4012 2.4.
4015 2.4.
4013
4016
4014 2004-09-29 Fernando Perez <fperez@colorado.edu>
4017 2004-09-29 Fernando Perez <fperez@colorado.edu>
4015
4018
4016 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4019 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4017 matplotlib.use to prevent running scripts which try to switch
4020 matplotlib.use to prevent running scripts which try to switch
4018 interactive backends from within ipython. This will just crash
4021 interactive backends from within ipython. This will just crash
4019 the python interpreter, so we can't allow it (but a detailed error
4022 the python interpreter, so we can't allow it (but a detailed error
4020 is given to the user).
4023 is given to the user).
4021
4024
4022 2004-09-28 Fernando Perez <fperez@colorado.edu>
4025 2004-09-28 Fernando Perez <fperez@colorado.edu>
4023
4026
4024 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4027 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4025 matplotlib-related fixes so that using @run with non-matplotlib
4028 matplotlib-related fixes so that using @run with non-matplotlib
4026 scripts doesn't pop up spurious plot windows. This requires
4029 scripts doesn't pop up spurious plot windows. This requires
4027 matplotlib >= 0.63, where I had to make some changes as well.
4030 matplotlib >= 0.63, where I had to make some changes as well.
4028
4031
4029 * IPython/ipmaker.py (make_IPython): update version requirement to
4032 * IPython/ipmaker.py (make_IPython): update version requirement to
4030 python 2.2.
4033 python 2.2.
4031
4034
4032 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4035 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4033 banner arg for embedded customization.
4036 banner arg for embedded customization.
4034
4037
4035 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4038 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4036 explicit uses of __IP as the IPython's instance name. Now things
4039 explicit uses of __IP as the IPython's instance name. Now things
4037 are properly handled via the shell.name value. The actual code
4040 are properly handled via the shell.name value. The actual code
4038 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4041 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4039 is much better than before. I'll clean things completely when the
4042 is much better than before. I'll clean things completely when the
4040 magic stuff gets a real overhaul.
4043 magic stuff gets a real overhaul.
4041
4044
4042 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4045 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4043 minor changes to debian dir.
4046 minor changes to debian dir.
4044
4047
4045 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4048 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4046 pointer to the shell itself in the interactive namespace even when
4049 pointer to the shell itself in the interactive namespace even when
4047 a user-supplied dict is provided. This is needed for embedding
4050 a user-supplied dict is provided. This is needed for embedding
4048 purposes (found by tests with Michel Sanner).
4051 purposes (found by tests with Michel Sanner).
4049
4052
4050 2004-09-27 Fernando Perez <fperez@colorado.edu>
4053 2004-09-27 Fernando Perez <fperez@colorado.edu>
4051
4054
4052 * IPython/UserConfig/ipythonrc: remove []{} from
4055 * IPython/UserConfig/ipythonrc: remove []{} from
4053 readline_remove_delims, so that things like [modname.<TAB> do
4056 readline_remove_delims, so that things like [modname.<TAB> do
4054 proper completion. This disables [].TAB, but that's a less common
4057 proper completion. This disables [].TAB, but that's a less common
4055 case than module names in list comprehensions, for example.
4058 case than module names in list comprehensions, for example.
4056 Thanks to a report by Andrea Riciputi.
4059 Thanks to a report by Andrea Riciputi.
4057
4060
4058 2004-09-09 Fernando Perez <fperez@colorado.edu>
4061 2004-09-09 Fernando Perez <fperez@colorado.edu>
4059
4062
4060 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4063 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4061 blocking problems in win32 and osx. Fix by John.
4064 blocking problems in win32 and osx. Fix by John.
4062
4065
4063 2004-09-08 Fernando Perez <fperez@colorado.edu>
4066 2004-09-08 Fernando Perez <fperez@colorado.edu>
4064
4067
4065 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4068 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4066 for Win32 and OSX. Fix by John Hunter.
4069 for Win32 and OSX. Fix by John Hunter.
4067
4070
4068 2004-08-30 *** Released version 0.6.3
4071 2004-08-30 *** Released version 0.6.3
4069
4072
4070 2004-08-30 Fernando Perez <fperez@colorado.edu>
4073 2004-08-30 Fernando Perez <fperez@colorado.edu>
4071
4074
4072 * setup.py (isfile): Add manpages to list of dependent files to be
4075 * setup.py (isfile): Add manpages to list of dependent files to be
4073 updated.
4076 updated.
4074
4077
4075 2004-08-27 Fernando Perez <fperez@colorado.edu>
4078 2004-08-27 Fernando Perez <fperez@colorado.edu>
4076
4079
4077 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4080 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4078 for now. They don't really work with standalone WX/GTK code
4081 for now. They don't really work with standalone WX/GTK code
4079 (though matplotlib IS working fine with both of those backends).
4082 (though matplotlib IS working fine with both of those backends).
4080 This will neeed much more testing. I disabled most things with
4083 This will neeed much more testing. I disabled most things with
4081 comments, so turning it back on later should be pretty easy.
4084 comments, so turning it back on later should be pretty easy.
4082
4085
4083 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4086 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4084 autocalling of expressions like r'foo', by modifying the line
4087 autocalling of expressions like r'foo', by modifying the line
4085 split regexp. Closes
4088 split regexp. Closes
4086 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4089 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4087 Riley <ipythonbugs-AT-sabi.net>.
4090 Riley <ipythonbugs-AT-sabi.net>.
4088 (InteractiveShell.mainloop): honor --nobanner with banner
4091 (InteractiveShell.mainloop): honor --nobanner with banner
4089 extensions.
4092 extensions.
4090
4093
4091 * IPython/Shell.py: Significant refactoring of all classes, so
4094 * IPython/Shell.py: Significant refactoring of all classes, so
4092 that we can really support ALL matplotlib backends and threading
4095 that we can really support ALL matplotlib backends and threading
4093 models (John spotted a bug with Tk which required this). Now we
4096 models (John spotted a bug with Tk which required this). Now we
4094 should support single-threaded, WX-threads and GTK-threads, both
4097 should support single-threaded, WX-threads and GTK-threads, both
4095 for generic code and for matplotlib.
4098 for generic code and for matplotlib.
4096
4099
4097 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4100 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4098 -pylab, to simplify things for users. Will also remove the pylab
4101 -pylab, to simplify things for users. Will also remove the pylab
4099 profile, since now all of matplotlib configuration is directly
4102 profile, since now all of matplotlib configuration is directly
4100 handled here. This also reduces startup time.
4103 handled here. This also reduces startup time.
4101
4104
4102 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4105 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4103 shell wasn't being correctly called. Also in IPShellWX.
4106 shell wasn't being correctly called. Also in IPShellWX.
4104
4107
4105 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4108 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4106 fine-tune banner.
4109 fine-tune banner.
4107
4110
4108 * IPython/numutils.py (spike): Deprecate these spike functions,
4111 * IPython/numutils.py (spike): Deprecate these spike functions,
4109 delete (long deprecated) gnuplot_exec handler.
4112 delete (long deprecated) gnuplot_exec handler.
4110
4113
4111 2004-08-26 Fernando Perez <fperez@colorado.edu>
4114 2004-08-26 Fernando Perez <fperez@colorado.edu>
4112
4115
4113 * ipython.1: Update for threading options, plus some others which
4116 * ipython.1: Update for threading options, plus some others which
4114 were missing.
4117 were missing.
4115
4118
4116 * IPython/ipmaker.py (__call__): Added -wthread option for
4119 * IPython/ipmaker.py (__call__): Added -wthread option for
4117 wxpython thread handling. Make sure threading options are only
4120 wxpython thread handling. Make sure threading options are only
4118 valid at the command line.
4121 valid at the command line.
4119
4122
4120 * scripts/ipython: moved shell selection into a factory function
4123 * scripts/ipython: moved shell selection into a factory function
4121 in Shell.py, to keep the starter script to a minimum.
4124 in Shell.py, to keep the starter script to a minimum.
4122
4125
4123 2004-08-25 Fernando Perez <fperez@colorado.edu>
4126 2004-08-25 Fernando Perez <fperez@colorado.edu>
4124
4127
4125 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4128 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4126 John. Along with some recent changes he made to matplotlib, the
4129 John. Along with some recent changes he made to matplotlib, the
4127 next versions of both systems should work very well together.
4130 next versions of both systems should work very well together.
4128
4131
4129 2004-08-24 Fernando Perez <fperez@colorado.edu>
4132 2004-08-24 Fernando Perez <fperez@colorado.edu>
4130
4133
4131 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4134 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4132 tried to switch the profiling to using hotshot, but I'm getting
4135 tried to switch the profiling to using hotshot, but I'm getting
4133 strange errors from prof.runctx() there. I may be misreading the
4136 strange errors from prof.runctx() there. I may be misreading the
4134 docs, but it looks weird. For now the profiling code will
4137 docs, but it looks weird. For now the profiling code will
4135 continue to use the standard profiler.
4138 continue to use the standard profiler.
4136
4139
4137 2004-08-23 Fernando Perez <fperez@colorado.edu>
4140 2004-08-23 Fernando Perez <fperez@colorado.edu>
4138
4141
4139 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4142 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4140 threaded shell, by John Hunter. It's not quite ready yet, but
4143 threaded shell, by John Hunter. It's not quite ready yet, but
4141 close.
4144 close.
4142
4145
4143 2004-08-22 Fernando Perez <fperez@colorado.edu>
4146 2004-08-22 Fernando Perez <fperez@colorado.edu>
4144
4147
4145 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4148 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4146 in Magic and ultraTB.
4149 in Magic and ultraTB.
4147
4150
4148 * ipython.1: document threading options in manpage.
4151 * ipython.1: document threading options in manpage.
4149
4152
4150 * scripts/ipython: Changed name of -thread option to -gthread,
4153 * scripts/ipython: Changed name of -thread option to -gthread,
4151 since this is GTK specific. I want to leave the door open for a
4154 since this is GTK specific. I want to leave the door open for a
4152 -wthread option for WX, which will most likely be necessary. This
4155 -wthread option for WX, which will most likely be necessary. This
4153 change affects usage and ipmaker as well.
4156 change affects usage and ipmaker as well.
4154
4157
4155 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4158 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4156 handle the matplotlib shell issues. Code by John Hunter
4159 handle the matplotlib shell issues. Code by John Hunter
4157 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4160 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4158 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4161 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4159 broken (and disabled for end users) for now, but it puts the
4162 broken (and disabled for end users) for now, but it puts the
4160 infrastructure in place.
4163 infrastructure in place.
4161
4164
4162 2004-08-21 Fernando Perez <fperez@colorado.edu>
4165 2004-08-21 Fernando Perez <fperez@colorado.edu>
4163
4166
4164 * ipythonrc-pylab: Add matplotlib support.
4167 * ipythonrc-pylab: Add matplotlib support.
4165
4168
4166 * matplotlib_config.py: new files for matplotlib support, part of
4169 * matplotlib_config.py: new files for matplotlib support, part of
4167 the pylab profile.
4170 the pylab profile.
4168
4171
4169 * IPython/usage.py (__doc__): documented the threading options.
4172 * IPython/usage.py (__doc__): documented the threading options.
4170
4173
4171 2004-08-20 Fernando Perez <fperez@colorado.edu>
4174 2004-08-20 Fernando Perez <fperez@colorado.edu>
4172
4175
4173 * ipython: Modified the main calling routine to handle the -thread
4176 * ipython: Modified the main calling routine to handle the -thread
4174 and -mpthread options. This needs to be done as a top-level hack,
4177 and -mpthread options. This needs to be done as a top-level hack,
4175 because it determines which class to instantiate for IPython
4178 because it determines which class to instantiate for IPython
4176 itself.
4179 itself.
4177
4180
4178 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4181 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4179 classes to support multithreaded GTK operation without blocking,
4182 classes to support multithreaded GTK operation without blocking,
4180 and matplotlib with all backends. This is a lot of still very
4183 and matplotlib with all backends. This is a lot of still very
4181 experimental code, and threads are tricky. So it may still have a
4184 experimental code, and threads are tricky. So it may still have a
4182 few rough edges... This code owes a lot to
4185 few rough edges... This code owes a lot to
4183 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4186 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4184 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4187 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4185 to John Hunter for all the matplotlib work.
4188 to John Hunter for all the matplotlib work.
4186
4189
4187 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4190 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4188 options for gtk thread and matplotlib support.
4191 options for gtk thread and matplotlib support.
4189
4192
4190 2004-08-16 Fernando Perez <fperez@colorado.edu>
4193 2004-08-16 Fernando Perez <fperez@colorado.edu>
4191
4194
4192 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4195 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4193 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4196 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4194 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4197 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4195
4198
4196 2004-08-11 Fernando Perez <fperez@colorado.edu>
4199 2004-08-11 Fernando Perez <fperez@colorado.edu>
4197
4200
4198 * setup.py (isfile): Fix build so documentation gets updated for
4201 * setup.py (isfile): Fix build so documentation gets updated for
4199 rpms (it was only done for .tgz builds).
4202 rpms (it was only done for .tgz builds).
4200
4203
4201 2004-08-10 Fernando Perez <fperez@colorado.edu>
4204 2004-08-10 Fernando Perez <fperez@colorado.edu>
4202
4205
4203 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4206 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4204
4207
4205 * iplib.py : Silence syntax error exceptions in tab-completion.
4208 * iplib.py : Silence syntax error exceptions in tab-completion.
4206
4209
4207 2004-08-05 Fernando Perez <fperez@colorado.edu>
4210 2004-08-05 Fernando Perez <fperez@colorado.edu>
4208
4211
4209 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4212 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4210 'color off' mark for continuation prompts. This was causing long
4213 'color off' mark for continuation prompts. This was causing long
4211 continuation lines to mis-wrap.
4214 continuation lines to mis-wrap.
4212
4215
4213 2004-08-01 Fernando Perez <fperez@colorado.edu>
4216 2004-08-01 Fernando Perez <fperez@colorado.edu>
4214
4217
4215 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4218 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4216 for building ipython to be a parameter. All this is necessary
4219 for building ipython to be a parameter. All this is necessary
4217 right now to have a multithreaded version, but this insane
4220 right now to have a multithreaded version, but this insane
4218 non-design will be cleaned up soon. For now, it's a hack that
4221 non-design will be cleaned up soon. For now, it's a hack that
4219 works.
4222 works.
4220
4223
4221 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4224 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4222 args in various places. No bugs so far, but it's a dangerous
4225 args in various places. No bugs so far, but it's a dangerous
4223 practice.
4226 practice.
4224
4227
4225 2004-07-31 Fernando Perez <fperez@colorado.edu>
4228 2004-07-31 Fernando Perez <fperez@colorado.edu>
4226
4229
4227 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4230 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4228 fix completion of files with dots in their names under most
4231 fix completion of files with dots in their names under most
4229 profiles (pysh was OK because the completion order is different).
4232 profiles (pysh was OK because the completion order is different).
4230
4233
4231 2004-07-27 Fernando Perez <fperez@colorado.edu>
4234 2004-07-27 Fernando Perez <fperez@colorado.edu>
4232
4235
4233 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4236 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4234 keywords manually, b/c the one in keyword.py was removed in python
4237 keywords manually, b/c the one in keyword.py was removed in python
4235 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4238 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4236 This is NOT a bug under python 2.3 and earlier.
4239 This is NOT a bug under python 2.3 and earlier.
4237
4240
4238 2004-07-26 Fernando Perez <fperez@colorado.edu>
4241 2004-07-26 Fernando Perez <fperez@colorado.edu>
4239
4242
4240 * IPython/ultraTB.py (VerboseTB.text): Add another
4243 * IPython/ultraTB.py (VerboseTB.text): Add another
4241 linecache.checkcache() call to try to prevent inspect.py from
4244 linecache.checkcache() call to try to prevent inspect.py from
4242 crashing under python 2.3. I think this fixes
4245 crashing under python 2.3. I think this fixes
4243 http://www.scipy.net/roundup/ipython/issue17.
4246 http://www.scipy.net/roundup/ipython/issue17.
4244
4247
4245 2004-07-26 *** Released version 0.6.2
4248 2004-07-26 *** Released version 0.6.2
4246
4249
4247 2004-07-26 Fernando Perez <fperez@colorado.edu>
4250 2004-07-26 Fernando Perez <fperez@colorado.edu>
4248
4251
4249 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4252 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4250 fail for any number.
4253 fail for any number.
4251 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4254 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4252 empty bookmarks.
4255 empty bookmarks.
4253
4256
4254 2004-07-26 *** Released version 0.6.1
4257 2004-07-26 *** Released version 0.6.1
4255
4258
4256 2004-07-26 Fernando Perez <fperez@colorado.edu>
4259 2004-07-26 Fernando Perez <fperez@colorado.edu>
4257
4260
4258 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4261 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4259
4262
4260 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4263 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4261 escaping '()[]{}' in filenames.
4264 escaping '()[]{}' in filenames.
4262
4265
4263 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4266 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4264 Python 2.2 users who lack a proper shlex.split.
4267 Python 2.2 users who lack a proper shlex.split.
4265
4268
4266 2004-07-19 Fernando Perez <fperez@colorado.edu>
4269 2004-07-19 Fernando Perez <fperez@colorado.edu>
4267
4270
4268 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4271 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4269 for reading readline's init file. I follow the normal chain:
4272 for reading readline's init file. I follow the normal chain:
4270 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4273 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4271 report by Mike Heeter. This closes
4274 report by Mike Heeter. This closes
4272 http://www.scipy.net/roundup/ipython/issue16.
4275 http://www.scipy.net/roundup/ipython/issue16.
4273
4276
4274 2004-07-18 Fernando Perez <fperez@colorado.edu>
4277 2004-07-18 Fernando Perez <fperez@colorado.edu>
4275
4278
4276 * IPython/iplib.py (__init__): Add better handling of '\' under
4279 * IPython/iplib.py (__init__): Add better handling of '\' under
4277 Win32 for filenames. After a patch by Ville.
4280 Win32 for filenames. After a patch by Ville.
4278
4281
4279 2004-07-17 Fernando Perez <fperez@colorado.edu>
4282 2004-07-17 Fernando Perez <fperez@colorado.edu>
4280
4283
4281 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4284 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4282 autocalling would be triggered for 'foo is bar' if foo is
4285 autocalling would be triggered for 'foo is bar' if foo is
4283 callable. I also cleaned up the autocall detection code to use a
4286 callable. I also cleaned up the autocall detection code to use a
4284 regexp, which is faster. Bug reported by Alexander Schmolck.
4287 regexp, which is faster. Bug reported by Alexander Schmolck.
4285
4288
4286 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4289 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4287 '?' in them would confuse the help system. Reported by Alex
4290 '?' in them would confuse the help system. Reported by Alex
4288 Schmolck.
4291 Schmolck.
4289
4292
4290 2004-07-16 Fernando Perez <fperez@colorado.edu>
4293 2004-07-16 Fernando Perez <fperez@colorado.edu>
4291
4294
4292 * IPython/GnuplotInteractive.py (__all__): added plot2.
4295 * IPython/GnuplotInteractive.py (__all__): added plot2.
4293
4296
4294 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4297 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4295 plotting dictionaries, lists or tuples of 1d arrays.
4298 plotting dictionaries, lists or tuples of 1d arrays.
4296
4299
4297 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4300 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4298 optimizations.
4301 optimizations.
4299
4302
4300 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4303 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4301 the information which was there from Janko's original IPP code:
4304 the information which was there from Janko's original IPP code:
4302
4305
4303 03.05.99 20:53 porto.ifm.uni-kiel.de
4306 03.05.99 20:53 porto.ifm.uni-kiel.de
4304 --Started changelog.
4307 --Started changelog.
4305 --make clear do what it say it does
4308 --make clear do what it say it does
4306 --added pretty output of lines from inputcache
4309 --added pretty output of lines from inputcache
4307 --Made Logger a mixin class, simplifies handling of switches
4310 --Made Logger a mixin class, simplifies handling of switches
4308 --Added own completer class. .string<TAB> expands to last history
4311 --Added own completer class. .string<TAB> expands to last history
4309 line which starts with string. The new expansion is also present
4312 line which starts with string. The new expansion is also present
4310 with Ctrl-r from the readline library. But this shows, who this
4313 with Ctrl-r from the readline library. But this shows, who this
4311 can be done for other cases.
4314 can be done for other cases.
4312 --Added convention that all shell functions should accept a
4315 --Added convention that all shell functions should accept a
4313 parameter_string This opens the door for different behaviour for
4316 parameter_string This opens the door for different behaviour for
4314 each function. @cd is a good example of this.
4317 each function. @cd is a good example of this.
4315
4318
4316 04.05.99 12:12 porto.ifm.uni-kiel.de
4319 04.05.99 12:12 porto.ifm.uni-kiel.de
4317 --added logfile rotation
4320 --added logfile rotation
4318 --added new mainloop method which freezes first the namespace
4321 --added new mainloop method which freezes first the namespace
4319
4322
4320 07.05.99 21:24 porto.ifm.uni-kiel.de
4323 07.05.99 21:24 porto.ifm.uni-kiel.de
4321 --added the docreader classes. Now there is a help system.
4324 --added the docreader classes. Now there is a help system.
4322 -This is only a first try. Currently it's not easy to put new
4325 -This is only a first try. Currently it's not easy to put new
4323 stuff in the indices. But this is the way to go. Info would be
4326 stuff in the indices. But this is the way to go. Info would be
4324 better, but HTML is every where and not everybody has an info
4327 better, but HTML is every where and not everybody has an info
4325 system installed and it's not so easy to change html-docs to info.
4328 system installed and it's not so easy to change html-docs to info.
4326 --added global logfile option
4329 --added global logfile option
4327 --there is now a hook for object inspection method pinfo needs to
4330 --there is now a hook for object inspection method pinfo needs to
4328 be provided for this. Can be reached by two '??'.
4331 be provided for this. Can be reached by two '??'.
4329
4332
4330 08.05.99 20:51 porto.ifm.uni-kiel.de
4333 08.05.99 20:51 porto.ifm.uni-kiel.de
4331 --added a README
4334 --added a README
4332 --bug in rc file. Something has changed so functions in the rc
4335 --bug in rc file. Something has changed so functions in the rc
4333 file need to reference the shell and not self. Not clear if it's a
4336 file need to reference the shell and not self. Not clear if it's a
4334 bug or feature.
4337 bug or feature.
4335 --changed rc file for new behavior
4338 --changed rc file for new behavior
4336
4339
4337 2004-07-15 Fernando Perez <fperez@colorado.edu>
4340 2004-07-15 Fernando Perez <fperez@colorado.edu>
4338
4341
4339 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4342 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4340 cache was falling out of sync in bizarre manners when multi-line
4343 cache was falling out of sync in bizarre manners when multi-line
4341 input was present. Minor optimizations and cleanup.
4344 input was present. Minor optimizations and cleanup.
4342
4345
4343 (Logger): Remove old Changelog info for cleanup. This is the
4346 (Logger): Remove old Changelog info for cleanup. This is the
4344 information which was there from Janko's original code:
4347 information which was there from Janko's original code:
4345
4348
4346 Changes to Logger: - made the default log filename a parameter
4349 Changes to Logger: - made the default log filename a parameter
4347
4350
4348 - put a check for lines beginning with !@? in log(). Needed
4351 - put a check for lines beginning with !@? in log(). Needed
4349 (even if the handlers properly log their lines) for mid-session
4352 (even if the handlers properly log their lines) for mid-session
4350 logging activation to work properly. Without this, lines logged
4353 logging activation to work properly. Without this, lines logged
4351 in mid session, which get read from the cache, would end up
4354 in mid session, which get read from the cache, would end up
4352 'bare' (with !@? in the open) in the log. Now they are caught
4355 'bare' (with !@? in the open) in the log. Now they are caught
4353 and prepended with a #.
4356 and prepended with a #.
4354
4357
4355 * IPython/iplib.py (InteractiveShell.init_readline): added check
4358 * IPython/iplib.py (InteractiveShell.init_readline): added check
4356 in case MagicCompleter fails to be defined, so we don't crash.
4359 in case MagicCompleter fails to be defined, so we don't crash.
4357
4360
4358 2004-07-13 Fernando Perez <fperez@colorado.edu>
4361 2004-07-13 Fernando Perez <fperez@colorado.edu>
4359
4362
4360 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4363 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4361 of EPS if the requested filename ends in '.eps'.
4364 of EPS if the requested filename ends in '.eps'.
4362
4365
4363 2004-07-04 Fernando Perez <fperez@colorado.edu>
4366 2004-07-04 Fernando Perez <fperez@colorado.edu>
4364
4367
4365 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4368 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4366 escaping of quotes when calling the shell.
4369 escaping of quotes when calling the shell.
4367
4370
4368 2004-07-02 Fernando Perez <fperez@colorado.edu>
4371 2004-07-02 Fernando Perez <fperez@colorado.edu>
4369
4372
4370 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4373 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4371 gettext not working because we were clobbering '_'. Fixes
4374 gettext not working because we were clobbering '_'. Fixes
4372 http://www.scipy.net/roundup/ipython/issue6.
4375 http://www.scipy.net/roundup/ipython/issue6.
4373
4376
4374 2004-07-01 Fernando Perez <fperez@colorado.edu>
4377 2004-07-01 Fernando Perez <fperez@colorado.edu>
4375
4378
4376 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4379 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4377 into @cd. Patch by Ville.
4380 into @cd. Patch by Ville.
4378
4381
4379 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4382 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4380 new function to store things after ipmaker runs. Patch by Ville.
4383 new function to store things after ipmaker runs. Patch by Ville.
4381 Eventually this will go away once ipmaker is removed and the class
4384 Eventually this will go away once ipmaker is removed and the class
4382 gets cleaned up, but for now it's ok. Key functionality here is
4385 gets cleaned up, but for now it's ok. Key functionality here is
4383 the addition of the persistent storage mechanism, a dict for
4386 the addition of the persistent storage mechanism, a dict for
4384 keeping data across sessions (for now just bookmarks, but more can
4387 keeping data across sessions (for now just bookmarks, but more can
4385 be implemented later).
4388 be implemented later).
4386
4389
4387 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4390 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4388 persistent across sections. Patch by Ville, I modified it
4391 persistent across sections. Patch by Ville, I modified it
4389 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4392 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4390 added a '-l' option to list all bookmarks.
4393 added a '-l' option to list all bookmarks.
4391
4394
4392 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4395 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4393 center for cleanup. Registered with atexit.register(). I moved
4396 center for cleanup. Registered with atexit.register(). I moved
4394 here the old exit_cleanup(). After a patch by Ville.
4397 here the old exit_cleanup(). After a patch by Ville.
4395
4398
4396 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4399 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4397 characters in the hacked shlex_split for python 2.2.
4400 characters in the hacked shlex_split for python 2.2.
4398
4401
4399 * IPython/iplib.py (file_matches): more fixes to filenames with
4402 * IPython/iplib.py (file_matches): more fixes to filenames with
4400 whitespace in them. It's not perfect, but limitations in python's
4403 whitespace in them. It's not perfect, but limitations in python's
4401 readline make it impossible to go further.
4404 readline make it impossible to go further.
4402
4405
4403 2004-06-29 Fernando Perez <fperez@colorado.edu>
4406 2004-06-29 Fernando Perez <fperez@colorado.edu>
4404
4407
4405 * IPython/iplib.py (file_matches): escape whitespace correctly in
4408 * IPython/iplib.py (file_matches): escape whitespace correctly in
4406 filename completions. Bug reported by Ville.
4409 filename completions. Bug reported by Ville.
4407
4410
4408 2004-06-28 Fernando Perez <fperez@colorado.edu>
4411 2004-06-28 Fernando Perez <fperez@colorado.edu>
4409
4412
4410 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4413 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4411 the history file will be called 'history-PROFNAME' (or just
4414 the history file will be called 'history-PROFNAME' (or just
4412 'history' if no profile is loaded). I was getting annoyed at
4415 'history' if no profile is loaded). I was getting annoyed at
4413 getting my Numerical work history clobbered by pysh sessions.
4416 getting my Numerical work history clobbered by pysh sessions.
4414
4417
4415 * IPython/iplib.py (InteractiveShell.__init__): Internal
4418 * IPython/iplib.py (InteractiveShell.__init__): Internal
4416 getoutputerror() function so that we can honor the system_verbose
4419 getoutputerror() function so that we can honor the system_verbose
4417 flag for _all_ system calls. I also added escaping of #
4420 flag for _all_ system calls. I also added escaping of #
4418 characters here to avoid confusing Itpl.
4421 characters here to avoid confusing Itpl.
4419
4422
4420 * IPython/Magic.py (shlex_split): removed call to shell in
4423 * IPython/Magic.py (shlex_split): removed call to shell in
4421 parse_options and replaced it with shlex.split(). The annoying
4424 parse_options and replaced it with shlex.split(). The annoying
4422 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4425 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4423 to backport it from 2.3, with several frail hacks (the shlex
4426 to backport it from 2.3, with several frail hacks (the shlex
4424 module is rather limited in 2.2). Thanks to a suggestion by Ville
4427 module is rather limited in 2.2). Thanks to a suggestion by Ville
4425 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4428 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4426 problem.
4429 problem.
4427
4430
4428 (Magic.magic_system_verbose): new toggle to print the actual
4431 (Magic.magic_system_verbose): new toggle to print the actual
4429 system calls made by ipython. Mainly for debugging purposes.
4432 system calls made by ipython. Mainly for debugging purposes.
4430
4433
4431 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4434 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4432 doesn't support persistence. Reported (and fix suggested) by
4435 doesn't support persistence. Reported (and fix suggested) by
4433 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4436 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4434
4437
4435 2004-06-26 Fernando Perez <fperez@colorado.edu>
4438 2004-06-26 Fernando Perez <fperez@colorado.edu>
4436
4439
4437 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4440 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4438 continue prompts.
4441 continue prompts.
4439
4442
4440 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4443 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4441 function (basically a big docstring) and a few more things here to
4444 function (basically a big docstring) and a few more things here to
4442 speedup startup. pysh.py is now very lightweight. We want because
4445 speedup startup. pysh.py is now very lightweight. We want because
4443 it gets execfile'd, while InterpreterExec gets imported, so
4446 it gets execfile'd, while InterpreterExec gets imported, so
4444 byte-compilation saves time.
4447 byte-compilation saves time.
4445
4448
4446 2004-06-25 Fernando Perez <fperez@colorado.edu>
4449 2004-06-25 Fernando Perez <fperez@colorado.edu>
4447
4450
4448 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4451 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4449 -NUM', which was recently broken.
4452 -NUM', which was recently broken.
4450
4453
4451 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4454 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4452 in multi-line input (but not !!, which doesn't make sense there).
4455 in multi-line input (but not !!, which doesn't make sense there).
4453
4456
4454 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4457 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4455 It's just too useful, and people can turn it off in the less
4458 It's just too useful, and people can turn it off in the less
4456 common cases where it's a problem.
4459 common cases where it's a problem.
4457
4460
4458 2004-06-24 Fernando Perez <fperez@colorado.edu>
4461 2004-06-24 Fernando Perez <fperez@colorado.edu>
4459
4462
4460 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4463 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4461 special syntaxes (like alias calling) is now allied in multi-line
4464 special syntaxes (like alias calling) is now allied in multi-line
4462 input. This is still _very_ experimental, but it's necessary for
4465 input. This is still _very_ experimental, but it's necessary for
4463 efficient shell usage combining python looping syntax with system
4466 efficient shell usage combining python looping syntax with system
4464 calls. For now it's restricted to aliases, I don't think it
4467 calls. For now it's restricted to aliases, I don't think it
4465 really even makes sense to have this for magics.
4468 really even makes sense to have this for magics.
4466
4469
4467 2004-06-23 Fernando Perez <fperez@colorado.edu>
4470 2004-06-23 Fernando Perez <fperez@colorado.edu>
4468
4471
4469 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4472 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4470 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4473 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4471
4474
4472 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4475 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4473 extensions under Windows (after code sent by Gary Bishop). The
4476 extensions under Windows (after code sent by Gary Bishop). The
4474 extensions considered 'executable' are stored in IPython's rc
4477 extensions considered 'executable' are stored in IPython's rc
4475 structure as win_exec_ext.
4478 structure as win_exec_ext.
4476
4479
4477 * IPython/genutils.py (shell): new function, like system() but
4480 * IPython/genutils.py (shell): new function, like system() but
4478 without return value. Very useful for interactive shell work.
4481 without return value. Very useful for interactive shell work.
4479
4482
4480 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4483 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4481 delete aliases.
4484 delete aliases.
4482
4485
4483 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4486 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4484 sure that the alias table doesn't contain python keywords.
4487 sure that the alias table doesn't contain python keywords.
4485
4488
4486 2004-06-21 Fernando Perez <fperez@colorado.edu>
4489 2004-06-21 Fernando Perez <fperez@colorado.edu>
4487
4490
4488 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4491 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4489 non-existent items are found in $PATH. Reported by Thorsten.
4492 non-existent items are found in $PATH. Reported by Thorsten.
4490
4493
4491 2004-06-20 Fernando Perez <fperez@colorado.edu>
4494 2004-06-20 Fernando Perez <fperez@colorado.edu>
4492
4495
4493 * IPython/iplib.py (complete): modified the completer so that the
4496 * IPython/iplib.py (complete): modified the completer so that the
4494 order of priorities can be easily changed at runtime.
4497 order of priorities can be easily changed at runtime.
4495
4498
4496 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4499 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4497 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4500 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4498
4501
4499 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4502 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4500 expand Python variables prepended with $ in all system calls. The
4503 expand Python variables prepended with $ in all system calls. The
4501 same was done to InteractiveShell.handle_shell_escape. Now all
4504 same was done to InteractiveShell.handle_shell_escape. Now all
4502 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4505 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4503 expansion of python variables and expressions according to the
4506 expansion of python variables and expressions according to the
4504 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4507 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4505
4508
4506 Though PEP-215 has been rejected, a similar (but simpler) one
4509 Though PEP-215 has been rejected, a similar (but simpler) one
4507 seems like it will go into Python 2.4, PEP-292 -
4510 seems like it will go into Python 2.4, PEP-292 -
4508 http://www.python.org/peps/pep-0292.html.
4511 http://www.python.org/peps/pep-0292.html.
4509
4512
4510 I'll keep the full syntax of PEP-215, since IPython has since the
4513 I'll keep the full syntax of PEP-215, since IPython has since the
4511 start used Ka-Ping Yee's reference implementation discussed there
4514 start used Ka-Ping Yee's reference implementation discussed there
4512 (Itpl), and I actually like the powerful semantics it offers.
4515 (Itpl), and I actually like the powerful semantics it offers.
4513
4516
4514 In order to access normal shell variables, the $ has to be escaped
4517 In order to access normal shell variables, the $ has to be escaped
4515 via an extra $. For example:
4518 via an extra $. For example:
4516
4519
4517 In [7]: PATH='a python variable'
4520 In [7]: PATH='a python variable'
4518
4521
4519 In [8]: !echo $PATH
4522 In [8]: !echo $PATH
4520 a python variable
4523 a python variable
4521
4524
4522 In [9]: !echo $$PATH
4525 In [9]: !echo $$PATH
4523 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4526 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4524
4527
4525 (Magic.parse_options): escape $ so the shell doesn't evaluate
4528 (Magic.parse_options): escape $ so the shell doesn't evaluate
4526 things prematurely.
4529 things prematurely.
4527
4530
4528 * IPython/iplib.py (InteractiveShell.call_alias): added the
4531 * IPython/iplib.py (InteractiveShell.call_alias): added the
4529 ability for aliases to expand python variables via $.
4532 ability for aliases to expand python variables via $.
4530
4533
4531 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4534 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4532 system, now there's a @rehash/@rehashx pair of magics. These work
4535 system, now there's a @rehash/@rehashx pair of magics. These work
4533 like the csh rehash command, and can be invoked at any time. They
4536 like the csh rehash command, and can be invoked at any time. They
4534 build a table of aliases to everything in the user's $PATH
4537 build a table of aliases to everything in the user's $PATH
4535 (@rehash uses everything, @rehashx is slower but only adds
4538 (@rehash uses everything, @rehashx is slower but only adds
4536 executable files). With this, the pysh.py-based shell profile can
4539 executable files). With this, the pysh.py-based shell profile can
4537 now simply call rehash upon startup, and full access to all
4540 now simply call rehash upon startup, and full access to all
4538 programs in the user's path is obtained.
4541 programs in the user's path is obtained.
4539
4542
4540 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4543 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4541 functionality is now fully in place. I removed the old dynamic
4544 functionality is now fully in place. I removed the old dynamic
4542 code generation based approach, in favor of a much lighter one
4545 code generation based approach, in favor of a much lighter one
4543 based on a simple dict. The advantage is that this allows me to
4546 based on a simple dict. The advantage is that this allows me to
4544 now have thousands of aliases with negligible cost (unthinkable
4547 now have thousands of aliases with negligible cost (unthinkable
4545 with the old system).
4548 with the old system).
4546
4549
4547 2004-06-19 Fernando Perez <fperez@colorado.edu>
4550 2004-06-19 Fernando Perez <fperez@colorado.edu>
4548
4551
4549 * IPython/iplib.py (__init__): extended MagicCompleter class to
4552 * IPython/iplib.py (__init__): extended MagicCompleter class to
4550 also complete (last in priority) on user aliases.
4553 also complete (last in priority) on user aliases.
4551
4554
4552 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4555 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4553 call to eval.
4556 call to eval.
4554 (ItplNS.__init__): Added a new class which functions like Itpl,
4557 (ItplNS.__init__): Added a new class which functions like Itpl,
4555 but allows configuring the namespace for the evaluation to occur
4558 but allows configuring the namespace for the evaluation to occur
4556 in.
4559 in.
4557
4560
4558 2004-06-18 Fernando Perez <fperez@colorado.edu>
4561 2004-06-18 Fernando Perez <fperez@colorado.edu>
4559
4562
4560 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4563 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4561 better message when 'exit' or 'quit' are typed (a common newbie
4564 better message when 'exit' or 'quit' are typed (a common newbie
4562 confusion).
4565 confusion).
4563
4566
4564 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4567 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4565 check for Windows users.
4568 check for Windows users.
4566
4569
4567 * IPython/iplib.py (InteractiveShell.user_setup): removed
4570 * IPython/iplib.py (InteractiveShell.user_setup): removed
4568 disabling of colors for Windows. I'll test at runtime and issue a
4571 disabling of colors for Windows. I'll test at runtime and issue a
4569 warning if Gary's readline isn't found, as to nudge users to
4572 warning if Gary's readline isn't found, as to nudge users to
4570 download it.
4573 download it.
4571
4574
4572 2004-06-16 Fernando Perez <fperez@colorado.edu>
4575 2004-06-16 Fernando Perez <fperez@colorado.edu>
4573
4576
4574 * IPython/genutils.py (Stream.__init__): changed to print errors
4577 * IPython/genutils.py (Stream.__init__): changed to print errors
4575 to sys.stderr. I had a circular dependency here. Now it's
4578 to sys.stderr. I had a circular dependency here. Now it's
4576 possible to run ipython as IDLE's shell (consider this pre-alpha,
4579 possible to run ipython as IDLE's shell (consider this pre-alpha,
4577 since true stdout things end up in the starting terminal instead
4580 since true stdout things end up in the starting terminal instead
4578 of IDLE's out).
4581 of IDLE's out).
4579
4582
4580 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4583 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4581 users who haven't # updated their prompt_in2 definitions. Remove
4584 users who haven't # updated their prompt_in2 definitions. Remove
4582 eventually.
4585 eventually.
4583 (multiple_replace): added credit to original ASPN recipe.
4586 (multiple_replace): added credit to original ASPN recipe.
4584
4587
4585 2004-06-15 Fernando Perez <fperez@colorado.edu>
4588 2004-06-15 Fernando Perez <fperez@colorado.edu>
4586
4589
4587 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4590 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4588 list of auto-defined aliases.
4591 list of auto-defined aliases.
4589
4592
4590 2004-06-13 Fernando Perez <fperez@colorado.edu>
4593 2004-06-13 Fernando Perez <fperez@colorado.edu>
4591
4594
4592 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4595 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4593 install was really requested (so setup.py can be used for other
4596 install was really requested (so setup.py can be used for other
4594 things under Windows).
4597 things under Windows).
4595
4598
4596 2004-06-10 Fernando Perez <fperez@colorado.edu>
4599 2004-06-10 Fernando Perez <fperez@colorado.edu>
4597
4600
4598 * IPython/Logger.py (Logger.create_log): Manually remove any old
4601 * IPython/Logger.py (Logger.create_log): Manually remove any old
4599 backup, since os.remove may fail under Windows. Fixes bug
4602 backup, since os.remove may fail under Windows. Fixes bug
4600 reported by Thorsten.
4603 reported by Thorsten.
4601
4604
4602 2004-06-09 Fernando Perez <fperez@colorado.edu>
4605 2004-06-09 Fernando Perez <fperez@colorado.edu>
4603
4606
4604 * examples/example-embed.py: fixed all references to %n (replaced
4607 * examples/example-embed.py: fixed all references to %n (replaced
4605 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4608 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4606 for all examples and the manual as well.
4609 for all examples and the manual as well.
4607
4610
4608 2004-06-08 Fernando Perez <fperez@colorado.edu>
4611 2004-06-08 Fernando Perez <fperez@colorado.edu>
4609
4612
4610 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4613 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4611 alignment and color management. All 3 prompt subsystems now
4614 alignment and color management. All 3 prompt subsystems now
4612 inherit from BasePrompt.
4615 inherit from BasePrompt.
4613
4616
4614 * tools/release: updates for windows installer build and tag rpms
4617 * tools/release: updates for windows installer build and tag rpms
4615 with python version (since paths are fixed).
4618 with python version (since paths are fixed).
4616
4619
4617 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4620 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4618 which will become eventually obsolete. Also fixed the default
4621 which will become eventually obsolete. Also fixed the default
4619 prompt_in2 to use \D, so at least new users start with the correct
4622 prompt_in2 to use \D, so at least new users start with the correct
4620 defaults.
4623 defaults.
4621 WARNING: Users with existing ipythonrc files will need to apply
4624 WARNING: Users with existing ipythonrc files will need to apply
4622 this fix manually!
4625 this fix manually!
4623
4626
4624 * setup.py: make windows installer (.exe). This is finally the
4627 * setup.py: make windows installer (.exe). This is finally the
4625 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4628 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4626 which I hadn't included because it required Python 2.3 (or recent
4629 which I hadn't included because it required Python 2.3 (or recent
4627 distutils).
4630 distutils).
4628
4631
4629 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4632 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4630 usage of new '\D' escape.
4633 usage of new '\D' escape.
4631
4634
4632 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4635 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4633 lacks os.getuid())
4636 lacks os.getuid())
4634 (CachedOutput.set_colors): Added the ability to turn coloring
4637 (CachedOutput.set_colors): Added the ability to turn coloring
4635 on/off with @colors even for manually defined prompt colors. It
4638 on/off with @colors even for manually defined prompt colors. It
4636 uses a nasty global, but it works safely and via the generic color
4639 uses a nasty global, but it works safely and via the generic color
4637 handling mechanism.
4640 handling mechanism.
4638 (Prompt2.__init__): Introduced new escape '\D' for continuation
4641 (Prompt2.__init__): Introduced new escape '\D' for continuation
4639 prompts. It represents the counter ('\#') as dots.
4642 prompts. It represents the counter ('\#') as dots.
4640 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4643 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4641 need to update their ipythonrc files and replace '%n' with '\D' in
4644 need to update their ipythonrc files and replace '%n' with '\D' in
4642 their prompt_in2 settings everywhere. Sorry, but there's
4645 their prompt_in2 settings everywhere. Sorry, but there's
4643 otherwise no clean way to get all prompts to properly align. The
4646 otherwise no clean way to get all prompts to properly align. The
4644 ipythonrc shipped with IPython has been updated.
4647 ipythonrc shipped with IPython has been updated.
4645
4648
4646 2004-06-07 Fernando Perez <fperez@colorado.edu>
4649 2004-06-07 Fernando Perez <fperez@colorado.edu>
4647
4650
4648 * setup.py (isfile): Pass local_icons option to latex2html, so the
4651 * setup.py (isfile): Pass local_icons option to latex2html, so the
4649 resulting HTML file is self-contained. Thanks to
4652 resulting HTML file is self-contained. Thanks to
4650 dryice-AT-liu.com.cn for the tip.
4653 dryice-AT-liu.com.cn for the tip.
4651
4654
4652 * pysh.py: I created a new profile 'shell', which implements a
4655 * pysh.py: I created a new profile 'shell', which implements a
4653 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4656 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4654 system shell, nor will it become one anytime soon. It's mainly
4657 system shell, nor will it become one anytime soon. It's mainly
4655 meant to illustrate the use of the new flexible bash-like prompts.
4658 meant to illustrate the use of the new flexible bash-like prompts.
4656 I guess it could be used by hardy souls for true shell management,
4659 I guess it could be used by hardy souls for true shell management,
4657 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4660 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4658 profile. This uses the InterpreterExec extension provided by
4661 profile. This uses the InterpreterExec extension provided by
4659 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4662 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4660
4663
4661 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4664 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4662 auto-align itself with the length of the previous input prompt
4665 auto-align itself with the length of the previous input prompt
4663 (taking into account the invisible color escapes).
4666 (taking into account the invisible color escapes).
4664 (CachedOutput.__init__): Large restructuring of this class. Now
4667 (CachedOutput.__init__): Large restructuring of this class. Now
4665 all three prompts (primary1, primary2, output) are proper objects,
4668 all three prompts (primary1, primary2, output) are proper objects,
4666 managed by the 'parent' CachedOutput class. The code is still a
4669 managed by the 'parent' CachedOutput class. The code is still a
4667 bit hackish (all prompts share state via a pointer to the cache),
4670 bit hackish (all prompts share state via a pointer to the cache),
4668 but it's overall far cleaner than before.
4671 but it's overall far cleaner than before.
4669
4672
4670 * IPython/genutils.py (getoutputerror): modified to add verbose,
4673 * IPython/genutils.py (getoutputerror): modified to add verbose,
4671 debug and header options. This makes the interface of all getout*
4674 debug and header options. This makes the interface of all getout*
4672 functions uniform.
4675 functions uniform.
4673 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4676 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4674
4677
4675 * IPython/Magic.py (Magic.default_option): added a function to
4678 * IPython/Magic.py (Magic.default_option): added a function to
4676 allow registering default options for any magic command. This
4679 allow registering default options for any magic command. This
4677 makes it easy to have profiles which customize the magics globally
4680 makes it easy to have profiles which customize the magics globally
4678 for a certain use. The values set through this function are
4681 for a certain use. The values set through this function are
4679 picked up by the parse_options() method, which all magics should
4682 picked up by the parse_options() method, which all magics should
4680 use to parse their options.
4683 use to parse their options.
4681
4684
4682 * IPython/genutils.py (warn): modified the warnings framework to
4685 * IPython/genutils.py (warn): modified the warnings framework to
4683 use the Term I/O class. I'm trying to slowly unify all of
4686 use the Term I/O class. I'm trying to slowly unify all of
4684 IPython's I/O operations to pass through Term.
4687 IPython's I/O operations to pass through Term.
4685
4688
4686 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4689 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4687 the secondary prompt to correctly match the length of the primary
4690 the secondary prompt to correctly match the length of the primary
4688 one for any prompt. Now multi-line code will properly line up
4691 one for any prompt. Now multi-line code will properly line up
4689 even for path dependent prompts, such as the new ones available
4692 even for path dependent prompts, such as the new ones available
4690 via the prompt_specials.
4693 via the prompt_specials.
4691
4694
4692 2004-06-06 Fernando Perez <fperez@colorado.edu>
4695 2004-06-06 Fernando Perez <fperez@colorado.edu>
4693
4696
4694 * IPython/Prompts.py (prompt_specials): Added the ability to have
4697 * IPython/Prompts.py (prompt_specials): Added the ability to have
4695 bash-like special sequences in the prompts, which get
4698 bash-like special sequences in the prompts, which get
4696 automatically expanded. Things like hostname, current working
4699 automatically expanded. Things like hostname, current working
4697 directory and username are implemented already, but it's easy to
4700 directory and username are implemented already, but it's easy to
4698 add more in the future. Thanks to a patch by W.J. van der Laan
4701 add more in the future. Thanks to a patch by W.J. van der Laan
4699 <gnufnork-AT-hetdigitalegat.nl>
4702 <gnufnork-AT-hetdigitalegat.nl>
4700 (prompt_specials): Added color support for prompt strings, so
4703 (prompt_specials): Added color support for prompt strings, so
4701 users can define arbitrary color setups for their prompts.
4704 users can define arbitrary color setups for their prompts.
4702
4705
4703 2004-06-05 Fernando Perez <fperez@colorado.edu>
4706 2004-06-05 Fernando Perez <fperez@colorado.edu>
4704
4707
4705 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4708 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4706 code to load Gary Bishop's readline and configure it
4709 code to load Gary Bishop's readline and configure it
4707 automatically. Thanks to Gary for help on this.
4710 automatically. Thanks to Gary for help on this.
4708
4711
4709 2004-06-01 Fernando Perez <fperez@colorado.edu>
4712 2004-06-01 Fernando Perez <fperez@colorado.edu>
4710
4713
4711 * IPython/Logger.py (Logger.create_log): fix bug for logging
4714 * IPython/Logger.py (Logger.create_log): fix bug for logging
4712 with no filename (previous fix was incomplete).
4715 with no filename (previous fix was incomplete).
4713
4716
4714 2004-05-25 Fernando Perez <fperez@colorado.edu>
4717 2004-05-25 Fernando Perez <fperez@colorado.edu>
4715
4718
4716 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4719 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4717 parens would get passed to the shell.
4720 parens would get passed to the shell.
4718
4721
4719 2004-05-20 Fernando Perez <fperez@colorado.edu>
4722 2004-05-20 Fernando Perez <fperez@colorado.edu>
4720
4723
4721 * IPython/Magic.py (Magic.magic_prun): changed default profile
4724 * IPython/Magic.py (Magic.magic_prun): changed default profile
4722 sort order to 'time' (the more common profiling need).
4725 sort order to 'time' (the more common profiling need).
4723
4726
4724 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4727 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4725 so that source code shown is guaranteed in sync with the file on
4728 so that source code shown is guaranteed in sync with the file on
4726 disk (also changed in psource). Similar fix to the one for
4729 disk (also changed in psource). Similar fix to the one for
4727 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4730 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4728 <yann.ledu-AT-noos.fr>.
4731 <yann.ledu-AT-noos.fr>.
4729
4732
4730 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4733 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4731 with a single option would not be correctly parsed. Closes
4734 with a single option would not be correctly parsed. Closes
4732 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4735 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4733 introduced in 0.6.0 (on 2004-05-06).
4736 introduced in 0.6.0 (on 2004-05-06).
4734
4737
4735 2004-05-13 *** Released version 0.6.0
4738 2004-05-13 *** Released version 0.6.0
4736
4739
4737 2004-05-13 Fernando Perez <fperez@colorado.edu>
4740 2004-05-13 Fernando Perez <fperez@colorado.edu>
4738
4741
4739 * debian/: Added debian/ directory to CVS, so that debian support
4742 * debian/: Added debian/ directory to CVS, so that debian support
4740 is publicly accessible. The debian package is maintained by Jack
4743 is publicly accessible. The debian package is maintained by Jack
4741 Moffit <jack-AT-xiph.org>.
4744 Moffit <jack-AT-xiph.org>.
4742
4745
4743 * Documentation: included the notes about an ipython-based system
4746 * Documentation: included the notes about an ipython-based system
4744 shell (the hypothetical 'pysh') into the new_design.pdf document,
4747 shell (the hypothetical 'pysh') into the new_design.pdf document,
4745 so that these ideas get distributed to users along with the
4748 so that these ideas get distributed to users along with the
4746 official documentation.
4749 official documentation.
4747
4750
4748 2004-05-10 Fernando Perez <fperez@colorado.edu>
4751 2004-05-10 Fernando Perez <fperez@colorado.edu>
4749
4752
4750 * IPython/Logger.py (Logger.create_log): fix recently introduced
4753 * IPython/Logger.py (Logger.create_log): fix recently introduced
4751 bug (misindented line) where logstart would fail when not given an
4754 bug (misindented line) where logstart would fail when not given an
4752 explicit filename.
4755 explicit filename.
4753
4756
4754 2004-05-09 Fernando Perez <fperez@colorado.edu>
4757 2004-05-09 Fernando Perez <fperez@colorado.edu>
4755
4758
4756 * IPython/Magic.py (Magic.parse_options): skip system call when
4759 * IPython/Magic.py (Magic.parse_options): skip system call when
4757 there are no options to look for. Faster, cleaner for the common
4760 there are no options to look for. Faster, cleaner for the common
4758 case.
4761 case.
4759
4762
4760 * Documentation: many updates to the manual: describing Windows
4763 * Documentation: many updates to the manual: describing Windows
4761 support better, Gnuplot updates, credits, misc small stuff. Also
4764 support better, Gnuplot updates, credits, misc small stuff. Also
4762 updated the new_design doc a bit.
4765 updated the new_design doc a bit.
4763
4766
4764 2004-05-06 *** Released version 0.6.0.rc1
4767 2004-05-06 *** Released version 0.6.0.rc1
4765
4768
4766 2004-05-06 Fernando Perez <fperez@colorado.edu>
4769 2004-05-06 Fernando Perez <fperez@colorado.edu>
4767
4770
4768 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4771 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4769 operations to use the vastly more efficient list/''.join() method.
4772 operations to use the vastly more efficient list/''.join() method.
4770 (FormattedTB.text): Fix
4773 (FormattedTB.text): Fix
4771 http://www.scipy.net/roundup/ipython/issue12 - exception source
4774 http://www.scipy.net/roundup/ipython/issue12 - exception source
4772 extract not updated after reload. Thanks to Mike Salib
4775 extract not updated after reload. Thanks to Mike Salib
4773 <msalib-AT-mit.edu> for pinning the source of the problem.
4776 <msalib-AT-mit.edu> for pinning the source of the problem.
4774 Fortunately, the solution works inside ipython and doesn't require
4777 Fortunately, the solution works inside ipython and doesn't require
4775 any changes to python proper.
4778 any changes to python proper.
4776
4779
4777 * IPython/Magic.py (Magic.parse_options): Improved to process the
4780 * IPython/Magic.py (Magic.parse_options): Improved to process the
4778 argument list as a true shell would (by actually using the
4781 argument list as a true shell would (by actually using the
4779 underlying system shell). This way, all @magics automatically get
4782 underlying system shell). This way, all @magics automatically get
4780 shell expansion for variables. Thanks to a comment by Alex
4783 shell expansion for variables. Thanks to a comment by Alex
4781 Schmolck.
4784 Schmolck.
4782
4785
4783 2004-04-04 Fernando Perez <fperez@colorado.edu>
4786 2004-04-04 Fernando Perez <fperez@colorado.edu>
4784
4787
4785 * IPython/iplib.py (InteractiveShell.interact): Added a special
4788 * IPython/iplib.py (InteractiveShell.interact): Added a special
4786 trap for a debugger quit exception, which is basically impossible
4789 trap for a debugger quit exception, which is basically impossible
4787 to handle by normal mechanisms, given what pdb does to the stack.
4790 to handle by normal mechanisms, given what pdb does to the stack.
4788 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4791 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4789
4792
4790 2004-04-03 Fernando Perez <fperez@colorado.edu>
4793 2004-04-03 Fernando Perez <fperez@colorado.edu>
4791
4794
4792 * IPython/genutils.py (Term): Standardized the names of the Term
4795 * IPython/genutils.py (Term): Standardized the names of the Term
4793 class streams to cin/cout/cerr, following C++ naming conventions
4796 class streams to cin/cout/cerr, following C++ naming conventions
4794 (I can't use in/out/err because 'in' is not a valid attribute
4797 (I can't use in/out/err because 'in' is not a valid attribute
4795 name).
4798 name).
4796
4799
4797 * IPython/iplib.py (InteractiveShell.interact): don't increment
4800 * IPython/iplib.py (InteractiveShell.interact): don't increment
4798 the prompt if there's no user input. By Daniel 'Dang' Griffith
4801 the prompt if there's no user input. By Daniel 'Dang' Griffith
4799 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4802 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4800 Francois Pinard.
4803 Francois Pinard.
4801
4804
4802 2004-04-02 Fernando Perez <fperez@colorado.edu>
4805 2004-04-02 Fernando Perez <fperez@colorado.edu>
4803
4806
4804 * IPython/genutils.py (Stream.__init__): Modified to survive at
4807 * IPython/genutils.py (Stream.__init__): Modified to survive at
4805 least importing in contexts where stdin/out/err aren't true file
4808 least importing in contexts where stdin/out/err aren't true file
4806 objects, such as PyCrust (they lack fileno() and mode). However,
4809 objects, such as PyCrust (they lack fileno() and mode). However,
4807 the recovery facilities which rely on these things existing will
4810 the recovery facilities which rely on these things existing will
4808 not work.
4811 not work.
4809
4812
4810 2004-04-01 Fernando Perez <fperez@colorado.edu>
4813 2004-04-01 Fernando Perez <fperez@colorado.edu>
4811
4814
4812 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4815 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4813 use the new getoutputerror() function, so it properly
4816 use the new getoutputerror() function, so it properly
4814 distinguishes stdout/err.
4817 distinguishes stdout/err.
4815
4818
4816 * IPython/genutils.py (getoutputerror): added a function to
4819 * IPython/genutils.py (getoutputerror): added a function to
4817 capture separately the standard output and error of a command.
4820 capture separately the standard output and error of a command.
4818 After a comment from dang on the mailing lists. This code is
4821 After a comment from dang on the mailing lists. This code is
4819 basically a modified version of commands.getstatusoutput(), from
4822 basically a modified version of commands.getstatusoutput(), from
4820 the standard library.
4823 the standard library.
4821
4824
4822 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4825 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4823 '!!' as a special syntax (shorthand) to access @sx.
4826 '!!' as a special syntax (shorthand) to access @sx.
4824
4827
4825 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4828 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4826 command and return its output as a list split on '\n'.
4829 command and return its output as a list split on '\n'.
4827
4830
4828 2004-03-31 Fernando Perez <fperez@colorado.edu>
4831 2004-03-31 Fernando Perez <fperez@colorado.edu>
4829
4832
4830 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4833 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4831 method to dictionaries used as FakeModule instances if they lack
4834 method to dictionaries used as FakeModule instances if they lack
4832 it. At least pydoc in python2.3 breaks for runtime-defined
4835 it. At least pydoc in python2.3 breaks for runtime-defined
4833 functions without this hack. At some point I need to _really_
4836 functions without this hack. At some point I need to _really_
4834 understand what FakeModule is doing, because it's a gross hack.
4837 understand what FakeModule is doing, because it's a gross hack.
4835 But it solves Arnd's problem for now...
4838 But it solves Arnd's problem for now...
4836
4839
4837 2004-02-27 Fernando Perez <fperez@colorado.edu>
4840 2004-02-27 Fernando Perez <fperez@colorado.edu>
4838
4841
4839 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4842 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4840 mode would behave erratically. Also increased the number of
4843 mode would behave erratically. Also increased the number of
4841 possible logs in rotate mod to 999. Thanks to Rod Holland
4844 possible logs in rotate mod to 999. Thanks to Rod Holland
4842 <rhh@StructureLABS.com> for the report and fixes.
4845 <rhh@StructureLABS.com> for the report and fixes.
4843
4846
4844 2004-02-26 Fernando Perez <fperez@colorado.edu>
4847 2004-02-26 Fernando Perez <fperez@colorado.edu>
4845
4848
4846 * IPython/genutils.py (page): Check that the curses module really
4849 * IPython/genutils.py (page): Check that the curses module really
4847 has the initscr attribute before trying to use it. For some
4850 has the initscr attribute before trying to use it. For some
4848 reason, the Solaris curses module is missing this. I think this
4851 reason, the Solaris curses module is missing this. I think this
4849 should be considered a Solaris python bug, but I'm not sure.
4852 should be considered a Solaris python bug, but I'm not sure.
4850
4853
4851 2004-01-17 Fernando Perez <fperez@colorado.edu>
4854 2004-01-17 Fernando Perez <fperez@colorado.edu>
4852
4855
4853 * IPython/genutils.py (Stream.__init__): Changes to try to make
4856 * IPython/genutils.py (Stream.__init__): Changes to try to make
4854 ipython robust against stdin/out/err being closed by the user.
4857 ipython robust against stdin/out/err being closed by the user.
4855 This is 'user error' (and blocks a normal python session, at least
4858 This is 'user error' (and blocks a normal python session, at least
4856 the stdout case). However, Ipython should be able to survive such
4859 the stdout case). However, Ipython should be able to survive such
4857 instances of abuse as gracefully as possible. To simplify the
4860 instances of abuse as gracefully as possible. To simplify the
4858 coding and maintain compatibility with Gary Bishop's Term
4861 coding and maintain compatibility with Gary Bishop's Term
4859 contributions, I've made use of classmethods for this. I think
4862 contributions, I've made use of classmethods for this. I think
4860 this introduces a dependency on python 2.2.
4863 this introduces a dependency on python 2.2.
4861
4864
4862 2004-01-13 Fernando Perez <fperez@colorado.edu>
4865 2004-01-13 Fernando Perez <fperez@colorado.edu>
4863
4866
4864 * IPython/numutils.py (exp_safe): simplified the code a bit and
4867 * IPython/numutils.py (exp_safe): simplified the code a bit and
4865 removed the need for importing the kinds module altogether.
4868 removed the need for importing the kinds module altogether.
4866
4869
4867 2004-01-06 Fernando Perez <fperez@colorado.edu>
4870 2004-01-06 Fernando Perez <fperez@colorado.edu>
4868
4871
4869 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4872 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4870 a magic function instead, after some community feedback. No
4873 a magic function instead, after some community feedback. No
4871 special syntax will exist for it, but its name is deliberately
4874 special syntax will exist for it, but its name is deliberately
4872 very short.
4875 very short.
4873
4876
4874 2003-12-20 Fernando Perez <fperez@colorado.edu>
4877 2003-12-20 Fernando Perez <fperez@colorado.edu>
4875
4878
4876 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4879 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4877 new functionality, to automagically assign the result of a shell
4880 new functionality, to automagically assign the result of a shell
4878 command to a variable. I'll solicit some community feedback on
4881 command to a variable. I'll solicit some community feedback on
4879 this before making it permanent.
4882 this before making it permanent.
4880
4883
4881 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4884 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4882 requested about callables for which inspect couldn't obtain a
4885 requested about callables for which inspect couldn't obtain a
4883 proper argspec. Thanks to a crash report sent by Etienne
4886 proper argspec. Thanks to a crash report sent by Etienne
4884 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4887 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4885
4888
4886 2003-12-09 Fernando Perez <fperez@colorado.edu>
4889 2003-12-09 Fernando Perez <fperez@colorado.edu>
4887
4890
4888 * IPython/genutils.py (page): patch for the pager to work across
4891 * IPython/genutils.py (page): patch for the pager to work across
4889 various versions of Windows. By Gary Bishop.
4892 various versions of Windows. By Gary Bishop.
4890
4893
4891 2003-12-04 Fernando Perez <fperez@colorado.edu>
4894 2003-12-04 Fernando Perez <fperez@colorado.edu>
4892
4895
4893 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4896 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4894 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4897 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4895 While I tested this and it looks ok, there may still be corner
4898 While I tested this and it looks ok, there may still be corner
4896 cases I've missed.
4899 cases I've missed.
4897
4900
4898 2003-12-01 Fernando Perez <fperez@colorado.edu>
4901 2003-12-01 Fernando Perez <fperez@colorado.edu>
4899
4902
4900 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4903 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4901 where a line like 'p,q=1,2' would fail because the automagic
4904 where a line like 'p,q=1,2' would fail because the automagic
4902 system would be triggered for @p.
4905 system would be triggered for @p.
4903
4906
4904 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4907 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4905 cleanups, code unmodified.
4908 cleanups, code unmodified.
4906
4909
4907 * IPython/genutils.py (Term): added a class for IPython to handle
4910 * IPython/genutils.py (Term): added a class for IPython to handle
4908 output. In most cases it will just be a proxy for stdout/err, but
4911 output. In most cases it will just be a proxy for stdout/err, but
4909 having this allows modifications to be made for some platforms,
4912 having this allows modifications to be made for some platforms,
4910 such as handling color escapes under Windows. All of this code
4913 such as handling color escapes under Windows. All of this code
4911 was contributed by Gary Bishop, with minor modifications by me.
4914 was contributed by Gary Bishop, with minor modifications by me.
4912 The actual changes affect many files.
4915 The actual changes affect many files.
4913
4916
4914 2003-11-30 Fernando Perez <fperez@colorado.edu>
4917 2003-11-30 Fernando Perez <fperez@colorado.edu>
4915
4918
4916 * IPython/iplib.py (file_matches): new completion code, courtesy
4919 * IPython/iplib.py (file_matches): new completion code, courtesy
4917 of Jeff Collins. This enables filename completion again under
4920 of Jeff Collins. This enables filename completion again under
4918 python 2.3, which disabled it at the C level.
4921 python 2.3, which disabled it at the C level.
4919
4922
4920 2003-11-11 Fernando Perez <fperez@colorado.edu>
4923 2003-11-11 Fernando Perez <fperez@colorado.edu>
4921
4924
4922 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4925 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4923 for Numeric.array(map(...)), but often convenient.
4926 for Numeric.array(map(...)), but often convenient.
4924
4927
4925 2003-11-05 Fernando Perez <fperez@colorado.edu>
4928 2003-11-05 Fernando Perez <fperez@colorado.edu>
4926
4929
4927 * IPython/numutils.py (frange): Changed a call from int() to
4930 * IPython/numutils.py (frange): Changed a call from int() to
4928 int(round()) to prevent a problem reported with arange() in the
4931 int(round()) to prevent a problem reported with arange() in the
4929 numpy list.
4932 numpy list.
4930
4933
4931 2003-10-06 Fernando Perez <fperez@colorado.edu>
4934 2003-10-06 Fernando Perez <fperez@colorado.edu>
4932
4935
4933 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4936 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4934 prevent crashes if sys lacks an argv attribute (it happens with
4937 prevent crashes if sys lacks an argv attribute (it happens with
4935 embedded interpreters which build a bare-bones sys module).
4938 embedded interpreters which build a bare-bones sys module).
4936 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4939 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4937
4940
4938 2003-09-24 Fernando Perez <fperez@colorado.edu>
4941 2003-09-24 Fernando Perez <fperez@colorado.edu>
4939
4942
4940 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4943 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4941 to protect against poorly written user objects where __getattr__
4944 to protect against poorly written user objects where __getattr__
4942 raises exceptions other than AttributeError. Thanks to a bug
4945 raises exceptions other than AttributeError. Thanks to a bug
4943 report by Oliver Sander <osander-AT-gmx.de>.
4946 report by Oliver Sander <osander-AT-gmx.de>.
4944
4947
4945 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4948 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4946 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4949 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4947
4950
4948 2003-09-09 Fernando Perez <fperez@colorado.edu>
4951 2003-09-09 Fernando Perez <fperez@colorado.edu>
4949
4952
4950 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4953 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4951 unpacking a list whith a callable as first element would
4954 unpacking a list whith a callable as first element would
4952 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4955 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4953 Collins.
4956 Collins.
4954
4957
4955 2003-08-25 *** Released version 0.5.0
4958 2003-08-25 *** Released version 0.5.0
4956
4959
4957 2003-08-22 Fernando Perez <fperez@colorado.edu>
4960 2003-08-22 Fernando Perez <fperez@colorado.edu>
4958
4961
4959 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4962 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4960 improperly defined user exceptions. Thanks to feedback from Mark
4963 improperly defined user exceptions. Thanks to feedback from Mark
4961 Russell <mrussell-AT-verio.net>.
4964 Russell <mrussell-AT-verio.net>.
4962
4965
4963 2003-08-20 Fernando Perez <fperez@colorado.edu>
4966 2003-08-20 Fernando Perez <fperez@colorado.edu>
4964
4967
4965 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4968 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4966 printing so that it would print multi-line string forms starting
4969 printing so that it would print multi-line string forms starting
4967 with a new line. This way the formatting is better respected for
4970 with a new line. This way the formatting is better respected for
4968 objects which work hard to make nice string forms.
4971 objects which work hard to make nice string forms.
4969
4972
4970 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4973 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4971 autocall would overtake data access for objects with both
4974 autocall would overtake data access for objects with both
4972 __getitem__ and __call__.
4975 __getitem__ and __call__.
4973
4976
4974 2003-08-19 *** Released version 0.5.0-rc1
4977 2003-08-19 *** Released version 0.5.0-rc1
4975
4978
4976 2003-08-19 Fernando Perez <fperez@colorado.edu>
4979 2003-08-19 Fernando Perez <fperez@colorado.edu>
4977
4980
4978 * IPython/deep_reload.py (load_tail): single tiny change here
4981 * IPython/deep_reload.py (load_tail): single tiny change here
4979 seems to fix the long-standing bug of dreload() failing to work
4982 seems to fix the long-standing bug of dreload() failing to work
4980 for dotted names. But this module is pretty tricky, so I may have
4983 for dotted names. But this module is pretty tricky, so I may have
4981 missed some subtlety. Needs more testing!.
4984 missed some subtlety. Needs more testing!.
4982
4985
4983 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4986 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4984 exceptions which have badly implemented __str__ methods.
4987 exceptions which have badly implemented __str__ methods.
4985 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4988 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4986 which I've been getting reports about from Python 2.3 users. I
4989 which I've been getting reports about from Python 2.3 users. I
4987 wish I had a simple test case to reproduce the problem, so I could
4990 wish I had a simple test case to reproduce the problem, so I could
4988 either write a cleaner workaround or file a bug report if
4991 either write a cleaner workaround or file a bug report if
4989 necessary.
4992 necessary.
4990
4993
4991 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4994 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4992 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4995 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4993 a bug report by Tjabo Kloppenburg.
4996 a bug report by Tjabo Kloppenburg.
4994
4997
4995 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4998 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4996 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4999 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4997 seems rather unstable. Thanks to a bug report by Tjabo
5000 seems rather unstable. Thanks to a bug report by Tjabo
4998 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5001 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4999
5002
5000 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5003 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5001 this out soon because of the critical fixes in the inner loop for
5004 this out soon because of the critical fixes in the inner loop for
5002 generators.
5005 generators.
5003
5006
5004 * IPython/Magic.py (Magic.getargspec): removed. This (and
5007 * IPython/Magic.py (Magic.getargspec): removed. This (and
5005 _get_def) have been obsoleted by OInspect for a long time, I
5008 _get_def) have been obsoleted by OInspect for a long time, I
5006 hadn't noticed that they were dead code.
5009 hadn't noticed that they were dead code.
5007 (Magic._ofind): restored _ofind functionality for a few literals
5010 (Magic._ofind): restored _ofind functionality for a few literals
5008 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5011 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5009 for things like "hello".capitalize?, since that would require a
5012 for things like "hello".capitalize?, since that would require a
5010 potentially dangerous eval() again.
5013 potentially dangerous eval() again.
5011
5014
5012 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5015 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5013 logic a bit more to clean up the escapes handling and minimize the
5016 logic a bit more to clean up the escapes handling and minimize the
5014 use of _ofind to only necessary cases. The interactive 'feel' of
5017 use of _ofind to only necessary cases. The interactive 'feel' of
5015 IPython should have improved quite a bit with the changes in
5018 IPython should have improved quite a bit with the changes in
5016 _prefilter and _ofind (besides being far safer than before).
5019 _prefilter and _ofind (besides being far safer than before).
5017
5020
5018 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5021 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5019 obscure, never reported). Edit would fail to find the object to
5022 obscure, never reported). Edit would fail to find the object to
5020 edit under some circumstances.
5023 edit under some circumstances.
5021 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5024 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5022 which were causing double-calling of generators. Those eval calls
5025 which were causing double-calling of generators. Those eval calls
5023 were _very_ dangerous, since code with side effects could be
5026 were _very_ dangerous, since code with side effects could be
5024 triggered. As they say, 'eval is evil'... These were the
5027 triggered. As they say, 'eval is evil'... These were the
5025 nastiest evals in IPython. Besides, _ofind is now far simpler,
5028 nastiest evals in IPython. Besides, _ofind is now far simpler,
5026 and it should also be quite a bit faster. Its use of inspect is
5029 and it should also be quite a bit faster. Its use of inspect is
5027 also safer, so perhaps some of the inspect-related crashes I've
5030 also safer, so perhaps some of the inspect-related crashes I've
5028 seen lately with Python 2.3 might be taken care of. That will
5031 seen lately with Python 2.3 might be taken care of. That will
5029 need more testing.
5032 need more testing.
5030
5033
5031 2003-08-17 Fernando Perez <fperez@colorado.edu>
5034 2003-08-17 Fernando Perez <fperez@colorado.edu>
5032
5035
5033 * IPython/iplib.py (InteractiveShell._prefilter): significant
5036 * IPython/iplib.py (InteractiveShell._prefilter): significant
5034 simplifications to the logic for handling user escapes. Faster
5037 simplifications to the logic for handling user escapes. Faster
5035 and simpler code.
5038 and simpler code.
5036
5039
5037 2003-08-14 Fernando Perez <fperez@colorado.edu>
5040 2003-08-14 Fernando Perez <fperez@colorado.edu>
5038
5041
5039 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5042 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5040 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5043 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5041 but it should be quite a bit faster. And the recursive version
5044 but it should be quite a bit faster. And the recursive version
5042 generated O(log N) intermediate storage for all rank>1 arrays,
5045 generated O(log N) intermediate storage for all rank>1 arrays,
5043 even if they were contiguous.
5046 even if they were contiguous.
5044 (l1norm): Added this function.
5047 (l1norm): Added this function.
5045 (norm): Added this function for arbitrary norms (including
5048 (norm): Added this function for arbitrary norms (including
5046 l-infinity). l1 and l2 are still special cases for convenience
5049 l-infinity). l1 and l2 are still special cases for convenience
5047 and speed.
5050 and speed.
5048
5051
5049 2003-08-03 Fernando Perez <fperez@colorado.edu>
5052 2003-08-03 Fernando Perez <fperez@colorado.edu>
5050
5053
5051 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5054 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5052 exceptions, which now raise PendingDeprecationWarnings in Python
5055 exceptions, which now raise PendingDeprecationWarnings in Python
5053 2.3. There were some in Magic and some in Gnuplot2.
5056 2.3. There were some in Magic and some in Gnuplot2.
5054
5057
5055 2003-06-30 Fernando Perez <fperez@colorado.edu>
5058 2003-06-30 Fernando Perez <fperez@colorado.edu>
5056
5059
5057 * IPython/genutils.py (page): modified to call curses only for
5060 * IPython/genutils.py (page): modified to call curses only for
5058 terminals where TERM=='xterm'. After problems under many other
5061 terminals where TERM=='xterm'. After problems under many other
5059 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5062 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5060
5063
5061 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5064 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5062 would be triggered when readline was absent. This was just an old
5065 would be triggered when readline was absent. This was just an old
5063 debugging statement I'd forgotten to take out.
5066 debugging statement I'd forgotten to take out.
5064
5067
5065 2003-06-20 Fernando Perez <fperez@colorado.edu>
5068 2003-06-20 Fernando Perez <fperez@colorado.edu>
5066
5069
5067 * IPython/genutils.py (clock): modified to return only user time
5070 * IPython/genutils.py (clock): modified to return only user time
5068 (not counting system time), after a discussion on scipy. While
5071 (not counting system time), after a discussion on scipy. While
5069 system time may be a useful quantity occasionally, it may much
5072 system time may be a useful quantity occasionally, it may much
5070 more easily be skewed by occasional swapping or other similar
5073 more easily be skewed by occasional swapping or other similar
5071 activity.
5074 activity.
5072
5075
5073 2003-06-05 Fernando Perez <fperez@colorado.edu>
5076 2003-06-05 Fernando Perez <fperez@colorado.edu>
5074
5077
5075 * IPython/numutils.py (identity): new function, for building
5078 * IPython/numutils.py (identity): new function, for building
5076 arbitrary rank Kronecker deltas (mostly backwards compatible with
5079 arbitrary rank Kronecker deltas (mostly backwards compatible with
5077 Numeric.identity)
5080 Numeric.identity)
5078
5081
5079 2003-06-03 Fernando Perez <fperez@colorado.edu>
5082 2003-06-03 Fernando Perez <fperez@colorado.edu>
5080
5083
5081 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5084 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5082 arguments passed to magics with spaces, to allow trailing '\' to
5085 arguments passed to magics with spaces, to allow trailing '\' to
5083 work normally (mainly for Windows users).
5086 work normally (mainly for Windows users).
5084
5087
5085 2003-05-29 Fernando Perez <fperez@colorado.edu>
5088 2003-05-29 Fernando Perez <fperez@colorado.edu>
5086
5089
5087 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5090 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5088 instead of pydoc.help. This fixes a bizarre behavior where
5091 instead of pydoc.help. This fixes a bizarre behavior where
5089 printing '%s' % locals() would trigger the help system. Now
5092 printing '%s' % locals() would trigger the help system. Now
5090 ipython behaves like normal python does.
5093 ipython behaves like normal python does.
5091
5094
5092 Note that if one does 'from pydoc import help', the bizarre
5095 Note that if one does 'from pydoc import help', the bizarre
5093 behavior returns, but this will also happen in normal python, so
5096 behavior returns, but this will also happen in normal python, so
5094 it's not an ipython bug anymore (it has to do with how pydoc.help
5097 it's not an ipython bug anymore (it has to do with how pydoc.help
5095 is implemented).
5098 is implemented).
5096
5099
5097 2003-05-22 Fernando Perez <fperez@colorado.edu>
5100 2003-05-22 Fernando Perez <fperez@colorado.edu>
5098
5101
5099 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5102 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5100 return [] instead of None when nothing matches, also match to end
5103 return [] instead of None when nothing matches, also match to end
5101 of line. Patch by Gary Bishop.
5104 of line. Patch by Gary Bishop.
5102
5105
5103 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5106 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5104 protection as before, for files passed on the command line. This
5107 protection as before, for files passed on the command line. This
5105 prevents the CrashHandler from kicking in if user files call into
5108 prevents the CrashHandler from kicking in if user files call into
5106 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5109 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5107 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5110 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5108
5111
5109 2003-05-20 *** Released version 0.4.0
5112 2003-05-20 *** Released version 0.4.0
5110
5113
5111 2003-05-20 Fernando Perez <fperez@colorado.edu>
5114 2003-05-20 Fernando Perez <fperez@colorado.edu>
5112
5115
5113 * setup.py: added support for manpages. It's a bit hackish b/c of
5116 * setup.py: added support for manpages. It's a bit hackish b/c of
5114 a bug in the way the bdist_rpm distutils target handles gzipped
5117 a bug in the way the bdist_rpm distutils target handles gzipped
5115 manpages, but it works. After a patch by Jack.
5118 manpages, but it works. After a patch by Jack.
5116
5119
5117 2003-05-19 Fernando Perez <fperez@colorado.edu>
5120 2003-05-19 Fernando Perez <fperez@colorado.edu>
5118
5121
5119 * IPython/numutils.py: added a mockup of the kinds module, since
5122 * IPython/numutils.py: added a mockup of the kinds module, since
5120 it was recently removed from Numeric. This way, numutils will
5123 it was recently removed from Numeric. This way, numutils will
5121 work for all users even if they are missing kinds.
5124 work for all users even if they are missing kinds.
5122
5125
5123 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5126 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5124 failure, which can occur with SWIG-wrapped extensions. After a
5127 failure, which can occur with SWIG-wrapped extensions. After a
5125 crash report from Prabhu.
5128 crash report from Prabhu.
5126
5129
5127 2003-05-16 Fernando Perez <fperez@colorado.edu>
5130 2003-05-16 Fernando Perez <fperez@colorado.edu>
5128
5131
5129 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5132 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5130 protect ipython from user code which may call directly
5133 protect ipython from user code which may call directly
5131 sys.excepthook (this looks like an ipython crash to the user, even
5134 sys.excepthook (this looks like an ipython crash to the user, even
5132 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5135 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5133 This is especially important to help users of WxWindows, but may
5136 This is especially important to help users of WxWindows, but may
5134 also be useful in other cases.
5137 also be useful in other cases.
5135
5138
5136 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5139 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5137 an optional tb_offset to be specified, and to preserve exception
5140 an optional tb_offset to be specified, and to preserve exception
5138 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5141 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5139
5142
5140 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5143 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5141
5144
5142 2003-05-15 Fernando Perez <fperez@colorado.edu>
5145 2003-05-15 Fernando Perez <fperez@colorado.edu>
5143
5146
5144 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5147 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5145 installing for a new user under Windows.
5148 installing for a new user under Windows.
5146
5149
5147 2003-05-12 Fernando Perez <fperez@colorado.edu>
5150 2003-05-12 Fernando Perez <fperez@colorado.edu>
5148
5151
5149 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5152 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5150 handler for Emacs comint-based lines. Currently it doesn't do
5153 handler for Emacs comint-based lines. Currently it doesn't do
5151 much (but importantly, it doesn't update the history cache). In
5154 much (but importantly, it doesn't update the history cache). In
5152 the future it may be expanded if Alex needs more functionality
5155 the future it may be expanded if Alex needs more functionality
5153 there.
5156 there.
5154
5157
5155 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5158 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5156 info to crash reports.
5159 info to crash reports.
5157
5160
5158 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5161 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5159 just like Python's -c. Also fixed crash with invalid -color
5162 just like Python's -c. Also fixed crash with invalid -color
5160 option value at startup. Thanks to Will French
5163 option value at startup. Thanks to Will French
5161 <wfrench-AT-bestweb.net> for the bug report.
5164 <wfrench-AT-bestweb.net> for the bug report.
5162
5165
5163 2003-05-09 Fernando Perez <fperez@colorado.edu>
5166 2003-05-09 Fernando Perez <fperez@colorado.edu>
5164
5167
5165 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5168 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5166 to EvalDict (it's a mapping, after all) and simplified its code
5169 to EvalDict (it's a mapping, after all) and simplified its code
5167 quite a bit, after a nice discussion on c.l.py where Gustavo
5170 quite a bit, after a nice discussion on c.l.py where Gustavo
5168 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5171 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5169
5172
5170 2003-04-30 Fernando Perez <fperez@colorado.edu>
5173 2003-04-30 Fernando Perez <fperez@colorado.edu>
5171
5174
5172 * IPython/genutils.py (timings_out): modified it to reduce its
5175 * IPython/genutils.py (timings_out): modified it to reduce its
5173 overhead in the common reps==1 case.
5176 overhead in the common reps==1 case.
5174
5177
5175 2003-04-29 Fernando Perez <fperez@colorado.edu>
5178 2003-04-29 Fernando Perez <fperez@colorado.edu>
5176
5179
5177 * IPython/genutils.py (timings_out): Modified to use the resource
5180 * IPython/genutils.py (timings_out): Modified to use the resource
5178 module, which avoids the wraparound problems of time.clock().
5181 module, which avoids the wraparound problems of time.clock().
5179
5182
5180 2003-04-17 *** Released version 0.2.15pre4
5183 2003-04-17 *** Released version 0.2.15pre4
5181
5184
5182 2003-04-17 Fernando Perez <fperez@colorado.edu>
5185 2003-04-17 Fernando Perez <fperez@colorado.edu>
5183
5186
5184 * setup.py (scriptfiles): Split windows-specific stuff over to a
5187 * setup.py (scriptfiles): Split windows-specific stuff over to a
5185 separate file, in an attempt to have a Windows GUI installer.
5188 separate file, in an attempt to have a Windows GUI installer.
5186 That didn't work, but part of the groundwork is done.
5189 That didn't work, but part of the groundwork is done.
5187
5190
5188 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5191 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5189 indent/unindent with 4 spaces. Particularly useful in combination
5192 indent/unindent with 4 spaces. Particularly useful in combination
5190 with the new auto-indent option.
5193 with the new auto-indent option.
5191
5194
5192 2003-04-16 Fernando Perez <fperez@colorado.edu>
5195 2003-04-16 Fernando Perez <fperez@colorado.edu>
5193
5196
5194 * IPython/Magic.py: various replacements of self.rc for
5197 * IPython/Magic.py: various replacements of self.rc for
5195 self.shell.rc. A lot more remains to be done to fully disentangle
5198 self.shell.rc. A lot more remains to be done to fully disentangle
5196 this class from the main Shell class.
5199 this class from the main Shell class.
5197
5200
5198 * IPython/GnuplotRuntime.py: added checks for mouse support so
5201 * IPython/GnuplotRuntime.py: added checks for mouse support so
5199 that we don't try to enable it if the current gnuplot doesn't
5202 that we don't try to enable it if the current gnuplot doesn't
5200 really support it. Also added checks so that we don't try to
5203 really support it. Also added checks so that we don't try to
5201 enable persist under Windows (where Gnuplot doesn't recognize the
5204 enable persist under Windows (where Gnuplot doesn't recognize the
5202 option).
5205 option).
5203
5206
5204 * IPython/iplib.py (InteractiveShell.interact): Added optional
5207 * IPython/iplib.py (InteractiveShell.interact): Added optional
5205 auto-indenting code, after a patch by King C. Shu
5208 auto-indenting code, after a patch by King C. Shu
5206 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5209 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5207 get along well with pasting indented code. If I ever figure out
5210 get along well with pasting indented code. If I ever figure out
5208 how to make that part go well, it will become on by default.
5211 how to make that part go well, it will become on by default.
5209
5212
5210 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5213 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5211 crash ipython if there was an unmatched '%' in the user's prompt
5214 crash ipython if there was an unmatched '%' in the user's prompt
5212 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5215 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5213
5216
5214 * IPython/iplib.py (InteractiveShell.interact): removed the
5217 * IPython/iplib.py (InteractiveShell.interact): removed the
5215 ability to ask the user whether he wants to crash or not at the
5218 ability to ask the user whether he wants to crash or not at the
5216 'last line' exception handler. Calling functions at that point
5219 'last line' exception handler. Calling functions at that point
5217 changes the stack, and the error reports would have incorrect
5220 changes the stack, and the error reports would have incorrect
5218 tracebacks.
5221 tracebacks.
5219
5222
5220 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5223 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5221 pass through a peger a pretty-printed form of any object. After a
5224 pass through a peger a pretty-printed form of any object. After a
5222 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5225 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5223
5226
5224 2003-04-14 Fernando Perez <fperez@colorado.edu>
5227 2003-04-14 Fernando Perez <fperez@colorado.edu>
5225
5228
5226 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5229 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5227 all files in ~ would be modified at first install (instead of
5230 all files in ~ would be modified at first install (instead of
5228 ~/.ipython). This could be potentially disastrous, as the
5231 ~/.ipython). This could be potentially disastrous, as the
5229 modification (make line-endings native) could damage binary files.
5232 modification (make line-endings native) could damage binary files.
5230
5233
5231 2003-04-10 Fernando Perez <fperez@colorado.edu>
5234 2003-04-10 Fernando Perez <fperez@colorado.edu>
5232
5235
5233 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5236 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5234 handle only lines which are invalid python. This now means that
5237 handle only lines which are invalid python. This now means that
5235 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5238 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5236 for the bug report.
5239 for the bug report.
5237
5240
5238 2003-04-01 Fernando Perez <fperez@colorado.edu>
5241 2003-04-01 Fernando Perez <fperez@colorado.edu>
5239
5242
5240 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5243 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5241 where failing to set sys.last_traceback would crash pdb.pm().
5244 where failing to set sys.last_traceback would crash pdb.pm().
5242 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5245 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5243 report.
5246 report.
5244
5247
5245 2003-03-25 Fernando Perez <fperez@colorado.edu>
5248 2003-03-25 Fernando Perez <fperez@colorado.edu>
5246
5249
5247 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5250 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5248 before printing it (it had a lot of spurious blank lines at the
5251 before printing it (it had a lot of spurious blank lines at the
5249 end).
5252 end).
5250
5253
5251 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5254 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5252 output would be sent 21 times! Obviously people don't use this
5255 output would be sent 21 times! Obviously people don't use this
5253 too often, or I would have heard about it.
5256 too often, or I would have heard about it.
5254
5257
5255 2003-03-24 Fernando Perez <fperez@colorado.edu>
5258 2003-03-24 Fernando Perez <fperez@colorado.edu>
5256
5259
5257 * setup.py (scriptfiles): renamed the data_files parameter from
5260 * setup.py (scriptfiles): renamed the data_files parameter from
5258 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5261 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5259 for the patch.
5262 for the patch.
5260
5263
5261 2003-03-20 Fernando Perez <fperez@colorado.edu>
5264 2003-03-20 Fernando Perez <fperez@colorado.edu>
5262
5265
5263 * IPython/genutils.py (error): added error() and fatal()
5266 * IPython/genutils.py (error): added error() and fatal()
5264 functions.
5267 functions.
5265
5268
5266 2003-03-18 *** Released version 0.2.15pre3
5269 2003-03-18 *** Released version 0.2.15pre3
5267
5270
5268 2003-03-18 Fernando Perez <fperez@colorado.edu>
5271 2003-03-18 Fernando Perez <fperez@colorado.edu>
5269
5272
5270 * setupext/install_data_ext.py
5273 * setupext/install_data_ext.py
5271 (install_data_ext.initialize_options): Class contributed by Jack
5274 (install_data_ext.initialize_options): Class contributed by Jack
5272 Moffit for fixing the old distutils hack. He is sending this to
5275 Moffit for fixing the old distutils hack. He is sending this to
5273 the distutils folks so in the future we may not need it as a
5276 the distutils folks so in the future we may not need it as a
5274 private fix.
5277 private fix.
5275
5278
5276 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5279 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5277 changes for Debian packaging. See his patch for full details.
5280 changes for Debian packaging. See his patch for full details.
5278 The old distutils hack of making the ipythonrc* files carry a
5281 The old distutils hack of making the ipythonrc* files carry a
5279 bogus .py extension is gone, at last. Examples were moved to a
5282 bogus .py extension is gone, at last. Examples were moved to a
5280 separate subdir under doc/, and the separate executable scripts
5283 separate subdir under doc/, and the separate executable scripts
5281 now live in their own directory. Overall a great cleanup. The
5284 now live in their own directory. Overall a great cleanup. The
5282 manual was updated to use the new files, and setup.py has been
5285 manual was updated to use the new files, and setup.py has been
5283 fixed for this setup.
5286 fixed for this setup.
5284
5287
5285 * IPython/PyColorize.py (Parser.usage): made non-executable and
5288 * IPython/PyColorize.py (Parser.usage): made non-executable and
5286 created a pycolor wrapper around it to be included as a script.
5289 created a pycolor wrapper around it to be included as a script.
5287
5290
5288 2003-03-12 *** Released version 0.2.15pre2
5291 2003-03-12 *** Released version 0.2.15pre2
5289
5292
5290 2003-03-12 Fernando Perez <fperez@colorado.edu>
5293 2003-03-12 Fernando Perez <fperez@colorado.edu>
5291
5294
5292 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5295 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5293 long-standing problem with garbage characters in some terminals.
5296 long-standing problem with garbage characters in some terminals.
5294 The issue was really that the \001 and \002 escapes must _only_ be
5297 The issue was really that the \001 and \002 escapes must _only_ be
5295 passed to input prompts (which call readline), but _never_ to
5298 passed to input prompts (which call readline), but _never_ to
5296 normal text to be printed on screen. I changed ColorANSI to have
5299 normal text to be printed on screen. I changed ColorANSI to have
5297 two classes: TermColors and InputTermColors, each with the
5300 two classes: TermColors and InputTermColors, each with the
5298 appropriate escapes for input prompts or normal text. The code in
5301 appropriate escapes for input prompts or normal text. The code in
5299 Prompts.py got slightly more complicated, but this very old and
5302 Prompts.py got slightly more complicated, but this very old and
5300 annoying bug is finally fixed.
5303 annoying bug is finally fixed.
5301
5304
5302 All the credit for nailing down the real origin of this problem
5305 All the credit for nailing down the real origin of this problem
5303 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5306 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5304 *Many* thanks to him for spending quite a bit of effort on this.
5307 *Many* thanks to him for spending quite a bit of effort on this.
5305
5308
5306 2003-03-05 *** Released version 0.2.15pre1
5309 2003-03-05 *** Released version 0.2.15pre1
5307
5310
5308 2003-03-03 Fernando Perez <fperez@colorado.edu>
5311 2003-03-03 Fernando Perez <fperez@colorado.edu>
5309
5312
5310 * IPython/FakeModule.py: Moved the former _FakeModule to a
5313 * IPython/FakeModule.py: Moved the former _FakeModule to a
5311 separate file, because it's also needed by Magic (to fix a similar
5314 separate file, because it's also needed by Magic (to fix a similar
5312 pickle-related issue in @run).
5315 pickle-related issue in @run).
5313
5316
5314 2003-03-02 Fernando Perez <fperez@colorado.edu>
5317 2003-03-02 Fernando Perez <fperez@colorado.edu>
5315
5318
5316 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5319 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5317 the autocall option at runtime.
5320 the autocall option at runtime.
5318 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5321 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5319 across Magic.py to start separating Magic from InteractiveShell.
5322 across Magic.py to start separating Magic from InteractiveShell.
5320 (Magic._ofind): Fixed to return proper namespace for dotted
5323 (Magic._ofind): Fixed to return proper namespace for dotted
5321 names. Before, a dotted name would always return 'not currently
5324 names. Before, a dotted name would always return 'not currently
5322 defined', because it would find the 'parent'. s.x would be found,
5325 defined', because it would find the 'parent'. s.x would be found,
5323 but since 'x' isn't defined by itself, it would get confused.
5326 but since 'x' isn't defined by itself, it would get confused.
5324 (Magic.magic_run): Fixed pickling problems reported by Ralf
5327 (Magic.magic_run): Fixed pickling problems reported by Ralf
5325 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5328 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5326 that I'd used when Mike Heeter reported similar issues at the
5329 that I'd used when Mike Heeter reported similar issues at the
5327 top-level, but now for @run. It boils down to injecting the
5330 top-level, but now for @run. It boils down to injecting the
5328 namespace where code is being executed with something that looks
5331 namespace where code is being executed with something that looks
5329 enough like a module to fool pickle.dump(). Since a pickle stores
5332 enough like a module to fool pickle.dump(). Since a pickle stores
5330 a named reference to the importing module, we need this for
5333 a named reference to the importing module, we need this for
5331 pickles to save something sensible.
5334 pickles to save something sensible.
5332
5335
5333 * IPython/ipmaker.py (make_IPython): added an autocall option.
5336 * IPython/ipmaker.py (make_IPython): added an autocall option.
5334
5337
5335 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5338 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5336 the auto-eval code. Now autocalling is an option, and the code is
5339 the auto-eval code. Now autocalling is an option, and the code is
5337 also vastly safer. There is no more eval() involved at all.
5340 also vastly safer. There is no more eval() involved at all.
5338
5341
5339 2003-03-01 Fernando Perez <fperez@colorado.edu>
5342 2003-03-01 Fernando Perez <fperez@colorado.edu>
5340
5343
5341 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5344 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5342 dict with named keys instead of a tuple.
5345 dict with named keys instead of a tuple.
5343
5346
5344 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5347 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5345
5348
5346 * setup.py (make_shortcut): Fixed message about directories
5349 * setup.py (make_shortcut): Fixed message about directories
5347 created during Windows installation (the directories were ok, just
5350 created during Windows installation (the directories were ok, just
5348 the printed message was misleading). Thanks to Chris Liechti
5351 the printed message was misleading). Thanks to Chris Liechti
5349 <cliechti-AT-gmx.net> for the heads up.
5352 <cliechti-AT-gmx.net> for the heads up.
5350
5353
5351 2003-02-21 Fernando Perez <fperez@colorado.edu>
5354 2003-02-21 Fernando Perez <fperez@colorado.edu>
5352
5355
5353 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5356 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5354 of ValueError exception when checking for auto-execution. This
5357 of ValueError exception when checking for auto-execution. This
5355 one is raised by things like Numeric arrays arr.flat when the
5358 one is raised by things like Numeric arrays arr.flat when the
5356 array is non-contiguous.
5359 array is non-contiguous.
5357
5360
5358 2003-01-31 Fernando Perez <fperez@colorado.edu>
5361 2003-01-31 Fernando Perez <fperez@colorado.edu>
5359
5362
5360 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5363 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5361 not return any value at all (even though the command would get
5364 not return any value at all (even though the command would get
5362 executed).
5365 executed).
5363 (xsys): Flush stdout right after printing the command to ensure
5366 (xsys): Flush stdout right after printing the command to ensure
5364 proper ordering of commands and command output in the total
5367 proper ordering of commands and command output in the total
5365 output.
5368 output.
5366 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5369 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5367 system/getoutput as defaults. The old ones are kept for
5370 system/getoutput as defaults. The old ones are kept for
5368 compatibility reasons, so no code which uses this library needs
5371 compatibility reasons, so no code which uses this library needs
5369 changing.
5372 changing.
5370
5373
5371 2003-01-27 *** Released version 0.2.14
5374 2003-01-27 *** Released version 0.2.14
5372
5375
5373 2003-01-25 Fernando Perez <fperez@colorado.edu>
5376 2003-01-25 Fernando Perez <fperez@colorado.edu>
5374
5377
5375 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5378 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5376 functions defined in previous edit sessions could not be re-edited
5379 functions defined in previous edit sessions could not be re-edited
5377 (because the temp files were immediately removed). Now temp files
5380 (because the temp files were immediately removed). Now temp files
5378 are removed only at IPython's exit.
5381 are removed only at IPython's exit.
5379 (Magic.magic_run): Improved @run to perform shell-like expansions
5382 (Magic.magic_run): Improved @run to perform shell-like expansions
5380 on its arguments (~users and $VARS). With this, @run becomes more
5383 on its arguments (~users and $VARS). With this, @run becomes more
5381 like a normal command-line.
5384 like a normal command-line.
5382
5385
5383 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5386 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5384 bugs related to embedding and cleaned up that code. A fairly
5387 bugs related to embedding and cleaned up that code. A fairly
5385 important one was the impossibility to access the global namespace
5388 important one was the impossibility to access the global namespace
5386 through the embedded IPython (only local variables were visible).
5389 through the embedded IPython (only local variables were visible).
5387
5390
5388 2003-01-14 Fernando Perez <fperez@colorado.edu>
5391 2003-01-14 Fernando Perez <fperez@colorado.edu>
5389
5392
5390 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5393 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5391 auto-calling to be a bit more conservative. Now it doesn't get
5394 auto-calling to be a bit more conservative. Now it doesn't get
5392 triggered if any of '!=()<>' are in the rest of the input line, to
5395 triggered if any of '!=()<>' are in the rest of the input line, to
5393 allow comparing callables. Thanks to Alex for the heads up.
5396 allow comparing callables. Thanks to Alex for the heads up.
5394
5397
5395 2003-01-07 Fernando Perez <fperez@colorado.edu>
5398 2003-01-07 Fernando Perez <fperez@colorado.edu>
5396
5399
5397 * IPython/genutils.py (page): fixed estimation of the number of
5400 * IPython/genutils.py (page): fixed estimation of the number of
5398 lines in a string to be paged to simply count newlines. This
5401 lines in a string to be paged to simply count newlines. This
5399 prevents over-guessing due to embedded escape sequences. A better
5402 prevents over-guessing due to embedded escape sequences. A better
5400 long-term solution would involve stripping out the control chars
5403 long-term solution would involve stripping out the control chars
5401 for the count, but it's potentially so expensive I just don't
5404 for the count, but it's potentially so expensive I just don't
5402 think it's worth doing.
5405 think it's worth doing.
5403
5406
5404 2002-12-19 *** Released version 0.2.14pre50
5407 2002-12-19 *** Released version 0.2.14pre50
5405
5408
5406 2002-12-19 Fernando Perez <fperez@colorado.edu>
5409 2002-12-19 Fernando Perez <fperez@colorado.edu>
5407
5410
5408 * tools/release (version): Changed release scripts to inform
5411 * tools/release (version): Changed release scripts to inform
5409 Andrea and build a NEWS file with a list of recent changes.
5412 Andrea and build a NEWS file with a list of recent changes.
5410
5413
5411 * IPython/ColorANSI.py (__all__): changed terminal detection
5414 * IPython/ColorANSI.py (__all__): changed terminal detection
5412 code. Seems to work better for xterms without breaking
5415 code. Seems to work better for xterms without breaking
5413 konsole. Will need more testing to determine if WinXP and Mac OSX
5416 konsole. Will need more testing to determine if WinXP and Mac OSX
5414 also work ok.
5417 also work ok.
5415
5418
5416 2002-12-18 *** Released version 0.2.14pre49
5419 2002-12-18 *** Released version 0.2.14pre49
5417
5420
5418 2002-12-18 Fernando Perez <fperez@colorado.edu>
5421 2002-12-18 Fernando Perez <fperez@colorado.edu>
5419
5422
5420 * Docs: added new info about Mac OSX, from Andrea.
5423 * Docs: added new info about Mac OSX, from Andrea.
5421
5424
5422 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5425 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5423 allow direct plotting of python strings whose format is the same
5426 allow direct plotting of python strings whose format is the same
5424 of gnuplot data files.
5427 of gnuplot data files.
5425
5428
5426 2002-12-16 Fernando Perez <fperez@colorado.edu>
5429 2002-12-16 Fernando Perez <fperez@colorado.edu>
5427
5430
5428 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5431 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5429 value of exit question to be acknowledged.
5432 value of exit question to be acknowledged.
5430
5433
5431 2002-12-03 Fernando Perez <fperez@colorado.edu>
5434 2002-12-03 Fernando Perez <fperez@colorado.edu>
5432
5435
5433 * IPython/ipmaker.py: removed generators, which had been added
5436 * IPython/ipmaker.py: removed generators, which had been added
5434 by mistake in an earlier debugging run. This was causing trouble
5437 by mistake in an earlier debugging run. This was causing trouble
5435 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5438 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5436 for pointing this out.
5439 for pointing this out.
5437
5440
5438 2002-11-17 Fernando Perez <fperez@colorado.edu>
5441 2002-11-17 Fernando Perez <fperez@colorado.edu>
5439
5442
5440 * Manual: updated the Gnuplot section.
5443 * Manual: updated the Gnuplot section.
5441
5444
5442 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5445 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5443 a much better split of what goes in Runtime and what goes in
5446 a much better split of what goes in Runtime and what goes in
5444 Interactive.
5447 Interactive.
5445
5448
5446 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5449 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5447 being imported from iplib.
5450 being imported from iplib.
5448
5451
5449 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5452 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5450 for command-passing. Now the global Gnuplot instance is called
5453 for command-passing. Now the global Gnuplot instance is called
5451 'gp' instead of 'g', which was really a far too fragile and
5454 'gp' instead of 'g', which was really a far too fragile and
5452 common name.
5455 common name.
5453
5456
5454 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5457 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5455 bounding boxes generated by Gnuplot for square plots.
5458 bounding boxes generated by Gnuplot for square plots.
5456
5459
5457 * IPython/genutils.py (popkey): new function added. I should
5460 * IPython/genutils.py (popkey): new function added. I should
5458 suggest this on c.l.py as a dict method, it seems useful.
5461 suggest this on c.l.py as a dict method, it seems useful.
5459
5462
5460 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5463 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5461 to transparently handle PostScript generation. MUCH better than
5464 to transparently handle PostScript generation. MUCH better than
5462 the previous plot_eps/replot_eps (which I removed now). The code
5465 the previous plot_eps/replot_eps (which I removed now). The code
5463 is also fairly clean and well documented now (including
5466 is also fairly clean and well documented now (including
5464 docstrings).
5467 docstrings).
5465
5468
5466 2002-11-13 Fernando Perez <fperez@colorado.edu>
5469 2002-11-13 Fernando Perez <fperez@colorado.edu>
5467
5470
5468 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5471 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5469 (inconsistent with options).
5472 (inconsistent with options).
5470
5473
5471 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5474 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5472 manually disabled, I don't know why. Fixed it.
5475 manually disabled, I don't know why. Fixed it.
5473 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5476 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5474 eps output.
5477 eps output.
5475
5478
5476 2002-11-12 Fernando Perez <fperez@colorado.edu>
5479 2002-11-12 Fernando Perez <fperez@colorado.edu>
5477
5480
5478 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5481 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5479 don't propagate up to caller. Fixes crash reported by François
5482 don't propagate up to caller. Fixes crash reported by François
5480 Pinard.
5483 Pinard.
5481
5484
5482 2002-11-09 Fernando Perez <fperez@colorado.edu>
5485 2002-11-09 Fernando Perez <fperez@colorado.edu>
5483
5486
5484 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5487 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5485 history file for new users.
5488 history file for new users.
5486 (make_IPython): fixed bug where initial install would leave the
5489 (make_IPython): fixed bug where initial install would leave the
5487 user running in the .ipython dir.
5490 user running in the .ipython dir.
5488 (make_IPython): fixed bug where config dir .ipython would be
5491 (make_IPython): fixed bug where config dir .ipython would be
5489 created regardless of the given -ipythondir option. Thanks to Cory
5492 created regardless of the given -ipythondir option. Thanks to Cory
5490 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5493 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5491
5494
5492 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5495 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5493 type confirmations. Will need to use it in all of IPython's code
5496 type confirmations. Will need to use it in all of IPython's code
5494 consistently.
5497 consistently.
5495
5498
5496 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5499 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5497 context to print 31 lines instead of the default 5. This will make
5500 context to print 31 lines instead of the default 5. This will make
5498 the crash reports extremely detailed in case the problem is in
5501 the crash reports extremely detailed in case the problem is in
5499 libraries I don't have access to.
5502 libraries I don't have access to.
5500
5503
5501 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5504 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5502 line of defense' code to still crash, but giving users fair
5505 line of defense' code to still crash, but giving users fair
5503 warning. I don't want internal errors to go unreported: if there's
5506 warning. I don't want internal errors to go unreported: if there's
5504 an internal problem, IPython should crash and generate a full
5507 an internal problem, IPython should crash and generate a full
5505 report.
5508 report.
5506
5509
5507 2002-11-08 Fernando Perez <fperez@colorado.edu>
5510 2002-11-08 Fernando Perez <fperez@colorado.edu>
5508
5511
5509 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5512 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5510 otherwise uncaught exceptions which can appear if people set
5513 otherwise uncaught exceptions which can appear if people set
5511 sys.stdout to something badly broken. Thanks to a crash report
5514 sys.stdout to something badly broken. Thanks to a crash report
5512 from henni-AT-mail.brainbot.com.
5515 from henni-AT-mail.brainbot.com.
5513
5516
5514 2002-11-04 Fernando Perez <fperez@colorado.edu>
5517 2002-11-04 Fernando Perez <fperez@colorado.edu>
5515
5518
5516 * IPython/iplib.py (InteractiveShell.interact): added
5519 * IPython/iplib.py (InteractiveShell.interact): added
5517 __IPYTHON__active to the builtins. It's a flag which goes on when
5520 __IPYTHON__active to the builtins. It's a flag which goes on when
5518 the interaction starts and goes off again when it stops. This
5521 the interaction starts and goes off again when it stops. This
5519 allows embedding code to detect being inside IPython. Before this
5522 allows embedding code to detect being inside IPython. Before this
5520 was done via __IPYTHON__, but that only shows that an IPython
5523 was done via __IPYTHON__, but that only shows that an IPython
5521 instance has been created.
5524 instance has been created.
5522
5525
5523 * IPython/Magic.py (Magic.magic_env): I realized that in a
5526 * IPython/Magic.py (Magic.magic_env): I realized that in a
5524 UserDict, instance.data holds the data as a normal dict. So I
5527 UserDict, instance.data holds the data as a normal dict. So I
5525 modified @env to return os.environ.data instead of rebuilding a
5528 modified @env to return os.environ.data instead of rebuilding a
5526 dict by hand.
5529 dict by hand.
5527
5530
5528 2002-11-02 Fernando Perez <fperez@colorado.edu>
5531 2002-11-02 Fernando Perez <fperez@colorado.edu>
5529
5532
5530 * IPython/genutils.py (warn): changed so that level 1 prints no
5533 * IPython/genutils.py (warn): changed so that level 1 prints no
5531 header. Level 2 is now the default (with 'WARNING' header, as
5534 header. Level 2 is now the default (with 'WARNING' header, as
5532 before). I think I tracked all places where changes were needed in
5535 before). I think I tracked all places where changes were needed in
5533 IPython, but outside code using the old level numbering may have
5536 IPython, but outside code using the old level numbering may have
5534 broken.
5537 broken.
5535
5538
5536 * IPython/iplib.py (InteractiveShell.runcode): added this to
5539 * IPython/iplib.py (InteractiveShell.runcode): added this to
5537 handle the tracebacks in SystemExit traps correctly. The previous
5540 handle the tracebacks in SystemExit traps correctly. The previous
5538 code (through interact) was printing more of the stack than
5541 code (through interact) was printing more of the stack than
5539 necessary, showing IPython internal code to the user.
5542 necessary, showing IPython internal code to the user.
5540
5543
5541 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5544 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5542 default. Now that the default at the confirmation prompt is yes,
5545 default. Now that the default at the confirmation prompt is yes,
5543 it's not so intrusive. François' argument that ipython sessions
5546 it's not so intrusive. François' argument that ipython sessions
5544 tend to be complex enough not to lose them from an accidental C-d,
5547 tend to be complex enough not to lose them from an accidental C-d,
5545 is a valid one.
5548 is a valid one.
5546
5549
5547 * IPython/iplib.py (InteractiveShell.interact): added a
5550 * IPython/iplib.py (InteractiveShell.interact): added a
5548 showtraceback() call to the SystemExit trap, and modified the exit
5551 showtraceback() call to the SystemExit trap, and modified the exit
5549 confirmation to have yes as the default.
5552 confirmation to have yes as the default.
5550
5553
5551 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5554 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5552 this file. It's been gone from the code for a long time, this was
5555 this file. It's been gone from the code for a long time, this was
5553 simply leftover junk.
5556 simply leftover junk.
5554
5557
5555 2002-11-01 Fernando Perez <fperez@colorado.edu>
5558 2002-11-01 Fernando Perez <fperez@colorado.edu>
5556
5559
5557 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5560 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5558 added. If set, IPython now traps EOF and asks for
5561 added. If set, IPython now traps EOF and asks for
5559 confirmation. After a request by François Pinard.
5562 confirmation. After a request by François Pinard.
5560
5563
5561 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5564 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5562 of @abort, and with a new (better) mechanism for handling the
5565 of @abort, and with a new (better) mechanism for handling the
5563 exceptions.
5566 exceptions.
5564
5567
5565 2002-10-27 Fernando Perez <fperez@colorado.edu>
5568 2002-10-27 Fernando Perez <fperez@colorado.edu>
5566
5569
5567 * IPython/usage.py (__doc__): updated the --help information and
5570 * IPython/usage.py (__doc__): updated the --help information and
5568 the ipythonrc file to indicate that -log generates
5571 the ipythonrc file to indicate that -log generates
5569 ./ipython.log. Also fixed the corresponding info in @logstart.
5572 ./ipython.log. Also fixed the corresponding info in @logstart.
5570 This and several other fixes in the manuals thanks to reports by
5573 This and several other fixes in the manuals thanks to reports by
5571 François Pinard <pinard-AT-iro.umontreal.ca>.
5574 François Pinard <pinard-AT-iro.umontreal.ca>.
5572
5575
5573 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5576 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5574 refer to @logstart (instead of @log, which doesn't exist).
5577 refer to @logstart (instead of @log, which doesn't exist).
5575
5578
5576 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5579 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5577 AttributeError crash. Thanks to Christopher Armstrong
5580 AttributeError crash. Thanks to Christopher Armstrong
5578 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5581 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5579 introduced recently (in 0.2.14pre37) with the fix to the eval
5582 introduced recently (in 0.2.14pre37) with the fix to the eval
5580 problem mentioned below.
5583 problem mentioned below.
5581
5584
5582 2002-10-17 Fernando Perez <fperez@colorado.edu>
5585 2002-10-17 Fernando Perez <fperez@colorado.edu>
5583
5586
5584 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5587 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5585 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5588 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5586
5589
5587 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5590 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5588 this function to fix a problem reported by Alex Schmolck. He saw
5591 this function to fix a problem reported by Alex Schmolck. He saw
5589 it with list comprehensions and generators, which were getting
5592 it with list comprehensions and generators, which were getting
5590 called twice. The real problem was an 'eval' call in testing for
5593 called twice. The real problem was an 'eval' call in testing for
5591 automagic which was evaluating the input line silently.
5594 automagic which was evaluating the input line silently.
5592
5595
5593 This is a potentially very nasty bug, if the input has side
5596 This is a potentially very nasty bug, if the input has side
5594 effects which must not be repeated. The code is much cleaner now,
5597 effects which must not be repeated. The code is much cleaner now,
5595 without any blanket 'except' left and with a regexp test for
5598 without any blanket 'except' left and with a regexp test for
5596 actual function names.
5599 actual function names.
5597
5600
5598 But an eval remains, which I'm not fully comfortable with. I just
5601 But an eval remains, which I'm not fully comfortable with. I just
5599 don't know how to find out if an expression could be a callable in
5602 don't know how to find out if an expression could be a callable in
5600 the user's namespace without doing an eval on the string. However
5603 the user's namespace without doing an eval on the string. However
5601 that string is now much more strictly checked so that no code
5604 that string is now much more strictly checked so that no code
5602 slips by, so the eval should only happen for things that can
5605 slips by, so the eval should only happen for things that can
5603 really be only function/method names.
5606 really be only function/method names.
5604
5607
5605 2002-10-15 Fernando Perez <fperez@colorado.edu>
5608 2002-10-15 Fernando Perez <fperez@colorado.edu>
5606
5609
5607 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5610 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5608 OSX information to main manual, removed README_Mac_OSX file from
5611 OSX information to main manual, removed README_Mac_OSX file from
5609 distribution. Also updated credits for recent additions.
5612 distribution. Also updated credits for recent additions.
5610
5613
5611 2002-10-10 Fernando Perez <fperez@colorado.edu>
5614 2002-10-10 Fernando Perez <fperez@colorado.edu>
5612
5615
5613 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5616 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5614 terminal-related issues. Many thanks to Andrea Riciputi
5617 terminal-related issues. Many thanks to Andrea Riciputi
5615 <andrea.riciputi-AT-libero.it> for writing it.
5618 <andrea.riciputi-AT-libero.it> for writing it.
5616
5619
5617 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5620 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5618 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5621 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5619
5622
5620 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5623 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5621 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5624 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5622 <syver-en-AT-online.no> who both submitted patches for this problem.
5625 <syver-en-AT-online.no> who both submitted patches for this problem.
5623
5626
5624 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5627 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5625 global embedding to make sure that things don't overwrite user
5628 global embedding to make sure that things don't overwrite user
5626 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5629 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5627
5630
5628 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5631 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5629 compatibility. Thanks to Hayden Callow
5632 compatibility. Thanks to Hayden Callow
5630 <h.callow-AT-elec.canterbury.ac.nz>
5633 <h.callow-AT-elec.canterbury.ac.nz>
5631
5634
5632 2002-10-04 Fernando Perez <fperez@colorado.edu>
5635 2002-10-04 Fernando Perez <fperez@colorado.edu>
5633
5636
5634 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5637 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5635 Gnuplot.File objects.
5638 Gnuplot.File objects.
5636
5639
5637 2002-07-23 Fernando Perez <fperez@colorado.edu>
5640 2002-07-23 Fernando Perez <fperez@colorado.edu>
5638
5641
5639 * IPython/genutils.py (timing): Added timings() and timing() for
5642 * IPython/genutils.py (timing): Added timings() and timing() for
5640 quick access to the most commonly needed data, the execution
5643 quick access to the most commonly needed data, the execution
5641 times. Old timing() renamed to timings_out().
5644 times. Old timing() renamed to timings_out().
5642
5645
5643 2002-07-18 Fernando Perez <fperez@colorado.edu>
5646 2002-07-18 Fernando Perez <fperez@colorado.edu>
5644
5647
5645 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5648 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5646 bug with nested instances disrupting the parent's tab completion.
5649 bug with nested instances disrupting the parent's tab completion.
5647
5650
5648 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5651 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5649 all_completions code to begin the emacs integration.
5652 all_completions code to begin the emacs integration.
5650
5653
5651 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5654 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5652 argument to allow titling individual arrays when plotting.
5655 argument to allow titling individual arrays when plotting.
5653
5656
5654 2002-07-15 Fernando Perez <fperez@colorado.edu>
5657 2002-07-15 Fernando Perez <fperez@colorado.edu>
5655
5658
5656 * setup.py (make_shortcut): changed to retrieve the value of
5659 * setup.py (make_shortcut): changed to retrieve the value of
5657 'Program Files' directory from the registry (this value changes in
5660 'Program Files' directory from the registry (this value changes in
5658 non-english versions of Windows). Thanks to Thomas Fanslau
5661 non-english versions of Windows). Thanks to Thomas Fanslau
5659 <tfanslau-AT-gmx.de> for the report.
5662 <tfanslau-AT-gmx.de> for the report.
5660
5663
5661 2002-07-10 Fernando Perez <fperez@colorado.edu>
5664 2002-07-10 Fernando Perez <fperez@colorado.edu>
5662
5665
5663 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5666 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5664 a bug in pdb, which crashes if a line with only whitespace is
5667 a bug in pdb, which crashes if a line with only whitespace is
5665 entered. Bug report submitted to sourceforge.
5668 entered. Bug report submitted to sourceforge.
5666
5669
5667 2002-07-09 Fernando Perez <fperez@colorado.edu>
5670 2002-07-09 Fernando Perez <fperez@colorado.edu>
5668
5671
5669 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5672 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5670 reporting exceptions (it's a bug in inspect.py, I just set a
5673 reporting exceptions (it's a bug in inspect.py, I just set a
5671 workaround).
5674 workaround).
5672
5675
5673 2002-07-08 Fernando Perez <fperez@colorado.edu>
5676 2002-07-08 Fernando Perez <fperez@colorado.edu>
5674
5677
5675 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5678 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5676 __IPYTHON__ in __builtins__ to show up in user_ns.
5679 __IPYTHON__ in __builtins__ to show up in user_ns.
5677
5680
5678 2002-07-03 Fernando Perez <fperez@colorado.edu>
5681 2002-07-03 Fernando Perez <fperez@colorado.edu>
5679
5682
5680 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5683 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5681 name from @gp_set_instance to @gp_set_default.
5684 name from @gp_set_instance to @gp_set_default.
5682
5685
5683 * IPython/ipmaker.py (make_IPython): default editor value set to
5686 * IPython/ipmaker.py (make_IPython): default editor value set to
5684 '0' (a string), to match the rc file. Otherwise will crash when
5687 '0' (a string), to match the rc file. Otherwise will crash when
5685 .strip() is called on it.
5688 .strip() is called on it.
5686
5689
5687
5690
5688 2002-06-28 Fernando Perez <fperez@colorado.edu>
5691 2002-06-28 Fernando Perez <fperez@colorado.edu>
5689
5692
5690 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5693 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5691 of files in current directory when a file is executed via
5694 of files in current directory when a file is executed via
5692 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5695 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5693
5696
5694 * setup.py (manfiles): fix for rpm builds, submitted by RA
5697 * setup.py (manfiles): fix for rpm builds, submitted by RA
5695 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5698 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5696
5699
5697 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5700 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5698 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5701 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5699 string!). A. Schmolck caught this one.
5702 string!). A. Schmolck caught this one.
5700
5703
5701 2002-06-27 Fernando Perez <fperez@colorado.edu>
5704 2002-06-27 Fernando Perez <fperez@colorado.edu>
5702
5705
5703 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5706 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5704 defined files at the cmd line. __name__ wasn't being set to
5707 defined files at the cmd line. __name__ wasn't being set to
5705 __main__.
5708 __main__.
5706
5709
5707 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5710 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5708 regular lists and tuples besides Numeric arrays.
5711 regular lists and tuples besides Numeric arrays.
5709
5712
5710 * IPython/Prompts.py (CachedOutput.__call__): Added output
5713 * IPython/Prompts.py (CachedOutput.__call__): Added output
5711 supression for input ending with ';'. Similar to Mathematica and
5714 supression for input ending with ';'. Similar to Mathematica and
5712 Matlab. The _* vars and Out[] list are still updated, just like
5715 Matlab. The _* vars and Out[] list are still updated, just like
5713 Mathematica behaves.
5716 Mathematica behaves.
5714
5717
5715 2002-06-25 Fernando Perez <fperez@colorado.edu>
5718 2002-06-25 Fernando Perez <fperez@colorado.edu>
5716
5719
5717 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5720 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5718 .ini extensions for profiels under Windows.
5721 .ini extensions for profiels under Windows.
5719
5722
5720 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5723 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5721 string form. Fix contributed by Alexander Schmolck
5724 string form. Fix contributed by Alexander Schmolck
5722 <a.schmolck-AT-gmx.net>
5725 <a.schmolck-AT-gmx.net>
5723
5726
5724 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5727 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5725 pre-configured Gnuplot instance.
5728 pre-configured Gnuplot instance.
5726
5729
5727 2002-06-21 Fernando Perez <fperez@colorado.edu>
5730 2002-06-21 Fernando Perez <fperez@colorado.edu>
5728
5731
5729 * IPython/numutils.py (exp_safe): new function, works around the
5732 * IPython/numutils.py (exp_safe): new function, works around the
5730 underflow problems in Numeric.
5733 underflow problems in Numeric.
5731 (log2): New fn. Safe log in base 2: returns exact integer answer
5734 (log2): New fn. Safe log in base 2: returns exact integer answer
5732 for exact integer powers of 2.
5735 for exact integer powers of 2.
5733
5736
5734 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5737 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5735 properly.
5738 properly.
5736
5739
5737 2002-06-20 Fernando Perez <fperez@colorado.edu>
5740 2002-06-20 Fernando Perez <fperez@colorado.edu>
5738
5741
5739 * IPython/genutils.py (timing): new function like
5742 * IPython/genutils.py (timing): new function like
5740 Mathematica's. Similar to time_test, but returns more info.
5743 Mathematica's. Similar to time_test, but returns more info.
5741
5744
5742 2002-06-18 Fernando Perez <fperez@colorado.edu>
5745 2002-06-18 Fernando Perez <fperez@colorado.edu>
5743
5746
5744 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5747 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5745 according to Mike Heeter's suggestions.
5748 according to Mike Heeter's suggestions.
5746
5749
5747 2002-06-16 Fernando Perez <fperez@colorado.edu>
5750 2002-06-16 Fernando Perez <fperez@colorado.edu>
5748
5751
5749 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5752 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5750 system. GnuplotMagic is gone as a user-directory option. New files
5753 system. GnuplotMagic is gone as a user-directory option. New files
5751 make it easier to use all the gnuplot stuff both from external
5754 make it easier to use all the gnuplot stuff both from external
5752 programs as well as from IPython. Had to rewrite part of
5755 programs as well as from IPython. Had to rewrite part of
5753 hardcopy() b/c of a strange bug: often the ps files simply don't
5756 hardcopy() b/c of a strange bug: often the ps files simply don't
5754 get created, and require a repeat of the command (often several
5757 get created, and require a repeat of the command (often several
5755 times).
5758 times).
5756
5759
5757 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5760 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5758 resolve output channel at call time, so that if sys.stderr has
5761 resolve output channel at call time, so that if sys.stderr has
5759 been redirected by user this gets honored.
5762 been redirected by user this gets honored.
5760
5763
5761 2002-06-13 Fernando Perez <fperez@colorado.edu>
5764 2002-06-13 Fernando Perez <fperez@colorado.edu>
5762
5765
5763 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5766 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5764 IPShell. Kept a copy with the old names to avoid breaking people's
5767 IPShell. Kept a copy with the old names to avoid breaking people's
5765 embedded code.
5768 embedded code.
5766
5769
5767 * IPython/ipython: simplified it to the bare minimum after
5770 * IPython/ipython: simplified it to the bare minimum after
5768 Holger's suggestions. Added info about how to use it in
5771 Holger's suggestions. Added info about how to use it in
5769 PYTHONSTARTUP.
5772 PYTHONSTARTUP.
5770
5773
5771 * IPython/Shell.py (IPythonShell): changed the options passing
5774 * IPython/Shell.py (IPythonShell): changed the options passing
5772 from a string with funky %s replacements to a straight list. Maybe
5775 from a string with funky %s replacements to a straight list. Maybe
5773 a bit more typing, but it follows sys.argv conventions, so there's
5776 a bit more typing, but it follows sys.argv conventions, so there's
5774 less special-casing to remember.
5777 less special-casing to remember.
5775
5778
5776 2002-06-12 Fernando Perez <fperez@colorado.edu>
5779 2002-06-12 Fernando Perez <fperez@colorado.edu>
5777
5780
5778 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5781 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5779 command. Thanks to a suggestion by Mike Heeter.
5782 command. Thanks to a suggestion by Mike Heeter.
5780 (Magic.magic_pfile): added behavior to look at filenames if given
5783 (Magic.magic_pfile): added behavior to look at filenames if given
5781 arg is not a defined object.
5784 arg is not a defined object.
5782 (Magic.magic_save): New @save function to save code snippets. Also
5785 (Magic.magic_save): New @save function to save code snippets. Also
5783 a Mike Heeter idea.
5786 a Mike Heeter idea.
5784
5787
5785 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5788 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5786 plot() and replot(). Much more convenient now, especially for
5789 plot() and replot(). Much more convenient now, especially for
5787 interactive use.
5790 interactive use.
5788
5791
5789 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5792 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5790 filenames.
5793 filenames.
5791
5794
5792 2002-06-02 Fernando Perez <fperez@colorado.edu>
5795 2002-06-02 Fernando Perez <fperez@colorado.edu>
5793
5796
5794 * IPython/Struct.py (Struct.__init__): modified to admit
5797 * IPython/Struct.py (Struct.__init__): modified to admit
5795 initialization via another struct.
5798 initialization via another struct.
5796
5799
5797 * IPython/genutils.py (SystemExec.__init__): New stateful
5800 * IPython/genutils.py (SystemExec.__init__): New stateful
5798 interface to xsys and bq. Useful for writing system scripts.
5801 interface to xsys and bq. Useful for writing system scripts.
5799
5802
5800 2002-05-30 Fernando Perez <fperez@colorado.edu>
5803 2002-05-30 Fernando Perez <fperez@colorado.edu>
5801
5804
5802 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5805 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5803 documents. This will make the user download smaller (it's getting
5806 documents. This will make the user download smaller (it's getting
5804 too big).
5807 too big).
5805
5808
5806 2002-05-29 Fernando Perez <fperez@colorado.edu>
5809 2002-05-29 Fernando Perez <fperez@colorado.edu>
5807
5810
5808 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5811 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5809 fix problems with shelve and pickle. Seems to work, but I don't
5812 fix problems with shelve and pickle. Seems to work, but I don't
5810 know if corner cases break it. Thanks to Mike Heeter
5813 know if corner cases break it. Thanks to Mike Heeter
5811 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5814 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5812
5815
5813 2002-05-24 Fernando Perez <fperez@colorado.edu>
5816 2002-05-24 Fernando Perez <fperez@colorado.edu>
5814
5817
5815 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5818 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5816 macros having broken.
5819 macros having broken.
5817
5820
5818 2002-05-21 Fernando Perez <fperez@colorado.edu>
5821 2002-05-21 Fernando Perez <fperez@colorado.edu>
5819
5822
5820 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5823 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5821 introduced logging bug: all history before logging started was
5824 introduced logging bug: all history before logging started was
5822 being written one character per line! This came from the redesign
5825 being written one character per line! This came from the redesign
5823 of the input history as a special list which slices to strings,
5826 of the input history as a special list which slices to strings,
5824 not to lists.
5827 not to lists.
5825
5828
5826 2002-05-20 Fernando Perez <fperez@colorado.edu>
5829 2002-05-20 Fernando Perez <fperez@colorado.edu>
5827
5830
5828 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5831 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5829 be an attribute of all classes in this module. The design of these
5832 be an attribute of all classes in this module. The design of these
5830 classes needs some serious overhauling.
5833 classes needs some serious overhauling.
5831
5834
5832 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5835 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5833 which was ignoring '_' in option names.
5836 which was ignoring '_' in option names.
5834
5837
5835 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5838 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5836 'Verbose_novars' to 'Context' and made it the new default. It's a
5839 'Verbose_novars' to 'Context' and made it the new default. It's a
5837 bit more readable and also safer than verbose.
5840 bit more readable and also safer than verbose.
5838
5841
5839 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5842 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5840 triple-quoted strings.
5843 triple-quoted strings.
5841
5844
5842 * IPython/OInspect.py (__all__): new module exposing the object
5845 * IPython/OInspect.py (__all__): new module exposing the object
5843 introspection facilities. Now the corresponding magics are dummy
5846 introspection facilities. Now the corresponding magics are dummy
5844 wrappers around this. Having this module will make it much easier
5847 wrappers around this. Having this module will make it much easier
5845 to put these functions into our modified pdb.
5848 to put these functions into our modified pdb.
5846 This new object inspector system uses the new colorizing module,
5849 This new object inspector system uses the new colorizing module,
5847 so source code and other things are nicely syntax highlighted.
5850 so source code and other things are nicely syntax highlighted.
5848
5851
5849 2002-05-18 Fernando Perez <fperez@colorado.edu>
5852 2002-05-18 Fernando Perez <fperez@colorado.edu>
5850
5853
5851 * IPython/ColorANSI.py: Split the coloring tools into a separate
5854 * IPython/ColorANSI.py: Split the coloring tools into a separate
5852 module so I can use them in other code easier (they were part of
5855 module so I can use them in other code easier (they were part of
5853 ultraTB).
5856 ultraTB).
5854
5857
5855 2002-05-17 Fernando Perez <fperez@colorado.edu>
5858 2002-05-17 Fernando Perez <fperez@colorado.edu>
5856
5859
5857 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5860 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5858 fixed it to set the global 'g' also to the called instance, as
5861 fixed it to set the global 'g' also to the called instance, as
5859 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5862 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5860 user's 'g' variables).
5863 user's 'g' variables).
5861
5864
5862 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5865 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5863 global variables (aliases to _ih,_oh) so that users which expect
5866 global variables (aliases to _ih,_oh) so that users which expect
5864 In[5] or Out[7] to work aren't unpleasantly surprised.
5867 In[5] or Out[7] to work aren't unpleasantly surprised.
5865 (InputList.__getslice__): new class to allow executing slices of
5868 (InputList.__getslice__): new class to allow executing slices of
5866 input history directly. Very simple class, complements the use of
5869 input history directly. Very simple class, complements the use of
5867 macros.
5870 macros.
5868
5871
5869 2002-05-16 Fernando Perez <fperez@colorado.edu>
5872 2002-05-16 Fernando Perez <fperez@colorado.edu>
5870
5873
5871 * setup.py (docdirbase): make doc directory be just doc/IPython
5874 * setup.py (docdirbase): make doc directory be just doc/IPython
5872 without version numbers, it will reduce clutter for users.
5875 without version numbers, it will reduce clutter for users.
5873
5876
5874 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5877 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5875 execfile call to prevent possible memory leak. See for details:
5878 execfile call to prevent possible memory leak. See for details:
5876 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5879 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5877
5880
5878 2002-05-15 Fernando Perez <fperez@colorado.edu>
5881 2002-05-15 Fernando Perez <fperez@colorado.edu>
5879
5882
5880 * IPython/Magic.py (Magic.magic_psource): made the object
5883 * IPython/Magic.py (Magic.magic_psource): made the object
5881 introspection names be more standard: pdoc, pdef, pfile and
5884 introspection names be more standard: pdoc, pdef, pfile and
5882 psource. They all print/page their output, and it makes
5885 psource. They all print/page their output, and it makes
5883 remembering them easier. Kept old names for compatibility as
5886 remembering them easier. Kept old names for compatibility as
5884 aliases.
5887 aliases.
5885
5888
5886 2002-05-14 Fernando Perez <fperez@colorado.edu>
5889 2002-05-14 Fernando Perez <fperez@colorado.edu>
5887
5890
5888 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5891 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5889 what the mouse problem was. The trick is to use gnuplot with temp
5892 what the mouse problem was. The trick is to use gnuplot with temp
5890 files and NOT with pipes (for data communication), because having
5893 files and NOT with pipes (for data communication), because having
5891 both pipes and the mouse on is bad news.
5894 both pipes and the mouse on is bad news.
5892
5895
5893 2002-05-13 Fernando Perez <fperez@colorado.edu>
5896 2002-05-13 Fernando Perez <fperez@colorado.edu>
5894
5897
5895 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5898 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5896 bug. Information would be reported about builtins even when
5899 bug. Information would be reported about builtins even when
5897 user-defined functions overrode them.
5900 user-defined functions overrode them.
5898
5901
5899 2002-05-11 Fernando Perez <fperez@colorado.edu>
5902 2002-05-11 Fernando Perez <fperez@colorado.edu>
5900
5903
5901 * IPython/__init__.py (__all__): removed FlexCompleter from
5904 * IPython/__init__.py (__all__): removed FlexCompleter from
5902 __all__ so that things don't fail in platforms without readline.
5905 __all__ so that things don't fail in platforms without readline.
5903
5906
5904 2002-05-10 Fernando Perez <fperez@colorado.edu>
5907 2002-05-10 Fernando Perez <fperez@colorado.edu>
5905
5908
5906 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5909 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5907 it requires Numeric, effectively making Numeric a dependency for
5910 it requires Numeric, effectively making Numeric a dependency for
5908 IPython.
5911 IPython.
5909
5912
5910 * Released 0.2.13
5913 * Released 0.2.13
5911
5914
5912 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5915 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5913 profiler interface. Now all the major options from the profiler
5916 profiler interface. Now all the major options from the profiler
5914 module are directly supported in IPython, both for single
5917 module are directly supported in IPython, both for single
5915 expressions (@prun) and for full programs (@run -p).
5918 expressions (@prun) and for full programs (@run -p).
5916
5919
5917 2002-05-09 Fernando Perez <fperez@colorado.edu>
5920 2002-05-09 Fernando Perez <fperez@colorado.edu>
5918
5921
5919 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5922 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5920 magic properly formatted for screen.
5923 magic properly formatted for screen.
5921
5924
5922 * setup.py (make_shortcut): Changed things to put pdf version in
5925 * setup.py (make_shortcut): Changed things to put pdf version in
5923 doc/ instead of doc/manual (had to change lyxport a bit).
5926 doc/ instead of doc/manual (had to change lyxport a bit).
5924
5927
5925 * IPython/Magic.py (Profile.string_stats): made profile runs go
5928 * IPython/Magic.py (Profile.string_stats): made profile runs go
5926 through pager (they are long and a pager allows searching, saving,
5929 through pager (they are long and a pager allows searching, saving,
5927 etc.)
5930 etc.)
5928
5931
5929 2002-05-08 Fernando Perez <fperez@colorado.edu>
5932 2002-05-08 Fernando Perez <fperez@colorado.edu>
5930
5933
5931 * Released 0.2.12
5934 * Released 0.2.12
5932
5935
5933 2002-05-06 Fernando Perez <fperez@colorado.edu>
5936 2002-05-06 Fernando Perez <fperez@colorado.edu>
5934
5937
5935 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5938 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5936 introduced); 'hist n1 n2' was broken.
5939 introduced); 'hist n1 n2' was broken.
5937 (Magic.magic_pdb): added optional on/off arguments to @pdb
5940 (Magic.magic_pdb): added optional on/off arguments to @pdb
5938 (Magic.magic_run): added option -i to @run, which executes code in
5941 (Magic.magic_run): added option -i to @run, which executes code in
5939 the IPython namespace instead of a clean one. Also added @irun as
5942 the IPython namespace instead of a clean one. Also added @irun as
5940 an alias to @run -i.
5943 an alias to @run -i.
5941
5944
5942 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5945 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5943 fixed (it didn't really do anything, the namespaces were wrong).
5946 fixed (it didn't really do anything, the namespaces were wrong).
5944
5947
5945 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5948 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5946
5949
5947 * IPython/__init__.py (__all__): Fixed package namespace, now
5950 * IPython/__init__.py (__all__): Fixed package namespace, now
5948 'import IPython' does give access to IPython.<all> as
5951 'import IPython' does give access to IPython.<all> as
5949 expected. Also renamed __release__ to Release.
5952 expected. Also renamed __release__ to Release.
5950
5953
5951 * IPython/Debugger.py (__license__): created new Pdb class which
5954 * IPython/Debugger.py (__license__): created new Pdb class which
5952 functions like a drop-in for the normal pdb.Pdb but does NOT
5955 functions like a drop-in for the normal pdb.Pdb but does NOT
5953 import readline by default. This way it doesn't muck up IPython's
5956 import readline by default. This way it doesn't muck up IPython's
5954 readline handling, and now tab-completion finally works in the
5957 readline handling, and now tab-completion finally works in the
5955 debugger -- sort of. It completes things globally visible, but the
5958 debugger -- sort of. It completes things globally visible, but the
5956 completer doesn't track the stack as pdb walks it. That's a bit
5959 completer doesn't track the stack as pdb walks it. That's a bit
5957 tricky, and I'll have to implement it later.
5960 tricky, and I'll have to implement it later.
5958
5961
5959 2002-05-05 Fernando Perez <fperez@colorado.edu>
5962 2002-05-05 Fernando Perez <fperez@colorado.edu>
5960
5963
5961 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5964 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5962 magic docstrings when printed via ? (explicit \'s were being
5965 magic docstrings when printed via ? (explicit \'s were being
5963 printed).
5966 printed).
5964
5967
5965 * IPython/ipmaker.py (make_IPython): fixed namespace
5968 * IPython/ipmaker.py (make_IPython): fixed namespace
5966 identification bug. Now variables loaded via logs or command-line
5969 identification bug. Now variables loaded via logs or command-line
5967 files are recognized in the interactive namespace by @who.
5970 files are recognized in the interactive namespace by @who.
5968
5971
5969 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5972 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5970 log replay system stemming from the string form of Structs.
5973 log replay system stemming from the string form of Structs.
5971
5974
5972 * IPython/Magic.py (Macro.__init__): improved macros to properly
5975 * IPython/Magic.py (Macro.__init__): improved macros to properly
5973 handle magic commands in them.
5976 handle magic commands in them.
5974 (Magic.magic_logstart): usernames are now expanded so 'logstart
5977 (Magic.magic_logstart): usernames are now expanded so 'logstart
5975 ~/mylog' now works.
5978 ~/mylog' now works.
5976
5979
5977 * IPython/iplib.py (complete): fixed bug where paths starting with
5980 * IPython/iplib.py (complete): fixed bug where paths starting with
5978 '/' would be completed as magic names.
5981 '/' would be completed as magic names.
5979
5982
5980 2002-05-04 Fernando Perez <fperez@colorado.edu>
5983 2002-05-04 Fernando Perez <fperez@colorado.edu>
5981
5984
5982 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5985 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5983 allow running full programs under the profiler's control.
5986 allow running full programs under the profiler's control.
5984
5987
5985 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5988 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5986 mode to report exceptions verbosely but without formatting
5989 mode to report exceptions verbosely but without formatting
5987 variables. This addresses the issue of ipython 'freezing' (it's
5990 variables. This addresses the issue of ipython 'freezing' (it's
5988 not frozen, but caught in an expensive formatting loop) when huge
5991 not frozen, but caught in an expensive formatting loop) when huge
5989 variables are in the context of an exception.
5992 variables are in the context of an exception.
5990 (VerboseTB.text): Added '--->' markers at line where exception was
5993 (VerboseTB.text): Added '--->' markers at line where exception was
5991 triggered. Much clearer to read, especially in NoColor modes.
5994 triggered. Much clearer to read, especially in NoColor modes.
5992
5995
5993 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5996 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5994 implemented in reverse when changing to the new parse_options().
5997 implemented in reverse when changing to the new parse_options().
5995
5998
5996 2002-05-03 Fernando Perez <fperez@colorado.edu>
5999 2002-05-03 Fernando Perez <fperez@colorado.edu>
5997
6000
5998 * IPython/Magic.py (Magic.parse_options): new function so that
6001 * IPython/Magic.py (Magic.parse_options): new function so that
5999 magics can parse options easier.
6002 magics can parse options easier.
6000 (Magic.magic_prun): new function similar to profile.run(),
6003 (Magic.magic_prun): new function similar to profile.run(),
6001 suggested by Chris Hart.
6004 suggested by Chris Hart.
6002 (Magic.magic_cd): fixed behavior so that it only changes if
6005 (Magic.magic_cd): fixed behavior so that it only changes if
6003 directory actually is in history.
6006 directory actually is in history.
6004
6007
6005 * IPython/usage.py (__doc__): added information about potential
6008 * IPython/usage.py (__doc__): added information about potential
6006 slowness of Verbose exception mode when there are huge data
6009 slowness of Verbose exception mode when there are huge data
6007 structures to be formatted (thanks to Archie Paulson).
6010 structures to be formatted (thanks to Archie Paulson).
6008
6011
6009 * IPython/ipmaker.py (make_IPython): Changed default logging
6012 * IPython/ipmaker.py (make_IPython): Changed default logging
6010 (when simply called with -log) to use curr_dir/ipython.log in
6013 (when simply called with -log) to use curr_dir/ipython.log in
6011 rotate mode. Fixed crash which was occuring with -log before
6014 rotate mode. Fixed crash which was occuring with -log before
6012 (thanks to Jim Boyle).
6015 (thanks to Jim Boyle).
6013
6016
6014 2002-05-01 Fernando Perez <fperez@colorado.edu>
6017 2002-05-01 Fernando Perez <fperez@colorado.edu>
6015
6018
6016 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6019 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6017 was nasty -- though somewhat of a corner case).
6020 was nasty -- though somewhat of a corner case).
6018
6021
6019 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6022 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6020 text (was a bug).
6023 text (was a bug).
6021
6024
6022 2002-04-30 Fernando Perez <fperez@colorado.edu>
6025 2002-04-30 Fernando Perez <fperez@colorado.edu>
6023
6026
6024 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6027 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6025 a print after ^D or ^C from the user so that the In[] prompt
6028 a print after ^D or ^C from the user so that the In[] prompt
6026 doesn't over-run the gnuplot one.
6029 doesn't over-run the gnuplot one.
6027
6030
6028 2002-04-29 Fernando Perez <fperez@colorado.edu>
6031 2002-04-29 Fernando Perez <fperez@colorado.edu>
6029
6032
6030 * Released 0.2.10
6033 * Released 0.2.10
6031
6034
6032 * IPython/__release__.py (version): get date dynamically.
6035 * IPython/__release__.py (version): get date dynamically.
6033
6036
6034 * Misc. documentation updates thanks to Arnd's comments. Also ran
6037 * Misc. documentation updates thanks to Arnd's comments. Also ran
6035 a full spellcheck on the manual (hadn't been done in a while).
6038 a full spellcheck on the manual (hadn't been done in a while).
6036
6039
6037 2002-04-27 Fernando Perez <fperez@colorado.edu>
6040 2002-04-27 Fernando Perez <fperez@colorado.edu>
6038
6041
6039 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6042 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6040 starting a log in mid-session would reset the input history list.
6043 starting a log in mid-session would reset the input history list.
6041
6044
6042 2002-04-26 Fernando Perez <fperez@colorado.edu>
6045 2002-04-26 Fernando Perez <fperez@colorado.edu>
6043
6046
6044 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6047 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6045 all files were being included in an update. Now anything in
6048 all files were being included in an update. Now anything in
6046 UserConfig that matches [A-Za-z]*.py will go (this excludes
6049 UserConfig that matches [A-Za-z]*.py will go (this excludes
6047 __init__.py)
6050 __init__.py)
6048
6051
6049 2002-04-25 Fernando Perez <fperez@colorado.edu>
6052 2002-04-25 Fernando Perez <fperez@colorado.edu>
6050
6053
6051 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6054 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6052 to __builtins__ so that any form of embedded or imported code can
6055 to __builtins__ so that any form of embedded or imported code can
6053 test for being inside IPython.
6056 test for being inside IPython.
6054
6057
6055 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6058 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6056 changed to GnuplotMagic because it's now an importable module,
6059 changed to GnuplotMagic because it's now an importable module,
6057 this makes the name follow that of the standard Gnuplot module.
6060 this makes the name follow that of the standard Gnuplot module.
6058 GnuplotMagic can now be loaded at any time in mid-session.
6061 GnuplotMagic can now be loaded at any time in mid-session.
6059
6062
6060 2002-04-24 Fernando Perez <fperez@colorado.edu>
6063 2002-04-24 Fernando Perez <fperez@colorado.edu>
6061
6064
6062 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6065 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6063 the globals (IPython has its own namespace) and the
6066 the globals (IPython has its own namespace) and the
6064 PhysicalQuantity stuff is much better anyway.
6067 PhysicalQuantity stuff is much better anyway.
6065
6068
6066 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6069 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6067 embedding example to standard user directory for
6070 embedding example to standard user directory for
6068 distribution. Also put it in the manual.
6071 distribution. Also put it in the manual.
6069
6072
6070 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6073 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6071 instance as first argument (so it doesn't rely on some obscure
6074 instance as first argument (so it doesn't rely on some obscure
6072 hidden global).
6075 hidden global).
6073
6076
6074 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6077 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6075 delimiters. While it prevents ().TAB from working, it allows
6078 delimiters. While it prevents ().TAB from working, it allows
6076 completions in open (... expressions. This is by far a more common
6079 completions in open (... expressions. This is by far a more common
6077 case.
6080 case.
6078
6081
6079 2002-04-23 Fernando Perez <fperez@colorado.edu>
6082 2002-04-23 Fernando Perez <fperez@colorado.edu>
6080
6083
6081 * IPython/Extensions/InterpreterPasteInput.py: new
6084 * IPython/Extensions/InterpreterPasteInput.py: new
6082 syntax-processing module for pasting lines with >>> or ... at the
6085 syntax-processing module for pasting lines with >>> or ... at the
6083 start.
6086 start.
6084
6087
6085 * IPython/Extensions/PhysicalQ_Interactive.py
6088 * IPython/Extensions/PhysicalQ_Interactive.py
6086 (PhysicalQuantityInteractive.__int__): fixed to work with either
6089 (PhysicalQuantityInteractive.__int__): fixed to work with either
6087 Numeric or math.
6090 Numeric or math.
6088
6091
6089 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6092 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6090 provided profiles. Now we have:
6093 provided profiles. Now we have:
6091 -math -> math module as * and cmath with its own namespace.
6094 -math -> math module as * and cmath with its own namespace.
6092 -numeric -> Numeric as *, plus gnuplot & grace
6095 -numeric -> Numeric as *, plus gnuplot & grace
6093 -physics -> same as before
6096 -physics -> same as before
6094
6097
6095 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6098 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6096 user-defined magics wouldn't be found by @magic if they were
6099 user-defined magics wouldn't be found by @magic if they were
6097 defined as class methods. Also cleaned up the namespace search
6100 defined as class methods. Also cleaned up the namespace search
6098 logic and the string building (to use %s instead of many repeated
6101 logic and the string building (to use %s instead of many repeated
6099 string adds).
6102 string adds).
6100
6103
6101 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6104 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6102 of user-defined magics to operate with class methods (cleaner, in
6105 of user-defined magics to operate with class methods (cleaner, in
6103 line with the gnuplot code).
6106 line with the gnuplot code).
6104
6107
6105 2002-04-22 Fernando Perez <fperez@colorado.edu>
6108 2002-04-22 Fernando Perez <fperez@colorado.edu>
6106
6109
6107 * setup.py: updated dependency list so that manual is updated when
6110 * setup.py: updated dependency list so that manual is updated when
6108 all included files change.
6111 all included files change.
6109
6112
6110 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6113 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6111 the delimiter removal option (the fix is ugly right now).
6114 the delimiter removal option (the fix is ugly right now).
6112
6115
6113 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6116 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6114 all of the math profile (quicker loading, no conflict between
6117 all of the math profile (quicker loading, no conflict between
6115 g-9.8 and g-gnuplot).
6118 g-9.8 and g-gnuplot).
6116
6119
6117 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6120 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6118 name of post-mortem files to IPython_crash_report.txt.
6121 name of post-mortem files to IPython_crash_report.txt.
6119
6122
6120 * Cleanup/update of the docs. Added all the new readline info and
6123 * Cleanup/update of the docs. Added all the new readline info and
6121 formatted all lists as 'real lists'.
6124 formatted all lists as 'real lists'.
6122
6125
6123 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6126 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6124 tab-completion options, since the full readline parse_and_bind is
6127 tab-completion options, since the full readline parse_and_bind is
6125 now accessible.
6128 now accessible.
6126
6129
6127 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6130 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6128 handling of readline options. Now users can specify any string to
6131 handling of readline options. Now users can specify any string to
6129 be passed to parse_and_bind(), as well as the delimiters to be
6132 be passed to parse_and_bind(), as well as the delimiters to be
6130 removed.
6133 removed.
6131 (InteractiveShell.__init__): Added __name__ to the global
6134 (InteractiveShell.__init__): Added __name__ to the global
6132 namespace so that things like Itpl which rely on its existence
6135 namespace so that things like Itpl which rely on its existence
6133 don't crash.
6136 don't crash.
6134 (InteractiveShell._prefilter): Defined the default with a _ so
6137 (InteractiveShell._prefilter): Defined the default with a _ so
6135 that prefilter() is easier to override, while the default one
6138 that prefilter() is easier to override, while the default one
6136 remains available.
6139 remains available.
6137
6140
6138 2002-04-18 Fernando Perez <fperez@colorado.edu>
6141 2002-04-18 Fernando Perez <fperez@colorado.edu>
6139
6142
6140 * Added information about pdb in the docs.
6143 * Added information about pdb in the docs.
6141
6144
6142 2002-04-17 Fernando Perez <fperez@colorado.edu>
6145 2002-04-17 Fernando Perez <fperez@colorado.edu>
6143
6146
6144 * IPython/ipmaker.py (make_IPython): added rc_override option to
6147 * IPython/ipmaker.py (make_IPython): added rc_override option to
6145 allow passing config options at creation time which may override
6148 allow passing config options at creation time which may override
6146 anything set in the config files or command line. This is
6149 anything set in the config files or command line. This is
6147 particularly useful for configuring embedded instances.
6150 particularly useful for configuring embedded instances.
6148
6151
6149 2002-04-15 Fernando Perez <fperez@colorado.edu>
6152 2002-04-15 Fernando Perez <fperez@colorado.edu>
6150
6153
6151 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6154 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6152 crash embedded instances because of the input cache falling out of
6155 crash embedded instances because of the input cache falling out of
6153 sync with the output counter.
6156 sync with the output counter.
6154
6157
6155 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6158 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6156 mode which calls pdb after an uncaught exception in IPython itself.
6159 mode which calls pdb after an uncaught exception in IPython itself.
6157
6160
6158 2002-04-14 Fernando Perez <fperez@colorado.edu>
6161 2002-04-14 Fernando Perez <fperez@colorado.edu>
6159
6162
6160 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6163 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6161 readline, fix it back after each call.
6164 readline, fix it back after each call.
6162
6165
6163 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6166 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6164 method to force all access via __call__(), which guarantees that
6167 method to force all access via __call__(), which guarantees that
6165 traceback references are properly deleted.
6168 traceback references are properly deleted.
6166
6169
6167 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6170 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6168 improve printing when pprint is in use.
6171 improve printing when pprint is in use.
6169
6172
6170 2002-04-13 Fernando Perez <fperez@colorado.edu>
6173 2002-04-13 Fernando Perez <fperez@colorado.edu>
6171
6174
6172 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6175 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6173 exceptions aren't caught anymore. If the user triggers one, he
6176 exceptions aren't caught anymore. If the user triggers one, he
6174 should know why he's doing it and it should go all the way up,
6177 should know why he's doing it and it should go all the way up,
6175 just like any other exception. So now @abort will fully kill the
6178 just like any other exception. So now @abort will fully kill the
6176 embedded interpreter and the embedding code (unless that happens
6179 embedded interpreter and the embedding code (unless that happens
6177 to catch SystemExit).
6180 to catch SystemExit).
6178
6181
6179 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6182 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6180 and a debugger() method to invoke the interactive pdb debugger
6183 and a debugger() method to invoke the interactive pdb debugger
6181 after printing exception information. Also added the corresponding
6184 after printing exception information. Also added the corresponding
6182 -pdb option and @pdb magic to control this feature, and updated
6185 -pdb option and @pdb magic to control this feature, and updated
6183 the docs. After a suggestion from Christopher Hart
6186 the docs. After a suggestion from Christopher Hart
6184 (hart-AT-caltech.edu).
6187 (hart-AT-caltech.edu).
6185
6188
6186 2002-04-12 Fernando Perez <fperez@colorado.edu>
6189 2002-04-12 Fernando Perez <fperez@colorado.edu>
6187
6190
6188 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6191 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6189 the exception handlers defined by the user (not the CrashHandler)
6192 the exception handlers defined by the user (not the CrashHandler)
6190 so that user exceptions don't trigger an ipython bug report.
6193 so that user exceptions don't trigger an ipython bug report.
6191
6194
6192 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6195 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6193 configurable (it should have always been so).
6196 configurable (it should have always been so).
6194
6197
6195 2002-03-26 Fernando Perez <fperez@colorado.edu>
6198 2002-03-26 Fernando Perez <fperez@colorado.edu>
6196
6199
6197 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6200 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6198 and there to fix embedding namespace issues. This should all be
6201 and there to fix embedding namespace issues. This should all be
6199 done in a more elegant way.
6202 done in a more elegant way.
6200
6203
6201 2002-03-25 Fernando Perez <fperez@colorado.edu>
6204 2002-03-25 Fernando Perez <fperez@colorado.edu>
6202
6205
6203 * IPython/genutils.py (get_home_dir): Try to make it work under
6206 * IPython/genutils.py (get_home_dir): Try to make it work under
6204 win9x also.
6207 win9x also.
6205
6208
6206 2002-03-20 Fernando Perez <fperez@colorado.edu>
6209 2002-03-20 Fernando Perez <fperez@colorado.edu>
6207
6210
6208 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6211 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6209 sys.displayhook untouched upon __init__.
6212 sys.displayhook untouched upon __init__.
6210
6213
6211 2002-03-19 Fernando Perez <fperez@colorado.edu>
6214 2002-03-19 Fernando Perez <fperez@colorado.edu>
6212
6215
6213 * Released 0.2.9 (for embedding bug, basically).
6216 * Released 0.2.9 (for embedding bug, basically).
6214
6217
6215 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6218 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6216 exceptions so that enclosing shell's state can be restored.
6219 exceptions so that enclosing shell's state can be restored.
6217
6220
6218 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6221 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6219 naming conventions in the .ipython/ dir.
6222 naming conventions in the .ipython/ dir.
6220
6223
6221 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6224 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6222 from delimiters list so filenames with - in them get expanded.
6225 from delimiters list so filenames with - in them get expanded.
6223
6226
6224 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6227 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6225 sys.displayhook not being properly restored after an embedded call.
6228 sys.displayhook not being properly restored after an embedded call.
6226
6229
6227 2002-03-18 Fernando Perez <fperez@colorado.edu>
6230 2002-03-18 Fernando Perez <fperez@colorado.edu>
6228
6231
6229 * Released 0.2.8
6232 * Released 0.2.8
6230
6233
6231 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6234 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6232 some files weren't being included in a -upgrade.
6235 some files weren't being included in a -upgrade.
6233 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6236 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6234 on' so that the first tab completes.
6237 on' so that the first tab completes.
6235 (InteractiveShell.handle_magic): fixed bug with spaces around
6238 (InteractiveShell.handle_magic): fixed bug with spaces around
6236 quotes breaking many magic commands.
6239 quotes breaking many magic commands.
6237
6240
6238 * setup.py: added note about ignoring the syntax error messages at
6241 * setup.py: added note about ignoring the syntax error messages at
6239 installation.
6242 installation.
6240
6243
6241 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6244 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6242 streamlining the gnuplot interface, now there's only one magic @gp.
6245 streamlining the gnuplot interface, now there's only one magic @gp.
6243
6246
6244 2002-03-17 Fernando Perez <fperez@colorado.edu>
6247 2002-03-17 Fernando Perez <fperez@colorado.edu>
6245
6248
6246 * IPython/UserConfig/magic_gnuplot.py: new name for the
6249 * IPython/UserConfig/magic_gnuplot.py: new name for the
6247 example-magic_pm.py file. Much enhanced system, now with a shell
6250 example-magic_pm.py file. Much enhanced system, now with a shell
6248 for communicating directly with gnuplot, one command at a time.
6251 for communicating directly with gnuplot, one command at a time.
6249
6252
6250 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6253 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6251 setting __name__=='__main__'.
6254 setting __name__=='__main__'.
6252
6255
6253 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6256 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6254 mini-shell for accessing gnuplot from inside ipython. Should
6257 mini-shell for accessing gnuplot from inside ipython. Should
6255 extend it later for grace access too. Inspired by Arnd's
6258 extend it later for grace access too. Inspired by Arnd's
6256 suggestion.
6259 suggestion.
6257
6260
6258 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6261 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6259 calling magic functions with () in their arguments. Thanks to Arnd
6262 calling magic functions with () in their arguments. Thanks to Arnd
6260 Baecker for pointing this to me.
6263 Baecker for pointing this to me.
6261
6264
6262 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6265 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6263 infinitely for integer or complex arrays (only worked with floats).
6266 infinitely for integer or complex arrays (only worked with floats).
6264
6267
6265 2002-03-16 Fernando Perez <fperez@colorado.edu>
6268 2002-03-16 Fernando Perez <fperez@colorado.edu>
6266
6269
6267 * setup.py: Merged setup and setup_windows into a single script
6270 * setup.py: Merged setup and setup_windows into a single script
6268 which properly handles things for windows users.
6271 which properly handles things for windows users.
6269
6272
6270 2002-03-15 Fernando Perez <fperez@colorado.edu>
6273 2002-03-15 Fernando Perez <fperez@colorado.edu>
6271
6274
6272 * Big change to the manual: now the magics are all automatically
6275 * Big change to the manual: now the magics are all automatically
6273 documented. This information is generated from their docstrings
6276 documented. This information is generated from their docstrings
6274 and put in a latex file included by the manual lyx file. This way
6277 and put in a latex file included by the manual lyx file. This way
6275 we get always up to date information for the magics. The manual
6278 we get always up to date information for the magics. The manual
6276 now also has proper version information, also auto-synced.
6279 now also has proper version information, also auto-synced.
6277
6280
6278 For this to work, an undocumented --magic_docstrings option was added.
6281 For this to work, an undocumented --magic_docstrings option was added.
6279
6282
6280 2002-03-13 Fernando Perez <fperez@colorado.edu>
6283 2002-03-13 Fernando Perez <fperez@colorado.edu>
6281
6284
6282 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6285 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6283 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6286 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6284
6287
6285 2002-03-12 Fernando Perez <fperez@colorado.edu>
6288 2002-03-12 Fernando Perez <fperez@colorado.edu>
6286
6289
6287 * IPython/ultraTB.py (TermColors): changed color escapes again to
6290 * IPython/ultraTB.py (TermColors): changed color escapes again to
6288 fix the (old, reintroduced) line-wrapping bug. Basically, if
6291 fix the (old, reintroduced) line-wrapping bug. Basically, if
6289 \001..\002 aren't given in the color escapes, lines get wrapped
6292 \001..\002 aren't given in the color escapes, lines get wrapped
6290 weirdly. But giving those screws up old xterms and emacs terms. So
6293 weirdly. But giving those screws up old xterms and emacs terms. So
6291 I added some logic for emacs terms to be ok, but I can't identify old
6294 I added some logic for emacs terms to be ok, but I can't identify old
6292 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6295 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6293
6296
6294 2002-03-10 Fernando Perez <fperez@colorado.edu>
6297 2002-03-10 Fernando Perez <fperez@colorado.edu>
6295
6298
6296 * IPython/usage.py (__doc__): Various documentation cleanups and
6299 * IPython/usage.py (__doc__): Various documentation cleanups and
6297 updates, both in usage docstrings and in the manual.
6300 updates, both in usage docstrings and in the manual.
6298
6301
6299 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6302 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6300 handling of caching. Set minimum acceptabe value for having a
6303 handling of caching. Set minimum acceptabe value for having a
6301 cache at 20 values.
6304 cache at 20 values.
6302
6305
6303 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6306 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6304 install_first_time function to a method, renamed it and added an
6307 install_first_time function to a method, renamed it and added an
6305 'upgrade' mode. Now people can update their config directory with
6308 'upgrade' mode. Now people can update their config directory with
6306 a simple command line switch (-upgrade, also new).
6309 a simple command line switch (-upgrade, also new).
6307
6310
6308 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6311 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6309 @file (convenient for automagic users under Python >= 2.2).
6312 @file (convenient for automagic users under Python >= 2.2).
6310 Removed @files (it seemed more like a plural than an abbrev. of
6313 Removed @files (it seemed more like a plural than an abbrev. of
6311 'file show').
6314 'file show').
6312
6315
6313 * IPython/iplib.py (install_first_time): Fixed crash if there were
6316 * IPython/iplib.py (install_first_time): Fixed crash if there were
6314 backup files ('~') in .ipython/ install directory.
6317 backup files ('~') in .ipython/ install directory.
6315
6318
6316 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6319 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6317 system. Things look fine, but these changes are fairly
6320 system. Things look fine, but these changes are fairly
6318 intrusive. Test them for a few days.
6321 intrusive. Test them for a few days.
6319
6322
6320 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6323 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6321 the prompts system. Now all in/out prompt strings are user
6324 the prompts system. Now all in/out prompt strings are user
6322 controllable. This is particularly useful for embedding, as one
6325 controllable. This is particularly useful for embedding, as one
6323 can tag embedded instances with particular prompts.
6326 can tag embedded instances with particular prompts.
6324
6327
6325 Also removed global use of sys.ps1/2, which now allows nested
6328 Also removed global use of sys.ps1/2, which now allows nested
6326 embeddings without any problems. Added command-line options for
6329 embeddings without any problems. Added command-line options for
6327 the prompt strings.
6330 the prompt strings.
6328
6331
6329 2002-03-08 Fernando Perez <fperez@colorado.edu>
6332 2002-03-08 Fernando Perez <fperez@colorado.edu>
6330
6333
6331 * IPython/UserConfig/example-embed-short.py (ipshell): added
6334 * IPython/UserConfig/example-embed-short.py (ipshell): added
6332 example file with the bare minimum code for embedding.
6335 example file with the bare minimum code for embedding.
6333
6336
6334 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6337 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6335 functionality for the embeddable shell to be activated/deactivated
6338 functionality for the embeddable shell to be activated/deactivated
6336 either globally or at each call.
6339 either globally or at each call.
6337
6340
6338 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6341 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6339 rewriting the prompt with '--->' for auto-inputs with proper
6342 rewriting the prompt with '--->' for auto-inputs with proper
6340 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6343 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6341 this is handled by the prompts class itself, as it should.
6344 this is handled by the prompts class itself, as it should.
6342
6345
6343 2002-03-05 Fernando Perez <fperez@colorado.edu>
6346 2002-03-05 Fernando Perez <fperez@colorado.edu>
6344
6347
6345 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6348 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6346 @logstart to avoid name clashes with the math log function.
6349 @logstart to avoid name clashes with the math log function.
6347
6350
6348 * Big updates to X/Emacs section of the manual.
6351 * Big updates to X/Emacs section of the manual.
6349
6352
6350 * Removed ipython_emacs. Milan explained to me how to pass
6353 * Removed ipython_emacs. Milan explained to me how to pass
6351 arguments to ipython through Emacs. Some day I'm going to end up
6354 arguments to ipython through Emacs. Some day I'm going to end up
6352 learning some lisp...
6355 learning some lisp...
6353
6356
6354 2002-03-04 Fernando Perez <fperez@colorado.edu>
6357 2002-03-04 Fernando Perez <fperez@colorado.edu>
6355
6358
6356 * IPython/ipython_emacs: Created script to be used as the
6359 * IPython/ipython_emacs: Created script to be used as the
6357 py-python-command Emacs variable so we can pass IPython
6360 py-python-command Emacs variable so we can pass IPython
6358 parameters. I can't figure out how to tell Emacs directly to pass
6361 parameters. I can't figure out how to tell Emacs directly to pass
6359 parameters to IPython, so a dummy shell script will do it.
6362 parameters to IPython, so a dummy shell script will do it.
6360
6363
6361 Other enhancements made for things to work better under Emacs'
6364 Other enhancements made for things to work better under Emacs'
6362 various types of terminals. Many thanks to Milan Zamazal
6365 various types of terminals. Many thanks to Milan Zamazal
6363 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6366 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6364
6367
6365 2002-03-01 Fernando Perez <fperez@colorado.edu>
6368 2002-03-01 Fernando Perez <fperez@colorado.edu>
6366
6369
6367 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6370 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6368 that loading of readline is now optional. This gives better
6371 that loading of readline is now optional. This gives better
6369 control to emacs users.
6372 control to emacs users.
6370
6373
6371 * IPython/ultraTB.py (__date__): Modified color escape sequences
6374 * IPython/ultraTB.py (__date__): Modified color escape sequences
6372 and now things work fine under xterm and in Emacs' term buffers
6375 and now things work fine under xterm and in Emacs' term buffers
6373 (though not shell ones). Well, in emacs you get colors, but all
6376 (though not shell ones). Well, in emacs you get colors, but all
6374 seem to be 'light' colors (no difference between dark and light
6377 seem to be 'light' colors (no difference between dark and light
6375 ones). But the garbage chars are gone, and also in xterms. It
6378 ones). But the garbage chars are gone, and also in xterms. It
6376 seems that now I'm using 'cleaner' ansi sequences.
6379 seems that now I'm using 'cleaner' ansi sequences.
6377
6380
6378 2002-02-21 Fernando Perez <fperez@colorado.edu>
6381 2002-02-21 Fernando Perez <fperez@colorado.edu>
6379
6382
6380 * Released 0.2.7 (mainly to publish the scoping fix).
6383 * Released 0.2.7 (mainly to publish the scoping fix).
6381
6384
6382 * IPython/Logger.py (Logger.logstate): added. A corresponding
6385 * IPython/Logger.py (Logger.logstate): added. A corresponding
6383 @logstate magic was created.
6386 @logstate magic was created.
6384
6387
6385 * IPython/Magic.py: fixed nested scoping problem under Python
6388 * IPython/Magic.py: fixed nested scoping problem under Python
6386 2.1.x (automagic wasn't working).
6389 2.1.x (automagic wasn't working).
6387
6390
6388 2002-02-20 Fernando Perez <fperez@colorado.edu>
6391 2002-02-20 Fernando Perez <fperez@colorado.edu>
6389
6392
6390 * Released 0.2.6.
6393 * Released 0.2.6.
6391
6394
6392 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6395 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6393 option so that logs can come out without any headers at all.
6396 option so that logs can come out without any headers at all.
6394
6397
6395 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6398 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6396 SciPy.
6399 SciPy.
6397
6400
6398 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6401 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6399 that embedded IPython calls don't require vars() to be explicitly
6402 that embedded IPython calls don't require vars() to be explicitly
6400 passed. Now they are extracted from the caller's frame (code
6403 passed. Now they are extracted from the caller's frame (code
6401 snatched from Eric Jones' weave). Added better documentation to
6404 snatched from Eric Jones' weave). Added better documentation to
6402 the section on embedding and the example file.
6405 the section on embedding and the example file.
6403
6406
6404 * IPython/genutils.py (page): Changed so that under emacs, it just
6407 * IPython/genutils.py (page): Changed so that under emacs, it just
6405 prints the string. You can then page up and down in the emacs
6408 prints the string. You can then page up and down in the emacs
6406 buffer itself. This is how the builtin help() works.
6409 buffer itself. This is how the builtin help() works.
6407
6410
6408 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6411 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6409 macro scoping: macros need to be executed in the user's namespace
6412 macro scoping: macros need to be executed in the user's namespace
6410 to work as if they had been typed by the user.
6413 to work as if they had been typed by the user.
6411
6414
6412 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6415 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6413 execute automatically (no need to type 'exec...'). They then
6416 execute automatically (no need to type 'exec...'). They then
6414 behave like 'true macros'. The printing system was also modified
6417 behave like 'true macros'. The printing system was also modified
6415 for this to work.
6418 for this to work.
6416
6419
6417 2002-02-19 Fernando Perez <fperez@colorado.edu>
6420 2002-02-19 Fernando Perez <fperez@colorado.edu>
6418
6421
6419 * IPython/genutils.py (page_file): new function for paging files
6422 * IPython/genutils.py (page_file): new function for paging files
6420 in an OS-independent way. Also necessary for file viewing to work
6423 in an OS-independent way. Also necessary for file viewing to work
6421 well inside Emacs buffers.
6424 well inside Emacs buffers.
6422 (page): Added checks for being in an emacs buffer.
6425 (page): Added checks for being in an emacs buffer.
6423 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6426 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6424 same bug in iplib.
6427 same bug in iplib.
6425
6428
6426 2002-02-18 Fernando Perez <fperez@colorado.edu>
6429 2002-02-18 Fernando Perez <fperez@colorado.edu>
6427
6430
6428 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6431 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6429 of readline so that IPython can work inside an Emacs buffer.
6432 of readline so that IPython can work inside an Emacs buffer.
6430
6433
6431 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6434 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6432 method signatures (they weren't really bugs, but it looks cleaner
6435 method signatures (they weren't really bugs, but it looks cleaner
6433 and keeps PyChecker happy).
6436 and keeps PyChecker happy).
6434
6437
6435 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6438 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6436 for implementing various user-defined hooks. Currently only
6439 for implementing various user-defined hooks. Currently only
6437 display is done.
6440 display is done.
6438
6441
6439 * IPython/Prompts.py (CachedOutput._display): changed display
6442 * IPython/Prompts.py (CachedOutput._display): changed display
6440 functions so that they can be dynamically changed by users easily.
6443 functions so that they can be dynamically changed by users easily.
6441
6444
6442 * IPython/Extensions/numeric_formats.py (num_display): added an
6445 * IPython/Extensions/numeric_formats.py (num_display): added an
6443 extension for printing NumPy arrays in flexible manners. It
6446 extension for printing NumPy arrays in flexible manners. It
6444 doesn't do anything yet, but all the structure is in
6447 doesn't do anything yet, but all the structure is in
6445 place. Ultimately the plan is to implement output format control
6448 place. Ultimately the plan is to implement output format control
6446 like in Octave.
6449 like in Octave.
6447
6450
6448 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6451 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6449 methods are found at run-time by all the automatic machinery.
6452 methods are found at run-time by all the automatic machinery.
6450
6453
6451 2002-02-17 Fernando Perez <fperez@colorado.edu>
6454 2002-02-17 Fernando Perez <fperez@colorado.edu>
6452
6455
6453 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6456 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6454 whole file a little.
6457 whole file a little.
6455
6458
6456 * ToDo: closed this document. Now there's a new_design.lyx
6459 * ToDo: closed this document. Now there's a new_design.lyx
6457 document for all new ideas. Added making a pdf of it for the
6460 document for all new ideas. Added making a pdf of it for the
6458 end-user distro.
6461 end-user distro.
6459
6462
6460 * IPython/Logger.py (Logger.switch_log): Created this to replace
6463 * IPython/Logger.py (Logger.switch_log): Created this to replace
6461 logon() and logoff(). It also fixes a nasty crash reported by
6464 logon() and logoff(). It also fixes a nasty crash reported by
6462 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6465 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6463
6466
6464 * IPython/iplib.py (complete): got auto-completion to work with
6467 * IPython/iplib.py (complete): got auto-completion to work with
6465 automagic (I had wanted this for a long time).
6468 automagic (I had wanted this for a long time).
6466
6469
6467 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6470 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6468 to @file, since file() is now a builtin and clashes with automagic
6471 to @file, since file() is now a builtin and clashes with automagic
6469 for @file.
6472 for @file.
6470
6473
6471 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6474 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6472 of this was previously in iplib, which had grown to more than 2000
6475 of this was previously in iplib, which had grown to more than 2000
6473 lines, way too long. No new functionality, but it makes managing
6476 lines, way too long. No new functionality, but it makes managing
6474 the code a bit easier.
6477 the code a bit easier.
6475
6478
6476 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6479 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6477 information to crash reports.
6480 information to crash reports.
6478
6481
6479 2002-02-12 Fernando Perez <fperez@colorado.edu>
6482 2002-02-12 Fernando Perez <fperez@colorado.edu>
6480
6483
6481 * Released 0.2.5.
6484 * Released 0.2.5.
6482
6485
6483 2002-02-11 Fernando Perez <fperez@colorado.edu>
6486 2002-02-11 Fernando Perez <fperez@colorado.edu>
6484
6487
6485 * Wrote a relatively complete Windows installer. It puts
6488 * Wrote a relatively complete Windows installer. It puts
6486 everything in place, creates Start Menu entries and fixes the
6489 everything in place, creates Start Menu entries and fixes the
6487 color issues. Nothing fancy, but it works.
6490 color issues. Nothing fancy, but it works.
6488
6491
6489 2002-02-10 Fernando Perez <fperez@colorado.edu>
6492 2002-02-10 Fernando Perez <fperez@colorado.edu>
6490
6493
6491 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6494 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6492 os.path.expanduser() call so that we can type @run ~/myfile.py and
6495 os.path.expanduser() call so that we can type @run ~/myfile.py and
6493 have thigs work as expected.
6496 have thigs work as expected.
6494
6497
6495 * IPython/genutils.py (page): fixed exception handling so things
6498 * IPython/genutils.py (page): fixed exception handling so things
6496 work both in Unix and Windows correctly. Quitting a pager triggers
6499 work both in Unix and Windows correctly. Quitting a pager triggers
6497 an IOError/broken pipe in Unix, and in windows not finding a pager
6500 an IOError/broken pipe in Unix, and in windows not finding a pager
6498 is also an IOError, so I had to actually look at the return value
6501 is also an IOError, so I had to actually look at the return value
6499 of the exception, not just the exception itself. Should be ok now.
6502 of the exception, not just the exception itself. Should be ok now.
6500
6503
6501 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6504 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6502 modified to allow case-insensitive color scheme changes.
6505 modified to allow case-insensitive color scheme changes.
6503
6506
6504 2002-02-09 Fernando Perez <fperez@colorado.edu>
6507 2002-02-09 Fernando Perez <fperez@colorado.edu>
6505
6508
6506 * IPython/genutils.py (native_line_ends): new function to leave
6509 * IPython/genutils.py (native_line_ends): new function to leave
6507 user config files with os-native line-endings.
6510 user config files with os-native line-endings.
6508
6511
6509 * README and manual updates.
6512 * README and manual updates.
6510
6513
6511 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6514 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6512 instead of StringType to catch Unicode strings.
6515 instead of StringType to catch Unicode strings.
6513
6516
6514 * IPython/genutils.py (filefind): fixed bug for paths with
6517 * IPython/genutils.py (filefind): fixed bug for paths with
6515 embedded spaces (very common in Windows).
6518 embedded spaces (very common in Windows).
6516
6519
6517 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6520 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6518 files under Windows, so that they get automatically associated
6521 files under Windows, so that they get automatically associated
6519 with a text editor. Windows makes it a pain to handle
6522 with a text editor. Windows makes it a pain to handle
6520 extension-less files.
6523 extension-less files.
6521
6524
6522 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6525 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6523 warning about readline only occur for Posix. In Windows there's no
6526 warning about readline only occur for Posix. In Windows there's no
6524 way to get readline, so why bother with the warning.
6527 way to get readline, so why bother with the warning.
6525
6528
6526 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6529 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6527 for __str__ instead of dir(self), since dir() changed in 2.2.
6530 for __str__ instead of dir(self), since dir() changed in 2.2.
6528
6531
6529 * Ported to Windows! Tested on XP, I suspect it should work fine
6532 * Ported to Windows! Tested on XP, I suspect it should work fine
6530 on NT/2000, but I don't think it will work on 98 et al. That
6533 on NT/2000, but I don't think it will work on 98 et al. That
6531 series of Windows is such a piece of junk anyway that I won't try
6534 series of Windows is such a piece of junk anyway that I won't try
6532 porting it there. The XP port was straightforward, showed a few
6535 porting it there. The XP port was straightforward, showed a few
6533 bugs here and there (fixed all), in particular some string
6536 bugs here and there (fixed all), in particular some string
6534 handling stuff which required considering Unicode strings (which
6537 handling stuff which required considering Unicode strings (which
6535 Windows uses). This is good, but hasn't been too tested :) No
6538 Windows uses). This is good, but hasn't been too tested :) No
6536 fancy installer yet, I'll put a note in the manual so people at
6539 fancy installer yet, I'll put a note in the manual so people at
6537 least make manually a shortcut.
6540 least make manually a shortcut.
6538
6541
6539 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6542 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6540 into a single one, "colors". This now controls both prompt and
6543 into a single one, "colors". This now controls both prompt and
6541 exception color schemes, and can be changed both at startup
6544 exception color schemes, and can be changed both at startup
6542 (either via command-line switches or via ipythonrc files) and at
6545 (either via command-line switches or via ipythonrc files) and at
6543 runtime, with @colors.
6546 runtime, with @colors.
6544 (Magic.magic_run): renamed @prun to @run and removed the old
6547 (Magic.magic_run): renamed @prun to @run and removed the old
6545 @run. The two were too similar to warrant keeping both.
6548 @run. The two were too similar to warrant keeping both.
6546
6549
6547 2002-02-03 Fernando Perez <fperez@colorado.edu>
6550 2002-02-03 Fernando Perez <fperez@colorado.edu>
6548
6551
6549 * IPython/iplib.py (install_first_time): Added comment on how to
6552 * IPython/iplib.py (install_first_time): Added comment on how to
6550 configure the color options for first-time users. Put a <return>
6553 configure the color options for first-time users. Put a <return>
6551 request at the end so that small-terminal users get a chance to
6554 request at the end so that small-terminal users get a chance to
6552 read the startup info.
6555 read the startup info.
6553
6556
6554 2002-01-23 Fernando Perez <fperez@colorado.edu>
6557 2002-01-23 Fernando Perez <fperez@colorado.edu>
6555
6558
6556 * IPython/iplib.py (CachedOutput.update): Changed output memory
6559 * IPython/iplib.py (CachedOutput.update): Changed output memory
6557 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6560 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6558 input history we still use _i. Did this b/c these variable are
6561 input history we still use _i. Did this b/c these variable are
6559 very commonly used in interactive work, so the less we need to
6562 very commonly used in interactive work, so the less we need to
6560 type the better off we are.
6563 type the better off we are.
6561 (Magic.magic_prun): updated @prun to better handle the namespaces
6564 (Magic.magic_prun): updated @prun to better handle the namespaces
6562 the file will run in, including a fix for __name__ not being set
6565 the file will run in, including a fix for __name__ not being set
6563 before.
6566 before.
6564
6567
6565 2002-01-20 Fernando Perez <fperez@colorado.edu>
6568 2002-01-20 Fernando Perez <fperez@colorado.edu>
6566
6569
6567 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6570 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6568 extra garbage for Python 2.2. Need to look more carefully into
6571 extra garbage for Python 2.2. Need to look more carefully into
6569 this later.
6572 this later.
6570
6573
6571 2002-01-19 Fernando Perez <fperez@colorado.edu>
6574 2002-01-19 Fernando Perez <fperez@colorado.edu>
6572
6575
6573 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6576 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6574 display SyntaxError exceptions properly formatted when they occur
6577 display SyntaxError exceptions properly formatted when they occur
6575 (they can be triggered by imported code).
6578 (they can be triggered by imported code).
6576
6579
6577 2002-01-18 Fernando Perez <fperez@colorado.edu>
6580 2002-01-18 Fernando Perez <fperez@colorado.edu>
6578
6581
6579 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6582 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6580 SyntaxError exceptions are reported nicely formatted, instead of
6583 SyntaxError exceptions are reported nicely formatted, instead of
6581 spitting out only offset information as before.
6584 spitting out only offset information as before.
6582 (Magic.magic_prun): Added the @prun function for executing
6585 (Magic.magic_prun): Added the @prun function for executing
6583 programs with command line args inside IPython.
6586 programs with command line args inside IPython.
6584
6587
6585 2002-01-16 Fernando Perez <fperez@colorado.edu>
6588 2002-01-16 Fernando Perez <fperez@colorado.edu>
6586
6589
6587 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6590 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6588 to *not* include the last item given in a range. This brings their
6591 to *not* include the last item given in a range. This brings their
6589 behavior in line with Python's slicing:
6592 behavior in line with Python's slicing:
6590 a[n1:n2] -> a[n1]...a[n2-1]
6593 a[n1:n2] -> a[n1]...a[n2-1]
6591 It may be a bit less convenient, but I prefer to stick to Python's
6594 It may be a bit less convenient, but I prefer to stick to Python's
6592 conventions *everywhere*, so users never have to wonder.
6595 conventions *everywhere*, so users never have to wonder.
6593 (Magic.magic_macro): Added @macro function to ease the creation of
6596 (Magic.magic_macro): Added @macro function to ease the creation of
6594 macros.
6597 macros.
6595
6598
6596 2002-01-05 Fernando Perez <fperez@colorado.edu>
6599 2002-01-05 Fernando Perez <fperez@colorado.edu>
6597
6600
6598 * Released 0.2.4.
6601 * Released 0.2.4.
6599
6602
6600 * IPython/iplib.py (Magic.magic_pdef):
6603 * IPython/iplib.py (Magic.magic_pdef):
6601 (InteractiveShell.safe_execfile): report magic lines and error
6604 (InteractiveShell.safe_execfile): report magic lines and error
6602 lines without line numbers so one can easily copy/paste them for
6605 lines without line numbers so one can easily copy/paste them for
6603 re-execution.
6606 re-execution.
6604
6607
6605 * Updated manual with recent changes.
6608 * Updated manual with recent changes.
6606
6609
6607 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6610 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6608 docstring printing when class? is called. Very handy for knowing
6611 docstring printing when class? is called. Very handy for knowing
6609 how to create class instances (as long as __init__ is well
6612 how to create class instances (as long as __init__ is well
6610 documented, of course :)
6613 documented, of course :)
6611 (Magic.magic_doc): print both class and constructor docstrings.
6614 (Magic.magic_doc): print both class and constructor docstrings.
6612 (Magic.magic_pdef): give constructor info if passed a class and
6615 (Magic.magic_pdef): give constructor info if passed a class and
6613 __call__ info for callable object instances.
6616 __call__ info for callable object instances.
6614
6617
6615 2002-01-04 Fernando Perez <fperez@colorado.edu>
6618 2002-01-04 Fernando Perez <fperez@colorado.edu>
6616
6619
6617 * Made deep_reload() off by default. It doesn't always work
6620 * Made deep_reload() off by default. It doesn't always work
6618 exactly as intended, so it's probably safer to have it off. It's
6621 exactly as intended, so it's probably safer to have it off. It's
6619 still available as dreload() anyway, so nothing is lost.
6622 still available as dreload() anyway, so nothing is lost.
6620
6623
6621 2002-01-02 Fernando Perez <fperez@colorado.edu>
6624 2002-01-02 Fernando Perez <fperez@colorado.edu>
6622
6625
6623 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6626 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6624 so I wanted an updated release).
6627 so I wanted an updated release).
6625
6628
6626 2001-12-27 Fernando Perez <fperez@colorado.edu>
6629 2001-12-27 Fernando Perez <fperez@colorado.edu>
6627
6630
6628 * IPython/iplib.py (InteractiveShell.interact): Added the original
6631 * IPython/iplib.py (InteractiveShell.interact): Added the original
6629 code from 'code.py' for this module in order to change the
6632 code from 'code.py' for this module in order to change the
6630 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6633 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6631 the history cache would break when the user hit Ctrl-C, and
6634 the history cache would break when the user hit Ctrl-C, and
6632 interact() offers no way to add any hooks to it.
6635 interact() offers no way to add any hooks to it.
6633
6636
6634 2001-12-23 Fernando Perez <fperez@colorado.edu>
6637 2001-12-23 Fernando Perez <fperez@colorado.edu>
6635
6638
6636 * setup.py: added check for 'MANIFEST' before trying to remove
6639 * setup.py: added check for 'MANIFEST' before trying to remove
6637 it. Thanks to Sean Reifschneider.
6640 it. Thanks to Sean Reifschneider.
6638
6641
6639 2001-12-22 Fernando Perez <fperez@colorado.edu>
6642 2001-12-22 Fernando Perez <fperez@colorado.edu>
6640
6643
6641 * Released 0.2.2.
6644 * Released 0.2.2.
6642
6645
6643 * Finished (reasonably) writing the manual. Later will add the
6646 * Finished (reasonably) writing the manual. Later will add the
6644 python-standard navigation stylesheets, but for the time being
6647 python-standard navigation stylesheets, but for the time being
6645 it's fairly complete. Distribution will include html and pdf
6648 it's fairly complete. Distribution will include html and pdf
6646 versions.
6649 versions.
6647
6650
6648 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6651 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6649 (MayaVi author).
6652 (MayaVi author).
6650
6653
6651 2001-12-21 Fernando Perez <fperez@colorado.edu>
6654 2001-12-21 Fernando Perez <fperez@colorado.edu>
6652
6655
6653 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6656 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6654 good public release, I think (with the manual and the distutils
6657 good public release, I think (with the manual and the distutils
6655 installer). The manual can use some work, but that can go
6658 installer). The manual can use some work, but that can go
6656 slowly. Otherwise I think it's quite nice for end users. Next
6659 slowly. Otherwise I think it's quite nice for end users. Next
6657 summer, rewrite the guts of it...
6660 summer, rewrite the guts of it...
6658
6661
6659 * Changed format of ipythonrc files to use whitespace as the
6662 * Changed format of ipythonrc files to use whitespace as the
6660 separator instead of an explicit '='. Cleaner.
6663 separator instead of an explicit '='. Cleaner.
6661
6664
6662 2001-12-20 Fernando Perez <fperez@colorado.edu>
6665 2001-12-20 Fernando Perez <fperez@colorado.edu>
6663
6666
6664 * Started a manual in LyX. For now it's just a quick merge of the
6667 * Started a manual in LyX. For now it's just a quick merge of the
6665 various internal docstrings and READMEs. Later it may grow into a
6668 various internal docstrings and READMEs. Later it may grow into a
6666 nice, full-blown manual.
6669 nice, full-blown manual.
6667
6670
6668 * Set up a distutils based installer. Installation should now be
6671 * Set up a distutils based installer. Installation should now be
6669 trivially simple for end-users.
6672 trivially simple for end-users.
6670
6673
6671 2001-12-11 Fernando Perez <fperez@colorado.edu>
6674 2001-12-11 Fernando Perez <fperez@colorado.edu>
6672
6675
6673 * Released 0.2.0. First public release, announced it at
6676 * Released 0.2.0. First public release, announced it at
6674 comp.lang.python. From now on, just bugfixes...
6677 comp.lang.python. From now on, just bugfixes...
6675
6678
6676 * Went through all the files, set copyright/license notices and
6679 * Went through all the files, set copyright/license notices and
6677 cleaned up things. Ready for release.
6680 cleaned up things. Ready for release.
6678
6681
6679 2001-12-10 Fernando Perez <fperez@colorado.edu>
6682 2001-12-10 Fernando Perez <fperez@colorado.edu>
6680
6683
6681 * Changed the first-time installer not to use tarfiles. It's more
6684 * Changed the first-time installer not to use tarfiles. It's more
6682 robust now and less unix-dependent. Also makes it easier for
6685 robust now and less unix-dependent. Also makes it easier for
6683 people to later upgrade versions.
6686 people to later upgrade versions.
6684
6687
6685 * Changed @exit to @abort to reflect the fact that it's pretty
6688 * Changed @exit to @abort to reflect the fact that it's pretty
6686 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6689 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6687 becomes significant only when IPyhton is embedded: in that case,
6690 becomes significant only when IPyhton is embedded: in that case,
6688 C-D closes IPython only, but @abort kills the enclosing program
6691 C-D closes IPython only, but @abort kills the enclosing program
6689 too (unless it had called IPython inside a try catching
6692 too (unless it had called IPython inside a try catching
6690 SystemExit).
6693 SystemExit).
6691
6694
6692 * Created Shell module which exposes the actuall IPython Shell
6695 * Created Shell module which exposes the actuall IPython Shell
6693 classes, currently the normal and the embeddable one. This at
6696 classes, currently the normal and the embeddable one. This at
6694 least offers a stable interface we won't need to change when
6697 least offers a stable interface we won't need to change when
6695 (later) the internals are rewritten. That rewrite will be confined
6698 (later) the internals are rewritten. That rewrite will be confined
6696 to iplib and ipmaker, but the Shell interface should remain as is.
6699 to iplib and ipmaker, but the Shell interface should remain as is.
6697
6700
6698 * Added embed module which offers an embeddable IPShell object,
6701 * Added embed module which offers an embeddable IPShell object,
6699 useful to fire up IPython *inside* a running program. Great for
6702 useful to fire up IPython *inside* a running program. Great for
6700 debugging or dynamical data analysis.
6703 debugging or dynamical data analysis.
6701
6704
6702 2001-12-08 Fernando Perez <fperez@colorado.edu>
6705 2001-12-08 Fernando Perez <fperez@colorado.edu>
6703
6706
6704 * Fixed small bug preventing seeing info from methods of defined
6707 * Fixed small bug preventing seeing info from methods of defined
6705 objects (incorrect namespace in _ofind()).
6708 objects (incorrect namespace in _ofind()).
6706
6709
6707 * Documentation cleanup. Moved the main usage docstrings to a
6710 * Documentation cleanup. Moved the main usage docstrings to a
6708 separate file, usage.py (cleaner to maintain, and hopefully in the
6711 separate file, usage.py (cleaner to maintain, and hopefully in the
6709 future some perlpod-like way of producing interactive, man and
6712 future some perlpod-like way of producing interactive, man and
6710 html docs out of it will be found).
6713 html docs out of it will be found).
6711
6714
6712 * Added @profile to see your profile at any time.
6715 * Added @profile to see your profile at any time.
6713
6716
6714 * Added @p as an alias for 'print'. It's especially convenient if
6717 * Added @p as an alias for 'print'. It's especially convenient if
6715 using automagic ('p x' prints x).
6718 using automagic ('p x' prints x).
6716
6719
6717 * Small cleanups and fixes after a pychecker run.
6720 * Small cleanups and fixes after a pychecker run.
6718
6721
6719 * Changed the @cd command to handle @cd - and @cd -<n> for
6722 * Changed the @cd command to handle @cd - and @cd -<n> for
6720 visiting any directory in _dh.
6723 visiting any directory in _dh.
6721
6724
6722 * Introduced _dh, a history of visited directories. @dhist prints
6725 * Introduced _dh, a history of visited directories. @dhist prints
6723 it out with numbers.
6726 it out with numbers.
6724
6727
6725 2001-12-07 Fernando Perez <fperez@colorado.edu>
6728 2001-12-07 Fernando Perez <fperez@colorado.edu>
6726
6729
6727 * Released 0.1.22
6730 * Released 0.1.22
6728
6731
6729 * Made initialization a bit more robust against invalid color
6732 * Made initialization a bit more robust against invalid color
6730 options in user input (exit, not traceback-crash).
6733 options in user input (exit, not traceback-crash).
6731
6734
6732 * Changed the bug crash reporter to write the report only in the
6735 * Changed the bug crash reporter to write the report only in the
6733 user's .ipython directory. That way IPython won't litter people's
6736 user's .ipython directory. That way IPython won't litter people's
6734 hard disks with crash files all over the place. Also print on
6737 hard disks with crash files all over the place. Also print on
6735 screen the necessary mail command.
6738 screen the necessary mail command.
6736
6739
6737 * With the new ultraTB, implemented LightBG color scheme for light
6740 * With the new ultraTB, implemented LightBG color scheme for light
6738 background terminals. A lot of people like white backgrounds, so I
6741 background terminals. A lot of people like white backgrounds, so I
6739 guess we should at least give them something readable.
6742 guess we should at least give them something readable.
6740
6743
6741 2001-12-06 Fernando Perez <fperez@colorado.edu>
6744 2001-12-06 Fernando Perez <fperez@colorado.edu>
6742
6745
6743 * Modified the structure of ultraTB. Now there's a proper class
6746 * Modified the structure of ultraTB. Now there's a proper class
6744 for tables of color schemes which allow adding schemes easily and
6747 for tables of color schemes which allow adding schemes easily and
6745 switching the active scheme without creating a new instance every
6748 switching the active scheme without creating a new instance every
6746 time (which was ridiculous). The syntax for creating new schemes
6749 time (which was ridiculous). The syntax for creating new schemes
6747 is also cleaner. I think ultraTB is finally done, with a clean
6750 is also cleaner. I think ultraTB is finally done, with a clean
6748 class structure. Names are also much cleaner (now there's proper
6751 class structure. Names are also much cleaner (now there's proper
6749 color tables, no need for every variable to also have 'color' in
6752 color tables, no need for every variable to also have 'color' in
6750 its name).
6753 its name).
6751
6754
6752 * Broke down genutils into separate files. Now genutils only
6755 * Broke down genutils into separate files. Now genutils only
6753 contains utility functions, and classes have been moved to their
6756 contains utility functions, and classes have been moved to their
6754 own files (they had enough independent functionality to warrant
6757 own files (they had enough independent functionality to warrant
6755 it): ConfigLoader, OutputTrap, Struct.
6758 it): ConfigLoader, OutputTrap, Struct.
6756
6759
6757 2001-12-05 Fernando Perez <fperez@colorado.edu>
6760 2001-12-05 Fernando Perez <fperez@colorado.edu>
6758
6761
6759 * IPython turns 21! Released version 0.1.21, as a candidate for
6762 * IPython turns 21! Released version 0.1.21, as a candidate for
6760 public consumption. If all goes well, release in a few days.
6763 public consumption. If all goes well, release in a few days.
6761
6764
6762 * Fixed path bug (files in Extensions/ directory wouldn't be found
6765 * Fixed path bug (files in Extensions/ directory wouldn't be found
6763 unless IPython/ was explicitly in sys.path).
6766 unless IPython/ was explicitly in sys.path).
6764
6767
6765 * Extended the FlexCompleter class as MagicCompleter to allow
6768 * Extended the FlexCompleter class as MagicCompleter to allow
6766 completion of @-starting lines.
6769 completion of @-starting lines.
6767
6770
6768 * Created __release__.py file as a central repository for release
6771 * Created __release__.py file as a central repository for release
6769 info that other files can read from.
6772 info that other files can read from.
6770
6773
6771 * Fixed small bug in logging: when logging was turned on in
6774 * Fixed small bug in logging: when logging was turned on in
6772 mid-session, old lines with special meanings (!@?) were being
6775 mid-session, old lines with special meanings (!@?) were being
6773 logged without the prepended comment, which is necessary since
6776 logged without the prepended comment, which is necessary since
6774 they are not truly valid python syntax. This should make session
6777 they are not truly valid python syntax. This should make session
6775 restores produce less errors.
6778 restores produce less errors.
6776
6779
6777 * The namespace cleanup forced me to make a FlexCompleter class
6780 * The namespace cleanup forced me to make a FlexCompleter class
6778 which is nothing but a ripoff of rlcompleter, but with selectable
6781 which is nothing but a ripoff of rlcompleter, but with selectable
6779 namespace (rlcompleter only works in __main__.__dict__). I'll try
6782 namespace (rlcompleter only works in __main__.__dict__). I'll try
6780 to submit a note to the authors to see if this change can be
6783 to submit a note to the authors to see if this change can be
6781 incorporated in future rlcompleter releases (Dec.6: done)
6784 incorporated in future rlcompleter releases (Dec.6: done)
6782
6785
6783 * More fixes to namespace handling. It was a mess! Now all
6786 * More fixes to namespace handling. It was a mess! Now all
6784 explicit references to __main__.__dict__ are gone (except when
6787 explicit references to __main__.__dict__ are gone (except when
6785 really needed) and everything is handled through the namespace
6788 really needed) and everything is handled through the namespace
6786 dicts in the IPython instance. We seem to be getting somewhere
6789 dicts in the IPython instance. We seem to be getting somewhere
6787 with this, finally...
6790 with this, finally...
6788
6791
6789 * Small documentation updates.
6792 * Small documentation updates.
6790
6793
6791 * Created the Extensions directory under IPython (with an
6794 * Created the Extensions directory under IPython (with an
6792 __init__.py). Put the PhysicalQ stuff there. This directory should
6795 __init__.py). Put the PhysicalQ stuff there. This directory should
6793 be used for all special-purpose extensions.
6796 be used for all special-purpose extensions.
6794
6797
6795 * File renaming:
6798 * File renaming:
6796 ipythonlib --> ipmaker
6799 ipythonlib --> ipmaker
6797 ipplib --> iplib
6800 ipplib --> iplib
6798 This makes a bit more sense in terms of what these files actually do.
6801 This makes a bit more sense in terms of what these files actually do.
6799
6802
6800 * Moved all the classes and functions in ipythonlib to ipplib, so
6803 * Moved all the classes and functions in ipythonlib to ipplib, so
6801 now ipythonlib only has make_IPython(). This will ease up its
6804 now ipythonlib only has make_IPython(). This will ease up its
6802 splitting in smaller functional chunks later.
6805 splitting in smaller functional chunks later.
6803
6806
6804 * Cleaned up (done, I think) output of @whos. Better column
6807 * Cleaned up (done, I think) output of @whos. Better column
6805 formatting, and now shows str(var) for as much as it can, which is
6808 formatting, and now shows str(var) for as much as it can, which is
6806 typically what one gets with a 'print var'.
6809 typically what one gets with a 'print var'.
6807
6810
6808 2001-12-04 Fernando Perez <fperez@colorado.edu>
6811 2001-12-04 Fernando Perez <fperez@colorado.edu>
6809
6812
6810 * Fixed namespace problems. Now builtin/IPyhton/user names get
6813 * Fixed namespace problems. Now builtin/IPyhton/user names get
6811 properly reported in their namespace. Internal namespace handling
6814 properly reported in their namespace. Internal namespace handling
6812 is finally getting decent (not perfect yet, but much better than
6815 is finally getting decent (not perfect yet, but much better than
6813 the ad-hoc mess we had).
6816 the ad-hoc mess we had).
6814
6817
6815 * Removed -exit option. If people just want to run a python
6818 * Removed -exit option. If people just want to run a python
6816 script, that's what the normal interpreter is for. Less
6819 script, that's what the normal interpreter is for. Less
6817 unnecessary options, less chances for bugs.
6820 unnecessary options, less chances for bugs.
6818
6821
6819 * Added a crash handler which generates a complete post-mortem if
6822 * Added a crash handler which generates a complete post-mortem if
6820 IPython crashes. This will help a lot in tracking bugs down the
6823 IPython crashes. This will help a lot in tracking bugs down the
6821 road.
6824 road.
6822
6825
6823 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6826 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6824 which were boud to functions being reassigned would bypass the
6827 which were boud to functions being reassigned would bypass the
6825 logger, breaking the sync of _il with the prompt counter. This
6828 logger, breaking the sync of _il with the prompt counter. This
6826 would then crash IPython later when a new line was logged.
6829 would then crash IPython later when a new line was logged.
6827
6830
6828 2001-12-02 Fernando Perez <fperez@colorado.edu>
6831 2001-12-02 Fernando Perez <fperez@colorado.edu>
6829
6832
6830 * Made IPython a package. This means people don't have to clutter
6833 * Made IPython a package. This means people don't have to clutter
6831 their sys.path with yet another directory. Changed the INSTALL
6834 their sys.path with yet another directory. Changed the INSTALL
6832 file accordingly.
6835 file accordingly.
6833
6836
6834 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6837 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6835 sorts its output (so @who shows it sorted) and @whos formats the
6838 sorts its output (so @who shows it sorted) and @whos formats the
6836 table according to the width of the first column. Nicer, easier to
6839 table according to the width of the first column. Nicer, easier to
6837 read. Todo: write a generic table_format() which takes a list of
6840 read. Todo: write a generic table_format() which takes a list of
6838 lists and prints it nicely formatted, with optional row/column
6841 lists and prints it nicely formatted, with optional row/column
6839 separators and proper padding and justification.
6842 separators and proper padding and justification.
6840
6843
6841 * Released 0.1.20
6844 * Released 0.1.20
6842
6845
6843 * Fixed bug in @log which would reverse the inputcache list (a
6846 * Fixed bug in @log which would reverse the inputcache list (a
6844 copy operation was missing).
6847 copy operation was missing).
6845
6848
6846 * Code cleanup. @config was changed to use page(). Better, since
6849 * Code cleanup. @config was changed to use page(). Better, since
6847 its output is always quite long.
6850 its output is always quite long.
6848
6851
6849 * Itpl is back as a dependency. I was having too many problems
6852 * Itpl is back as a dependency. I was having too many problems
6850 getting the parametric aliases to work reliably, and it's just
6853 getting the parametric aliases to work reliably, and it's just
6851 easier to code weird string operations with it than playing %()s
6854 easier to code weird string operations with it than playing %()s
6852 games. It's only ~6k, so I don't think it's too big a deal.
6855 games. It's only ~6k, so I don't think it's too big a deal.
6853
6856
6854 * Found (and fixed) a very nasty bug with history. !lines weren't
6857 * Found (and fixed) a very nasty bug with history. !lines weren't
6855 getting cached, and the out of sync caches would crash
6858 getting cached, and the out of sync caches would crash
6856 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6859 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6857 division of labor a bit better. Bug fixed, cleaner structure.
6860 division of labor a bit better. Bug fixed, cleaner structure.
6858
6861
6859 2001-12-01 Fernando Perez <fperez@colorado.edu>
6862 2001-12-01 Fernando Perez <fperez@colorado.edu>
6860
6863
6861 * Released 0.1.19
6864 * Released 0.1.19
6862
6865
6863 * Added option -n to @hist to prevent line number printing. Much
6866 * Added option -n to @hist to prevent line number printing. Much
6864 easier to copy/paste code this way.
6867 easier to copy/paste code this way.
6865
6868
6866 * Created global _il to hold the input list. Allows easy
6869 * Created global _il to hold the input list. Allows easy
6867 re-execution of blocks of code by slicing it (inspired by Janko's
6870 re-execution of blocks of code by slicing it (inspired by Janko's
6868 comment on 'macros').
6871 comment on 'macros').
6869
6872
6870 * Small fixes and doc updates.
6873 * Small fixes and doc updates.
6871
6874
6872 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6875 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6873 much too fragile with automagic. Handles properly multi-line
6876 much too fragile with automagic. Handles properly multi-line
6874 statements and takes parameters.
6877 statements and takes parameters.
6875
6878
6876 2001-11-30 Fernando Perez <fperez@colorado.edu>
6879 2001-11-30 Fernando Perez <fperez@colorado.edu>
6877
6880
6878 * Version 0.1.18 released.
6881 * Version 0.1.18 released.
6879
6882
6880 * Fixed nasty namespace bug in initial module imports.
6883 * Fixed nasty namespace bug in initial module imports.
6881
6884
6882 * Added copyright/license notes to all code files (except
6885 * Added copyright/license notes to all code files (except
6883 DPyGetOpt). For the time being, LGPL. That could change.
6886 DPyGetOpt). For the time being, LGPL. That could change.
6884
6887
6885 * Rewrote a much nicer README, updated INSTALL, cleaned up
6888 * Rewrote a much nicer README, updated INSTALL, cleaned up
6886 ipythonrc-* samples.
6889 ipythonrc-* samples.
6887
6890
6888 * Overall code/documentation cleanup. Basically ready for
6891 * Overall code/documentation cleanup. Basically ready for
6889 release. Only remaining thing: licence decision (LGPL?).
6892 release. Only remaining thing: licence decision (LGPL?).
6890
6893
6891 * Converted load_config to a class, ConfigLoader. Now recursion
6894 * Converted load_config to a class, ConfigLoader. Now recursion
6892 control is better organized. Doesn't include the same file twice.
6895 control is better organized. Doesn't include the same file twice.
6893
6896
6894 2001-11-29 Fernando Perez <fperez@colorado.edu>
6897 2001-11-29 Fernando Perez <fperez@colorado.edu>
6895
6898
6896 * Got input history working. Changed output history variables from
6899 * Got input history working. Changed output history variables from
6897 _p to _o so that _i is for input and _o for output. Just cleaner
6900 _p to _o so that _i is for input and _o for output. Just cleaner
6898 convention.
6901 convention.
6899
6902
6900 * Implemented parametric aliases. This pretty much allows the
6903 * Implemented parametric aliases. This pretty much allows the
6901 alias system to offer full-blown shell convenience, I think.
6904 alias system to offer full-blown shell convenience, I think.
6902
6905
6903 * Version 0.1.17 released, 0.1.18 opened.
6906 * Version 0.1.17 released, 0.1.18 opened.
6904
6907
6905 * dot_ipython/ipythonrc (alias): added documentation.
6908 * dot_ipython/ipythonrc (alias): added documentation.
6906 (xcolor): Fixed small bug (xcolors -> xcolor)
6909 (xcolor): Fixed small bug (xcolors -> xcolor)
6907
6910
6908 * Changed the alias system. Now alias is a magic command to define
6911 * Changed the alias system. Now alias is a magic command to define
6909 aliases just like the shell. Rationale: the builtin magics should
6912 aliases just like the shell. Rationale: the builtin magics should
6910 be there for things deeply connected to IPython's
6913 be there for things deeply connected to IPython's
6911 architecture. And this is a much lighter system for what I think
6914 architecture. And this is a much lighter system for what I think
6912 is the really important feature: allowing users to define quickly
6915 is the really important feature: allowing users to define quickly
6913 magics that will do shell things for them, so they can customize
6916 magics that will do shell things for them, so they can customize
6914 IPython easily to match their work habits. If someone is really
6917 IPython easily to match their work habits. If someone is really
6915 desperate to have another name for a builtin alias, they can
6918 desperate to have another name for a builtin alias, they can
6916 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6919 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6917 works.
6920 works.
6918
6921
6919 2001-11-28 Fernando Perez <fperez@colorado.edu>
6922 2001-11-28 Fernando Perez <fperez@colorado.edu>
6920
6923
6921 * Changed @file so that it opens the source file at the proper
6924 * Changed @file so that it opens the source file at the proper
6922 line. Since it uses less, if your EDITOR environment is
6925 line. Since it uses less, if your EDITOR environment is
6923 configured, typing v will immediately open your editor of choice
6926 configured, typing v will immediately open your editor of choice
6924 right at the line where the object is defined. Not as quick as
6927 right at the line where the object is defined. Not as quick as
6925 having a direct @edit command, but for all intents and purposes it
6928 having a direct @edit command, but for all intents and purposes it
6926 works. And I don't have to worry about writing @edit to deal with
6929 works. And I don't have to worry about writing @edit to deal with
6927 all the editors, less does that.
6930 all the editors, less does that.
6928
6931
6929 * Version 0.1.16 released, 0.1.17 opened.
6932 * Version 0.1.16 released, 0.1.17 opened.
6930
6933
6931 * Fixed some nasty bugs in the page/page_dumb combo that could
6934 * Fixed some nasty bugs in the page/page_dumb combo that could
6932 crash IPython.
6935 crash IPython.
6933
6936
6934 2001-11-27 Fernando Perez <fperez@colorado.edu>
6937 2001-11-27 Fernando Perez <fperez@colorado.edu>
6935
6938
6936 * Version 0.1.15 released, 0.1.16 opened.
6939 * Version 0.1.15 released, 0.1.16 opened.
6937
6940
6938 * Finally got ? and ?? to work for undefined things: now it's
6941 * Finally got ? and ?? to work for undefined things: now it's
6939 possible to type {}.get? and get information about the get method
6942 possible to type {}.get? and get information about the get method
6940 of dicts, or os.path? even if only os is defined (so technically
6943 of dicts, or os.path? even if only os is defined (so technically
6941 os.path isn't). Works at any level. For example, after import os,
6944 os.path isn't). Works at any level. For example, after import os,
6942 os?, os.path?, os.path.abspath? all work. This is great, took some
6945 os?, os.path?, os.path.abspath? all work. This is great, took some
6943 work in _ofind.
6946 work in _ofind.
6944
6947
6945 * Fixed more bugs with logging. The sanest way to do it was to add
6948 * Fixed more bugs with logging. The sanest way to do it was to add
6946 to @log a 'mode' parameter. Killed two in one shot (this mode
6949 to @log a 'mode' parameter. Killed two in one shot (this mode
6947 option was a request of Janko's). I think it's finally clean
6950 option was a request of Janko's). I think it's finally clean
6948 (famous last words).
6951 (famous last words).
6949
6952
6950 * Added a page_dumb() pager which does a decent job of paging on
6953 * Added a page_dumb() pager which does a decent job of paging on
6951 screen, if better things (like less) aren't available. One less
6954 screen, if better things (like less) aren't available. One less
6952 unix dependency (someday maybe somebody will port this to
6955 unix dependency (someday maybe somebody will port this to
6953 windows).
6956 windows).
6954
6957
6955 * Fixed problem in magic_log: would lock of logging out if log
6958 * Fixed problem in magic_log: would lock of logging out if log
6956 creation failed (because it would still think it had succeeded).
6959 creation failed (because it would still think it had succeeded).
6957
6960
6958 * Improved the page() function using curses to auto-detect screen
6961 * Improved the page() function using curses to auto-detect screen
6959 size. Now it can make a much better decision on whether to print
6962 size. Now it can make a much better decision on whether to print
6960 or page a string. Option screen_length was modified: a value 0
6963 or page a string. Option screen_length was modified: a value 0
6961 means auto-detect, and that's the default now.
6964 means auto-detect, and that's the default now.
6962
6965
6963 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6966 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6964 go out. I'll test it for a few days, then talk to Janko about
6967 go out. I'll test it for a few days, then talk to Janko about
6965 licences and announce it.
6968 licences and announce it.
6966
6969
6967 * Fixed the length of the auto-generated ---> prompt which appears
6970 * Fixed the length of the auto-generated ---> prompt which appears
6968 for auto-parens and auto-quotes. Getting this right isn't trivial,
6971 for auto-parens and auto-quotes. Getting this right isn't trivial,
6969 with all the color escapes, different prompt types and optional
6972 with all the color escapes, different prompt types and optional
6970 separators. But it seems to be working in all the combinations.
6973 separators. But it seems to be working in all the combinations.
6971
6974
6972 2001-11-26 Fernando Perez <fperez@colorado.edu>
6975 2001-11-26 Fernando Perez <fperez@colorado.edu>
6973
6976
6974 * Wrote a regexp filter to get option types from the option names
6977 * Wrote a regexp filter to get option types from the option names
6975 string. This eliminates the need to manually keep two duplicate
6978 string. This eliminates the need to manually keep two duplicate
6976 lists.
6979 lists.
6977
6980
6978 * Removed the unneeded check_option_names. Now options are handled
6981 * Removed the unneeded check_option_names. Now options are handled
6979 in a much saner manner and it's easy to visually check that things
6982 in a much saner manner and it's easy to visually check that things
6980 are ok.
6983 are ok.
6981
6984
6982 * Updated version numbers on all files I modified to carry a
6985 * Updated version numbers on all files I modified to carry a
6983 notice so Janko and Nathan have clear version markers.
6986 notice so Janko and Nathan have clear version markers.
6984
6987
6985 * Updated docstring for ultraTB with my changes. I should send
6988 * Updated docstring for ultraTB with my changes. I should send
6986 this to Nathan.
6989 this to Nathan.
6987
6990
6988 * Lots of small fixes. Ran everything through pychecker again.
6991 * Lots of small fixes. Ran everything through pychecker again.
6989
6992
6990 * Made loading of deep_reload an cmd line option. If it's not too
6993 * Made loading of deep_reload an cmd line option. If it's not too
6991 kosher, now people can just disable it. With -nodeep_reload it's
6994 kosher, now people can just disable it. With -nodeep_reload it's
6992 still available as dreload(), it just won't overwrite reload().
6995 still available as dreload(), it just won't overwrite reload().
6993
6996
6994 * Moved many options to the no| form (-opt and -noopt
6997 * Moved many options to the no| form (-opt and -noopt
6995 accepted). Cleaner.
6998 accepted). Cleaner.
6996
6999
6997 * Changed magic_log so that if called with no parameters, it uses
7000 * Changed magic_log so that if called with no parameters, it uses
6998 'rotate' mode. That way auto-generated logs aren't automatically
7001 'rotate' mode. That way auto-generated logs aren't automatically
6999 over-written. For normal logs, now a backup is made if it exists
7002 over-written. For normal logs, now a backup is made if it exists
7000 (only 1 level of backups). A new 'backup' mode was added to the
7003 (only 1 level of backups). A new 'backup' mode was added to the
7001 Logger class to support this. This was a request by Janko.
7004 Logger class to support this. This was a request by Janko.
7002
7005
7003 * Added @logoff/@logon to stop/restart an active log.
7006 * Added @logoff/@logon to stop/restart an active log.
7004
7007
7005 * Fixed a lot of bugs in log saving/replay. It was pretty
7008 * Fixed a lot of bugs in log saving/replay. It was pretty
7006 broken. Now special lines (!@,/) appear properly in the command
7009 broken. Now special lines (!@,/) appear properly in the command
7007 history after a log replay.
7010 history after a log replay.
7008
7011
7009 * Tried and failed to implement full session saving via pickle. My
7012 * Tried and failed to implement full session saving via pickle. My
7010 idea was to pickle __main__.__dict__, but modules can't be
7013 idea was to pickle __main__.__dict__, but modules can't be
7011 pickled. This would be a better alternative to replaying logs, but
7014 pickled. This would be a better alternative to replaying logs, but
7012 seems quite tricky to get to work. Changed -session to be called
7015 seems quite tricky to get to work. Changed -session to be called
7013 -logplay, which more accurately reflects what it does. And if we
7016 -logplay, which more accurately reflects what it does. And if we
7014 ever get real session saving working, -session is now available.
7017 ever get real session saving working, -session is now available.
7015
7018
7016 * Implemented color schemes for prompts also. As for tracebacks,
7019 * Implemented color schemes for prompts also. As for tracebacks,
7017 currently only NoColor and Linux are supported. But now the
7020 currently only NoColor and Linux are supported. But now the
7018 infrastructure is in place, based on a generic ColorScheme
7021 infrastructure is in place, based on a generic ColorScheme
7019 class. So writing and activating new schemes both for the prompts
7022 class. So writing and activating new schemes both for the prompts
7020 and the tracebacks should be straightforward.
7023 and the tracebacks should be straightforward.
7021
7024
7022 * Version 0.1.13 released, 0.1.14 opened.
7025 * Version 0.1.13 released, 0.1.14 opened.
7023
7026
7024 * Changed handling of options for output cache. Now counter is
7027 * Changed handling of options for output cache. Now counter is
7025 hardwired starting at 1 and one specifies the maximum number of
7028 hardwired starting at 1 and one specifies the maximum number of
7026 entries *in the outcache* (not the max prompt counter). This is
7029 entries *in the outcache* (not the max prompt counter). This is
7027 much better, since many statements won't increase the cache
7030 much better, since many statements won't increase the cache
7028 count. It also eliminated some confusing options, now there's only
7031 count. It also eliminated some confusing options, now there's only
7029 one: cache_size.
7032 one: cache_size.
7030
7033
7031 * Added 'alias' magic function and magic_alias option in the
7034 * Added 'alias' magic function and magic_alias option in the
7032 ipythonrc file. Now the user can easily define whatever names he
7035 ipythonrc file. Now the user can easily define whatever names he
7033 wants for the magic functions without having to play weird
7036 wants for the magic functions without having to play weird
7034 namespace games. This gives IPython a real shell-like feel.
7037 namespace games. This gives IPython a real shell-like feel.
7035
7038
7036 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7039 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7037 @ or not).
7040 @ or not).
7038
7041
7039 This was one of the last remaining 'visible' bugs (that I know
7042 This was one of the last remaining 'visible' bugs (that I know
7040 of). I think if I can clean up the session loading so it works
7043 of). I think if I can clean up the session loading so it works
7041 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7044 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7042 about licensing).
7045 about licensing).
7043
7046
7044 2001-11-25 Fernando Perez <fperez@colorado.edu>
7047 2001-11-25 Fernando Perez <fperez@colorado.edu>
7045
7048
7046 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7049 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7047 there's a cleaner distinction between what ? and ?? show.
7050 there's a cleaner distinction between what ? and ?? show.
7048
7051
7049 * Added screen_length option. Now the user can define his own
7052 * Added screen_length option. Now the user can define his own
7050 screen size for page() operations.
7053 screen size for page() operations.
7051
7054
7052 * Implemented magic shell-like functions with automatic code
7055 * Implemented magic shell-like functions with automatic code
7053 generation. Now adding another function is just a matter of adding
7056 generation. Now adding another function is just a matter of adding
7054 an entry to a dict, and the function is dynamically generated at
7057 an entry to a dict, and the function is dynamically generated at
7055 run-time. Python has some really cool features!
7058 run-time. Python has some really cool features!
7056
7059
7057 * Renamed many options to cleanup conventions a little. Now all
7060 * Renamed many options to cleanup conventions a little. Now all
7058 are lowercase, and only underscores where needed. Also in the code
7061 are lowercase, and only underscores where needed. Also in the code
7059 option name tables are clearer.
7062 option name tables are clearer.
7060
7063
7061 * Changed prompts a little. Now input is 'In [n]:' instead of
7064 * Changed prompts a little. Now input is 'In [n]:' instead of
7062 'In[n]:='. This allows it the numbers to be aligned with the
7065 'In[n]:='. This allows it the numbers to be aligned with the
7063 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7066 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7064 Python (it was a Mathematica thing). The '...' continuation prompt
7067 Python (it was a Mathematica thing). The '...' continuation prompt
7065 was also changed a little to align better.
7068 was also changed a little to align better.
7066
7069
7067 * Fixed bug when flushing output cache. Not all _p<n> variables
7070 * Fixed bug when flushing output cache. Not all _p<n> variables
7068 exist, so their deletion needs to be wrapped in a try:
7071 exist, so their deletion needs to be wrapped in a try:
7069
7072
7070 * Figured out how to properly use inspect.formatargspec() (it
7073 * Figured out how to properly use inspect.formatargspec() (it
7071 requires the args preceded by *). So I removed all the code from
7074 requires the args preceded by *). So I removed all the code from
7072 _get_pdef in Magic, which was just replicating that.
7075 _get_pdef in Magic, which was just replicating that.
7073
7076
7074 * Added test to prefilter to allow redefining magic function names
7077 * Added test to prefilter to allow redefining magic function names
7075 as variables. This is ok, since the @ form is always available,
7078 as variables. This is ok, since the @ form is always available,
7076 but whe should allow the user to define a variable called 'ls' if
7079 but whe should allow the user to define a variable called 'ls' if
7077 he needs it.
7080 he needs it.
7078
7081
7079 * Moved the ToDo information from README into a separate ToDo.
7082 * Moved the ToDo information from README into a separate ToDo.
7080
7083
7081 * General code cleanup and small bugfixes. I think it's close to a
7084 * General code cleanup and small bugfixes. I think it's close to a
7082 state where it can be released, obviously with a big 'beta'
7085 state where it can be released, obviously with a big 'beta'
7083 warning on it.
7086 warning on it.
7084
7087
7085 * Got the magic function split to work. Now all magics are defined
7088 * Got the magic function split to work. Now all magics are defined
7086 in a separate class. It just organizes things a bit, and now
7089 in a separate class. It just organizes things a bit, and now
7087 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7090 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7088 was too long).
7091 was too long).
7089
7092
7090 * Changed @clear to @reset to avoid potential confusions with
7093 * Changed @clear to @reset to avoid potential confusions with
7091 the shell command clear. Also renamed @cl to @clear, which does
7094 the shell command clear. Also renamed @cl to @clear, which does
7092 exactly what people expect it to from their shell experience.
7095 exactly what people expect it to from their shell experience.
7093
7096
7094 Added a check to the @reset command (since it's so
7097 Added a check to the @reset command (since it's so
7095 destructive, it's probably a good idea to ask for confirmation).
7098 destructive, it's probably a good idea to ask for confirmation).
7096 But now reset only works for full namespace resetting. Since the
7099 But now reset only works for full namespace resetting. Since the
7097 del keyword is already there for deleting a few specific
7100 del keyword is already there for deleting a few specific
7098 variables, I don't see the point of having a redundant magic
7101 variables, I don't see the point of having a redundant magic
7099 function for the same task.
7102 function for the same task.
7100
7103
7101 2001-11-24 Fernando Perez <fperez@colorado.edu>
7104 2001-11-24 Fernando Perez <fperez@colorado.edu>
7102
7105
7103 * Updated the builtin docs (esp. the ? ones).
7106 * Updated the builtin docs (esp. the ? ones).
7104
7107
7105 * Ran all the code through pychecker. Not terribly impressed with
7108 * Ran all the code through pychecker. Not terribly impressed with
7106 it: lots of spurious warnings and didn't really find anything of
7109 it: lots of spurious warnings and didn't really find anything of
7107 substance (just a few modules being imported and not used).
7110 substance (just a few modules being imported and not used).
7108
7111
7109 * Implemented the new ultraTB functionality into IPython. New
7112 * Implemented the new ultraTB functionality into IPython. New
7110 option: xcolors. This chooses color scheme. xmode now only selects
7113 option: xcolors. This chooses color scheme. xmode now only selects
7111 between Plain and Verbose. Better orthogonality.
7114 between Plain and Verbose. Better orthogonality.
7112
7115
7113 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7116 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7114 mode and color scheme for the exception handlers. Now it's
7117 mode and color scheme for the exception handlers. Now it's
7115 possible to have the verbose traceback with no coloring.
7118 possible to have the verbose traceback with no coloring.
7116
7119
7117 2001-11-23 Fernando Perez <fperez@colorado.edu>
7120 2001-11-23 Fernando Perez <fperez@colorado.edu>
7118
7121
7119 * Version 0.1.12 released, 0.1.13 opened.
7122 * Version 0.1.12 released, 0.1.13 opened.
7120
7123
7121 * Removed option to set auto-quote and auto-paren escapes by
7124 * Removed option to set auto-quote and auto-paren escapes by
7122 user. The chances of breaking valid syntax are just too high. If
7125 user. The chances of breaking valid syntax are just too high. If
7123 someone *really* wants, they can always dig into the code.
7126 someone *really* wants, they can always dig into the code.
7124
7127
7125 * Made prompt separators configurable.
7128 * Made prompt separators configurable.
7126
7129
7127 2001-11-22 Fernando Perez <fperez@colorado.edu>
7130 2001-11-22 Fernando Perez <fperez@colorado.edu>
7128
7131
7129 * Small bugfixes in many places.
7132 * Small bugfixes in many places.
7130
7133
7131 * Removed the MyCompleter class from ipplib. It seemed redundant
7134 * Removed the MyCompleter class from ipplib. It seemed redundant
7132 with the C-p,C-n history search functionality. Less code to
7135 with the C-p,C-n history search functionality. Less code to
7133 maintain.
7136 maintain.
7134
7137
7135 * Moved all the original ipython.py code into ipythonlib.py. Right
7138 * Moved all the original ipython.py code into ipythonlib.py. Right
7136 now it's just one big dump into a function called make_IPython, so
7139 now it's just one big dump into a function called make_IPython, so
7137 no real modularity has been gained. But at least it makes the
7140 no real modularity has been gained. But at least it makes the
7138 wrapper script tiny, and since ipythonlib is a module, it gets
7141 wrapper script tiny, and since ipythonlib is a module, it gets
7139 compiled and startup is much faster.
7142 compiled and startup is much faster.
7140
7143
7141 This is a reasobably 'deep' change, so we should test it for a
7144 This is a reasobably 'deep' change, so we should test it for a
7142 while without messing too much more with the code.
7145 while without messing too much more with the code.
7143
7146
7144 2001-11-21 Fernando Perez <fperez@colorado.edu>
7147 2001-11-21 Fernando Perez <fperez@colorado.edu>
7145
7148
7146 * Version 0.1.11 released, 0.1.12 opened for further work.
7149 * Version 0.1.11 released, 0.1.12 opened for further work.
7147
7150
7148 * Removed dependency on Itpl. It was only needed in one place. It
7151 * Removed dependency on Itpl. It was only needed in one place. It
7149 would be nice if this became part of python, though. It makes life
7152 would be nice if this became part of python, though. It makes life
7150 *a lot* easier in some cases.
7153 *a lot* easier in some cases.
7151
7154
7152 * Simplified the prefilter code a bit. Now all handlers are
7155 * Simplified the prefilter code a bit. Now all handlers are
7153 expected to explicitly return a value (at least a blank string).
7156 expected to explicitly return a value (at least a blank string).
7154
7157
7155 * Heavy edits in ipplib. Removed the help system altogether. Now
7158 * Heavy edits in ipplib. Removed the help system altogether. Now
7156 obj?/?? is used for inspecting objects, a magic @doc prints
7159 obj?/?? is used for inspecting objects, a magic @doc prints
7157 docstrings, and full-blown Python help is accessed via the 'help'
7160 docstrings, and full-blown Python help is accessed via the 'help'
7158 keyword. This cleans up a lot of code (less to maintain) and does
7161 keyword. This cleans up a lot of code (less to maintain) and does
7159 the job. Since 'help' is now a standard Python component, might as
7162 the job. Since 'help' is now a standard Python component, might as
7160 well use it and remove duplicate functionality.
7163 well use it and remove duplicate functionality.
7161
7164
7162 Also removed the option to use ipplib as a standalone program. By
7165 Also removed the option to use ipplib as a standalone program. By
7163 now it's too dependent on other parts of IPython to function alone.
7166 now it's too dependent on other parts of IPython to function alone.
7164
7167
7165 * Fixed bug in genutils.pager. It would crash if the pager was
7168 * Fixed bug in genutils.pager. It would crash if the pager was
7166 exited immediately after opening (broken pipe).
7169 exited immediately after opening (broken pipe).
7167
7170
7168 * Trimmed down the VerboseTB reporting a little. The header is
7171 * Trimmed down the VerboseTB reporting a little. The header is
7169 much shorter now and the repeated exception arguments at the end
7172 much shorter now and the repeated exception arguments at the end
7170 have been removed. For interactive use the old header seemed a bit
7173 have been removed. For interactive use the old header seemed a bit
7171 excessive.
7174 excessive.
7172
7175
7173 * Fixed small bug in output of @whos for variables with multi-word
7176 * Fixed small bug in output of @whos for variables with multi-word
7174 types (only first word was displayed).
7177 types (only first word was displayed).
7175
7178
7176 2001-11-17 Fernando Perez <fperez@colorado.edu>
7179 2001-11-17 Fernando Perez <fperez@colorado.edu>
7177
7180
7178 * Version 0.1.10 released, 0.1.11 opened for further work.
7181 * Version 0.1.10 released, 0.1.11 opened for further work.
7179
7182
7180 * Modified dirs and friends. dirs now *returns* the stack (not
7183 * Modified dirs and friends. dirs now *returns* the stack (not
7181 prints), so one can manipulate it as a variable. Convenient to
7184 prints), so one can manipulate it as a variable. Convenient to
7182 travel along many directories.
7185 travel along many directories.
7183
7186
7184 * Fixed bug in magic_pdef: would only work with functions with
7187 * Fixed bug in magic_pdef: would only work with functions with
7185 arguments with default values.
7188 arguments with default values.
7186
7189
7187 2001-11-14 Fernando Perez <fperez@colorado.edu>
7190 2001-11-14 Fernando Perez <fperez@colorado.edu>
7188
7191
7189 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7192 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7190 example with IPython. Various other minor fixes and cleanups.
7193 example with IPython. Various other minor fixes and cleanups.
7191
7194
7192 * Version 0.1.9 released, 0.1.10 opened for further work.
7195 * Version 0.1.9 released, 0.1.10 opened for further work.
7193
7196
7194 * Added sys.path to the list of directories searched in the
7197 * Added sys.path to the list of directories searched in the
7195 execfile= option. It used to be the current directory and the
7198 execfile= option. It used to be the current directory and the
7196 user's IPYTHONDIR only.
7199 user's IPYTHONDIR only.
7197
7200
7198 2001-11-13 Fernando Perez <fperez@colorado.edu>
7201 2001-11-13 Fernando Perez <fperez@colorado.edu>
7199
7202
7200 * Reinstated the raw_input/prefilter separation that Janko had
7203 * Reinstated the raw_input/prefilter separation that Janko had
7201 initially. This gives a more convenient setup for extending the
7204 initially. This gives a more convenient setup for extending the
7202 pre-processor from the outside: raw_input always gets a string,
7205 pre-processor from the outside: raw_input always gets a string,
7203 and prefilter has to process it. We can then redefine prefilter
7206 and prefilter has to process it. We can then redefine prefilter
7204 from the outside and implement extensions for special
7207 from the outside and implement extensions for special
7205 purposes.
7208 purposes.
7206
7209
7207 Today I got one for inputting PhysicalQuantity objects
7210 Today I got one for inputting PhysicalQuantity objects
7208 (from Scientific) without needing any function calls at
7211 (from Scientific) without needing any function calls at
7209 all. Extremely convenient, and it's all done as a user-level
7212 all. Extremely convenient, and it's all done as a user-level
7210 extension (no IPython code was touched). Now instead of:
7213 extension (no IPython code was touched). Now instead of:
7211 a = PhysicalQuantity(4.2,'m/s**2')
7214 a = PhysicalQuantity(4.2,'m/s**2')
7212 one can simply say
7215 one can simply say
7213 a = 4.2 m/s**2
7216 a = 4.2 m/s**2
7214 or even
7217 or even
7215 a = 4.2 m/s^2
7218 a = 4.2 m/s^2
7216
7219
7217 I use this, but it's also a proof of concept: IPython really is
7220 I use this, but it's also a proof of concept: IPython really is
7218 fully user-extensible, even at the level of the parsing of the
7221 fully user-extensible, even at the level of the parsing of the
7219 command line. It's not trivial, but it's perfectly doable.
7222 command line. It's not trivial, but it's perfectly doable.
7220
7223
7221 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7224 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7222 the problem of modules being loaded in the inverse order in which
7225 the problem of modules being loaded in the inverse order in which
7223 they were defined in
7226 they were defined in
7224
7227
7225 * Version 0.1.8 released, 0.1.9 opened for further work.
7228 * Version 0.1.8 released, 0.1.9 opened for further work.
7226
7229
7227 * Added magics pdef, source and file. They respectively show the
7230 * Added magics pdef, source and file. They respectively show the
7228 definition line ('prototype' in C), source code and full python
7231 definition line ('prototype' in C), source code and full python
7229 file for any callable object. The object inspector oinfo uses
7232 file for any callable object. The object inspector oinfo uses
7230 these to show the same information.
7233 these to show the same information.
7231
7234
7232 * Version 0.1.7 released, 0.1.8 opened for further work.
7235 * Version 0.1.7 released, 0.1.8 opened for further work.
7233
7236
7234 * Separated all the magic functions into a class called Magic. The
7237 * Separated all the magic functions into a class called Magic. The
7235 InteractiveShell class was becoming too big for Xemacs to handle
7238 InteractiveShell class was becoming too big for Xemacs to handle
7236 (de-indenting a line would lock it up for 10 seconds while it
7239 (de-indenting a line would lock it up for 10 seconds while it
7237 backtracked on the whole class!)
7240 backtracked on the whole class!)
7238
7241
7239 FIXME: didn't work. It can be done, but right now namespaces are
7242 FIXME: didn't work. It can be done, but right now namespaces are
7240 all messed up. Do it later (reverted it for now, so at least
7243 all messed up. Do it later (reverted it for now, so at least
7241 everything works as before).
7244 everything works as before).
7242
7245
7243 * Got the object introspection system (magic_oinfo) working! I
7246 * Got the object introspection system (magic_oinfo) working! I
7244 think this is pretty much ready for release to Janko, so he can
7247 think this is pretty much ready for release to Janko, so he can
7245 test it for a while and then announce it. Pretty much 100% of what
7248 test it for a while and then announce it. Pretty much 100% of what
7246 I wanted for the 'phase 1' release is ready. Happy, tired.
7249 I wanted for the 'phase 1' release is ready. Happy, tired.
7247
7250
7248 2001-11-12 Fernando Perez <fperez@colorado.edu>
7251 2001-11-12 Fernando Perez <fperez@colorado.edu>
7249
7252
7250 * Version 0.1.6 released, 0.1.7 opened for further work.
7253 * Version 0.1.6 released, 0.1.7 opened for further work.
7251
7254
7252 * Fixed bug in printing: it used to test for truth before
7255 * Fixed bug in printing: it used to test for truth before
7253 printing, so 0 wouldn't print. Now checks for None.
7256 printing, so 0 wouldn't print. Now checks for None.
7254
7257
7255 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7258 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7256 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7259 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7257 reaches by hand into the outputcache. Think of a better way to do
7260 reaches by hand into the outputcache. Think of a better way to do
7258 this later.
7261 this later.
7259
7262
7260 * Various small fixes thanks to Nathan's comments.
7263 * Various small fixes thanks to Nathan's comments.
7261
7264
7262 * Changed magic_pprint to magic_Pprint. This way it doesn't
7265 * Changed magic_pprint to magic_Pprint. This way it doesn't
7263 collide with pprint() and the name is consistent with the command
7266 collide with pprint() and the name is consistent with the command
7264 line option.
7267 line option.
7265
7268
7266 * Changed prompt counter behavior to be fully like
7269 * Changed prompt counter behavior to be fully like
7267 Mathematica's. That is, even input that doesn't return a result
7270 Mathematica's. That is, even input that doesn't return a result
7268 raises the prompt counter. The old behavior was kind of confusing
7271 raises the prompt counter. The old behavior was kind of confusing
7269 (getting the same prompt number several times if the operation
7272 (getting the same prompt number several times if the operation
7270 didn't return a result).
7273 didn't return a result).
7271
7274
7272 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7275 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7273
7276
7274 * Fixed -Classic mode (wasn't working anymore).
7277 * Fixed -Classic mode (wasn't working anymore).
7275
7278
7276 * Added colored prompts using Nathan's new code. Colors are
7279 * Added colored prompts using Nathan's new code. Colors are
7277 currently hardwired, they can be user-configurable. For
7280 currently hardwired, they can be user-configurable. For
7278 developers, they can be chosen in file ipythonlib.py, at the
7281 developers, they can be chosen in file ipythonlib.py, at the
7279 beginning of the CachedOutput class def.
7282 beginning of the CachedOutput class def.
7280
7283
7281 2001-11-11 Fernando Perez <fperez@colorado.edu>
7284 2001-11-11 Fernando Perez <fperez@colorado.edu>
7282
7285
7283 * Version 0.1.5 released, 0.1.6 opened for further work.
7286 * Version 0.1.5 released, 0.1.6 opened for further work.
7284
7287
7285 * Changed magic_env to *return* the environment as a dict (not to
7288 * Changed magic_env to *return* the environment as a dict (not to
7286 print it). This way it prints, but it can also be processed.
7289 print it). This way it prints, but it can also be processed.
7287
7290
7288 * Added Verbose exception reporting to interactive
7291 * Added Verbose exception reporting to interactive
7289 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7292 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7290 traceback. Had to make some changes to the ultraTB file. This is
7293 traceback. Had to make some changes to the ultraTB file. This is
7291 probably the last 'big' thing in my mental todo list. This ties
7294 probably the last 'big' thing in my mental todo list. This ties
7292 in with the next entry:
7295 in with the next entry:
7293
7296
7294 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7297 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7295 has to specify is Plain, Color or Verbose for all exception
7298 has to specify is Plain, Color or Verbose for all exception
7296 handling.
7299 handling.
7297
7300
7298 * Removed ShellServices option. All this can really be done via
7301 * Removed ShellServices option. All this can really be done via
7299 the magic system. It's easier to extend, cleaner and has automatic
7302 the magic system. It's easier to extend, cleaner and has automatic
7300 namespace protection and documentation.
7303 namespace protection and documentation.
7301
7304
7302 2001-11-09 Fernando Perez <fperez@colorado.edu>
7305 2001-11-09 Fernando Perez <fperez@colorado.edu>
7303
7306
7304 * Fixed bug in output cache flushing (missing parameter to
7307 * Fixed bug in output cache flushing (missing parameter to
7305 __init__). Other small bugs fixed (found using pychecker).
7308 __init__). Other small bugs fixed (found using pychecker).
7306
7309
7307 * Version 0.1.4 opened for bugfixing.
7310 * Version 0.1.4 opened for bugfixing.
7308
7311
7309 2001-11-07 Fernando Perez <fperez@colorado.edu>
7312 2001-11-07 Fernando Perez <fperez@colorado.edu>
7310
7313
7311 * Version 0.1.3 released, mainly because of the raw_input bug.
7314 * Version 0.1.3 released, mainly because of the raw_input bug.
7312
7315
7313 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7316 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7314 and when testing for whether things were callable, a call could
7317 and when testing for whether things were callable, a call could
7315 actually be made to certain functions. They would get called again
7318 actually be made to certain functions. They would get called again
7316 once 'really' executed, with a resulting double call. A disaster
7319 once 'really' executed, with a resulting double call. A disaster
7317 in many cases (list.reverse() would never work!).
7320 in many cases (list.reverse() would never work!).
7318
7321
7319 * Removed prefilter() function, moved its code to raw_input (which
7322 * Removed prefilter() function, moved its code to raw_input (which
7320 after all was just a near-empty caller for prefilter). This saves
7323 after all was just a near-empty caller for prefilter). This saves
7321 a function call on every prompt, and simplifies the class a tiny bit.
7324 a function call on every prompt, and simplifies the class a tiny bit.
7322
7325
7323 * Fix _ip to __ip name in magic example file.
7326 * Fix _ip to __ip name in magic example file.
7324
7327
7325 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7328 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7326 work with non-gnu versions of tar.
7329 work with non-gnu versions of tar.
7327
7330
7328 2001-11-06 Fernando Perez <fperez@colorado.edu>
7331 2001-11-06 Fernando Perez <fperez@colorado.edu>
7329
7332
7330 * Version 0.1.2. Just to keep track of the recent changes.
7333 * Version 0.1.2. Just to keep track of the recent changes.
7331
7334
7332 * Fixed nasty bug in output prompt routine. It used to check 'if
7335 * Fixed nasty bug in output prompt routine. It used to check 'if
7333 arg != None...'. Problem is, this fails if arg implements a
7336 arg != None...'. Problem is, this fails if arg implements a
7334 special comparison (__cmp__) which disallows comparing to
7337 special comparison (__cmp__) which disallows comparing to
7335 None. Found it when trying to use the PhysicalQuantity module from
7338 None. Found it when trying to use the PhysicalQuantity module from
7336 ScientificPython.
7339 ScientificPython.
7337
7340
7338 2001-11-05 Fernando Perez <fperez@colorado.edu>
7341 2001-11-05 Fernando Perez <fperez@colorado.edu>
7339
7342
7340 * Also added dirs. Now the pushd/popd/dirs family functions
7343 * Also added dirs. Now the pushd/popd/dirs family functions
7341 basically like the shell, with the added convenience of going home
7344 basically like the shell, with the added convenience of going home
7342 when called with no args.
7345 when called with no args.
7343
7346
7344 * pushd/popd slightly modified to mimic shell behavior more
7347 * pushd/popd slightly modified to mimic shell behavior more
7345 closely.
7348 closely.
7346
7349
7347 * Added env,pushd,popd from ShellServices as magic functions. I
7350 * Added env,pushd,popd from ShellServices as magic functions. I
7348 think the cleanest will be to port all desired functions from
7351 think the cleanest will be to port all desired functions from
7349 ShellServices as magics and remove ShellServices altogether. This
7352 ShellServices as magics and remove ShellServices altogether. This
7350 will provide a single, clean way of adding functionality
7353 will provide a single, clean way of adding functionality
7351 (shell-type or otherwise) to IP.
7354 (shell-type or otherwise) to IP.
7352
7355
7353 2001-11-04 Fernando Perez <fperez@colorado.edu>
7356 2001-11-04 Fernando Perez <fperez@colorado.edu>
7354
7357
7355 * Added .ipython/ directory to sys.path. This way users can keep
7358 * Added .ipython/ directory to sys.path. This way users can keep
7356 customizations there and access them via import.
7359 customizations there and access them via import.
7357
7360
7358 2001-11-03 Fernando Perez <fperez@colorado.edu>
7361 2001-11-03 Fernando Perez <fperez@colorado.edu>
7359
7362
7360 * Opened version 0.1.1 for new changes.
7363 * Opened version 0.1.1 for new changes.
7361
7364
7362 * Changed version number to 0.1.0: first 'public' release, sent to
7365 * Changed version number to 0.1.0: first 'public' release, sent to
7363 Nathan and Janko.
7366 Nathan and Janko.
7364
7367
7365 * Lots of small fixes and tweaks.
7368 * Lots of small fixes and tweaks.
7366
7369
7367 * Minor changes to whos format. Now strings are shown, snipped if
7370 * Minor changes to whos format. Now strings are shown, snipped if
7368 too long.
7371 too long.
7369
7372
7370 * Changed ShellServices to work on __main__ so they show up in @who
7373 * Changed ShellServices to work on __main__ so they show up in @who
7371
7374
7372 * Help also works with ? at the end of a line:
7375 * Help also works with ? at the end of a line:
7373 ?sin and sin?
7376 ?sin and sin?
7374 both produce the same effect. This is nice, as often I use the
7377 both produce the same effect. This is nice, as often I use the
7375 tab-complete to find the name of a method, but I used to then have
7378 tab-complete to find the name of a method, but I used to then have
7376 to go to the beginning of the line to put a ? if I wanted more
7379 to go to the beginning of the line to put a ? if I wanted more
7377 info. Now I can just add the ? and hit return. Convenient.
7380 info. Now I can just add the ? and hit return. Convenient.
7378
7381
7379 2001-11-02 Fernando Perez <fperez@colorado.edu>
7382 2001-11-02 Fernando Perez <fperez@colorado.edu>
7380
7383
7381 * Python version check (>=2.1) added.
7384 * Python version check (>=2.1) added.
7382
7385
7383 * Added LazyPython documentation. At this point the docs are quite
7386 * Added LazyPython documentation. At this point the docs are quite
7384 a mess. A cleanup is in order.
7387 a mess. A cleanup is in order.
7385
7388
7386 * Auto-installer created. For some bizarre reason, the zipfiles
7389 * Auto-installer created. For some bizarre reason, the zipfiles
7387 module isn't working on my system. So I made a tar version
7390 module isn't working on my system. So I made a tar version
7388 (hopefully the command line options in various systems won't kill
7391 (hopefully the command line options in various systems won't kill
7389 me).
7392 me).
7390
7393
7391 * Fixes to Struct in genutils. Now all dictionary-like methods are
7394 * Fixes to Struct in genutils. Now all dictionary-like methods are
7392 protected (reasonably).
7395 protected (reasonably).
7393
7396
7394 * Added pager function to genutils and changed ? to print usage
7397 * Added pager function to genutils and changed ? to print usage
7395 note through it (it was too long).
7398 note through it (it was too long).
7396
7399
7397 * Added the LazyPython functionality. Works great! I changed the
7400 * Added the LazyPython functionality. Works great! I changed the
7398 auto-quote escape to ';', it's on home row and next to '. But
7401 auto-quote escape to ';', it's on home row and next to '. But
7399 both auto-quote and auto-paren (still /) escapes are command-line
7402 both auto-quote and auto-paren (still /) escapes are command-line
7400 parameters.
7403 parameters.
7401
7404
7402
7405
7403 2001-11-01 Fernando Perez <fperez@colorado.edu>
7406 2001-11-01 Fernando Perez <fperez@colorado.edu>
7404
7407
7405 * Version changed to 0.0.7. Fairly large change: configuration now
7408 * Version changed to 0.0.7. Fairly large change: configuration now
7406 is all stored in a directory, by default .ipython. There, all
7409 is all stored in a directory, by default .ipython. There, all
7407 config files have normal looking names (not .names)
7410 config files have normal looking names (not .names)
7408
7411
7409 * Version 0.0.6 Released first to Lucas and Archie as a test
7412 * Version 0.0.6 Released first to Lucas and Archie as a test
7410 run. Since it's the first 'semi-public' release, change version to
7413 run. Since it's the first 'semi-public' release, change version to
7411 > 0.0.6 for any changes now.
7414 > 0.0.6 for any changes now.
7412
7415
7413 * Stuff I had put in the ipplib.py changelog:
7416 * Stuff I had put in the ipplib.py changelog:
7414
7417
7415 Changes to InteractiveShell:
7418 Changes to InteractiveShell:
7416
7419
7417 - Made the usage message a parameter.
7420 - Made the usage message a parameter.
7418
7421
7419 - Require the name of the shell variable to be given. It's a bit
7422 - Require the name of the shell variable to be given. It's a bit
7420 of a hack, but allows the name 'shell' not to be hardwired in the
7423 of a hack, but allows the name 'shell' not to be hardwired in the
7421 magic (@) handler, which is problematic b/c it requires
7424 magic (@) handler, which is problematic b/c it requires
7422 polluting the global namespace with 'shell'. This in turn is
7425 polluting the global namespace with 'shell'. This in turn is
7423 fragile: if a user redefines a variable called shell, things
7426 fragile: if a user redefines a variable called shell, things
7424 break.
7427 break.
7425
7428
7426 - magic @: all functions available through @ need to be defined
7429 - magic @: all functions available through @ need to be defined
7427 as magic_<name>, even though they can be called simply as
7430 as magic_<name>, even though they can be called simply as
7428 @<name>. This allows the special command @magic to gather
7431 @<name>. This allows the special command @magic to gather
7429 information automatically about all existing magic functions,
7432 information automatically about all existing magic functions,
7430 even if they are run-time user extensions, by parsing the shell
7433 even if they are run-time user extensions, by parsing the shell
7431 instance __dict__ looking for special magic_ names.
7434 instance __dict__ looking for special magic_ names.
7432
7435
7433 - mainloop: added *two* local namespace parameters. This allows
7436 - mainloop: added *two* local namespace parameters. This allows
7434 the class to differentiate between parameters which were there
7437 the class to differentiate between parameters which were there
7435 before and after command line initialization was processed. This
7438 before and after command line initialization was processed. This
7436 way, later @who can show things loaded at startup by the
7439 way, later @who can show things loaded at startup by the
7437 user. This trick was necessary to make session saving/reloading
7440 user. This trick was necessary to make session saving/reloading
7438 really work: ideally after saving/exiting/reloading a session,
7441 really work: ideally after saving/exiting/reloading a session,
7439 *everything* should look the same, including the output of @who. I
7442 *everything* should look the same, including the output of @who. I
7440 was only able to make this work with this double namespace
7443 was only able to make this work with this double namespace
7441 trick.
7444 trick.
7442
7445
7443 - added a header to the logfile which allows (almost) full
7446 - added a header to the logfile which allows (almost) full
7444 session restoring.
7447 session restoring.
7445
7448
7446 - prepend lines beginning with @ or !, with a and log
7449 - prepend lines beginning with @ or !, with a and log
7447 them. Why? !lines: may be useful to know what you did @lines:
7450 them. Why? !lines: may be useful to know what you did @lines:
7448 they may affect session state. So when restoring a session, at
7451 they may affect session state. So when restoring a session, at
7449 least inform the user of their presence. I couldn't quite get
7452 least inform the user of their presence. I couldn't quite get
7450 them to properly re-execute, but at least the user is warned.
7453 them to properly re-execute, but at least the user is warned.
7451
7454
7452 * Started ChangeLog.
7455 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now