##// END OF EJS Templates
Forgot to commit changelog
fperez -
Show More
@@ -1,5336 +1,5363 b''
1 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2
3 * IPython: remove all 2.2-compatibility objects and hacks from
4 everywhere, since we only support 2.3 at this point. Docs
5 updated.
6
7 * IPython/ipapi.py (IPApi.__init__): Clean up of all getters.
8 Anything requiring extra validation can be turned into a Python
9 property in the future. I used a property for the db one b/c
10 there was a nasty circularity problem with the initialization
11 order, which rigth now I don't have time to clean up.
12
13 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
14 another locking bug reported by Jorgen. I'm not 100% sure though,
15 so more testing is needed...
16
17 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
18
19 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
20 local variables from any routine in user code (typically executed
21 with %run) directly into the interactive namespace. Very useful
22 when doing complex debugging.
23 (IPythonNotRunning): Changed the default None object to a dummy
24 whose attributes can be queried as well as called without
25 exploding, to ease writing code which works transparently both in
26 and out of ipython and uses some of this API.
27
1 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
28 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2
29
3 * IPython/hooks.py (result_display): Fix the fact that our display
30 * IPython/hooks.py (result_display): Fix the fact that our display
4 hook was using str() instead of repr(), as the default python
31 hook was using str() instead of repr(), as the default python
5 console does. This had gone unnoticed b/c it only happened if
32 console does. This had gone unnoticed b/c it only happened if
6 %Pprint was off, but the inconsistency was there.
33 %Pprint was off, but the inconsistency was there.
7
34
8 2006-05-15 Ville Vainio <vivainio@gmail.com>
35 2006-05-15 Ville Vainio <vivainio@gmail.com>
9
36
10 * Oinspect.py: Only show docstring for nonexisting/binary files
37 * Oinspect.py: Only show docstring for nonexisting/binary files
11 when doing object??, closing ticket #62
38 when doing object??, closing ticket #62
12
39
13 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
40 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
14
41
15 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
42 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
16 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
43 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
17 was being released in a routine which hadn't checked if it had
44 was being released in a routine which hadn't checked if it had
18 been the one to acquire it.
45 been the one to acquire it.
19
46
20 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
47 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
21
48
22 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
49 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
23
50
24 2006-04-11 Ville Vainio <vivainio@gmail.com>
51 2006-04-11 Ville Vainio <vivainio@gmail.com>
25
52
26 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
53 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
27 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
54 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
28 prefilters, allowing stuff like magics and aliases in the file.
55 prefilters, allowing stuff like magics and aliases in the file.
29
56
30 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
57 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
31 added. Supported now are "%clear in" and "%clear out" (clear input and
58 added. Supported now are "%clear in" and "%clear out" (clear input and
32 output history, respectively). Also fixed CachedOutput.flush to
59 output history, respectively). Also fixed CachedOutput.flush to
33 properly flush the output cache.
60 properly flush the output cache.
34
61
35 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
62 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
36 half-success (and fail explicitly).
63 half-success (and fail explicitly).
37
64
38 2006-03-28 Ville Vainio <vivainio@gmail.com>
65 2006-03-28 Ville Vainio <vivainio@gmail.com>
39
66
40 * iplib.py: Fix quoting of aliases so that only argless ones
67 * iplib.py: Fix quoting of aliases so that only argless ones
41 are quoted
68 are quoted
42
69
43 2006-03-28 Ville Vainio <vivainio@gmail.com>
70 2006-03-28 Ville Vainio <vivainio@gmail.com>
44
71
45 * iplib.py: Quote aliases with spaces in the name.
72 * iplib.py: Quote aliases with spaces in the name.
46 "c:\program files\blah\bin" is now legal alias target.
73 "c:\program files\blah\bin" is now legal alias target.
47
74
48 * ext_rehashdir.py: Space no longer allowed as arg
75 * ext_rehashdir.py: Space no longer allowed as arg
49 separator, since space is legal in path names.
76 separator, since space is legal in path names.
50
77
51 2006-03-16 Ville Vainio <vivainio@gmail.com>
78 2006-03-16 Ville Vainio <vivainio@gmail.com>
52
79
53 * upgrade_dir.py: Take path.py from Extensions, correcting
80 * upgrade_dir.py: Take path.py from Extensions, correcting
54 %upgrade magic
81 %upgrade magic
55
82
56 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
83 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
57
84
58 * hooks.py: Only enclose editor binary in quotes if legal and
85 * hooks.py: Only enclose editor binary in quotes if legal and
59 necessary (space in the name, and is an existing file). Fixes a bug
86 necessary (space in the name, and is an existing file). Fixes a bug
60 reported by Zachary Pincus.
87 reported by Zachary Pincus.
61
88
62 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
89 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
63
90
64 * Manual: thanks to a tip on proper color handling for Emacs, by
91 * Manual: thanks to a tip on proper color handling for Emacs, by
65 Eric J Haywiser <ejh1-AT-MIT.EDU>.
92 Eric J Haywiser <ejh1-AT-MIT.EDU>.
66
93
67 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
94 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
68 by applying the provided patch. Thanks to Liu Jin
95 by applying the provided patch. Thanks to Liu Jin
69 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
96 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
70 XEmacs/Linux, I'm trusting the submitter that it actually helps
97 XEmacs/Linux, I'm trusting the submitter that it actually helps
71 under win32/GNU Emacs. Will revisit if any problems are reported.
98 under win32/GNU Emacs. Will revisit if any problems are reported.
72
99
73 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
100 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
74
101
75 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
102 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
76 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
103 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
77
104
78 2006-03-12 Ville Vainio <vivainio@gmail.com>
105 2006-03-12 Ville Vainio <vivainio@gmail.com>
79
106
80 * Magic.py (magic_timeit): Added %timeit magic, contributed by
107 * Magic.py (magic_timeit): Added %timeit magic, contributed by
81 Torsten Marek.
108 Torsten Marek.
82
109
83 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
110 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
84
111
85 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
112 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
86 line ranges works again.
113 line ranges works again.
87
114
88 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
115 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
89
116
90 * IPython/iplib.py (showtraceback): add back sys.last_traceback
117 * IPython/iplib.py (showtraceback): add back sys.last_traceback
91 and friends, after a discussion with Zach Pincus on ipython-user.
118 and friends, after a discussion with Zach Pincus on ipython-user.
92 I'm not 100% sure, but after thinking aobut it quite a bit, it may
119 I'm not 100% sure, but after thinking aobut it quite a bit, it may
93 be OK. Testing with the multithreaded shells didn't reveal any
120 be OK. Testing with the multithreaded shells didn't reveal any
94 problems, but let's keep an eye out.
121 problems, but let's keep an eye out.
95
122
96 In the process, I fixed a few things which were calling
123 In the process, I fixed a few things which were calling
97 self.InteractiveTB() directly (like safe_execfile), which is a
124 self.InteractiveTB() directly (like safe_execfile), which is a
98 mistake: ALL exception reporting should be done by calling
125 mistake: ALL exception reporting should be done by calling
99 self.showtraceback(), which handles state and tab-completion and
126 self.showtraceback(), which handles state and tab-completion and
100 more.
127 more.
101
128
102 2006-03-01 Ville Vainio <vivainio@gmail.com>
129 2006-03-01 Ville Vainio <vivainio@gmail.com>
103
130
104 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
131 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
105 To use, do "from ipipe import *".
132 To use, do "from ipipe import *".
106
133
107 2006-02-24 Ville Vainio <vivainio@gmail.com>
134 2006-02-24 Ville Vainio <vivainio@gmail.com>
108
135
109 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
136 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
110 "cleanly" and safely than the older upgrade mechanism.
137 "cleanly" and safely than the older upgrade mechanism.
111
138
112 2006-02-21 Ville Vainio <vivainio@gmail.com>
139 2006-02-21 Ville Vainio <vivainio@gmail.com>
113
140
114 * Magic.py: %save works again.
141 * Magic.py: %save works again.
115
142
116 2006-02-15 Ville Vainio <vivainio@gmail.com>
143 2006-02-15 Ville Vainio <vivainio@gmail.com>
117
144
118 * Magic.py: %Pprint works again
145 * Magic.py: %Pprint works again
119
146
120 * Extensions/ipy_sane_defaults.py: Provide everything provided
147 * Extensions/ipy_sane_defaults.py: Provide everything provided
121 in default ipythonrc, to make it possible to have a completely empty
148 in default ipythonrc, to make it possible to have a completely empty
122 ipythonrc (and thus completely rc-file free configuration)
149 ipythonrc (and thus completely rc-file free configuration)
123
150
124
151
125 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
152 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
126
153
127 * IPython/hooks.py (editor): quote the call to the editor command,
154 * IPython/hooks.py (editor): quote the call to the editor command,
128 to allow commands with spaces in them. Problem noted by watching
155 to allow commands with spaces in them. Problem noted by watching
129 Ian Oswald's video about textpad under win32 at
156 Ian Oswald's video about textpad under win32 at
130 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
157 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
131
158
132 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
159 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
133 describing magics (we haven't used @ for a loong time).
160 describing magics (we haven't used @ for a loong time).
134
161
135 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
162 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
136 contributed by marienz to close
163 contributed by marienz to close
137 http://www.scipy.net/roundup/ipython/issue53.
164 http://www.scipy.net/roundup/ipython/issue53.
138
165
139 2006-02-10 Ville Vainio <vivainio@gmail.com>
166 2006-02-10 Ville Vainio <vivainio@gmail.com>
140
167
141 * genutils.py: getoutput now works in win32 too
168 * genutils.py: getoutput now works in win32 too
142
169
143 * completer.py: alias and magic completion only invoked
170 * completer.py: alias and magic completion only invoked
144 at the first "item" in the line, to avoid "cd %store"
171 at the first "item" in the line, to avoid "cd %store"
145 nonsense.
172 nonsense.
146
173
147 2006-02-09 Ville Vainio <vivainio@gmail.com>
174 2006-02-09 Ville Vainio <vivainio@gmail.com>
148
175
149 * test/*: Added a unit testing framework (finally).
176 * test/*: Added a unit testing framework (finally).
150 '%run runtests.py' to run test_*.
177 '%run runtests.py' to run test_*.
151
178
152 * ipapi.py: Exposed runlines and set_custom_exc
179 * ipapi.py: Exposed runlines and set_custom_exc
153
180
154 2006-02-07 Ville Vainio <vivainio@gmail.com>
181 2006-02-07 Ville Vainio <vivainio@gmail.com>
155
182
156 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
183 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
157 instead use "f(1 2)" as before.
184 instead use "f(1 2)" as before.
158
185
159 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
186 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
160
187
161 * IPython/demo.py (IPythonDemo): Add new classes to the demo
188 * IPython/demo.py (IPythonDemo): Add new classes to the demo
162 facilities, for demos processed by the IPython input filter
189 facilities, for demos processed by the IPython input filter
163 (IPythonDemo), and for running a script one-line-at-a-time as a
190 (IPythonDemo), and for running a script one-line-at-a-time as a
164 demo, both for pure Python (LineDemo) and for IPython-processed
191 demo, both for pure Python (LineDemo) and for IPython-processed
165 input (IPythonLineDemo). After a request by Dave Kohel, from the
192 input (IPythonLineDemo). After a request by Dave Kohel, from the
166 SAGE team.
193 SAGE team.
167 (Demo.edit): added and edit() method to the demo objects, to edit
194 (Demo.edit): added and edit() method to the demo objects, to edit
168 the in-memory copy of the last executed block.
195 the in-memory copy of the last executed block.
169
196
170 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
197 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
171 processing to %edit, %macro and %save. These commands can now be
198 processing to %edit, %macro and %save. These commands can now be
172 invoked on the unprocessed input as it was typed by the user
199 invoked on the unprocessed input as it was typed by the user
173 (without any prefilters applied). After requests by the SAGE team
200 (without any prefilters applied). After requests by the SAGE team
174 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
201 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
175
202
176 2006-02-01 Ville Vainio <vivainio@gmail.com>
203 2006-02-01 Ville Vainio <vivainio@gmail.com>
177
204
178 * setup.py, eggsetup.py: easy_install ipython==dev works
205 * setup.py, eggsetup.py: easy_install ipython==dev works
179 correctly now (on Linux)
206 correctly now (on Linux)
180
207
181 * ipy_user_conf,ipmaker: user config changes, removed spurious
208 * ipy_user_conf,ipmaker: user config changes, removed spurious
182 warnings
209 warnings
183
210
184 * iplib: if rc.banner is string, use it as is.
211 * iplib: if rc.banner is string, use it as is.
185
212
186 * Magic: %pycat accepts a string argument and pages it's contents.
213 * Magic: %pycat accepts a string argument and pages it's contents.
187
214
188
215
189 2006-01-30 Ville Vainio <vivainio@gmail.com>
216 2006-01-30 Ville Vainio <vivainio@gmail.com>
190
217
191 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
218 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
192 Now %store and bookmarks work through PickleShare, meaning that
219 Now %store and bookmarks work through PickleShare, meaning that
193 concurrent access is possible and all ipython sessions see the
220 concurrent access is possible and all ipython sessions see the
194 same database situation all the time, instead of snapshot of
221 same database situation all the time, instead of snapshot of
195 the situation when the session was started. Hence, %bookmark
222 the situation when the session was started. Hence, %bookmark
196 results are immediately accessible from othes sessions. The database
223 results are immediately accessible from othes sessions. The database
197 is also available for use by user extensions. See:
224 is also available for use by user extensions. See:
198 http://www.python.org/pypi/pickleshare
225 http://www.python.org/pypi/pickleshare
199
226
200 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
227 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
201
228
202 * aliases can now be %store'd
229 * aliases can now be %store'd
203
230
204 * path.py move to Extensions so that pickleshare does not need
231 * path.py move to Extensions so that pickleshare does not need
205 IPython-specific import. Extensions added to pythonpath right
232 IPython-specific import. Extensions added to pythonpath right
206 at __init__.
233 at __init__.
207
234
208 * iplib.py: ipalias deprecated/redundant; aliases are converted and
235 * iplib.py: ipalias deprecated/redundant; aliases are converted and
209 called with _ip.system and the pre-transformed command string.
236 called with _ip.system and the pre-transformed command string.
210
237
211 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
238 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
212
239
213 * IPython/iplib.py (interact): Fix that we were not catching
240 * IPython/iplib.py (interact): Fix that we were not catching
214 KeyboardInterrupt exceptions properly. I'm not quite sure why the
241 KeyboardInterrupt exceptions properly. I'm not quite sure why the
215 logic here had to change, but it's fixed now.
242 logic here had to change, but it's fixed now.
216
243
217 2006-01-29 Ville Vainio <vivainio@gmail.com>
244 2006-01-29 Ville Vainio <vivainio@gmail.com>
218
245
219 * iplib.py: Try to import pyreadline on Windows.
246 * iplib.py: Try to import pyreadline on Windows.
220
247
221 2006-01-27 Ville Vainio <vivainio@gmail.com>
248 2006-01-27 Ville Vainio <vivainio@gmail.com>
222
249
223 * iplib.py: Expose ipapi as _ip in builtin namespace.
250 * iplib.py: Expose ipapi as _ip in builtin namespace.
224 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
251 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
225 and ip_set_hook (-> _ip.set_hook) redundant. % and !
252 and ip_set_hook (-> _ip.set_hook) redundant. % and !
226 syntax now produce _ip.* variant of the commands.
253 syntax now produce _ip.* variant of the commands.
227
254
228 * "_ip.options().autoedit_syntax = 2" automatically throws
255 * "_ip.options().autoedit_syntax = 2" automatically throws
229 user to editor for syntax error correction without prompting.
256 user to editor for syntax error correction without prompting.
230
257
231 2006-01-27 Ville Vainio <vivainio@gmail.com>
258 2006-01-27 Ville Vainio <vivainio@gmail.com>
232
259
233 * ipmaker.py: Give "realistic" sys.argv for scripts (without
260 * ipmaker.py: Give "realistic" sys.argv for scripts (without
234 'ipython' at argv[0]) executed through command line.
261 'ipython' at argv[0]) executed through command line.
235 NOTE: this DEPRECATES calling ipython with multiple scripts
262 NOTE: this DEPRECATES calling ipython with multiple scripts
236 ("ipython a.py b.py c.py")
263 ("ipython a.py b.py c.py")
237
264
238 * iplib.py, hooks.py: Added configurable input prefilter,
265 * iplib.py, hooks.py: Added configurable input prefilter,
239 named 'input_prefilter'. See ext_rescapture.py for example
266 named 'input_prefilter'. See ext_rescapture.py for example
240 usage.
267 usage.
241
268
242 * ext_rescapture.py, Magic.py: Better system command output capture
269 * ext_rescapture.py, Magic.py: Better system command output capture
243 through 'var = !ls' (deprecates user-visible %sc). Same notation
270 through 'var = !ls' (deprecates user-visible %sc). Same notation
244 applies for magics, 'var = %alias' assigns alias list to var.
271 applies for magics, 'var = %alias' assigns alias list to var.
245
272
246 * ipapi.py: added meta() for accessing extension-usable data store.
273 * ipapi.py: added meta() for accessing extension-usable data store.
247
274
248 * iplib.py: added InteractiveShell.getapi(). New magics should be
275 * iplib.py: added InteractiveShell.getapi(). New magics should be
249 written doing self.getapi() instead of using the shell directly.
276 written doing self.getapi() instead of using the shell directly.
250
277
251 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
278 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
252 %store foo >> ~/myfoo.txt to store variables to files (in clean
279 %store foo >> ~/myfoo.txt to store variables to files (in clean
253 textual form, not a restorable pickle).
280 textual form, not a restorable pickle).
254
281
255 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
282 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
256
283
257 * usage.py, Magic.py: added %quickref
284 * usage.py, Magic.py: added %quickref
258
285
259 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
286 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
260
287
261 * GetoptErrors when invoking magics etc. with wrong args
288 * GetoptErrors when invoking magics etc. with wrong args
262 are now more helpful:
289 are now more helpful:
263 GetoptError: option -l not recognized (allowed: "qb" )
290 GetoptError: option -l not recognized (allowed: "qb" )
264
291
265 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
292 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
266
293
267 * IPython/demo.py (Demo.show): Flush stdout after each block, so
294 * IPython/demo.py (Demo.show): Flush stdout after each block, so
268 computationally intensive blocks don't appear to stall the demo.
295 computationally intensive blocks don't appear to stall the demo.
269
296
270 2006-01-24 Ville Vainio <vivainio@gmail.com>
297 2006-01-24 Ville Vainio <vivainio@gmail.com>
271
298
272 * iplib.py, hooks.py: 'result_display' hook can return a non-None
299 * iplib.py, hooks.py: 'result_display' hook can return a non-None
273 value to manipulate resulting history entry.
300 value to manipulate resulting history entry.
274
301
275 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
302 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
276 to instance methods of IPApi class, to make extending an embedded
303 to instance methods of IPApi class, to make extending an embedded
277 IPython feasible. See ext_rehashdir.py for example usage.
304 IPython feasible. See ext_rehashdir.py for example usage.
278
305
279 * Merged 1071-1076 from banches/0.7.1
306 * Merged 1071-1076 from banches/0.7.1
280
307
281
308
282 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
309 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
283
310
284 * tools/release (daystamp): Fix build tools to use the new
311 * tools/release (daystamp): Fix build tools to use the new
285 eggsetup.py script to build lightweight eggs.
312 eggsetup.py script to build lightweight eggs.
286
313
287 * Applied changesets 1062 and 1064 before 0.7.1 release.
314 * Applied changesets 1062 and 1064 before 0.7.1 release.
288
315
289 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
316 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
290 see the raw input history (without conversions like %ls ->
317 see the raw input history (without conversions like %ls ->
291 ipmagic("ls")). After a request from W. Stein, SAGE
318 ipmagic("ls")). After a request from W. Stein, SAGE
292 (http://modular.ucsd.edu/sage) developer. This information is
319 (http://modular.ucsd.edu/sage) developer. This information is
293 stored in the input_hist_raw attribute of the IPython instance, so
320 stored in the input_hist_raw attribute of the IPython instance, so
294 developers can access it if needed (it's an InputList instance).
321 developers can access it if needed (it's an InputList instance).
295
322
296 * Versionstring = 0.7.2.svn
323 * Versionstring = 0.7.2.svn
297
324
298 * eggsetup.py: A separate script for constructing eggs, creates
325 * eggsetup.py: A separate script for constructing eggs, creates
299 proper launch scripts even on Windows (an .exe file in
326 proper launch scripts even on Windows (an .exe file in
300 \python24\scripts).
327 \python24\scripts).
301
328
302 * ipapi.py: launch_new_instance, launch entry point needed for the
329 * ipapi.py: launch_new_instance, launch entry point needed for the
303 egg.
330 egg.
304
331
305 2006-01-23 Ville Vainio <vivainio@gmail.com>
332 2006-01-23 Ville Vainio <vivainio@gmail.com>
306
333
307 * Added %cpaste magic for pasting python code
334 * Added %cpaste magic for pasting python code
308
335
309 2006-01-22 Ville Vainio <vivainio@gmail.com>
336 2006-01-22 Ville Vainio <vivainio@gmail.com>
310
337
311 * Merge from branches/0.7.1 into trunk, revs 1052-1057
338 * Merge from branches/0.7.1 into trunk, revs 1052-1057
312
339
313 * Versionstring = 0.7.2.svn
340 * Versionstring = 0.7.2.svn
314
341
315 * eggsetup.py: A separate script for constructing eggs, creates
342 * eggsetup.py: A separate script for constructing eggs, creates
316 proper launch scripts even on Windows (an .exe file in
343 proper launch scripts even on Windows (an .exe file in
317 \python24\scripts).
344 \python24\scripts).
318
345
319 * ipapi.py: launch_new_instance, launch entry point needed for the
346 * ipapi.py: launch_new_instance, launch entry point needed for the
320 egg.
347 egg.
321
348
322 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
349 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
323
350
324 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
351 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
325 %pfile foo would print the file for foo even if it was a binary.
352 %pfile foo would print the file for foo even if it was a binary.
326 Now, extensions '.so' and '.dll' are skipped.
353 Now, extensions '.so' and '.dll' are skipped.
327
354
328 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
355 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
329 bug, where macros would fail in all threaded modes. I'm not 100%
356 bug, where macros would fail in all threaded modes. I'm not 100%
330 sure, so I'm going to put out an rc instead of making a release
357 sure, so I'm going to put out an rc instead of making a release
331 today, and wait for feedback for at least a few days.
358 today, and wait for feedback for at least a few days.
332
359
333 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
360 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
334 it...) the handling of pasting external code with autoindent on.
361 it...) the handling of pasting external code with autoindent on.
335 To get out of a multiline input, the rule will appear for most
362 To get out of a multiline input, the rule will appear for most
336 users unchanged: two blank lines or change the indent level
363 users unchanged: two blank lines or change the indent level
337 proposed by IPython. But there is a twist now: you can
364 proposed by IPython. But there is a twist now: you can
338 add/subtract only *one or two spaces*. If you add/subtract three
365 add/subtract only *one or two spaces*. If you add/subtract three
339 or more (unless you completely delete the line), IPython will
366 or more (unless you completely delete the line), IPython will
340 accept that line, and you'll need to enter a second one of pure
367 accept that line, and you'll need to enter a second one of pure
341 whitespace. I know it sounds complicated, but I can't find a
368 whitespace. I know it sounds complicated, but I can't find a
342 different solution that covers all the cases, with the right
369 different solution that covers all the cases, with the right
343 heuristics. Hopefully in actual use, nobody will really notice
370 heuristics. Hopefully in actual use, nobody will really notice
344 all these strange rules and things will 'just work'.
371 all these strange rules and things will 'just work'.
345
372
346 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
373 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
347
374
348 * IPython/iplib.py (interact): catch exceptions which can be
375 * IPython/iplib.py (interact): catch exceptions which can be
349 triggered asynchronously by signal handlers. Thanks to an
376 triggered asynchronously by signal handlers. Thanks to an
350 automatic crash report, submitted by Colin Kingsley
377 automatic crash report, submitted by Colin Kingsley
351 <tercel-AT-gentoo.org>.
378 <tercel-AT-gentoo.org>.
352
379
353 2006-01-20 Ville Vainio <vivainio@gmail.com>
380 2006-01-20 Ville Vainio <vivainio@gmail.com>
354
381
355 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
382 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
356 (%rehashdir, very useful, try it out) of how to extend ipython
383 (%rehashdir, very useful, try it out) of how to extend ipython
357 with new magics. Also added Extensions dir to pythonpath to make
384 with new magics. Also added Extensions dir to pythonpath to make
358 importing extensions easy.
385 importing extensions easy.
359
386
360 * %store now complains when trying to store interactively declared
387 * %store now complains when trying to store interactively declared
361 classes / instances of those classes.
388 classes / instances of those classes.
362
389
363 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
390 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
364 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
391 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
365 if they exist, and ipy_user_conf.py with some defaults is created for
392 if they exist, and ipy_user_conf.py with some defaults is created for
366 the user.
393 the user.
367
394
368 * Startup rehashing done by the config file, not InterpreterExec.
395 * Startup rehashing done by the config file, not InterpreterExec.
369 This means system commands are available even without selecting the
396 This means system commands are available even without selecting the
370 pysh profile. It's the sensible default after all.
397 pysh profile. It's the sensible default after all.
371
398
372 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
399 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
373
400
374 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
401 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
375 multiline code with autoindent on working. But I am really not
402 multiline code with autoindent on working. But I am really not
376 sure, so this needs more testing. Will commit a debug-enabled
403 sure, so this needs more testing. Will commit a debug-enabled
377 version for now, while I test it some more, so that Ville and
404 version for now, while I test it some more, so that Ville and
378 others may also catch any problems. Also made
405 others may also catch any problems. Also made
379 self.indent_current_str() a method, to ensure that there's no
406 self.indent_current_str() a method, to ensure that there's no
380 chance of the indent space count and the corresponding string
407 chance of the indent space count and the corresponding string
381 falling out of sync. All code needing the string should just call
408 falling out of sync. All code needing the string should just call
382 the method.
409 the method.
383
410
384 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
411 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
385
412
386 * IPython/Magic.py (magic_edit): fix check for when users don't
413 * IPython/Magic.py (magic_edit): fix check for when users don't
387 save their output files, the try/except was in the wrong section.
414 save their output files, the try/except was in the wrong section.
388
415
389 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
416 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
390
417
391 * IPython/Magic.py (magic_run): fix __file__ global missing from
418 * IPython/Magic.py (magic_run): fix __file__ global missing from
392 script's namespace when executed via %run. After a report by
419 script's namespace when executed via %run. After a report by
393 Vivian.
420 Vivian.
394
421
395 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
422 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
396 when using python 2.4. The parent constructor changed in 2.4, and
423 when using python 2.4. The parent constructor changed in 2.4, and
397 we need to track it directly (we can't call it, as it messes up
424 we need to track it directly (we can't call it, as it messes up
398 readline and tab-completion inside our pdb would stop working).
425 readline and tab-completion inside our pdb would stop working).
399 After a bug report by R. Bernstein <rocky-AT-panix.com>.
426 After a bug report by R. Bernstein <rocky-AT-panix.com>.
400
427
401 2006-01-16 Ville Vainio <vivainio@gmail.com>
428 2006-01-16 Ville Vainio <vivainio@gmail.com>
402
429
403 * Ipython/magic.py:Reverted back to old %edit functionality
430 * Ipython/magic.py:Reverted back to old %edit functionality
404 that returns file contents on exit.
431 that returns file contents on exit.
405
432
406 * IPython/path.py: Added Jason Orendorff's "path" module to
433 * IPython/path.py: Added Jason Orendorff's "path" module to
407 IPython tree, http://www.jorendorff.com/articles/python/path/.
434 IPython tree, http://www.jorendorff.com/articles/python/path/.
408 You can get path objects conveniently through %sc, and !!, e.g.:
435 You can get path objects conveniently through %sc, and !!, e.g.:
409 sc files=ls
436 sc files=ls
410 for p in files.paths: # or files.p
437 for p in files.paths: # or files.p
411 print p,p.mtime
438 print p,p.mtime
412
439
413 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
440 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
414 now work again without considering the exclusion regexp -
441 now work again without considering the exclusion regexp -
415 hence, things like ',foo my/path' turn to 'foo("my/path")'
442 hence, things like ',foo my/path' turn to 'foo("my/path")'
416 instead of syntax error.
443 instead of syntax error.
417
444
418
445
419 2006-01-14 Ville Vainio <vivainio@gmail.com>
446 2006-01-14 Ville Vainio <vivainio@gmail.com>
420
447
421 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
448 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
422 ipapi decorators for python 2.4 users, options() provides access to rc
449 ipapi decorators for python 2.4 users, options() provides access to rc
423 data.
450 data.
424
451
425 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
452 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
426 as path separators (even on Linux ;-). Space character after
453 as path separators (even on Linux ;-). Space character after
427 backslash (as yielded by tab completer) is still space;
454 backslash (as yielded by tab completer) is still space;
428 "%cd long\ name" works as expected.
455 "%cd long\ name" works as expected.
429
456
430 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
457 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
431 as "chain of command", with priority. API stays the same,
458 as "chain of command", with priority. API stays the same,
432 TryNext exception raised by a hook function signals that
459 TryNext exception raised by a hook function signals that
433 current hook failed and next hook should try handling it, as
460 current hook failed and next hook should try handling it, as
434 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
461 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
435 requested configurable display hook, which is now implemented.
462 requested configurable display hook, which is now implemented.
436
463
437 2006-01-13 Ville Vainio <vivainio@gmail.com>
464 2006-01-13 Ville Vainio <vivainio@gmail.com>
438
465
439 * IPython/platutils*.py: platform specific utility functions,
466 * IPython/platutils*.py: platform specific utility functions,
440 so far only set_term_title is implemented (change terminal
467 so far only set_term_title is implemented (change terminal
441 label in windowing systems). %cd now changes the title to
468 label in windowing systems). %cd now changes the title to
442 current dir.
469 current dir.
443
470
444 * IPython/Release.py: Added myself to "authors" list,
471 * IPython/Release.py: Added myself to "authors" list,
445 had to create new files.
472 had to create new files.
446
473
447 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
474 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
448 shell escape; not a known bug but had potential to be one in the
475 shell escape; not a known bug but had potential to be one in the
449 future.
476 future.
450
477
451 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
478 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
452 extension API for IPython! See the module for usage example. Fix
479 extension API for IPython! See the module for usage example. Fix
453 OInspect for docstring-less magic functions.
480 OInspect for docstring-less magic functions.
454
481
455
482
456 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
483 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
457
484
458 * IPython/iplib.py (raw_input): temporarily deactivate all
485 * IPython/iplib.py (raw_input): temporarily deactivate all
459 attempts at allowing pasting of code with autoindent on. It
486 attempts at allowing pasting of code with autoindent on. It
460 introduced bugs (reported by Prabhu) and I can't seem to find a
487 introduced bugs (reported by Prabhu) and I can't seem to find a
461 robust combination which works in all cases. Will have to revisit
488 robust combination which works in all cases. Will have to revisit
462 later.
489 later.
463
490
464 * IPython/genutils.py: remove isspace() function. We've dropped
491 * IPython/genutils.py: remove isspace() function. We've dropped
465 2.2 compatibility, so it's OK to use the string method.
492 2.2 compatibility, so it's OK to use the string method.
466
493
467 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
494 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
468
495
469 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
496 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
470 matching what NOT to autocall on, to include all python binary
497 matching what NOT to autocall on, to include all python binary
471 operators (including things like 'and', 'or', 'is' and 'in').
498 operators (including things like 'and', 'or', 'is' and 'in').
472 Prompted by a bug report on 'foo & bar', but I realized we had
499 Prompted by a bug report on 'foo & bar', but I realized we had
473 many more potential bug cases with other operators. The regexp is
500 many more potential bug cases with other operators. The regexp is
474 self.re_exclude_auto, it's fairly commented.
501 self.re_exclude_auto, it's fairly commented.
475
502
476 2006-01-12 Ville Vainio <vivainio@gmail.com>
503 2006-01-12 Ville Vainio <vivainio@gmail.com>
477
504
478 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
505 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
479 Prettified and hardened string/backslash quoting with ipsystem(),
506 Prettified and hardened string/backslash quoting with ipsystem(),
480 ipalias() and ipmagic(). Now even \ characters are passed to
507 ipalias() and ipmagic(). Now even \ characters are passed to
481 %magics, !shell escapes and aliases exactly as they are in the
508 %magics, !shell escapes and aliases exactly as they are in the
482 ipython command line. Should improve backslash experience,
509 ipython command line. Should improve backslash experience,
483 particularly in Windows (path delimiter for some commands that
510 particularly in Windows (path delimiter for some commands that
484 won't understand '/'), but Unix benefits as well (regexps). %cd
511 won't understand '/'), but Unix benefits as well (regexps). %cd
485 magic still doesn't support backslash path delimiters, though. Also
512 magic still doesn't support backslash path delimiters, though. Also
486 deleted all pretense of supporting multiline command strings in
513 deleted all pretense of supporting multiline command strings in
487 !system or %magic commands. Thanks to Jerry McRae for suggestions.
514 !system or %magic commands. Thanks to Jerry McRae for suggestions.
488
515
489 * doc/build_doc_instructions.txt added. Documentation on how to
516 * doc/build_doc_instructions.txt added. Documentation on how to
490 use doc/update_manual.py, added yesterday. Both files contributed
517 use doc/update_manual.py, added yesterday. Both files contributed
491 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
518 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
492 doc/*.sh for deprecation at a later date.
519 doc/*.sh for deprecation at a later date.
493
520
494 * /ipython.py Added ipython.py to root directory for
521 * /ipython.py Added ipython.py to root directory for
495 zero-installation (tar xzvf ipython.tgz; cd ipython; python
522 zero-installation (tar xzvf ipython.tgz; cd ipython; python
496 ipython.py) and development convenience (no need to kee doing
523 ipython.py) and development convenience (no need to kee doing
497 "setup.py install" between changes).
524 "setup.py install" between changes).
498
525
499 * Made ! and !! shell escapes work (again) in multiline expressions:
526 * Made ! and !! shell escapes work (again) in multiline expressions:
500 if 1:
527 if 1:
501 !ls
528 !ls
502 !!ls
529 !!ls
503
530
504 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
531 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
505
532
506 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
533 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
507 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
534 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
508 module in case-insensitive installation. Was causing crashes
535 module in case-insensitive installation. Was causing crashes
509 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
536 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
510
537
511 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
538 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
512 <marienz-AT-gentoo.org>, closes
539 <marienz-AT-gentoo.org>, closes
513 http://www.scipy.net/roundup/ipython/issue51.
540 http://www.scipy.net/roundup/ipython/issue51.
514
541
515 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
542 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
516
543
517 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
544 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
518 problem of excessive CPU usage under *nix and keyboard lag under
545 problem of excessive CPU usage under *nix and keyboard lag under
519 win32.
546 win32.
520
547
521 2006-01-10 *** Released version 0.7.0
548 2006-01-10 *** Released version 0.7.0
522
549
523 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
550 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
524
551
525 * IPython/Release.py (revision): tag version number to 0.7.0,
552 * IPython/Release.py (revision): tag version number to 0.7.0,
526 ready for release.
553 ready for release.
527
554
528 * IPython/Magic.py (magic_edit): Add print statement to %edit so
555 * IPython/Magic.py (magic_edit): Add print statement to %edit so
529 it informs the user of the name of the temp. file used. This can
556 it informs the user of the name of the temp. file used. This can
530 help if you decide later to reuse that same file, so you know
557 help if you decide later to reuse that same file, so you know
531 where to copy the info from.
558 where to copy the info from.
532
559
533 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
560 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
534
561
535 * setup_bdist_egg.py: little script to build an egg. Added
562 * setup_bdist_egg.py: little script to build an egg. Added
536 support in the release tools as well.
563 support in the release tools as well.
537
564
538 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
565 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
539
566
540 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
567 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
541 version selection (new -wxversion command line and ipythonrc
568 version selection (new -wxversion command line and ipythonrc
542 parameter). Patch contributed by Arnd Baecker
569 parameter). Patch contributed by Arnd Baecker
543 <arnd.baecker-AT-web.de>.
570 <arnd.baecker-AT-web.de>.
544
571
545 * IPython/iplib.py (embed_mainloop): fix tab-completion in
572 * IPython/iplib.py (embed_mainloop): fix tab-completion in
546 embedded instances, for variables defined at the interactive
573 embedded instances, for variables defined at the interactive
547 prompt of the embedded ipython. Reported by Arnd.
574 prompt of the embedded ipython. Reported by Arnd.
548
575
549 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
576 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
550 it can be used as a (stateful) toggle, or with a direct parameter.
577 it can be used as a (stateful) toggle, or with a direct parameter.
551
578
552 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
579 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
553 could be triggered in certain cases and cause the traceback
580 could be triggered in certain cases and cause the traceback
554 printer not to work.
581 printer not to work.
555
582
556 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
583 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
557
584
558 * IPython/iplib.py (_should_recompile): Small fix, closes
585 * IPython/iplib.py (_should_recompile): Small fix, closes
559 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
586 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
560
587
561 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
588 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
562
589
563 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
590 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
564 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
591 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
565 Moad for help with tracking it down.
592 Moad for help with tracking it down.
566
593
567 * IPython/iplib.py (handle_auto): fix autocall handling for
594 * IPython/iplib.py (handle_auto): fix autocall handling for
568 objects which support BOTH __getitem__ and __call__ (so that f [x]
595 objects which support BOTH __getitem__ and __call__ (so that f [x]
569 is left alone, instead of becoming f([x]) automatically).
596 is left alone, instead of becoming f([x]) automatically).
570
597
571 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
598 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
572 Ville's patch.
599 Ville's patch.
573
600
574 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
601 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
575
602
576 * IPython/iplib.py (handle_auto): changed autocall semantics to
603 * IPython/iplib.py (handle_auto): changed autocall semantics to
577 include 'smart' mode, where the autocall transformation is NOT
604 include 'smart' mode, where the autocall transformation is NOT
578 applied if there are no arguments on the line. This allows you to
605 applied if there are no arguments on the line. This allows you to
579 just type 'foo' if foo is a callable to see its internal form,
606 just type 'foo' if foo is a callable to see its internal form,
580 instead of having it called with no arguments (typically a
607 instead of having it called with no arguments (typically a
581 mistake). The old 'full' autocall still exists: for that, you
608 mistake). The old 'full' autocall still exists: for that, you
582 need to set the 'autocall' parameter to 2 in your ipythonrc file.
609 need to set the 'autocall' parameter to 2 in your ipythonrc file.
583
610
584 * IPython/completer.py (Completer.attr_matches): add
611 * IPython/completer.py (Completer.attr_matches): add
585 tab-completion support for Enthoughts' traits. After a report by
612 tab-completion support for Enthoughts' traits. After a report by
586 Arnd and a patch by Prabhu.
613 Arnd and a patch by Prabhu.
587
614
588 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
615 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
589
616
590 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
617 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
591 Schmolck's patch to fix inspect.getinnerframes().
618 Schmolck's patch to fix inspect.getinnerframes().
592
619
593 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
620 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
594 for embedded instances, regarding handling of namespaces and items
621 for embedded instances, regarding handling of namespaces and items
595 added to the __builtin__ one. Multiple embedded instances and
622 added to the __builtin__ one. Multiple embedded instances and
596 recursive embeddings should work better now (though I'm not sure
623 recursive embeddings should work better now (though I'm not sure
597 I've got all the corner cases fixed, that code is a bit of a brain
624 I've got all the corner cases fixed, that code is a bit of a brain
598 twister).
625 twister).
599
626
600 * IPython/Magic.py (magic_edit): added support to edit in-memory
627 * IPython/Magic.py (magic_edit): added support to edit in-memory
601 macros (automatically creates the necessary temp files). %edit
628 macros (automatically creates the necessary temp files). %edit
602 also doesn't return the file contents anymore, it's just noise.
629 also doesn't return the file contents anymore, it's just noise.
603
630
604 * IPython/completer.py (Completer.attr_matches): revert change to
631 * IPython/completer.py (Completer.attr_matches): revert change to
605 complete only on attributes listed in __all__. I realized it
632 complete only on attributes listed in __all__. I realized it
606 cripples the tab-completion system as a tool for exploring the
633 cripples the tab-completion system as a tool for exploring the
607 internals of unknown libraries (it renders any non-__all__
634 internals of unknown libraries (it renders any non-__all__
608 attribute off-limits). I got bit by this when trying to see
635 attribute off-limits). I got bit by this when trying to see
609 something inside the dis module.
636 something inside the dis module.
610
637
611 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
638 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
612
639
613 * IPython/iplib.py (InteractiveShell.__init__): add .meta
640 * IPython/iplib.py (InteractiveShell.__init__): add .meta
614 namespace for users and extension writers to hold data in. This
641 namespace for users and extension writers to hold data in. This
615 follows the discussion in
642 follows the discussion in
616 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
643 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
617
644
618 * IPython/completer.py (IPCompleter.complete): small patch to help
645 * IPython/completer.py (IPCompleter.complete): small patch to help
619 tab-completion under Emacs, after a suggestion by John Barnard
646 tab-completion under Emacs, after a suggestion by John Barnard
620 <barnarj-AT-ccf.org>.
647 <barnarj-AT-ccf.org>.
621
648
622 * IPython/Magic.py (Magic.extract_input_slices): added support for
649 * IPython/Magic.py (Magic.extract_input_slices): added support for
623 the slice notation in magics to use N-M to represent numbers N...M
650 the slice notation in magics to use N-M to represent numbers N...M
624 (closed endpoints). This is used by %macro and %save.
651 (closed endpoints). This is used by %macro and %save.
625
652
626 * IPython/completer.py (Completer.attr_matches): for modules which
653 * IPython/completer.py (Completer.attr_matches): for modules which
627 define __all__, complete only on those. After a patch by Jeffrey
654 define __all__, complete only on those. After a patch by Jeffrey
628 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
655 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
629 speed up this routine.
656 speed up this routine.
630
657
631 * IPython/Logger.py (Logger.log): fix a history handling bug. I
658 * IPython/Logger.py (Logger.log): fix a history handling bug. I
632 don't know if this is the end of it, but the behavior now is
659 don't know if this is the end of it, but the behavior now is
633 certainly much more correct. Note that coupled with macros,
660 certainly much more correct. Note that coupled with macros,
634 slightly surprising (at first) behavior may occur: a macro will in
661 slightly surprising (at first) behavior may occur: a macro will in
635 general expand to multiple lines of input, so upon exiting, the
662 general expand to multiple lines of input, so upon exiting, the
636 in/out counters will both be bumped by the corresponding amount
663 in/out counters will both be bumped by the corresponding amount
637 (as if the macro's contents had been typed interactively). Typing
664 (as if the macro's contents had been typed interactively). Typing
638 %hist will reveal the intermediate (silently processed) lines.
665 %hist will reveal the intermediate (silently processed) lines.
639
666
640 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
667 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
641 pickle to fail (%run was overwriting __main__ and not restoring
668 pickle to fail (%run was overwriting __main__ and not restoring
642 it, but pickle relies on __main__ to operate).
669 it, but pickle relies on __main__ to operate).
643
670
644 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
671 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
645 using properties, but forgot to make the main InteractiveShell
672 using properties, but forgot to make the main InteractiveShell
646 class a new-style class. Properties fail silently, and
673 class a new-style class. Properties fail silently, and
647 misteriously, with old-style class (getters work, but
674 misteriously, with old-style class (getters work, but
648 setters don't do anything).
675 setters don't do anything).
649
676
650 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
677 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
651
678
652 * IPython/Magic.py (magic_history): fix history reporting bug (I
679 * IPython/Magic.py (magic_history): fix history reporting bug (I
653 know some nasties are still there, I just can't seem to find a
680 know some nasties are still there, I just can't seem to find a
654 reproducible test case to track them down; the input history is
681 reproducible test case to track them down; the input history is
655 falling out of sync...)
682 falling out of sync...)
656
683
657 * IPython/iplib.py (handle_shell_escape): fix bug where both
684 * IPython/iplib.py (handle_shell_escape): fix bug where both
658 aliases and system accesses where broken for indented code (such
685 aliases and system accesses where broken for indented code (such
659 as loops).
686 as loops).
660
687
661 * IPython/genutils.py (shell): fix small but critical bug for
688 * IPython/genutils.py (shell): fix small but critical bug for
662 win32 system access.
689 win32 system access.
663
690
664 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
691 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
665
692
666 * IPython/iplib.py (showtraceback): remove use of the
693 * IPython/iplib.py (showtraceback): remove use of the
667 sys.last_{type/value/traceback} structures, which are non
694 sys.last_{type/value/traceback} structures, which are non
668 thread-safe.
695 thread-safe.
669 (_prefilter): change control flow to ensure that we NEVER
696 (_prefilter): change control flow to ensure that we NEVER
670 introspect objects when autocall is off. This will guarantee that
697 introspect objects when autocall is off. This will guarantee that
671 having an input line of the form 'x.y', where access to attribute
698 having an input line of the form 'x.y', where access to attribute
672 'y' has side effects, doesn't trigger the side effect TWICE. It
699 'y' has side effects, doesn't trigger the side effect TWICE. It
673 is important to note that, with autocall on, these side effects
700 is important to note that, with autocall on, these side effects
674 can still happen.
701 can still happen.
675 (ipsystem): new builtin, to complete the ip{magic/alias/system}
702 (ipsystem): new builtin, to complete the ip{magic/alias/system}
676 trio. IPython offers these three kinds of special calls which are
703 trio. IPython offers these three kinds of special calls which are
677 not python code, and it's a good thing to have their call method
704 not python code, and it's a good thing to have their call method
678 be accessible as pure python functions (not just special syntax at
705 be accessible as pure python functions (not just special syntax at
679 the command line). It gives us a better internal implementation
706 the command line). It gives us a better internal implementation
680 structure, as well as exposing these for user scripting more
707 structure, as well as exposing these for user scripting more
681 cleanly.
708 cleanly.
682
709
683 * IPython/macro.py (Macro.__init__): moved macros to a standalone
710 * IPython/macro.py (Macro.__init__): moved macros to a standalone
684 file. Now that they'll be more likely to be used with the
711 file. Now that they'll be more likely to be used with the
685 persistance system (%store), I want to make sure their module path
712 persistance system (%store), I want to make sure their module path
686 doesn't change in the future, so that we don't break things for
713 doesn't change in the future, so that we don't break things for
687 users' persisted data.
714 users' persisted data.
688
715
689 * IPython/iplib.py (autoindent_update): move indentation
716 * IPython/iplib.py (autoindent_update): move indentation
690 management into the _text_ processing loop, not the keyboard
717 management into the _text_ processing loop, not the keyboard
691 interactive one. This is necessary to correctly process non-typed
718 interactive one. This is necessary to correctly process non-typed
692 multiline input (such as macros).
719 multiline input (such as macros).
693
720
694 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
721 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
695 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
722 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
696 which was producing problems in the resulting manual.
723 which was producing problems in the resulting manual.
697 (magic_whos): improve reporting of instances (show their class,
724 (magic_whos): improve reporting of instances (show their class,
698 instead of simply printing 'instance' which isn't terribly
725 instead of simply printing 'instance' which isn't terribly
699 informative).
726 informative).
700
727
701 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
728 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
702 (minor mods) to support network shares under win32.
729 (minor mods) to support network shares under win32.
703
730
704 * IPython/winconsole.py (get_console_size): add new winconsole
731 * IPython/winconsole.py (get_console_size): add new winconsole
705 module and fixes to page_dumb() to improve its behavior under
732 module and fixes to page_dumb() to improve its behavior under
706 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
733 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
707
734
708 * IPython/Magic.py (Macro): simplified Macro class to just
735 * IPython/Magic.py (Macro): simplified Macro class to just
709 subclass list. We've had only 2.2 compatibility for a very long
736 subclass list. We've had only 2.2 compatibility for a very long
710 time, yet I was still avoiding subclassing the builtin types. No
737 time, yet I was still avoiding subclassing the builtin types. No
711 more (I'm also starting to use properties, though I won't shift to
738 more (I'm also starting to use properties, though I won't shift to
712 2.3-specific features quite yet).
739 2.3-specific features quite yet).
713 (magic_store): added Ville's patch for lightweight variable
740 (magic_store): added Ville's patch for lightweight variable
714 persistence, after a request on the user list by Matt Wilkie
741 persistence, after a request on the user list by Matt Wilkie
715 <maphew-AT-gmail.com>. The new %store magic's docstring has full
742 <maphew-AT-gmail.com>. The new %store magic's docstring has full
716 details.
743 details.
717
744
718 * IPython/iplib.py (InteractiveShell.post_config_initialization):
745 * IPython/iplib.py (InteractiveShell.post_config_initialization):
719 changed the default logfile name from 'ipython.log' to
746 changed the default logfile name from 'ipython.log' to
720 'ipython_log.py'. These logs are real python files, and now that
747 'ipython_log.py'. These logs are real python files, and now that
721 we have much better multiline support, people are more likely to
748 we have much better multiline support, people are more likely to
722 want to use them as such. Might as well name them correctly.
749 want to use them as such. Might as well name them correctly.
723
750
724 * IPython/Magic.py: substantial cleanup. While we can't stop
751 * IPython/Magic.py: substantial cleanup. While we can't stop
725 using magics as mixins, due to the existing customizations 'out
752 using magics as mixins, due to the existing customizations 'out
726 there' which rely on the mixin naming conventions, at least I
753 there' which rely on the mixin naming conventions, at least I
727 cleaned out all cross-class name usage. So once we are OK with
754 cleaned out all cross-class name usage. So once we are OK with
728 breaking compatibility, the two systems can be separated.
755 breaking compatibility, the two systems can be separated.
729
756
730 * IPython/Logger.py: major cleanup. This one is NOT a mixin
757 * IPython/Logger.py: major cleanup. This one is NOT a mixin
731 anymore, and the class is a fair bit less hideous as well. New
758 anymore, and the class is a fair bit less hideous as well. New
732 features were also introduced: timestamping of input, and logging
759 features were also introduced: timestamping of input, and logging
733 of output results. These are user-visible with the -t and -o
760 of output results. These are user-visible with the -t and -o
734 options to %logstart. Closes
761 options to %logstart. Closes
735 http://www.scipy.net/roundup/ipython/issue11 and a request by
762 http://www.scipy.net/roundup/ipython/issue11 and a request by
736 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
763 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
737
764
738 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
765 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
739
766
740 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
767 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
741 better hadnle backslashes in paths. See the thread 'More Windows
768 better hadnle backslashes in paths. See the thread 'More Windows
742 questions part 2 - \/ characters revisited' on the iypthon user
769 questions part 2 - \/ characters revisited' on the iypthon user
743 list:
770 list:
744 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
771 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
745
772
746 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
773 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
747
774
748 (InteractiveShell.__init__): change threaded shells to not use the
775 (InteractiveShell.__init__): change threaded shells to not use the
749 ipython crash handler. This was causing more problems than not,
776 ipython crash handler. This was causing more problems than not,
750 as exceptions in the main thread (GUI code, typically) would
777 as exceptions in the main thread (GUI code, typically) would
751 always show up as a 'crash', when they really weren't.
778 always show up as a 'crash', when they really weren't.
752
779
753 The colors and exception mode commands (%colors/%xmode) have been
780 The colors and exception mode commands (%colors/%xmode) have been
754 synchronized to also take this into account, so users can get
781 synchronized to also take this into account, so users can get
755 verbose exceptions for their threaded code as well. I also added
782 verbose exceptions for their threaded code as well. I also added
756 support for activating pdb inside this exception handler as well,
783 support for activating pdb inside this exception handler as well,
757 so now GUI authors can use IPython's enhanced pdb at runtime.
784 so now GUI authors can use IPython's enhanced pdb at runtime.
758
785
759 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
786 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
760 true by default, and add it to the shipped ipythonrc file. Since
787 true by default, and add it to the shipped ipythonrc file. Since
761 this asks the user before proceeding, I think it's OK to make it
788 this asks the user before proceeding, I think it's OK to make it
762 true by default.
789 true by default.
763
790
764 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
791 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
765 of the previous special-casing of input in the eval loop. I think
792 of the previous special-casing of input in the eval loop. I think
766 this is cleaner, as they really are commands and shouldn't have
793 this is cleaner, as they really are commands and shouldn't have
767 a special role in the middle of the core code.
794 a special role in the middle of the core code.
768
795
769 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
796 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
770
797
771 * IPython/iplib.py (edit_syntax_error): added support for
798 * IPython/iplib.py (edit_syntax_error): added support for
772 automatically reopening the editor if the file had a syntax error
799 automatically reopening the editor if the file had a syntax error
773 in it. Thanks to scottt who provided the patch at:
800 in it. Thanks to scottt who provided the patch at:
774 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
801 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
775 version committed).
802 version committed).
776
803
777 * IPython/iplib.py (handle_normal): add suport for multi-line
804 * IPython/iplib.py (handle_normal): add suport for multi-line
778 input with emtpy lines. This fixes
805 input with emtpy lines. This fixes
779 http://www.scipy.net/roundup/ipython/issue43 and a similar
806 http://www.scipy.net/roundup/ipython/issue43 and a similar
780 discussion on the user list.
807 discussion on the user list.
781
808
782 WARNING: a behavior change is necessarily introduced to support
809 WARNING: a behavior change is necessarily introduced to support
783 blank lines: now a single blank line with whitespace does NOT
810 blank lines: now a single blank line with whitespace does NOT
784 break the input loop, which means that when autoindent is on, by
811 break the input loop, which means that when autoindent is on, by
785 default hitting return on the next (indented) line does NOT exit.
812 default hitting return on the next (indented) line does NOT exit.
786
813
787 Instead, to exit a multiline input you can either have:
814 Instead, to exit a multiline input you can either have:
788
815
789 - TWO whitespace lines (just hit return again), or
816 - TWO whitespace lines (just hit return again), or
790 - a single whitespace line of a different length than provided
817 - a single whitespace line of a different length than provided
791 by the autoindent (add or remove a space).
818 by the autoindent (add or remove a space).
792
819
793 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
820 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
794 module to better organize all readline-related functionality.
821 module to better organize all readline-related functionality.
795 I've deleted FlexCompleter and put all completion clases here.
822 I've deleted FlexCompleter and put all completion clases here.
796
823
797 * IPython/iplib.py (raw_input): improve indentation management.
824 * IPython/iplib.py (raw_input): improve indentation management.
798 It is now possible to paste indented code with autoindent on, and
825 It is now possible to paste indented code with autoindent on, and
799 the code is interpreted correctly (though it still looks bad on
826 the code is interpreted correctly (though it still looks bad on
800 screen, due to the line-oriented nature of ipython).
827 screen, due to the line-oriented nature of ipython).
801 (MagicCompleter.complete): change behavior so that a TAB key on an
828 (MagicCompleter.complete): change behavior so that a TAB key on an
802 otherwise empty line actually inserts a tab, instead of completing
829 otherwise empty line actually inserts a tab, instead of completing
803 on the entire global namespace. This makes it easier to use the
830 on the entire global namespace. This makes it easier to use the
804 TAB key for indentation. After a request by Hans Meine
831 TAB key for indentation. After a request by Hans Meine
805 <hans_meine-AT-gmx.net>
832 <hans_meine-AT-gmx.net>
806 (_prefilter): add support so that typing plain 'exit' or 'quit'
833 (_prefilter): add support so that typing plain 'exit' or 'quit'
807 does a sensible thing. Originally I tried to deviate as little as
834 does a sensible thing. Originally I tried to deviate as little as
808 possible from the default python behavior, but even that one may
835 possible from the default python behavior, but even that one may
809 change in this direction (thread on python-dev to that effect).
836 change in this direction (thread on python-dev to that effect).
810 Regardless, ipython should do the right thing even if CPython's
837 Regardless, ipython should do the right thing even if CPython's
811 '>>>' prompt doesn't.
838 '>>>' prompt doesn't.
812 (InteractiveShell): removed subclassing code.InteractiveConsole
839 (InteractiveShell): removed subclassing code.InteractiveConsole
813 class. By now we'd overridden just about all of its methods: I've
840 class. By now we'd overridden just about all of its methods: I've
814 copied the remaining two over, and now ipython is a standalone
841 copied the remaining two over, and now ipython is a standalone
815 class. This will provide a clearer picture for the chainsaw
842 class. This will provide a clearer picture for the chainsaw
816 branch refactoring.
843 branch refactoring.
817
844
818 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
845 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
819
846
820 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
847 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
821 failures for objects which break when dir() is called on them.
848 failures for objects which break when dir() is called on them.
822
849
823 * IPython/FlexCompleter.py (Completer.__init__): Added support for
850 * IPython/FlexCompleter.py (Completer.__init__): Added support for
824 distinct local and global namespaces in the completer API. This
851 distinct local and global namespaces in the completer API. This
825 change allows us top properly handle completion with distinct
852 change allows us top properly handle completion with distinct
826 scopes, including in embedded instances (this had never really
853 scopes, including in embedded instances (this had never really
827 worked correctly).
854 worked correctly).
828
855
829 Note: this introduces a change in the constructor for
856 Note: this introduces a change in the constructor for
830 MagicCompleter, as a new global_namespace parameter is now the
857 MagicCompleter, as a new global_namespace parameter is now the
831 second argument (the others were bumped one position).
858 second argument (the others were bumped one position).
832
859
833 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
860 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
834
861
835 * IPython/iplib.py (embed_mainloop): fix tab-completion in
862 * IPython/iplib.py (embed_mainloop): fix tab-completion in
836 embedded instances (which can be done now thanks to Vivian's
863 embedded instances (which can be done now thanks to Vivian's
837 frame-handling fixes for pdb).
864 frame-handling fixes for pdb).
838 (InteractiveShell.__init__): Fix namespace handling problem in
865 (InteractiveShell.__init__): Fix namespace handling problem in
839 embedded instances. We were overwriting __main__ unconditionally,
866 embedded instances. We were overwriting __main__ unconditionally,
840 and this should only be done for 'full' (non-embedded) IPython;
867 and this should only be done for 'full' (non-embedded) IPython;
841 embedded instances must respect the caller's __main__. Thanks to
868 embedded instances must respect the caller's __main__. Thanks to
842 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
869 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
843
870
844 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
871 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
845
872
846 * setup.py: added download_url to setup(). This registers the
873 * setup.py: added download_url to setup(). This registers the
847 download address at PyPI, which is not only useful to humans
874 download address at PyPI, which is not only useful to humans
848 browsing the site, but is also picked up by setuptools (the Eggs
875 browsing the site, but is also picked up by setuptools (the Eggs
849 machinery). Thanks to Ville and R. Kern for the info/discussion
876 machinery). Thanks to Ville and R. Kern for the info/discussion
850 on this.
877 on this.
851
878
852 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
879 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
853
880
854 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
881 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
855 This brings a lot of nice functionality to the pdb mode, which now
882 This brings a lot of nice functionality to the pdb mode, which now
856 has tab-completion, syntax highlighting, and better stack handling
883 has tab-completion, syntax highlighting, and better stack handling
857 than before. Many thanks to Vivian De Smedt
884 than before. Many thanks to Vivian De Smedt
858 <vivian-AT-vdesmedt.com> for the original patches.
885 <vivian-AT-vdesmedt.com> for the original patches.
859
886
860 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
887 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
861
888
862 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
889 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
863 sequence to consistently accept the banner argument. The
890 sequence to consistently accept the banner argument. The
864 inconsistency was tripping SAGE, thanks to Gary Zablackis
891 inconsistency was tripping SAGE, thanks to Gary Zablackis
865 <gzabl-AT-yahoo.com> for the report.
892 <gzabl-AT-yahoo.com> for the report.
866
893
867 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
894 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
868
895
869 * IPython/iplib.py (InteractiveShell.post_config_initialization):
896 * IPython/iplib.py (InteractiveShell.post_config_initialization):
870 Fix bug where a naked 'alias' call in the ipythonrc file would
897 Fix bug where a naked 'alias' call in the ipythonrc file would
871 cause a crash. Bug reported by Jorgen Stenarson.
898 cause a crash. Bug reported by Jorgen Stenarson.
872
899
873 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
900 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
874
901
875 * IPython/ipmaker.py (make_IPython): cleanups which should improve
902 * IPython/ipmaker.py (make_IPython): cleanups which should improve
876 startup time.
903 startup time.
877
904
878 * IPython/iplib.py (runcode): my globals 'fix' for embedded
905 * IPython/iplib.py (runcode): my globals 'fix' for embedded
879 instances had introduced a bug with globals in normal code. Now
906 instances had introduced a bug with globals in normal code. Now
880 it's working in all cases.
907 it's working in all cases.
881
908
882 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
909 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
883 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
910 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
884 has been introduced to set the default case sensitivity of the
911 has been introduced to set the default case sensitivity of the
885 searches. Users can still select either mode at runtime on a
912 searches. Users can still select either mode at runtime on a
886 per-search basis.
913 per-search basis.
887
914
888 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
915 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
889
916
890 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
917 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
891 attributes in wildcard searches for subclasses. Modified version
918 attributes in wildcard searches for subclasses. Modified version
892 of a patch by Jorgen.
919 of a patch by Jorgen.
893
920
894 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
921 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
895
922
896 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
923 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
897 embedded instances. I added a user_global_ns attribute to the
924 embedded instances. I added a user_global_ns attribute to the
898 InteractiveShell class to handle this.
925 InteractiveShell class to handle this.
899
926
900 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
927 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
901
928
902 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
929 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
903 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
930 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
904 (reported under win32, but may happen also in other platforms).
931 (reported under win32, but may happen also in other platforms).
905 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
932 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
906
933
907 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
934 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
908
935
909 * IPython/Magic.py (magic_psearch): new support for wildcard
936 * IPython/Magic.py (magic_psearch): new support for wildcard
910 patterns. Now, typing ?a*b will list all names which begin with a
937 patterns. Now, typing ?a*b will list all names which begin with a
911 and end in b, for example. The %psearch magic has full
938 and end in b, for example. The %psearch magic has full
912 docstrings. Many thanks to JΓΆrgen Stenarson
939 docstrings. Many thanks to JΓΆrgen Stenarson
913 <jorgen.stenarson-AT-bostream.nu>, author of the patches
940 <jorgen.stenarson-AT-bostream.nu>, author of the patches
914 implementing this functionality.
941 implementing this functionality.
915
942
916 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
943 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
917
944
918 * Manual: fixed long-standing annoyance of double-dashes (as in
945 * Manual: fixed long-standing annoyance of double-dashes (as in
919 --prefix=~, for example) being stripped in the HTML version. This
946 --prefix=~, for example) being stripped in the HTML version. This
920 is a latex2html bug, but a workaround was provided. Many thanks
947 is a latex2html bug, but a workaround was provided. Many thanks
921 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
948 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
922 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
949 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
923 rolling. This seemingly small issue had tripped a number of users
950 rolling. This seemingly small issue had tripped a number of users
924 when first installing, so I'm glad to see it gone.
951 when first installing, so I'm glad to see it gone.
925
952
926 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
953 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
927
954
928 * IPython/Extensions/numeric_formats.py: fix missing import,
955 * IPython/Extensions/numeric_formats.py: fix missing import,
929 reported by Stephen Walton.
956 reported by Stephen Walton.
930
957
931 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
958 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
932
959
933 * IPython/demo.py: finish demo module, fully documented now.
960 * IPython/demo.py: finish demo module, fully documented now.
934
961
935 * IPython/genutils.py (file_read): simple little utility to read a
962 * IPython/genutils.py (file_read): simple little utility to read a
936 file and ensure it's closed afterwards.
963 file and ensure it's closed afterwards.
937
964
938 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
965 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
939
966
940 * IPython/demo.py (Demo.__init__): added support for individually
967 * IPython/demo.py (Demo.__init__): added support for individually
941 tagging blocks for automatic execution.
968 tagging blocks for automatic execution.
942
969
943 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
970 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
944 syntax-highlighted python sources, requested by John.
971 syntax-highlighted python sources, requested by John.
945
972
946 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
973 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
947
974
948 * IPython/demo.py (Demo.again): fix bug where again() blocks after
975 * IPython/demo.py (Demo.again): fix bug where again() blocks after
949 finishing.
976 finishing.
950
977
951 * IPython/genutils.py (shlex_split): moved from Magic to here,
978 * IPython/genutils.py (shlex_split): moved from Magic to here,
952 where all 2.2 compatibility stuff lives. I needed it for demo.py.
979 where all 2.2 compatibility stuff lives. I needed it for demo.py.
953
980
954 * IPython/demo.py (Demo.__init__): added support for silent
981 * IPython/demo.py (Demo.__init__): added support for silent
955 blocks, improved marks as regexps, docstrings written.
982 blocks, improved marks as regexps, docstrings written.
956 (Demo.__init__): better docstring, added support for sys.argv.
983 (Demo.__init__): better docstring, added support for sys.argv.
957
984
958 * IPython/genutils.py (marquee): little utility used by the demo
985 * IPython/genutils.py (marquee): little utility used by the demo
959 code, handy in general.
986 code, handy in general.
960
987
961 * IPython/demo.py (Demo.__init__): new class for interactive
988 * IPython/demo.py (Demo.__init__): new class for interactive
962 demos. Not documented yet, I just wrote it in a hurry for
989 demos. Not documented yet, I just wrote it in a hurry for
963 scipy'05. Will docstring later.
990 scipy'05. Will docstring later.
964
991
965 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
992 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
966
993
967 * IPython/Shell.py (sigint_handler): Drastic simplification which
994 * IPython/Shell.py (sigint_handler): Drastic simplification which
968 also seems to make Ctrl-C work correctly across threads! This is
995 also seems to make Ctrl-C work correctly across threads! This is
969 so simple, that I can't beleive I'd missed it before. Needs more
996 so simple, that I can't beleive I'd missed it before. Needs more
970 testing, though.
997 testing, though.
971 (KBINT): Never mind, revert changes. I'm sure I'd tried something
998 (KBINT): Never mind, revert changes. I'm sure I'd tried something
972 like this before...
999 like this before...
973
1000
974 * IPython/genutils.py (get_home_dir): add protection against
1001 * IPython/genutils.py (get_home_dir): add protection against
975 non-dirs in win32 registry.
1002 non-dirs in win32 registry.
976
1003
977 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1004 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
978 bug where dict was mutated while iterating (pysh crash).
1005 bug where dict was mutated while iterating (pysh crash).
979
1006
980 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1007 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
981
1008
982 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1009 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
983 spurious newlines added by this routine. After a report by
1010 spurious newlines added by this routine. After a report by
984 F. Mantegazza.
1011 F. Mantegazza.
985
1012
986 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1013 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
987
1014
988 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1015 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
989 calls. These were a leftover from the GTK 1.x days, and can cause
1016 calls. These were a leftover from the GTK 1.x days, and can cause
990 problems in certain cases (after a report by John Hunter).
1017 problems in certain cases (after a report by John Hunter).
991
1018
992 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1019 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
993 os.getcwd() fails at init time. Thanks to patch from David Remahl
1020 os.getcwd() fails at init time. Thanks to patch from David Remahl
994 <chmod007-AT-mac.com>.
1021 <chmod007-AT-mac.com>.
995 (InteractiveShell.__init__): prevent certain special magics from
1022 (InteractiveShell.__init__): prevent certain special magics from
996 being shadowed by aliases. Closes
1023 being shadowed by aliases. Closes
997 http://www.scipy.net/roundup/ipython/issue41.
1024 http://www.scipy.net/roundup/ipython/issue41.
998
1025
999 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1026 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1000
1027
1001 * IPython/iplib.py (InteractiveShell.complete): Added new
1028 * IPython/iplib.py (InteractiveShell.complete): Added new
1002 top-level completion method to expose the completion mechanism
1029 top-level completion method to expose the completion mechanism
1003 beyond readline-based environments.
1030 beyond readline-based environments.
1004
1031
1005 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1032 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1006
1033
1007 * tools/ipsvnc (svnversion): fix svnversion capture.
1034 * tools/ipsvnc (svnversion): fix svnversion capture.
1008
1035
1009 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1036 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1010 attribute to self, which was missing. Before, it was set by a
1037 attribute to self, which was missing. Before, it was set by a
1011 routine which in certain cases wasn't being called, so the
1038 routine which in certain cases wasn't being called, so the
1012 instance could end up missing the attribute. This caused a crash.
1039 instance could end up missing the attribute. This caused a crash.
1013 Closes http://www.scipy.net/roundup/ipython/issue40.
1040 Closes http://www.scipy.net/roundup/ipython/issue40.
1014
1041
1015 2005-08-16 Fernando Perez <fperez@colorado.edu>
1042 2005-08-16 Fernando Perez <fperez@colorado.edu>
1016
1043
1017 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1044 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1018 contains non-string attribute. Closes
1045 contains non-string attribute. Closes
1019 http://www.scipy.net/roundup/ipython/issue38.
1046 http://www.scipy.net/roundup/ipython/issue38.
1020
1047
1021 2005-08-14 Fernando Perez <fperez@colorado.edu>
1048 2005-08-14 Fernando Perez <fperez@colorado.edu>
1022
1049
1023 * tools/ipsvnc: Minor improvements, to add changeset info.
1050 * tools/ipsvnc: Minor improvements, to add changeset info.
1024
1051
1025 2005-08-12 Fernando Perez <fperez@colorado.edu>
1052 2005-08-12 Fernando Perez <fperez@colorado.edu>
1026
1053
1027 * IPython/iplib.py (runsource): remove self.code_to_run_src
1054 * IPython/iplib.py (runsource): remove self.code_to_run_src
1028 attribute. I realized this is nothing more than
1055 attribute. I realized this is nothing more than
1029 '\n'.join(self.buffer), and having the same data in two different
1056 '\n'.join(self.buffer), and having the same data in two different
1030 places is just asking for synchronization bugs. This may impact
1057 places is just asking for synchronization bugs. This may impact
1031 people who have custom exception handlers, so I need to warn
1058 people who have custom exception handlers, so I need to warn
1032 ipython-dev about it (F. Mantegazza may use them).
1059 ipython-dev about it (F. Mantegazza may use them).
1033
1060
1034 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1061 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1035
1062
1036 * IPython/genutils.py: fix 2.2 compatibility (generators)
1063 * IPython/genutils.py: fix 2.2 compatibility (generators)
1037
1064
1038 2005-07-18 Fernando Perez <fperez@colorado.edu>
1065 2005-07-18 Fernando Perez <fperez@colorado.edu>
1039
1066
1040 * IPython/genutils.py (get_home_dir): fix to help users with
1067 * IPython/genutils.py (get_home_dir): fix to help users with
1041 invalid $HOME under win32.
1068 invalid $HOME under win32.
1042
1069
1043 2005-07-17 Fernando Perez <fperez@colorado.edu>
1070 2005-07-17 Fernando Perez <fperez@colorado.edu>
1044
1071
1045 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1072 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1046 some old hacks and clean up a bit other routines; code should be
1073 some old hacks and clean up a bit other routines; code should be
1047 simpler and a bit faster.
1074 simpler and a bit faster.
1048
1075
1049 * IPython/iplib.py (interact): removed some last-resort attempts
1076 * IPython/iplib.py (interact): removed some last-resort attempts
1050 to survive broken stdout/stderr. That code was only making it
1077 to survive broken stdout/stderr. That code was only making it
1051 harder to abstract out the i/o (necessary for gui integration),
1078 harder to abstract out the i/o (necessary for gui integration),
1052 and the crashes it could prevent were extremely rare in practice
1079 and the crashes it could prevent were extremely rare in practice
1053 (besides being fully user-induced in a pretty violent manner).
1080 (besides being fully user-induced in a pretty violent manner).
1054
1081
1055 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1082 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1056 Nothing major yet, but the code is simpler to read; this should
1083 Nothing major yet, but the code is simpler to read; this should
1057 make it easier to do more serious modifications in the future.
1084 make it easier to do more serious modifications in the future.
1058
1085
1059 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1086 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1060 which broke in .15 (thanks to a report by Ville).
1087 which broke in .15 (thanks to a report by Ville).
1061
1088
1062 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1089 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1063 be quite correct, I know next to nothing about unicode). This
1090 be quite correct, I know next to nothing about unicode). This
1064 will allow unicode strings to be used in prompts, amongst other
1091 will allow unicode strings to be used in prompts, amongst other
1065 cases. It also will prevent ipython from crashing when unicode
1092 cases. It also will prevent ipython from crashing when unicode
1066 shows up unexpectedly in many places. If ascii encoding fails, we
1093 shows up unexpectedly in many places. If ascii encoding fails, we
1067 assume utf_8. Currently the encoding is not a user-visible
1094 assume utf_8. Currently the encoding is not a user-visible
1068 setting, though it could be made so if there is demand for it.
1095 setting, though it could be made so if there is demand for it.
1069
1096
1070 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1097 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1071
1098
1072 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1099 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1073
1100
1074 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1101 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1075
1102
1076 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1103 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1077 code can work transparently for 2.2/2.3.
1104 code can work transparently for 2.2/2.3.
1078
1105
1079 2005-07-16 Fernando Perez <fperez@colorado.edu>
1106 2005-07-16 Fernando Perez <fperez@colorado.edu>
1080
1107
1081 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1108 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1082 out of the color scheme table used for coloring exception
1109 out of the color scheme table used for coloring exception
1083 tracebacks. This allows user code to add new schemes at runtime.
1110 tracebacks. This allows user code to add new schemes at runtime.
1084 This is a minimally modified version of the patch at
1111 This is a minimally modified version of the patch at
1085 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1112 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1086 for the contribution.
1113 for the contribution.
1087
1114
1088 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1115 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1089 slightly modified version of the patch in
1116 slightly modified version of the patch in
1090 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1117 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1091 to remove the previous try/except solution (which was costlier).
1118 to remove the previous try/except solution (which was costlier).
1092 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1119 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1093
1120
1094 2005-06-08 Fernando Perez <fperez@colorado.edu>
1121 2005-06-08 Fernando Perez <fperez@colorado.edu>
1095
1122
1096 * IPython/iplib.py (write/write_err): Add methods to abstract all
1123 * IPython/iplib.py (write/write_err): Add methods to abstract all
1097 I/O a bit more.
1124 I/O a bit more.
1098
1125
1099 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1126 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1100 warning, reported by Aric Hagberg, fix by JD Hunter.
1127 warning, reported by Aric Hagberg, fix by JD Hunter.
1101
1128
1102 2005-06-02 *** Released version 0.6.15
1129 2005-06-02 *** Released version 0.6.15
1103
1130
1104 2005-06-01 Fernando Perez <fperez@colorado.edu>
1131 2005-06-01 Fernando Perez <fperez@colorado.edu>
1105
1132
1106 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1133 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1107 tab-completion of filenames within open-quoted strings. Note that
1134 tab-completion of filenames within open-quoted strings. Note that
1108 this requires that in ~/.ipython/ipythonrc, users change the
1135 this requires that in ~/.ipython/ipythonrc, users change the
1109 readline delimiters configuration to read:
1136 readline delimiters configuration to read:
1110
1137
1111 readline_remove_delims -/~
1138 readline_remove_delims -/~
1112
1139
1113
1140
1114 2005-05-31 *** Released version 0.6.14
1141 2005-05-31 *** Released version 0.6.14
1115
1142
1116 2005-05-29 Fernando Perez <fperez@colorado.edu>
1143 2005-05-29 Fernando Perez <fperez@colorado.edu>
1117
1144
1118 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1145 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1119 with files not on the filesystem. Reported by Eliyahu Sandler
1146 with files not on the filesystem. Reported by Eliyahu Sandler
1120 <eli@gondolin.net>
1147 <eli@gondolin.net>
1121
1148
1122 2005-05-22 Fernando Perez <fperez@colorado.edu>
1149 2005-05-22 Fernando Perez <fperez@colorado.edu>
1123
1150
1124 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1151 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1125 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1152 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1126
1153
1127 2005-05-19 Fernando Perez <fperez@colorado.edu>
1154 2005-05-19 Fernando Perez <fperez@colorado.edu>
1128
1155
1129 * IPython/iplib.py (safe_execfile): close a file which could be
1156 * IPython/iplib.py (safe_execfile): close a file which could be
1130 left open (causing problems in win32, which locks open files).
1157 left open (causing problems in win32, which locks open files).
1131 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1158 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1132
1159
1133 2005-05-18 Fernando Perez <fperez@colorado.edu>
1160 2005-05-18 Fernando Perez <fperez@colorado.edu>
1134
1161
1135 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1162 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1136 keyword arguments correctly to safe_execfile().
1163 keyword arguments correctly to safe_execfile().
1137
1164
1138 2005-05-13 Fernando Perez <fperez@colorado.edu>
1165 2005-05-13 Fernando Perez <fperez@colorado.edu>
1139
1166
1140 * ipython.1: Added info about Qt to manpage, and threads warning
1167 * ipython.1: Added info about Qt to manpage, and threads warning
1141 to usage page (invoked with --help).
1168 to usage page (invoked with --help).
1142
1169
1143 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1170 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1144 new matcher (it goes at the end of the priority list) to do
1171 new matcher (it goes at the end of the priority list) to do
1145 tab-completion on named function arguments. Submitted by George
1172 tab-completion on named function arguments. Submitted by George
1146 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1173 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1147 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1174 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1148 for more details.
1175 for more details.
1149
1176
1150 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1177 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1151 SystemExit exceptions in the script being run. Thanks to a report
1178 SystemExit exceptions in the script being run. Thanks to a report
1152 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1179 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1153 producing very annoying behavior when running unit tests.
1180 producing very annoying behavior when running unit tests.
1154
1181
1155 2005-05-12 Fernando Perez <fperez@colorado.edu>
1182 2005-05-12 Fernando Perez <fperez@colorado.edu>
1156
1183
1157 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1184 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1158 which I'd broken (again) due to a changed regexp. In the process,
1185 which I'd broken (again) due to a changed regexp. In the process,
1159 added ';' as an escape to auto-quote the whole line without
1186 added ';' as an escape to auto-quote the whole line without
1160 splitting its arguments. Thanks to a report by Jerry McRae
1187 splitting its arguments. Thanks to a report by Jerry McRae
1161 <qrs0xyc02-AT-sneakemail.com>.
1188 <qrs0xyc02-AT-sneakemail.com>.
1162
1189
1163 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1190 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1164 possible crashes caused by a TokenError. Reported by Ed Schofield
1191 possible crashes caused by a TokenError. Reported by Ed Schofield
1165 <schofield-AT-ftw.at>.
1192 <schofield-AT-ftw.at>.
1166
1193
1167 2005-05-06 Fernando Perez <fperez@colorado.edu>
1194 2005-05-06 Fernando Perez <fperez@colorado.edu>
1168
1195
1169 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1196 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1170
1197
1171 2005-04-29 Fernando Perez <fperez@colorado.edu>
1198 2005-04-29 Fernando Perez <fperez@colorado.edu>
1172
1199
1173 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1200 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1174 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1201 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1175 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1202 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1176 which provides support for Qt interactive usage (similar to the
1203 which provides support for Qt interactive usage (similar to the
1177 existing one for WX and GTK). This had been often requested.
1204 existing one for WX and GTK). This had been often requested.
1178
1205
1179 2005-04-14 *** Released version 0.6.13
1206 2005-04-14 *** Released version 0.6.13
1180
1207
1181 2005-04-08 Fernando Perez <fperez@colorado.edu>
1208 2005-04-08 Fernando Perez <fperez@colorado.edu>
1182
1209
1183 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1210 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1184 from _ofind, which gets called on almost every input line. Now,
1211 from _ofind, which gets called on almost every input line. Now,
1185 we only try to get docstrings if they are actually going to be
1212 we only try to get docstrings if they are actually going to be
1186 used (the overhead of fetching unnecessary docstrings can be
1213 used (the overhead of fetching unnecessary docstrings can be
1187 noticeable for certain objects, such as Pyro proxies).
1214 noticeable for certain objects, such as Pyro proxies).
1188
1215
1189 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1216 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1190 for completers. For some reason I had been passing them the state
1217 for completers. For some reason I had been passing them the state
1191 variable, which completers never actually need, and was in
1218 variable, which completers never actually need, and was in
1192 conflict with the rlcompleter API. Custom completers ONLY need to
1219 conflict with the rlcompleter API. Custom completers ONLY need to
1193 take the text parameter.
1220 take the text parameter.
1194
1221
1195 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1222 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1196 work correctly in pysh. I've also moved all the logic which used
1223 work correctly in pysh. I've also moved all the logic which used
1197 to be in pysh.py here, which will prevent problems with future
1224 to be in pysh.py here, which will prevent problems with future
1198 upgrades. However, this time I must warn users to update their
1225 upgrades. However, this time I must warn users to update their
1199 pysh profile to include the line
1226 pysh profile to include the line
1200
1227
1201 import_all IPython.Extensions.InterpreterExec
1228 import_all IPython.Extensions.InterpreterExec
1202
1229
1203 because otherwise things won't work for them. They MUST also
1230 because otherwise things won't work for them. They MUST also
1204 delete pysh.py and the line
1231 delete pysh.py and the line
1205
1232
1206 execfile pysh.py
1233 execfile pysh.py
1207
1234
1208 from their ipythonrc-pysh.
1235 from their ipythonrc-pysh.
1209
1236
1210 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1237 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1211 robust in the face of objects whose dir() returns non-strings
1238 robust in the face of objects whose dir() returns non-strings
1212 (which it shouldn't, but some broken libs like ITK do). Thanks to
1239 (which it shouldn't, but some broken libs like ITK do). Thanks to
1213 a patch by John Hunter (implemented differently, though). Also
1240 a patch by John Hunter (implemented differently, though). Also
1214 minor improvements by using .extend instead of + on lists.
1241 minor improvements by using .extend instead of + on lists.
1215
1242
1216 * pysh.py:
1243 * pysh.py:
1217
1244
1218 2005-04-06 Fernando Perez <fperez@colorado.edu>
1245 2005-04-06 Fernando Perez <fperez@colorado.edu>
1219
1246
1220 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1247 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1221 by default, so that all users benefit from it. Those who don't
1248 by default, so that all users benefit from it. Those who don't
1222 want it can still turn it off.
1249 want it can still turn it off.
1223
1250
1224 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1251 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1225 config file, I'd forgotten about this, so users were getting it
1252 config file, I'd forgotten about this, so users were getting it
1226 off by default.
1253 off by default.
1227
1254
1228 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1255 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1229 consistency. Now magics can be called in multiline statements,
1256 consistency. Now magics can be called in multiline statements,
1230 and python variables can be expanded in magic calls via $var.
1257 and python variables can be expanded in magic calls via $var.
1231 This makes the magic system behave just like aliases or !system
1258 This makes the magic system behave just like aliases or !system
1232 calls.
1259 calls.
1233
1260
1234 2005-03-28 Fernando Perez <fperez@colorado.edu>
1261 2005-03-28 Fernando Perez <fperez@colorado.edu>
1235
1262
1236 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1263 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1237 expensive string additions for building command. Add support for
1264 expensive string additions for building command. Add support for
1238 trailing ';' when autocall is used.
1265 trailing ';' when autocall is used.
1239
1266
1240 2005-03-26 Fernando Perez <fperez@colorado.edu>
1267 2005-03-26 Fernando Perez <fperez@colorado.edu>
1241
1268
1242 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1269 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1243 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1270 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1244 ipython.el robust against prompts with any number of spaces
1271 ipython.el robust against prompts with any number of spaces
1245 (including 0) after the ':' character.
1272 (including 0) after the ':' character.
1246
1273
1247 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1274 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1248 continuation prompt, which misled users to think the line was
1275 continuation prompt, which misled users to think the line was
1249 already indented. Closes debian Bug#300847, reported to me by
1276 already indented. Closes debian Bug#300847, reported to me by
1250 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1277 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1251
1278
1252 2005-03-23 Fernando Perez <fperez@colorado.edu>
1279 2005-03-23 Fernando Perez <fperez@colorado.edu>
1253
1280
1254 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1281 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1255 properly aligned if they have embedded newlines.
1282 properly aligned if they have embedded newlines.
1256
1283
1257 * IPython/iplib.py (runlines): Add a public method to expose
1284 * IPython/iplib.py (runlines): Add a public method to expose
1258 IPython's code execution machinery, so that users can run strings
1285 IPython's code execution machinery, so that users can run strings
1259 as if they had been typed at the prompt interactively.
1286 as if they had been typed at the prompt interactively.
1260 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1287 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1261 methods which can call the system shell, but with python variable
1288 methods which can call the system shell, but with python variable
1262 expansion. The three such methods are: __IPYTHON__.system,
1289 expansion. The three such methods are: __IPYTHON__.system,
1263 .getoutput and .getoutputerror. These need to be documented in a
1290 .getoutput and .getoutputerror. These need to be documented in a
1264 'public API' section (to be written) of the manual.
1291 'public API' section (to be written) of the manual.
1265
1292
1266 2005-03-20 Fernando Perez <fperez@colorado.edu>
1293 2005-03-20 Fernando Perez <fperez@colorado.edu>
1267
1294
1268 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1295 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1269 for custom exception handling. This is quite powerful, and it
1296 for custom exception handling. This is quite powerful, and it
1270 allows for user-installable exception handlers which can trap
1297 allows for user-installable exception handlers which can trap
1271 custom exceptions at runtime and treat them separately from
1298 custom exceptions at runtime and treat them separately from
1272 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1299 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1273 Mantegazza <mantegazza-AT-ill.fr>.
1300 Mantegazza <mantegazza-AT-ill.fr>.
1274 (InteractiveShell.set_custom_completer): public API function to
1301 (InteractiveShell.set_custom_completer): public API function to
1275 add new completers at runtime.
1302 add new completers at runtime.
1276
1303
1277 2005-03-19 Fernando Perez <fperez@colorado.edu>
1304 2005-03-19 Fernando Perez <fperez@colorado.edu>
1278
1305
1279 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1306 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1280 allow objects which provide their docstrings via non-standard
1307 allow objects which provide their docstrings via non-standard
1281 mechanisms (like Pyro proxies) to still be inspected by ipython's
1308 mechanisms (like Pyro proxies) to still be inspected by ipython's
1282 ? system.
1309 ? system.
1283
1310
1284 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1311 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1285 automatic capture system. I tried quite hard to make it work
1312 automatic capture system. I tried quite hard to make it work
1286 reliably, and simply failed. I tried many combinations with the
1313 reliably, and simply failed. I tried many combinations with the
1287 subprocess module, but eventually nothing worked in all needed
1314 subprocess module, but eventually nothing worked in all needed
1288 cases (not blocking stdin for the child, duplicating stdout
1315 cases (not blocking stdin for the child, duplicating stdout
1289 without blocking, etc). The new %sc/%sx still do capture to these
1316 without blocking, etc). The new %sc/%sx still do capture to these
1290 magical list/string objects which make shell use much more
1317 magical list/string objects which make shell use much more
1291 conveninent, so not all is lost.
1318 conveninent, so not all is lost.
1292
1319
1293 XXX - FIX MANUAL for the change above!
1320 XXX - FIX MANUAL for the change above!
1294
1321
1295 (runsource): I copied code.py's runsource() into ipython to modify
1322 (runsource): I copied code.py's runsource() into ipython to modify
1296 it a bit. Now the code object and source to be executed are
1323 it a bit. Now the code object and source to be executed are
1297 stored in ipython. This makes this info accessible to third-party
1324 stored in ipython. This makes this info accessible to third-party
1298 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1325 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1299 Mantegazza <mantegazza-AT-ill.fr>.
1326 Mantegazza <mantegazza-AT-ill.fr>.
1300
1327
1301 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1328 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1302 history-search via readline (like C-p/C-n). I'd wanted this for a
1329 history-search via readline (like C-p/C-n). I'd wanted this for a
1303 long time, but only recently found out how to do it. For users
1330 long time, but only recently found out how to do it. For users
1304 who already have their ipythonrc files made and want this, just
1331 who already have their ipythonrc files made and want this, just
1305 add:
1332 add:
1306
1333
1307 readline_parse_and_bind "\e[A": history-search-backward
1334 readline_parse_and_bind "\e[A": history-search-backward
1308 readline_parse_and_bind "\e[B": history-search-forward
1335 readline_parse_and_bind "\e[B": history-search-forward
1309
1336
1310 2005-03-18 Fernando Perez <fperez@colorado.edu>
1337 2005-03-18 Fernando Perez <fperez@colorado.edu>
1311
1338
1312 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1339 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1313 LSString and SList classes which allow transparent conversions
1340 LSString and SList classes which allow transparent conversions
1314 between list mode and whitespace-separated string.
1341 between list mode and whitespace-separated string.
1315 (magic_r): Fix recursion problem in %r.
1342 (magic_r): Fix recursion problem in %r.
1316
1343
1317 * IPython/genutils.py (LSString): New class to be used for
1344 * IPython/genutils.py (LSString): New class to be used for
1318 automatic storage of the results of all alias/system calls in _o
1345 automatic storage of the results of all alias/system calls in _o
1319 and _e (stdout/err). These provide a .l/.list attribute which
1346 and _e (stdout/err). These provide a .l/.list attribute which
1320 does automatic splitting on newlines. This means that for most
1347 does automatic splitting on newlines. This means that for most
1321 uses, you'll never need to do capturing of output with %sc/%sx
1348 uses, you'll never need to do capturing of output with %sc/%sx
1322 anymore, since ipython keeps this always done for you. Note that
1349 anymore, since ipython keeps this always done for you. Note that
1323 only the LAST results are stored, the _o/e variables are
1350 only the LAST results are stored, the _o/e variables are
1324 overwritten on each call. If you need to save their contents
1351 overwritten on each call. If you need to save their contents
1325 further, simply bind them to any other name.
1352 further, simply bind them to any other name.
1326
1353
1327 2005-03-17 Fernando Perez <fperez@colorado.edu>
1354 2005-03-17 Fernando Perez <fperez@colorado.edu>
1328
1355
1329 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1356 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1330 prompt namespace handling.
1357 prompt namespace handling.
1331
1358
1332 2005-03-16 Fernando Perez <fperez@colorado.edu>
1359 2005-03-16 Fernando Perez <fperez@colorado.edu>
1333
1360
1334 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1361 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1335 classic prompts to be '>>> ' (final space was missing, and it
1362 classic prompts to be '>>> ' (final space was missing, and it
1336 trips the emacs python mode).
1363 trips the emacs python mode).
1337 (BasePrompt.__str__): Added safe support for dynamic prompt
1364 (BasePrompt.__str__): Added safe support for dynamic prompt
1338 strings. Now you can set your prompt string to be '$x', and the
1365 strings. Now you can set your prompt string to be '$x', and the
1339 value of x will be printed from your interactive namespace. The
1366 value of x will be printed from your interactive namespace. The
1340 interpolation syntax includes the full Itpl support, so
1367 interpolation syntax includes the full Itpl support, so
1341 ${foo()+x+bar()} is a valid prompt string now, and the function
1368 ${foo()+x+bar()} is a valid prompt string now, and the function
1342 calls will be made at runtime.
1369 calls will be made at runtime.
1343
1370
1344 2005-03-15 Fernando Perez <fperez@colorado.edu>
1371 2005-03-15 Fernando Perez <fperez@colorado.edu>
1345
1372
1346 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1373 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1347 avoid name clashes in pylab. %hist still works, it just forwards
1374 avoid name clashes in pylab. %hist still works, it just forwards
1348 the call to %history.
1375 the call to %history.
1349
1376
1350 2005-03-02 *** Released version 0.6.12
1377 2005-03-02 *** Released version 0.6.12
1351
1378
1352 2005-03-02 Fernando Perez <fperez@colorado.edu>
1379 2005-03-02 Fernando Perez <fperez@colorado.edu>
1353
1380
1354 * IPython/iplib.py (handle_magic): log magic calls properly as
1381 * IPython/iplib.py (handle_magic): log magic calls properly as
1355 ipmagic() function calls.
1382 ipmagic() function calls.
1356
1383
1357 * IPython/Magic.py (magic_time): Improved %time to support
1384 * IPython/Magic.py (magic_time): Improved %time to support
1358 statements and provide wall-clock as well as CPU time.
1385 statements and provide wall-clock as well as CPU time.
1359
1386
1360 2005-02-27 Fernando Perez <fperez@colorado.edu>
1387 2005-02-27 Fernando Perez <fperez@colorado.edu>
1361
1388
1362 * IPython/hooks.py: New hooks module, to expose user-modifiable
1389 * IPython/hooks.py: New hooks module, to expose user-modifiable
1363 IPython functionality in a clean manner. For now only the editor
1390 IPython functionality in a clean manner. For now only the editor
1364 hook is actually written, and other thigns which I intend to turn
1391 hook is actually written, and other thigns which I intend to turn
1365 into proper hooks aren't yet there. The display and prefilter
1392 into proper hooks aren't yet there. The display and prefilter
1366 stuff, for example, should be hooks. But at least now the
1393 stuff, for example, should be hooks. But at least now the
1367 framework is in place, and the rest can be moved here with more
1394 framework is in place, and the rest can be moved here with more
1368 time later. IPython had had a .hooks variable for a long time for
1395 time later. IPython had had a .hooks variable for a long time for
1369 this purpose, but I'd never actually used it for anything.
1396 this purpose, but I'd never actually used it for anything.
1370
1397
1371 2005-02-26 Fernando Perez <fperez@colorado.edu>
1398 2005-02-26 Fernando Perez <fperez@colorado.edu>
1372
1399
1373 * IPython/ipmaker.py (make_IPython): make the default ipython
1400 * IPython/ipmaker.py (make_IPython): make the default ipython
1374 directory be called _ipython under win32, to follow more the
1401 directory be called _ipython under win32, to follow more the
1375 naming peculiarities of that platform (where buggy software like
1402 naming peculiarities of that platform (where buggy software like
1376 Visual Sourcesafe breaks with .named directories). Reported by
1403 Visual Sourcesafe breaks with .named directories). Reported by
1377 Ville Vainio.
1404 Ville Vainio.
1378
1405
1379 2005-02-23 Fernando Perez <fperez@colorado.edu>
1406 2005-02-23 Fernando Perez <fperez@colorado.edu>
1380
1407
1381 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1408 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1382 auto_aliases for win32 which were causing problems. Users can
1409 auto_aliases for win32 which were causing problems. Users can
1383 define the ones they personally like.
1410 define the ones they personally like.
1384
1411
1385 2005-02-21 Fernando Perez <fperez@colorado.edu>
1412 2005-02-21 Fernando Perez <fperez@colorado.edu>
1386
1413
1387 * IPython/Magic.py (magic_time): new magic to time execution of
1414 * IPython/Magic.py (magic_time): new magic to time execution of
1388 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1415 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1389
1416
1390 2005-02-19 Fernando Perez <fperez@colorado.edu>
1417 2005-02-19 Fernando Perez <fperez@colorado.edu>
1391
1418
1392 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1419 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1393 into keys (for prompts, for example).
1420 into keys (for prompts, for example).
1394
1421
1395 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1422 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1396 prompts in case users want them. This introduces a small behavior
1423 prompts in case users want them. This introduces a small behavior
1397 change: ipython does not automatically add a space to all prompts
1424 change: ipython does not automatically add a space to all prompts
1398 anymore. To get the old prompts with a space, users should add it
1425 anymore. To get the old prompts with a space, users should add it
1399 manually to their ipythonrc file, so for example prompt_in1 should
1426 manually to their ipythonrc file, so for example prompt_in1 should
1400 now read 'In [\#]: ' instead of 'In [\#]:'.
1427 now read 'In [\#]: ' instead of 'In [\#]:'.
1401 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1428 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1402 file) to control left-padding of secondary prompts.
1429 file) to control left-padding of secondary prompts.
1403
1430
1404 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1431 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1405 the profiler can't be imported. Fix for Debian, which removed
1432 the profiler can't be imported. Fix for Debian, which removed
1406 profile.py because of License issues. I applied a slightly
1433 profile.py because of License issues. I applied a slightly
1407 modified version of the original Debian patch at
1434 modified version of the original Debian patch at
1408 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1435 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1409
1436
1410 2005-02-17 Fernando Perez <fperez@colorado.edu>
1437 2005-02-17 Fernando Perez <fperez@colorado.edu>
1411
1438
1412 * IPython/genutils.py (native_line_ends): Fix bug which would
1439 * IPython/genutils.py (native_line_ends): Fix bug which would
1413 cause improper line-ends under win32 b/c I was not opening files
1440 cause improper line-ends under win32 b/c I was not opening files
1414 in binary mode. Bug report and fix thanks to Ville.
1441 in binary mode. Bug report and fix thanks to Ville.
1415
1442
1416 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1443 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1417 trying to catch spurious foo[1] autocalls. My fix actually broke
1444 trying to catch spurious foo[1] autocalls. My fix actually broke
1418 ',/' autoquote/call with explicit escape (bad regexp).
1445 ',/' autoquote/call with explicit escape (bad regexp).
1419
1446
1420 2005-02-15 *** Released version 0.6.11
1447 2005-02-15 *** Released version 0.6.11
1421
1448
1422 2005-02-14 Fernando Perez <fperez@colorado.edu>
1449 2005-02-14 Fernando Perez <fperez@colorado.edu>
1423
1450
1424 * IPython/background_jobs.py: New background job management
1451 * IPython/background_jobs.py: New background job management
1425 subsystem. This is implemented via a new set of classes, and
1452 subsystem. This is implemented via a new set of classes, and
1426 IPython now provides a builtin 'jobs' object for background job
1453 IPython now provides a builtin 'jobs' object for background job
1427 execution. A convenience %bg magic serves as a lightweight
1454 execution. A convenience %bg magic serves as a lightweight
1428 frontend for starting the more common type of calls. This was
1455 frontend for starting the more common type of calls. This was
1429 inspired by discussions with B. Granger and the BackgroundCommand
1456 inspired by discussions with B. Granger and the BackgroundCommand
1430 class described in the book Python Scripting for Computational
1457 class described in the book Python Scripting for Computational
1431 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1458 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1432 (although ultimately no code from this text was used, as IPython's
1459 (although ultimately no code from this text was used, as IPython's
1433 system is a separate implementation).
1460 system is a separate implementation).
1434
1461
1435 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1462 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1436 to control the completion of single/double underscore names
1463 to control the completion of single/double underscore names
1437 separately. As documented in the example ipytonrc file, the
1464 separately. As documented in the example ipytonrc file, the
1438 readline_omit__names variable can now be set to 2, to omit even
1465 readline_omit__names variable can now be set to 2, to omit even
1439 single underscore names. Thanks to a patch by Brian Wong
1466 single underscore names. Thanks to a patch by Brian Wong
1440 <BrianWong-AT-AirgoNetworks.Com>.
1467 <BrianWong-AT-AirgoNetworks.Com>.
1441 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1468 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1442 be autocalled as foo([1]) if foo were callable. A problem for
1469 be autocalled as foo([1]) if foo were callable. A problem for
1443 things which are both callable and implement __getitem__.
1470 things which are both callable and implement __getitem__.
1444 (init_readline): Fix autoindentation for win32. Thanks to a patch
1471 (init_readline): Fix autoindentation for win32. Thanks to a patch
1445 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1472 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1446
1473
1447 2005-02-12 Fernando Perez <fperez@colorado.edu>
1474 2005-02-12 Fernando Perez <fperez@colorado.edu>
1448
1475
1449 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1476 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1450 which I had written long ago to sort out user error messages which
1477 which I had written long ago to sort out user error messages which
1451 may occur during startup. This seemed like a good idea initially,
1478 may occur during startup. This seemed like a good idea initially,
1452 but it has proven a disaster in retrospect. I don't want to
1479 but it has proven a disaster in retrospect. I don't want to
1453 change much code for now, so my fix is to set the internal 'debug'
1480 change much code for now, so my fix is to set the internal 'debug'
1454 flag to true everywhere, whose only job was precisely to control
1481 flag to true everywhere, whose only job was precisely to control
1455 this subsystem. This closes issue 28 (as well as avoiding all
1482 this subsystem. This closes issue 28 (as well as avoiding all
1456 sorts of strange hangups which occur from time to time).
1483 sorts of strange hangups which occur from time to time).
1457
1484
1458 2005-02-07 Fernando Perez <fperez@colorado.edu>
1485 2005-02-07 Fernando Perez <fperez@colorado.edu>
1459
1486
1460 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1487 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1461 previous call produced a syntax error.
1488 previous call produced a syntax error.
1462
1489
1463 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1490 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1464 classes without constructor.
1491 classes without constructor.
1465
1492
1466 2005-02-06 Fernando Perez <fperez@colorado.edu>
1493 2005-02-06 Fernando Perez <fperez@colorado.edu>
1467
1494
1468 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1495 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1469 completions with the results of each matcher, so we return results
1496 completions with the results of each matcher, so we return results
1470 to the user from all namespaces. This breaks with ipython
1497 to the user from all namespaces. This breaks with ipython
1471 tradition, but I think it's a nicer behavior. Now you get all
1498 tradition, but I think it's a nicer behavior. Now you get all
1472 possible completions listed, from all possible namespaces (python,
1499 possible completions listed, from all possible namespaces (python,
1473 filesystem, magics...) After a request by John Hunter
1500 filesystem, magics...) After a request by John Hunter
1474 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1501 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1475
1502
1476 2005-02-05 Fernando Perez <fperez@colorado.edu>
1503 2005-02-05 Fernando Perez <fperez@colorado.edu>
1477
1504
1478 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1505 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1479 the call had quote characters in it (the quotes were stripped).
1506 the call had quote characters in it (the quotes were stripped).
1480
1507
1481 2005-01-31 Fernando Perez <fperez@colorado.edu>
1508 2005-01-31 Fernando Perez <fperez@colorado.edu>
1482
1509
1483 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1510 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1484 Itpl.itpl() to make the code more robust against psyco
1511 Itpl.itpl() to make the code more robust against psyco
1485 optimizations.
1512 optimizations.
1486
1513
1487 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1514 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1488 of causing an exception. Quicker, cleaner.
1515 of causing an exception. Quicker, cleaner.
1489
1516
1490 2005-01-28 Fernando Perez <fperez@colorado.edu>
1517 2005-01-28 Fernando Perez <fperez@colorado.edu>
1491
1518
1492 * scripts/ipython_win_post_install.py (install): hardcode
1519 * scripts/ipython_win_post_install.py (install): hardcode
1493 sys.prefix+'python.exe' as the executable path. It turns out that
1520 sys.prefix+'python.exe' as the executable path. It turns out that
1494 during the post-installation run, sys.executable resolves to the
1521 during the post-installation run, sys.executable resolves to the
1495 name of the binary installer! I should report this as a distutils
1522 name of the binary installer! I should report this as a distutils
1496 bug, I think. I updated the .10 release with this tiny fix, to
1523 bug, I think. I updated the .10 release with this tiny fix, to
1497 avoid annoying the lists further.
1524 avoid annoying the lists further.
1498
1525
1499 2005-01-27 *** Released version 0.6.10
1526 2005-01-27 *** Released version 0.6.10
1500
1527
1501 2005-01-27 Fernando Perez <fperez@colorado.edu>
1528 2005-01-27 Fernando Perez <fperez@colorado.edu>
1502
1529
1503 * IPython/numutils.py (norm): Added 'inf' as optional name for
1530 * IPython/numutils.py (norm): Added 'inf' as optional name for
1504 L-infinity norm, included references to mathworld.com for vector
1531 L-infinity norm, included references to mathworld.com for vector
1505 norm definitions.
1532 norm definitions.
1506 (amin/amax): added amin/amax for array min/max. Similar to what
1533 (amin/amax): added amin/amax for array min/max. Similar to what
1507 pylab ships with after the recent reorganization of names.
1534 pylab ships with after the recent reorganization of names.
1508 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1535 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1509
1536
1510 * ipython.el: committed Alex's recent fixes and improvements.
1537 * ipython.el: committed Alex's recent fixes and improvements.
1511 Tested with python-mode from CVS, and it looks excellent. Since
1538 Tested with python-mode from CVS, and it looks excellent. Since
1512 python-mode hasn't released anything in a while, I'm temporarily
1539 python-mode hasn't released anything in a while, I'm temporarily
1513 putting a copy of today's CVS (v 4.70) of python-mode in:
1540 putting a copy of today's CVS (v 4.70) of python-mode in:
1514 http://ipython.scipy.org/tmp/python-mode.el
1541 http://ipython.scipy.org/tmp/python-mode.el
1515
1542
1516 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1543 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1517 sys.executable for the executable name, instead of assuming it's
1544 sys.executable for the executable name, instead of assuming it's
1518 called 'python.exe' (the post-installer would have produced broken
1545 called 'python.exe' (the post-installer would have produced broken
1519 setups on systems with a differently named python binary).
1546 setups on systems with a differently named python binary).
1520
1547
1521 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1548 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1522 references to os.linesep, to make the code more
1549 references to os.linesep, to make the code more
1523 platform-independent. This is also part of the win32 coloring
1550 platform-independent. This is also part of the win32 coloring
1524 fixes.
1551 fixes.
1525
1552
1526 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1553 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1527 lines, which actually cause coloring bugs because the length of
1554 lines, which actually cause coloring bugs because the length of
1528 the line is very difficult to correctly compute with embedded
1555 the line is very difficult to correctly compute with embedded
1529 escapes. This was the source of all the coloring problems under
1556 escapes. This was the source of all the coloring problems under
1530 Win32. I think that _finally_, Win32 users have a properly
1557 Win32. I think that _finally_, Win32 users have a properly
1531 working ipython in all respects. This would never have happened
1558 working ipython in all respects. This would never have happened
1532 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1559 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1533
1560
1534 2005-01-26 *** Released version 0.6.9
1561 2005-01-26 *** Released version 0.6.9
1535
1562
1536 2005-01-25 Fernando Perez <fperez@colorado.edu>
1563 2005-01-25 Fernando Perez <fperez@colorado.edu>
1537
1564
1538 * setup.py: finally, we have a true Windows installer, thanks to
1565 * setup.py: finally, we have a true Windows installer, thanks to
1539 the excellent work of Viktor Ransmayr
1566 the excellent work of Viktor Ransmayr
1540 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1567 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1541 Windows users. The setup routine is quite a bit cleaner thanks to
1568 Windows users. The setup routine is quite a bit cleaner thanks to
1542 this, and the post-install script uses the proper functions to
1569 this, and the post-install script uses the proper functions to
1543 allow a clean de-installation using the standard Windows Control
1570 allow a clean de-installation using the standard Windows Control
1544 Panel.
1571 Panel.
1545
1572
1546 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1573 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1547 environment variable under all OSes (including win32) if
1574 environment variable under all OSes (including win32) if
1548 available. This will give consistency to win32 users who have set
1575 available. This will give consistency to win32 users who have set
1549 this variable for any reason. If os.environ['HOME'] fails, the
1576 this variable for any reason. If os.environ['HOME'] fails, the
1550 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1577 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1551
1578
1552 2005-01-24 Fernando Perez <fperez@colorado.edu>
1579 2005-01-24 Fernando Perez <fperez@colorado.edu>
1553
1580
1554 * IPython/numutils.py (empty_like): add empty_like(), similar to
1581 * IPython/numutils.py (empty_like): add empty_like(), similar to
1555 zeros_like() but taking advantage of the new empty() Numeric routine.
1582 zeros_like() but taking advantage of the new empty() Numeric routine.
1556
1583
1557 2005-01-23 *** Released version 0.6.8
1584 2005-01-23 *** Released version 0.6.8
1558
1585
1559 2005-01-22 Fernando Perez <fperez@colorado.edu>
1586 2005-01-22 Fernando Perez <fperez@colorado.edu>
1560
1587
1561 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1588 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1562 automatic show() calls. After discussing things with JDH, it
1589 automatic show() calls. After discussing things with JDH, it
1563 turns out there are too many corner cases where this can go wrong.
1590 turns out there are too many corner cases where this can go wrong.
1564 It's best not to try to be 'too smart', and simply have ipython
1591 It's best not to try to be 'too smart', and simply have ipython
1565 reproduce as much as possible the default behavior of a normal
1592 reproduce as much as possible the default behavior of a normal
1566 python shell.
1593 python shell.
1567
1594
1568 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1595 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1569 line-splitting regexp and _prefilter() to avoid calling getattr()
1596 line-splitting regexp and _prefilter() to avoid calling getattr()
1570 on assignments. This closes
1597 on assignments. This closes
1571 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1598 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1572 readline uses getattr(), so a simple <TAB> keypress is still
1599 readline uses getattr(), so a simple <TAB> keypress is still
1573 enough to trigger getattr() calls on an object.
1600 enough to trigger getattr() calls on an object.
1574
1601
1575 2005-01-21 Fernando Perez <fperez@colorado.edu>
1602 2005-01-21 Fernando Perez <fperez@colorado.edu>
1576
1603
1577 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1604 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1578 docstring under pylab so it doesn't mask the original.
1605 docstring under pylab so it doesn't mask the original.
1579
1606
1580 2005-01-21 *** Released version 0.6.7
1607 2005-01-21 *** Released version 0.6.7
1581
1608
1582 2005-01-21 Fernando Perez <fperez@colorado.edu>
1609 2005-01-21 Fernando Perez <fperez@colorado.edu>
1583
1610
1584 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1611 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1585 signal handling for win32 users in multithreaded mode.
1612 signal handling for win32 users in multithreaded mode.
1586
1613
1587 2005-01-17 Fernando Perez <fperez@colorado.edu>
1614 2005-01-17 Fernando Perez <fperez@colorado.edu>
1588
1615
1589 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1616 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1590 instances with no __init__. After a crash report by Norbert Nemec
1617 instances with no __init__. After a crash report by Norbert Nemec
1591 <Norbert-AT-nemec-online.de>.
1618 <Norbert-AT-nemec-online.de>.
1592
1619
1593 2005-01-14 Fernando Perez <fperez@colorado.edu>
1620 2005-01-14 Fernando Perez <fperez@colorado.edu>
1594
1621
1595 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1622 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1596 names for verbose exceptions, when multiple dotted names and the
1623 names for verbose exceptions, when multiple dotted names and the
1597 'parent' object were present on the same line.
1624 'parent' object were present on the same line.
1598
1625
1599 2005-01-11 Fernando Perez <fperez@colorado.edu>
1626 2005-01-11 Fernando Perez <fperez@colorado.edu>
1600
1627
1601 * IPython/genutils.py (flag_calls): new utility to trap and flag
1628 * IPython/genutils.py (flag_calls): new utility to trap and flag
1602 calls in functions. I need it to clean up matplotlib support.
1629 calls in functions. I need it to clean up matplotlib support.
1603 Also removed some deprecated code in genutils.
1630 Also removed some deprecated code in genutils.
1604
1631
1605 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1632 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1606 that matplotlib scripts called with %run, which don't call show()
1633 that matplotlib scripts called with %run, which don't call show()
1607 themselves, still have their plotting windows open.
1634 themselves, still have their plotting windows open.
1608
1635
1609 2005-01-05 Fernando Perez <fperez@colorado.edu>
1636 2005-01-05 Fernando Perez <fperez@colorado.edu>
1610
1637
1611 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1638 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1612 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1639 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1613
1640
1614 2004-12-19 Fernando Perez <fperez@colorado.edu>
1641 2004-12-19 Fernando Perez <fperez@colorado.edu>
1615
1642
1616 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1643 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1617 parent_runcode, which was an eyesore. The same result can be
1644 parent_runcode, which was an eyesore. The same result can be
1618 obtained with Python's regular superclass mechanisms.
1645 obtained with Python's regular superclass mechanisms.
1619
1646
1620 2004-12-17 Fernando Perez <fperez@colorado.edu>
1647 2004-12-17 Fernando Perez <fperez@colorado.edu>
1621
1648
1622 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1649 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1623 reported by Prabhu.
1650 reported by Prabhu.
1624 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1651 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1625 sys.stderr) instead of explicitly calling sys.stderr. This helps
1652 sys.stderr) instead of explicitly calling sys.stderr. This helps
1626 maintain our I/O abstractions clean, for future GUI embeddings.
1653 maintain our I/O abstractions clean, for future GUI embeddings.
1627
1654
1628 * IPython/genutils.py (info): added new utility for sys.stderr
1655 * IPython/genutils.py (info): added new utility for sys.stderr
1629 unified info message handling (thin wrapper around warn()).
1656 unified info message handling (thin wrapper around warn()).
1630
1657
1631 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1658 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1632 composite (dotted) names on verbose exceptions.
1659 composite (dotted) names on verbose exceptions.
1633 (VerboseTB.nullrepr): harden against another kind of errors which
1660 (VerboseTB.nullrepr): harden against another kind of errors which
1634 Python's inspect module can trigger, and which were crashing
1661 Python's inspect module can trigger, and which were crashing
1635 IPython. Thanks to a report by Marco Lombardi
1662 IPython. Thanks to a report by Marco Lombardi
1636 <mlombard-AT-ma010192.hq.eso.org>.
1663 <mlombard-AT-ma010192.hq.eso.org>.
1637
1664
1638 2004-12-13 *** Released version 0.6.6
1665 2004-12-13 *** Released version 0.6.6
1639
1666
1640 2004-12-12 Fernando Perez <fperez@colorado.edu>
1667 2004-12-12 Fernando Perez <fperez@colorado.edu>
1641
1668
1642 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1669 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1643 generated by pygtk upon initialization if it was built without
1670 generated by pygtk upon initialization if it was built without
1644 threads (for matplotlib users). After a crash reported by
1671 threads (for matplotlib users). After a crash reported by
1645 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1672 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1646
1673
1647 * IPython/ipmaker.py (make_IPython): fix small bug in the
1674 * IPython/ipmaker.py (make_IPython): fix small bug in the
1648 import_some parameter for multiple imports.
1675 import_some parameter for multiple imports.
1649
1676
1650 * IPython/iplib.py (ipmagic): simplified the interface of
1677 * IPython/iplib.py (ipmagic): simplified the interface of
1651 ipmagic() to take a single string argument, just as it would be
1678 ipmagic() to take a single string argument, just as it would be
1652 typed at the IPython cmd line.
1679 typed at the IPython cmd line.
1653 (ipalias): Added new ipalias() with an interface identical to
1680 (ipalias): Added new ipalias() with an interface identical to
1654 ipmagic(). This completes exposing a pure python interface to the
1681 ipmagic(). This completes exposing a pure python interface to the
1655 alias and magic system, which can be used in loops or more complex
1682 alias and magic system, which can be used in loops or more complex
1656 code where IPython's automatic line mangling is not active.
1683 code where IPython's automatic line mangling is not active.
1657
1684
1658 * IPython/genutils.py (timing): changed interface of timing to
1685 * IPython/genutils.py (timing): changed interface of timing to
1659 simply run code once, which is the most common case. timings()
1686 simply run code once, which is the most common case. timings()
1660 remains unchanged, for the cases where you want multiple runs.
1687 remains unchanged, for the cases where you want multiple runs.
1661
1688
1662 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1689 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1663 bug where Python2.2 crashes with exec'ing code which does not end
1690 bug where Python2.2 crashes with exec'ing code which does not end
1664 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1691 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1665 before.
1692 before.
1666
1693
1667 2004-12-10 Fernando Perez <fperez@colorado.edu>
1694 2004-12-10 Fernando Perez <fperez@colorado.edu>
1668
1695
1669 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1696 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1670 -t to -T, to accomodate the new -t flag in %run (the %run and
1697 -t to -T, to accomodate the new -t flag in %run (the %run and
1671 %prun options are kind of intermixed, and it's not easy to change
1698 %prun options are kind of intermixed, and it's not easy to change
1672 this with the limitations of python's getopt).
1699 this with the limitations of python's getopt).
1673
1700
1674 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1701 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1675 the execution of scripts. It's not as fine-tuned as timeit.py,
1702 the execution of scripts. It's not as fine-tuned as timeit.py,
1676 but it works from inside ipython (and under 2.2, which lacks
1703 but it works from inside ipython (and under 2.2, which lacks
1677 timeit.py). Optionally a number of runs > 1 can be given for
1704 timeit.py). Optionally a number of runs > 1 can be given for
1678 timing very short-running code.
1705 timing very short-running code.
1679
1706
1680 * IPython/genutils.py (uniq_stable): new routine which returns a
1707 * IPython/genutils.py (uniq_stable): new routine which returns a
1681 list of unique elements in any iterable, but in stable order of
1708 list of unique elements in any iterable, but in stable order of
1682 appearance. I needed this for the ultraTB fixes, and it's a handy
1709 appearance. I needed this for the ultraTB fixes, and it's a handy
1683 utility.
1710 utility.
1684
1711
1685 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1712 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1686 dotted names in Verbose exceptions. This had been broken since
1713 dotted names in Verbose exceptions. This had been broken since
1687 the very start, now x.y will properly be printed in a Verbose
1714 the very start, now x.y will properly be printed in a Verbose
1688 traceback, instead of x being shown and y appearing always as an
1715 traceback, instead of x being shown and y appearing always as an
1689 'undefined global'. Getting this to work was a bit tricky,
1716 'undefined global'. Getting this to work was a bit tricky,
1690 because by default python tokenizers are stateless. Saved by
1717 because by default python tokenizers are stateless. Saved by
1691 python's ability to easily add a bit of state to an arbitrary
1718 python's ability to easily add a bit of state to an arbitrary
1692 function (without needing to build a full-blown callable object).
1719 function (without needing to build a full-blown callable object).
1693
1720
1694 Also big cleanup of this code, which had horrendous runtime
1721 Also big cleanup of this code, which had horrendous runtime
1695 lookups of zillions of attributes for colorization. Moved all
1722 lookups of zillions of attributes for colorization. Moved all
1696 this code into a few templates, which make it cleaner and quicker.
1723 this code into a few templates, which make it cleaner and quicker.
1697
1724
1698 Printout quality was also improved for Verbose exceptions: one
1725 Printout quality was also improved for Verbose exceptions: one
1699 variable per line, and memory addresses are printed (this can be
1726 variable per line, and memory addresses are printed (this can be
1700 quite handy in nasty debugging situations, which is what Verbose
1727 quite handy in nasty debugging situations, which is what Verbose
1701 is for).
1728 is for).
1702
1729
1703 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1730 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1704 the command line as scripts to be loaded by embedded instances.
1731 the command line as scripts to be loaded by embedded instances.
1705 Doing so has the potential for an infinite recursion if there are
1732 Doing so has the potential for an infinite recursion if there are
1706 exceptions thrown in the process. This fixes a strange crash
1733 exceptions thrown in the process. This fixes a strange crash
1707 reported by Philippe MULLER <muller-AT-irit.fr>.
1734 reported by Philippe MULLER <muller-AT-irit.fr>.
1708
1735
1709 2004-12-09 Fernando Perez <fperez@colorado.edu>
1736 2004-12-09 Fernando Perez <fperez@colorado.edu>
1710
1737
1711 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1738 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1712 to reflect new names in matplotlib, which now expose the
1739 to reflect new names in matplotlib, which now expose the
1713 matlab-compatible interface via a pylab module instead of the
1740 matlab-compatible interface via a pylab module instead of the
1714 'matlab' name. The new code is backwards compatible, so users of
1741 'matlab' name. The new code is backwards compatible, so users of
1715 all matplotlib versions are OK. Patch by J. Hunter.
1742 all matplotlib versions are OK. Patch by J. Hunter.
1716
1743
1717 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1744 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1718 of __init__ docstrings for instances (class docstrings are already
1745 of __init__ docstrings for instances (class docstrings are already
1719 automatically printed). Instances with customized docstrings
1746 automatically printed). Instances with customized docstrings
1720 (indep. of the class) are also recognized and all 3 separate
1747 (indep. of the class) are also recognized and all 3 separate
1721 docstrings are printed (instance, class, constructor). After some
1748 docstrings are printed (instance, class, constructor). After some
1722 comments/suggestions by J. Hunter.
1749 comments/suggestions by J. Hunter.
1723
1750
1724 2004-12-05 Fernando Perez <fperez@colorado.edu>
1751 2004-12-05 Fernando Perez <fperez@colorado.edu>
1725
1752
1726 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1753 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1727 warnings when tab-completion fails and triggers an exception.
1754 warnings when tab-completion fails and triggers an exception.
1728
1755
1729 2004-12-03 Fernando Perez <fperez@colorado.edu>
1756 2004-12-03 Fernando Perez <fperez@colorado.edu>
1730
1757
1731 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1758 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1732 be triggered when using 'run -p'. An incorrect option flag was
1759 be triggered when using 'run -p'. An incorrect option flag was
1733 being set ('d' instead of 'D').
1760 being set ('d' instead of 'D').
1734 (manpage): fix missing escaped \- sign.
1761 (manpage): fix missing escaped \- sign.
1735
1762
1736 2004-11-30 *** Released version 0.6.5
1763 2004-11-30 *** Released version 0.6.5
1737
1764
1738 2004-11-30 Fernando Perez <fperez@colorado.edu>
1765 2004-11-30 Fernando Perez <fperez@colorado.edu>
1739
1766
1740 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1767 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1741 setting with -d option.
1768 setting with -d option.
1742
1769
1743 * setup.py (docfiles): Fix problem where the doc glob I was using
1770 * setup.py (docfiles): Fix problem where the doc glob I was using
1744 was COMPLETELY BROKEN. It was giving the right files by pure
1771 was COMPLETELY BROKEN. It was giving the right files by pure
1745 accident, but failed once I tried to include ipython.el. Note:
1772 accident, but failed once I tried to include ipython.el. Note:
1746 glob() does NOT allow you to do exclusion on multiple endings!
1773 glob() does NOT allow you to do exclusion on multiple endings!
1747
1774
1748 2004-11-29 Fernando Perez <fperez@colorado.edu>
1775 2004-11-29 Fernando Perez <fperez@colorado.edu>
1749
1776
1750 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1777 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1751 the manpage as the source. Better formatting & consistency.
1778 the manpage as the source. Better formatting & consistency.
1752
1779
1753 * IPython/Magic.py (magic_run): Added new -d option, to run
1780 * IPython/Magic.py (magic_run): Added new -d option, to run
1754 scripts under the control of the python pdb debugger. Note that
1781 scripts under the control of the python pdb debugger. Note that
1755 this required changing the %prun option -d to -D, to avoid a clash
1782 this required changing the %prun option -d to -D, to avoid a clash
1756 (since %run must pass options to %prun, and getopt is too dumb to
1783 (since %run must pass options to %prun, and getopt is too dumb to
1757 handle options with string values with embedded spaces). Thanks
1784 handle options with string values with embedded spaces). Thanks
1758 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1785 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1759 (magic_who_ls): added type matching to %who and %whos, so that one
1786 (magic_who_ls): added type matching to %who and %whos, so that one
1760 can filter their output to only include variables of certain
1787 can filter their output to only include variables of certain
1761 types. Another suggestion by Matthew.
1788 types. Another suggestion by Matthew.
1762 (magic_whos): Added memory summaries in kb and Mb for arrays.
1789 (magic_whos): Added memory summaries in kb and Mb for arrays.
1763 (magic_who): Improve formatting (break lines every 9 vars).
1790 (magic_who): Improve formatting (break lines every 9 vars).
1764
1791
1765 2004-11-28 Fernando Perez <fperez@colorado.edu>
1792 2004-11-28 Fernando Perez <fperez@colorado.edu>
1766
1793
1767 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1794 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1768 cache when empty lines were present.
1795 cache when empty lines were present.
1769
1796
1770 2004-11-24 Fernando Perez <fperez@colorado.edu>
1797 2004-11-24 Fernando Perez <fperez@colorado.edu>
1771
1798
1772 * IPython/usage.py (__doc__): document the re-activated threading
1799 * IPython/usage.py (__doc__): document the re-activated threading
1773 options for WX and GTK.
1800 options for WX and GTK.
1774
1801
1775 2004-11-23 Fernando Perez <fperez@colorado.edu>
1802 2004-11-23 Fernando Perez <fperez@colorado.edu>
1776
1803
1777 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1804 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1778 the -wthread and -gthread options, along with a new -tk one to try
1805 the -wthread and -gthread options, along with a new -tk one to try
1779 and coordinate Tk threading with wx/gtk. The tk support is very
1806 and coordinate Tk threading with wx/gtk. The tk support is very
1780 platform dependent, since it seems to require Tcl and Tk to be
1807 platform dependent, since it seems to require Tcl and Tk to be
1781 built with threads (Fedora1/2 appears NOT to have it, but in
1808 built with threads (Fedora1/2 appears NOT to have it, but in
1782 Prabhu's Debian boxes it works OK). But even with some Tk
1809 Prabhu's Debian boxes it works OK). But even with some Tk
1783 limitations, this is a great improvement.
1810 limitations, this is a great improvement.
1784
1811
1785 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1812 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1786 info in user prompts. Patch by Prabhu.
1813 info in user prompts. Patch by Prabhu.
1787
1814
1788 2004-11-18 Fernando Perez <fperez@colorado.edu>
1815 2004-11-18 Fernando Perez <fperez@colorado.edu>
1789
1816
1790 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1817 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1791 EOFErrors and bail, to avoid infinite loops if a non-terminating
1818 EOFErrors and bail, to avoid infinite loops if a non-terminating
1792 file is fed into ipython. Patch submitted in issue 19 by user,
1819 file is fed into ipython. Patch submitted in issue 19 by user,
1793 many thanks.
1820 many thanks.
1794
1821
1795 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1822 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1796 autoquote/parens in continuation prompts, which can cause lots of
1823 autoquote/parens in continuation prompts, which can cause lots of
1797 problems. Closes roundup issue 20.
1824 problems. Closes roundup issue 20.
1798
1825
1799 2004-11-17 Fernando Perez <fperez@colorado.edu>
1826 2004-11-17 Fernando Perez <fperez@colorado.edu>
1800
1827
1801 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1828 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1802 reported as debian bug #280505. I'm not sure my local changelog
1829 reported as debian bug #280505. I'm not sure my local changelog
1803 entry has the proper debian format (Jack?).
1830 entry has the proper debian format (Jack?).
1804
1831
1805 2004-11-08 *** Released version 0.6.4
1832 2004-11-08 *** Released version 0.6.4
1806
1833
1807 2004-11-08 Fernando Perez <fperez@colorado.edu>
1834 2004-11-08 Fernando Perez <fperez@colorado.edu>
1808
1835
1809 * IPython/iplib.py (init_readline): Fix exit message for Windows
1836 * IPython/iplib.py (init_readline): Fix exit message for Windows
1810 when readline is active. Thanks to a report by Eric Jones
1837 when readline is active. Thanks to a report by Eric Jones
1811 <eric-AT-enthought.com>.
1838 <eric-AT-enthought.com>.
1812
1839
1813 2004-11-07 Fernando Perez <fperez@colorado.edu>
1840 2004-11-07 Fernando Perez <fperez@colorado.edu>
1814
1841
1815 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1842 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1816 sometimes seen by win2k/cygwin users.
1843 sometimes seen by win2k/cygwin users.
1817
1844
1818 2004-11-06 Fernando Perez <fperez@colorado.edu>
1845 2004-11-06 Fernando Perez <fperez@colorado.edu>
1819
1846
1820 * IPython/iplib.py (interact): Change the handling of %Exit from
1847 * IPython/iplib.py (interact): Change the handling of %Exit from
1821 trying to propagate a SystemExit to an internal ipython flag.
1848 trying to propagate a SystemExit to an internal ipython flag.
1822 This is less elegant than using Python's exception mechanism, but
1849 This is less elegant than using Python's exception mechanism, but
1823 I can't get that to work reliably with threads, so under -pylab
1850 I can't get that to work reliably with threads, so under -pylab
1824 %Exit was hanging IPython. Cross-thread exception handling is
1851 %Exit was hanging IPython. Cross-thread exception handling is
1825 really a bitch. Thaks to a bug report by Stephen Walton
1852 really a bitch. Thaks to a bug report by Stephen Walton
1826 <stephen.walton-AT-csun.edu>.
1853 <stephen.walton-AT-csun.edu>.
1827
1854
1828 2004-11-04 Fernando Perez <fperez@colorado.edu>
1855 2004-11-04 Fernando Perez <fperez@colorado.edu>
1829
1856
1830 * IPython/iplib.py (raw_input_original): store a pointer to the
1857 * IPython/iplib.py (raw_input_original): store a pointer to the
1831 true raw_input to harden against code which can modify it
1858 true raw_input to harden against code which can modify it
1832 (wx.py.PyShell does this and would otherwise crash ipython).
1859 (wx.py.PyShell does this and would otherwise crash ipython).
1833 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1860 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1834
1861
1835 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1862 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1836 Ctrl-C problem, which does not mess up the input line.
1863 Ctrl-C problem, which does not mess up the input line.
1837
1864
1838 2004-11-03 Fernando Perez <fperez@colorado.edu>
1865 2004-11-03 Fernando Perez <fperez@colorado.edu>
1839
1866
1840 * IPython/Release.py: Changed licensing to BSD, in all files.
1867 * IPython/Release.py: Changed licensing to BSD, in all files.
1841 (name): lowercase name for tarball/RPM release.
1868 (name): lowercase name for tarball/RPM release.
1842
1869
1843 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1870 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1844 use throughout ipython.
1871 use throughout ipython.
1845
1872
1846 * IPython/Magic.py (Magic._ofind): Switch to using the new
1873 * IPython/Magic.py (Magic._ofind): Switch to using the new
1847 OInspect.getdoc() function.
1874 OInspect.getdoc() function.
1848
1875
1849 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1876 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1850 of the line currently being canceled via Ctrl-C. It's extremely
1877 of the line currently being canceled via Ctrl-C. It's extremely
1851 ugly, but I don't know how to do it better (the problem is one of
1878 ugly, but I don't know how to do it better (the problem is one of
1852 handling cross-thread exceptions).
1879 handling cross-thread exceptions).
1853
1880
1854 2004-10-28 Fernando Perez <fperez@colorado.edu>
1881 2004-10-28 Fernando Perez <fperez@colorado.edu>
1855
1882
1856 * IPython/Shell.py (signal_handler): add signal handlers to trap
1883 * IPython/Shell.py (signal_handler): add signal handlers to trap
1857 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1884 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1858 report by Francesc Alted.
1885 report by Francesc Alted.
1859
1886
1860 2004-10-21 Fernando Perez <fperez@colorado.edu>
1887 2004-10-21 Fernando Perez <fperez@colorado.edu>
1861
1888
1862 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1889 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1863 to % for pysh syntax extensions.
1890 to % for pysh syntax extensions.
1864
1891
1865 2004-10-09 Fernando Perez <fperez@colorado.edu>
1892 2004-10-09 Fernando Perez <fperez@colorado.edu>
1866
1893
1867 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1894 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1868 arrays to print a more useful summary, without calling str(arr).
1895 arrays to print a more useful summary, without calling str(arr).
1869 This avoids the problem of extremely lengthy computations which
1896 This avoids the problem of extremely lengthy computations which
1870 occur if arr is large, and appear to the user as a system lockup
1897 occur if arr is large, and appear to the user as a system lockup
1871 with 100% cpu activity. After a suggestion by Kristian Sandberg
1898 with 100% cpu activity. After a suggestion by Kristian Sandberg
1872 <Kristian.Sandberg@colorado.edu>.
1899 <Kristian.Sandberg@colorado.edu>.
1873 (Magic.__init__): fix bug in global magic escapes not being
1900 (Magic.__init__): fix bug in global magic escapes not being
1874 correctly set.
1901 correctly set.
1875
1902
1876 2004-10-08 Fernando Perez <fperez@colorado.edu>
1903 2004-10-08 Fernando Perez <fperez@colorado.edu>
1877
1904
1878 * IPython/Magic.py (__license__): change to absolute imports of
1905 * IPython/Magic.py (__license__): change to absolute imports of
1879 ipython's own internal packages, to start adapting to the absolute
1906 ipython's own internal packages, to start adapting to the absolute
1880 import requirement of PEP-328.
1907 import requirement of PEP-328.
1881
1908
1882 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1909 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1883 files, and standardize author/license marks through the Release
1910 files, and standardize author/license marks through the Release
1884 module instead of having per/file stuff (except for files with
1911 module instead of having per/file stuff (except for files with
1885 particular licenses, like the MIT/PSF-licensed codes).
1912 particular licenses, like the MIT/PSF-licensed codes).
1886
1913
1887 * IPython/Debugger.py: remove dead code for python 2.1
1914 * IPython/Debugger.py: remove dead code for python 2.1
1888
1915
1889 2004-10-04 Fernando Perez <fperez@colorado.edu>
1916 2004-10-04 Fernando Perez <fperez@colorado.edu>
1890
1917
1891 * IPython/iplib.py (ipmagic): New function for accessing magics
1918 * IPython/iplib.py (ipmagic): New function for accessing magics
1892 via a normal python function call.
1919 via a normal python function call.
1893
1920
1894 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1921 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1895 from '@' to '%', to accomodate the new @decorator syntax of python
1922 from '@' to '%', to accomodate the new @decorator syntax of python
1896 2.4.
1923 2.4.
1897
1924
1898 2004-09-29 Fernando Perez <fperez@colorado.edu>
1925 2004-09-29 Fernando Perez <fperez@colorado.edu>
1899
1926
1900 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1927 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1901 matplotlib.use to prevent running scripts which try to switch
1928 matplotlib.use to prevent running scripts which try to switch
1902 interactive backends from within ipython. This will just crash
1929 interactive backends from within ipython. This will just crash
1903 the python interpreter, so we can't allow it (but a detailed error
1930 the python interpreter, so we can't allow it (but a detailed error
1904 is given to the user).
1931 is given to the user).
1905
1932
1906 2004-09-28 Fernando Perez <fperez@colorado.edu>
1933 2004-09-28 Fernando Perez <fperez@colorado.edu>
1907
1934
1908 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1935 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1909 matplotlib-related fixes so that using @run with non-matplotlib
1936 matplotlib-related fixes so that using @run with non-matplotlib
1910 scripts doesn't pop up spurious plot windows. This requires
1937 scripts doesn't pop up spurious plot windows. This requires
1911 matplotlib >= 0.63, where I had to make some changes as well.
1938 matplotlib >= 0.63, where I had to make some changes as well.
1912
1939
1913 * IPython/ipmaker.py (make_IPython): update version requirement to
1940 * IPython/ipmaker.py (make_IPython): update version requirement to
1914 python 2.2.
1941 python 2.2.
1915
1942
1916 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1943 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1917 banner arg for embedded customization.
1944 banner arg for embedded customization.
1918
1945
1919 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1946 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1920 explicit uses of __IP as the IPython's instance name. Now things
1947 explicit uses of __IP as the IPython's instance name. Now things
1921 are properly handled via the shell.name value. The actual code
1948 are properly handled via the shell.name value. The actual code
1922 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1949 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1923 is much better than before. I'll clean things completely when the
1950 is much better than before. I'll clean things completely when the
1924 magic stuff gets a real overhaul.
1951 magic stuff gets a real overhaul.
1925
1952
1926 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1953 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1927 minor changes to debian dir.
1954 minor changes to debian dir.
1928
1955
1929 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1956 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1930 pointer to the shell itself in the interactive namespace even when
1957 pointer to the shell itself in the interactive namespace even when
1931 a user-supplied dict is provided. This is needed for embedding
1958 a user-supplied dict is provided. This is needed for embedding
1932 purposes (found by tests with Michel Sanner).
1959 purposes (found by tests with Michel Sanner).
1933
1960
1934 2004-09-27 Fernando Perez <fperez@colorado.edu>
1961 2004-09-27 Fernando Perez <fperez@colorado.edu>
1935
1962
1936 * IPython/UserConfig/ipythonrc: remove []{} from
1963 * IPython/UserConfig/ipythonrc: remove []{} from
1937 readline_remove_delims, so that things like [modname.<TAB> do
1964 readline_remove_delims, so that things like [modname.<TAB> do
1938 proper completion. This disables [].TAB, but that's a less common
1965 proper completion. This disables [].TAB, but that's a less common
1939 case than module names in list comprehensions, for example.
1966 case than module names in list comprehensions, for example.
1940 Thanks to a report by Andrea Riciputi.
1967 Thanks to a report by Andrea Riciputi.
1941
1968
1942 2004-09-09 Fernando Perez <fperez@colorado.edu>
1969 2004-09-09 Fernando Perez <fperez@colorado.edu>
1943
1970
1944 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1971 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1945 blocking problems in win32 and osx. Fix by John.
1972 blocking problems in win32 and osx. Fix by John.
1946
1973
1947 2004-09-08 Fernando Perez <fperez@colorado.edu>
1974 2004-09-08 Fernando Perez <fperez@colorado.edu>
1948
1975
1949 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1976 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1950 for Win32 and OSX. Fix by John Hunter.
1977 for Win32 and OSX. Fix by John Hunter.
1951
1978
1952 2004-08-30 *** Released version 0.6.3
1979 2004-08-30 *** Released version 0.6.3
1953
1980
1954 2004-08-30 Fernando Perez <fperez@colorado.edu>
1981 2004-08-30 Fernando Perez <fperez@colorado.edu>
1955
1982
1956 * setup.py (isfile): Add manpages to list of dependent files to be
1983 * setup.py (isfile): Add manpages to list of dependent files to be
1957 updated.
1984 updated.
1958
1985
1959 2004-08-27 Fernando Perez <fperez@colorado.edu>
1986 2004-08-27 Fernando Perez <fperez@colorado.edu>
1960
1987
1961 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1988 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1962 for now. They don't really work with standalone WX/GTK code
1989 for now. They don't really work with standalone WX/GTK code
1963 (though matplotlib IS working fine with both of those backends).
1990 (though matplotlib IS working fine with both of those backends).
1964 This will neeed much more testing. I disabled most things with
1991 This will neeed much more testing. I disabled most things with
1965 comments, so turning it back on later should be pretty easy.
1992 comments, so turning it back on later should be pretty easy.
1966
1993
1967 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1994 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1968 autocalling of expressions like r'foo', by modifying the line
1995 autocalling of expressions like r'foo', by modifying the line
1969 split regexp. Closes
1996 split regexp. Closes
1970 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1997 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1971 Riley <ipythonbugs-AT-sabi.net>.
1998 Riley <ipythonbugs-AT-sabi.net>.
1972 (InteractiveShell.mainloop): honor --nobanner with banner
1999 (InteractiveShell.mainloop): honor --nobanner with banner
1973 extensions.
2000 extensions.
1974
2001
1975 * IPython/Shell.py: Significant refactoring of all classes, so
2002 * IPython/Shell.py: Significant refactoring of all classes, so
1976 that we can really support ALL matplotlib backends and threading
2003 that we can really support ALL matplotlib backends and threading
1977 models (John spotted a bug with Tk which required this). Now we
2004 models (John spotted a bug with Tk which required this). Now we
1978 should support single-threaded, WX-threads and GTK-threads, both
2005 should support single-threaded, WX-threads and GTK-threads, both
1979 for generic code and for matplotlib.
2006 for generic code and for matplotlib.
1980
2007
1981 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2008 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1982 -pylab, to simplify things for users. Will also remove the pylab
2009 -pylab, to simplify things for users. Will also remove the pylab
1983 profile, since now all of matplotlib configuration is directly
2010 profile, since now all of matplotlib configuration is directly
1984 handled here. This also reduces startup time.
2011 handled here. This also reduces startup time.
1985
2012
1986 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2013 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1987 shell wasn't being correctly called. Also in IPShellWX.
2014 shell wasn't being correctly called. Also in IPShellWX.
1988
2015
1989 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2016 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1990 fine-tune banner.
2017 fine-tune banner.
1991
2018
1992 * IPython/numutils.py (spike): Deprecate these spike functions,
2019 * IPython/numutils.py (spike): Deprecate these spike functions,
1993 delete (long deprecated) gnuplot_exec handler.
2020 delete (long deprecated) gnuplot_exec handler.
1994
2021
1995 2004-08-26 Fernando Perez <fperez@colorado.edu>
2022 2004-08-26 Fernando Perez <fperez@colorado.edu>
1996
2023
1997 * ipython.1: Update for threading options, plus some others which
2024 * ipython.1: Update for threading options, plus some others which
1998 were missing.
2025 were missing.
1999
2026
2000 * IPython/ipmaker.py (__call__): Added -wthread option for
2027 * IPython/ipmaker.py (__call__): Added -wthread option for
2001 wxpython thread handling. Make sure threading options are only
2028 wxpython thread handling. Make sure threading options are only
2002 valid at the command line.
2029 valid at the command line.
2003
2030
2004 * scripts/ipython: moved shell selection into a factory function
2031 * scripts/ipython: moved shell selection into a factory function
2005 in Shell.py, to keep the starter script to a minimum.
2032 in Shell.py, to keep the starter script to a minimum.
2006
2033
2007 2004-08-25 Fernando Perez <fperez@colorado.edu>
2034 2004-08-25 Fernando Perez <fperez@colorado.edu>
2008
2035
2009 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2036 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2010 John. Along with some recent changes he made to matplotlib, the
2037 John. Along with some recent changes he made to matplotlib, the
2011 next versions of both systems should work very well together.
2038 next versions of both systems should work very well together.
2012
2039
2013 2004-08-24 Fernando Perez <fperez@colorado.edu>
2040 2004-08-24 Fernando Perez <fperez@colorado.edu>
2014
2041
2015 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2042 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2016 tried to switch the profiling to using hotshot, but I'm getting
2043 tried to switch the profiling to using hotshot, but I'm getting
2017 strange errors from prof.runctx() there. I may be misreading the
2044 strange errors from prof.runctx() there. I may be misreading the
2018 docs, but it looks weird. For now the profiling code will
2045 docs, but it looks weird. For now the profiling code will
2019 continue to use the standard profiler.
2046 continue to use the standard profiler.
2020
2047
2021 2004-08-23 Fernando Perez <fperez@colorado.edu>
2048 2004-08-23 Fernando Perez <fperez@colorado.edu>
2022
2049
2023 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2050 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2024 threaded shell, by John Hunter. It's not quite ready yet, but
2051 threaded shell, by John Hunter. It's not quite ready yet, but
2025 close.
2052 close.
2026
2053
2027 2004-08-22 Fernando Perez <fperez@colorado.edu>
2054 2004-08-22 Fernando Perez <fperez@colorado.edu>
2028
2055
2029 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2056 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2030 in Magic and ultraTB.
2057 in Magic and ultraTB.
2031
2058
2032 * ipython.1: document threading options in manpage.
2059 * ipython.1: document threading options in manpage.
2033
2060
2034 * scripts/ipython: Changed name of -thread option to -gthread,
2061 * scripts/ipython: Changed name of -thread option to -gthread,
2035 since this is GTK specific. I want to leave the door open for a
2062 since this is GTK specific. I want to leave the door open for a
2036 -wthread option for WX, which will most likely be necessary. This
2063 -wthread option for WX, which will most likely be necessary. This
2037 change affects usage and ipmaker as well.
2064 change affects usage and ipmaker as well.
2038
2065
2039 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2066 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2040 handle the matplotlib shell issues. Code by John Hunter
2067 handle the matplotlib shell issues. Code by John Hunter
2041 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2068 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2042 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2069 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2043 broken (and disabled for end users) for now, but it puts the
2070 broken (and disabled for end users) for now, but it puts the
2044 infrastructure in place.
2071 infrastructure in place.
2045
2072
2046 2004-08-21 Fernando Perez <fperez@colorado.edu>
2073 2004-08-21 Fernando Perez <fperez@colorado.edu>
2047
2074
2048 * ipythonrc-pylab: Add matplotlib support.
2075 * ipythonrc-pylab: Add matplotlib support.
2049
2076
2050 * matplotlib_config.py: new files for matplotlib support, part of
2077 * matplotlib_config.py: new files for matplotlib support, part of
2051 the pylab profile.
2078 the pylab profile.
2052
2079
2053 * IPython/usage.py (__doc__): documented the threading options.
2080 * IPython/usage.py (__doc__): documented the threading options.
2054
2081
2055 2004-08-20 Fernando Perez <fperez@colorado.edu>
2082 2004-08-20 Fernando Perez <fperez@colorado.edu>
2056
2083
2057 * ipython: Modified the main calling routine to handle the -thread
2084 * ipython: Modified the main calling routine to handle the -thread
2058 and -mpthread options. This needs to be done as a top-level hack,
2085 and -mpthread options. This needs to be done as a top-level hack,
2059 because it determines which class to instantiate for IPython
2086 because it determines which class to instantiate for IPython
2060 itself.
2087 itself.
2061
2088
2062 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2089 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2063 classes to support multithreaded GTK operation without blocking,
2090 classes to support multithreaded GTK operation without blocking,
2064 and matplotlib with all backends. This is a lot of still very
2091 and matplotlib with all backends. This is a lot of still very
2065 experimental code, and threads are tricky. So it may still have a
2092 experimental code, and threads are tricky. So it may still have a
2066 few rough edges... This code owes a lot to
2093 few rough edges... This code owes a lot to
2067 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2094 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2068 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2095 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2069 to John Hunter for all the matplotlib work.
2096 to John Hunter for all the matplotlib work.
2070
2097
2071 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2098 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2072 options for gtk thread and matplotlib support.
2099 options for gtk thread and matplotlib support.
2073
2100
2074 2004-08-16 Fernando Perez <fperez@colorado.edu>
2101 2004-08-16 Fernando Perez <fperez@colorado.edu>
2075
2102
2076 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2103 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2077 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2104 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2078 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2105 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2079
2106
2080 2004-08-11 Fernando Perez <fperez@colorado.edu>
2107 2004-08-11 Fernando Perez <fperez@colorado.edu>
2081
2108
2082 * setup.py (isfile): Fix build so documentation gets updated for
2109 * setup.py (isfile): Fix build so documentation gets updated for
2083 rpms (it was only done for .tgz builds).
2110 rpms (it was only done for .tgz builds).
2084
2111
2085 2004-08-10 Fernando Perez <fperez@colorado.edu>
2112 2004-08-10 Fernando Perez <fperez@colorado.edu>
2086
2113
2087 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2114 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2088
2115
2089 * iplib.py : Silence syntax error exceptions in tab-completion.
2116 * iplib.py : Silence syntax error exceptions in tab-completion.
2090
2117
2091 2004-08-05 Fernando Perez <fperez@colorado.edu>
2118 2004-08-05 Fernando Perez <fperez@colorado.edu>
2092
2119
2093 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2120 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2094 'color off' mark for continuation prompts. This was causing long
2121 'color off' mark for continuation prompts. This was causing long
2095 continuation lines to mis-wrap.
2122 continuation lines to mis-wrap.
2096
2123
2097 2004-08-01 Fernando Perez <fperez@colorado.edu>
2124 2004-08-01 Fernando Perez <fperez@colorado.edu>
2098
2125
2099 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2126 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2100 for building ipython to be a parameter. All this is necessary
2127 for building ipython to be a parameter. All this is necessary
2101 right now to have a multithreaded version, but this insane
2128 right now to have a multithreaded version, but this insane
2102 non-design will be cleaned up soon. For now, it's a hack that
2129 non-design will be cleaned up soon. For now, it's a hack that
2103 works.
2130 works.
2104
2131
2105 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2132 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2106 args in various places. No bugs so far, but it's a dangerous
2133 args in various places. No bugs so far, but it's a dangerous
2107 practice.
2134 practice.
2108
2135
2109 2004-07-31 Fernando Perez <fperez@colorado.edu>
2136 2004-07-31 Fernando Perez <fperez@colorado.edu>
2110
2137
2111 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2138 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2112 fix completion of files with dots in their names under most
2139 fix completion of files with dots in their names under most
2113 profiles (pysh was OK because the completion order is different).
2140 profiles (pysh was OK because the completion order is different).
2114
2141
2115 2004-07-27 Fernando Perez <fperez@colorado.edu>
2142 2004-07-27 Fernando Perez <fperez@colorado.edu>
2116
2143
2117 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2144 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2118 keywords manually, b/c the one in keyword.py was removed in python
2145 keywords manually, b/c the one in keyword.py was removed in python
2119 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2146 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2120 This is NOT a bug under python 2.3 and earlier.
2147 This is NOT a bug under python 2.3 and earlier.
2121
2148
2122 2004-07-26 Fernando Perez <fperez@colorado.edu>
2149 2004-07-26 Fernando Perez <fperez@colorado.edu>
2123
2150
2124 * IPython/ultraTB.py (VerboseTB.text): Add another
2151 * IPython/ultraTB.py (VerboseTB.text): Add another
2125 linecache.checkcache() call to try to prevent inspect.py from
2152 linecache.checkcache() call to try to prevent inspect.py from
2126 crashing under python 2.3. I think this fixes
2153 crashing under python 2.3. I think this fixes
2127 http://www.scipy.net/roundup/ipython/issue17.
2154 http://www.scipy.net/roundup/ipython/issue17.
2128
2155
2129 2004-07-26 *** Released version 0.6.2
2156 2004-07-26 *** Released version 0.6.2
2130
2157
2131 2004-07-26 Fernando Perez <fperez@colorado.edu>
2158 2004-07-26 Fernando Perez <fperez@colorado.edu>
2132
2159
2133 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2160 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2134 fail for any number.
2161 fail for any number.
2135 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2162 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2136 empty bookmarks.
2163 empty bookmarks.
2137
2164
2138 2004-07-26 *** Released version 0.6.1
2165 2004-07-26 *** Released version 0.6.1
2139
2166
2140 2004-07-26 Fernando Perez <fperez@colorado.edu>
2167 2004-07-26 Fernando Perez <fperez@colorado.edu>
2141
2168
2142 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2169 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2143
2170
2144 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2171 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2145 escaping '()[]{}' in filenames.
2172 escaping '()[]{}' in filenames.
2146
2173
2147 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2174 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2148 Python 2.2 users who lack a proper shlex.split.
2175 Python 2.2 users who lack a proper shlex.split.
2149
2176
2150 2004-07-19 Fernando Perez <fperez@colorado.edu>
2177 2004-07-19 Fernando Perez <fperez@colorado.edu>
2151
2178
2152 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2179 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2153 for reading readline's init file. I follow the normal chain:
2180 for reading readline's init file. I follow the normal chain:
2154 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2181 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2155 report by Mike Heeter. This closes
2182 report by Mike Heeter. This closes
2156 http://www.scipy.net/roundup/ipython/issue16.
2183 http://www.scipy.net/roundup/ipython/issue16.
2157
2184
2158 2004-07-18 Fernando Perez <fperez@colorado.edu>
2185 2004-07-18 Fernando Perez <fperez@colorado.edu>
2159
2186
2160 * IPython/iplib.py (__init__): Add better handling of '\' under
2187 * IPython/iplib.py (__init__): Add better handling of '\' under
2161 Win32 for filenames. After a patch by Ville.
2188 Win32 for filenames. After a patch by Ville.
2162
2189
2163 2004-07-17 Fernando Perez <fperez@colorado.edu>
2190 2004-07-17 Fernando Perez <fperez@colorado.edu>
2164
2191
2165 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2192 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2166 autocalling would be triggered for 'foo is bar' if foo is
2193 autocalling would be triggered for 'foo is bar' if foo is
2167 callable. I also cleaned up the autocall detection code to use a
2194 callable. I also cleaned up the autocall detection code to use a
2168 regexp, which is faster. Bug reported by Alexander Schmolck.
2195 regexp, which is faster. Bug reported by Alexander Schmolck.
2169
2196
2170 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2197 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2171 '?' in them would confuse the help system. Reported by Alex
2198 '?' in them would confuse the help system. Reported by Alex
2172 Schmolck.
2199 Schmolck.
2173
2200
2174 2004-07-16 Fernando Perez <fperez@colorado.edu>
2201 2004-07-16 Fernando Perez <fperez@colorado.edu>
2175
2202
2176 * IPython/GnuplotInteractive.py (__all__): added plot2.
2203 * IPython/GnuplotInteractive.py (__all__): added plot2.
2177
2204
2178 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2205 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2179 plotting dictionaries, lists or tuples of 1d arrays.
2206 plotting dictionaries, lists or tuples of 1d arrays.
2180
2207
2181 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2208 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2182 optimizations.
2209 optimizations.
2183
2210
2184 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2211 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2185 the information which was there from Janko's original IPP code:
2212 the information which was there from Janko's original IPP code:
2186
2213
2187 03.05.99 20:53 porto.ifm.uni-kiel.de
2214 03.05.99 20:53 porto.ifm.uni-kiel.de
2188 --Started changelog.
2215 --Started changelog.
2189 --make clear do what it say it does
2216 --make clear do what it say it does
2190 --added pretty output of lines from inputcache
2217 --added pretty output of lines from inputcache
2191 --Made Logger a mixin class, simplifies handling of switches
2218 --Made Logger a mixin class, simplifies handling of switches
2192 --Added own completer class. .string<TAB> expands to last history
2219 --Added own completer class. .string<TAB> expands to last history
2193 line which starts with string. The new expansion is also present
2220 line which starts with string. The new expansion is also present
2194 with Ctrl-r from the readline library. But this shows, who this
2221 with Ctrl-r from the readline library. But this shows, who this
2195 can be done for other cases.
2222 can be done for other cases.
2196 --Added convention that all shell functions should accept a
2223 --Added convention that all shell functions should accept a
2197 parameter_string This opens the door for different behaviour for
2224 parameter_string This opens the door for different behaviour for
2198 each function. @cd is a good example of this.
2225 each function. @cd is a good example of this.
2199
2226
2200 04.05.99 12:12 porto.ifm.uni-kiel.de
2227 04.05.99 12:12 porto.ifm.uni-kiel.de
2201 --added logfile rotation
2228 --added logfile rotation
2202 --added new mainloop method which freezes first the namespace
2229 --added new mainloop method which freezes first the namespace
2203
2230
2204 07.05.99 21:24 porto.ifm.uni-kiel.de
2231 07.05.99 21:24 porto.ifm.uni-kiel.de
2205 --added the docreader classes. Now there is a help system.
2232 --added the docreader classes. Now there is a help system.
2206 -This is only a first try. Currently it's not easy to put new
2233 -This is only a first try. Currently it's not easy to put new
2207 stuff in the indices. But this is the way to go. Info would be
2234 stuff in the indices. But this is the way to go. Info would be
2208 better, but HTML is every where and not everybody has an info
2235 better, but HTML is every where and not everybody has an info
2209 system installed and it's not so easy to change html-docs to info.
2236 system installed and it's not so easy to change html-docs to info.
2210 --added global logfile option
2237 --added global logfile option
2211 --there is now a hook for object inspection method pinfo needs to
2238 --there is now a hook for object inspection method pinfo needs to
2212 be provided for this. Can be reached by two '??'.
2239 be provided for this. Can be reached by two '??'.
2213
2240
2214 08.05.99 20:51 porto.ifm.uni-kiel.de
2241 08.05.99 20:51 porto.ifm.uni-kiel.de
2215 --added a README
2242 --added a README
2216 --bug in rc file. Something has changed so functions in the rc
2243 --bug in rc file. Something has changed so functions in the rc
2217 file need to reference the shell and not self. Not clear if it's a
2244 file need to reference the shell and not self. Not clear if it's a
2218 bug or feature.
2245 bug or feature.
2219 --changed rc file for new behavior
2246 --changed rc file for new behavior
2220
2247
2221 2004-07-15 Fernando Perez <fperez@colorado.edu>
2248 2004-07-15 Fernando Perez <fperez@colorado.edu>
2222
2249
2223 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2250 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2224 cache was falling out of sync in bizarre manners when multi-line
2251 cache was falling out of sync in bizarre manners when multi-line
2225 input was present. Minor optimizations and cleanup.
2252 input was present. Minor optimizations and cleanup.
2226
2253
2227 (Logger): Remove old Changelog info for cleanup. This is the
2254 (Logger): Remove old Changelog info for cleanup. This is the
2228 information which was there from Janko's original code:
2255 information which was there from Janko's original code:
2229
2256
2230 Changes to Logger: - made the default log filename a parameter
2257 Changes to Logger: - made the default log filename a parameter
2231
2258
2232 - put a check for lines beginning with !@? in log(). Needed
2259 - put a check for lines beginning with !@? in log(). Needed
2233 (even if the handlers properly log their lines) for mid-session
2260 (even if the handlers properly log their lines) for mid-session
2234 logging activation to work properly. Without this, lines logged
2261 logging activation to work properly. Without this, lines logged
2235 in mid session, which get read from the cache, would end up
2262 in mid session, which get read from the cache, would end up
2236 'bare' (with !@? in the open) in the log. Now they are caught
2263 'bare' (with !@? in the open) in the log. Now they are caught
2237 and prepended with a #.
2264 and prepended with a #.
2238
2265
2239 * IPython/iplib.py (InteractiveShell.init_readline): added check
2266 * IPython/iplib.py (InteractiveShell.init_readline): added check
2240 in case MagicCompleter fails to be defined, so we don't crash.
2267 in case MagicCompleter fails to be defined, so we don't crash.
2241
2268
2242 2004-07-13 Fernando Perez <fperez@colorado.edu>
2269 2004-07-13 Fernando Perez <fperez@colorado.edu>
2243
2270
2244 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2271 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2245 of EPS if the requested filename ends in '.eps'.
2272 of EPS if the requested filename ends in '.eps'.
2246
2273
2247 2004-07-04 Fernando Perez <fperez@colorado.edu>
2274 2004-07-04 Fernando Perez <fperez@colorado.edu>
2248
2275
2249 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2276 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2250 escaping of quotes when calling the shell.
2277 escaping of quotes when calling the shell.
2251
2278
2252 2004-07-02 Fernando Perez <fperez@colorado.edu>
2279 2004-07-02 Fernando Perez <fperez@colorado.edu>
2253
2280
2254 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2281 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2255 gettext not working because we were clobbering '_'. Fixes
2282 gettext not working because we were clobbering '_'. Fixes
2256 http://www.scipy.net/roundup/ipython/issue6.
2283 http://www.scipy.net/roundup/ipython/issue6.
2257
2284
2258 2004-07-01 Fernando Perez <fperez@colorado.edu>
2285 2004-07-01 Fernando Perez <fperez@colorado.edu>
2259
2286
2260 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2287 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2261 into @cd. Patch by Ville.
2288 into @cd. Patch by Ville.
2262
2289
2263 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2290 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2264 new function to store things after ipmaker runs. Patch by Ville.
2291 new function to store things after ipmaker runs. Patch by Ville.
2265 Eventually this will go away once ipmaker is removed and the class
2292 Eventually this will go away once ipmaker is removed and the class
2266 gets cleaned up, but for now it's ok. Key functionality here is
2293 gets cleaned up, but for now it's ok. Key functionality here is
2267 the addition of the persistent storage mechanism, a dict for
2294 the addition of the persistent storage mechanism, a dict for
2268 keeping data across sessions (for now just bookmarks, but more can
2295 keeping data across sessions (for now just bookmarks, but more can
2269 be implemented later).
2296 be implemented later).
2270
2297
2271 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2298 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2272 persistent across sections. Patch by Ville, I modified it
2299 persistent across sections. Patch by Ville, I modified it
2273 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2300 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2274 added a '-l' option to list all bookmarks.
2301 added a '-l' option to list all bookmarks.
2275
2302
2276 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2303 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2277 center for cleanup. Registered with atexit.register(). I moved
2304 center for cleanup. Registered with atexit.register(). I moved
2278 here the old exit_cleanup(). After a patch by Ville.
2305 here the old exit_cleanup(). After a patch by Ville.
2279
2306
2280 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2307 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2281 characters in the hacked shlex_split for python 2.2.
2308 characters in the hacked shlex_split for python 2.2.
2282
2309
2283 * IPython/iplib.py (file_matches): more fixes to filenames with
2310 * IPython/iplib.py (file_matches): more fixes to filenames with
2284 whitespace in them. It's not perfect, but limitations in python's
2311 whitespace in them. It's not perfect, but limitations in python's
2285 readline make it impossible to go further.
2312 readline make it impossible to go further.
2286
2313
2287 2004-06-29 Fernando Perez <fperez@colorado.edu>
2314 2004-06-29 Fernando Perez <fperez@colorado.edu>
2288
2315
2289 * IPython/iplib.py (file_matches): escape whitespace correctly in
2316 * IPython/iplib.py (file_matches): escape whitespace correctly in
2290 filename completions. Bug reported by Ville.
2317 filename completions. Bug reported by Ville.
2291
2318
2292 2004-06-28 Fernando Perez <fperez@colorado.edu>
2319 2004-06-28 Fernando Perez <fperez@colorado.edu>
2293
2320
2294 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2321 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2295 the history file will be called 'history-PROFNAME' (or just
2322 the history file will be called 'history-PROFNAME' (or just
2296 'history' if no profile is loaded). I was getting annoyed at
2323 'history' if no profile is loaded). I was getting annoyed at
2297 getting my Numerical work history clobbered by pysh sessions.
2324 getting my Numerical work history clobbered by pysh sessions.
2298
2325
2299 * IPython/iplib.py (InteractiveShell.__init__): Internal
2326 * IPython/iplib.py (InteractiveShell.__init__): Internal
2300 getoutputerror() function so that we can honor the system_verbose
2327 getoutputerror() function so that we can honor the system_verbose
2301 flag for _all_ system calls. I also added escaping of #
2328 flag for _all_ system calls. I also added escaping of #
2302 characters here to avoid confusing Itpl.
2329 characters here to avoid confusing Itpl.
2303
2330
2304 * IPython/Magic.py (shlex_split): removed call to shell in
2331 * IPython/Magic.py (shlex_split): removed call to shell in
2305 parse_options and replaced it with shlex.split(). The annoying
2332 parse_options and replaced it with shlex.split(). The annoying
2306 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2333 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2307 to backport it from 2.3, with several frail hacks (the shlex
2334 to backport it from 2.3, with several frail hacks (the shlex
2308 module is rather limited in 2.2). Thanks to a suggestion by Ville
2335 module is rather limited in 2.2). Thanks to a suggestion by Ville
2309 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2336 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2310 problem.
2337 problem.
2311
2338
2312 (Magic.magic_system_verbose): new toggle to print the actual
2339 (Magic.magic_system_verbose): new toggle to print the actual
2313 system calls made by ipython. Mainly for debugging purposes.
2340 system calls made by ipython. Mainly for debugging purposes.
2314
2341
2315 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2342 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2316 doesn't support persistence. Reported (and fix suggested) by
2343 doesn't support persistence. Reported (and fix suggested) by
2317 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2344 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2318
2345
2319 2004-06-26 Fernando Perez <fperez@colorado.edu>
2346 2004-06-26 Fernando Perez <fperez@colorado.edu>
2320
2347
2321 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2348 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2322 continue prompts.
2349 continue prompts.
2323
2350
2324 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2351 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2325 function (basically a big docstring) and a few more things here to
2352 function (basically a big docstring) and a few more things here to
2326 speedup startup. pysh.py is now very lightweight. We want because
2353 speedup startup. pysh.py is now very lightweight. We want because
2327 it gets execfile'd, while InterpreterExec gets imported, so
2354 it gets execfile'd, while InterpreterExec gets imported, so
2328 byte-compilation saves time.
2355 byte-compilation saves time.
2329
2356
2330 2004-06-25 Fernando Perez <fperez@colorado.edu>
2357 2004-06-25 Fernando Perez <fperez@colorado.edu>
2331
2358
2332 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2359 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2333 -NUM', which was recently broken.
2360 -NUM', which was recently broken.
2334
2361
2335 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2362 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2336 in multi-line input (but not !!, which doesn't make sense there).
2363 in multi-line input (but not !!, which doesn't make sense there).
2337
2364
2338 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2365 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2339 It's just too useful, and people can turn it off in the less
2366 It's just too useful, and people can turn it off in the less
2340 common cases where it's a problem.
2367 common cases where it's a problem.
2341
2368
2342 2004-06-24 Fernando Perez <fperez@colorado.edu>
2369 2004-06-24 Fernando Perez <fperez@colorado.edu>
2343
2370
2344 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2371 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2345 special syntaxes (like alias calling) is now allied in multi-line
2372 special syntaxes (like alias calling) is now allied in multi-line
2346 input. This is still _very_ experimental, but it's necessary for
2373 input. This is still _very_ experimental, but it's necessary for
2347 efficient shell usage combining python looping syntax with system
2374 efficient shell usage combining python looping syntax with system
2348 calls. For now it's restricted to aliases, I don't think it
2375 calls. For now it's restricted to aliases, I don't think it
2349 really even makes sense to have this for magics.
2376 really even makes sense to have this for magics.
2350
2377
2351 2004-06-23 Fernando Perez <fperez@colorado.edu>
2378 2004-06-23 Fernando Perez <fperez@colorado.edu>
2352
2379
2353 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2380 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2354 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2381 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2355
2382
2356 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2383 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2357 extensions under Windows (after code sent by Gary Bishop). The
2384 extensions under Windows (after code sent by Gary Bishop). The
2358 extensions considered 'executable' are stored in IPython's rc
2385 extensions considered 'executable' are stored in IPython's rc
2359 structure as win_exec_ext.
2386 structure as win_exec_ext.
2360
2387
2361 * IPython/genutils.py (shell): new function, like system() but
2388 * IPython/genutils.py (shell): new function, like system() but
2362 without return value. Very useful for interactive shell work.
2389 without return value. Very useful for interactive shell work.
2363
2390
2364 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2391 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2365 delete aliases.
2392 delete aliases.
2366
2393
2367 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2394 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2368 sure that the alias table doesn't contain python keywords.
2395 sure that the alias table doesn't contain python keywords.
2369
2396
2370 2004-06-21 Fernando Perez <fperez@colorado.edu>
2397 2004-06-21 Fernando Perez <fperez@colorado.edu>
2371
2398
2372 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2399 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2373 non-existent items are found in $PATH. Reported by Thorsten.
2400 non-existent items are found in $PATH. Reported by Thorsten.
2374
2401
2375 2004-06-20 Fernando Perez <fperez@colorado.edu>
2402 2004-06-20 Fernando Perez <fperez@colorado.edu>
2376
2403
2377 * IPython/iplib.py (complete): modified the completer so that the
2404 * IPython/iplib.py (complete): modified the completer so that the
2378 order of priorities can be easily changed at runtime.
2405 order of priorities can be easily changed at runtime.
2379
2406
2380 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2407 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2381 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2408 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2382
2409
2383 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2410 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2384 expand Python variables prepended with $ in all system calls. The
2411 expand Python variables prepended with $ in all system calls. The
2385 same was done to InteractiveShell.handle_shell_escape. Now all
2412 same was done to InteractiveShell.handle_shell_escape. Now all
2386 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2413 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2387 expansion of python variables and expressions according to the
2414 expansion of python variables and expressions according to the
2388 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2415 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2389
2416
2390 Though PEP-215 has been rejected, a similar (but simpler) one
2417 Though PEP-215 has been rejected, a similar (but simpler) one
2391 seems like it will go into Python 2.4, PEP-292 -
2418 seems like it will go into Python 2.4, PEP-292 -
2392 http://www.python.org/peps/pep-0292.html.
2419 http://www.python.org/peps/pep-0292.html.
2393
2420
2394 I'll keep the full syntax of PEP-215, since IPython has since the
2421 I'll keep the full syntax of PEP-215, since IPython has since the
2395 start used Ka-Ping Yee's reference implementation discussed there
2422 start used Ka-Ping Yee's reference implementation discussed there
2396 (Itpl), and I actually like the powerful semantics it offers.
2423 (Itpl), and I actually like the powerful semantics it offers.
2397
2424
2398 In order to access normal shell variables, the $ has to be escaped
2425 In order to access normal shell variables, the $ has to be escaped
2399 via an extra $. For example:
2426 via an extra $. For example:
2400
2427
2401 In [7]: PATH='a python variable'
2428 In [7]: PATH='a python variable'
2402
2429
2403 In [8]: !echo $PATH
2430 In [8]: !echo $PATH
2404 a python variable
2431 a python variable
2405
2432
2406 In [9]: !echo $$PATH
2433 In [9]: !echo $$PATH
2407 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2434 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2408
2435
2409 (Magic.parse_options): escape $ so the shell doesn't evaluate
2436 (Magic.parse_options): escape $ so the shell doesn't evaluate
2410 things prematurely.
2437 things prematurely.
2411
2438
2412 * IPython/iplib.py (InteractiveShell.call_alias): added the
2439 * IPython/iplib.py (InteractiveShell.call_alias): added the
2413 ability for aliases to expand python variables via $.
2440 ability for aliases to expand python variables via $.
2414
2441
2415 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2442 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2416 system, now there's a @rehash/@rehashx pair of magics. These work
2443 system, now there's a @rehash/@rehashx pair of magics. These work
2417 like the csh rehash command, and can be invoked at any time. They
2444 like the csh rehash command, and can be invoked at any time. They
2418 build a table of aliases to everything in the user's $PATH
2445 build a table of aliases to everything in the user's $PATH
2419 (@rehash uses everything, @rehashx is slower but only adds
2446 (@rehash uses everything, @rehashx is slower but only adds
2420 executable files). With this, the pysh.py-based shell profile can
2447 executable files). With this, the pysh.py-based shell profile can
2421 now simply call rehash upon startup, and full access to all
2448 now simply call rehash upon startup, and full access to all
2422 programs in the user's path is obtained.
2449 programs in the user's path is obtained.
2423
2450
2424 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2451 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2425 functionality is now fully in place. I removed the old dynamic
2452 functionality is now fully in place. I removed the old dynamic
2426 code generation based approach, in favor of a much lighter one
2453 code generation based approach, in favor of a much lighter one
2427 based on a simple dict. The advantage is that this allows me to
2454 based on a simple dict. The advantage is that this allows me to
2428 now have thousands of aliases with negligible cost (unthinkable
2455 now have thousands of aliases with negligible cost (unthinkable
2429 with the old system).
2456 with the old system).
2430
2457
2431 2004-06-19 Fernando Perez <fperez@colorado.edu>
2458 2004-06-19 Fernando Perez <fperez@colorado.edu>
2432
2459
2433 * IPython/iplib.py (__init__): extended MagicCompleter class to
2460 * IPython/iplib.py (__init__): extended MagicCompleter class to
2434 also complete (last in priority) on user aliases.
2461 also complete (last in priority) on user aliases.
2435
2462
2436 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2463 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2437 call to eval.
2464 call to eval.
2438 (ItplNS.__init__): Added a new class which functions like Itpl,
2465 (ItplNS.__init__): Added a new class which functions like Itpl,
2439 but allows configuring the namespace for the evaluation to occur
2466 but allows configuring the namespace for the evaluation to occur
2440 in.
2467 in.
2441
2468
2442 2004-06-18 Fernando Perez <fperez@colorado.edu>
2469 2004-06-18 Fernando Perez <fperez@colorado.edu>
2443
2470
2444 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2471 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2445 better message when 'exit' or 'quit' are typed (a common newbie
2472 better message when 'exit' or 'quit' are typed (a common newbie
2446 confusion).
2473 confusion).
2447
2474
2448 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2475 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2449 check for Windows users.
2476 check for Windows users.
2450
2477
2451 * IPython/iplib.py (InteractiveShell.user_setup): removed
2478 * IPython/iplib.py (InteractiveShell.user_setup): removed
2452 disabling of colors for Windows. I'll test at runtime and issue a
2479 disabling of colors for Windows. I'll test at runtime and issue a
2453 warning if Gary's readline isn't found, as to nudge users to
2480 warning if Gary's readline isn't found, as to nudge users to
2454 download it.
2481 download it.
2455
2482
2456 2004-06-16 Fernando Perez <fperez@colorado.edu>
2483 2004-06-16 Fernando Perez <fperez@colorado.edu>
2457
2484
2458 * IPython/genutils.py (Stream.__init__): changed to print errors
2485 * IPython/genutils.py (Stream.__init__): changed to print errors
2459 to sys.stderr. I had a circular dependency here. Now it's
2486 to sys.stderr. I had a circular dependency here. Now it's
2460 possible to run ipython as IDLE's shell (consider this pre-alpha,
2487 possible to run ipython as IDLE's shell (consider this pre-alpha,
2461 since true stdout things end up in the starting terminal instead
2488 since true stdout things end up in the starting terminal instead
2462 of IDLE's out).
2489 of IDLE's out).
2463
2490
2464 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2491 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2465 users who haven't # updated their prompt_in2 definitions. Remove
2492 users who haven't # updated their prompt_in2 definitions. Remove
2466 eventually.
2493 eventually.
2467 (multiple_replace): added credit to original ASPN recipe.
2494 (multiple_replace): added credit to original ASPN recipe.
2468
2495
2469 2004-06-15 Fernando Perez <fperez@colorado.edu>
2496 2004-06-15 Fernando Perez <fperez@colorado.edu>
2470
2497
2471 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2498 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2472 list of auto-defined aliases.
2499 list of auto-defined aliases.
2473
2500
2474 2004-06-13 Fernando Perez <fperez@colorado.edu>
2501 2004-06-13 Fernando Perez <fperez@colorado.edu>
2475
2502
2476 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2503 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2477 install was really requested (so setup.py can be used for other
2504 install was really requested (so setup.py can be used for other
2478 things under Windows).
2505 things under Windows).
2479
2506
2480 2004-06-10 Fernando Perez <fperez@colorado.edu>
2507 2004-06-10 Fernando Perez <fperez@colorado.edu>
2481
2508
2482 * IPython/Logger.py (Logger.create_log): Manually remove any old
2509 * IPython/Logger.py (Logger.create_log): Manually remove any old
2483 backup, since os.remove may fail under Windows. Fixes bug
2510 backup, since os.remove may fail under Windows. Fixes bug
2484 reported by Thorsten.
2511 reported by Thorsten.
2485
2512
2486 2004-06-09 Fernando Perez <fperez@colorado.edu>
2513 2004-06-09 Fernando Perez <fperez@colorado.edu>
2487
2514
2488 * examples/example-embed.py: fixed all references to %n (replaced
2515 * examples/example-embed.py: fixed all references to %n (replaced
2489 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2516 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2490 for all examples and the manual as well.
2517 for all examples and the manual as well.
2491
2518
2492 2004-06-08 Fernando Perez <fperez@colorado.edu>
2519 2004-06-08 Fernando Perez <fperez@colorado.edu>
2493
2520
2494 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2521 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2495 alignment and color management. All 3 prompt subsystems now
2522 alignment and color management. All 3 prompt subsystems now
2496 inherit from BasePrompt.
2523 inherit from BasePrompt.
2497
2524
2498 * tools/release: updates for windows installer build and tag rpms
2525 * tools/release: updates for windows installer build and tag rpms
2499 with python version (since paths are fixed).
2526 with python version (since paths are fixed).
2500
2527
2501 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2528 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2502 which will become eventually obsolete. Also fixed the default
2529 which will become eventually obsolete. Also fixed the default
2503 prompt_in2 to use \D, so at least new users start with the correct
2530 prompt_in2 to use \D, so at least new users start with the correct
2504 defaults.
2531 defaults.
2505 WARNING: Users with existing ipythonrc files will need to apply
2532 WARNING: Users with existing ipythonrc files will need to apply
2506 this fix manually!
2533 this fix manually!
2507
2534
2508 * setup.py: make windows installer (.exe). This is finally the
2535 * setup.py: make windows installer (.exe). This is finally the
2509 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2536 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2510 which I hadn't included because it required Python 2.3 (or recent
2537 which I hadn't included because it required Python 2.3 (or recent
2511 distutils).
2538 distutils).
2512
2539
2513 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2540 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2514 usage of new '\D' escape.
2541 usage of new '\D' escape.
2515
2542
2516 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2543 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2517 lacks os.getuid())
2544 lacks os.getuid())
2518 (CachedOutput.set_colors): Added the ability to turn coloring
2545 (CachedOutput.set_colors): Added the ability to turn coloring
2519 on/off with @colors even for manually defined prompt colors. It
2546 on/off with @colors even for manually defined prompt colors. It
2520 uses a nasty global, but it works safely and via the generic color
2547 uses a nasty global, but it works safely and via the generic color
2521 handling mechanism.
2548 handling mechanism.
2522 (Prompt2.__init__): Introduced new escape '\D' for continuation
2549 (Prompt2.__init__): Introduced new escape '\D' for continuation
2523 prompts. It represents the counter ('\#') as dots.
2550 prompts. It represents the counter ('\#') as dots.
2524 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2551 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2525 need to update their ipythonrc files and replace '%n' with '\D' in
2552 need to update their ipythonrc files and replace '%n' with '\D' in
2526 their prompt_in2 settings everywhere. Sorry, but there's
2553 their prompt_in2 settings everywhere. Sorry, but there's
2527 otherwise no clean way to get all prompts to properly align. The
2554 otherwise no clean way to get all prompts to properly align. The
2528 ipythonrc shipped with IPython has been updated.
2555 ipythonrc shipped with IPython has been updated.
2529
2556
2530 2004-06-07 Fernando Perez <fperez@colorado.edu>
2557 2004-06-07 Fernando Perez <fperez@colorado.edu>
2531
2558
2532 * setup.py (isfile): Pass local_icons option to latex2html, so the
2559 * setup.py (isfile): Pass local_icons option to latex2html, so the
2533 resulting HTML file is self-contained. Thanks to
2560 resulting HTML file is self-contained. Thanks to
2534 dryice-AT-liu.com.cn for the tip.
2561 dryice-AT-liu.com.cn for the tip.
2535
2562
2536 * pysh.py: I created a new profile 'shell', which implements a
2563 * pysh.py: I created a new profile 'shell', which implements a
2537 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2564 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2538 system shell, nor will it become one anytime soon. It's mainly
2565 system shell, nor will it become one anytime soon. It's mainly
2539 meant to illustrate the use of the new flexible bash-like prompts.
2566 meant to illustrate the use of the new flexible bash-like prompts.
2540 I guess it could be used by hardy souls for true shell management,
2567 I guess it could be used by hardy souls for true shell management,
2541 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2568 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2542 profile. This uses the InterpreterExec extension provided by
2569 profile. This uses the InterpreterExec extension provided by
2543 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2570 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2544
2571
2545 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2572 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2546 auto-align itself with the length of the previous input prompt
2573 auto-align itself with the length of the previous input prompt
2547 (taking into account the invisible color escapes).
2574 (taking into account the invisible color escapes).
2548 (CachedOutput.__init__): Large restructuring of this class. Now
2575 (CachedOutput.__init__): Large restructuring of this class. Now
2549 all three prompts (primary1, primary2, output) are proper objects,
2576 all three prompts (primary1, primary2, output) are proper objects,
2550 managed by the 'parent' CachedOutput class. The code is still a
2577 managed by the 'parent' CachedOutput class. The code is still a
2551 bit hackish (all prompts share state via a pointer to the cache),
2578 bit hackish (all prompts share state via a pointer to the cache),
2552 but it's overall far cleaner than before.
2579 but it's overall far cleaner than before.
2553
2580
2554 * IPython/genutils.py (getoutputerror): modified to add verbose,
2581 * IPython/genutils.py (getoutputerror): modified to add verbose,
2555 debug and header options. This makes the interface of all getout*
2582 debug and header options. This makes the interface of all getout*
2556 functions uniform.
2583 functions uniform.
2557 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2584 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2558
2585
2559 * IPython/Magic.py (Magic.default_option): added a function to
2586 * IPython/Magic.py (Magic.default_option): added a function to
2560 allow registering default options for any magic command. This
2587 allow registering default options for any magic command. This
2561 makes it easy to have profiles which customize the magics globally
2588 makes it easy to have profiles which customize the magics globally
2562 for a certain use. The values set through this function are
2589 for a certain use. The values set through this function are
2563 picked up by the parse_options() method, which all magics should
2590 picked up by the parse_options() method, which all magics should
2564 use to parse their options.
2591 use to parse their options.
2565
2592
2566 * IPython/genutils.py (warn): modified the warnings framework to
2593 * IPython/genutils.py (warn): modified the warnings framework to
2567 use the Term I/O class. I'm trying to slowly unify all of
2594 use the Term I/O class. I'm trying to slowly unify all of
2568 IPython's I/O operations to pass through Term.
2595 IPython's I/O operations to pass through Term.
2569
2596
2570 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2597 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2571 the secondary prompt to correctly match the length of the primary
2598 the secondary prompt to correctly match the length of the primary
2572 one for any prompt. Now multi-line code will properly line up
2599 one for any prompt. Now multi-line code will properly line up
2573 even for path dependent prompts, such as the new ones available
2600 even for path dependent prompts, such as the new ones available
2574 via the prompt_specials.
2601 via the prompt_specials.
2575
2602
2576 2004-06-06 Fernando Perez <fperez@colorado.edu>
2603 2004-06-06 Fernando Perez <fperez@colorado.edu>
2577
2604
2578 * IPython/Prompts.py (prompt_specials): Added the ability to have
2605 * IPython/Prompts.py (prompt_specials): Added the ability to have
2579 bash-like special sequences in the prompts, which get
2606 bash-like special sequences in the prompts, which get
2580 automatically expanded. Things like hostname, current working
2607 automatically expanded. Things like hostname, current working
2581 directory and username are implemented already, but it's easy to
2608 directory and username are implemented already, but it's easy to
2582 add more in the future. Thanks to a patch by W.J. van der Laan
2609 add more in the future. Thanks to a patch by W.J. van der Laan
2583 <gnufnork-AT-hetdigitalegat.nl>
2610 <gnufnork-AT-hetdigitalegat.nl>
2584 (prompt_specials): Added color support for prompt strings, so
2611 (prompt_specials): Added color support for prompt strings, so
2585 users can define arbitrary color setups for their prompts.
2612 users can define arbitrary color setups for their prompts.
2586
2613
2587 2004-06-05 Fernando Perez <fperez@colorado.edu>
2614 2004-06-05 Fernando Perez <fperez@colorado.edu>
2588
2615
2589 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2616 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2590 code to load Gary Bishop's readline and configure it
2617 code to load Gary Bishop's readline and configure it
2591 automatically. Thanks to Gary for help on this.
2618 automatically. Thanks to Gary for help on this.
2592
2619
2593 2004-06-01 Fernando Perez <fperez@colorado.edu>
2620 2004-06-01 Fernando Perez <fperez@colorado.edu>
2594
2621
2595 * IPython/Logger.py (Logger.create_log): fix bug for logging
2622 * IPython/Logger.py (Logger.create_log): fix bug for logging
2596 with no filename (previous fix was incomplete).
2623 with no filename (previous fix was incomplete).
2597
2624
2598 2004-05-25 Fernando Perez <fperez@colorado.edu>
2625 2004-05-25 Fernando Perez <fperez@colorado.edu>
2599
2626
2600 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2627 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2601 parens would get passed to the shell.
2628 parens would get passed to the shell.
2602
2629
2603 2004-05-20 Fernando Perez <fperez@colorado.edu>
2630 2004-05-20 Fernando Perez <fperez@colorado.edu>
2604
2631
2605 * IPython/Magic.py (Magic.magic_prun): changed default profile
2632 * IPython/Magic.py (Magic.magic_prun): changed default profile
2606 sort order to 'time' (the more common profiling need).
2633 sort order to 'time' (the more common profiling need).
2607
2634
2608 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2635 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2609 so that source code shown is guaranteed in sync with the file on
2636 so that source code shown is guaranteed in sync with the file on
2610 disk (also changed in psource). Similar fix to the one for
2637 disk (also changed in psource). Similar fix to the one for
2611 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2638 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2612 <yann.ledu-AT-noos.fr>.
2639 <yann.ledu-AT-noos.fr>.
2613
2640
2614 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2641 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2615 with a single option would not be correctly parsed. Closes
2642 with a single option would not be correctly parsed. Closes
2616 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2643 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2617 introduced in 0.6.0 (on 2004-05-06).
2644 introduced in 0.6.0 (on 2004-05-06).
2618
2645
2619 2004-05-13 *** Released version 0.6.0
2646 2004-05-13 *** Released version 0.6.0
2620
2647
2621 2004-05-13 Fernando Perez <fperez@colorado.edu>
2648 2004-05-13 Fernando Perez <fperez@colorado.edu>
2622
2649
2623 * debian/: Added debian/ directory to CVS, so that debian support
2650 * debian/: Added debian/ directory to CVS, so that debian support
2624 is publicly accessible. The debian package is maintained by Jack
2651 is publicly accessible. The debian package is maintained by Jack
2625 Moffit <jack-AT-xiph.org>.
2652 Moffit <jack-AT-xiph.org>.
2626
2653
2627 * Documentation: included the notes about an ipython-based system
2654 * Documentation: included the notes about an ipython-based system
2628 shell (the hypothetical 'pysh') into the new_design.pdf document,
2655 shell (the hypothetical 'pysh') into the new_design.pdf document,
2629 so that these ideas get distributed to users along with the
2656 so that these ideas get distributed to users along with the
2630 official documentation.
2657 official documentation.
2631
2658
2632 2004-05-10 Fernando Perez <fperez@colorado.edu>
2659 2004-05-10 Fernando Perez <fperez@colorado.edu>
2633
2660
2634 * IPython/Logger.py (Logger.create_log): fix recently introduced
2661 * IPython/Logger.py (Logger.create_log): fix recently introduced
2635 bug (misindented line) where logstart would fail when not given an
2662 bug (misindented line) where logstart would fail when not given an
2636 explicit filename.
2663 explicit filename.
2637
2664
2638 2004-05-09 Fernando Perez <fperez@colorado.edu>
2665 2004-05-09 Fernando Perez <fperez@colorado.edu>
2639
2666
2640 * IPython/Magic.py (Magic.parse_options): skip system call when
2667 * IPython/Magic.py (Magic.parse_options): skip system call when
2641 there are no options to look for. Faster, cleaner for the common
2668 there are no options to look for. Faster, cleaner for the common
2642 case.
2669 case.
2643
2670
2644 * Documentation: many updates to the manual: describing Windows
2671 * Documentation: many updates to the manual: describing Windows
2645 support better, Gnuplot updates, credits, misc small stuff. Also
2672 support better, Gnuplot updates, credits, misc small stuff. Also
2646 updated the new_design doc a bit.
2673 updated the new_design doc a bit.
2647
2674
2648 2004-05-06 *** Released version 0.6.0.rc1
2675 2004-05-06 *** Released version 0.6.0.rc1
2649
2676
2650 2004-05-06 Fernando Perez <fperez@colorado.edu>
2677 2004-05-06 Fernando Perez <fperez@colorado.edu>
2651
2678
2652 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2679 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2653 operations to use the vastly more efficient list/''.join() method.
2680 operations to use the vastly more efficient list/''.join() method.
2654 (FormattedTB.text): Fix
2681 (FormattedTB.text): Fix
2655 http://www.scipy.net/roundup/ipython/issue12 - exception source
2682 http://www.scipy.net/roundup/ipython/issue12 - exception source
2656 extract not updated after reload. Thanks to Mike Salib
2683 extract not updated after reload. Thanks to Mike Salib
2657 <msalib-AT-mit.edu> for pinning the source of the problem.
2684 <msalib-AT-mit.edu> for pinning the source of the problem.
2658 Fortunately, the solution works inside ipython and doesn't require
2685 Fortunately, the solution works inside ipython and doesn't require
2659 any changes to python proper.
2686 any changes to python proper.
2660
2687
2661 * IPython/Magic.py (Magic.parse_options): Improved to process the
2688 * IPython/Magic.py (Magic.parse_options): Improved to process the
2662 argument list as a true shell would (by actually using the
2689 argument list as a true shell would (by actually using the
2663 underlying system shell). This way, all @magics automatically get
2690 underlying system shell). This way, all @magics automatically get
2664 shell expansion for variables. Thanks to a comment by Alex
2691 shell expansion for variables. Thanks to a comment by Alex
2665 Schmolck.
2692 Schmolck.
2666
2693
2667 2004-04-04 Fernando Perez <fperez@colorado.edu>
2694 2004-04-04 Fernando Perez <fperez@colorado.edu>
2668
2695
2669 * IPython/iplib.py (InteractiveShell.interact): Added a special
2696 * IPython/iplib.py (InteractiveShell.interact): Added a special
2670 trap for a debugger quit exception, which is basically impossible
2697 trap for a debugger quit exception, which is basically impossible
2671 to handle by normal mechanisms, given what pdb does to the stack.
2698 to handle by normal mechanisms, given what pdb does to the stack.
2672 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2699 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2673
2700
2674 2004-04-03 Fernando Perez <fperez@colorado.edu>
2701 2004-04-03 Fernando Perez <fperez@colorado.edu>
2675
2702
2676 * IPython/genutils.py (Term): Standardized the names of the Term
2703 * IPython/genutils.py (Term): Standardized the names of the Term
2677 class streams to cin/cout/cerr, following C++ naming conventions
2704 class streams to cin/cout/cerr, following C++ naming conventions
2678 (I can't use in/out/err because 'in' is not a valid attribute
2705 (I can't use in/out/err because 'in' is not a valid attribute
2679 name).
2706 name).
2680
2707
2681 * IPython/iplib.py (InteractiveShell.interact): don't increment
2708 * IPython/iplib.py (InteractiveShell.interact): don't increment
2682 the prompt if there's no user input. By Daniel 'Dang' Griffith
2709 the prompt if there's no user input. By Daniel 'Dang' Griffith
2683 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2710 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2684 Francois Pinard.
2711 Francois Pinard.
2685
2712
2686 2004-04-02 Fernando Perez <fperez@colorado.edu>
2713 2004-04-02 Fernando Perez <fperez@colorado.edu>
2687
2714
2688 * IPython/genutils.py (Stream.__init__): Modified to survive at
2715 * IPython/genutils.py (Stream.__init__): Modified to survive at
2689 least importing in contexts where stdin/out/err aren't true file
2716 least importing in contexts where stdin/out/err aren't true file
2690 objects, such as PyCrust (they lack fileno() and mode). However,
2717 objects, such as PyCrust (they lack fileno() and mode). However,
2691 the recovery facilities which rely on these things existing will
2718 the recovery facilities which rely on these things existing will
2692 not work.
2719 not work.
2693
2720
2694 2004-04-01 Fernando Perez <fperez@colorado.edu>
2721 2004-04-01 Fernando Perez <fperez@colorado.edu>
2695
2722
2696 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2723 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2697 use the new getoutputerror() function, so it properly
2724 use the new getoutputerror() function, so it properly
2698 distinguishes stdout/err.
2725 distinguishes stdout/err.
2699
2726
2700 * IPython/genutils.py (getoutputerror): added a function to
2727 * IPython/genutils.py (getoutputerror): added a function to
2701 capture separately the standard output and error of a command.
2728 capture separately the standard output and error of a command.
2702 After a comment from dang on the mailing lists. This code is
2729 After a comment from dang on the mailing lists. This code is
2703 basically a modified version of commands.getstatusoutput(), from
2730 basically a modified version of commands.getstatusoutput(), from
2704 the standard library.
2731 the standard library.
2705
2732
2706 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2733 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2707 '!!' as a special syntax (shorthand) to access @sx.
2734 '!!' as a special syntax (shorthand) to access @sx.
2708
2735
2709 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2736 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2710 command and return its output as a list split on '\n'.
2737 command and return its output as a list split on '\n'.
2711
2738
2712 2004-03-31 Fernando Perez <fperez@colorado.edu>
2739 2004-03-31 Fernando Perez <fperez@colorado.edu>
2713
2740
2714 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2741 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2715 method to dictionaries used as FakeModule instances if they lack
2742 method to dictionaries used as FakeModule instances if they lack
2716 it. At least pydoc in python2.3 breaks for runtime-defined
2743 it. At least pydoc in python2.3 breaks for runtime-defined
2717 functions without this hack. At some point I need to _really_
2744 functions without this hack. At some point I need to _really_
2718 understand what FakeModule is doing, because it's a gross hack.
2745 understand what FakeModule is doing, because it's a gross hack.
2719 But it solves Arnd's problem for now...
2746 But it solves Arnd's problem for now...
2720
2747
2721 2004-02-27 Fernando Perez <fperez@colorado.edu>
2748 2004-02-27 Fernando Perez <fperez@colorado.edu>
2722
2749
2723 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2750 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2724 mode would behave erratically. Also increased the number of
2751 mode would behave erratically. Also increased the number of
2725 possible logs in rotate mod to 999. Thanks to Rod Holland
2752 possible logs in rotate mod to 999. Thanks to Rod Holland
2726 <rhh@StructureLABS.com> for the report and fixes.
2753 <rhh@StructureLABS.com> for the report and fixes.
2727
2754
2728 2004-02-26 Fernando Perez <fperez@colorado.edu>
2755 2004-02-26 Fernando Perez <fperez@colorado.edu>
2729
2756
2730 * IPython/genutils.py (page): Check that the curses module really
2757 * IPython/genutils.py (page): Check that the curses module really
2731 has the initscr attribute before trying to use it. For some
2758 has the initscr attribute before trying to use it. For some
2732 reason, the Solaris curses module is missing this. I think this
2759 reason, the Solaris curses module is missing this. I think this
2733 should be considered a Solaris python bug, but I'm not sure.
2760 should be considered a Solaris python bug, but I'm not sure.
2734
2761
2735 2004-01-17 Fernando Perez <fperez@colorado.edu>
2762 2004-01-17 Fernando Perez <fperez@colorado.edu>
2736
2763
2737 * IPython/genutils.py (Stream.__init__): Changes to try to make
2764 * IPython/genutils.py (Stream.__init__): Changes to try to make
2738 ipython robust against stdin/out/err being closed by the user.
2765 ipython robust against stdin/out/err being closed by the user.
2739 This is 'user error' (and blocks a normal python session, at least
2766 This is 'user error' (and blocks a normal python session, at least
2740 the stdout case). However, Ipython should be able to survive such
2767 the stdout case). However, Ipython should be able to survive such
2741 instances of abuse as gracefully as possible. To simplify the
2768 instances of abuse as gracefully as possible. To simplify the
2742 coding and maintain compatibility with Gary Bishop's Term
2769 coding and maintain compatibility with Gary Bishop's Term
2743 contributions, I've made use of classmethods for this. I think
2770 contributions, I've made use of classmethods for this. I think
2744 this introduces a dependency on python 2.2.
2771 this introduces a dependency on python 2.2.
2745
2772
2746 2004-01-13 Fernando Perez <fperez@colorado.edu>
2773 2004-01-13 Fernando Perez <fperez@colorado.edu>
2747
2774
2748 * IPython/numutils.py (exp_safe): simplified the code a bit and
2775 * IPython/numutils.py (exp_safe): simplified the code a bit and
2749 removed the need for importing the kinds module altogether.
2776 removed the need for importing the kinds module altogether.
2750
2777
2751 2004-01-06 Fernando Perez <fperez@colorado.edu>
2778 2004-01-06 Fernando Perez <fperez@colorado.edu>
2752
2779
2753 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2780 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2754 a magic function instead, after some community feedback. No
2781 a magic function instead, after some community feedback. No
2755 special syntax will exist for it, but its name is deliberately
2782 special syntax will exist for it, but its name is deliberately
2756 very short.
2783 very short.
2757
2784
2758 2003-12-20 Fernando Perez <fperez@colorado.edu>
2785 2003-12-20 Fernando Perez <fperez@colorado.edu>
2759
2786
2760 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2787 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2761 new functionality, to automagically assign the result of a shell
2788 new functionality, to automagically assign the result of a shell
2762 command to a variable. I'll solicit some community feedback on
2789 command to a variable. I'll solicit some community feedback on
2763 this before making it permanent.
2790 this before making it permanent.
2764
2791
2765 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2792 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2766 requested about callables for which inspect couldn't obtain a
2793 requested about callables for which inspect couldn't obtain a
2767 proper argspec. Thanks to a crash report sent by Etienne
2794 proper argspec. Thanks to a crash report sent by Etienne
2768 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2795 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2769
2796
2770 2003-12-09 Fernando Perez <fperez@colorado.edu>
2797 2003-12-09 Fernando Perez <fperez@colorado.edu>
2771
2798
2772 * IPython/genutils.py (page): patch for the pager to work across
2799 * IPython/genutils.py (page): patch for the pager to work across
2773 various versions of Windows. By Gary Bishop.
2800 various versions of Windows. By Gary Bishop.
2774
2801
2775 2003-12-04 Fernando Perez <fperez@colorado.edu>
2802 2003-12-04 Fernando Perez <fperez@colorado.edu>
2776
2803
2777 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2804 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2778 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2805 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2779 While I tested this and it looks ok, there may still be corner
2806 While I tested this and it looks ok, there may still be corner
2780 cases I've missed.
2807 cases I've missed.
2781
2808
2782 2003-12-01 Fernando Perez <fperez@colorado.edu>
2809 2003-12-01 Fernando Perez <fperez@colorado.edu>
2783
2810
2784 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2811 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2785 where a line like 'p,q=1,2' would fail because the automagic
2812 where a line like 'p,q=1,2' would fail because the automagic
2786 system would be triggered for @p.
2813 system would be triggered for @p.
2787
2814
2788 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2815 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2789 cleanups, code unmodified.
2816 cleanups, code unmodified.
2790
2817
2791 * IPython/genutils.py (Term): added a class for IPython to handle
2818 * IPython/genutils.py (Term): added a class for IPython to handle
2792 output. In most cases it will just be a proxy for stdout/err, but
2819 output. In most cases it will just be a proxy for stdout/err, but
2793 having this allows modifications to be made for some platforms,
2820 having this allows modifications to be made for some platforms,
2794 such as handling color escapes under Windows. All of this code
2821 such as handling color escapes under Windows. All of this code
2795 was contributed by Gary Bishop, with minor modifications by me.
2822 was contributed by Gary Bishop, with minor modifications by me.
2796 The actual changes affect many files.
2823 The actual changes affect many files.
2797
2824
2798 2003-11-30 Fernando Perez <fperez@colorado.edu>
2825 2003-11-30 Fernando Perez <fperez@colorado.edu>
2799
2826
2800 * IPython/iplib.py (file_matches): new completion code, courtesy
2827 * IPython/iplib.py (file_matches): new completion code, courtesy
2801 of Jeff Collins. This enables filename completion again under
2828 of Jeff Collins. This enables filename completion again under
2802 python 2.3, which disabled it at the C level.
2829 python 2.3, which disabled it at the C level.
2803
2830
2804 2003-11-11 Fernando Perez <fperez@colorado.edu>
2831 2003-11-11 Fernando Perez <fperez@colorado.edu>
2805
2832
2806 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2833 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2807 for Numeric.array(map(...)), but often convenient.
2834 for Numeric.array(map(...)), but often convenient.
2808
2835
2809 2003-11-05 Fernando Perez <fperez@colorado.edu>
2836 2003-11-05 Fernando Perez <fperez@colorado.edu>
2810
2837
2811 * IPython/numutils.py (frange): Changed a call from int() to
2838 * IPython/numutils.py (frange): Changed a call from int() to
2812 int(round()) to prevent a problem reported with arange() in the
2839 int(round()) to prevent a problem reported with arange() in the
2813 numpy list.
2840 numpy list.
2814
2841
2815 2003-10-06 Fernando Perez <fperez@colorado.edu>
2842 2003-10-06 Fernando Perez <fperez@colorado.edu>
2816
2843
2817 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2844 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2818 prevent crashes if sys lacks an argv attribute (it happens with
2845 prevent crashes if sys lacks an argv attribute (it happens with
2819 embedded interpreters which build a bare-bones sys module).
2846 embedded interpreters which build a bare-bones sys module).
2820 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2847 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2821
2848
2822 2003-09-24 Fernando Perez <fperez@colorado.edu>
2849 2003-09-24 Fernando Perez <fperez@colorado.edu>
2823
2850
2824 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2851 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2825 to protect against poorly written user objects where __getattr__
2852 to protect against poorly written user objects where __getattr__
2826 raises exceptions other than AttributeError. Thanks to a bug
2853 raises exceptions other than AttributeError. Thanks to a bug
2827 report by Oliver Sander <osander-AT-gmx.de>.
2854 report by Oliver Sander <osander-AT-gmx.de>.
2828
2855
2829 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2856 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2830 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2857 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2831
2858
2832 2003-09-09 Fernando Perez <fperez@colorado.edu>
2859 2003-09-09 Fernando Perez <fperez@colorado.edu>
2833
2860
2834 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2861 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2835 unpacking a list whith a callable as first element would
2862 unpacking a list whith a callable as first element would
2836 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2863 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2837 Collins.
2864 Collins.
2838
2865
2839 2003-08-25 *** Released version 0.5.0
2866 2003-08-25 *** Released version 0.5.0
2840
2867
2841 2003-08-22 Fernando Perez <fperez@colorado.edu>
2868 2003-08-22 Fernando Perez <fperez@colorado.edu>
2842
2869
2843 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2870 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2844 improperly defined user exceptions. Thanks to feedback from Mark
2871 improperly defined user exceptions. Thanks to feedback from Mark
2845 Russell <mrussell-AT-verio.net>.
2872 Russell <mrussell-AT-verio.net>.
2846
2873
2847 2003-08-20 Fernando Perez <fperez@colorado.edu>
2874 2003-08-20 Fernando Perez <fperez@colorado.edu>
2848
2875
2849 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2876 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2850 printing so that it would print multi-line string forms starting
2877 printing so that it would print multi-line string forms starting
2851 with a new line. This way the formatting is better respected for
2878 with a new line. This way the formatting is better respected for
2852 objects which work hard to make nice string forms.
2879 objects which work hard to make nice string forms.
2853
2880
2854 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2881 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2855 autocall would overtake data access for objects with both
2882 autocall would overtake data access for objects with both
2856 __getitem__ and __call__.
2883 __getitem__ and __call__.
2857
2884
2858 2003-08-19 *** Released version 0.5.0-rc1
2885 2003-08-19 *** Released version 0.5.0-rc1
2859
2886
2860 2003-08-19 Fernando Perez <fperez@colorado.edu>
2887 2003-08-19 Fernando Perez <fperez@colorado.edu>
2861
2888
2862 * IPython/deep_reload.py (load_tail): single tiny change here
2889 * IPython/deep_reload.py (load_tail): single tiny change here
2863 seems to fix the long-standing bug of dreload() failing to work
2890 seems to fix the long-standing bug of dreload() failing to work
2864 for dotted names. But this module is pretty tricky, so I may have
2891 for dotted names. But this module is pretty tricky, so I may have
2865 missed some subtlety. Needs more testing!.
2892 missed some subtlety. Needs more testing!.
2866
2893
2867 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2894 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2868 exceptions which have badly implemented __str__ methods.
2895 exceptions which have badly implemented __str__ methods.
2869 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2896 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2870 which I've been getting reports about from Python 2.3 users. I
2897 which I've been getting reports about from Python 2.3 users. I
2871 wish I had a simple test case to reproduce the problem, so I could
2898 wish I had a simple test case to reproduce the problem, so I could
2872 either write a cleaner workaround or file a bug report if
2899 either write a cleaner workaround or file a bug report if
2873 necessary.
2900 necessary.
2874
2901
2875 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2902 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2876 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2903 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2877 a bug report by Tjabo Kloppenburg.
2904 a bug report by Tjabo Kloppenburg.
2878
2905
2879 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2906 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2880 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2907 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2881 seems rather unstable. Thanks to a bug report by Tjabo
2908 seems rather unstable. Thanks to a bug report by Tjabo
2882 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2909 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2883
2910
2884 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2911 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2885 this out soon because of the critical fixes in the inner loop for
2912 this out soon because of the critical fixes in the inner loop for
2886 generators.
2913 generators.
2887
2914
2888 * IPython/Magic.py (Magic.getargspec): removed. This (and
2915 * IPython/Magic.py (Magic.getargspec): removed. This (and
2889 _get_def) have been obsoleted by OInspect for a long time, I
2916 _get_def) have been obsoleted by OInspect for a long time, I
2890 hadn't noticed that they were dead code.
2917 hadn't noticed that they were dead code.
2891 (Magic._ofind): restored _ofind functionality for a few literals
2918 (Magic._ofind): restored _ofind functionality for a few literals
2892 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2919 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2893 for things like "hello".capitalize?, since that would require a
2920 for things like "hello".capitalize?, since that would require a
2894 potentially dangerous eval() again.
2921 potentially dangerous eval() again.
2895
2922
2896 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2923 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2897 logic a bit more to clean up the escapes handling and minimize the
2924 logic a bit more to clean up the escapes handling and minimize the
2898 use of _ofind to only necessary cases. The interactive 'feel' of
2925 use of _ofind to only necessary cases. The interactive 'feel' of
2899 IPython should have improved quite a bit with the changes in
2926 IPython should have improved quite a bit with the changes in
2900 _prefilter and _ofind (besides being far safer than before).
2927 _prefilter and _ofind (besides being far safer than before).
2901
2928
2902 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2929 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2903 obscure, never reported). Edit would fail to find the object to
2930 obscure, never reported). Edit would fail to find the object to
2904 edit under some circumstances.
2931 edit under some circumstances.
2905 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2932 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2906 which were causing double-calling of generators. Those eval calls
2933 which were causing double-calling of generators. Those eval calls
2907 were _very_ dangerous, since code with side effects could be
2934 were _very_ dangerous, since code with side effects could be
2908 triggered. As they say, 'eval is evil'... These were the
2935 triggered. As they say, 'eval is evil'... These were the
2909 nastiest evals in IPython. Besides, _ofind is now far simpler,
2936 nastiest evals in IPython. Besides, _ofind is now far simpler,
2910 and it should also be quite a bit faster. Its use of inspect is
2937 and it should also be quite a bit faster. Its use of inspect is
2911 also safer, so perhaps some of the inspect-related crashes I've
2938 also safer, so perhaps some of the inspect-related crashes I've
2912 seen lately with Python 2.3 might be taken care of. That will
2939 seen lately with Python 2.3 might be taken care of. That will
2913 need more testing.
2940 need more testing.
2914
2941
2915 2003-08-17 Fernando Perez <fperez@colorado.edu>
2942 2003-08-17 Fernando Perez <fperez@colorado.edu>
2916
2943
2917 * IPython/iplib.py (InteractiveShell._prefilter): significant
2944 * IPython/iplib.py (InteractiveShell._prefilter): significant
2918 simplifications to the logic for handling user escapes. Faster
2945 simplifications to the logic for handling user escapes. Faster
2919 and simpler code.
2946 and simpler code.
2920
2947
2921 2003-08-14 Fernando Perez <fperez@colorado.edu>
2948 2003-08-14 Fernando Perez <fperez@colorado.edu>
2922
2949
2923 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2950 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2924 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2951 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2925 but it should be quite a bit faster. And the recursive version
2952 but it should be quite a bit faster. And the recursive version
2926 generated O(log N) intermediate storage for all rank>1 arrays,
2953 generated O(log N) intermediate storage for all rank>1 arrays,
2927 even if they were contiguous.
2954 even if they were contiguous.
2928 (l1norm): Added this function.
2955 (l1norm): Added this function.
2929 (norm): Added this function for arbitrary norms (including
2956 (norm): Added this function for arbitrary norms (including
2930 l-infinity). l1 and l2 are still special cases for convenience
2957 l-infinity). l1 and l2 are still special cases for convenience
2931 and speed.
2958 and speed.
2932
2959
2933 2003-08-03 Fernando Perez <fperez@colorado.edu>
2960 2003-08-03 Fernando Perez <fperez@colorado.edu>
2934
2961
2935 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2962 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2936 exceptions, which now raise PendingDeprecationWarnings in Python
2963 exceptions, which now raise PendingDeprecationWarnings in Python
2937 2.3. There were some in Magic and some in Gnuplot2.
2964 2.3. There were some in Magic and some in Gnuplot2.
2938
2965
2939 2003-06-30 Fernando Perez <fperez@colorado.edu>
2966 2003-06-30 Fernando Perez <fperez@colorado.edu>
2940
2967
2941 * IPython/genutils.py (page): modified to call curses only for
2968 * IPython/genutils.py (page): modified to call curses only for
2942 terminals where TERM=='xterm'. After problems under many other
2969 terminals where TERM=='xterm'. After problems under many other
2943 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2970 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2944
2971
2945 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2972 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2946 would be triggered when readline was absent. This was just an old
2973 would be triggered when readline was absent. This was just an old
2947 debugging statement I'd forgotten to take out.
2974 debugging statement I'd forgotten to take out.
2948
2975
2949 2003-06-20 Fernando Perez <fperez@colorado.edu>
2976 2003-06-20 Fernando Perez <fperez@colorado.edu>
2950
2977
2951 * IPython/genutils.py (clock): modified to return only user time
2978 * IPython/genutils.py (clock): modified to return only user time
2952 (not counting system time), after a discussion on scipy. While
2979 (not counting system time), after a discussion on scipy. While
2953 system time may be a useful quantity occasionally, it may much
2980 system time may be a useful quantity occasionally, it may much
2954 more easily be skewed by occasional swapping or other similar
2981 more easily be skewed by occasional swapping or other similar
2955 activity.
2982 activity.
2956
2983
2957 2003-06-05 Fernando Perez <fperez@colorado.edu>
2984 2003-06-05 Fernando Perez <fperez@colorado.edu>
2958
2985
2959 * IPython/numutils.py (identity): new function, for building
2986 * IPython/numutils.py (identity): new function, for building
2960 arbitrary rank Kronecker deltas (mostly backwards compatible with
2987 arbitrary rank Kronecker deltas (mostly backwards compatible with
2961 Numeric.identity)
2988 Numeric.identity)
2962
2989
2963 2003-06-03 Fernando Perez <fperez@colorado.edu>
2990 2003-06-03 Fernando Perez <fperez@colorado.edu>
2964
2991
2965 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2992 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2966 arguments passed to magics with spaces, to allow trailing '\' to
2993 arguments passed to magics with spaces, to allow trailing '\' to
2967 work normally (mainly for Windows users).
2994 work normally (mainly for Windows users).
2968
2995
2969 2003-05-29 Fernando Perez <fperez@colorado.edu>
2996 2003-05-29 Fernando Perez <fperez@colorado.edu>
2970
2997
2971 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2998 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2972 instead of pydoc.help. This fixes a bizarre behavior where
2999 instead of pydoc.help. This fixes a bizarre behavior where
2973 printing '%s' % locals() would trigger the help system. Now
3000 printing '%s' % locals() would trigger the help system. Now
2974 ipython behaves like normal python does.
3001 ipython behaves like normal python does.
2975
3002
2976 Note that if one does 'from pydoc import help', the bizarre
3003 Note that if one does 'from pydoc import help', the bizarre
2977 behavior returns, but this will also happen in normal python, so
3004 behavior returns, but this will also happen in normal python, so
2978 it's not an ipython bug anymore (it has to do with how pydoc.help
3005 it's not an ipython bug anymore (it has to do with how pydoc.help
2979 is implemented).
3006 is implemented).
2980
3007
2981 2003-05-22 Fernando Perez <fperez@colorado.edu>
3008 2003-05-22 Fernando Perez <fperez@colorado.edu>
2982
3009
2983 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3010 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2984 return [] instead of None when nothing matches, also match to end
3011 return [] instead of None when nothing matches, also match to end
2985 of line. Patch by Gary Bishop.
3012 of line. Patch by Gary Bishop.
2986
3013
2987 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3014 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2988 protection as before, for files passed on the command line. This
3015 protection as before, for files passed on the command line. This
2989 prevents the CrashHandler from kicking in if user files call into
3016 prevents the CrashHandler from kicking in if user files call into
2990 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3017 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2991 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3018 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2992
3019
2993 2003-05-20 *** Released version 0.4.0
3020 2003-05-20 *** Released version 0.4.0
2994
3021
2995 2003-05-20 Fernando Perez <fperez@colorado.edu>
3022 2003-05-20 Fernando Perez <fperez@colorado.edu>
2996
3023
2997 * setup.py: added support for manpages. It's a bit hackish b/c of
3024 * setup.py: added support for manpages. It's a bit hackish b/c of
2998 a bug in the way the bdist_rpm distutils target handles gzipped
3025 a bug in the way the bdist_rpm distutils target handles gzipped
2999 manpages, but it works. After a patch by Jack.
3026 manpages, but it works. After a patch by Jack.
3000
3027
3001 2003-05-19 Fernando Perez <fperez@colorado.edu>
3028 2003-05-19 Fernando Perez <fperez@colorado.edu>
3002
3029
3003 * IPython/numutils.py: added a mockup of the kinds module, since
3030 * IPython/numutils.py: added a mockup of the kinds module, since
3004 it was recently removed from Numeric. This way, numutils will
3031 it was recently removed from Numeric. This way, numutils will
3005 work for all users even if they are missing kinds.
3032 work for all users even if they are missing kinds.
3006
3033
3007 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3034 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3008 failure, which can occur with SWIG-wrapped extensions. After a
3035 failure, which can occur with SWIG-wrapped extensions. After a
3009 crash report from Prabhu.
3036 crash report from Prabhu.
3010
3037
3011 2003-05-16 Fernando Perez <fperez@colorado.edu>
3038 2003-05-16 Fernando Perez <fperez@colorado.edu>
3012
3039
3013 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3040 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3014 protect ipython from user code which may call directly
3041 protect ipython from user code which may call directly
3015 sys.excepthook (this looks like an ipython crash to the user, even
3042 sys.excepthook (this looks like an ipython crash to the user, even
3016 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3043 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3017 This is especially important to help users of WxWindows, but may
3044 This is especially important to help users of WxWindows, but may
3018 also be useful in other cases.
3045 also be useful in other cases.
3019
3046
3020 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3047 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3021 an optional tb_offset to be specified, and to preserve exception
3048 an optional tb_offset to be specified, and to preserve exception
3022 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3049 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3023
3050
3024 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3051 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3025
3052
3026 2003-05-15 Fernando Perez <fperez@colorado.edu>
3053 2003-05-15 Fernando Perez <fperez@colorado.edu>
3027
3054
3028 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3055 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3029 installing for a new user under Windows.
3056 installing for a new user under Windows.
3030
3057
3031 2003-05-12 Fernando Perez <fperez@colorado.edu>
3058 2003-05-12 Fernando Perez <fperez@colorado.edu>
3032
3059
3033 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3060 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3034 handler for Emacs comint-based lines. Currently it doesn't do
3061 handler for Emacs comint-based lines. Currently it doesn't do
3035 much (but importantly, it doesn't update the history cache). In
3062 much (but importantly, it doesn't update the history cache). In
3036 the future it may be expanded if Alex needs more functionality
3063 the future it may be expanded if Alex needs more functionality
3037 there.
3064 there.
3038
3065
3039 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3066 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3040 info to crash reports.
3067 info to crash reports.
3041
3068
3042 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3069 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3043 just like Python's -c. Also fixed crash with invalid -color
3070 just like Python's -c. Also fixed crash with invalid -color
3044 option value at startup. Thanks to Will French
3071 option value at startup. Thanks to Will French
3045 <wfrench-AT-bestweb.net> for the bug report.
3072 <wfrench-AT-bestweb.net> for the bug report.
3046
3073
3047 2003-05-09 Fernando Perez <fperez@colorado.edu>
3074 2003-05-09 Fernando Perez <fperez@colorado.edu>
3048
3075
3049 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3076 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3050 to EvalDict (it's a mapping, after all) and simplified its code
3077 to EvalDict (it's a mapping, after all) and simplified its code
3051 quite a bit, after a nice discussion on c.l.py where Gustavo
3078 quite a bit, after a nice discussion on c.l.py where Gustavo
3052 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3079 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3053
3080
3054 2003-04-30 Fernando Perez <fperez@colorado.edu>
3081 2003-04-30 Fernando Perez <fperez@colorado.edu>
3055
3082
3056 * IPython/genutils.py (timings_out): modified it to reduce its
3083 * IPython/genutils.py (timings_out): modified it to reduce its
3057 overhead in the common reps==1 case.
3084 overhead in the common reps==1 case.
3058
3085
3059 2003-04-29 Fernando Perez <fperez@colorado.edu>
3086 2003-04-29 Fernando Perez <fperez@colorado.edu>
3060
3087
3061 * IPython/genutils.py (timings_out): Modified to use the resource
3088 * IPython/genutils.py (timings_out): Modified to use the resource
3062 module, which avoids the wraparound problems of time.clock().
3089 module, which avoids the wraparound problems of time.clock().
3063
3090
3064 2003-04-17 *** Released version 0.2.15pre4
3091 2003-04-17 *** Released version 0.2.15pre4
3065
3092
3066 2003-04-17 Fernando Perez <fperez@colorado.edu>
3093 2003-04-17 Fernando Perez <fperez@colorado.edu>
3067
3094
3068 * setup.py (scriptfiles): Split windows-specific stuff over to a
3095 * setup.py (scriptfiles): Split windows-specific stuff over to a
3069 separate file, in an attempt to have a Windows GUI installer.
3096 separate file, in an attempt to have a Windows GUI installer.
3070 That didn't work, but part of the groundwork is done.
3097 That didn't work, but part of the groundwork is done.
3071
3098
3072 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3099 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3073 indent/unindent with 4 spaces. Particularly useful in combination
3100 indent/unindent with 4 spaces. Particularly useful in combination
3074 with the new auto-indent option.
3101 with the new auto-indent option.
3075
3102
3076 2003-04-16 Fernando Perez <fperez@colorado.edu>
3103 2003-04-16 Fernando Perez <fperez@colorado.edu>
3077
3104
3078 * IPython/Magic.py: various replacements of self.rc for
3105 * IPython/Magic.py: various replacements of self.rc for
3079 self.shell.rc. A lot more remains to be done to fully disentangle
3106 self.shell.rc. A lot more remains to be done to fully disentangle
3080 this class from the main Shell class.
3107 this class from the main Shell class.
3081
3108
3082 * IPython/GnuplotRuntime.py: added checks for mouse support so
3109 * IPython/GnuplotRuntime.py: added checks for mouse support so
3083 that we don't try to enable it if the current gnuplot doesn't
3110 that we don't try to enable it if the current gnuplot doesn't
3084 really support it. Also added checks so that we don't try to
3111 really support it. Also added checks so that we don't try to
3085 enable persist under Windows (where Gnuplot doesn't recognize the
3112 enable persist under Windows (where Gnuplot doesn't recognize the
3086 option).
3113 option).
3087
3114
3088 * IPython/iplib.py (InteractiveShell.interact): Added optional
3115 * IPython/iplib.py (InteractiveShell.interact): Added optional
3089 auto-indenting code, after a patch by King C. Shu
3116 auto-indenting code, after a patch by King C. Shu
3090 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3117 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3091 get along well with pasting indented code. If I ever figure out
3118 get along well with pasting indented code. If I ever figure out
3092 how to make that part go well, it will become on by default.
3119 how to make that part go well, it will become on by default.
3093
3120
3094 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3121 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3095 crash ipython if there was an unmatched '%' in the user's prompt
3122 crash ipython if there was an unmatched '%' in the user's prompt
3096 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3123 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3097
3124
3098 * IPython/iplib.py (InteractiveShell.interact): removed the
3125 * IPython/iplib.py (InteractiveShell.interact): removed the
3099 ability to ask the user whether he wants to crash or not at the
3126 ability to ask the user whether he wants to crash or not at the
3100 'last line' exception handler. Calling functions at that point
3127 'last line' exception handler. Calling functions at that point
3101 changes the stack, and the error reports would have incorrect
3128 changes the stack, and the error reports would have incorrect
3102 tracebacks.
3129 tracebacks.
3103
3130
3104 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3131 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3105 pass through a peger a pretty-printed form of any object. After a
3132 pass through a peger a pretty-printed form of any object. After a
3106 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3133 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3107
3134
3108 2003-04-14 Fernando Perez <fperez@colorado.edu>
3135 2003-04-14 Fernando Perez <fperez@colorado.edu>
3109
3136
3110 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3137 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3111 all files in ~ would be modified at first install (instead of
3138 all files in ~ would be modified at first install (instead of
3112 ~/.ipython). This could be potentially disastrous, as the
3139 ~/.ipython). This could be potentially disastrous, as the
3113 modification (make line-endings native) could damage binary files.
3140 modification (make line-endings native) could damage binary files.
3114
3141
3115 2003-04-10 Fernando Perez <fperez@colorado.edu>
3142 2003-04-10 Fernando Perez <fperez@colorado.edu>
3116
3143
3117 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3144 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3118 handle only lines which are invalid python. This now means that
3145 handle only lines which are invalid python. This now means that
3119 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3146 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3120 for the bug report.
3147 for the bug report.
3121
3148
3122 2003-04-01 Fernando Perez <fperez@colorado.edu>
3149 2003-04-01 Fernando Perez <fperez@colorado.edu>
3123
3150
3124 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3151 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3125 where failing to set sys.last_traceback would crash pdb.pm().
3152 where failing to set sys.last_traceback would crash pdb.pm().
3126 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3153 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3127 report.
3154 report.
3128
3155
3129 2003-03-25 Fernando Perez <fperez@colorado.edu>
3156 2003-03-25 Fernando Perez <fperez@colorado.edu>
3130
3157
3131 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3158 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3132 before printing it (it had a lot of spurious blank lines at the
3159 before printing it (it had a lot of spurious blank lines at the
3133 end).
3160 end).
3134
3161
3135 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3162 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3136 output would be sent 21 times! Obviously people don't use this
3163 output would be sent 21 times! Obviously people don't use this
3137 too often, or I would have heard about it.
3164 too often, or I would have heard about it.
3138
3165
3139 2003-03-24 Fernando Perez <fperez@colorado.edu>
3166 2003-03-24 Fernando Perez <fperez@colorado.edu>
3140
3167
3141 * setup.py (scriptfiles): renamed the data_files parameter from
3168 * setup.py (scriptfiles): renamed the data_files parameter from
3142 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3169 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3143 for the patch.
3170 for the patch.
3144
3171
3145 2003-03-20 Fernando Perez <fperez@colorado.edu>
3172 2003-03-20 Fernando Perez <fperez@colorado.edu>
3146
3173
3147 * IPython/genutils.py (error): added error() and fatal()
3174 * IPython/genutils.py (error): added error() and fatal()
3148 functions.
3175 functions.
3149
3176
3150 2003-03-18 *** Released version 0.2.15pre3
3177 2003-03-18 *** Released version 0.2.15pre3
3151
3178
3152 2003-03-18 Fernando Perez <fperez@colorado.edu>
3179 2003-03-18 Fernando Perez <fperez@colorado.edu>
3153
3180
3154 * setupext/install_data_ext.py
3181 * setupext/install_data_ext.py
3155 (install_data_ext.initialize_options): Class contributed by Jack
3182 (install_data_ext.initialize_options): Class contributed by Jack
3156 Moffit for fixing the old distutils hack. He is sending this to
3183 Moffit for fixing the old distutils hack. He is sending this to
3157 the distutils folks so in the future we may not need it as a
3184 the distutils folks so in the future we may not need it as a
3158 private fix.
3185 private fix.
3159
3186
3160 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3187 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3161 changes for Debian packaging. See his patch for full details.
3188 changes for Debian packaging. See his patch for full details.
3162 The old distutils hack of making the ipythonrc* files carry a
3189 The old distutils hack of making the ipythonrc* files carry a
3163 bogus .py extension is gone, at last. Examples were moved to a
3190 bogus .py extension is gone, at last. Examples were moved to a
3164 separate subdir under doc/, and the separate executable scripts
3191 separate subdir under doc/, and the separate executable scripts
3165 now live in their own directory. Overall a great cleanup. The
3192 now live in their own directory. Overall a great cleanup. The
3166 manual was updated to use the new files, and setup.py has been
3193 manual was updated to use the new files, and setup.py has been
3167 fixed for this setup.
3194 fixed for this setup.
3168
3195
3169 * IPython/PyColorize.py (Parser.usage): made non-executable and
3196 * IPython/PyColorize.py (Parser.usage): made non-executable and
3170 created a pycolor wrapper around it to be included as a script.
3197 created a pycolor wrapper around it to be included as a script.
3171
3198
3172 2003-03-12 *** Released version 0.2.15pre2
3199 2003-03-12 *** Released version 0.2.15pre2
3173
3200
3174 2003-03-12 Fernando Perez <fperez@colorado.edu>
3201 2003-03-12 Fernando Perez <fperez@colorado.edu>
3175
3202
3176 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3203 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3177 long-standing problem with garbage characters in some terminals.
3204 long-standing problem with garbage characters in some terminals.
3178 The issue was really that the \001 and \002 escapes must _only_ be
3205 The issue was really that the \001 and \002 escapes must _only_ be
3179 passed to input prompts (which call readline), but _never_ to
3206 passed to input prompts (which call readline), but _never_ to
3180 normal text to be printed on screen. I changed ColorANSI to have
3207 normal text to be printed on screen. I changed ColorANSI to have
3181 two classes: TermColors and InputTermColors, each with the
3208 two classes: TermColors and InputTermColors, each with the
3182 appropriate escapes for input prompts or normal text. The code in
3209 appropriate escapes for input prompts or normal text. The code in
3183 Prompts.py got slightly more complicated, but this very old and
3210 Prompts.py got slightly more complicated, but this very old and
3184 annoying bug is finally fixed.
3211 annoying bug is finally fixed.
3185
3212
3186 All the credit for nailing down the real origin of this problem
3213 All the credit for nailing down the real origin of this problem
3187 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3214 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3188 *Many* thanks to him for spending quite a bit of effort on this.
3215 *Many* thanks to him for spending quite a bit of effort on this.
3189
3216
3190 2003-03-05 *** Released version 0.2.15pre1
3217 2003-03-05 *** Released version 0.2.15pre1
3191
3218
3192 2003-03-03 Fernando Perez <fperez@colorado.edu>
3219 2003-03-03 Fernando Perez <fperez@colorado.edu>
3193
3220
3194 * IPython/FakeModule.py: Moved the former _FakeModule to a
3221 * IPython/FakeModule.py: Moved the former _FakeModule to a
3195 separate file, because it's also needed by Magic (to fix a similar
3222 separate file, because it's also needed by Magic (to fix a similar
3196 pickle-related issue in @run).
3223 pickle-related issue in @run).
3197
3224
3198 2003-03-02 Fernando Perez <fperez@colorado.edu>
3225 2003-03-02 Fernando Perez <fperez@colorado.edu>
3199
3226
3200 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3227 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3201 the autocall option at runtime.
3228 the autocall option at runtime.
3202 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3229 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3203 across Magic.py to start separating Magic from InteractiveShell.
3230 across Magic.py to start separating Magic from InteractiveShell.
3204 (Magic._ofind): Fixed to return proper namespace for dotted
3231 (Magic._ofind): Fixed to return proper namespace for dotted
3205 names. Before, a dotted name would always return 'not currently
3232 names. Before, a dotted name would always return 'not currently
3206 defined', because it would find the 'parent'. s.x would be found,
3233 defined', because it would find the 'parent'. s.x would be found,
3207 but since 'x' isn't defined by itself, it would get confused.
3234 but since 'x' isn't defined by itself, it would get confused.
3208 (Magic.magic_run): Fixed pickling problems reported by Ralf
3235 (Magic.magic_run): Fixed pickling problems reported by Ralf
3209 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3236 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3210 that I'd used when Mike Heeter reported similar issues at the
3237 that I'd used when Mike Heeter reported similar issues at the
3211 top-level, but now for @run. It boils down to injecting the
3238 top-level, but now for @run. It boils down to injecting the
3212 namespace where code is being executed with something that looks
3239 namespace where code is being executed with something that looks
3213 enough like a module to fool pickle.dump(). Since a pickle stores
3240 enough like a module to fool pickle.dump(). Since a pickle stores
3214 a named reference to the importing module, we need this for
3241 a named reference to the importing module, we need this for
3215 pickles to save something sensible.
3242 pickles to save something sensible.
3216
3243
3217 * IPython/ipmaker.py (make_IPython): added an autocall option.
3244 * IPython/ipmaker.py (make_IPython): added an autocall option.
3218
3245
3219 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3246 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3220 the auto-eval code. Now autocalling is an option, and the code is
3247 the auto-eval code. Now autocalling is an option, and the code is
3221 also vastly safer. There is no more eval() involved at all.
3248 also vastly safer. There is no more eval() involved at all.
3222
3249
3223 2003-03-01 Fernando Perez <fperez@colorado.edu>
3250 2003-03-01 Fernando Perez <fperez@colorado.edu>
3224
3251
3225 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3252 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3226 dict with named keys instead of a tuple.
3253 dict with named keys instead of a tuple.
3227
3254
3228 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3255 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3229
3256
3230 * setup.py (make_shortcut): Fixed message about directories
3257 * setup.py (make_shortcut): Fixed message about directories
3231 created during Windows installation (the directories were ok, just
3258 created during Windows installation (the directories were ok, just
3232 the printed message was misleading). Thanks to Chris Liechti
3259 the printed message was misleading). Thanks to Chris Liechti
3233 <cliechti-AT-gmx.net> for the heads up.
3260 <cliechti-AT-gmx.net> for the heads up.
3234
3261
3235 2003-02-21 Fernando Perez <fperez@colorado.edu>
3262 2003-02-21 Fernando Perez <fperez@colorado.edu>
3236
3263
3237 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3264 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3238 of ValueError exception when checking for auto-execution. This
3265 of ValueError exception when checking for auto-execution. This
3239 one is raised by things like Numeric arrays arr.flat when the
3266 one is raised by things like Numeric arrays arr.flat when the
3240 array is non-contiguous.
3267 array is non-contiguous.
3241
3268
3242 2003-01-31 Fernando Perez <fperez@colorado.edu>
3269 2003-01-31 Fernando Perez <fperez@colorado.edu>
3243
3270
3244 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3271 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3245 not return any value at all (even though the command would get
3272 not return any value at all (even though the command would get
3246 executed).
3273 executed).
3247 (xsys): Flush stdout right after printing the command to ensure
3274 (xsys): Flush stdout right after printing the command to ensure
3248 proper ordering of commands and command output in the total
3275 proper ordering of commands and command output in the total
3249 output.
3276 output.
3250 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3277 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3251 system/getoutput as defaults. The old ones are kept for
3278 system/getoutput as defaults. The old ones are kept for
3252 compatibility reasons, so no code which uses this library needs
3279 compatibility reasons, so no code which uses this library needs
3253 changing.
3280 changing.
3254
3281
3255 2003-01-27 *** Released version 0.2.14
3282 2003-01-27 *** Released version 0.2.14
3256
3283
3257 2003-01-25 Fernando Perez <fperez@colorado.edu>
3284 2003-01-25 Fernando Perez <fperez@colorado.edu>
3258
3285
3259 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3286 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3260 functions defined in previous edit sessions could not be re-edited
3287 functions defined in previous edit sessions could not be re-edited
3261 (because the temp files were immediately removed). Now temp files
3288 (because the temp files were immediately removed). Now temp files
3262 are removed only at IPython's exit.
3289 are removed only at IPython's exit.
3263 (Magic.magic_run): Improved @run to perform shell-like expansions
3290 (Magic.magic_run): Improved @run to perform shell-like expansions
3264 on its arguments (~users and $VARS). With this, @run becomes more
3291 on its arguments (~users and $VARS). With this, @run becomes more
3265 like a normal command-line.
3292 like a normal command-line.
3266
3293
3267 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3294 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3268 bugs related to embedding and cleaned up that code. A fairly
3295 bugs related to embedding and cleaned up that code. A fairly
3269 important one was the impossibility to access the global namespace
3296 important one was the impossibility to access the global namespace
3270 through the embedded IPython (only local variables were visible).
3297 through the embedded IPython (only local variables were visible).
3271
3298
3272 2003-01-14 Fernando Perez <fperez@colorado.edu>
3299 2003-01-14 Fernando Perez <fperez@colorado.edu>
3273
3300
3274 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3301 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3275 auto-calling to be a bit more conservative. Now it doesn't get
3302 auto-calling to be a bit more conservative. Now it doesn't get
3276 triggered if any of '!=()<>' are in the rest of the input line, to
3303 triggered if any of '!=()<>' are in the rest of the input line, to
3277 allow comparing callables. Thanks to Alex for the heads up.
3304 allow comparing callables. Thanks to Alex for the heads up.
3278
3305
3279 2003-01-07 Fernando Perez <fperez@colorado.edu>
3306 2003-01-07 Fernando Perez <fperez@colorado.edu>
3280
3307
3281 * IPython/genutils.py (page): fixed estimation of the number of
3308 * IPython/genutils.py (page): fixed estimation of the number of
3282 lines in a string to be paged to simply count newlines. This
3309 lines in a string to be paged to simply count newlines. This
3283 prevents over-guessing due to embedded escape sequences. A better
3310 prevents over-guessing due to embedded escape sequences. A better
3284 long-term solution would involve stripping out the control chars
3311 long-term solution would involve stripping out the control chars
3285 for the count, but it's potentially so expensive I just don't
3312 for the count, but it's potentially so expensive I just don't
3286 think it's worth doing.
3313 think it's worth doing.
3287
3314
3288 2002-12-19 *** Released version 0.2.14pre50
3315 2002-12-19 *** Released version 0.2.14pre50
3289
3316
3290 2002-12-19 Fernando Perez <fperez@colorado.edu>
3317 2002-12-19 Fernando Perez <fperez@colorado.edu>
3291
3318
3292 * tools/release (version): Changed release scripts to inform
3319 * tools/release (version): Changed release scripts to inform
3293 Andrea and build a NEWS file with a list of recent changes.
3320 Andrea and build a NEWS file with a list of recent changes.
3294
3321
3295 * IPython/ColorANSI.py (__all__): changed terminal detection
3322 * IPython/ColorANSI.py (__all__): changed terminal detection
3296 code. Seems to work better for xterms without breaking
3323 code. Seems to work better for xterms without breaking
3297 konsole. Will need more testing to determine if WinXP and Mac OSX
3324 konsole. Will need more testing to determine if WinXP and Mac OSX
3298 also work ok.
3325 also work ok.
3299
3326
3300 2002-12-18 *** Released version 0.2.14pre49
3327 2002-12-18 *** Released version 0.2.14pre49
3301
3328
3302 2002-12-18 Fernando Perez <fperez@colorado.edu>
3329 2002-12-18 Fernando Perez <fperez@colorado.edu>
3303
3330
3304 * Docs: added new info about Mac OSX, from Andrea.
3331 * Docs: added new info about Mac OSX, from Andrea.
3305
3332
3306 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3333 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3307 allow direct plotting of python strings whose format is the same
3334 allow direct plotting of python strings whose format is the same
3308 of gnuplot data files.
3335 of gnuplot data files.
3309
3336
3310 2002-12-16 Fernando Perez <fperez@colorado.edu>
3337 2002-12-16 Fernando Perez <fperez@colorado.edu>
3311
3338
3312 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3339 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3313 value of exit question to be acknowledged.
3340 value of exit question to be acknowledged.
3314
3341
3315 2002-12-03 Fernando Perez <fperez@colorado.edu>
3342 2002-12-03 Fernando Perez <fperez@colorado.edu>
3316
3343
3317 * IPython/ipmaker.py: removed generators, which had been added
3344 * IPython/ipmaker.py: removed generators, which had been added
3318 by mistake in an earlier debugging run. This was causing trouble
3345 by mistake in an earlier debugging run. This was causing trouble
3319 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3346 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3320 for pointing this out.
3347 for pointing this out.
3321
3348
3322 2002-11-17 Fernando Perez <fperez@colorado.edu>
3349 2002-11-17 Fernando Perez <fperez@colorado.edu>
3323
3350
3324 * Manual: updated the Gnuplot section.
3351 * Manual: updated the Gnuplot section.
3325
3352
3326 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3353 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3327 a much better split of what goes in Runtime and what goes in
3354 a much better split of what goes in Runtime and what goes in
3328 Interactive.
3355 Interactive.
3329
3356
3330 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3357 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3331 being imported from iplib.
3358 being imported from iplib.
3332
3359
3333 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3360 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3334 for command-passing. Now the global Gnuplot instance is called
3361 for command-passing. Now the global Gnuplot instance is called
3335 'gp' instead of 'g', which was really a far too fragile and
3362 'gp' instead of 'g', which was really a far too fragile and
3336 common name.
3363 common name.
3337
3364
3338 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3365 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3339 bounding boxes generated by Gnuplot for square plots.
3366 bounding boxes generated by Gnuplot for square plots.
3340
3367
3341 * IPython/genutils.py (popkey): new function added. I should
3368 * IPython/genutils.py (popkey): new function added. I should
3342 suggest this on c.l.py as a dict method, it seems useful.
3369 suggest this on c.l.py as a dict method, it seems useful.
3343
3370
3344 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3371 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3345 to transparently handle PostScript generation. MUCH better than
3372 to transparently handle PostScript generation. MUCH better than
3346 the previous plot_eps/replot_eps (which I removed now). The code
3373 the previous plot_eps/replot_eps (which I removed now). The code
3347 is also fairly clean and well documented now (including
3374 is also fairly clean and well documented now (including
3348 docstrings).
3375 docstrings).
3349
3376
3350 2002-11-13 Fernando Perez <fperez@colorado.edu>
3377 2002-11-13 Fernando Perez <fperez@colorado.edu>
3351
3378
3352 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3379 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3353 (inconsistent with options).
3380 (inconsistent with options).
3354
3381
3355 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3382 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3356 manually disabled, I don't know why. Fixed it.
3383 manually disabled, I don't know why. Fixed it.
3357 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3384 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3358 eps output.
3385 eps output.
3359
3386
3360 2002-11-12 Fernando Perez <fperez@colorado.edu>
3387 2002-11-12 Fernando Perez <fperez@colorado.edu>
3361
3388
3362 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3389 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3363 don't propagate up to caller. Fixes crash reported by François
3390 don't propagate up to caller. Fixes crash reported by François
3364 Pinard.
3391 Pinard.
3365
3392
3366 2002-11-09 Fernando Perez <fperez@colorado.edu>
3393 2002-11-09 Fernando Perez <fperez@colorado.edu>
3367
3394
3368 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3395 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3369 history file for new users.
3396 history file for new users.
3370 (make_IPython): fixed bug where initial install would leave the
3397 (make_IPython): fixed bug where initial install would leave the
3371 user running in the .ipython dir.
3398 user running in the .ipython dir.
3372 (make_IPython): fixed bug where config dir .ipython would be
3399 (make_IPython): fixed bug where config dir .ipython would be
3373 created regardless of the given -ipythondir option. Thanks to Cory
3400 created regardless of the given -ipythondir option. Thanks to Cory
3374 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3401 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3375
3402
3376 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3403 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3377 type confirmations. Will need to use it in all of IPython's code
3404 type confirmations. Will need to use it in all of IPython's code
3378 consistently.
3405 consistently.
3379
3406
3380 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3407 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3381 context to print 31 lines instead of the default 5. This will make
3408 context to print 31 lines instead of the default 5. This will make
3382 the crash reports extremely detailed in case the problem is in
3409 the crash reports extremely detailed in case the problem is in
3383 libraries I don't have access to.
3410 libraries I don't have access to.
3384
3411
3385 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3412 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3386 line of defense' code to still crash, but giving users fair
3413 line of defense' code to still crash, but giving users fair
3387 warning. I don't want internal errors to go unreported: if there's
3414 warning. I don't want internal errors to go unreported: if there's
3388 an internal problem, IPython should crash and generate a full
3415 an internal problem, IPython should crash and generate a full
3389 report.
3416 report.
3390
3417
3391 2002-11-08 Fernando Perez <fperez@colorado.edu>
3418 2002-11-08 Fernando Perez <fperez@colorado.edu>
3392
3419
3393 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3420 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3394 otherwise uncaught exceptions which can appear if people set
3421 otherwise uncaught exceptions which can appear if people set
3395 sys.stdout to something badly broken. Thanks to a crash report
3422 sys.stdout to something badly broken. Thanks to a crash report
3396 from henni-AT-mail.brainbot.com.
3423 from henni-AT-mail.brainbot.com.
3397
3424
3398 2002-11-04 Fernando Perez <fperez@colorado.edu>
3425 2002-11-04 Fernando Perez <fperez@colorado.edu>
3399
3426
3400 * IPython/iplib.py (InteractiveShell.interact): added
3427 * IPython/iplib.py (InteractiveShell.interact): added
3401 __IPYTHON__active to the builtins. It's a flag which goes on when
3428 __IPYTHON__active to the builtins. It's a flag which goes on when
3402 the interaction starts and goes off again when it stops. This
3429 the interaction starts and goes off again when it stops. This
3403 allows embedding code to detect being inside IPython. Before this
3430 allows embedding code to detect being inside IPython. Before this
3404 was done via __IPYTHON__, but that only shows that an IPython
3431 was done via __IPYTHON__, but that only shows that an IPython
3405 instance has been created.
3432 instance has been created.
3406
3433
3407 * IPython/Magic.py (Magic.magic_env): I realized that in a
3434 * IPython/Magic.py (Magic.magic_env): I realized that in a
3408 UserDict, instance.data holds the data as a normal dict. So I
3435 UserDict, instance.data holds the data as a normal dict. So I
3409 modified @env to return os.environ.data instead of rebuilding a
3436 modified @env to return os.environ.data instead of rebuilding a
3410 dict by hand.
3437 dict by hand.
3411
3438
3412 2002-11-02 Fernando Perez <fperez@colorado.edu>
3439 2002-11-02 Fernando Perez <fperez@colorado.edu>
3413
3440
3414 * IPython/genutils.py (warn): changed so that level 1 prints no
3441 * IPython/genutils.py (warn): changed so that level 1 prints no
3415 header. Level 2 is now the default (with 'WARNING' header, as
3442 header. Level 2 is now the default (with 'WARNING' header, as
3416 before). I think I tracked all places where changes were needed in
3443 before). I think I tracked all places where changes were needed in
3417 IPython, but outside code using the old level numbering may have
3444 IPython, but outside code using the old level numbering may have
3418 broken.
3445 broken.
3419
3446
3420 * IPython/iplib.py (InteractiveShell.runcode): added this to
3447 * IPython/iplib.py (InteractiveShell.runcode): added this to
3421 handle the tracebacks in SystemExit traps correctly. The previous
3448 handle the tracebacks in SystemExit traps correctly. The previous
3422 code (through interact) was printing more of the stack than
3449 code (through interact) was printing more of the stack than
3423 necessary, showing IPython internal code to the user.
3450 necessary, showing IPython internal code to the user.
3424
3451
3425 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3452 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3426 default. Now that the default at the confirmation prompt is yes,
3453 default. Now that the default at the confirmation prompt is yes,
3427 it's not so intrusive. François' argument that ipython sessions
3454 it's not so intrusive. François' argument that ipython sessions
3428 tend to be complex enough not to lose them from an accidental C-d,
3455 tend to be complex enough not to lose them from an accidental C-d,
3429 is a valid one.
3456 is a valid one.
3430
3457
3431 * IPython/iplib.py (InteractiveShell.interact): added a
3458 * IPython/iplib.py (InteractiveShell.interact): added a
3432 showtraceback() call to the SystemExit trap, and modified the exit
3459 showtraceback() call to the SystemExit trap, and modified the exit
3433 confirmation to have yes as the default.
3460 confirmation to have yes as the default.
3434
3461
3435 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3462 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3436 this file. It's been gone from the code for a long time, this was
3463 this file. It's been gone from the code for a long time, this was
3437 simply leftover junk.
3464 simply leftover junk.
3438
3465
3439 2002-11-01 Fernando Perez <fperez@colorado.edu>
3466 2002-11-01 Fernando Perez <fperez@colorado.edu>
3440
3467
3441 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3468 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3442 added. If set, IPython now traps EOF and asks for
3469 added. If set, IPython now traps EOF and asks for
3443 confirmation. After a request by François Pinard.
3470 confirmation. After a request by François Pinard.
3444
3471
3445 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3472 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3446 of @abort, and with a new (better) mechanism for handling the
3473 of @abort, and with a new (better) mechanism for handling the
3447 exceptions.
3474 exceptions.
3448
3475
3449 2002-10-27 Fernando Perez <fperez@colorado.edu>
3476 2002-10-27 Fernando Perez <fperez@colorado.edu>
3450
3477
3451 * IPython/usage.py (__doc__): updated the --help information and
3478 * IPython/usage.py (__doc__): updated the --help information and
3452 the ipythonrc file to indicate that -log generates
3479 the ipythonrc file to indicate that -log generates
3453 ./ipython.log. Also fixed the corresponding info in @logstart.
3480 ./ipython.log. Also fixed the corresponding info in @logstart.
3454 This and several other fixes in the manuals thanks to reports by
3481 This and several other fixes in the manuals thanks to reports by
3455 François Pinard <pinard-AT-iro.umontreal.ca>.
3482 François Pinard <pinard-AT-iro.umontreal.ca>.
3456
3483
3457 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3484 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3458 refer to @logstart (instead of @log, which doesn't exist).
3485 refer to @logstart (instead of @log, which doesn't exist).
3459
3486
3460 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3487 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3461 AttributeError crash. Thanks to Christopher Armstrong
3488 AttributeError crash. Thanks to Christopher Armstrong
3462 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3489 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3463 introduced recently (in 0.2.14pre37) with the fix to the eval
3490 introduced recently (in 0.2.14pre37) with the fix to the eval
3464 problem mentioned below.
3491 problem mentioned below.
3465
3492
3466 2002-10-17 Fernando Perez <fperez@colorado.edu>
3493 2002-10-17 Fernando Perez <fperez@colorado.edu>
3467
3494
3468 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3495 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3469 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3496 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3470
3497
3471 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3498 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3472 this function to fix a problem reported by Alex Schmolck. He saw
3499 this function to fix a problem reported by Alex Schmolck. He saw
3473 it with list comprehensions and generators, which were getting
3500 it with list comprehensions and generators, which were getting
3474 called twice. The real problem was an 'eval' call in testing for
3501 called twice. The real problem was an 'eval' call in testing for
3475 automagic which was evaluating the input line silently.
3502 automagic which was evaluating the input line silently.
3476
3503
3477 This is a potentially very nasty bug, if the input has side
3504 This is a potentially very nasty bug, if the input has side
3478 effects which must not be repeated. The code is much cleaner now,
3505 effects which must not be repeated. The code is much cleaner now,
3479 without any blanket 'except' left and with a regexp test for
3506 without any blanket 'except' left and with a regexp test for
3480 actual function names.
3507 actual function names.
3481
3508
3482 But an eval remains, which I'm not fully comfortable with. I just
3509 But an eval remains, which I'm not fully comfortable with. I just
3483 don't know how to find out if an expression could be a callable in
3510 don't know how to find out if an expression could be a callable in
3484 the user's namespace without doing an eval on the string. However
3511 the user's namespace without doing an eval on the string. However
3485 that string is now much more strictly checked so that no code
3512 that string is now much more strictly checked so that no code
3486 slips by, so the eval should only happen for things that can
3513 slips by, so the eval should only happen for things that can
3487 really be only function/method names.
3514 really be only function/method names.
3488
3515
3489 2002-10-15 Fernando Perez <fperez@colorado.edu>
3516 2002-10-15 Fernando Perez <fperez@colorado.edu>
3490
3517
3491 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3518 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3492 OSX information to main manual, removed README_Mac_OSX file from
3519 OSX information to main manual, removed README_Mac_OSX file from
3493 distribution. Also updated credits for recent additions.
3520 distribution. Also updated credits for recent additions.
3494
3521
3495 2002-10-10 Fernando Perez <fperez@colorado.edu>
3522 2002-10-10 Fernando Perez <fperez@colorado.edu>
3496
3523
3497 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3524 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3498 terminal-related issues. Many thanks to Andrea Riciputi
3525 terminal-related issues. Many thanks to Andrea Riciputi
3499 <andrea.riciputi-AT-libero.it> for writing it.
3526 <andrea.riciputi-AT-libero.it> for writing it.
3500
3527
3501 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3528 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3502 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3529 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3503
3530
3504 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3531 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3505 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3532 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3506 <syver-en-AT-online.no> who both submitted patches for this problem.
3533 <syver-en-AT-online.no> who both submitted patches for this problem.
3507
3534
3508 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3535 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3509 global embedding to make sure that things don't overwrite user
3536 global embedding to make sure that things don't overwrite user
3510 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3537 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3511
3538
3512 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3539 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3513 compatibility. Thanks to Hayden Callow
3540 compatibility. Thanks to Hayden Callow
3514 <h.callow-AT-elec.canterbury.ac.nz>
3541 <h.callow-AT-elec.canterbury.ac.nz>
3515
3542
3516 2002-10-04 Fernando Perez <fperez@colorado.edu>
3543 2002-10-04 Fernando Perez <fperez@colorado.edu>
3517
3544
3518 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3545 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3519 Gnuplot.File objects.
3546 Gnuplot.File objects.
3520
3547
3521 2002-07-23 Fernando Perez <fperez@colorado.edu>
3548 2002-07-23 Fernando Perez <fperez@colorado.edu>
3522
3549
3523 * IPython/genutils.py (timing): Added timings() and timing() for
3550 * IPython/genutils.py (timing): Added timings() and timing() for
3524 quick access to the most commonly needed data, the execution
3551 quick access to the most commonly needed data, the execution
3525 times. Old timing() renamed to timings_out().
3552 times. Old timing() renamed to timings_out().
3526
3553
3527 2002-07-18 Fernando Perez <fperez@colorado.edu>
3554 2002-07-18 Fernando Perez <fperez@colorado.edu>
3528
3555
3529 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3556 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3530 bug with nested instances disrupting the parent's tab completion.
3557 bug with nested instances disrupting the parent's tab completion.
3531
3558
3532 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3559 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3533 all_completions code to begin the emacs integration.
3560 all_completions code to begin the emacs integration.
3534
3561
3535 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3562 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3536 argument to allow titling individual arrays when plotting.
3563 argument to allow titling individual arrays when plotting.
3537
3564
3538 2002-07-15 Fernando Perez <fperez@colorado.edu>
3565 2002-07-15 Fernando Perez <fperez@colorado.edu>
3539
3566
3540 * setup.py (make_shortcut): changed to retrieve the value of
3567 * setup.py (make_shortcut): changed to retrieve the value of
3541 'Program Files' directory from the registry (this value changes in
3568 'Program Files' directory from the registry (this value changes in
3542 non-english versions of Windows). Thanks to Thomas Fanslau
3569 non-english versions of Windows). Thanks to Thomas Fanslau
3543 <tfanslau-AT-gmx.de> for the report.
3570 <tfanslau-AT-gmx.de> for the report.
3544
3571
3545 2002-07-10 Fernando Perez <fperez@colorado.edu>
3572 2002-07-10 Fernando Perez <fperez@colorado.edu>
3546
3573
3547 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3574 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3548 a bug in pdb, which crashes if a line with only whitespace is
3575 a bug in pdb, which crashes if a line with only whitespace is
3549 entered. Bug report submitted to sourceforge.
3576 entered. Bug report submitted to sourceforge.
3550
3577
3551 2002-07-09 Fernando Perez <fperez@colorado.edu>
3578 2002-07-09 Fernando Perez <fperez@colorado.edu>
3552
3579
3553 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3580 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3554 reporting exceptions (it's a bug in inspect.py, I just set a
3581 reporting exceptions (it's a bug in inspect.py, I just set a
3555 workaround).
3582 workaround).
3556
3583
3557 2002-07-08 Fernando Perez <fperez@colorado.edu>
3584 2002-07-08 Fernando Perez <fperez@colorado.edu>
3558
3585
3559 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3586 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3560 __IPYTHON__ in __builtins__ to show up in user_ns.
3587 __IPYTHON__ in __builtins__ to show up in user_ns.
3561
3588
3562 2002-07-03 Fernando Perez <fperez@colorado.edu>
3589 2002-07-03 Fernando Perez <fperez@colorado.edu>
3563
3590
3564 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3591 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3565 name from @gp_set_instance to @gp_set_default.
3592 name from @gp_set_instance to @gp_set_default.
3566
3593
3567 * IPython/ipmaker.py (make_IPython): default editor value set to
3594 * IPython/ipmaker.py (make_IPython): default editor value set to
3568 '0' (a string), to match the rc file. Otherwise will crash when
3595 '0' (a string), to match the rc file. Otherwise will crash when
3569 .strip() is called on it.
3596 .strip() is called on it.
3570
3597
3571
3598
3572 2002-06-28 Fernando Perez <fperez@colorado.edu>
3599 2002-06-28 Fernando Perez <fperez@colorado.edu>
3573
3600
3574 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3601 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3575 of files in current directory when a file is executed via
3602 of files in current directory when a file is executed via
3576 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3603 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3577
3604
3578 * setup.py (manfiles): fix for rpm builds, submitted by RA
3605 * setup.py (manfiles): fix for rpm builds, submitted by RA
3579 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3606 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3580
3607
3581 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3608 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3582 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3609 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3583 string!). A. Schmolck caught this one.
3610 string!). A. Schmolck caught this one.
3584
3611
3585 2002-06-27 Fernando Perez <fperez@colorado.edu>
3612 2002-06-27 Fernando Perez <fperez@colorado.edu>
3586
3613
3587 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3614 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3588 defined files at the cmd line. __name__ wasn't being set to
3615 defined files at the cmd line. __name__ wasn't being set to
3589 __main__.
3616 __main__.
3590
3617
3591 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3618 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3592 regular lists and tuples besides Numeric arrays.
3619 regular lists and tuples besides Numeric arrays.
3593
3620
3594 * IPython/Prompts.py (CachedOutput.__call__): Added output
3621 * IPython/Prompts.py (CachedOutput.__call__): Added output
3595 supression for input ending with ';'. Similar to Mathematica and
3622 supression for input ending with ';'. Similar to Mathematica and
3596 Matlab. The _* vars and Out[] list are still updated, just like
3623 Matlab. The _* vars and Out[] list are still updated, just like
3597 Mathematica behaves.
3624 Mathematica behaves.
3598
3625
3599 2002-06-25 Fernando Perez <fperez@colorado.edu>
3626 2002-06-25 Fernando Perez <fperez@colorado.edu>
3600
3627
3601 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3628 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3602 .ini extensions for profiels under Windows.
3629 .ini extensions for profiels under Windows.
3603
3630
3604 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3631 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3605 string form. Fix contributed by Alexander Schmolck
3632 string form. Fix contributed by Alexander Schmolck
3606 <a.schmolck-AT-gmx.net>
3633 <a.schmolck-AT-gmx.net>
3607
3634
3608 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3635 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3609 pre-configured Gnuplot instance.
3636 pre-configured Gnuplot instance.
3610
3637
3611 2002-06-21 Fernando Perez <fperez@colorado.edu>
3638 2002-06-21 Fernando Perez <fperez@colorado.edu>
3612
3639
3613 * IPython/numutils.py (exp_safe): new function, works around the
3640 * IPython/numutils.py (exp_safe): new function, works around the
3614 underflow problems in Numeric.
3641 underflow problems in Numeric.
3615 (log2): New fn. Safe log in base 2: returns exact integer answer
3642 (log2): New fn. Safe log in base 2: returns exact integer answer
3616 for exact integer powers of 2.
3643 for exact integer powers of 2.
3617
3644
3618 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3645 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3619 properly.
3646 properly.
3620
3647
3621 2002-06-20 Fernando Perez <fperez@colorado.edu>
3648 2002-06-20 Fernando Perez <fperez@colorado.edu>
3622
3649
3623 * IPython/genutils.py (timing): new function like
3650 * IPython/genutils.py (timing): new function like
3624 Mathematica's. Similar to time_test, but returns more info.
3651 Mathematica's. Similar to time_test, but returns more info.
3625
3652
3626 2002-06-18 Fernando Perez <fperez@colorado.edu>
3653 2002-06-18 Fernando Perez <fperez@colorado.edu>
3627
3654
3628 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3655 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3629 according to Mike Heeter's suggestions.
3656 according to Mike Heeter's suggestions.
3630
3657
3631 2002-06-16 Fernando Perez <fperez@colorado.edu>
3658 2002-06-16 Fernando Perez <fperez@colorado.edu>
3632
3659
3633 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3660 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3634 system. GnuplotMagic is gone as a user-directory option. New files
3661 system. GnuplotMagic is gone as a user-directory option. New files
3635 make it easier to use all the gnuplot stuff both from external
3662 make it easier to use all the gnuplot stuff both from external
3636 programs as well as from IPython. Had to rewrite part of
3663 programs as well as from IPython. Had to rewrite part of
3637 hardcopy() b/c of a strange bug: often the ps files simply don't
3664 hardcopy() b/c of a strange bug: often the ps files simply don't
3638 get created, and require a repeat of the command (often several
3665 get created, and require a repeat of the command (often several
3639 times).
3666 times).
3640
3667
3641 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3668 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3642 resolve output channel at call time, so that if sys.stderr has
3669 resolve output channel at call time, so that if sys.stderr has
3643 been redirected by user this gets honored.
3670 been redirected by user this gets honored.
3644
3671
3645 2002-06-13 Fernando Perez <fperez@colorado.edu>
3672 2002-06-13 Fernando Perez <fperez@colorado.edu>
3646
3673
3647 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3674 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3648 IPShell. Kept a copy with the old names to avoid breaking people's
3675 IPShell. Kept a copy with the old names to avoid breaking people's
3649 embedded code.
3676 embedded code.
3650
3677
3651 * IPython/ipython: simplified it to the bare minimum after
3678 * IPython/ipython: simplified it to the bare minimum after
3652 Holger's suggestions. Added info about how to use it in
3679 Holger's suggestions. Added info about how to use it in
3653 PYTHONSTARTUP.
3680 PYTHONSTARTUP.
3654
3681
3655 * IPython/Shell.py (IPythonShell): changed the options passing
3682 * IPython/Shell.py (IPythonShell): changed the options passing
3656 from a string with funky %s replacements to a straight list. Maybe
3683 from a string with funky %s replacements to a straight list. Maybe
3657 a bit more typing, but it follows sys.argv conventions, so there's
3684 a bit more typing, but it follows sys.argv conventions, so there's
3658 less special-casing to remember.
3685 less special-casing to remember.
3659
3686
3660 2002-06-12 Fernando Perez <fperez@colorado.edu>
3687 2002-06-12 Fernando Perez <fperez@colorado.edu>
3661
3688
3662 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3689 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3663 command. Thanks to a suggestion by Mike Heeter.
3690 command. Thanks to a suggestion by Mike Heeter.
3664 (Magic.magic_pfile): added behavior to look at filenames if given
3691 (Magic.magic_pfile): added behavior to look at filenames if given
3665 arg is not a defined object.
3692 arg is not a defined object.
3666 (Magic.magic_save): New @save function to save code snippets. Also
3693 (Magic.magic_save): New @save function to save code snippets. Also
3667 a Mike Heeter idea.
3694 a Mike Heeter idea.
3668
3695
3669 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3696 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3670 plot() and replot(). Much more convenient now, especially for
3697 plot() and replot(). Much more convenient now, especially for
3671 interactive use.
3698 interactive use.
3672
3699
3673 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3700 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3674 filenames.
3701 filenames.
3675
3702
3676 2002-06-02 Fernando Perez <fperez@colorado.edu>
3703 2002-06-02 Fernando Perez <fperez@colorado.edu>
3677
3704
3678 * IPython/Struct.py (Struct.__init__): modified to admit
3705 * IPython/Struct.py (Struct.__init__): modified to admit
3679 initialization via another struct.
3706 initialization via another struct.
3680
3707
3681 * IPython/genutils.py (SystemExec.__init__): New stateful
3708 * IPython/genutils.py (SystemExec.__init__): New stateful
3682 interface to xsys and bq. Useful for writing system scripts.
3709 interface to xsys and bq. Useful for writing system scripts.
3683
3710
3684 2002-05-30 Fernando Perez <fperez@colorado.edu>
3711 2002-05-30 Fernando Perez <fperez@colorado.edu>
3685
3712
3686 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3713 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3687 documents. This will make the user download smaller (it's getting
3714 documents. This will make the user download smaller (it's getting
3688 too big).
3715 too big).
3689
3716
3690 2002-05-29 Fernando Perez <fperez@colorado.edu>
3717 2002-05-29 Fernando Perez <fperez@colorado.edu>
3691
3718
3692 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3719 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3693 fix problems with shelve and pickle. Seems to work, but I don't
3720 fix problems with shelve and pickle. Seems to work, but I don't
3694 know if corner cases break it. Thanks to Mike Heeter
3721 know if corner cases break it. Thanks to Mike Heeter
3695 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3722 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3696
3723
3697 2002-05-24 Fernando Perez <fperez@colorado.edu>
3724 2002-05-24 Fernando Perez <fperez@colorado.edu>
3698
3725
3699 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3726 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3700 macros having broken.
3727 macros having broken.
3701
3728
3702 2002-05-21 Fernando Perez <fperez@colorado.edu>
3729 2002-05-21 Fernando Perez <fperez@colorado.edu>
3703
3730
3704 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3731 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3705 introduced logging bug: all history before logging started was
3732 introduced logging bug: all history before logging started was
3706 being written one character per line! This came from the redesign
3733 being written one character per line! This came from the redesign
3707 of the input history as a special list which slices to strings,
3734 of the input history as a special list which slices to strings,
3708 not to lists.
3735 not to lists.
3709
3736
3710 2002-05-20 Fernando Perez <fperez@colorado.edu>
3737 2002-05-20 Fernando Perez <fperez@colorado.edu>
3711
3738
3712 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3739 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3713 be an attribute of all classes in this module. The design of these
3740 be an attribute of all classes in this module. The design of these
3714 classes needs some serious overhauling.
3741 classes needs some serious overhauling.
3715
3742
3716 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3743 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3717 which was ignoring '_' in option names.
3744 which was ignoring '_' in option names.
3718
3745
3719 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3746 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3720 'Verbose_novars' to 'Context' and made it the new default. It's a
3747 'Verbose_novars' to 'Context' and made it the new default. It's a
3721 bit more readable and also safer than verbose.
3748 bit more readable and also safer than verbose.
3722
3749
3723 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3750 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3724 triple-quoted strings.
3751 triple-quoted strings.
3725
3752
3726 * IPython/OInspect.py (__all__): new module exposing the object
3753 * IPython/OInspect.py (__all__): new module exposing the object
3727 introspection facilities. Now the corresponding magics are dummy
3754 introspection facilities. Now the corresponding magics are dummy
3728 wrappers around this. Having this module will make it much easier
3755 wrappers around this. Having this module will make it much easier
3729 to put these functions into our modified pdb.
3756 to put these functions into our modified pdb.
3730 This new object inspector system uses the new colorizing module,
3757 This new object inspector system uses the new colorizing module,
3731 so source code and other things are nicely syntax highlighted.
3758 so source code and other things are nicely syntax highlighted.
3732
3759
3733 2002-05-18 Fernando Perez <fperez@colorado.edu>
3760 2002-05-18 Fernando Perez <fperez@colorado.edu>
3734
3761
3735 * IPython/ColorANSI.py: Split the coloring tools into a separate
3762 * IPython/ColorANSI.py: Split the coloring tools into a separate
3736 module so I can use them in other code easier (they were part of
3763 module so I can use them in other code easier (they were part of
3737 ultraTB).
3764 ultraTB).
3738
3765
3739 2002-05-17 Fernando Perez <fperez@colorado.edu>
3766 2002-05-17 Fernando Perez <fperez@colorado.edu>
3740
3767
3741 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3768 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3742 fixed it to set the global 'g' also to the called instance, as
3769 fixed it to set the global 'g' also to the called instance, as
3743 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3770 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3744 user's 'g' variables).
3771 user's 'g' variables).
3745
3772
3746 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3773 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3747 global variables (aliases to _ih,_oh) so that users which expect
3774 global variables (aliases to _ih,_oh) so that users which expect
3748 In[5] or Out[7] to work aren't unpleasantly surprised.
3775 In[5] or Out[7] to work aren't unpleasantly surprised.
3749 (InputList.__getslice__): new class to allow executing slices of
3776 (InputList.__getslice__): new class to allow executing slices of
3750 input history directly. Very simple class, complements the use of
3777 input history directly. Very simple class, complements the use of
3751 macros.
3778 macros.
3752
3779
3753 2002-05-16 Fernando Perez <fperez@colorado.edu>
3780 2002-05-16 Fernando Perez <fperez@colorado.edu>
3754
3781
3755 * setup.py (docdirbase): make doc directory be just doc/IPython
3782 * setup.py (docdirbase): make doc directory be just doc/IPython
3756 without version numbers, it will reduce clutter for users.
3783 without version numbers, it will reduce clutter for users.
3757
3784
3758 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3785 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3759 execfile call to prevent possible memory leak. See for details:
3786 execfile call to prevent possible memory leak. See for details:
3760 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3787 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3761
3788
3762 2002-05-15 Fernando Perez <fperez@colorado.edu>
3789 2002-05-15 Fernando Perez <fperez@colorado.edu>
3763
3790
3764 * IPython/Magic.py (Magic.magic_psource): made the object
3791 * IPython/Magic.py (Magic.magic_psource): made the object
3765 introspection names be more standard: pdoc, pdef, pfile and
3792 introspection names be more standard: pdoc, pdef, pfile and
3766 psource. They all print/page their output, and it makes
3793 psource. They all print/page their output, and it makes
3767 remembering them easier. Kept old names for compatibility as
3794 remembering them easier. Kept old names for compatibility as
3768 aliases.
3795 aliases.
3769
3796
3770 2002-05-14 Fernando Perez <fperez@colorado.edu>
3797 2002-05-14 Fernando Perez <fperez@colorado.edu>
3771
3798
3772 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3799 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3773 what the mouse problem was. The trick is to use gnuplot with temp
3800 what the mouse problem was. The trick is to use gnuplot with temp
3774 files and NOT with pipes (for data communication), because having
3801 files and NOT with pipes (for data communication), because having
3775 both pipes and the mouse on is bad news.
3802 both pipes and the mouse on is bad news.
3776
3803
3777 2002-05-13 Fernando Perez <fperez@colorado.edu>
3804 2002-05-13 Fernando Perez <fperez@colorado.edu>
3778
3805
3779 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3806 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3780 bug. Information would be reported about builtins even when
3807 bug. Information would be reported about builtins even when
3781 user-defined functions overrode them.
3808 user-defined functions overrode them.
3782
3809
3783 2002-05-11 Fernando Perez <fperez@colorado.edu>
3810 2002-05-11 Fernando Perez <fperez@colorado.edu>
3784
3811
3785 * IPython/__init__.py (__all__): removed FlexCompleter from
3812 * IPython/__init__.py (__all__): removed FlexCompleter from
3786 __all__ so that things don't fail in platforms without readline.
3813 __all__ so that things don't fail in platforms without readline.
3787
3814
3788 2002-05-10 Fernando Perez <fperez@colorado.edu>
3815 2002-05-10 Fernando Perez <fperez@colorado.edu>
3789
3816
3790 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3817 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3791 it requires Numeric, effectively making Numeric a dependency for
3818 it requires Numeric, effectively making Numeric a dependency for
3792 IPython.
3819 IPython.
3793
3820
3794 * Released 0.2.13
3821 * Released 0.2.13
3795
3822
3796 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3823 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3797 profiler interface. Now all the major options from the profiler
3824 profiler interface. Now all the major options from the profiler
3798 module are directly supported in IPython, both for single
3825 module are directly supported in IPython, both for single
3799 expressions (@prun) and for full programs (@run -p).
3826 expressions (@prun) and for full programs (@run -p).
3800
3827
3801 2002-05-09 Fernando Perez <fperez@colorado.edu>
3828 2002-05-09 Fernando Perez <fperez@colorado.edu>
3802
3829
3803 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3830 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3804 magic properly formatted for screen.
3831 magic properly formatted for screen.
3805
3832
3806 * setup.py (make_shortcut): Changed things to put pdf version in
3833 * setup.py (make_shortcut): Changed things to put pdf version in
3807 doc/ instead of doc/manual (had to change lyxport a bit).
3834 doc/ instead of doc/manual (had to change lyxport a bit).
3808
3835
3809 * IPython/Magic.py (Profile.string_stats): made profile runs go
3836 * IPython/Magic.py (Profile.string_stats): made profile runs go
3810 through pager (they are long and a pager allows searching, saving,
3837 through pager (they are long and a pager allows searching, saving,
3811 etc.)
3838 etc.)
3812
3839
3813 2002-05-08 Fernando Perez <fperez@colorado.edu>
3840 2002-05-08 Fernando Perez <fperez@colorado.edu>
3814
3841
3815 * Released 0.2.12
3842 * Released 0.2.12
3816
3843
3817 2002-05-06 Fernando Perez <fperez@colorado.edu>
3844 2002-05-06 Fernando Perez <fperez@colorado.edu>
3818
3845
3819 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3846 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3820 introduced); 'hist n1 n2' was broken.
3847 introduced); 'hist n1 n2' was broken.
3821 (Magic.magic_pdb): added optional on/off arguments to @pdb
3848 (Magic.magic_pdb): added optional on/off arguments to @pdb
3822 (Magic.magic_run): added option -i to @run, which executes code in
3849 (Magic.magic_run): added option -i to @run, which executes code in
3823 the IPython namespace instead of a clean one. Also added @irun as
3850 the IPython namespace instead of a clean one. Also added @irun as
3824 an alias to @run -i.
3851 an alias to @run -i.
3825
3852
3826 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3853 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3827 fixed (it didn't really do anything, the namespaces were wrong).
3854 fixed (it didn't really do anything, the namespaces were wrong).
3828
3855
3829 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3856 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3830
3857
3831 * IPython/__init__.py (__all__): Fixed package namespace, now
3858 * IPython/__init__.py (__all__): Fixed package namespace, now
3832 'import IPython' does give access to IPython.<all> as
3859 'import IPython' does give access to IPython.<all> as
3833 expected. Also renamed __release__ to Release.
3860 expected. Also renamed __release__ to Release.
3834
3861
3835 * IPython/Debugger.py (__license__): created new Pdb class which
3862 * IPython/Debugger.py (__license__): created new Pdb class which
3836 functions like a drop-in for the normal pdb.Pdb but does NOT
3863 functions like a drop-in for the normal pdb.Pdb but does NOT
3837 import readline by default. This way it doesn't muck up IPython's
3864 import readline by default. This way it doesn't muck up IPython's
3838 readline handling, and now tab-completion finally works in the
3865 readline handling, and now tab-completion finally works in the
3839 debugger -- sort of. It completes things globally visible, but the
3866 debugger -- sort of. It completes things globally visible, but the
3840 completer doesn't track the stack as pdb walks it. That's a bit
3867 completer doesn't track the stack as pdb walks it. That's a bit
3841 tricky, and I'll have to implement it later.
3868 tricky, and I'll have to implement it later.
3842
3869
3843 2002-05-05 Fernando Perez <fperez@colorado.edu>
3870 2002-05-05 Fernando Perez <fperez@colorado.edu>
3844
3871
3845 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3872 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3846 magic docstrings when printed via ? (explicit \'s were being
3873 magic docstrings when printed via ? (explicit \'s were being
3847 printed).
3874 printed).
3848
3875
3849 * IPython/ipmaker.py (make_IPython): fixed namespace
3876 * IPython/ipmaker.py (make_IPython): fixed namespace
3850 identification bug. Now variables loaded via logs or command-line
3877 identification bug. Now variables loaded via logs or command-line
3851 files are recognized in the interactive namespace by @who.
3878 files are recognized in the interactive namespace by @who.
3852
3879
3853 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3880 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3854 log replay system stemming from the string form of Structs.
3881 log replay system stemming from the string form of Structs.
3855
3882
3856 * IPython/Magic.py (Macro.__init__): improved macros to properly
3883 * IPython/Magic.py (Macro.__init__): improved macros to properly
3857 handle magic commands in them.
3884 handle magic commands in them.
3858 (Magic.magic_logstart): usernames are now expanded so 'logstart
3885 (Magic.magic_logstart): usernames are now expanded so 'logstart
3859 ~/mylog' now works.
3886 ~/mylog' now works.
3860
3887
3861 * IPython/iplib.py (complete): fixed bug where paths starting with
3888 * IPython/iplib.py (complete): fixed bug where paths starting with
3862 '/' would be completed as magic names.
3889 '/' would be completed as magic names.
3863
3890
3864 2002-05-04 Fernando Perez <fperez@colorado.edu>
3891 2002-05-04 Fernando Perez <fperez@colorado.edu>
3865
3892
3866 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3893 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3867 allow running full programs under the profiler's control.
3894 allow running full programs under the profiler's control.
3868
3895
3869 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3896 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3870 mode to report exceptions verbosely but without formatting
3897 mode to report exceptions verbosely but without formatting
3871 variables. This addresses the issue of ipython 'freezing' (it's
3898 variables. This addresses the issue of ipython 'freezing' (it's
3872 not frozen, but caught in an expensive formatting loop) when huge
3899 not frozen, but caught in an expensive formatting loop) when huge
3873 variables are in the context of an exception.
3900 variables are in the context of an exception.
3874 (VerboseTB.text): Added '--->' markers at line where exception was
3901 (VerboseTB.text): Added '--->' markers at line where exception was
3875 triggered. Much clearer to read, especially in NoColor modes.
3902 triggered. Much clearer to read, especially in NoColor modes.
3876
3903
3877 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3904 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3878 implemented in reverse when changing to the new parse_options().
3905 implemented in reverse when changing to the new parse_options().
3879
3906
3880 2002-05-03 Fernando Perez <fperez@colorado.edu>
3907 2002-05-03 Fernando Perez <fperez@colorado.edu>
3881
3908
3882 * IPython/Magic.py (Magic.parse_options): new function so that
3909 * IPython/Magic.py (Magic.parse_options): new function so that
3883 magics can parse options easier.
3910 magics can parse options easier.
3884 (Magic.magic_prun): new function similar to profile.run(),
3911 (Magic.magic_prun): new function similar to profile.run(),
3885 suggested by Chris Hart.
3912 suggested by Chris Hart.
3886 (Magic.magic_cd): fixed behavior so that it only changes if
3913 (Magic.magic_cd): fixed behavior so that it only changes if
3887 directory actually is in history.
3914 directory actually is in history.
3888
3915
3889 * IPython/usage.py (__doc__): added information about potential
3916 * IPython/usage.py (__doc__): added information about potential
3890 slowness of Verbose exception mode when there are huge data
3917 slowness of Verbose exception mode when there are huge data
3891 structures to be formatted (thanks to Archie Paulson).
3918 structures to be formatted (thanks to Archie Paulson).
3892
3919
3893 * IPython/ipmaker.py (make_IPython): Changed default logging
3920 * IPython/ipmaker.py (make_IPython): Changed default logging
3894 (when simply called with -log) to use curr_dir/ipython.log in
3921 (when simply called with -log) to use curr_dir/ipython.log in
3895 rotate mode. Fixed crash which was occuring with -log before
3922 rotate mode. Fixed crash which was occuring with -log before
3896 (thanks to Jim Boyle).
3923 (thanks to Jim Boyle).
3897
3924
3898 2002-05-01 Fernando Perez <fperez@colorado.edu>
3925 2002-05-01 Fernando Perez <fperez@colorado.edu>
3899
3926
3900 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3927 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3901 was nasty -- though somewhat of a corner case).
3928 was nasty -- though somewhat of a corner case).
3902
3929
3903 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3930 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3904 text (was a bug).
3931 text (was a bug).
3905
3932
3906 2002-04-30 Fernando Perez <fperez@colorado.edu>
3933 2002-04-30 Fernando Perez <fperez@colorado.edu>
3907
3934
3908 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3935 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3909 a print after ^D or ^C from the user so that the In[] prompt
3936 a print after ^D or ^C from the user so that the In[] prompt
3910 doesn't over-run the gnuplot one.
3937 doesn't over-run the gnuplot one.
3911
3938
3912 2002-04-29 Fernando Perez <fperez@colorado.edu>
3939 2002-04-29 Fernando Perez <fperez@colorado.edu>
3913
3940
3914 * Released 0.2.10
3941 * Released 0.2.10
3915
3942
3916 * IPython/__release__.py (version): get date dynamically.
3943 * IPython/__release__.py (version): get date dynamically.
3917
3944
3918 * Misc. documentation updates thanks to Arnd's comments. Also ran
3945 * Misc. documentation updates thanks to Arnd's comments. Also ran
3919 a full spellcheck on the manual (hadn't been done in a while).
3946 a full spellcheck on the manual (hadn't been done in a while).
3920
3947
3921 2002-04-27 Fernando Perez <fperez@colorado.edu>
3948 2002-04-27 Fernando Perez <fperez@colorado.edu>
3922
3949
3923 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3950 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3924 starting a log in mid-session would reset the input history list.
3951 starting a log in mid-session would reset the input history list.
3925
3952
3926 2002-04-26 Fernando Perez <fperez@colorado.edu>
3953 2002-04-26 Fernando Perez <fperez@colorado.edu>
3927
3954
3928 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3955 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3929 all files were being included in an update. Now anything in
3956 all files were being included in an update. Now anything in
3930 UserConfig that matches [A-Za-z]*.py will go (this excludes
3957 UserConfig that matches [A-Za-z]*.py will go (this excludes
3931 __init__.py)
3958 __init__.py)
3932
3959
3933 2002-04-25 Fernando Perez <fperez@colorado.edu>
3960 2002-04-25 Fernando Perez <fperez@colorado.edu>
3934
3961
3935 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3962 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3936 to __builtins__ so that any form of embedded or imported code can
3963 to __builtins__ so that any form of embedded or imported code can
3937 test for being inside IPython.
3964 test for being inside IPython.
3938
3965
3939 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3966 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3940 changed to GnuplotMagic because it's now an importable module,
3967 changed to GnuplotMagic because it's now an importable module,
3941 this makes the name follow that of the standard Gnuplot module.
3968 this makes the name follow that of the standard Gnuplot module.
3942 GnuplotMagic can now be loaded at any time in mid-session.
3969 GnuplotMagic can now be loaded at any time in mid-session.
3943
3970
3944 2002-04-24 Fernando Perez <fperez@colorado.edu>
3971 2002-04-24 Fernando Perez <fperez@colorado.edu>
3945
3972
3946 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3973 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3947 the globals (IPython has its own namespace) and the
3974 the globals (IPython has its own namespace) and the
3948 PhysicalQuantity stuff is much better anyway.
3975 PhysicalQuantity stuff is much better anyway.
3949
3976
3950 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3977 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3951 embedding example to standard user directory for
3978 embedding example to standard user directory for
3952 distribution. Also put it in the manual.
3979 distribution. Also put it in the manual.
3953
3980
3954 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3981 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3955 instance as first argument (so it doesn't rely on some obscure
3982 instance as first argument (so it doesn't rely on some obscure
3956 hidden global).
3983 hidden global).
3957
3984
3958 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3985 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3959 delimiters. While it prevents ().TAB from working, it allows
3986 delimiters. While it prevents ().TAB from working, it allows
3960 completions in open (... expressions. This is by far a more common
3987 completions in open (... expressions. This is by far a more common
3961 case.
3988 case.
3962
3989
3963 2002-04-23 Fernando Perez <fperez@colorado.edu>
3990 2002-04-23 Fernando Perez <fperez@colorado.edu>
3964
3991
3965 * IPython/Extensions/InterpreterPasteInput.py: new
3992 * IPython/Extensions/InterpreterPasteInput.py: new
3966 syntax-processing module for pasting lines with >>> or ... at the
3993 syntax-processing module for pasting lines with >>> or ... at the
3967 start.
3994 start.
3968
3995
3969 * IPython/Extensions/PhysicalQ_Interactive.py
3996 * IPython/Extensions/PhysicalQ_Interactive.py
3970 (PhysicalQuantityInteractive.__int__): fixed to work with either
3997 (PhysicalQuantityInteractive.__int__): fixed to work with either
3971 Numeric or math.
3998 Numeric or math.
3972
3999
3973 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4000 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3974 provided profiles. Now we have:
4001 provided profiles. Now we have:
3975 -math -> math module as * and cmath with its own namespace.
4002 -math -> math module as * and cmath with its own namespace.
3976 -numeric -> Numeric as *, plus gnuplot & grace
4003 -numeric -> Numeric as *, plus gnuplot & grace
3977 -physics -> same as before
4004 -physics -> same as before
3978
4005
3979 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4006 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3980 user-defined magics wouldn't be found by @magic if they were
4007 user-defined magics wouldn't be found by @magic if they were
3981 defined as class methods. Also cleaned up the namespace search
4008 defined as class methods. Also cleaned up the namespace search
3982 logic and the string building (to use %s instead of many repeated
4009 logic and the string building (to use %s instead of many repeated
3983 string adds).
4010 string adds).
3984
4011
3985 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4012 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3986 of user-defined magics to operate with class methods (cleaner, in
4013 of user-defined magics to operate with class methods (cleaner, in
3987 line with the gnuplot code).
4014 line with the gnuplot code).
3988
4015
3989 2002-04-22 Fernando Perez <fperez@colorado.edu>
4016 2002-04-22 Fernando Perez <fperez@colorado.edu>
3990
4017
3991 * setup.py: updated dependency list so that manual is updated when
4018 * setup.py: updated dependency list so that manual is updated when
3992 all included files change.
4019 all included files change.
3993
4020
3994 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4021 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3995 the delimiter removal option (the fix is ugly right now).
4022 the delimiter removal option (the fix is ugly right now).
3996
4023
3997 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4024 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3998 all of the math profile (quicker loading, no conflict between
4025 all of the math profile (quicker loading, no conflict between
3999 g-9.8 and g-gnuplot).
4026 g-9.8 and g-gnuplot).
4000
4027
4001 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4028 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4002 name of post-mortem files to IPython_crash_report.txt.
4029 name of post-mortem files to IPython_crash_report.txt.
4003
4030
4004 * Cleanup/update of the docs. Added all the new readline info and
4031 * Cleanup/update of the docs. Added all the new readline info and
4005 formatted all lists as 'real lists'.
4032 formatted all lists as 'real lists'.
4006
4033
4007 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4034 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4008 tab-completion options, since the full readline parse_and_bind is
4035 tab-completion options, since the full readline parse_and_bind is
4009 now accessible.
4036 now accessible.
4010
4037
4011 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4038 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4012 handling of readline options. Now users can specify any string to
4039 handling of readline options. Now users can specify any string to
4013 be passed to parse_and_bind(), as well as the delimiters to be
4040 be passed to parse_and_bind(), as well as the delimiters to be
4014 removed.
4041 removed.
4015 (InteractiveShell.__init__): Added __name__ to the global
4042 (InteractiveShell.__init__): Added __name__ to the global
4016 namespace so that things like Itpl which rely on its existence
4043 namespace so that things like Itpl which rely on its existence
4017 don't crash.
4044 don't crash.
4018 (InteractiveShell._prefilter): Defined the default with a _ so
4045 (InteractiveShell._prefilter): Defined the default with a _ so
4019 that prefilter() is easier to override, while the default one
4046 that prefilter() is easier to override, while the default one
4020 remains available.
4047 remains available.
4021
4048
4022 2002-04-18 Fernando Perez <fperez@colorado.edu>
4049 2002-04-18 Fernando Perez <fperez@colorado.edu>
4023
4050
4024 * Added information about pdb in the docs.
4051 * Added information about pdb in the docs.
4025
4052
4026 2002-04-17 Fernando Perez <fperez@colorado.edu>
4053 2002-04-17 Fernando Perez <fperez@colorado.edu>
4027
4054
4028 * IPython/ipmaker.py (make_IPython): added rc_override option to
4055 * IPython/ipmaker.py (make_IPython): added rc_override option to
4029 allow passing config options at creation time which may override
4056 allow passing config options at creation time which may override
4030 anything set in the config files or command line. This is
4057 anything set in the config files or command line. This is
4031 particularly useful for configuring embedded instances.
4058 particularly useful for configuring embedded instances.
4032
4059
4033 2002-04-15 Fernando Perez <fperez@colorado.edu>
4060 2002-04-15 Fernando Perez <fperez@colorado.edu>
4034
4061
4035 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4062 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4036 crash embedded instances because of the input cache falling out of
4063 crash embedded instances because of the input cache falling out of
4037 sync with the output counter.
4064 sync with the output counter.
4038
4065
4039 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4066 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4040 mode which calls pdb after an uncaught exception in IPython itself.
4067 mode which calls pdb after an uncaught exception in IPython itself.
4041
4068
4042 2002-04-14 Fernando Perez <fperez@colorado.edu>
4069 2002-04-14 Fernando Perez <fperez@colorado.edu>
4043
4070
4044 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4071 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4045 readline, fix it back after each call.
4072 readline, fix it back after each call.
4046
4073
4047 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4074 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4048 method to force all access via __call__(), which guarantees that
4075 method to force all access via __call__(), which guarantees that
4049 traceback references are properly deleted.
4076 traceback references are properly deleted.
4050
4077
4051 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4078 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4052 improve printing when pprint is in use.
4079 improve printing when pprint is in use.
4053
4080
4054 2002-04-13 Fernando Perez <fperez@colorado.edu>
4081 2002-04-13 Fernando Perez <fperez@colorado.edu>
4055
4082
4056 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4083 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4057 exceptions aren't caught anymore. If the user triggers one, he
4084 exceptions aren't caught anymore. If the user triggers one, he
4058 should know why he's doing it and it should go all the way up,
4085 should know why he's doing it and it should go all the way up,
4059 just like any other exception. So now @abort will fully kill the
4086 just like any other exception. So now @abort will fully kill the
4060 embedded interpreter and the embedding code (unless that happens
4087 embedded interpreter and the embedding code (unless that happens
4061 to catch SystemExit).
4088 to catch SystemExit).
4062
4089
4063 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4090 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4064 and a debugger() method to invoke the interactive pdb debugger
4091 and a debugger() method to invoke the interactive pdb debugger
4065 after printing exception information. Also added the corresponding
4092 after printing exception information. Also added the corresponding
4066 -pdb option and @pdb magic to control this feature, and updated
4093 -pdb option and @pdb magic to control this feature, and updated
4067 the docs. After a suggestion from Christopher Hart
4094 the docs. After a suggestion from Christopher Hart
4068 (hart-AT-caltech.edu).
4095 (hart-AT-caltech.edu).
4069
4096
4070 2002-04-12 Fernando Perez <fperez@colorado.edu>
4097 2002-04-12 Fernando Perez <fperez@colorado.edu>
4071
4098
4072 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4099 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4073 the exception handlers defined by the user (not the CrashHandler)
4100 the exception handlers defined by the user (not the CrashHandler)
4074 so that user exceptions don't trigger an ipython bug report.
4101 so that user exceptions don't trigger an ipython bug report.
4075
4102
4076 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4103 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4077 configurable (it should have always been so).
4104 configurable (it should have always been so).
4078
4105
4079 2002-03-26 Fernando Perez <fperez@colorado.edu>
4106 2002-03-26 Fernando Perez <fperez@colorado.edu>
4080
4107
4081 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4108 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4082 and there to fix embedding namespace issues. This should all be
4109 and there to fix embedding namespace issues. This should all be
4083 done in a more elegant way.
4110 done in a more elegant way.
4084
4111
4085 2002-03-25 Fernando Perez <fperez@colorado.edu>
4112 2002-03-25 Fernando Perez <fperez@colorado.edu>
4086
4113
4087 * IPython/genutils.py (get_home_dir): Try to make it work under
4114 * IPython/genutils.py (get_home_dir): Try to make it work under
4088 win9x also.
4115 win9x also.
4089
4116
4090 2002-03-20 Fernando Perez <fperez@colorado.edu>
4117 2002-03-20 Fernando Perez <fperez@colorado.edu>
4091
4118
4092 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4119 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4093 sys.displayhook untouched upon __init__.
4120 sys.displayhook untouched upon __init__.
4094
4121
4095 2002-03-19 Fernando Perez <fperez@colorado.edu>
4122 2002-03-19 Fernando Perez <fperez@colorado.edu>
4096
4123
4097 * Released 0.2.9 (for embedding bug, basically).
4124 * Released 0.2.9 (for embedding bug, basically).
4098
4125
4099 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4126 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4100 exceptions so that enclosing shell's state can be restored.
4127 exceptions so that enclosing shell's state can be restored.
4101
4128
4102 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4129 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4103 naming conventions in the .ipython/ dir.
4130 naming conventions in the .ipython/ dir.
4104
4131
4105 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4132 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4106 from delimiters list so filenames with - in them get expanded.
4133 from delimiters list so filenames with - in them get expanded.
4107
4134
4108 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4135 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4109 sys.displayhook not being properly restored after an embedded call.
4136 sys.displayhook not being properly restored after an embedded call.
4110
4137
4111 2002-03-18 Fernando Perez <fperez@colorado.edu>
4138 2002-03-18 Fernando Perez <fperez@colorado.edu>
4112
4139
4113 * Released 0.2.8
4140 * Released 0.2.8
4114
4141
4115 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4142 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4116 some files weren't being included in a -upgrade.
4143 some files weren't being included in a -upgrade.
4117 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4144 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4118 on' so that the first tab completes.
4145 on' so that the first tab completes.
4119 (InteractiveShell.handle_magic): fixed bug with spaces around
4146 (InteractiveShell.handle_magic): fixed bug with spaces around
4120 quotes breaking many magic commands.
4147 quotes breaking many magic commands.
4121
4148
4122 * setup.py: added note about ignoring the syntax error messages at
4149 * setup.py: added note about ignoring the syntax error messages at
4123 installation.
4150 installation.
4124
4151
4125 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4152 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4126 streamlining the gnuplot interface, now there's only one magic @gp.
4153 streamlining the gnuplot interface, now there's only one magic @gp.
4127
4154
4128 2002-03-17 Fernando Perez <fperez@colorado.edu>
4155 2002-03-17 Fernando Perez <fperez@colorado.edu>
4129
4156
4130 * IPython/UserConfig/magic_gnuplot.py: new name for the
4157 * IPython/UserConfig/magic_gnuplot.py: new name for the
4131 example-magic_pm.py file. Much enhanced system, now with a shell
4158 example-magic_pm.py file. Much enhanced system, now with a shell
4132 for communicating directly with gnuplot, one command at a time.
4159 for communicating directly with gnuplot, one command at a time.
4133
4160
4134 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4161 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4135 setting __name__=='__main__'.
4162 setting __name__=='__main__'.
4136
4163
4137 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4164 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4138 mini-shell for accessing gnuplot from inside ipython. Should
4165 mini-shell for accessing gnuplot from inside ipython. Should
4139 extend it later for grace access too. Inspired by Arnd's
4166 extend it later for grace access too. Inspired by Arnd's
4140 suggestion.
4167 suggestion.
4141
4168
4142 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4169 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4143 calling magic functions with () in their arguments. Thanks to Arnd
4170 calling magic functions with () in their arguments. Thanks to Arnd
4144 Baecker for pointing this to me.
4171 Baecker for pointing this to me.
4145
4172
4146 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4173 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4147 infinitely for integer or complex arrays (only worked with floats).
4174 infinitely for integer or complex arrays (only worked with floats).
4148
4175
4149 2002-03-16 Fernando Perez <fperez@colorado.edu>
4176 2002-03-16 Fernando Perez <fperez@colorado.edu>
4150
4177
4151 * setup.py: Merged setup and setup_windows into a single script
4178 * setup.py: Merged setup and setup_windows into a single script
4152 which properly handles things for windows users.
4179 which properly handles things for windows users.
4153
4180
4154 2002-03-15 Fernando Perez <fperez@colorado.edu>
4181 2002-03-15 Fernando Perez <fperez@colorado.edu>
4155
4182
4156 * Big change to the manual: now the magics are all automatically
4183 * Big change to the manual: now the magics are all automatically
4157 documented. This information is generated from their docstrings
4184 documented. This information is generated from their docstrings
4158 and put in a latex file included by the manual lyx file. This way
4185 and put in a latex file included by the manual lyx file. This way
4159 we get always up to date information for the magics. The manual
4186 we get always up to date information for the magics. The manual
4160 now also has proper version information, also auto-synced.
4187 now also has proper version information, also auto-synced.
4161
4188
4162 For this to work, an undocumented --magic_docstrings option was added.
4189 For this to work, an undocumented --magic_docstrings option was added.
4163
4190
4164 2002-03-13 Fernando Perez <fperez@colorado.edu>
4191 2002-03-13 Fernando Perez <fperez@colorado.edu>
4165
4192
4166 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4193 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4167 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4194 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4168
4195
4169 2002-03-12 Fernando Perez <fperez@colorado.edu>
4196 2002-03-12 Fernando Perez <fperez@colorado.edu>
4170
4197
4171 * IPython/ultraTB.py (TermColors): changed color escapes again to
4198 * IPython/ultraTB.py (TermColors): changed color escapes again to
4172 fix the (old, reintroduced) line-wrapping bug. Basically, if
4199 fix the (old, reintroduced) line-wrapping bug. Basically, if
4173 \001..\002 aren't given in the color escapes, lines get wrapped
4200 \001..\002 aren't given in the color escapes, lines get wrapped
4174 weirdly. But giving those screws up old xterms and emacs terms. So
4201 weirdly. But giving those screws up old xterms and emacs terms. So
4175 I added some logic for emacs terms to be ok, but I can't identify old
4202 I added some logic for emacs terms to be ok, but I can't identify old
4176 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4203 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4177
4204
4178 2002-03-10 Fernando Perez <fperez@colorado.edu>
4205 2002-03-10 Fernando Perez <fperez@colorado.edu>
4179
4206
4180 * IPython/usage.py (__doc__): Various documentation cleanups and
4207 * IPython/usage.py (__doc__): Various documentation cleanups and
4181 updates, both in usage docstrings and in the manual.
4208 updates, both in usage docstrings and in the manual.
4182
4209
4183 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4210 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4184 handling of caching. Set minimum acceptabe value for having a
4211 handling of caching. Set minimum acceptabe value for having a
4185 cache at 20 values.
4212 cache at 20 values.
4186
4213
4187 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4214 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4188 install_first_time function to a method, renamed it and added an
4215 install_first_time function to a method, renamed it and added an
4189 'upgrade' mode. Now people can update their config directory with
4216 'upgrade' mode. Now people can update their config directory with
4190 a simple command line switch (-upgrade, also new).
4217 a simple command line switch (-upgrade, also new).
4191
4218
4192 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4219 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4193 @file (convenient for automagic users under Python >= 2.2).
4220 @file (convenient for automagic users under Python >= 2.2).
4194 Removed @files (it seemed more like a plural than an abbrev. of
4221 Removed @files (it seemed more like a plural than an abbrev. of
4195 'file show').
4222 'file show').
4196
4223
4197 * IPython/iplib.py (install_first_time): Fixed crash if there were
4224 * IPython/iplib.py (install_first_time): Fixed crash if there were
4198 backup files ('~') in .ipython/ install directory.
4225 backup files ('~') in .ipython/ install directory.
4199
4226
4200 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4227 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4201 system. Things look fine, but these changes are fairly
4228 system. Things look fine, but these changes are fairly
4202 intrusive. Test them for a few days.
4229 intrusive. Test them for a few days.
4203
4230
4204 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4231 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4205 the prompts system. Now all in/out prompt strings are user
4232 the prompts system. Now all in/out prompt strings are user
4206 controllable. This is particularly useful for embedding, as one
4233 controllable. This is particularly useful for embedding, as one
4207 can tag embedded instances with particular prompts.
4234 can tag embedded instances with particular prompts.
4208
4235
4209 Also removed global use of sys.ps1/2, which now allows nested
4236 Also removed global use of sys.ps1/2, which now allows nested
4210 embeddings without any problems. Added command-line options for
4237 embeddings without any problems. Added command-line options for
4211 the prompt strings.
4238 the prompt strings.
4212
4239
4213 2002-03-08 Fernando Perez <fperez@colorado.edu>
4240 2002-03-08 Fernando Perez <fperez@colorado.edu>
4214
4241
4215 * IPython/UserConfig/example-embed-short.py (ipshell): added
4242 * IPython/UserConfig/example-embed-short.py (ipshell): added
4216 example file with the bare minimum code for embedding.
4243 example file with the bare minimum code for embedding.
4217
4244
4218 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4245 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4219 functionality for the embeddable shell to be activated/deactivated
4246 functionality for the embeddable shell to be activated/deactivated
4220 either globally or at each call.
4247 either globally or at each call.
4221
4248
4222 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4249 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4223 rewriting the prompt with '--->' for auto-inputs with proper
4250 rewriting the prompt with '--->' for auto-inputs with proper
4224 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4251 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4225 this is handled by the prompts class itself, as it should.
4252 this is handled by the prompts class itself, as it should.
4226
4253
4227 2002-03-05 Fernando Perez <fperez@colorado.edu>
4254 2002-03-05 Fernando Perez <fperez@colorado.edu>
4228
4255
4229 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4256 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4230 @logstart to avoid name clashes with the math log function.
4257 @logstart to avoid name clashes with the math log function.
4231
4258
4232 * Big updates to X/Emacs section of the manual.
4259 * Big updates to X/Emacs section of the manual.
4233
4260
4234 * Removed ipython_emacs. Milan explained to me how to pass
4261 * Removed ipython_emacs. Milan explained to me how to pass
4235 arguments to ipython through Emacs. Some day I'm going to end up
4262 arguments to ipython through Emacs. Some day I'm going to end up
4236 learning some lisp...
4263 learning some lisp...
4237
4264
4238 2002-03-04 Fernando Perez <fperez@colorado.edu>
4265 2002-03-04 Fernando Perez <fperez@colorado.edu>
4239
4266
4240 * IPython/ipython_emacs: Created script to be used as the
4267 * IPython/ipython_emacs: Created script to be used as the
4241 py-python-command Emacs variable so we can pass IPython
4268 py-python-command Emacs variable so we can pass IPython
4242 parameters. I can't figure out how to tell Emacs directly to pass
4269 parameters. I can't figure out how to tell Emacs directly to pass
4243 parameters to IPython, so a dummy shell script will do it.
4270 parameters to IPython, so a dummy shell script will do it.
4244
4271
4245 Other enhancements made for things to work better under Emacs'
4272 Other enhancements made for things to work better under Emacs'
4246 various types of terminals. Many thanks to Milan Zamazal
4273 various types of terminals. Many thanks to Milan Zamazal
4247 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4274 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4248
4275
4249 2002-03-01 Fernando Perez <fperez@colorado.edu>
4276 2002-03-01 Fernando Perez <fperez@colorado.edu>
4250
4277
4251 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4278 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4252 that loading of readline is now optional. This gives better
4279 that loading of readline is now optional. This gives better
4253 control to emacs users.
4280 control to emacs users.
4254
4281
4255 * IPython/ultraTB.py (__date__): Modified color escape sequences
4282 * IPython/ultraTB.py (__date__): Modified color escape sequences
4256 and now things work fine under xterm and in Emacs' term buffers
4283 and now things work fine under xterm and in Emacs' term buffers
4257 (though not shell ones). Well, in emacs you get colors, but all
4284 (though not shell ones). Well, in emacs you get colors, but all
4258 seem to be 'light' colors (no difference between dark and light
4285 seem to be 'light' colors (no difference between dark and light
4259 ones). But the garbage chars are gone, and also in xterms. It
4286 ones). But the garbage chars are gone, and also in xterms. It
4260 seems that now I'm using 'cleaner' ansi sequences.
4287 seems that now I'm using 'cleaner' ansi sequences.
4261
4288
4262 2002-02-21 Fernando Perez <fperez@colorado.edu>
4289 2002-02-21 Fernando Perez <fperez@colorado.edu>
4263
4290
4264 * Released 0.2.7 (mainly to publish the scoping fix).
4291 * Released 0.2.7 (mainly to publish the scoping fix).
4265
4292
4266 * IPython/Logger.py (Logger.logstate): added. A corresponding
4293 * IPython/Logger.py (Logger.logstate): added. A corresponding
4267 @logstate magic was created.
4294 @logstate magic was created.
4268
4295
4269 * IPython/Magic.py: fixed nested scoping problem under Python
4296 * IPython/Magic.py: fixed nested scoping problem under Python
4270 2.1.x (automagic wasn't working).
4297 2.1.x (automagic wasn't working).
4271
4298
4272 2002-02-20 Fernando Perez <fperez@colorado.edu>
4299 2002-02-20 Fernando Perez <fperez@colorado.edu>
4273
4300
4274 * Released 0.2.6.
4301 * Released 0.2.6.
4275
4302
4276 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4303 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4277 option so that logs can come out without any headers at all.
4304 option so that logs can come out without any headers at all.
4278
4305
4279 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4306 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4280 SciPy.
4307 SciPy.
4281
4308
4282 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4309 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4283 that embedded IPython calls don't require vars() to be explicitly
4310 that embedded IPython calls don't require vars() to be explicitly
4284 passed. Now they are extracted from the caller's frame (code
4311 passed. Now they are extracted from the caller's frame (code
4285 snatched from Eric Jones' weave). Added better documentation to
4312 snatched from Eric Jones' weave). Added better documentation to
4286 the section on embedding and the example file.
4313 the section on embedding and the example file.
4287
4314
4288 * IPython/genutils.py (page): Changed so that under emacs, it just
4315 * IPython/genutils.py (page): Changed so that under emacs, it just
4289 prints the string. You can then page up and down in the emacs
4316 prints the string. You can then page up and down in the emacs
4290 buffer itself. This is how the builtin help() works.
4317 buffer itself. This is how the builtin help() works.
4291
4318
4292 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4319 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4293 macro scoping: macros need to be executed in the user's namespace
4320 macro scoping: macros need to be executed in the user's namespace
4294 to work as if they had been typed by the user.
4321 to work as if they had been typed by the user.
4295
4322
4296 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4323 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4297 execute automatically (no need to type 'exec...'). They then
4324 execute automatically (no need to type 'exec...'). They then
4298 behave like 'true macros'. The printing system was also modified
4325 behave like 'true macros'. The printing system was also modified
4299 for this to work.
4326 for this to work.
4300
4327
4301 2002-02-19 Fernando Perez <fperez@colorado.edu>
4328 2002-02-19 Fernando Perez <fperez@colorado.edu>
4302
4329
4303 * IPython/genutils.py (page_file): new function for paging files
4330 * IPython/genutils.py (page_file): new function for paging files
4304 in an OS-independent way. Also necessary for file viewing to work
4331 in an OS-independent way. Also necessary for file viewing to work
4305 well inside Emacs buffers.
4332 well inside Emacs buffers.
4306 (page): Added checks for being in an emacs buffer.
4333 (page): Added checks for being in an emacs buffer.
4307 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4334 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4308 same bug in iplib.
4335 same bug in iplib.
4309
4336
4310 2002-02-18 Fernando Perez <fperez@colorado.edu>
4337 2002-02-18 Fernando Perez <fperez@colorado.edu>
4311
4338
4312 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4339 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4313 of readline so that IPython can work inside an Emacs buffer.
4340 of readline so that IPython can work inside an Emacs buffer.
4314
4341
4315 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4342 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4316 method signatures (they weren't really bugs, but it looks cleaner
4343 method signatures (they weren't really bugs, but it looks cleaner
4317 and keeps PyChecker happy).
4344 and keeps PyChecker happy).
4318
4345
4319 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4346 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4320 for implementing various user-defined hooks. Currently only
4347 for implementing various user-defined hooks. Currently only
4321 display is done.
4348 display is done.
4322
4349
4323 * IPython/Prompts.py (CachedOutput._display): changed display
4350 * IPython/Prompts.py (CachedOutput._display): changed display
4324 functions so that they can be dynamically changed by users easily.
4351 functions so that they can be dynamically changed by users easily.
4325
4352
4326 * IPython/Extensions/numeric_formats.py (num_display): added an
4353 * IPython/Extensions/numeric_formats.py (num_display): added an
4327 extension for printing NumPy arrays in flexible manners. It
4354 extension for printing NumPy arrays in flexible manners. It
4328 doesn't do anything yet, but all the structure is in
4355 doesn't do anything yet, but all the structure is in
4329 place. Ultimately the plan is to implement output format control
4356 place. Ultimately the plan is to implement output format control
4330 like in Octave.
4357 like in Octave.
4331
4358
4332 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4359 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4333 methods are found at run-time by all the automatic machinery.
4360 methods are found at run-time by all the automatic machinery.
4334
4361
4335 2002-02-17 Fernando Perez <fperez@colorado.edu>
4362 2002-02-17 Fernando Perez <fperez@colorado.edu>
4336
4363
4337 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4364 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4338 whole file a little.
4365 whole file a little.
4339
4366
4340 * ToDo: closed this document. Now there's a new_design.lyx
4367 * ToDo: closed this document. Now there's a new_design.lyx
4341 document for all new ideas. Added making a pdf of it for the
4368 document for all new ideas. Added making a pdf of it for the
4342 end-user distro.
4369 end-user distro.
4343
4370
4344 * IPython/Logger.py (Logger.switch_log): Created this to replace
4371 * IPython/Logger.py (Logger.switch_log): Created this to replace
4345 logon() and logoff(). It also fixes a nasty crash reported by
4372 logon() and logoff(). It also fixes a nasty crash reported by
4346 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4373 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4347
4374
4348 * IPython/iplib.py (complete): got auto-completion to work with
4375 * IPython/iplib.py (complete): got auto-completion to work with
4349 automagic (I had wanted this for a long time).
4376 automagic (I had wanted this for a long time).
4350
4377
4351 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4378 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4352 to @file, since file() is now a builtin and clashes with automagic
4379 to @file, since file() is now a builtin and clashes with automagic
4353 for @file.
4380 for @file.
4354
4381
4355 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4382 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4356 of this was previously in iplib, which had grown to more than 2000
4383 of this was previously in iplib, which had grown to more than 2000
4357 lines, way too long. No new functionality, but it makes managing
4384 lines, way too long. No new functionality, but it makes managing
4358 the code a bit easier.
4385 the code a bit easier.
4359
4386
4360 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4387 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4361 information to crash reports.
4388 information to crash reports.
4362
4389
4363 2002-02-12 Fernando Perez <fperez@colorado.edu>
4390 2002-02-12 Fernando Perez <fperez@colorado.edu>
4364
4391
4365 * Released 0.2.5.
4392 * Released 0.2.5.
4366
4393
4367 2002-02-11 Fernando Perez <fperez@colorado.edu>
4394 2002-02-11 Fernando Perez <fperez@colorado.edu>
4368
4395
4369 * Wrote a relatively complete Windows installer. It puts
4396 * Wrote a relatively complete Windows installer. It puts
4370 everything in place, creates Start Menu entries and fixes the
4397 everything in place, creates Start Menu entries and fixes the
4371 color issues. Nothing fancy, but it works.
4398 color issues. Nothing fancy, but it works.
4372
4399
4373 2002-02-10 Fernando Perez <fperez@colorado.edu>
4400 2002-02-10 Fernando Perez <fperez@colorado.edu>
4374
4401
4375 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4402 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4376 os.path.expanduser() call so that we can type @run ~/myfile.py and
4403 os.path.expanduser() call so that we can type @run ~/myfile.py and
4377 have thigs work as expected.
4404 have thigs work as expected.
4378
4405
4379 * IPython/genutils.py (page): fixed exception handling so things
4406 * IPython/genutils.py (page): fixed exception handling so things
4380 work both in Unix and Windows correctly. Quitting a pager triggers
4407 work both in Unix and Windows correctly. Quitting a pager triggers
4381 an IOError/broken pipe in Unix, and in windows not finding a pager
4408 an IOError/broken pipe in Unix, and in windows not finding a pager
4382 is also an IOError, so I had to actually look at the return value
4409 is also an IOError, so I had to actually look at the return value
4383 of the exception, not just the exception itself. Should be ok now.
4410 of the exception, not just the exception itself. Should be ok now.
4384
4411
4385 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4412 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4386 modified to allow case-insensitive color scheme changes.
4413 modified to allow case-insensitive color scheme changes.
4387
4414
4388 2002-02-09 Fernando Perez <fperez@colorado.edu>
4415 2002-02-09 Fernando Perez <fperez@colorado.edu>
4389
4416
4390 * IPython/genutils.py (native_line_ends): new function to leave
4417 * IPython/genutils.py (native_line_ends): new function to leave
4391 user config files with os-native line-endings.
4418 user config files with os-native line-endings.
4392
4419
4393 * README and manual updates.
4420 * README and manual updates.
4394
4421
4395 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4422 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4396 instead of StringType to catch Unicode strings.
4423 instead of StringType to catch Unicode strings.
4397
4424
4398 * IPython/genutils.py (filefind): fixed bug for paths with
4425 * IPython/genutils.py (filefind): fixed bug for paths with
4399 embedded spaces (very common in Windows).
4426 embedded spaces (very common in Windows).
4400
4427
4401 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4428 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4402 files under Windows, so that they get automatically associated
4429 files under Windows, so that they get automatically associated
4403 with a text editor. Windows makes it a pain to handle
4430 with a text editor. Windows makes it a pain to handle
4404 extension-less files.
4431 extension-less files.
4405
4432
4406 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4433 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4407 warning about readline only occur for Posix. In Windows there's no
4434 warning about readline only occur for Posix. In Windows there's no
4408 way to get readline, so why bother with the warning.
4435 way to get readline, so why bother with the warning.
4409
4436
4410 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4437 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4411 for __str__ instead of dir(self), since dir() changed in 2.2.
4438 for __str__ instead of dir(self), since dir() changed in 2.2.
4412
4439
4413 * Ported to Windows! Tested on XP, I suspect it should work fine
4440 * Ported to Windows! Tested on XP, I suspect it should work fine
4414 on NT/2000, but I don't think it will work on 98 et al. That
4441 on NT/2000, but I don't think it will work on 98 et al. That
4415 series of Windows is such a piece of junk anyway that I won't try
4442 series of Windows is such a piece of junk anyway that I won't try
4416 porting it there. The XP port was straightforward, showed a few
4443 porting it there. The XP port was straightforward, showed a few
4417 bugs here and there (fixed all), in particular some string
4444 bugs here and there (fixed all), in particular some string
4418 handling stuff which required considering Unicode strings (which
4445 handling stuff which required considering Unicode strings (which
4419 Windows uses). This is good, but hasn't been too tested :) No
4446 Windows uses). This is good, but hasn't been too tested :) No
4420 fancy installer yet, I'll put a note in the manual so people at
4447 fancy installer yet, I'll put a note in the manual so people at
4421 least make manually a shortcut.
4448 least make manually a shortcut.
4422
4449
4423 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4450 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4424 into a single one, "colors". This now controls both prompt and
4451 into a single one, "colors". This now controls both prompt and
4425 exception color schemes, and can be changed both at startup
4452 exception color schemes, and can be changed both at startup
4426 (either via command-line switches or via ipythonrc files) and at
4453 (either via command-line switches or via ipythonrc files) and at
4427 runtime, with @colors.
4454 runtime, with @colors.
4428 (Magic.magic_run): renamed @prun to @run and removed the old
4455 (Magic.magic_run): renamed @prun to @run and removed the old
4429 @run. The two were too similar to warrant keeping both.
4456 @run. The two were too similar to warrant keeping both.
4430
4457
4431 2002-02-03 Fernando Perez <fperez@colorado.edu>
4458 2002-02-03 Fernando Perez <fperez@colorado.edu>
4432
4459
4433 * IPython/iplib.py (install_first_time): Added comment on how to
4460 * IPython/iplib.py (install_first_time): Added comment on how to
4434 configure the color options for first-time users. Put a <return>
4461 configure the color options for first-time users. Put a <return>
4435 request at the end so that small-terminal users get a chance to
4462 request at the end so that small-terminal users get a chance to
4436 read the startup info.
4463 read the startup info.
4437
4464
4438 2002-01-23 Fernando Perez <fperez@colorado.edu>
4465 2002-01-23 Fernando Perez <fperez@colorado.edu>
4439
4466
4440 * IPython/iplib.py (CachedOutput.update): Changed output memory
4467 * IPython/iplib.py (CachedOutput.update): Changed output memory
4441 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4468 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4442 input history we still use _i. Did this b/c these variable are
4469 input history we still use _i. Did this b/c these variable are
4443 very commonly used in interactive work, so the less we need to
4470 very commonly used in interactive work, so the less we need to
4444 type the better off we are.
4471 type the better off we are.
4445 (Magic.magic_prun): updated @prun to better handle the namespaces
4472 (Magic.magic_prun): updated @prun to better handle the namespaces
4446 the file will run in, including a fix for __name__ not being set
4473 the file will run in, including a fix for __name__ not being set
4447 before.
4474 before.
4448
4475
4449 2002-01-20 Fernando Perez <fperez@colorado.edu>
4476 2002-01-20 Fernando Perez <fperez@colorado.edu>
4450
4477
4451 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4478 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4452 extra garbage for Python 2.2. Need to look more carefully into
4479 extra garbage for Python 2.2. Need to look more carefully into
4453 this later.
4480 this later.
4454
4481
4455 2002-01-19 Fernando Perez <fperez@colorado.edu>
4482 2002-01-19 Fernando Perez <fperez@colorado.edu>
4456
4483
4457 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4484 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4458 display SyntaxError exceptions properly formatted when they occur
4485 display SyntaxError exceptions properly formatted when they occur
4459 (they can be triggered by imported code).
4486 (they can be triggered by imported code).
4460
4487
4461 2002-01-18 Fernando Perez <fperez@colorado.edu>
4488 2002-01-18 Fernando Perez <fperez@colorado.edu>
4462
4489
4463 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4490 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4464 SyntaxError exceptions are reported nicely formatted, instead of
4491 SyntaxError exceptions are reported nicely formatted, instead of
4465 spitting out only offset information as before.
4492 spitting out only offset information as before.
4466 (Magic.magic_prun): Added the @prun function for executing
4493 (Magic.magic_prun): Added the @prun function for executing
4467 programs with command line args inside IPython.
4494 programs with command line args inside IPython.
4468
4495
4469 2002-01-16 Fernando Perez <fperez@colorado.edu>
4496 2002-01-16 Fernando Perez <fperez@colorado.edu>
4470
4497
4471 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4498 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4472 to *not* include the last item given in a range. This brings their
4499 to *not* include the last item given in a range. This brings their
4473 behavior in line with Python's slicing:
4500 behavior in line with Python's slicing:
4474 a[n1:n2] -> a[n1]...a[n2-1]
4501 a[n1:n2] -> a[n1]...a[n2-1]
4475 It may be a bit less convenient, but I prefer to stick to Python's
4502 It may be a bit less convenient, but I prefer to stick to Python's
4476 conventions *everywhere*, so users never have to wonder.
4503 conventions *everywhere*, so users never have to wonder.
4477 (Magic.magic_macro): Added @macro function to ease the creation of
4504 (Magic.magic_macro): Added @macro function to ease the creation of
4478 macros.
4505 macros.
4479
4506
4480 2002-01-05 Fernando Perez <fperez@colorado.edu>
4507 2002-01-05 Fernando Perez <fperez@colorado.edu>
4481
4508
4482 * Released 0.2.4.
4509 * Released 0.2.4.
4483
4510
4484 * IPython/iplib.py (Magic.magic_pdef):
4511 * IPython/iplib.py (Magic.magic_pdef):
4485 (InteractiveShell.safe_execfile): report magic lines and error
4512 (InteractiveShell.safe_execfile): report magic lines and error
4486 lines without line numbers so one can easily copy/paste them for
4513 lines without line numbers so one can easily copy/paste them for
4487 re-execution.
4514 re-execution.
4488
4515
4489 * Updated manual with recent changes.
4516 * Updated manual with recent changes.
4490
4517
4491 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4518 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4492 docstring printing when class? is called. Very handy for knowing
4519 docstring printing when class? is called. Very handy for knowing
4493 how to create class instances (as long as __init__ is well
4520 how to create class instances (as long as __init__ is well
4494 documented, of course :)
4521 documented, of course :)
4495 (Magic.magic_doc): print both class and constructor docstrings.
4522 (Magic.magic_doc): print both class and constructor docstrings.
4496 (Magic.magic_pdef): give constructor info if passed a class and
4523 (Magic.magic_pdef): give constructor info if passed a class and
4497 __call__ info for callable object instances.
4524 __call__ info for callable object instances.
4498
4525
4499 2002-01-04 Fernando Perez <fperez@colorado.edu>
4526 2002-01-04 Fernando Perez <fperez@colorado.edu>
4500
4527
4501 * Made deep_reload() off by default. It doesn't always work
4528 * Made deep_reload() off by default. It doesn't always work
4502 exactly as intended, so it's probably safer to have it off. It's
4529 exactly as intended, so it's probably safer to have it off. It's
4503 still available as dreload() anyway, so nothing is lost.
4530 still available as dreload() anyway, so nothing is lost.
4504
4531
4505 2002-01-02 Fernando Perez <fperez@colorado.edu>
4532 2002-01-02 Fernando Perez <fperez@colorado.edu>
4506
4533
4507 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4534 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4508 so I wanted an updated release).
4535 so I wanted an updated release).
4509
4536
4510 2001-12-27 Fernando Perez <fperez@colorado.edu>
4537 2001-12-27 Fernando Perez <fperez@colorado.edu>
4511
4538
4512 * IPython/iplib.py (InteractiveShell.interact): Added the original
4539 * IPython/iplib.py (InteractiveShell.interact): Added the original
4513 code from 'code.py' for this module in order to change the
4540 code from 'code.py' for this module in order to change the
4514 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4541 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4515 the history cache would break when the user hit Ctrl-C, and
4542 the history cache would break when the user hit Ctrl-C, and
4516 interact() offers no way to add any hooks to it.
4543 interact() offers no way to add any hooks to it.
4517
4544
4518 2001-12-23 Fernando Perez <fperez@colorado.edu>
4545 2001-12-23 Fernando Perez <fperez@colorado.edu>
4519
4546
4520 * setup.py: added check for 'MANIFEST' before trying to remove
4547 * setup.py: added check for 'MANIFEST' before trying to remove
4521 it. Thanks to Sean Reifschneider.
4548 it. Thanks to Sean Reifschneider.
4522
4549
4523 2001-12-22 Fernando Perez <fperez@colorado.edu>
4550 2001-12-22 Fernando Perez <fperez@colorado.edu>
4524
4551
4525 * Released 0.2.2.
4552 * Released 0.2.2.
4526
4553
4527 * Finished (reasonably) writing the manual. Later will add the
4554 * Finished (reasonably) writing the manual. Later will add the
4528 python-standard navigation stylesheets, but for the time being
4555 python-standard navigation stylesheets, but for the time being
4529 it's fairly complete. Distribution will include html and pdf
4556 it's fairly complete. Distribution will include html and pdf
4530 versions.
4557 versions.
4531
4558
4532 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4559 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4533 (MayaVi author).
4560 (MayaVi author).
4534
4561
4535 2001-12-21 Fernando Perez <fperez@colorado.edu>
4562 2001-12-21 Fernando Perez <fperez@colorado.edu>
4536
4563
4537 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4564 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4538 good public release, I think (with the manual and the distutils
4565 good public release, I think (with the manual and the distutils
4539 installer). The manual can use some work, but that can go
4566 installer). The manual can use some work, but that can go
4540 slowly. Otherwise I think it's quite nice for end users. Next
4567 slowly. Otherwise I think it's quite nice for end users. Next
4541 summer, rewrite the guts of it...
4568 summer, rewrite the guts of it...
4542
4569
4543 * Changed format of ipythonrc files to use whitespace as the
4570 * Changed format of ipythonrc files to use whitespace as the
4544 separator instead of an explicit '='. Cleaner.
4571 separator instead of an explicit '='. Cleaner.
4545
4572
4546 2001-12-20 Fernando Perez <fperez@colorado.edu>
4573 2001-12-20 Fernando Perez <fperez@colorado.edu>
4547
4574
4548 * Started a manual in LyX. For now it's just a quick merge of the
4575 * Started a manual in LyX. For now it's just a quick merge of the
4549 various internal docstrings and READMEs. Later it may grow into a
4576 various internal docstrings and READMEs. Later it may grow into a
4550 nice, full-blown manual.
4577 nice, full-blown manual.
4551
4578
4552 * Set up a distutils based installer. Installation should now be
4579 * Set up a distutils based installer. Installation should now be
4553 trivially simple for end-users.
4580 trivially simple for end-users.
4554
4581
4555 2001-12-11 Fernando Perez <fperez@colorado.edu>
4582 2001-12-11 Fernando Perez <fperez@colorado.edu>
4556
4583
4557 * Released 0.2.0. First public release, announced it at
4584 * Released 0.2.0. First public release, announced it at
4558 comp.lang.python. From now on, just bugfixes...
4585 comp.lang.python. From now on, just bugfixes...
4559
4586
4560 * Went through all the files, set copyright/license notices and
4587 * Went through all the files, set copyright/license notices and
4561 cleaned up things. Ready for release.
4588 cleaned up things. Ready for release.
4562
4589
4563 2001-12-10 Fernando Perez <fperez@colorado.edu>
4590 2001-12-10 Fernando Perez <fperez@colorado.edu>
4564
4591
4565 * Changed the first-time installer not to use tarfiles. It's more
4592 * Changed the first-time installer not to use tarfiles. It's more
4566 robust now and less unix-dependent. Also makes it easier for
4593 robust now and less unix-dependent. Also makes it easier for
4567 people to later upgrade versions.
4594 people to later upgrade versions.
4568
4595
4569 * Changed @exit to @abort to reflect the fact that it's pretty
4596 * Changed @exit to @abort to reflect the fact that it's pretty
4570 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4597 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4571 becomes significant only when IPyhton is embedded: in that case,
4598 becomes significant only when IPyhton is embedded: in that case,
4572 C-D closes IPython only, but @abort kills the enclosing program
4599 C-D closes IPython only, but @abort kills the enclosing program
4573 too (unless it had called IPython inside a try catching
4600 too (unless it had called IPython inside a try catching
4574 SystemExit).
4601 SystemExit).
4575
4602
4576 * Created Shell module which exposes the actuall IPython Shell
4603 * Created Shell module which exposes the actuall IPython Shell
4577 classes, currently the normal and the embeddable one. This at
4604 classes, currently the normal and the embeddable one. This at
4578 least offers a stable interface we won't need to change when
4605 least offers a stable interface we won't need to change when
4579 (later) the internals are rewritten. That rewrite will be confined
4606 (later) the internals are rewritten. That rewrite will be confined
4580 to iplib and ipmaker, but the Shell interface should remain as is.
4607 to iplib and ipmaker, but the Shell interface should remain as is.
4581
4608
4582 * Added embed module which offers an embeddable IPShell object,
4609 * Added embed module which offers an embeddable IPShell object,
4583 useful to fire up IPython *inside* a running program. Great for
4610 useful to fire up IPython *inside* a running program. Great for
4584 debugging or dynamical data analysis.
4611 debugging or dynamical data analysis.
4585
4612
4586 2001-12-08 Fernando Perez <fperez@colorado.edu>
4613 2001-12-08 Fernando Perez <fperez@colorado.edu>
4587
4614
4588 * Fixed small bug preventing seeing info from methods of defined
4615 * Fixed small bug preventing seeing info from methods of defined
4589 objects (incorrect namespace in _ofind()).
4616 objects (incorrect namespace in _ofind()).
4590
4617
4591 * Documentation cleanup. Moved the main usage docstrings to a
4618 * Documentation cleanup. Moved the main usage docstrings to a
4592 separate file, usage.py (cleaner to maintain, and hopefully in the
4619 separate file, usage.py (cleaner to maintain, and hopefully in the
4593 future some perlpod-like way of producing interactive, man and
4620 future some perlpod-like way of producing interactive, man and
4594 html docs out of it will be found).
4621 html docs out of it will be found).
4595
4622
4596 * Added @profile to see your profile at any time.
4623 * Added @profile to see your profile at any time.
4597
4624
4598 * Added @p as an alias for 'print'. It's especially convenient if
4625 * Added @p as an alias for 'print'. It's especially convenient if
4599 using automagic ('p x' prints x).
4626 using automagic ('p x' prints x).
4600
4627
4601 * Small cleanups and fixes after a pychecker run.
4628 * Small cleanups and fixes after a pychecker run.
4602
4629
4603 * Changed the @cd command to handle @cd - and @cd -<n> for
4630 * Changed the @cd command to handle @cd - and @cd -<n> for
4604 visiting any directory in _dh.
4631 visiting any directory in _dh.
4605
4632
4606 * Introduced _dh, a history of visited directories. @dhist prints
4633 * Introduced _dh, a history of visited directories. @dhist prints
4607 it out with numbers.
4634 it out with numbers.
4608
4635
4609 2001-12-07 Fernando Perez <fperez@colorado.edu>
4636 2001-12-07 Fernando Perez <fperez@colorado.edu>
4610
4637
4611 * Released 0.1.22
4638 * Released 0.1.22
4612
4639
4613 * Made initialization a bit more robust against invalid color
4640 * Made initialization a bit more robust against invalid color
4614 options in user input (exit, not traceback-crash).
4641 options in user input (exit, not traceback-crash).
4615
4642
4616 * Changed the bug crash reporter to write the report only in the
4643 * Changed the bug crash reporter to write the report only in the
4617 user's .ipython directory. That way IPython won't litter people's
4644 user's .ipython directory. That way IPython won't litter people's
4618 hard disks with crash files all over the place. Also print on
4645 hard disks with crash files all over the place. Also print on
4619 screen the necessary mail command.
4646 screen the necessary mail command.
4620
4647
4621 * With the new ultraTB, implemented LightBG color scheme for light
4648 * With the new ultraTB, implemented LightBG color scheme for light
4622 background terminals. A lot of people like white backgrounds, so I
4649 background terminals. A lot of people like white backgrounds, so I
4623 guess we should at least give them something readable.
4650 guess we should at least give them something readable.
4624
4651
4625 2001-12-06 Fernando Perez <fperez@colorado.edu>
4652 2001-12-06 Fernando Perez <fperez@colorado.edu>
4626
4653
4627 * Modified the structure of ultraTB. Now there's a proper class
4654 * Modified the structure of ultraTB. Now there's a proper class
4628 for tables of color schemes which allow adding schemes easily and
4655 for tables of color schemes which allow adding schemes easily and
4629 switching the active scheme without creating a new instance every
4656 switching the active scheme without creating a new instance every
4630 time (which was ridiculous). The syntax for creating new schemes
4657 time (which was ridiculous). The syntax for creating new schemes
4631 is also cleaner. I think ultraTB is finally done, with a clean
4658 is also cleaner. I think ultraTB is finally done, with a clean
4632 class structure. Names are also much cleaner (now there's proper
4659 class structure. Names are also much cleaner (now there's proper
4633 color tables, no need for every variable to also have 'color' in
4660 color tables, no need for every variable to also have 'color' in
4634 its name).
4661 its name).
4635
4662
4636 * Broke down genutils into separate files. Now genutils only
4663 * Broke down genutils into separate files. Now genutils only
4637 contains utility functions, and classes have been moved to their
4664 contains utility functions, and classes have been moved to their
4638 own files (they had enough independent functionality to warrant
4665 own files (they had enough independent functionality to warrant
4639 it): ConfigLoader, OutputTrap, Struct.
4666 it): ConfigLoader, OutputTrap, Struct.
4640
4667
4641 2001-12-05 Fernando Perez <fperez@colorado.edu>
4668 2001-12-05 Fernando Perez <fperez@colorado.edu>
4642
4669
4643 * IPython turns 21! Released version 0.1.21, as a candidate for
4670 * IPython turns 21! Released version 0.1.21, as a candidate for
4644 public consumption. If all goes well, release in a few days.
4671 public consumption. If all goes well, release in a few days.
4645
4672
4646 * Fixed path bug (files in Extensions/ directory wouldn't be found
4673 * Fixed path bug (files in Extensions/ directory wouldn't be found
4647 unless IPython/ was explicitly in sys.path).
4674 unless IPython/ was explicitly in sys.path).
4648
4675
4649 * Extended the FlexCompleter class as MagicCompleter to allow
4676 * Extended the FlexCompleter class as MagicCompleter to allow
4650 completion of @-starting lines.
4677 completion of @-starting lines.
4651
4678
4652 * Created __release__.py file as a central repository for release
4679 * Created __release__.py file as a central repository for release
4653 info that other files can read from.
4680 info that other files can read from.
4654
4681
4655 * Fixed small bug in logging: when logging was turned on in
4682 * Fixed small bug in logging: when logging was turned on in
4656 mid-session, old lines with special meanings (!@?) were being
4683 mid-session, old lines with special meanings (!@?) were being
4657 logged without the prepended comment, which is necessary since
4684 logged without the prepended comment, which is necessary since
4658 they are not truly valid python syntax. This should make session
4685 they are not truly valid python syntax. This should make session
4659 restores produce less errors.
4686 restores produce less errors.
4660
4687
4661 * The namespace cleanup forced me to make a FlexCompleter class
4688 * The namespace cleanup forced me to make a FlexCompleter class
4662 which is nothing but a ripoff of rlcompleter, but with selectable
4689 which is nothing but a ripoff of rlcompleter, but with selectable
4663 namespace (rlcompleter only works in __main__.__dict__). I'll try
4690 namespace (rlcompleter only works in __main__.__dict__). I'll try
4664 to submit a note to the authors to see if this change can be
4691 to submit a note to the authors to see if this change can be
4665 incorporated in future rlcompleter releases (Dec.6: done)
4692 incorporated in future rlcompleter releases (Dec.6: done)
4666
4693
4667 * More fixes to namespace handling. It was a mess! Now all
4694 * More fixes to namespace handling. It was a mess! Now all
4668 explicit references to __main__.__dict__ are gone (except when
4695 explicit references to __main__.__dict__ are gone (except when
4669 really needed) and everything is handled through the namespace
4696 really needed) and everything is handled through the namespace
4670 dicts in the IPython instance. We seem to be getting somewhere
4697 dicts in the IPython instance. We seem to be getting somewhere
4671 with this, finally...
4698 with this, finally...
4672
4699
4673 * Small documentation updates.
4700 * Small documentation updates.
4674
4701
4675 * Created the Extensions directory under IPython (with an
4702 * Created the Extensions directory under IPython (with an
4676 __init__.py). Put the PhysicalQ stuff there. This directory should
4703 __init__.py). Put the PhysicalQ stuff there. This directory should
4677 be used for all special-purpose extensions.
4704 be used for all special-purpose extensions.
4678
4705
4679 * File renaming:
4706 * File renaming:
4680 ipythonlib --> ipmaker
4707 ipythonlib --> ipmaker
4681 ipplib --> iplib
4708 ipplib --> iplib
4682 This makes a bit more sense in terms of what these files actually do.
4709 This makes a bit more sense in terms of what these files actually do.
4683
4710
4684 * Moved all the classes and functions in ipythonlib to ipplib, so
4711 * Moved all the classes and functions in ipythonlib to ipplib, so
4685 now ipythonlib only has make_IPython(). This will ease up its
4712 now ipythonlib only has make_IPython(). This will ease up its
4686 splitting in smaller functional chunks later.
4713 splitting in smaller functional chunks later.
4687
4714
4688 * Cleaned up (done, I think) output of @whos. Better column
4715 * Cleaned up (done, I think) output of @whos. Better column
4689 formatting, and now shows str(var) for as much as it can, which is
4716 formatting, and now shows str(var) for as much as it can, which is
4690 typically what one gets with a 'print var'.
4717 typically what one gets with a 'print var'.
4691
4718
4692 2001-12-04 Fernando Perez <fperez@colorado.edu>
4719 2001-12-04 Fernando Perez <fperez@colorado.edu>
4693
4720
4694 * Fixed namespace problems. Now builtin/IPyhton/user names get
4721 * Fixed namespace problems. Now builtin/IPyhton/user names get
4695 properly reported in their namespace. Internal namespace handling
4722 properly reported in their namespace. Internal namespace handling
4696 is finally getting decent (not perfect yet, but much better than
4723 is finally getting decent (not perfect yet, but much better than
4697 the ad-hoc mess we had).
4724 the ad-hoc mess we had).
4698
4725
4699 * Removed -exit option. If people just want to run a python
4726 * Removed -exit option. If people just want to run a python
4700 script, that's what the normal interpreter is for. Less
4727 script, that's what the normal interpreter is for. Less
4701 unnecessary options, less chances for bugs.
4728 unnecessary options, less chances for bugs.
4702
4729
4703 * Added a crash handler which generates a complete post-mortem if
4730 * Added a crash handler which generates a complete post-mortem if
4704 IPython crashes. This will help a lot in tracking bugs down the
4731 IPython crashes. This will help a lot in tracking bugs down the
4705 road.
4732 road.
4706
4733
4707 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4734 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4708 which were boud to functions being reassigned would bypass the
4735 which were boud to functions being reassigned would bypass the
4709 logger, breaking the sync of _il with the prompt counter. This
4736 logger, breaking the sync of _il with the prompt counter. This
4710 would then crash IPython later when a new line was logged.
4737 would then crash IPython later when a new line was logged.
4711
4738
4712 2001-12-02 Fernando Perez <fperez@colorado.edu>
4739 2001-12-02 Fernando Perez <fperez@colorado.edu>
4713
4740
4714 * Made IPython a package. This means people don't have to clutter
4741 * Made IPython a package. This means people don't have to clutter
4715 their sys.path with yet another directory. Changed the INSTALL
4742 their sys.path with yet another directory. Changed the INSTALL
4716 file accordingly.
4743 file accordingly.
4717
4744
4718 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4745 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4719 sorts its output (so @who shows it sorted) and @whos formats the
4746 sorts its output (so @who shows it sorted) and @whos formats the
4720 table according to the width of the first column. Nicer, easier to
4747 table according to the width of the first column. Nicer, easier to
4721 read. Todo: write a generic table_format() which takes a list of
4748 read. Todo: write a generic table_format() which takes a list of
4722 lists and prints it nicely formatted, with optional row/column
4749 lists and prints it nicely formatted, with optional row/column
4723 separators and proper padding and justification.
4750 separators and proper padding and justification.
4724
4751
4725 * Released 0.1.20
4752 * Released 0.1.20
4726
4753
4727 * Fixed bug in @log which would reverse the inputcache list (a
4754 * Fixed bug in @log which would reverse the inputcache list (a
4728 copy operation was missing).
4755 copy operation was missing).
4729
4756
4730 * Code cleanup. @config was changed to use page(). Better, since
4757 * Code cleanup. @config was changed to use page(). Better, since
4731 its output is always quite long.
4758 its output is always quite long.
4732
4759
4733 * Itpl is back as a dependency. I was having too many problems
4760 * Itpl is back as a dependency. I was having too many problems
4734 getting the parametric aliases to work reliably, and it's just
4761 getting the parametric aliases to work reliably, and it's just
4735 easier to code weird string operations with it than playing %()s
4762 easier to code weird string operations with it than playing %()s
4736 games. It's only ~6k, so I don't think it's too big a deal.
4763 games. It's only ~6k, so I don't think it's too big a deal.
4737
4764
4738 * Found (and fixed) a very nasty bug with history. !lines weren't
4765 * Found (and fixed) a very nasty bug with history. !lines weren't
4739 getting cached, and the out of sync caches would crash
4766 getting cached, and the out of sync caches would crash
4740 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4767 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4741 division of labor a bit better. Bug fixed, cleaner structure.
4768 division of labor a bit better. Bug fixed, cleaner structure.
4742
4769
4743 2001-12-01 Fernando Perez <fperez@colorado.edu>
4770 2001-12-01 Fernando Perez <fperez@colorado.edu>
4744
4771
4745 * Released 0.1.19
4772 * Released 0.1.19
4746
4773
4747 * Added option -n to @hist to prevent line number printing. Much
4774 * Added option -n to @hist to prevent line number printing. Much
4748 easier to copy/paste code this way.
4775 easier to copy/paste code this way.
4749
4776
4750 * Created global _il to hold the input list. Allows easy
4777 * Created global _il to hold the input list. Allows easy
4751 re-execution of blocks of code by slicing it (inspired by Janko's
4778 re-execution of blocks of code by slicing it (inspired by Janko's
4752 comment on 'macros').
4779 comment on 'macros').
4753
4780
4754 * Small fixes and doc updates.
4781 * Small fixes and doc updates.
4755
4782
4756 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4783 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4757 much too fragile with automagic. Handles properly multi-line
4784 much too fragile with automagic. Handles properly multi-line
4758 statements and takes parameters.
4785 statements and takes parameters.
4759
4786
4760 2001-11-30 Fernando Perez <fperez@colorado.edu>
4787 2001-11-30 Fernando Perez <fperez@colorado.edu>
4761
4788
4762 * Version 0.1.18 released.
4789 * Version 0.1.18 released.
4763
4790
4764 * Fixed nasty namespace bug in initial module imports.
4791 * Fixed nasty namespace bug in initial module imports.
4765
4792
4766 * Added copyright/license notes to all code files (except
4793 * Added copyright/license notes to all code files (except
4767 DPyGetOpt). For the time being, LGPL. That could change.
4794 DPyGetOpt). For the time being, LGPL. That could change.
4768
4795
4769 * Rewrote a much nicer README, updated INSTALL, cleaned up
4796 * Rewrote a much nicer README, updated INSTALL, cleaned up
4770 ipythonrc-* samples.
4797 ipythonrc-* samples.
4771
4798
4772 * Overall code/documentation cleanup. Basically ready for
4799 * Overall code/documentation cleanup. Basically ready for
4773 release. Only remaining thing: licence decision (LGPL?).
4800 release. Only remaining thing: licence decision (LGPL?).
4774
4801
4775 * Converted load_config to a class, ConfigLoader. Now recursion
4802 * Converted load_config to a class, ConfigLoader. Now recursion
4776 control is better organized. Doesn't include the same file twice.
4803 control is better organized. Doesn't include the same file twice.
4777
4804
4778 2001-11-29 Fernando Perez <fperez@colorado.edu>
4805 2001-11-29 Fernando Perez <fperez@colorado.edu>
4779
4806
4780 * Got input history working. Changed output history variables from
4807 * Got input history working. Changed output history variables from
4781 _p to _o so that _i is for input and _o for output. Just cleaner
4808 _p to _o so that _i is for input and _o for output. Just cleaner
4782 convention.
4809 convention.
4783
4810
4784 * Implemented parametric aliases. This pretty much allows the
4811 * Implemented parametric aliases. This pretty much allows the
4785 alias system to offer full-blown shell convenience, I think.
4812 alias system to offer full-blown shell convenience, I think.
4786
4813
4787 * Version 0.1.17 released, 0.1.18 opened.
4814 * Version 0.1.17 released, 0.1.18 opened.
4788
4815
4789 * dot_ipython/ipythonrc (alias): added documentation.
4816 * dot_ipython/ipythonrc (alias): added documentation.
4790 (xcolor): Fixed small bug (xcolors -> xcolor)
4817 (xcolor): Fixed small bug (xcolors -> xcolor)
4791
4818
4792 * Changed the alias system. Now alias is a magic command to define
4819 * Changed the alias system. Now alias is a magic command to define
4793 aliases just like the shell. Rationale: the builtin magics should
4820 aliases just like the shell. Rationale: the builtin magics should
4794 be there for things deeply connected to IPython's
4821 be there for things deeply connected to IPython's
4795 architecture. And this is a much lighter system for what I think
4822 architecture. And this is a much lighter system for what I think
4796 is the really important feature: allowing users to define quickly
4823 is the really important feature: allowing users to define quickly
4797 magics that will do shell things for them, so they can customize
4824 magics that will do shell things for them, so they can customize
4798 IPython easily to match their work habits. If someone is really
4825 IPython easily to match their work habits. If someone is really
4799 desperate to have another name for a builtin alias, they can
4826 desperate to have another name for a builtin alias, they can
4800 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4827 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4801 works.
4828 works.
4802
4829
4803 2001-11-28 Fernando Perez <fperez@colorado.edu>
4830 2001-11-28 Fernando Perez <fperez@colorado.edu>
4804
4831
4805 * Changed @file so that it opens the source file at the proper
4832 * Changed @file so that it opens the source file at the proper
4806 line. Since it uses less, if your EDITOR environment is
4833 line. Since it uses less, if your EDITOR environment is
4807 configured, typing v will immediately open your editor of choice
4834 configured, typing v will immediately open your editor of choice
4808 right at the line where the object is defined. Not as quick as
4835 right at the line where the object is defined. Not as quick as
4809 having a direct @edit command, but for all intents and purposes it
4836 having a direct @edit command, but for all intents and purposes it
4810 works. And I don't have to worry about writing @edit to deal with
4837 works. And I don't have to worry about writing @edit to deal with
4811 all the editors, less does that.
4838 all the editors, less does that.
4812
4839
4813 * Version 0.1.16 released, 0.1.17 opened.
4840 * Version 0.1.16 released, 0.1.17 opened.
4814
4841
4815 * Fixed some nasty bugs in the page/page_dumb combo that could
4842 * Fixed some nasty bugs in the page/page_dumb combo that could
4816 crash IPython.
4843 crash IPython.
4817
4844
4818 2001-11-27 Fernando Perez <fperez@colorado.edu>
4845 2001-11-27 Fernando Perez <fperez@colorado.edu>
4819
4846
4820 * Version 0.1.15 released, 0.1.16 opened.
4847 * Version 0.1.15 released, 0.1.16 opened.
4821
4848
4822 * Finally got ? and ?? to work for undefined things: now it's
4849 * Finally got ? and ?? to work for undefined things: now it's
4823 possible to type {}.get? and get information about the get method
4850 possible to type {}.get? and get information about the get method
4824 of dicts, or os.path? even if only os is defined (so technically
4851 of dicts, or os.path? even if only os is defined (so technically
4825 os.path isn't). Works at any level. For example, after import os,
4852 os.path isn't). Works at any level. For example, after import os,
4826 os?, os.path?, os.path.abspath? all work. This is great, took some
4853 os?, os.path?, os.path.abspath? all work. This is great, took some
4827 work in _ofind.
4854 work in _ofind.
4828
4855
4829 * Fixed more bugs with logging. The sanest way to do it was to add
4856 * Fixed more bugs with logging. The sanest way to do it was to add
4830 to @log a 'mode' parameter. Killed two in one shot (this mode
4857 to @log a 'mode' parameter. Killed two in one shot (this mode
4831 option was a request of Janko's). I think it's finally clean
4858 option was a request of Janko's). I think it's finally clean
4832 (famous last words).
4859 (famous last words).
4833
4860
4834 * Added a page_dumb() pager which does a decent job of paging on
4861 * Added a page_dumb() pager which does a decent job of paging on
4835 screen, if better things (like less) aren't available. One less
4862 screen, if better things (like less) aren't available. One less
4836 unix dependency (someday maybe somebody will port this to
4863 unix dependency (someday maybe somebody will port this to
4837 windows).
4864 windows).
4838
4865
4839 * Fixed problem in magic_log: would lock of logging out if log
4866 * Fixed problem in magic_log: would lock of logging out if log
4840 creation failed (because it would still think it had succeeded).
4867 creation failed (because it would still think it had succeeded).
4841
4868
4842 * Improved the page() function using curses to auto-detect screen
4869 * Improved the page() function using curses to auto-detect screen
4843 size. Now it can make a much better decision on whether to print
4870 size. Now it can make a much better decision on whether to print
4844 or page a string. Option screen_length was modified: a value 0
4871 or page a string. Option screen_length was modified: a value 0
4845 means auto-detect, and that's the default now.
4872 means auto-detect, and that's the default now.
4846
4873
4847 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4874 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4848 go out. I'll test it for a few days, then talk to Janko about
4875 go out. I'll test it for a few days, then talk to Janko about
4849 licences and announce it.
4876 licences and announce it.
4850
4877
4851 * Fixed the length of the auto-generated ---> prompt which appears
4878 * Fixed the length of the auto-generated ---> prompt which appears
4852 for auto-parens and auto-quotes. Getting this right isn't trivial,
4879 for auto-parens and auto-quotes. Getting this right isn't trivial,
4853 with all the color escapes, different prompt types and optional
4880 with all the color escapes, different prompt types and optional
4854 separators. But it seems to be working in all the combinations.
4881 separators. But it seems to be working in all the combinations.
4855
4882
4856 2001-11-26 Fernando Perez <fperez@colorado.edu>
4883 2001-11-26 Fernando Perez <fperez@colorado.edu>
4857
4884
4858 * Wrote a regexp filter to get option types from the option names
4885 * Wrote a regexp filter to get option types from the option names
4859 string. This eliminates the need to manually keep two duplicate
4886 string. This eliminates the need to manually keep two duplicate
4860 lists.
4887 lists.
4861
4888
4862 * Removed the unneeded check_option_names. Now options are handled
4889 * Removed the unneeded check_option_names. Now options are handled
4863 in a much saner manner and it's easy to visually check that things
4890 in a much saner manner and it's easy to visually check that things
4864 are ok.
4891 are ok.
4865
4892
4866 * Updated version numbers on all files I modified to carry a
4893 * Updated version numbers on all files I modified to carry a
4867 notice so Janko and Nathan have clear version markers.
4894 notice so Janko and Nathan have clear version markers.
4868
4895
4869 * Updated docstring for ultraTB with my changes. I should send
4896 * Updated docstring for ultraTB with my changes. I should send
4870 this to Nathan.
4897 this to Nathan.
4871
4898
4872 * Lots of small fixes. Ran everything through pychecker again.
4899 * Lots of small fixes. Ran everything through pychecker again.
4873
4900
4874 * Made loading of deep_reload an cmd line option. If it's not too
4901 * Made loading of deep_reload an cmd line option. If it's not too
4875 kosher, now people can just disable it. With -nodeep_reload it's
4902 kosher, now people can just disable it. With -nodeep_reload it's
4876 still available as dreload(), it just won't overwrite reload().
4903 still available as dreload(), it just won't overwrite reload().
4877
4904
4878 * Moved many options to the no| form (-opt and -noopt
4905 * Moved many options to the no| form (-opt and -noopt
4879 accepted). Cleaner.
4906 accepted). Cleaner.
4880
4907
4881 * Changed magic_log so that if called with no parameters, it uses
4908 * Changed magic_log so that if called with no parameters, it uses
4882 'rotate' mode. That way auto-generated logs aren't automatically
4909 'rotate' mode. That way auto-generated logs aren't automatically
4883 over-written. For normal logs, now a backup is made if it exists
4910 over-written. For normal logs, now a backup is made if it exists
4884 (only 1 level of backups). A new 'backup' mode was added to the
4911 (only 1 level of backups). A new 'backup' mode was added to the
4885 Logger class to support this. This was a request by Janko.
4912 Logger class to support this. This was a request by Janko.
4886
4913
4887 * Added @logoff/@logon to stop/restart an active log.
4914 * Added @logoff/@logon to stop/restart an active log.
4888
4915
4889 * Fixed a lot of bugs in log saving/replay. It was pretty
4916 * Fixed a lot of bugs in log saving/replay. It was pretty
4890 broken. Now special lines (!@,/) appear properly in the command
4917 broken. Now special lines (!@,/) appear properly in the command
4891 history after a log replay.
4918 history after a log replay.
4892
4919
4893 * Tried and failed to implement full session saving via pickle. My
4920 * Tried and failed to implement full session saving via pickle. My
4894 idea was to pickle __main__.__dict__, but modules can't be
4921 idea was to pickle __main__.__dict__, but modules can't be
4895 pickled. This would be a better alternative to replaying logs, but
4922 pickled. This would be a better alternative to replaying logs, but
4896 seems quite tricky to get to work. Changed -session to be called
4923 seems quite tricky to get to work. Changed -session to be called
4897 -logplay, which more accurately reflects what it does. And if we
4924 -logplay, which more accurately reflects what it does. And if we
4898 ever get real session saving working, -session is now available.
4925 ever get real session saving working, -session is now available.
4899
4926
4900 * Implemented color schemes for prompts also. As for tracebacks,
4927 * Implemented color schemes for prompts also. As for tracebacks,
4901 currently only NoColor and Linux are supported. But now the
4928 currently only NoColor and Linux are supported. But now the
4902 infrastructure is in place, based on a generic ColorScheme
4929 infrastructure is in place, based on a generic ColorScheme
4903 class. So writing and activating new schemes both for the prompts
4930 class. So writing and activating new schemes both for the prompts
4904 and the tracebacks should be straightforward.
4931 and the tracebacks should be straightforward.
4905
4932
4906 * Version 0.1.13 released, 0.1.14 opened.
4933 * Version 0.1.13 released, 0.1.14 opened.
4907
4934
4908 * Changed handling of options for output cache. Now counter is
4935 * Changed handling of options for output cache. Now counter is
4909 hardwired starting at 1 and one specifies the maximum number of
4936 hardwired starting at 1 and one specifies the maximum number of
4910 entries *in the outcache* (not the max prompt counter). This is
4937 entries *in the outcache* (not the max prompt counter). This is
4911 much better, since many statements won't increase the cache
4938 much better, since many statements won't increase the cache
4912 count. It also eliminated some confusing options, now there's only
4939 count. It also eliminated some confusing options, now there's only
4913 one: cache_size.
4940 one: cache_size.
4914
4941
4915 * Added 'alias' magic function and magic_alias option in the
4942 * Added 'alias' magic function and magic_alias option in the
4916 ipythonrc file. Now the user can easily define whatever names he
4943 ipythonrc file. Now the user can easily define whatever names he
4917 wants for the magic functions without having to play weird
4944 wants for the magic functions without having to play weird
4918 namespace games. This gives IPython a real shell-like feel.
4945 namespace games. This gives IPython a real shell-like feel.
4919
4946
4920 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4947 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4921 @ or not).
4948 @ or not).
4922
4949
4923 This was one of the last remaining 'visible' bugs (that I know
4950 This was one of the last remaining 'visible' bugs (that I know
4924 of). I think if I can clean up the session loading so it works
4951 of). I think if I can clean up the session loading so it works
4925 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4952 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4926 about licensing).
4953 about licensing).
4927
4954
4928 2001-11-25 Fernando Perez <fperez@colorado.edu>
4955 2001-11-25 Fernando Perez <fperez@colorado.edu>
4929
4956
4930 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4957 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4931 there's a cleaner distinction between what ? and ?? show.
4958 there's a cleaner distinction between what ? and ?? show.
4932
4959
4933 * Added screen_length option. Now the user can define his own
4960 * Added screen_length option. Now the user can define his own
4934 screen size for page() operations.
4961 screen size for page() operations.
4935
4962
4936 * Implemented magic shell-like functions with automatic code
4963 * Implemented magic shell-like functions with automatic code
4937 generation. Now adding another function is just a matter of adding
4964 generation. Now adding another function is just a matter of adding
4938 an entry to a dict, and the function is dynamically generated at
4965 an entry to a dict, and the function is dynamically generated at
4939 run-time. Python has some really cool features!
4966 run-time. Python has some really cool features!
4940
4967
4941 * Renamed many options to cleanup conventions a little. Now all
4968 * Renamed many options to cleanup conventions a little. Now all
4942 are lowercase, and only underscores where needed. Also in the code
4969 are lowercase, and only underscores where needed. Also in the code
4943 option name tables are clearer.
4970 option name tables are clearer.
4944
4971
4945 * Changed prompts a little. Now input is 'In [n]:' instead of
4972 * Changed prompts a little. Now input is 'In [n]:' instead of
4946 'In[n]:='. This allows it the numbers to be aligned with the
4973 'In[n]:='. This allows it the numbers to be aligned with the
4947 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4974 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4948 Python (it was a Mathematica thing). The '...' continuation prompt
4975 Python (it was a Mathematica thing). The '...' continuation prompt
4949 was also changed a little to align better.
4976 was also changed a little to align better.
4950
4977
4951 * Fixed bug when flushing output cache. Not all _p<n> variables
4978 * Fixed bug when flushing output cache. Not all _p<n> variables
4952 exist, so their deletion needs to be wrapped in a try:
4979 exist, so their deletion needs to be wrapped in a try:
4953
4980
4954 * Figured out how to properly use inspect.formatargspec() (it
4981 * Figured out how to properly use inspect.formatargspec() (it
4955 requires the args preceded by *). So I removed all the code from
4982 requires the args preceded by *). So I removed all the code from
4956 _get_pdef in Magic, which was just replicating that.
4983 _get_pdef in Magic, which was just replicating that.
4957
4984
4958 * Added test to prefilter to allow redefining magic function names
4985 * Added test to prefilter to allow redefining magic function names
4959 as variables. This is ok, since the @ form is always available,
4986 as variables. This is ok, since the @ form is always available,
4960 but whe should allow the user to define a variable called 'ls' if
4987 but whe should allow the user to define a variable called 'ls' if
4961 he needs it.
4988 he needs it.
4962
4989
4963 * Moved the ToDo information from README into a separate ToDo.
4990 * Moved the ToDo information from README into a separate ToDo.
4964
4991
4965 * General code cleanup and small bugfixes. I think it's close to a
4992 * General code cleanup and small bugfixes. I think it's close to a
4966 state where it can be released, obviously with a big 'beta'
4993 state where it can be released, obviously with a big 'beta'
4967 warning on it.
4994 warning on it.
4968
4995
4969 * Got the magic function split to work. Now all magics are defined
4996 * Got the magic function split to work. Now all magics are defined
4970 in a separate class. It just organizes things a bit, and now
4997 in a separate class. It just organizes things a bit, and now
4971 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4998 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4972 was too long).
4999 was too long).
4973
5000
4974 * Changed @clear to @reset to avoid potential confusions with
5001 * Changed @clear to @reset to avoid potential confusions with
4975 the shell command clear. Also renamed @cl to @clear, which does
5002 the shell command clear. Also renamed @cl to @clear, which does
4976 exactly what people expect it to from their shell experience.
5003 exactly what people expect it to from their shell experience.
4977
5004
4978 Added a check to the @reset command (since it's so
5005 Added a check to the @reset command (since it's so
4979 destructive, it's probably a good idea to ask for confirmation).
5006 destructive, it's probably a good idea to ask for confirmation).
4980 But now reset only works for full namespace resetting. Since the
5007 But now reset only works for full namespace resetting. Since the
4981 del keyword is already there for deleting a few specific
5008 del keyword is already there for deleting a few specific
4982 variables, I don't see the point of having a redundant magic
5009 variables, I don't see the point of having a redundant magic
4983 function for the same task.
5010 function for the same task.
4984
5011
4985 2001-11-24 Fernando Perez <fperez@colorado.edu>
5012 2001-11-24 Fernando Perez <fperez@colorado.edu>
4986
5013
4987 * Updated the builtin docs (esp. the ? ones).
5014 * Updated the builtin docs (esp. the ? ones).
4988
5015
4989 * Ran all the code through pychecker. Not terribly impressed with
5016 * Ran all the code through pychecker. Not terribly impressed with
4990 it: lots of spurious warnings and didn't really find anything of
5017 it: lots of spurious warnings and didn't really find anything of
4991 substance (just a few modules being imported and not used).
5018 substance (just a few modules being imported and not used).
4992
5019
4993 * Implemented the new ultraTB functionality into IPython. New
5020 * Implemented the new ultraTB functionality into IPython. New
4994 option: xcolors. This chooses color scheme. xmode now only selects
5021 option: xcolors. This chooses color scheme. xmode now only selects
4995 between Plain and Verbose. Better orthogonality.
5022 between Plain and Verbose. Better orthogonality.
4996
5023
4997 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5024 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4998 mode and color scheme for the exception handlers. Now it's
5025 mode and color scheme for the exception handlers. Now it's
4999 possible to have the verbose traceback with no coloring.
5026 possible to have the verbose traceback with no coloring.
5000
5027
5001 2001-11-23 Fernando Perez <fperez@colorado.edu>
5028 2001-11-23 Fernando Perez <fperez@colorado.edu>
5002
5029
5003 * Version 0.1.12 released, 0.1.13 opened.
5030 * Version 0.1.12 released, 0.1.13 opened.
5004
5031
5005 * Removed option to set auto-quote and auto-paren escapes by
5032 * Removed option to set auto-quote and auto-paren escapes by
5006 user. The chances of breaking valid syntax are just too high. If
5033 user. The chances of breaking valid syntax are just too high. If
5007 someone *really* wants, they can always dig into the code.
5034 someone *really* wants, they can always dig into the code.
5008
5035
5009 * Made prompt separators configurable.
5036 * Made prompt separators configurable.
5010
5037
5011 2001-11-22 Fernando Perez <fperez@colorado.edu>
5038 2001-11-22 Fernando Perez <fperez@colorado.edu>
5012
5039
5013 * Small bugfixes in many places.
5040 * Small bugfixes in many places.
5014
5041
5015 * Removed the MyCompleter class from ipplib. It seemed redundant
5042 * Removed the MyCompleter class from ipplib. It seemed redundant
5016 with the C-p,C-n history search functionality. Less code to
5043 with the C-p,C-n history search functionality. Less code to
5017 maintain.
5044 maintain.
5018
5045
5019 * Moved all the original ipython.py code into ipythonlib.py. Right
5046 * Moved all the original ipython.py code into ipythonlib.py. Right
5020 now it's just one big dump into a function called make_IPython, so
5047 now it's just one big dump into a function called make_IPython, so
5021 no real modularity has been gained. But at least it makes the
5048 no real modularity has been gained. But at least it makes the
5022 wrapper script tiny, and since ipythonlib is a module, it gets
5049 wrapper script tiny, and since ipythonlib is a module, it gets
5023 compiled and startup is much faster.
5050 compiled and startup is much faster.
5024
5051
5025 This is a reasobably 'deep' change, so we should test it for a
5052 This is a reasobably 'deep' change, so we should test it for a
5026 while without messing too much more with the code.
5053 while without messing too much more with the code.
5027
5054
5028 2001-11-21 Fernando Perez <fperez@colorado.edu>
5055 2001-11-21 Fernando Perez <fperez@colorado.edu>
5029
5056
5030 * Version 0.1.11 released, 0.1.12 opened for further work.
5057 * Version 0.1.11 released, 0.1.12 opened for further work.
5031
5058
5032 * Removed dependency on Itpl. It was only needed in one place. It
5059 * Removed dependency on Itpl. It was only needed in one place. It
5033 would be nice if this became part of python, though. It makes life
5060 would be nice if this became part of python, though. It makes life
5034 *a lot* easier in some cases.
5061 *a lot* easier in some cases.
5035
5062
5036 * Simplified the prefilter code a bit. Now all handlers are
5063 * Simplified the prefilter code a bit. Now all handlers are
5037 expected to explicitly return a value (at least a blank string).
5064 expected to explicitly return a value (at least a blank string).
5038
5065
5039 * Heavy edits in ipplib. Removed the help system altogether. Now
5066 * Heavy edits in ipplib. Removed the help system altogether. Now
5040 obj?/?? is used for inspecting objects, a magic @doc prints
5067 obj?/?? is used for inspecting objects, a magic @doc prints
5041 docstrings, and full-blown Python help is accessed via the 'help'
5068 docstrings, and full-blown Python help is accessed via the 'help'
5042 keyword. This cleans up a lot of code (less to maintain) and does
5069 keyword. This cleans up a lot of code (less to maintain) and does
5043 the job. Since 'help' is now a standard Python component, might as
5070 the job. Since 'help' is now a standard Python component, might as
5044 well use it and remove duplicate functionality.
5071 well use it and remove duplicate functionality.
5045
5072
5046 Also removed the option to use ipplib as a standalone program. By
5073 Also removed the option to use ipplib as a standalone program. By
5047 now it's too dependent on other parts of IPython to function alone.
5074 now it's too dependent on other parts of IPython to function alone.
5048
5075
5049 * Fixed bug in genutils.pager. It would crash if the pager was
5076 * Fixed bug in genutils.pager. It would crash if the pager was
5050 exited immediately after opening (broken pipe).
5077 exited immediately after opening (broken pipe).
5051
5078
5052 * Trimmed down the VerboseTB reporting a little. The header is
5079 * Trimmed down the VerboseTB reporting a little. The header is
5053 much shorter now and the repeated exception arguments at the end
5080 much shorter now and the repeated exception arguments at the end
5054 have been removed. For interactive use the old header seemed a bit
5081 have been removed. For interactive use the old header seemed a bit
5055 excessive.
5082 excessive.
5056
5083
5057 * Fixed small bug in output of @whos for variables with multi-word
5084 * Fixed small bug in output of @whos for variables with multi-word
5058 types (only first word was displayed).
5085 types (only first word was displayed).
5059
5086
5060 2001-11-17 Fernando Perez <fperez@colorado.edu>
5087 2001-11-17 Fernando Perez <fperez@colorado.edu>
5061
5088
5062 * Version 0.1.10 released, 0.1.11 opened for further work.
5089 * Version 0.1.10 released, 0.1.11 opened for further work.
5063
5090
5064 * Modified dirs and friends. dirs now *returns* the stack (not
5091 * Modified dirs and friends. dirs now *returns* the stack (not
5065 prints), so one can manipulate it as a variable. Convenient to
5092 prints), so one can manipulate it as a variable. Convenient to
5066 travel along many directories.
5093 travel along many directories.
5067
5094
5068 * Fixed bug in magic_pdef: would only work with functions with
5095 * Fixed bug in magic_pdef: would only work with functions with
5069 arguments with default values.
5096 arguments with default values.
5070
5097
5071 2001-11-14 Fernando Perez <fperez@colorado.edu>
5098 2001-11-14 Fernando Perez <fperez@colorado.edu>
5072
5099
5073 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5100 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5074 example with IPython. Various other minor fixes and cleanups.
5101 example with IPython. Various other minor fixes and cleanups.
5075
5102
5076 * Version 0.1.9 released, 0.1.10 opened for further work.
5103 * Version 0.1.9 released, 0.1.10 opened for further work.
5077
5104
5078 * Added sys.path to the list of directories searched in the
5105 * Added sys.path to the list of directories searched in the
5079 execfile= option. It used to be the current directory and the
5106 execfile= option. It used to be the current directory and the
5080 user's IPYTHONDIR only.
5107 user's IPYTHONDIR only.
5081
5108
5082 2001-11-13 Fernando Perez <fperez@colorado.edu>
5109 2001-11-13 Fernando Perez <fperez@colorado.edu>
5083
5110
5084 * Reinstated the raw_input/prefilter separation that Janko had
5111 * Reinstated the raw_input/prefilter separation that Janko had
5085 initially. This gives a more convenient setup for extending the
5112 initially. This gives a more convenient setup for extending the
5086 pre-processor from the outside: raw_input always gets a string,
5113 pre-processor from the outside: raw_input always gets a string,
5087 and prefilter has to process it. We can then redefine prefilter
5114 and prefilter has to process it. We can then redefine prefilter
5088 from the outside and implement extensions for special
5115 from the outside and implement extensions for special
5089 purposes.
5116 purposes.
5090
5117
5091 Today I got one for inputting PhysicalQuantity objects
5118 Today I got one for inputting PhysicalQuantity objects
5092 (from Scientific) without needing any function calls at
5119 (from Scientific) without needing any function calls at
5093 all. Extremely convenient, and it's all done as a user-level
5120 all. Extremely convenient, and it's all done as a user-level
5094 extension (no IPython code was touched). Now instead of:
5121 extension (no IPython code was touched). Now instead of:
5095 a = PhysicalQuantity(4.2,'m/s**2')
5122 a = PhysicalQuantity(4.2,'m/s**2')
5096 one can simply say
5123 one can simply say
5097 a = 4.2 m/s**2
5124 a = 4.2 m/s**2
5098 or even
5125 or even
5099 a = 4.2 m/s^2
5126 a = 4.2 m/s^2
5100
5127
5101 I use this, but it's also a proof of concept: IPython really is
5128 I use this, but it's also a proof of concept: IPython really is
5102 fully user-extensible, even at the level of the parsing of the
5129 fully user-extensible, even at the level of the parsing of the
5103 command line. It's not trivial, but it's perfectly doable.
5130 command line. It's not trivial, but it's perfectly doable.
5104
5131
5105 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5132 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5106 the problem of modules being loaded in the inverse order in which
5133 the problem of modules being loaded in the inverse order in which
5107 they were defined in
5134 they were defined in
5108
5135
5109 * Version 0.1.8 released, 0.1.9 opened for further work.
5136 * Version 0.1.8 released, 0.1.9 opened for further work.
5110
5137
5111 * Added magics pdef, source and file. They respectively show the
5138 * Added magics pdef, source and file. They respectively show the
5112 definition line ('prototype' in C), source code and full python
5139 definition line ('prototype' in C), source code and full python
5113 file for any callable object. The object inspector oinfo uses
5140 file for any callable object. The object inspector oinfo uses
5114 these to show the same information.
5141 these to show the same information.
5115
5142
5116 * Version 0.1.7 released, 0.1.8 opened for further work.
5143 * Version 0.1.7 released, 0.1.8 opened for further work.
5117
5144
5118 * Separated all the magic functions into a class called Magic. The
5145 * Separated all the magic functions into a class called Magic. The
5119 InteractiveShell class was becoming too big for Xemacs to handle
5146 InteractiveShell class was becoming too big for Xemacs to handle
5120 (de-indenting a line would lock it up for 10 seconds while it
5147 (de-indenting a line would lock it up for 10 seconds while it
5121 backtracked on the whole class!)
5148 backtracked on the whole class!)
5122
5149
5123 FIXME: didn't work. It can be done, but right now namespaces are
5150 FIXME: didn't work. It can be done, but right now namespaces are
5124 all messed up. Do it later (reverted it for now, so at least
5151 all messed up. Do it later (reverted it for now, so at least
5125 everything works as before).
5152 everything works as before).
5126
5153
5127 * Got the object introspection system (magic_oinfo) working! I
5154 * Got the object introspection system (magic_oinfo) working! I
5128 think this is pretty much ready for release to Janko, so he can
5155 think this is pretty much ready for release to Janko, so he can
5129 test it for a while and then announce it. Pretty much 100% of what
5156 test it for a while and then announce it. Pretty much 100% of what
5130 I wanted for the 'phase 1' release is ready. Happy, tired.
5157 I wanted for the 'phase 1' release is ready. Happy, tired.
5131
5158
5132 2001-11-12 Fernando Perez <fperez@colorado.edu>
5159 2001-11-12 Fernando Perez <fperez@colorado.edu>
5133
5160
5134 * Version 0.1.6 released, 0.1.7 opened for further work.
5161 * Version 0.1.6 released, 0.1.7 opened for further work.
5135
5162
5136 * Fixed bug in printing: it used to test for truth before
5163 * Fixed bug in printing: it used to test for truth before
5137 printing, so 0 wouldn't print. Now checks for None.
5164 printing, so 0 wouldn't print. Now checks for None.
5138
5165
5139 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5166 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5140 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5167 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5141 reaches by hand into the outputcache. Think of a better way to do
5168 reaches by hand into the outputcache. Think of a better way to do
5142 this later.
5169 this later.
5143
5170
5144 * Various small fixes thanks to Nathan's comments.
5171 * Various small fixes thanks to Nathan's comments.
5145
5172
5146 * Changed magic_pprint to magic_Pprint. This way it doesn't
5173 * Changed magic_pprint to magic_Pprint. This way it doesn't
5147 collide with pprint() and the name is consistent with the command
5174 collide with pprint() and the name is consistent with the command
5148 line option.
5175 line option.
5149
5176
5150 * Changed prompt counter behavior to be fully like
5177 * Changed prompt counter behavior to be fully like
5151 Mathematica's. That is, even input that doesn't return a result
5178 Mathematica's. That is, even input that doesn't return a result
5152 raises the prompt counter. The old behavior was kind of confusing
5179 raises the prompt counter. The old behavior was kind of confusing
5153 (getting the same prompt number several times if the operation
5180 (getting the same prompt number several times if the operation
5154 didn't return a result).
5181 didn't return a result).
5155
5182
5156 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5183 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5157
5184
5158 * Fixed -Classic mode (wasn't working anymore).
5185 * Fixed -Classic mode (wasn't working anymore).
5159
5186
5160 * Added colored prompts using Nathan's new code. Colors are
5187 * Added colored prompts using Nathan's new code. Colors are
5161 currently hardwired, they can be user-configurable. For
5188 currently hardwired, they can be user-configurable. For
5162 developers, they can be chosen in file ipythonlib.py, at the
5189 developers, they can be chosen in file ipythonlib.py, at the
5163 beginning of the CachedOutput class def.
5190 beginning of the CachedOutput class def.
5164
5191
5165 2001-11-11 Fernando Perez <fperez@colorado.edu>
5192 2001-11-11 Fernando Perez <fperez@colorado.edu>
5166
5193
5167 * Version 0.1.5 released, 0.1.6 opened for further work.
5194 * Version 0.1.5 released, 0.1.6 opened for further work.
5168
5195
5169 * Changed magic_env to *return* the environment as a dict (not to
5196 * Changed magic_env to *return* the environment as a dict (not to
5170 print it). This way it prints, but it can also be processed.
5197 print it). This way it prints, but it can also be processed.
5171
5198
5172 * Added Verbose exception reporting to interactive
5199 * Added Verbose exception reporting to interactive
5173 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5200 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5174 traceback. Had to make some changes to the ultraTB file. This is
5201 traceback. Had to make some changes to the ultraTB file. This is
5175 probably the last 'big' thing in my mental todo list. This ties
5202 probably the last 'big' thing in my mental todo list. This ties
5176 in with the next entry:
5203 in with the next entry:
5177
5204
5178 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5205 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5179 has to specify is Plain, Color or Verbose for all exception
5206 has to specify is Plain, Color or Verbose for all exception
5180 handling.
5207 handling.
5181
5208
5182 * Removed ShellServices option. All this can really be done via
5209 * Removed ShellServices option. All this can really be done via
5183 the magic system. It's easier to extend, cleaner and has automatic
5210 the magic system. It's easier to extend, cleaner and has automatic
5184 namespace protection and documentation.
5211 namespace protection and documentation.
5185
5212
5186 2001-11-09 Fernando Perez <fperez@colorado.edu>
5213 2001-11-09 Fernando Perez <fperez@colorado.edu>
5187
5214
5188 * Fixed bug in output cache flushing (missing parameter to
5215 * Fixed bug in output cache flushing (missing parameter to
5189 __init__). Other small bugs fixed (found using pychecker).
5216 __init__). Other small bugs fixed (found using pychecker).
5190
5217
5191 * Version 0.1.4 opened for bugfixing.
5218 * Version 0.1.4 opened for bugfixing.
5192
5219
5193 2001-11-07 Fernando Perez <fperez@colorado.edu>
5220 2001-11-07 Fernando Perez <fperez@colorado.edu>
5194
5221
5195 * Version 0.1.3 released, mainly because of the raw_input bug.
5222 * Version 0.1.3 released, mainly because of the raw_input bug.
5196
5223
5197 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5224 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5198 and when testing for whether things were callable, a call could
5225 and when testing for whether things were callable, a call could
5199 actually be made to certain functions. They would get called again
5226 actually be made to certain functions. They would get called again
5200 once 'really' executed, with a resulting double call. A disaster
5227 once 'really' executed, with a resulting double call. A disaster
5201 in many cases (list.reverse() would never work!).
5228 in many cases (list.reverse() would never work!).
5202
5229
5203 * Removed prefilter() function, moved its code to raw_input (which
5230 * Removed prefilter() function, moved its code to raw_input (which
5204 after all was just a near-empty caller for prefilter). This saves
5231 after all was just a near-empty caller for prefilter). This saves
5205 a function call on every prompt, and simplifies the class a tiny bit.
5232 a function call on every prompt, and simplifies the class a tiny bit.
5206
5233
5207 * Fix _ip to __ip name in magic example file.
5234 * Fix _ip to __ip name in magic example file.
5208
5235
5209 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5236 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5210 work with non-gnu versions of tar.
5237 work with non-gnu versions of tar.
5211
5238
5212 2001-11-06 Fernando Perez <fperez@colorado.edu>
5239 2001-11-06 Fernando Perez <fperez@colorado.edu>
5213
5240
5214 * Version 0.1.2. Just to keep track of the recent changes.
5241 * Version 0.1.2. Just to keep track of the recent changes.
5215
5242
5216 * Fixed nasty bug in output prompt routine. It used to check 'if
5243 * Fixed nasty bug in output prompt routine. It used to check 'if
5217 arg != None...'. Problem is, this fails if arg implements a
5244 arg != None...'. Problem is, this fails if arg implements a
5218 special comparison (__cmp__) which disallows comparing to
5245 special comparison (__cmp__) which disallows comparing to
5219 None. Found it when trying to use the PhysicalQuantity module from
5246 None. Found it when trying to use the PhysicalQuantity module from
5220 ScientificPython.
5247 ScientificPython.
5221
5248
5222 2001-11-05 Fernando Perez <fperez@colorado.edu>
5249 2001-11-05 Fernando Perez <fperez@colorado.edu>
5223
5250
5224 * Also added dirs. Now the pushd/popd/dirs family functions
5251 * Also added dirs. Now the pushd/popd/dirs family functions
5225 basically like the shell, with the added convenience of going home
5252 basically like the shell, with the added convenience of going home
5226 when called with no args.
5253 when called with no args.
5227
5254
5228 * pushd/popd slightly modified to mimic shell behavior more
5255 * pushd/popd slightly modified to mimic shell behavior more
5229 closely.
5256 closely.
5230
5257
5231 * Added env,pushd,popd from ShellServices as magic functions. I
5258 * Added env,pushd,popd from ShellServices as magic functions. I
5232 think the cleanest will be to port all desired functions from
5259 think the cleanest will be to port all desired functions from
5233 ShellServices as magics and remove ShellServices altogether. This
5260 ShellServices as magics and remove ShellServices altogether. This
5234 will provide a single, clean way of adding functionality
5261 will provide a single, clean way of adding functionality
5235 (shell-type or otherwise) to IP.
5262 (shell-type or otherwise) to IP.
5236
5263
5237 2001-11-04 Fernando Perez <fperez@colorado.edu>
5264 2001-11-04 Fernando Perez <fperez@colorado.edu>
5238
5265
5239 * Added .ipython/ directory to sys.path. This way users can keep
5266 * Added .ipython/ directory to sys.path. This way users can keep
5240 customizations there and access them via import.
5267 customizations there and access them via import.
5241
5268
5242 2001-11-03 Fernando Perez <fperez@colorado.edu>
5269 2001-11-03 Fernando Perez <fperez@colorado.edu>
5243
5270
5244 * Opened version 0.1.1 for new changes.
5271 * Opened version 0.1.1 for new changes.
5245
5272
5246 * Changed version number to 0.1.0: first 'public' release, sent to
5273 * Changed version number to 0.1.0: first 'public' release, sent to
5247 Nathan and Janko.
5274 Nathan and Janko.
5248
5275
5249 * Lots of small fixes and tweaks.
5276 * Lots of small fixes and tweaks.
5250
5277
5251 * Minor changes to whos format. Now strings are shown, snipped if
5278 * Minor changes to whos format. Now strings are shown, snipped if
5252 too long.
5279 too long.
5253
5280
5254 * Changed ShellServices to work on __main__ so they show up in @who
5281 * Changed ShellServices to work on __main__ so they show up in @who
5255
5282
5256 * Help also works with ? at the end of a line:
5283 * Help also works with ? at the end of a line:
5257 ?sin and sin?
5284 ?sin and sin?
5258 both produce the same effect. This is nice, as often I use the
5285 both produce the same effect. This is nice, as often I use the
5259 tab-complete to find the name of a method, but I used to then have
5286 tab-complete to find the name of a method, but I used to then have
5260 to go to the beginning of the line to put a ? if I wanted more
5287 to go to the beginning of the line to put a ? if I wanted more
5261 info. Now I can just add the ? and hit return. Convenient.
5288 info. Now I can just add the ? and hit return. Convenient.
5262
5289
5263 2001-11-02 Fernando Perez <fperez@colorado.edu>
5290 2001-11-02 Fernando Perez <fperez@colorado.edu>
5264
5291
5265 * Python version check (>=2.1) added.
5292 * Python version check (>=2.1) added.
5266
5293
5267 * Added LazyPython documentation. At this point the docs are quite
5294 * Added LazyPython documentation. At this point the docs are quite
5268 a mess. A cleanup is in order.
5295 a mess. A cleanup is in order.
5269
5296
5270 * Auto-installer created. For some bizarre reason, the zipfiles
5297 * Auto-installer created. For some bizarre reason, the zipfiles
5271 module isn't working on my system. So I made a tar version
5298 module isn't working on my system. So I made a tar version
5272 (hopefully the command line options in various systems won't kill
5299 (hopefully the command line options in various systems won't kill
5273 me).
5300 me).
5274
5301
5275 * Fixes to Struct in genutils. Now all dictionary-like methods are
5302 * Fixes to Struct in genutils. Now all dictionary-like methods are
5276 protected (reasonably).
5303 protected (reasonably).
5277
5304
5278 * Added pager function to genutils and changed ? to print usage
5305 * Added pager function to genutils and changed ? to print usage
5279 note through it (it was too long).
5306 note through it (it was too long).
5280
5307
5281 * Added the LazyPython functionality. Works great! I changed the
5308 * Added the LazyPython functionality. Works great! I changed the
5282 auto-quote escape to ';', it's on home row and next to '. But
5309 auto-quote escape to ';', it's on home row and next to '. But
5283 both auto-quote and auto-paren (still /) escapes are command-line
5310 both auto-quote and auto-paren (still /) escapes are command-line
5284 parameters.
5311 parameters.
5285
5312
5286
5313
5287 2001-11-01 Fernando Perez <fperez@colorado.edu>
5314 2001-11-01 Fernando Perez <fperez@colorado.edu>
5288
5315
5289 * Version changed to 0.0.7. Fairly large change: configuration now
5316 * Version changed to 0.0.7. Fairly large change: configuration now
5290 is all stored in a directory, by default .ipython. There, all
5317 is all stored in a directory, by default .ipython. There, all
5291 config files have normal looking names (not .names)
5318 config files have normal looking names (not .names)
5292
5319
5293 * Version 0.0.6 Released first to Lucas and Archie as a test
5320 * Version 0.0.6 Released first to Lucas and Archie as a test
5294 run. Since it's the first 'semi-public' release, change version to
5321 run. Since it's the first 'semi-public' release, change version to
5295 > 0.0.6 for any changes now.
5322 > 0.0.6 for any changes now.
5296
5323
5297 * Stuff I had put in the ipplib.py changelog:
5324 * Stuff I had put in the ipplib.py changelog:
5298
5325
5299 Changes to InteractiveShell:
5326 Changes to InteractiveShell:
5300
5327
5301 - Made the usage message a parameter.
5328 - Made the usage message a parameter.
5302
5329
5303 - Require the name of the shell variable to be given. It's a bit
5330 - Require the name of the shell variable to be given. It's a bit
5304 of a hack, but allows the name 'shell' not to be hardwire in the
5331 of a hack, but allows the name 'shell' not to be hardwire in the
5305 magic (@) handler, which is problematic b/c it requires
5332 magic (@) handler, which is problematic b/c it requires
5306 polluting the global namespace with 'shell'. This in turn is
5333 polluting the global namespace with 'shell'. This in turn is
5307 fragile: if a user redefines a variable called shell, things
5334 fragile: if a user redefines a variable called shell, things
5308 break.
5335 break.
5309
5336
5310 - magic @: all functions available through @ need to be defined
5337 - magic @: all functions available through @ need to be defined
5311 as magic_<name>, even though they can be called simply as
5338 as magic_<name>, even though they can be called simply as
5312 @<name>. This allows the special command @magic to gather
5339 @<name>. This allows the special command @magic to gather
5313 information automatically about all existing magic functions,
5340 information automatically about all existing magic functions,
5314 even if they are run-time user extensions, by parsing the shell
5341 even if they are run-time user extensions, by parsing the shell
5315 instance __dict__ looking for special magic_ names.
5342 instance __dict__ looking for special magic_ names.
5316
5343
5317 - mainloop: added *two* local namespace parameters. This allows
5344 - mainloop: added *two* local namespace parameters. This allows
5318 the class to differentiate between parameters which were there
5345 the class to differentiate between parameters which were there
5319 before and after command line initialization was processed. This
5346 before and after command line initialization was processed. This
5320 way, later @who can show things loaded at startup by the
5347 way, later @who can show things loaded at startup by the
5321 user. This trick was necessary to make session saving/reloading
5348 user. This trick was necessary to make session saving/reloading
5322 really work: ideally after saving/exiting/reloading a session,
5349 really work: ideally after saving/exiting/reloading a session,
5323 *everythin* should look the same, including the output of @who. I
5350 *everythin* should look the same, including the output of @who. I
5324 was only able to make this work with this double namespace
5351 was only able to make this work with this double namespace
5325 trick.
5352 trick.
5326
5353
5327 - added a header to the logfile which allows (almost) full
5354 - added a header to the logfile which allows (almost) full
5328 session restoring.
5355 session restoring.
5329
5356
5330 - prepend lines beginning with @ or !, with a and log
5357 - prepend lines beginning with @ or !, with a and log
5331 them. Why? !lines: may be useful to know what you did @lines:
5358 them. Why? !lines: may be useful to know what you did @lines:
5332 they may affect session state. So when restoring a session, at
5359 they may affect session state. So when restoring a session, at
5333 least inform the user of their presence. I couldn't quite get
5360 least inform the user of their presence. I couldn't quite get
5334 them to properly re-execute, but at least the user is warned.
5361 them to properly re-execute, but at least the user is warned.
5335
5362
5336 * Started ChangeLog.
5363 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now