##// END OF EJS Templates
fix changelog oopsie
vivainio -
Show More
@@ -1,5265 +1,5259 b''
1 2006-03-12 Ville Vainio <vivainio@gmail.com>
1 2006-03-12 Ville Vainio <vivainio@gmail.com>
2
2
3 * Magic.py (magic_timeit): Added %timeit magic, contributed by
3 * Magic.py (magic_timeit): Added %timeit magic, contributed by
4 Torsten Marek.
4 Torsten Marek.
5
5
6 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
6 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
7
7
8 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
8 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
9 line ranges works again.
9 line ranges works again.
10
10
11
12 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
13
14 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
15 line ranges works again.
16
17 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
11 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
18
12
19 * IPython/iplib.py (showtraceback): add back sys.last_traceback
13 * IPython/iplib.py (showtraceback): add back sys.last_traceback
20 and friends, after a discussion with Zach Pincus on ipython-user.
14 and friends, after a discussion with Zach Pincus on ipython-user.
21 I'm not 100% sure, but after thinking aobut it quite a bit, it may
15 I'm not 100% sure, but after thinking aobut it quite a bit, it may
22 be OK. Testing with the multithreaded shells didn't reveal any
16 be OK. Testing with the multithreaded shells didn't reveal any
23 problems, but let's keep an eye out.
17 problems, but let's keep an eye out.
24
18
25 In the process, I fixed a few things which were calling
19 In the process, I fixed a few things which were calling
26 self.InteractiveTB() directly (like safe_execfile), which is a
20 self.InteractiveTB() directly (like safe_execfile), which is a
27 mistake: ALL exception reporting should be done by calling
21 mistake: ALL exception reporting should be done by calling
28 self.showtraceback(), which handles state and tab-completion and
22 self.showtraceback(), which handles state and tab-completion and
29 more.
23 more.
30
24
31 2006-03-01 Ville Vainio <vivainio@gmail.com>
25 2006-03-01 Ville Vainio <vivainio@gmail.com>
32
26
33 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
27 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
34 To use, do "from ipipe import *".
28 To use, do "from ipipe import *".
35
29
36 2006-02-24 Ville Vainio <vivainio@gmail.com>
30 2006-02-24 Ville Vainio <vivainio@gmail.com>
37
31
38 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
32 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
39 "cleanly" and safely than the older upgrade mechanism.
33 "cleanly" and safely than the older upgrade mechanism.
40
34
41 2006-02-21 Ville Vainio <vivainio@gmail.com>
35 2006-02-21 Ville Vainio <vivainio@gmail.com>
42
36
43 * Magic.py: %save works again.
37 * Magic.py: %save works again.
44
38
45 2006-02-15 Ville Vainio <vivainio@gmail.com>
39 2006-02-15 Ville Vainio <vivainio@gmail.com>
46
40
47 * Magic.py: %Pprint works again
41 * Magic.py: %Pprint works again
48
42
49 * Extensions/ipy_sane_defaults.py: Provide everything provided
43 * Extensions/ipy_sane_defaults.py: Provide everything provided
50 in default ipythonrc, to make it possible to have a completely empty
44 in default ipythonrc, to make it possible to have a completely empty
51 ipythonrc (and thus completely rc-file free configuration)
45 ipythonrc (and thus completely rc-file free configuration)
52
46
53
47
54 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
48 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
55
49
56 * IPython/hooks.py (editor): quote the call to the editor command,
50 * IPython/hooks.py (editor): quote the call to the editor command,
57 to allow commands with spaces in them. Problem noted by watching
51 to allow commands with spaces in them. Problem noted by watching
58 Ian Oswald's video about textpad under win32 at
52 Ian Oswald's video about textpad under win32 at
59 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
53 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
60
54
61 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
55 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
62 describing magics (we haven't used @ for a loong time).
56 describing magics (we haven't used @ for a loong time).
63
57
64 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
58 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
65 contributed by marienz to close
59 contributed by marienz to close
66 http://www.scipy.net/roundup/ipython/issue53.
60 http://www.scipy.net/roundup/ipython/issue53.
67
61
68 2006-02-10 Ville Vainio <vivainio@gmail.com>
62 2006-02-10 Ville Vainio <vivainio@gmail.com>
69
63
70 * genutils.py: getoutput now works in win32 too
64 * genutils.py: getoutput now works in win32 too
71
65
72 * completer.py: alias and magic completion only invoked
66 * completer.py: alias and magic completion only invoked
73 at the first "item" in the line, to avoid "cd %store"
67 at the first "item" in the line, to avoid "cd %store"
74 nonsense.
68 nonsense.
75
69
76 2006-02-09 Ville Vainio <vivainio@gmail.com>
70 2006-02-09 Ville Vainio <vivainio@gmail.com>
77
71
78 * test/*: Added a unit testing framework (finally).
72 * test/*: Added a unit testing framework (finally).
79 '%run runtests.py' to run test_*.
73 '%run runtests.py' to run test_*.
80
74
81 * ipapi.py: Exposed runlines and set_custom_exc
75 * ipapi.py: Exposed runlines and set_custom_exc
82
76
83 2006-02-07 Ville Vainio <vivainio@gmail.com>
77 2006-02-07 Ville Vainio <vivainio@gmail.com>
84
78
85 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
79 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
86 instead use "f(1 2)" as before.
80 instead use "f(1 2)" as before.
87
81
88 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
82 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
89
83
90 * IPython/demo.py (IPythonDemo): Add new classes to the demo
84 * IPython/demo.py (IPythonDemo): Add new classes to the demo
91 facilities, for demos processed by the IPython input filter
85 facilities, for demos processed by the IPython input filter
92 (IPythonDemo), and for running a script one-line-at-a-time as a
86 (IPythonDemo), and for running a script one-line-at-a-time as a
93 demo, both for pure Python (LineDemo) and for IPython-processed
87 demo, both for pure Python (LineDemo) and for IPython-processed
94 input (IPythonLineDemo). After a request by Dave Kohel, from the
88 input (IPythonLineDemo). After a request by Dave Kohel, from the
95 SAGE team.
89 SAGE team.
96 (Demo.edit): added and edit() method to the demo objects, to edit
90 (Demo.edit): added and edit() method to the demo objects, to edit
97 the in-memory copy of the last executed block.
91 the in-memory copy of the last executed block.
98
92
99 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
93 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
100 processing to %edit, %macro and %save. These commands can now be
94 processing to %edit, %macro and %save. These commands can now be
101 invoked on the unprocessed input as it was typed by the user
95 invoked on the unprocessed input as it was typed by the user
102 (without any prefilters applied). After requests by the SAGE team
96 (without any prefilters applied). After requests by the SAGE team
103 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
97 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
104
98
105 2006-02-01 Ville Vainio <vivainio@gmail.com>
99 2006-02-01 Ville Vainio <vivainio@gmail.com>
106
100
107 * setup.py, eggsetup.py: easy_install ipython==dev works
101 * setup.py, eggsetup.py: easy_install ipython==dev works
108 correctly now (on Linux)
102 correctly now (on Linux)
109
103
110 * ipy_user_conf,ipmaker: user config changes, removed spurious
104 * ipy_user_conf,ipmaker: user config changes, removed spurious
111 warnings
105 warnings
112
106
113 * iplib: if rc.banner is string, use it as is.
107 * iplib: if rc.banner is string, use it as is.
114
108
115 * Magic: %pycat accepts a string argument and pages it's contents.
109 * Magic: %pycat accepts a string argument and pages it's contents.
116
110
117
111
118 2006-01-30 Ville Vainio <vivainio@gmail.com>
112 2006-01-30 Ville Vainio <vivainio@gmail.com>
119
113
120 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
114 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
121 Now %store and bookmarks work through PickleShare, meaning that
115 Now %store and bookmarks work through PickleShare, meaning that
122 concurrent access is possible and all ipython sessions see the
116 concurrent access is possible and all ipython sessions see the
123 same database situation all the time, instead of snapshot of
117 same database situation all the time, instead of snapshot of
124 the situation when the session was started. Hence, %bookmark
118 the situation when the session was started. Hence, %bookmark
125 results are immediately accessible from othes sessions. The database
119 results are immediately accessible from othes sessions. The database
126 is also available for use by user extensions. See:
120 is also available for use by user extensions. See:
127 http://www.python.org/pypi/pickleshare
121 http://www.python.org/pypi/pickleshare
128
122
129 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
123 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
130
124
131 * aliases can now be %store'd
125 * aliases can now be %store'd
132
126
133 * path.py move to Extensions so that pickleshare does not need
127 * path.py move to Extensions so that pickleshare does not need
134 IPython-specific import. Extensions added to pythonpath right
128 IPython-specific import. Extensions added to pythonpath right
135 at __init__.
129 at __init__.
136
130
137 * iplib.py: ipalias deprecated/redundant; aliases are converted and
131 * iplib.py: ipalias deprecated/redundant; aliases are converted and
138 called with _ip.system and the pre-transformed command string.
132 called with _ip.system and the pre-transformed command string.
139
133
140 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
134 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
141
135
142 * IPython/iplib.py (interact): Fix that we were not catching
136 * IPython/iplib.py (interact): Fix that we were not catching
143 KeyboardInterrupt exceptions properly. I'm not quite sure why the
137 KeyboardInterrupt exceptions properly. I'm not quite sure why the
144 logic here had to change, but it's fixed now.
138 logic here had to change, but it's fixed now.
145
139
146 2006-01-29 Ville Vainio <vivainio@gmail.com>
140 2006-01-29 Ville Vainio <vivainio@gmail.com>
147
141
148 * iplib.py: Try to import pyreadline on Windows.
142 * iplib.py: Try to import pyreadline on Windows.
149
143
150 2006-01-27 Ville Vainio <vivainio@gmail.com>
144 2006-01-27 Ville Vainio <vivainio@gmail.com>
151
145
152 * iplib.py: Expose ipapi as _ip in builtin namespace.
146 * iplib.py: Expose ipapi as _ip in builtin namespace.
153 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
147 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
154 and ip_set_hook (-> _ip.set_hook) redundant. % and !
148 and ip_set_hook (-> _ip.set_hook) redundant. % and !
155 syntax now produce _ip.* variant of the commands.
149 syntax now produce _ip.* variant of the commands.
156
150
157 * "_ip.options().autoedit_syntax = 2" automatically throws
151 * "_ip.options().autoedit_syntax = 2" automatically throws
158 user to editor for syntax error correction without prompting.
152 user to editor for syntax error correction without prompting.
159
153
160 2006-01-27 Ville Vainio <vivainio@gmail.com>
154 2006-01-27 Ville Vainio <vivainio@gmail.com>
161
155
162 * ipmaker.py: Give "realistic" sys.argv for scripts (without
156 * ipmaker.py: Give "realistic" sys.argv for scripts (without
163 'ipython' at argv[0]) executed through command line.
157 'ipython' at argv[0]) executed through command line.
164 NOTE: this DEPRECATES calling ipython with multiple scripts
158 NOTE: this DEPRECATES calling ipython with multiple scripts
165 ("ipython a.py b.py c.py")
159 ("ipython a.py b.py c.py")
166
160
167 * iplib.py, hooks.py: Added configurable input prefilter,
161 * iplib.py, hooks.py: Added configurable input prefilter,
168 named 'input_prefilter'. See ext_rescapture.py for example
162 named 'input_prefilter'. See ext_rescapture.py for example
169 usage.
163 usage.
170
164
171 * ext_rescapture.py, Magic.py: Better system command output capture
165 * ext_rescapture.py, Magic.py: Better system command output capture
172 through 'var = !ls' (deprecates user-visible %sc). Same notation
166 through 'var = !ls' (deprecates user-visible %sc). Same notation
173 applies for magics, 'var = %alias' assigns alias list to var.
167 applies for magics, 'var = %alias' assigns alias list to var.
174
168
175 * ipapi.py: added meta() for accessing extension-usable data store.
169 * ipapi.py: added meta() for accessing extension-usable data store.
176
170
177 * iplib.py: added InteractiveShell.getapi(). New magics should be
171 * iplib.py: added InteractiveShell.getapi(). New magics should be
178 written doing self.getapi() instead of using the shell directly.
172 written doing self.getapi() instead of using the shell directly.
179
173
180 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
174 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
181 %store foo >> ~/myfoo.txt to store variables to files (in clean
175 %store foo >> ~/myfoo.txt to store variables to files (in clean
182 textual form, not a restorable pickle).
176 textual form, not a restorable pickle).
183
177
184 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
178 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
185
179
186 * usage.py, Magic.py: added %quickref
180 * usage.py, Magic.py: added %quickref
187
181
188 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
182 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
189
183
190 * GetoptErrors when invoking magics etc. with wrong args
184 * GetoptErrors when invoking magics etc. with wrong args
191 are now more helpful:
185 are now more helpful:
192 GetoptError: option -l not recognized (allowed: "qb" )
186 GetoptError: option -l not recognized (allowed: "qb" )
193
187
194 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
188 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
195
189
196 * IPython/demo.py (Demo.show): Flush stdout after each block, so
190 * IPython/demo.py (Demo.show): Flush stdout after each block, so
197 computationally intensive blocks don't appear to stall the demo.
191 computationally intensive blocks don't appear to stall the demo.
198
192
199 2006-01-24 Ville Vainio <vivainio@gmail.com>
193 2006-01-24 Ville Vainio <vivainio@gmail.com>
200
194
201 * iplib.py, hooks.py: 'result_display' hook can return a non-None
195 * iplib.py, hooks.py: 'result_display' hook can return a non-None
202 value to manipulate resulting history entry.
196 value to manipulate resulting history entry.
203
197
204 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
198 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
205 to instance methods of IPApi class, to make extending an embedded
199 to instance methods of IPApi class, to make extending an embedded
206 IPython feasible. See ext_rehashdir.py for example usage.
200 IPython feasible. See ext_rehashdir.py for example usage.
207
201
208 * Merged 1071-1076 from banches/0.7.1
202 * Merged 1071-1076 from banches/0.7.1
209
203
210
204
211 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
205 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
212
206
213 * tools/release (daystamp): Fix build tools to use the new
207 * tools/release (daystamp): Fix build tools to use the new
214 eggsetup.py script to build lightweight eggs.
208 eggsetup.py script to build lightweight eggs.
215
209
216 * Applied changesets 1062 and 1064 before 0.7.1 release.
210 * Applied changesets 1062 and 1064 before 0.7.1 release.
217
211
218 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
212 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
219 see the raw input history (without conversions like %ls ->
213 see the raw input history (without conversions like %ls ->
220 ipmagic("ls")). After a request from W. Stein, SAGE
214 ipmagic("ls")). After a request from W. Stein, SAGE
221 (http://modular.ucsd.edu/sage) developer. This information is
215 (http://modular.ucsd.edu/sage) developer. This information is
222 stored in the input_hist_raw attribute of the IPython instance, so
216 stored in the input_hist_raw attribute of the IPython instance, so
223 developers can access it if needed (it's an InputList instance).
217 developers can access it if needed (it's an InputList instance).
224
218
225 * Versionstring = 0.7.2.svn
219 * Versionstring = 0.7.2.svn
226
220
227 * eggsetup.py: A separate script for constructing eggs, creates
221 * eggsetup.py: A separate script for constructing eggs, creates
228 proper launch scripts even on Windows (an .exe file in
222 proper launch scripts even on Windows (an .exe file in
229 \python24\scripts).
223 \python24\scripts).
230
224
231 * ipapi.py: launch_new_instance, launch entry point needed for the
225 * ipapi.py: launch_new_instance, launch entry point needed for the
232 egg.
226 egg.
233
227
234 2006-01-23 Ville Vainio <vivainio@gmail.com>
228 2006-01-23 Ville Vainio <vivainio@gmail.com>
235
229
236 * Added %cpaste magic for pasting python code
230 * Added %cpaste magic for pasting python code
237
231
238 2006-01-22 Ville Vainio <vivainio@gmail.com>
232 2006-01-22 Ville Vainio <vivainio@gmail.com>
239
233
240 * Merge from branches/0.7.1 into trunk, revs 1052-1057
234 * Merge from branches/0.7.1 into trunk, revs 1052-1057
241
235
242 * Versionstring = 0.7.2.svn
236 * Versionstring = 0.7.2.svn
243
237
244 * eggsetup.py: A separate script for constructing eggs, creates
238 * eggsetup.py: A separate script for constructing eggs, creates
245 proper launch scripts even on Windows (an .exe file in
239 proper launch scripts even on Windows (an .exe file in
246 \python24\scripts).
240 \python24\scripts).
247
241
248 * ipapi.py: launch_new_instance, launch entry point needed for the
242 * ipapi.py: launch_new_instance, launch entry point needed for the
249 egg.
243 egg.
250
244
251 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
245 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
252
246
253 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
247 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
254 %pfile foo would print the file for foo even if it was a binary.
248 %pfile foo would print the file for foo even if it was a binary.
255 Now, extensions '.so' and '.dll' are skipped.
249 Now, extensions '.so' and '.dll' are skipped.
256
250
257 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
251 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
258 bug, where macros would fail in all threaded modes. I'm not 100%
252 bug, where macros would fail in all threaded modes. I'm not 100%
259 sure, so I'm going to put out an rc instead of making a release
253 sure, so I'm going to put out an rc instead of making a release
260 today, and wait for feedback for at least a few days.
254 today, and wait for feedback for at least a few days.
261
255
262 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
256 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
263 it...) the handling of pasting external code with autoindent on.
257 it...) the handling of pasting external code with autoindent on.
264 To get out of a multiline input, the rule will appear for most
258 To get out of a multiline input, the rule will appear for most
265 users unchanged: two blank lines or change the indent level
259 users unchanged: two blank lines or change the indent level
266 proposed by IPython. But there is a twist now: you can
260 proposed by IPython. But there is a twist now: you can
267 add/subtract only *one or two spaces*. If you add/subtract three
261 add/subtract only *one or two spaces*. If you add/subtract three
268 or more (unless you completely delete the line), IPython will
262 or more (unless you completely delete the line), IPython will
269 accept that line, and you'll need to enter a second one of pure
263 accept that line, and you'll need to enter a second one of pure
270 whitespace. I know it sounds complicated, but I can't find a
264 whitespace. I know it sounds complicated, but I can't find a
271 different solution that covers all the cases, with the right
265 different solution that covers all the cases, with the right
272 heuristics. Hopefully in actual use, nobody will really notice
266 heuristics. Hopefully in actual use, nobody will really notice
273 all these strange rules and things will 'just work'.
267 all these strange rules and things will 'just work'.
274
268
275 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
269 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
276
270
277 * IPython/iplib.py (interact): catch exceptions which can be
271 * IPython/iplib.py (interact): catch exceptions which can be
278 triggered asynchronously by signal handlers. Thanks to an
272 triggered asynchronously by signal handlers. Thanks to an
279 automatic crash report, submitted by Colin Kingsley
273 automatic crash report, submitted by Colin Kingsley
280 <tercel-AT-gentoo.org>.
274 <tercel-AT-gentoo.org>.
281
275
282 2006-01-20 Ville Vainio <vivainio@gmail.com>
276 2006-01-20 Ville Vainio <vivainio@gmail.com>
283
277
284 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
278 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
285 (%rehashdir, very useful, try it out) of how to extend ipython
279 (%rehashdir, very useful, try it out) of how to extend ipython
286 with new magics. Also added Extensions dir to pythonpath to make
280 with new magics. Also added Extensions dir to pythonpath to make
287 importing extensions easy.
281 importing extensions easy.
288
282
289 * %store now complains when trying to store interactively declared
283 * %store now complains when trying to store interactively declared
290 classes / instances of those classes.
284 classes / instances of those classes.
291
285
292 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
286 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
293 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
287 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
294 if they exist, and ipy_user_conf.py with some defaults is created for
288 if they exist, and ipy_user_conf.py with some defaults is created for
295 the user.
289 the user.
296
290
297 * Startup rehashing done by the config file, not InterpreterExec.
291 * Startup rehashing done by the config file, not InterpreterExec.
298 This means system commands are available even without selecting the
292 This means system commands are available even without selecting the
299 pysh profile. It's the sensible default after all.
293 pysh profile. It's the sensible default after all.
300
294
301 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
295 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
302
296
303 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
297 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
304 multiline code with autoindent on working. But I am really not
298 multiline code with autoindent on working. But I am really not
305 sure, so this needs more testing. Will commit a debug-enabled
299 sure, so this needs more testing. Will commit a debug-enabled
306 version for now, while I test it some more, so that Ville and
300 version for now, while I test it some more, so that Ville and
307 others may also catch any problems. Also made
301 others may also catch any problems. Also made
308 self.indent_current_str() a method, to ensure that there's no
302 self.indent_current_str() a method, to ensure that there's no
309 chance of the indent space count and the corresponding string
303 chance of the indent space count and the corresponding string
310 falling out of sync. All code needing the string should just call
304 falling out of sync. All code needing the string should just call
311 the method.
305 the method.
312
306
313 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
307 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
314
308
315 * IPython/Magic.py (magic_edit): fix check for when users don't
309 * IPython/Magic.py (magic_edit): fix check for when users don't
316 save their output files, the try/except was in the wrong section.
310 save their output files, the try/except was in the wrong section.
317
311
318 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
312 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
319
313
320 * IPython/Magic.py (magic_run): fix __file__ global missing from
314 * IPython/Magic.py (magic_run): fix __file__ global missing from
321 script's namespace when executed via %run. After a report by
315 script's namespace when executed via %run. After a report by
322 Vivian.
316 Vivian.
323
317
324 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
318 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
325 when using python 2.4. The parent constructor changed in 2.4, and
319 when using python 2.4. The parent constructor changed in 2.4, and
326 we need to track it directly (we can't call it, as it messes up
320 we need to track it directly (we can't call it, as it messes up
327 readline and tab-completion inside our pdb would stop working).
321 readline and tab-completion inside our pdb would stop working).
328 After a bug report by R. Bernstein <rocky-AT-panix.com>.
322 After a bug report by R. Bernstein <rocky-AT-panix.com>.
329
323
330 2006-01-16 Ville Vainio <vivainio@gmail.com>
324 2006-01-16 Ville Vainio <vivainio@gmail.com>
331
325
332 * Ipython/magic.py:Reverted back to old %edit functionality
326 * Ipython/magic.py:Reverted back to old %edit functionality
333 that returns file contents on exit.
327 that returns file contents on exit.
334
328
335 * IPython/path.py: Added Jason Orendorff's "path" module to
329 * IPython/path.py: Added Jason Orendorff's "path" module to
336 IPython tree, http://www.jorendorff.com/articles/python/path/.
330 IPython tree, http://www.jorendorff.com/articles/python/path/.
337 You can get path objects conveniently through %sc, and !!, e.g.:
331 You can get path objects conveniently through %sc, and !!, e.g.:
338 sc files=ls
332 sc files=ls
339 for p in files.paths: # or files.p
333 for p in files.paths: # or files.p
340 print p,p.mtime
334 print p,p.mtime
341
335
342 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
336 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
343 now work again without considering the exclusion regexp -
337 now work again without considering the exclusion regexp -
344 hence, things like ',foo my/path' turn to 'foo("my/path")'
338 hence, things like ',foo my/path' turn to 'foo("my/path")'
345 instead of syntax error.
339 instead of syntax error.
346
340
347
341
348 2006-01-14 Ville Vainio <vivainio@gmail.com>
342 2006-01-14 Ville Vainio <vivainio@gmail.com>
349
343
350 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
344 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
351 ipapi decorators for python 2.4 users, options() provides access to rc
345 ipapi decorators for python 2.4 users, options() provides access to rc
352 data.
346 data.
353
347
354 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
348 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
355 as path separators (even on Linux ;-). Space character after
349 as path separators (even on Linux ;-). Space character after
356 backslash (as yielded by tab completer) is still space;
350 backslash (as yielded by tab completer) is still space;
357 "%cd long\ name" works as expected.
351 "%cd long\ name" works as expected.
358
352
359 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
353 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
360 as "chain of command", with priority. API stays the same,
354 as "chain of command", with priority. API stays the same,
361 TryNext exception raised by a hook function signals that
355 TryNext exception raised by a hook function signals that
362 current hook failed and next hook should try handling it, as
356 current hook failed and next hook should try handling it, as
363 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
357 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
364 requested configurable display hook, which is now implemented.
358 requested configurable display hook, which is now implemented.
365
359
366 2006-01-13 Ville Vainio <vivainio@gmail.com>
360 2006-01-13 Ville Vainio <vivainio@gmail.com>
367
361
368 * IPython/platutils*.py: platform specific utility functions,
362 * IPython/platutils*.py: platform specific utility functions,
369 so far only set_term_title is implemented (change terminal
363 so far only set_term_title is implemented (change terminal
370 label in windowing systems). %cd now changes the title to
364 label in windowing systems). %cd now changes the title to
371 current dir.
365 current dir.
372
366
373 * IPython/Release.py: Added myself to "authors" list,
367 * IPython/Release.py: Added myself to "authors" list,
374 had to create new files.
368 had to create new files.
375
369
376 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
370 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
377 shell escape; not a known bug but had potential to be one in the
371 shell escape; not a known bug but had potential to be one in the
378 future.
372 future.
379
373
380 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
374 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
381 extension API for IPython! See the module for usage example. Fix
375 extension API for IPython! See the module for usage example. Fix
382 OInspect for docstring-less magic functions.
376 OInspect for docstring-less magic functions.
383
377
384
378
385 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
379 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
386
380
387 * IPython/iplib.py (raw_input): temporarily deactivate all
381 * IPython/iplib.py (raw_input): temporarily deactivate all
388 attempts at allowing pasting of code with autoindent on. It
382 attempts at allowing pasting of code with autoindent on. It
389 introduced bugs (reported by Prabhu) and I can't seem to find a
383 introduced bugs (reported by Prabhu) and I can't seem to find a
390 robust combination which works in all cases. Will have to revisit
384 robust combination which works in all cases. Will have to revisit
391 later.
385 later.
392
386
393 * IPython/genutils.py: remove isspace() function. We've dropped
387 * IPython/genutils.py: remove isspace() function. We've dropped
394 2.2 compatibility, so it's OK to use the string method.
388 2.2 compatibility, so it's OK to use the string method.
395
389
396 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
390 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
397
391
398 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
392 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
399 matching what NOT to autocall on, to include all python binary
393 matching what NOT to autocall on, to include all python binary
400 operators (including things like 'and', 'or', 'is' and 'in').
394 operators (including things like 'and', 'or', 'is' and 'in').
401 Prompted by a bug report on 'foo & bar', but I realized we had
395 Prompted by a bug report on 'foo & bar', but I realized we had
402 many more potential bug cases with other operators. The regexp is
396 many more potential bug cases with other operators. The regexp is
403 self.re_exclude_auto, it's fairly commented.
397 self.re_exclude_auto, it's fairly commented.
404
398
405 2006-01-12 Ville Vainio <vivainio@gmail.com>
399 2006-01-12 Ville Vainio <vivainio@gmail.com>
406
400
407 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
401 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
408 Prettified and hardened string/backslash quoting with ipsystem(),
402 Prettified and hardened string/backslash quoting with ipsystem(),
409 ipalias() and ipmagic(). Now even \ characters are passed to
403 ipalias() and ipmagic(). Now even \ characters are passed to
410 %magics, !shell escapes and aliases exactly as they are in the
404 %magics, !shell escapes and aliases exactly as they are in the
411 ipython command line. Should improve backslash experience,
405 ipython command line. Should improve backslash experience,
412 particularly in Windows (path delimiter for some commands that
406 particularly in Windows (path delimiter for some commands that
413 won't understand '/'), but Unix benefits as well (regexps). %cd
407 won't understand '/'), but Unix benefits as well (regexps). %cd
414 magic still doesn't support backslash path delimiters, though. Also
408 magic still doesn't support backslash path delimiters, though. Also
415 deleted all pretense of supporting multiline command strings in
409 deleted all pretense of supporting multiline command strings in
416 !system or %magic commands. Thanks to Jerry McRae for suggestions.
410 !system or %magic commands. Thanks to Jerry McRae for suggestions.
417
411
418 * doc/build_doc_instructions.txt added. Documentation on how to
412 * doc/build_doc_instructions.txt added. Documentation on how to
419 use doc/update_manual.py, added yesterday. Both files contributed
413 use doc/update_manual.py, added yesterday. Both files contributed
420 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
414 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
421 doc/*.sh for deprecation at a later date.
415 doc/*.sh for deprecation at a later date.
422
416
423 * /ipython.py Added ipython.py to root directory for
417 * /ipython.py Added ipython.py to root directory for
424 zero-installation (tar xzvf ipython.tgz; cd ipython; python
418 zero-installation (tar xzvf ipython.tgz; cd ipython; python
425 ipython.py) and development convenience (no need to kee doing
419 ipython.py) and development convenience (no need to kee doing
426 "setup.py install" between changes).
420 "setup.py install" between changes).
427
421
428 * Made ! and !! shell escapes work (again) in multiline expressions:
422 * Made ! and !! shell escapes work (again) in multiline expressions:
429 if 1:
423 if 1:
430 !ls
424 !ls
431 !!ls
425 !!ls
432
426
433 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
427 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
434
428
435 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
429 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
436 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
430 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
437 module in case-insensitive installation. Was causing crashes
431 module in case-insensitive installation. Was causing crashes
438 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
432 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
439
433
440 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
434 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
441 <marienz-AT-gentoo.org>, closes
435 <marienz-AT-gentoo.org>, closes
442 http://www.scipy.net/roundup/ipython/issue51.
436 http://www.scipy.net/roundup/ipython/issue51.
443
437
444 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
438 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
445
439
446 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
440 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
447 problem of excessive CPU usage under *nix and keyboard lag under
441 problem of excessive CPU usage under *nix and keyboard lag under
448 win32.
442 win32.
449
443
450 2006-01-10 *** Released version 0.7.0
444 2006-01-10 *** Released version 0.7.0
451
445
452 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
446 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
453
447
454 * IPython/Release.py (revision): tag version number to 0.7.0,
448 * IPython/Release.py (revision): tag version number to 0.7.0,
455 ready for release.
449 ready for release.
456
450
457 * IPython/Magic.py (magic_edit): Add print statement to %edit so
451 * IPython/Magic.py (magic_edit): Add print statement to %edit so
458 it informs the user of the name of the temp. file used. This can
452 it informs the user of the name of the temp. file used. This can
459 help if you decide later to reuse that same file, so you know
453 help if you decide later to reuse that same file, so you know
460 where to copy the info from.
454 where to copy the info from.
461
455
462 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
456 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
463
457
464 * setup_bdist_egg.py: little script to build an egg. Added
458 * setup_bdist_egg.py: little script to build an egg. Added
465 support in the release tools as well.
459 support in the release tools as well.
466
460
467 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
461 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
468
462
469 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
463 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
470 version selection (new -wxversion command line and ipythonrc
464 version selection (new -wxversion command line and ipythonrc
471 parameter). Patch contributed by Arnd Baecker
465 parameter). Patch contributed by Arnd Baecker
472 <arnd.baecker-AT-web.de>.
466 <arnd.baecker-AT-web.de>.
473
467
474 * IPython/iplib.py (embed_mainloop): fix tab-completion in
468 * IPython/iplib.py (embed_mainloop): fix tab-completion in
475 embedded instances, for variables defined at the interactive
469 embedded instances, for variables defined at the interactive
476 prompt of the embedded ipython. Reported by Arnd.
470 prompt of the embedded ipython. Reported by Arnd.
477
471
478 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
472 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
479 it can be used as a (stateful) toggle, or with a direct parameter.
473 it can be used as a (stateful) toggle, or with a direct parameter.
480
474
481 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
475 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
482 could be triggered in certain cases and cause the traceback
476 could be triggered in certain cases and cause the traceback
483 printer not to work.
477 printer not to work.
484
478
485 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
479 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
486
480
487 * IPython/iplib.py (_should_recompile): Small fix, closes
481 * IPython/iplib.py (_should_recompile): Small fix, closes
488 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
482 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
489
483
490 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
484 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
491
485
492 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
486 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
493 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
487 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
494 Moad for help with tracking it down.
488 Moad for help with tracking it down.
495
489
496 * IPython/iplib.py (handle_auto): fix autocall handling for
490 * IPython/iplib.py (handle_auto): fix autocall handling for
497 objects which support BOTH __getitem__ and __call__ (so that f [x]
491 objects which support BOTH __getitem__ and __call__ (so that f [x]
498 is left alone, instead of becoming f([x]) automatically).
492 is left alone, instead of becoming f([x]) automatically).
499
493
500 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
494 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
501 Ville's patch.
495 Ville's patch.
502
496
503 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
497 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
504
498
505 * IPython/iplib.py (handle_auto): changed autocall semantics to
499 * IPython/iplib.py (handle_auto): changed autocall semantics to
506 include 'smart' mode, where the autocall transformation is NOT
500 include 'smart' mode, where the autocall transformation is NOT
507 applied if there are no arguments on the line. This allows you to
501 applied if there are no arguments on the line. This allows you to
508 just type 'foo' if foo is a callable to see its internal form,
502 just type 'foo' if foo is a callable to see its internal form,
509 instead of having it called with no arguments (typically a
503 instead of having it called with no arguments (typically a
510 mistake). The old 'full' autocall still exists: for that, you
504 mistake). The old 'full' autocall still exists: for that, you
511 need to set the 'autocall' parameter to 2 in your ipythonrc file.
505 need to set the 'autocall' parameter to 2 in your ipythonrc file.
512
506
513 * IPython/completer.py (Completer.attr_matches): add
507 * IPython/completer.py (Completer.attr_matches): add
514 tab-completion support for Enthoughts' traits. After a report by
508 tab-completion support for Enthoughts' traits. After a report by
515 Arnd and a patch by Prabhu.
509 Arnd and a patch by Prabhu.
516
510
517 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
511 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
518
512
519 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
513 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
520 Schmolck's patch to fix inspect.getinnerframes().
514 Schmolck's patch to fix inspect.getinnerframes().
521
515
522 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
516 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
523 for embedded instances, regarding handling of namespaces and items
517 for embedded instances, regarding handling of namespaces and items
524 added to the __builtin__ one. Multiple embedded instances and
518 added to the __builtin__ one. Multiple embedded instances and
525 recursive embeddings should work better now (though I'm not sure
519 recursive embeddings should work better now (though I'm not sure
526 I've got all the corner cases fixed, that code is a bit of a brain
520 I've got all the corner cases fixed, that code is a bit of a brain
527 twister).
521 twister).
528
522
529 * IPython/Magic.py (magic_edit): added support to edit in-memory
523 * IPython/Magic.py (magic_edit): added support to edit in-memory
530 macros (automatically creates the necessary temp files). %edit
524 macros (automatically creates the necessary temp files). %edit
531 also doesn't return the file contents anymore, it's just noise.
525 also doesn't return the file contents anymore, it's just noise.
532
526
533 * IPython/completer.py (Completer.attr_matches): revert change to
527 * IPython/completer.py (Completer.attr_matches): revert change to
534 complete only on attributes listed in __all__. I realized it
528 complete only on attributes listed in __all__. I realized it
535 cripples the tab-completion system as a tool for exploring the
529 cripples the tab-completion system as a tool for exploring the
536 internals of unknown libraries (it renders any non-__all__
530 internals of unknown libraries (it renders any non-__all__
537 attribute off-limits). I got bit by this when trying to see
531 attribute off-limits). I got bit by this when trying to see
538 something inside the dis module.
532 something inside the dis module.
539
533
540 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
534 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
541
535
542 * IPython/iplib.py (InteractiveShell.__init__): add .meta
536 * IPython/iplib.py (InteractiveShell.__init__): add .meta
543 namespace for users and extension writers to hold data in. This
537 namespace for users and extension writers to hold data in. This
544 follows the discussion in
538 follows the discussion in
545 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
539 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
546
540
547 * IPython/completer.py (IPCompleter.complete): small patch to help
541 * IPython/completer.py (IPCompleter.complete): small patch to help
548 tab-completion under Emacs, after a suggestion by John Barnard
542 tab-completion under Emacs, after a suggestion by John Barnard
549 <barnarj-AT-ccf.org>.
543 <barnarj-AT-ccf.org>.
550
544
551 * IPython/Magic.py (Magic.extract_input_slices): added support for
545 * IPython/Magic.py (Magic.extract_input_slices): added support for
552 the slice notation in magics to use N-M to represent numbers N...M
546 the slice notation in magics to use N-M to represent numbers N...M
553 (closed endpoints). This is used by %macro and %save.
547 (closed endpoints). This is used by %macro and %save.
554
548
555 * IPython/completer.py (Completer.attr_matches): for modules which
549 * IPython/completer.py (Completer.attr_matches): for modules which
556 define __all__, complete only on those. After a patch by Jeffrey
550 define __all__, complete only on those. After a patch by Jeffrey
557 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
551 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
558 speed up this routine.
552 speed up this routine.
559
553
560 * IPython/Logger.py (Logger.log): fix a history handling bug. I
554 * IPython/Logger.py (Logger.log): fix a history handling bug. I
561 don't know if this is the end of it, but the behavior now is
555 don't know if this is the end of it, but the behavior now is
562 certainly much more correct. Note that coupled with macros,
556 certainly much more correct. Note that coupled with macros,
563 slightly surprising (at first) behavior may occur: a macro will in
557 slightly surprising (at first) behavior may occur: a macro will in
564 general expand to multiple lines of input, so upon exiting, the
558 general expand to multiple lines of input, so upon exiting, the
565 in/out counters will both be bumped by the corresponding amount
559 in/out counters will both be bumped by the corresponding amount
566 (as if the macro's contents had been typed interactively). Typing
560 (as if the macro's contents had been typed interactively). Typing
567 %hist will reveal the intermediate (silently processed) lines.
561 %hist will reveal the intermediate (silently processed) lines.
568
562
569 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
563 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
570 pickle to fail (%run was overwriting __main__ and not restoring
564 pickle to fail (%run was overwriting __main__ and not restoring
571 it, but pickle relies on __main__ to operate).
565 it, but pickle relies on __main__ to operate).
572
566
573 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
567 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
574 using properties, but forgot to make the main InteractiveShell
568 using properties, but forgot to make the main InteractiveShell
575 class a new-style class. Properties fail silently, and
569 class a new-style class. Properties fail silently, and
576 misteriously, with old-style class (getters work, but
570 misteriously, with old-style class (getters work, but
577 setters don't do anything).
571 setters don't do anything).
578
572
579 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
573 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
580
574
581 * IPython/Magic.py (magic_history): fix history reporting bug (I
575 * IPython/Magic.py (magic_history): fix history reporting bug (I
582 know some nasties are still there, I just can't seem to find a
576 know some nasties are still there, I just can't seem to find a
583 reproducible test case to track them down; the input history is
577 reproducible test case to track them down; the input history is
584 falling out of sync...)
578 falling out of sync...)
585
579
586 * IPython/iplib.py (handle_shell_escape): fix bug where both
580 * IPython/iplib.py (handle_shell_escape): fix bug where both
587 aliases and system accesses where broken for indented code (such
581 aliases and system accesses where broken for indented code (such
588 as loops).
582 as loops).
589
583
590 * IPython/genutils.py (shell): fix small but critical bug for
584 * IPython/genutils.py (shell): fix small but critical bug for
591 win32 system access.
585 win32 system access.
592
586
593 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
587 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
594
588
595 * IPython/iplib.py (showtraceback): remove use of the
589 * IPython/iplib.py (showtraceback): remove use of the
596 sys.last_{type/value/traceback} structures, which are non
590 sys.last_{type/value/traceback} structures, which are non
597 thread-safe.
591 thread-safe.
598 (_prefilter): change control flow to ensure that we NEVER
592 (_prefilter): change control flow to ensure that we NEVER
599 introspect objects when autocall is off. This will guarantee that
593 introspect objects when autocall is off. This will guarantee that
600 having an input line of the form 'x.y', where access to attribute
594 having an input line of the form 'x.y', where access to attribute
601 'y' has side effects, doesn't trigger the side effect TWICE. It
595 'y' has side effects, doesn't trigger the side effect TWICE. It
602 is important to note that, with autocall on, these side effects
596 is important to note that, with autocall on, these side effects
603 can still happen.
597 can still happen.
604 (ipsystem): new builtin, to complete the ip{magic/alias/system}
598 (ipsystem): new builtin, to complete the ip{magic/alias/system}
605 trio. IPython offers these three kinds of special calls which are
599 trio. IPython offers these three kinds of special calls which are
606 not python code, and it's a good thing to have their call method
600 not python code, and it's a good thing to have their call method
607 be accessible as pure python functions (not just special syntax at
601 be accessible as pure python functions (not just special syntax at
608 the command line). It gives us a better internal implementation
602 the command line). It gives us a better internal implementation
609 structure, as well as exposing these for user scripting more
603 structure, as well as exposing these for user scripting more
610 cleanly.
604 cleanly.
611
605
612 * IPython/macro.py (Macro.__init__): moved macros to a standalone
606 * IPython/macro.py (Macro.__init__): moved macros to a standalone
613 file. Now that they'll be more likely to be used with the
607 file. Now that they'll be more likely to be used with the
614 persistance system (%store), I want to make sure their module path
608 persistance system (%store), I want to make sure their module path
615 doesn't change in the future, so that we don't break things for
609 doesn't change in the future, so that we don't break things for
616 users' persisted data.
610 users' persisted data.
617
611
618 * IPython/iplib.py (autoindent_update): move indentation
612 * IPython/iplib.py (autoindent_update): move indentation
619 management into the _text_ processing loop, not the keyboard
613 management into the _text_ processing loop, not the keyboard
620 interactive one. This is necessary to correctly process non-typed
614 interactive one. This is necessary to correctly process non-typed
621 multiline input (such as macros).
615 multiline input (such as macros).
622
616
623 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
617 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
624 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
618 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
625 which was producing problems in the resulting manual.
619 which was producing problems in the resulting manual.
626 (magic_whos): improve reporting of instances (show their class,
620 (magic_whos): improve reporting of instances (show their class,
627 instead of simply printing 'instance' which isn't terribly
621 instead of simply printing 'instance' which isn't terribly
628 informative).
622 informative).
629
623
630 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
624 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
631 (minor mods) to support network shares under win32.
625 (minor mods) to support network shares under win32.
632
626
633 * IPython/winconsole.py (get_console_size): add new winconsole
627 * IPython/winconsole.py (get_console_size): add new winconsole
634 module and fixes to page_dumb() to improve its behavior under
628 module and fixes to page_dumb() to improve its behavior under
635 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
629 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
636
630
637 * IPython/Magic.py (Macro): simplified Macro class to just
631 * IPython/Magic.py (Macro): simplified Macro class to just
638 subclass list. We've had only 2.2 compatibility for a very long
632 subclass list. We've had only 2.2 compatibility for a very long
639 time, yet I was still avoiding subclassing the builtin types. No
633 time, yet I was still avoiding subclassing the builtin types. No
640 more (I'm also starting to use properties, though I won't shift to
634 more (I'm also starting to use properties, though I won't shift to
641 2.3-specific features quite yet).
635 2.3-specific features quite yet).
642 (magic_store): added Ville's patch for lightweight variable
636 (magic_store): added Ville's patch for lightweight variable
643 persistence, after a request on the user list by Matt Wilkie
637 persistence, after a request on the user list by Matt Wilkie
644 <maphew-AT-gmail.com>. The new %store magic's docstring has full
638 <maphew-AT-gmail.com>. The new %store magic's docstring has full
645 details.
639 details.
646
640
647 * IPython/iplib.py (InteractiveShell.post_config_initialization):
641 * IPython/iplib.py (InteractiveShell.post_config_initialization):
648 changed the default logfile name from 'ipython.log' to
642 changed the default logfile name from 'ipython.log' to
649 'ipython_log.py'. These logs are real python files, and now that
643 'ipython_log.py'. These logs are real python files, and now that
650 we have much better multiline support, people are more likely to
644 we have much better multiline support, people are more likely to
651 want to use them as such. Might as well name them correctly.
645 want to use them as such. Might as well name them correctly.
652
646
653 * IPython/Magic.py: substantial cleanup. While we can't stop
647 * IPython/Magic.py: substantial cleanup. While we can't stop
654 using magics as mixins, due to the existing customizations 'out
648 using magics as mixins, due to the existing customizations 'out
655 there' which rely on the mixin naming conventions, at least I
649 there' which rely on the mixin naming conventions, at least I
656 cleaned out all cross-class name usage. So once we are OK with
650 cleaned out all cross-class name usage. So once we are OK with
657 breaking compatibility, the two systems can be separated.
651 breaking compatibility, the two systems can be separated.
658
652
659 * IPython/Logger.py: major cleanup. This one is NOT a mixin
653 * IPython/Logger.py: major cleanup. This one is NOT a mixin
660 anymore, and the class is a fair bit less hideous as well. New
654 anymore, and the class is a fair bit less hideous as well. New
661 features were also introduced: timestamping of input, and logging
655 features were also introduced: timestamping of input, and logging
662 of output results. These are user-visible with the -t and -o
656 of output results. These are user-visible with the -t and -o
663 options to %logstart. Closes
657 options to %logstart. Closes
664 http://www.scipy.net/roundup/ipython/issue11 and a request by
658 http://www.scipy.net/roundup/ipython/issue11 and a request by
665 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
659 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
666
660
667 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
661 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
668
662
669 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
663 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
670 better hadnle backslashes in paths. See the thread 'More Windows
664 better hadnle backslashes in paths. See the thread 'More Windows
671 questions part 2 - \/ characters revisited' on the iypthon user
665 questions part 2 - \/ characters revisited' on the iypthon user
672 list:
666 list:
673 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
667 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
674
668
675 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
669 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
676
670
677 (InteractiveShell.__init__): change threaded shells to not use the
671 (InteractiveShell.__init__): change threaded shells to not use the
678 ipython crash handler. This was causing more problems than not,
672 ipython crash handler. This was causing more problems than not,
679 as exceptions in the main thread (GUI code, typically) would
673 as exceptions in the main thread (GUI code, typically) would
680 always show up as a 'crash', when they really weren't.
674 always show up as a 'crash', when they really weren't.
681
675
682 The colors and exception mode commands (%colors/%xmode) have been
676 The colors and exception mode commands (%colors/%xmode) have been
683 synchronized to also take this into account, so users can get
677 synchronized to also take this into account, so users can get
684 verbose exceptions for their threaded code as well. I also added
678 verbose exceptions for their threaded code as well. I also added
685 support for activating pdb inside this exception handler as well,
679 support for activating pdb inside this exception handler as well,
686 so now GUI authors can use IPython's enhanced pdb at runtime.
680 so now GUI authors can use IPython's enhanced pdb at runtime.
687
681
688 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
682 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
689 true by default, and add it to the shipped ipythonrc file. Since
683 true by default, and add it to the shipped ipythonrc file. Since
690 this asks the user before proceeding, I think it's OK to make it
684 this asks the user before proceeding, I think it's OK to make it
691 true by default.
685 true by default.
692
686
693 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
687 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
694 of the previous special-casing of input in the eval loop. I think
688 of the previous special-casing of input in the eval loop. I think
695 this is cleaner, as they really are commands and shouldn't have
689 this is cleaner, as they really are commands and shouldn't have
696 a special role in the middle of the core code.
690 a special role in the middle of the core code.
697
691
698 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
692 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
699
693
700 * IPython/iplib.py (edit_syntax_error): added support for
694 * IPython/iplib.py (edit_syntax_error): added support for
701 automatically reopening the editor if the file had a syntax error
695 automatically reopening the editor if the file had a syntax error
702 in it. Thanks to scottt who provided the patch at:
696 in it. Thanks to scottt who provided the patch at:
703 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
697 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
704 version committed).
698 version committed).
705
699
706 * IPython/iplib.py (handle_normal): add suport for multi-line
700 * IPython/iplib.py (handle_normal): add suport for multi-line
707 input with emtpy lines. This fixes
701 input with emtpy lines. This fixes
708 http://www.scipy.net/roundup/ipython/issue43 and a similar
702 http://www.scipy.net/roundup/ipython/issue43 and a similar
709 discussion on the user list.
703 discussion on the user list.
710
704
711 WARNING: a behavior change is necessarily introduced to support
705 WARNING: a behavior change is necessarily introduced to support
712 blank lines: now a single blank line with whitespace does NOT
706 blank lines: now a single blank line with whitespace does NOT
713 break the input loop, which means that when autoindent is on, by
707 break the input loop, which means that when autoindent is on, by
714 default hitting return on the next (indented) line does NOT exit.
708 default hitting return on the next (indented) line does NOT exit.
715
709
716 Instead, to exit a multiline input you can either have:
710 Instead, to exit a multiline input you can either have:
717
711
718 - TWO whitespace lines (just hit return again), or
712 - TWO whitespace lines (just hit return again), or
719 - a single whitespace line of a different length than provided
713 - a single whitespace line of a different length than provided
720 by the autoindent (add or remove a space).
714 by the autoindent (add or remove a space).
721
715
722 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
716 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
723 module to better organize all readline-related functionality.
717 module to better organize all readline-related functionality.
724 I've deleted FlexCompleter and put all completion clases here.
718 I've deleted FlexCompleter and put all completion clases here.
725
719
726 * IPython/iplib.py (raw_input): improve indentation management.
720 * IPython/iplib.py (raw_input): improve indentation management.
727 It is now possible to paste indented code with autoindent on, and
721 It is now possible to paste indented code with autoindent on, and
728 the code is interpreted correctly (though it still looks bad on
722 the code is interpreted correctly (though it still looks bad on
729 screen, due to the line-oriented nature of ipython).
723 screen, due to the line-oriented nature of ipython).
730 (MagicCompleter.complete): change behavior so that a TAB key on an
724 (MagicCompleter.complete): change behavior so that a TAB key on an
731 otherwise empty line actually inserts a tab, instead of completing
725 otherwise empty line actually inserts a tab, instead of completing
732 on the entire global namespace. This makes it easier to use the
726 on the entire global namespace. This makes it easier to use the
733 TAB key for indentation. After a request by Hans Meine
727 TAB key for indentation. After a request by Hans Meine
734 <hans_meine-AT-gmx.net>
728 <hans_meine-AT-gmx.net>
735 (_prefilter): add support so that typing plain 'exit' or 'quit'
729 (_prefilter): add support so that typing plain 'exit' or 'quit'
736 does a sensible thing. Originally I tried to deviate as little as
730 does a sensible thing. Originally I tried to deviate as little as
737 possible from the default python behavior, but even that one may
731 possible from the default python behavior, but even that one may
738 change in this direction (thread on python-dev to that effect).
732 change in this direction (thread on python-dev to that effect).
739 Regardless, ipython should do the right thing even if CPython's
733 Regardless, ipython should do the right thing even if CPython's
740 '>>>' prompt doesn't.
734 '>>>' prompt doesn't.
741 (InteractiveShell): removed subclassing code.InteractiveConsole
735 (InteractiveShell): removed subclassing code.InteractiveConsole
742 class. By now we'd overridden just about all of its methods: I've
736 class. By now we'd overridden just about all of its methods: I've
743 copied the remaining two over, and now ipython is a standalone
737 copied the remaining two over, and now ipython is a standalone
744 class. This will provide a clearer picture for the chainsaw
738 class. This will provide a clearer picture for the chainsaw
745 branch refactoring.
739 branch refactoring.
746
740
747 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
741 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
748
742
749 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
743 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
750 failures for objects which break when dir() is called on them.
744 failures for objects which break when dir() is called on them.
751
745
752 * IPython/FlexCompleter.py (Completer.__init__): Added support for
746 * IPython/FlexCompleter.py (Completer.__init__): Added support for
753 distinct local and global namespaces in the completer API. This
747 distinct local and global namespaces in the completer API. This
754 change allows us top properly handle completion with distinct
748 change allows us top properly handle completion with distinct
755 scopes, including in embedded instances (this had never really
749 scopes, including in embedded instances (this had never really
756 worked correctly).
750 worked correctly).
757
751
758 Note: this introduces a change in the constructor for
752 Note: this introduces a change in the constructor for
759 MagicCompleter, as a new global_namespace parameter is now the
753 MagicCompleter, as a new global_namespace parameter is now the
760 second argument (the others were bumped one position).
754 second argument (the others were bumped one position).
761
755
762 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
756 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
763
757
764 * IPython/iplib.py (embed_mainloop): fix tab-completion in
758 * IPython/iplib.py (embed_mainloop): fix tab-completion in
765 embedded instances (which can be done now thanks to Vivian's
759 embedded instances (which can be done now thanks to Vivian's
766 frame-handling fixes for pdb).
760 frame-handling fixes for pdb).
767 (InteractiveShell.__init__): Fix namespace handling problem in
761 (InteractiveShell.__init__): Fix namespace handling problem in
768 embedded instances. We were overwriting __main__ unconditionally,
762 embedded instances. We were overwriting __main__ unconditionally,
769 and this should only be done for 'full' (non-embedded) IPython;
763 and this should only be done for 'full' (non-embedded) IPython;
770 embedded instances must respect the caller's __main__. Thanks to
764 embedded instances must respect the caller's __main__. Thanks to
771 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
765 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
772
766
773 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
767 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
774
768
775 * setup.py: added download_url to setup(). This registers the
769 * setup.py: added download_url to setup(). This registers the
776 download address at PyPI, which is not only useful to humans
770 download address at PyPI, which is not only useful to humans
777 browsing the site, but is also picked up by setuptools (the Eggs
771 browsing the site, but is also picked up by setuptools (the Eggs
778 machinery). Thanks to Ville and R. Kern for the info/discussion
772 machinery). Thanks to Ville and R. Kern for the info/discussion
779 on this.
773 on this.
780
774
781 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
775 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
782
776
783 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
777 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
784 This brings a lot of nice functionality to the pdb mode, which now
778 This brings a lot of nice functionality to the pdb mode, which now
785 has tab-completion, syntax highlighting, and better stack handling
779 has tab-completion, syntax highlighting, and better stack handling
786 than before. Many thanks to Vivian De Smedt
780 than before. Many thanks to Vivian De Smedt
787 <vivian-AT-vdesmedt.com> for the original patches.
781 <vivian-AT-vdesmedt.com> for the original patches.
788
782
789 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
783 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
790
784
791 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
785 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
792 sequence to consistently accept the banner argument. The
786 sequence to consistently accept the banner argument. The
793 inconsistency was tripping SAGE, thanks to Gary Zablackis
787 inconsistency was tripping SAGE, thanks to Gary Zablackis
794 <gzabl-AT-yahoo.com> for the report.
788 <gzabl-AT-yahoo.com> for the report.
795
789
796 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
790 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
797
791
798 * IPython/iplib.py (InteractiveShell.post_config_initialization):
792 * IPython/iplib.py (InteractiveShell.post_config_initialization):
799 Fix bug where a naked 'alias' call in the ipythonrc file would
793 Fix bug where a naked 'alias' call in the ipythonrc file would
800 cause a crash. Bug reported by Jorgen Stenarson.
794 cause a crash. Bug reported by Jorgen Stenarson.
801
795
802 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
796 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
803
797
804 * IPython/ipmaker.py (make_IPython): cleanups which should improve
798 * IPython/ipmaker.py (make_IPython): cleanups which should improve
805 startup time.
799 startup time.
806
800
807 * IPython/iplib.py (runcode): my globals 'fix' for embedded
801 * IPython/iplib.py (runcode): my globals 'fix' for embedded
808 instances had introduced a bug with globals in normal code. Now
802 instances had introduced a bug with globals in normal code. Now
809 it's working in all cases.
803 it's working in all cases.
810
804
811 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
805 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
812 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
806 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
813 has been introduced to set the default case sensitivity of the
807 has been introduced to set the default case sensitivity of the
814 searches. Users can still select either mode at runtime on a
808 searches. Users can still select either mode at runtime on a
815 per-search basis.
809 per-search basis.
816
810
817 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
811 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
818
812
819 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
813 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
820 attributes in wildcard searches for subclasses. Modified version
814 attributes in wildcard searches for subclasses. Modified version
821 of a patch by Jorgen.
815 of a patch by Jorgen.
822
816
823 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
817 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
824
818
825 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
819 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
826 embedded instances. I added a user_global_ns attribute to the
820 embedded instances. I added a user_global_ns attribute to the
827 InteractiveShell class to handle this.
821 InteractiveShell class to handle this.
828
822
829 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
823 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
830
824
831 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
825 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
832 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
826 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
833 (reported under win32, but may happen also in other platforms).
827 (reported under win32, but may happen also in other platforms).
834 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
828 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
835
829
836 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
830 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
837
831
838 * IPython/Magic.py (magic_psearch): new support for wildcard
832 * IPython/Magic.py (magic_psearch): new support for wildcard
839 patterns. Now, typing ?a*b will list all names which begin with a
833 patterns. Now, typing ?a*b will list all names which begin with a
840 and end in b, for example. The %psearch magic has full
834 and end in b, for example. The %psearch magic has full
841 docstrings. Many thanks to JΓΆrgen Stenarson
835 docstrings. Many thanks to JΓΆrgen Stenarson
842 <jorgen.stenarson-AT-bostream.nu>, author of the patches
836 <jorgen.stenarson-AT-bostream.nu>, author of the patches
843 implementing this functionality.
837 implementing this functionality.
844
838
845 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
839 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
846
840
847 * Manual: fixed long-standing annoyance of double-dashes (as in
841 * Manual: fixed long-standing annoyance of double-dashes (as in
848 --prefix=~, for example) being stripped in the HTML version. This
842 --prefix=~, for example) being stripped in the HTML version. This
849 is a latex2html bug, but a workaround was provided. Many thanks
843 is a latex2html bug, but a workaround was provided. Many thanks
850 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
844 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
851 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
845 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
852 rolling. This seemingly small issue had tripped a number of users
846 rolling. This seemingly small issue had tripped a number of users
853 when first installing, so I'm glad to see it gone.
847 when first installing, so I'm glad to see it gone.
854
848
855 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
849 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
856
850
857 * IPython/Extensions/numeric_formats.py: fix missing import,
851 * IPython/Extensions/numeric_formats.py: fix missing import,
858 reported by Stephen Walton.
852 reported by Stephen Walton.
859
853
860 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
854 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
861
855
862 * IPython/demo.py: finish demo module, fully documented now.
856 * IPython/demo.py: finish demo module, fully documented now.
863
857
864 * IPython/genutils.py (file_read): simple little utility to read a
858 * IPython/genutils.py (file_read): simple little utility to read a
865 file and ensure it's closed afterwards.
859 file and ensure it's closed afterwards.
866
860
867 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
861 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
868
862
869 * IPython/demo.py (Demo.__init__): added support for individually
863 * IPython/demo.py (Demo.__init__): added support for individually
870 tagging blocks for automatic execution.
864 tagging blocks for automatic execution.
871
865
872 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
866 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
873 syntax-highlighted python sources, requested by John.
867 syntax-highlighted python sources, requested by John.
874
868
875 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
869 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
876
870
877 * IPython/demo.py (Demo.again): fix bug where again() blocks after
871 * IPython/demo.py (Demo.again): fix bug where again() blocks after
878 finishing.
872 finishing.
879
873
880 * IPython/genutils.py (shlex_split): moved from Magic to here,
874 * IPython/genutils.py (shlex_split): moved from Magic to here,
881 where all 2.2 compatibility stuff lives. I needed it for demo.py.
875 where all 2.2 compatibility stuff lives. I needed it for demo.py.
882
876
883 * IPython/demo.py (Demo.__init__): added support for silent
877 * IPython/demo.py (Demo.__init__): added support for silent
884 blocks, improved marks as regexps, docstrings written.
878 blocks, improved marks as regexps, docstrings written.
885 (Demo.__init__): better docstring, added support for sys.argv.
879 (Demo.__init__): better docstring, added support for sys.argv.
886
880
887 * IPython/genutils.py (marquee): little utility used by the demo
881 * IPython/genutils.py (marquee): little utility used by the demo
888 code, handy in general.
882 code, handy in general.
889
883
890 * IPython/demo.py (Demo.__init__): new class for interactive
884 * IPython/demo.py (Demo.__init__): new class for interactive
891 demos. Not documented yet, I just wrote it in a hurry for
885 demos. Not documented yet, I just wrote it in a hurry for
892 scipy'05. Will docstring later.
886 scipy'05. Will docstring later.
893
887
894 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
888 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
895
889
896 * IPython/Shell.py (sigint_handler): Drastic simplification which
890 * IPython/Shell.py (sigint_handler): Drastic simplification which
897 also seems to make Ctrl-C work correctly across threads! This is
891 also seems to make Ctrl-C work correctly across threads! This is
898 so simple, that I can't beleive I'd missed it before. Needs more
892 so simple, that I can't beleive I'd missed it before. Needs more
899 testing, though.
893 testing, though.
900 (KBINT): Never mind, revert changes. I'm sure I'd tried something
894 (KBINT): Never mind, revert changes. I'm sure I'd tried something
901 like this before...
895 like this before...
902
896
903 * IPython/genutils.py (get_home_dir): add protection against
897 * IPython/genutils.py (get_home_dir): add protection against
904 non-dirs in win32 registry.
898 non-dirs in win32 registry.
905
899
906 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
900 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
907 bug where dict was mutated while iterating (pysh crash).
901 bug where dict was mutated while iterating (pysh crash).
908
902
909 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
903 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
910
904
911 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
905 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
912 spurious newlines added by this routine. After a report by
906 spurious newlines added by this routine. After a report by
913 F. Mantegazza.
907 F. Mantegazza.
914
908
915 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
909 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
916
910
917 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
911 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
918 calls. These were a leftover from the GTK 1.x days, and can cause
912 calls. These were a leftover from the GTK 1.x days, and can cause
919 problems in certain cases (after a report by John Hunter).
913 problems in certain cases (after a report by John Hunter).
920
914
921 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
915 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
922 os.getcwd() fails at init time. Thanks to patch from David Remahl
916 os.getcwd() fails at init time. Thanks to patch from David Remahl
923 <chmod007-AT-mac.com>.
917 <chmod007-AT-mac.com>.
924 (InteractiveShell.__init__): prevent certain special magics from
918 (InteractiveShell.__init__): prevent certain special magics from
925 being shadowed by aliases. Closes
919 being shadowed by aliases. Closes
926 http://www.scipy.net/roundup/ipython/issue41.
920 http://www.scipy.net/roundup/ipython/issue41.
927
921
928 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
922 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
929
923
930 * IPython/iplib.py (InteractiveShell.complete): Added new
924 * IPython/iplib.py (InteractiveShell.complete): Added new
931 top-level completion method to expose the completion mechanism
925 top-level completion method to expose the completion mechanism
932 beyond readline-based environments.
926 beyond readline-based environments.
933
927
934 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
928 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
935
929
936 * tools/ipsvnc (svnversion): fix svnversion capture.
930 * tools/ipsvnc (svnversion): fix svnversion capture.
937
931
938 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
932 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
939 attribute to self, which was missing. Before, it was set by a
933 attribute to self, which was missing. Before, it was set by a
940 routine which in certain cases wasn't being called, so the
934 routine which in certain cases wasn't being called, so the
941 instance could end up missing the attribute. This caused a crash.
935 instance could end up missing the attribute. This caused a crash.
942 Closes http://www.scipy.net/roundup/ipython/issue40.
936 Closes http://www.scipy.net/roundup/ipython/issue40.
943
937
944 2005-08-16 Fernando Perez <fperez@colorado.edu>
938 2005-08-16 Fernando Perez <fperez@colorado.edu>
945
939
946 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
940 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
947 contains non-string attribute. Closes
941 contains non-string attribute. Closes
948 http://www.scipy.net/roundup/ipython/issue38.
942 http://www.scipy.net/roundup/ipython/issue38.
949
943
950 2005-08-14 Fernando Perez <fperez@colorado.edu>
944 2005-08-14 Fernando Perez <fperez@colorado.edu>
951
945
952 * tools/ipsvnc: Minor improvements, to add changeset info.
946 * tools/ipsvnc: Minor improvements, to add changeset info.
953
947
954 2005-08-12 Fernando Perez <fperez@colorado.edu>
948 2005-08-12 Fernando Perez <fperez@colorado.edu>
955
949
956 * IPython/iplib.py (runsource): remove self.code_to_run_src
950 * IPython/iplib.py (runsource): remove self.code_to_run_src
957 attribute. I realized this is nothing more than
951 attribute. I realized this is nothing more than
958 '\n'.join(self.buffer), and having the same data in two different
952 '\n'.join(self.buffer), and having the same data in two different
959 places is just asking for synchronization bugs. This may impact
953 places is just asking for synchronization bugs. This may impact
960 people who have custom exception handlers, so I need to warn
954 people who have custom exception handlers, so I need to warn
961 ipython-dev about it (F. Mantegazza may use them).
955 ipython-dev about it (F. Mantegazza may use them).
962
956
963 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
957 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
964
958
965 * IPython/genutils.py: fix 2.2 compatibility (generators)
959 * IPython/genutils.py: fix 2.2 compatibility (generators)
966
960
967 2005-07-18 Fernando Perez <fperez@colorado.edu>
961 2005-07-18 Fernando Perez <fperez@colorado.edu>
968
962
969 * IPython/genutils.py (get_home_dir): fix to help users with
963 * IPython/genutils.py (get_home_dir): fix to help users with
970 invalid $HOME under win32.
964 invalid $HOME under win32.
971
965
972 2005-07-17 Fernando Perez <fperez@colorado.edu>
966 2005-07-17 Fernando Perez <fperez@colorado.edu>
973
967
974 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
968 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
975 some old hacks and clean up a bit other routines; code should be
969 some old hacks and clean up a bit other routines; code should be
976 simpler and a bit faster.
970 simpler and a bit faster.
977
971
978 * IPython/iplib.py (interact): removed some last-resort attempts
972 * IPython/iplib.py (interact): removed some last-resort attempts
979 to survive broken stdout/stderr. That code was only making it
973 to survive broken stdout/stderr. That code was only making it
980 harder to abstract out the i/o (necessary for gui integration),
974 harder to abstract out the i/o (necessary for gui integration),
981 and the crashes it could prevent were extremely rare in practice
975 and the crashes it could prevent were extremely rare in practice
982 (besides being fully user-induced in a pretty violent manner).
976 (besides being fully user-induced in a pretty violent manner).
983
977
984 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
978 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
985 Nothing major yet, but the code is simpler to read; this should
979 Nothing major yet, but the code is simpler to read; this should
986 make it easier to do more serious modifications in the future.
980 make it easier to do more serious modifications in the future.
987
981
988 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
982 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
989 which broke in .15 (thanks to a report by Ville).
983 which broke in .15 (thanks to a report by Ville).
990
984
991 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
985 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
992 be quite correct, I know next to nothing about unicode). This
986 be quite correct, I know next to nothing about unicode). This
993 will allow unicode strings to be used in prompts, amongst other
987 will allow unicode strings to be used in prompts, amongst other
994 cases. It also will prevent ipython from crashing when unicode
988 cases. It also will prevent ipython from crashing when unicode
995 shows up unexpectedly in many places. If ascii encoding fails, we
989 shows up unexpectedly in many places. If ascii encoding fails, we
996 assume utf_8. Currently the encoding is not a user-visible
990 assume utf_8. Currently the encoding is not a user-visible
997 setting, though it could be made so if there is demand for it.
991 setting, though it could be made so if there is demand for it.
998
992
999 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
993 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1000
994
1001 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
995 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1002
996
1003 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
997 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1004
998
1005 * IPython/genutils.py: Add 2.2 compatibility here, so all other
999 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1006 code can work transparently for 2.2/2.3.
1000 code can work transparently for 2.2/2.3.
1007
1001
1008 2005-07-16 Fernando Perez <fperez@colorado.edu>
1002 2005-07-16 Fernando Perez <fperez@colorado.edu>
1009
1003
1010 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1004 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1011 out of the color scheme table used for coloring exception
1005 out of the color scheme table used for coloring exception
1012 tracebacks. This allows user code to add new schemes at runtime.
1006 tracebacks. This allows user code to add new schemes at runtime.
1013 This is a minimally modified version of the patch at
1007 This is a minimally modified version of the patch at
1014 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1008 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1015 for the contribution.
1009 for the contribution.
1016
1010
1017 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1011 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1018 slightly modified version of the patch in
1012 slightly modified version of the patch in
1019 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1013 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1020 to remove the previous try/except solution (which was costlier).
1014 to remove the previous try/except solution (which was costlier).
1021 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1015 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1022
1016
1023 2005-06-08 Fernando Perez <fperez@colorado.edu>
1017 2005-06-08 Fernando Perez <fperez@colorado.edu>
1024
1018
1025 * IPython/iplib.py (write/write_err): Add methods to abstract all
1019 * IPython/iplib.py (write/write_err): Add methods to abstract all
1026 I/O a bit more.
1020 I/O a bit more.
1027
1021
1028 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1022 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1029 warning, reported by Aric Hagberg, fix by JD Hunter.
1023 warning, reported by Aric Hagberg, fix by JD Hunter.
1030
1024
1031 2005-06-02 *** Released version 0.6.15
1025 2005-06-02 *** Released version 0.6.15
1032
1026
1033 2005-06-01 Fernando Perez <fperez@colorado.edu>
1027 2005-06-01 Fernando Perez <fperez@colorado.edu>
1034
1028
1035 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1029 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1036 tab-completion of filenames within open-quoted strings. Note that
1030 tab-completion of filenames within open-quoted strings. Note that
1037 this requires that in ~/.ipython/ipythonrc, users change the
1031 this requires that in ~/.ipython/ipythonrc, users change the
1038 readline delimiters configuration to read:
1032 readline delimiters configuration to read:
1039
1033
1040 readline_remove_delims -/~
1034 readline_remove_delims -/~
1041
1035
1042
1036
1043 2005-05-31 *** Released version 0.6.14
1037 2005-05-31 *** Released version 0.6.14
1044
1038
1045 2005-05-29 Fernando Perez <fperez@colorado.edu>
1039 2005-05-29 Fernando Perez <fperez@colorado.edu>
1046
1040
1047 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1041 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1048 with files not on the filesystem. Reported by Eliyahu Sandler
1042 with files not on the filesystem. Reported by Eliyahu Sandler
1049 <eli@gondolin.net>
1043 <eli@gondolin.net>
1050
1044
1051 2005-05-22 Fernando Perez <fperez@colorado.edu>
1045 2005-05-22 Fernando Perez <fperez@colorado.edu>
1052
1046
1053 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1047 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1054 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1048 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1055
1049
1056 2005-05-19 Fernando Perez <fperez@colorado.edu>
1050 2005-05-19 Fernando Perez <fperez@colorado.edu>
1057
1051
1058 * IPython/iplib.py (safe_execfile): close a file which could be
1052 * IPython/iplib.py (safe_execfile): close a file which could be
1059 left open (causing problems in win32, which locks open files).
1053 left open (causing problems in win32, which locks open files).
1060 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1054 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1061
1055
1062 2005-05-18 Fernando Perez <fperez@colorado.edu>
1056 2005-05-18 Fernando Perez <fperez@colorado.edu>
1063
1057
1064 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1058 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1065 keyword arguments correctly to safe_execfile().
1059 keyword arguments correctly to safe_execfile().
1066
1060
1067 2005-05-13 Fernando Perez <fperez@colorado.edu>
1061 2005-05-13 Fernando Perez <fperez@colorado.edu>
1068
1062
1069 * ipython.1: Added info about Qt to manpage, and threads warning
1063 * ipython.1: Added info about Qt to manpage, and threads warning
1070 to usage page (invoked with --help).
1064 to usage page (invoked with --help).
1071
1065
1072 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1066 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1073 new matcher (it goes at the end of the priority list) to do
1067 new matcher (it goes at the end of the priority list) to do
1074 tab-completion on named function arguments. Submitted by George
1068 tab-completion on named function arguments. Submitted by George
1075 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1069 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1076 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1070 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1077 for more details.
1071 for more details.
1078
1072
1079 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1073 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1080 SystemExit exceptions in the script being run. Thanks to a report
1074 SystemExit exceptions in the script being run. Thanks to a report
1081 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1075 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1082 producing very annoying behavior when running unit tests.
1076 producing very annoying behavior when running unit tests.
1083
1077
1084 2005-05-12 Fernando Perez <fperez@colorado.edu>
1078 2005-05-12 Fernando Perez <fperez@colorado.edu>
1085
1079
1086 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1080 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1087 which I'd broken (again) due to a changed regexp. In the process,
1081 which I'd broken (again) due to a changed regexp. In the process,
1088 added ';' as an escape to auto-quote the whole line without
1082 added ';' as an escape to auto-quote the whole line without
1089 splitting its arguments. Thanks to a report by Jerry McRae
1083 splitting its arguments. Thanks to a report by Jerry McRae
1090 <qrs0xyc02-AT-sneakemail.com>.
1084 <qrs0xyc02-AT-sneakemail.com>.
1091
1085
1092 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1086 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1093 possible crashes caused by a TokenError. Reported by Ed Schofield
1087 possible crashes caused by a TokenError. Reported by Ed Schofield
1094 <schofield-AT-ftw.at>.
1088 <schofield-AT-ftw.at>.
1095
1089
1096 2005-05-06 Fernando Perez <fperez@colorado.edu>
1090 2005-05-06 Fernando Perez <fperez@colorado.edu>
1097
1091
1098 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1092 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1099
1093
1100 2005-04-29 Fernando Perez <fperez@colorado.edu>
1094 2005-04-29 Fernando Perez <fperez@colorado.edu>
1101
1095
1102 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1096 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1103 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1097 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1104 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1098 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1105 which provides support for Qt interactive usage (similar to the
1099 which provides support for Qt interactive usage (similar to the
1106 existing one for WX and GTK). This had been often requested.
1100 existing one for WX and GTK). This had been often requested.
1107
1101
1108 2005-04-14 *** Released version 0.6.13
1102 2005-04-14 *** Released version 0.6.13
1109
1103
1110 2005-04-08 Fernando Perez <fperez@colorado.edu>
1104 2005-04-08 Fernando Perez <fperez@colorado.edu>
1111
1105
1112 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1106 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1113 from _ofind, which gets called on almost every input line. Now,
1107 from _ofind, which gets called on almost every input line. Now,
1114 we only try to get docstrings if they are actually going to be
1108 we only try to get docstrings if they are actually going to be
1115 used (the overhead of fetching unnecessary docstrings can be
1109 used (the overhead of fetching unnecessary docstrings can be
1116 noticeable for certain objects, such as Pyro proxies).
1110 noticeable for certain objects, such as Pyro proxies).
1117
1111
1118 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1112 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1119 for completers. For some reason I had been passing them the state
1113 for completers. For some reason I had been passing them the state
1120 variable, which completers never actually need, and was in
1114 variable, which completers never actually need, and was in
1121 conflict with the rlcompleter API. Custom completers ONLY need to
1115 conflict with the rlcompleter API. Custom completers ONLY need to
1122 take the text parameter.
1116 take the text parameter.
1123
1117
1124 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1118 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1125 work correctly in pysh. I've also moved all the logic which used
1119 work correctly in pysh. I've also moved all the logic which used
1126 to be in pysh.py here, which will prevent problems with future
1120 to be in pysh.py here, which will prevent problems with future
1127 upgrades. However, this time I must warn users to update their
1121 upgrades. However, this time I must warn users to update their
1128 pysh profile to include the line
1122 pysh profile to include the line
1129
1123
1130 import_all IPython.Extensions.InterpreterExec
1124 import_all IPython.Extensions.InterpreterExec
1131
1125
1132 because otherwise things won't work for them. They MUST also
1126 because otherwise things won't work for them. They MUST also
1133 delete pysh.py and the line
1127 delete pysh.py and the line
1134
1128
1135 execfile pysh.py
1129 execfile pysh.py
1136
1130
1137 from their ipythonrc-pysh.
1131 from their ipythonrc-pysh.
1138
1132
1139 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1133 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1140 robust in the face of objects whose dir() returns non-strings
1134 robust in the face of objects whose dir() returns non-strings
1141 (which it shouldn't, but some broken libs like ITK do). Thanks to
1135 (which it shouldn't, but some broken libs like ITK do). Thanks to
1142 a patch by John Hunter (implemented differently, though). Also
1136 a patch by John Hunter (implemented differently, though). Also
1143 minor improvements by using .extend instead of + on lists.
1137 minor improvements by using .extend instead of + on lists.
1144
1138
1145 * pysh.py:
1139 * pysh.py:
1146
1140
1147 2005-04-06 Fernando Perez <fperez@colorado.edu>
1141 2005-04-06 Fernando Perez <fperez@colorado.edu>
1148
1142
1149 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1143 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1150 by default, so that all users benefit from it. Those who don't
1144 by default, so that all users benefit from it. Those who don't
1151 want it can still turn it off.
1145 want it can still turn it off.
1152
1146
1153 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1147 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1154 config file, I'd forgotten about this, so users were getting it
1148 config file, I'd forgotten about this, so users were getting it
1155 off by default.
1149 off by default.
1156
1150
1157 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1151 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1158 consistency. Now magics can be called in multiline statements,
1152 consistency. Now magics can be called in multiline statements,
1159 and python variables can be expanded in magic calls via $var.
1153 and python variables can be expanded in magic calls via $var.
1160 This makes the magic system behave just like aliases or !system
1154 This makes the magic system behave just like aliases or !system
1161 calls.
1155 calls.
1162
1156
1163 2005-03-28 Fernando Perez <fperez@colorado.edu>
1157 2005-03-28 Fernando Perez <fperez@colorado.edu>
1164
1158
1165 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1159 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1166 expensive string additions for building command. Add support for
1160 expensive string additions for building command. Add support for
1167 trailing ';' when autocall is used.
1161 trailing ';' when autocall is used.
1168
1162
1169 2005-03-26 Fernando Perez <fperez@colorado.edu>
1163 2005-03-26 Fernando Perez <fperez@colorado.edu>
1170
1164
1171 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1165 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1172 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1166 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1173 ipython.el robust against prompts with any number of spaces
1167 ipython.el robust against prompts with any number of spaces
1174 (including 0) after the ':' character.
1168 (including 0) after the ':' character.
1175
1169
1176 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1170 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1177 continuation prompt, which misled users to think the line was
1171 continuation prompt, which misled users to think the line was
1178 already indented. Closes debian Bug#300847, reported to me by
1172 already indented. Closes debian Bug#300847, reported to me by
1179 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1173 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1180
1174
1181 2005-03-23 Fernando Perez <fperez@colorado.edu>
1175 2005-03-23 Fernando Perez <fperez@colorado.edu>
1182
1176
1183 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1177 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1184 properly aligned if they have embedded newlines.
1178 properly aligned if they have embedded newlines.
1185
1179
1186 * IPython/iplib.py (runlines): Add a public method to expose
1180 * IPython/iplib.py (runlines): Add a public method to expose
1187 IPython's code execution machinery, so that users can run strings
1181 IPython's code execution machinery, so that users can run strings
1188 as if they had been typed at the prompt interactively.
1182 as if they had been typed at the prompt interactively.
1189 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1183 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1190 methods which can call the system shell, but with python variable
1184 methods which can call the system shell, but with python variable
1191 expansion. The three such methods are: __IPYTHON__.system,
1185 expansion. The three such methods are: __IPYTHON__.system,
1192 .getoutput and .getoutputerror. These need to be documented in a
1186 .getoutput and .getoutputerror. These need to be documented in a
1193 'public API' section (to be written) of the manual.
1187 'public API' section (to be written) of the manual.
1194
1188
1195 2005-03-20 Fernando Perez <fperez@colorado.edu>
1189 2005-03-20 Fernando Perez <fperez@colorado.edu>
1196
1190
1197 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1191 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1198 for custom exception handling. This is quite powerful, and it
1192 for custom exception handling. This is quite powerful, and it
1199 allows for user-installable exception handlers which can trap
1193 allows for user-installable exception handlers which can trap
1200 custom exceptions at runtime and treat them separately from
1194 custom exceptions at runtime and treat them separately from
1201 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1195 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1202 Mantegazza <mantegazza-AT-ill.fr>.
1196 Mantegazza <mantegazza-AT-ill.fr>.
1203 (InteractiveShell.set_custom_completer): public API function to
1197 (InteractiveShell.set_custom_completer): public API function to
1204 add new completers at runtime.
1198 add new completers at runtime.
1205
1199
1206 2005-03-19 Fernando Perez <fperez@colorado.edu>
1200 2005-03-19 Fernando Perez <fperez@colorado.edu>
1207
1201
1208 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1202 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1209 allow objects which provide their docstrings via non-standard
1203 allow objects which provide their docstrings via non-standard
1210 mechanisms (like Pyro proxies) to still be inspected by ipython's
1204 mechanisms (like Pyro proxies) to still be inspected by ipython's
1211 ? system.
1205 ? system.
1212
1206
1213 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1207 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1214 automatic capture system. I tried quite hard to make it work
1208 automatic capture system. I tried quite hard to make it work
1215 reliably, and simply failed. I tried many combinations with the
1209 reliably, and simply failed. I tried many combinations with the
1216 subprocess module, but eventually nothing worked in all needed
1210 subprocess module, but eventually nothing worked in all needed
1217 cases (not blocking stdin for the child, duplicating stdout
1211 cases (not blocking stdin for the child, duplicating stdout
1218 without blocking, etc). The new %sc/%sx still do capture to these
1212 without blocking, etc). The new %sc/%sx still do capture to these
1219 magical list/string objects which make shell use much more
1213 magical list/string objects which make shell use much more
1220 conveninent, so not all is lost.
1214 conveninent, so not all is lost.
1221
1215
1222 XXX - FIX MANUAL for the change above!
1216 XXX - FIX MANUAL for the change above!
1223
1217
1224 (runsource): I copied code.py's runsource() into ipython to modify
1218 (runsource): I copied code.py's runsource() into ipython to modify
1225 it a bit. Now the code object and source to be executed are
1219 it a bit. Now the code object and source to be executed are
1226 stored in ipython. This makes this info accessible to third-party
1220 stored in ipython. This makes this info accessible to third-party
1227 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1221 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1228 Mantegazza <mantegazza-AT-ill.fr>.
1222 Mantegazza <mantegazza-AT-ill.fr>.
1229
1223
1230 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1224 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1231 history-search via readline (like C-p/C-n). I'd wanted this for a
1225 history-search via readline (like C-p/C-n). I'd wanted this for a
1232 long time, but only recently found out how to do it. For users
1226 long time, but only recently found out how to do it. For users
1233 who already have their ipythonrc files made and want this, just
1227 who already have their ipythonrc files made and want this, just
1234 add:
1228 add:
1235
1229
1236 readline_parse_and_bind "\e[A": history-search-backward
1230 readline_parse_and_bind "\e[A": history-search-backward
1237 readline_parse_and_bind "\e[B": history-search-forward
1231 readline_parse_and_bind "\e[B": history-search-forward
1238
1232
1239 2005-03-18 Fernando Perez <fperez@colorado.edu>
1233 2005-03-18 Fernando Perez <fperez@colorado.edu>
1240
1234
1241 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1235 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1242 LSString and SList classes which allow transparent conversions
1236 LSString and SList classes which allow transparent conversions
1243 between list mode and whitespace-separated string.
1237 between list mode and whitespace-separated string.
1244 (magic_r): Fix recursion problem in %r.
1238 (magic_r): Fix recursion problem in %r.
1245
1239
1246 * IPython/genutils.py (LSString): New class to be used for
1240 * IPython/genutils.py (LSString): New class to be used for
1247 automatic storage of the results of all alias/system calls in _o
1241 automatic storage of the results of all alias/system calls in _o
1248 and _e (stdout/err). These provide a .l/.list attribute which
1242 and _e (stdout/err). These provide a .l/.list attribute which
1249 does automatic splitting on newlines. This means that for most
1243 does automatic splitting on newlines. This means that for most
1250 uses, you'll never need to do capturing of output with %sc/%sx
1244 uses, you'll never need to do capturing of output with %sc/%sx
1251 anymore, since ipython keeps this always done for you. Note that
1245 anymore, since ipython keeps this always done for you. Note that
1252 only the LAST results are stored, the _o/e variables are
1246 only the LAST results are stored, the _o/e variables are
1253 overwritten on each call. If you need to save their contents
1247 overwritten on each call. If you need to save their contents
1254 further, simply bind them to any other name.
1248 further, simply bind them to any other name.
1255
1249
1256 2005-03-17 Fernando Perez <fperez@colorado.edu>
1250 2005-03-17 Fernando Perez <fperez@colorado.edu>
1257
1251
1258 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1252 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1259 prompt namespace handling.
1253 prompt namespace handling.
1260
1254
1261 2005-03-16 Fernando Perez <fperez@colorado.edu>
1255 2005-03-16 Fernando Perez <fperez@colorado.edu>
1262
1256
1263 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1257 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1264 classic prompts to be '>>> ' (final space was missing, and it
1258 classic prompts to be '>>> ' (final space was missing, and it
1265 trips the emacs python mode).
1259 trips the emacs python mode).
1266 (BasePrompt.__str__): Added safe support for dynamic prompt
1260 (BasePrompt.__str__): Added safe support for dynamic prompt
1267 strings. Now you can set your prompt string to be '$x', and the
1261 strings. Now you can set your prompt string to be '$x', and the
1268 value of x will be printed from your interactive namespace. The
1262 value of x will be printed from your interactive namespace. The
1269 interpolation syntax includes the full Itpl support, so
1263 interpolation syntax includes the full Itpl support, so
1270 ${foo()+x+bar()} is a valid prompt string now, and the function
1264 ${foo()+x+bar()} is a valid prompt string now, and the function
1271 calls will be made at runtime.
1265 calls will be made at runtime.
1272
1266
1273 2005-03-15 Fernando Perez <fperez@colorado.edu>
1267 2005-03-15 Fernando Perez <fperez@colorado.edu>
1274
1268
1275 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1269 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1276 avoid name clashes in pylab. %hist still works, it just forwards
1270 avoid name clashes in pylab. %hist still works, it just forwards
1277 the call to %history.
1271 the call to %history.
1278
1272
1279 2005-03-02 *** Released version 0.6.12
1273 2005-03-02 *** Released version 0.6.12
1280
1274
1281 2005-03-02 Fernando Perez <fperez@colorado.edu>
1275 2005-03-02 Fernando Perez <fperez@colorado.edu>
1282
1276
1283 * IPython/iplib.py (handle_magic): log magic calls properly as
1277 * IPython/iplib.py (handle_magic): log magic calls properly as
1284 ipmagic() function calls.
1278 ipmagic() function calls.
1285
1279
1286 * IPython/Magic.py (magic_time): Improved %time to support
1280 * IPython/Magic.py (magic_time): Improved %time to support
1287 statements and provide wall-clock as well as CPU time.
1281 statements and provide wall-clock as well as CPU time.
1288
1282
1289 2005-02-27 Fernando Perez <fperez@colorado.edu>
1283 2005-02-27 Fernando Perez <fperez@colorado.edu>
1290
1284
1291 * IPython/hooks.py: New hooks module, to expose user-modifiable
1285 * IPython/hooks.py: New hooks module, to expose user-modifiable
1292 IPython functionality in a clean manner. For now only the editor
1286 IPython functionality in a clean manner. For now only the editor
1293 hook is actually written, and other thigns which I intend to turn
1287 hook is actually written, and other thigns which I intend to turn
1294 into proper hooks aren't yet there. The display and prefilter
1288 into proper hooks aren't yet there. The display and prefilter
1295 stuff, for example, should be hooks. But at least now the
1289 stuff, for example, should be hooks. But at least now the
1296 framework is in place, and the rest can be moved here with more
1290 framework is in place, and the rest can be moved here with more
1297 time later. IPython had had a .hooks variable for a long time for
1291 time later. IPython had had a .hooks variable for a long time for
1298 this purpose, but I'd never actually used it for anything.
1292 this purpose, but I'd never actually used it for anything.
1299
1293
1300 2005-02-26 Fernando Perez <fperez@colorado.edu>
1294 2005-02-26 Fernando Perez <fperez@colorado.edu>
1301
1295
1302 * IPython/ipmaker.py (make_IPython): make the default ipython
1296 * IPython/ipmaker.py (make_IPython): make the default ipython
1303 directory be called _ipython under win32, to follow more the
1297 directory be called _ipython under win32, to follow more the
1304 naming peculiarities of that platform (where buggy software like
1298 naming peculiarities of that platform (where buggy software like
1305 Visual Sourcesafe breaks with .named directories). Reported by
1299 Visual Sourcesafe breaks with .named directories). Reported by
1306 Ville Vainio.
1300 Ville Vainio.
1307
1301
1308 2005-02-23 Fernando Perez <fperez@colorado.edu>
1302 2005-02-23 Fernando Perez <fperez@colorado.edu>
1309
1303
1310 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1304 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1311 auto_aliases for win32 which were causing problems. Users can
1305 auto_aliases for win32 which were causing problems. Users can
1312 define the ones they personally like.
1306 define the ones they personally like.
1313
1307
1314 2005-02-21 Fernando Perez <fperez@colorado.edu>
1308 2005-02-21 Fernando Perez <fperez@colorado.edu>
1315
1309
1316 * IPython/Magic.py (magic_time): new magic to time execution of
1310 * IPython/Magic.py (magic_time): new magic to time execution of
1317 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1311 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1318
1312
1319 2005-02-19 Fernando Perez <fperez@colorado.edu>
1313 2005-02-19 Fernando Perez <fperez@colorado.edu>
1320
1314
1321 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1315 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1322 into keys (for prompts, for example).
1316 into keys (for prompts, for example).
1323
1317
1324 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1318 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1325 prompts in case users want them. This introduces a small behavior
1319 prompts in case users want them. This introduces a small behavior
1326 change: ipython does not automatically add a space to all prompts
1320 change: ipython does not automatically add a space to all prompts
1327 anymore. To get the old prompts with a space, users should add it
1321 anymore. To get the old prompts with a space, users should add it
1328 manually to their ipythonrc file, so for example prompt_in1 should
1322 manually to their ipythonrc file, so for example prompt_in1 should
1329 now read 'In [\#]: ' instead of 'In [\#]:'.
1323 now read 'In [\#]: ' instead of 'In [\#]:'.
1330 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1324 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1331 file) to control left-padding of secondary prompts.
1325 file) to control left-padding of secondary prompts.
1332
1326
1333 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1327 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1334 the profiler can't be imported. Fix for Debian, which removed
1328 the profiler can't be imported. Fix for Debian, which removed
1335 profile.py because of License issues. I applied a slightly
1329 profile.py because of License issues. I applied a slightly
1336 modified version of the original Debian patch at
1330 modified version of the original Debian patch at
1337 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1331 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1338
1332
1339 2005-02-17 Fernando Perez <fperez@colorado.edu>
1333 2005-02-17 Fernando Perez <fperez@colorado.edu>
1340
1334
1341 * IPython/genutils.py (native_line_ends): Fix bug which would
1335 * IPython/genutils.py (native_line_ends): Fix bug which would
1342 cause improper line-ends under win32 b/c I was not opening files
1336 cause improper line-ends under win32 b/c I was not opening files
1343 in binary mode. Bug report and fix thanks to Ville.
1337 in binary mode. Bug report and fix thanks to Ville.
1344
1338
1345 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1339 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1346 trying to catch spurious foo[1] autocalls. My fix actually broke
1340 trying to catch spurious foo[1] autocalls. My fix actually broke
1347 ',/' autoquote/call with explicit escape (bad regexp).
1341 ',/' autoquote/call with explicit escape (bad regexp).
1348
1342
1349 2005-02-15 *** Released version 0.6.11
1343 2005-02-15 *** Released version 0.6.11
1350
1344
1351 2005-02-14 Fernando Perez <fperez@colorado.edu>
1345 2005-02-14 Fernando Perez <fperez@colorado.edu>
1352
1346
1353 * IPython/background_jobs.py: New background job management
1347 * IPython/background_jobs.py: New background job management
1354 subsystem. This is implemented via a new set of classes, and
1348 subsystem. This is implemented via a new set of classes, and
1355 IPython now provides a builtin 'jobs' object for background job
1349 IPython now provides a builtin 'jobs' object for background job
1356 execution. A convenience %bg magic serves as a lightweight
1350 execution. A convenience %bg magic serves as a lightweight
1357 frontend for starting the more common type of calls. This was
1351 frontend for starting the more common type of calls. This was
1358 inspired by discussions with B. Granger and the BackgroundCommand
1352 inspired by discussions with B. Granger and the BackgroundCommand
1359 class described in the book Python Scripting for Computational
1353 class described in the book Python Scripting for Computational
1360 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1354 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1361 (although ultimately no code from this text was used, as IPython's
1355 (although ultimately no code from this text was used, as IPython's
1362 system is a separate implementation).
1356 system is a separate implementation).
1363
1357
1364 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1358 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1365 to control the completion of single/double underscore names
1359 to control the completion of single/double underscore names
1366 separately. As documented in the example ipytonrc file, the
1360 separately. As documented in the example ipytonrc file, the
1367 readline_omit__names variable can now be set to 2, to omit even
1361 readline_omit__names variable can now be set to 2, to omit even
1368 single underscore names. Thanks to a patch by Brian Wong
1362 single underscore names. Thanks to a patch by Brian Wong
1369 <BrianWong-AT-AirgoNetworks.Com>.
1363 <BrianWong-AT-AirgoNetworks.Com>.
1370 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1364 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1371 be autocalled as foo([1]) if foo were callable. A problem for
1365 be autocalled as foo([1]) if foo were callable. A problem for
1372 things which are both callable and implement __getitem__.
1366 things which are both callable and implement __getitem__.
1373 (init_readline): Fix autoindentation for win32. Thanks to a patch
1367 (init_readline): Fix autoindentation for win32. Thanks to a patch
1374 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1368 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1375
1369
1376 2005-02-12 Fernando Perez <fperez@colorado.edu>
1370 2005-02-12 Fernando Perez <fperez@colorado.edu>
1377
1371
1378 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1372 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1379 which I had written long ago to sort out user error messages which
1373 which I had written long ago to sort out user error messages which
1380 may occur during startup. This seemed like a good idea initially,
1374 may occur during startup. This seemed like a good idea initially,
1381 but it has proven a disaster in retrospect. I don't want to
1375 but it has proven a disaster in retrospect. I don't want to
1382 change much code for now, so my fix is to set the internal 'debug'
1376 change much code for now, so my fix is to set the internal 'debug'
1383 flag to true everywhere, whose only job was precisely to control
1377 flag to true everywhere, whose only job was precisely to control
1384 this subsystem. This closes issue 28 (as well as avoiding all
1378 this subsystem. This closes issue 28 (as well as avoiding all
1385 sorts of strange hangups which occur from time to time).
1379 sorts of strange hangups which occur from time to time).
1386
1380
1387 2005-02-07 Fernando Perez <fperez@colorado.edu>
1381 2005-02-07 Fernando Perez <fperez@colorado.edu>
1388
1382
1389 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1383 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1390 previous call produced a syntax error.
1384 previous call produced a syntax error.
1391
1385
1392 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1386 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1393 classes without constructor.
1387 classes without constructor.
1394
1388
1395 2005-02-06 Fernando Perez <fperez@colorado.edu>
1389 2005-02-06 Fernando Perez <fperez@colorado.edu>
1396
1390
1397 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1391 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1398 completions with the results of each matcher, so we return results
1392 completions with the results of each matcher, so we return results
1399 to the user from all namespaces. This breaks with ipython
1393 to the user from all namespaces. This breaks with ipython
1400 tradition, but I think it's a nicer behavior. Now you get all
1394 tradition, but I think it's a nicer behavior. Now you get all
1401 possible completions listed, from all possible namespaces (python,
1395 possible completions listed, from all possible namespaces (python,
1402 filesystem, magics...) After a request by John Hunter
1396 filesystem, magics...) After a request by John Hunter
1403 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1397 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1404
1398
1405 2005-02-05 Fernando Perez <fperez@colorado.edu>
1399 2005-02-05 Fernando Perez <fperez@colorado.edu>
1406
1400
1407 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1401 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1408 the call had quote characters in it (the quotes were stripped).
1402 the call had quote characters in it (the quotes were stripped).
1409
1403
1410 2005-01-31 Fernando Perez <fperez@colorado.edu>
1404 2005-01-31 Fernando Perez <fperez@colorado.edu>
1411
1405
1412 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1406 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1413 Itpl.itpl() to make the code more robust against psyco
1407 Itpl.itpl() to make the code more robust against psyco
1414 optimizations.
1408 optimizations.
1415
1409
1416 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1410 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1417 of causing an exception. Quicker, cleaner.
1411 of causing an exception. Quicker, cleaner.
1418
1412
1419 2005-01-28 Fernando Perez <fperez@colorado.edu>
1413 2005-01-28 Fernando Perez <fperez@colorado.edu>
1420
1414
1421 * scripts/ipython_win_post_install.py (install): hardcode
1415 * scripts/ipython_win_post_install.py (install): hardcode
1422 sys.prefix+'python.exe' as the executable path. It turns out that
1416 sys.prefix+'python.exe' as the executable path. It turns out that
1423 during the post-installation run, sys.executable resolves to the
1417 during the post-installation run, sys.executable resolves to the
1424 name of the binary installer! I should report this as a distutils
1418 name of the binary installer! I should report this as a distutils
1425 bug, I think. I updated the .10 release with this tiny fix, to
1419 bug, I think. I updated the .10 release with this tiny fix, to
1426 avoid annoying the lists further.
1420 avoid annoying the lists further.
1427
1421
1428 2005-01-27 *** Released version 0.6.10
1422 2005-01-27 *** Released version 0.6.10
1429
1423
1430 2005-01-27 Fernando Perez <fperez@colorado.edu>
1424 2005-01-27 Fernando Perez <fperez@colorado.edu>
1431
1425
1432 * IPython/numutils.py (norm): Added 'inf' as optional name for
1426 * IPython/numutils.py (norm): Added 'inf' as optional name for
1433 L-infinity norm, included references to mathworld.com for vector
1427 L-infinity norm, included references to mathworld.com for vector
1434 norm definitions.
1428 norm definitions.
1435 (amin/amax): added amin/amax for array min/max. Similar to what
1429 (amin/amax): added amin/amax for array min/max. Similar to what
1436 pylab ships with after the recent reorganization of names.
1430 pylab ships with after the recent reorganization of names.
1437 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1431 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1438
1432
1439 * ipython.el: committed Alex's recent fixes and improvements.
1433 * ipython.el: committed Alex's recent fixes and improvements.
1440 Tested with python-mode from CVS, and it looks excellent. Since
1434 Tested with python-mode from CVS, and it looks excellent. Since
1441 python-mode hasn't released anything in a while, I'm temporarily
1435 python-mode hasn't released anything in a while, I'm temporarily
1442 putting a copy of today's CVS (v 4.70) of python-mode in:
1436 putting a copy of today's CVS (v 4.70) of python-mode in:
1443 http://ipython.scipy.org/tmp/python-mode.el
1437 http://ipython.scipy.org/tmp/python-mode.el
1444
1438
1445 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1439 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1446 sys.executable for the executable name, instead of assuming it's
1440 sys.executable for the executable name, instead of assuming it's
1447 called 'python.exe' (the post-installer would have produced broken
1441 called 'python.exe' (the post-installer would have produced broken
1448 setups on systems with a differently named python binary).
1442 setups on systems with a differently named python binary).
1449
1443
1450 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1444 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1451 references to os.linesep, to make the code more
1445 references to os.linesep, to make the code more
1452 platform-independent. This is also part of the win32 coloring
1446 platform-independent. This is also part of the win32 coloring
1453 fixes.
1447 fixes.
1454
1448
1455 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1449 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1456 lines, which actually cause coloring bugs because the length of
1450 lines, which actually cause coloring bugs because the length of
1457 the line is very difficult to correctly compute with embedded
1451 the line is very difficult to correctly compute with embedded
1458 escapes. This was the source of all the coloring problems under
1452 escapes. This was the source of all the coloring problems under
1459 Win32. I think that _finally_, Win32 users have a properly
1453 Win32. I think that _finally_, Win32 users have a properly
1460 working ipython in all respects. This would never have happened
1454 working ipython in all respects. This would never have happened
1461 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1455 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1462
1456
1463 2005-01-26 *** Released version 0.6.9
1457 2005-01-26 *** Released version 0.6.9
1464
1458
1465 2005-01-25 Fernando Perez <fperez@colorado.edu>
1459 2005-01-25 Fernando Perez <fperez@colorado.edu>
1466
1460
1467 * setup.py: finally, we have a true Windows installer, thanks to
1461 * setup.py: finally, we have a true Windows installer, thanks to
1468 the excellent work of Viktor Ransmayr
1462 the excellent work of Viktor Ransmayr
1469 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1463 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1470 Windows users. The setup routine is quite a bit cleaner thanks to
1464 Windows users. The setup routine is quite a bit cleaner thanks to
1471 this, and the post-install script uses the proper functions to
1465 this, and the post-install script uses the proper functions to
1472 allow a clean de-installation using the standard Windows Control
1466 allow a clean de-installation using the standard Windows Control
1473 Panel.
1467 Panel.
1474
1468
1475 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1469 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1476 environment variable under all OSes (including win32) if
1470 environment variable under all OSes (including win32) if
1477 available. This will give consistency to win32 users who have set
1471 available. This will give consistency to win32 users who have set
1478 this variable for any reason. If os.environ['HOME'] fails, the
1472 this variable for any reason. If os.environ['HOME'] fails, the
1479 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1473 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1480
1474
1481 2005-01-24 Fernando Perez <fperez@colorado.edu>
1475 2005-01-24 Fernando Perez <fperez@colorado.edu>
1482
1476
1483 * IPython/numutils.py (empty_like): add empty_like(), similar to
1477 * IPython/numutils.py (empty_like): add empty_like(), similar to
1484 zeros_like() but taking advantage of the new empty() Numeric routine.
1478 zeros_like() but taking advantage of the new empty() Numeric routine.
1485
1479
1486 2005-01-23 *** Released version 0.6.8
1480 2005-01-23 *** Released version 0.6.8
1487
1481
1488 2005-01-22 Fernando Perez <fperez@colorado.edu>
1482 2005-01-22 Fernando Perez <fperez@colorado.edu>
1489
1483
1490 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1484 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1491 automatic show() calls. After discussing things with JDH, it
1485 automatic show() calls. After discussing things with JDH, it
1492 turns out there are too many corner cases where this can go wrong.
1486 turns out there are too many corner cases where this can go wrong.
1493 It's best not to try to be 'too smart', and simply have ipython
1487 It's best not to try to be 'too smart', and simply have ipython
1494 reproduce as much as possible the default behavior of a normal
1488 reproduce as much as possible the default behavior of a normal
1495 python shell.
1489 python shell.
1496
1490
1497 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1491 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1498 line-splitting regexp and _prefilter() to avoid calling getattr()
1492 line-splitting regexp and _prefilter() to avoid calling getattr()
1499 on assignments. This closes
1493 on assignments. This closes
1500 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1494 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1501 readline uses getattr(), so a simple <TAB> keypress is still
1495 readline uses getattr(), so a simple <TAB> keypress is still
1502 enough to trigger getattr() calls on an object.
1496 enough to trigger getattr() calls on an object.
1503
1497
1504 2005-01-21 Fernando Perez <fperez@colorado.edu>
1498 2005-01-21 Fernando Perez <fperez@colorado.edu>
1505
1499
1506 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1500 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1507 docstring under pylab so it doesn't mask the original.
1501 docstring under pylab so it doesn't mask the original.
1508
1502
1509 2005-01-21 *** Released version 0.6.7
1503 2005-01-21 *** Released version 0.6.7
1510
1504
1511 2005-01-21 Fernando Perez <fperez@colorado.edu>
1505 2005-01-21 Fernando Perez <fperez@colorado.edu>
1512
1506
1513 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1507 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1514 signal handling for win32 users in multithreaded mode.
1508 signal handling for win32 users in multithreaded mode.
1515
1509
1516 2005-01-17 Fernando Perez <fperez@colorado.edu>
1510 2005-01-17 Fernando Perez <fperez@colorado.edu>
1517
1511
1518 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1512 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1519 instances with no __init__. After a crash report by Norbert Nemec
1513 instances with no __init__. After a crash report by Norbert Nemec
1520 <Norbert-AT-nemec-online.de>.
1514 <Norbert-AT-nemec-online.de>.
1521
1515
1522 2005-01-14 Fernando Perez <fperez@colorado.edu>
1516 2005-01-14 Fernando Perez <fperez@colorado.edu>
1523
1517
1524 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1518 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1525 names for verbose exceptions, when multiple dotted names and the
1519 names for verbose exceptions, when multiple dotted names and the
1526 'parent' object were present on the same line.
1520 'parent' object were present on the same line.
1527
1521
1528 2005-01-11 Fernando Perez <fperez@colorado.edu>
1522 2005-01-11 Fernando Perez <fperez@colorado.edu>
1529
1523
1530 * IPython/genutils.py (flag_calls): new utility to trap and flag
1524 * IPython/genutils.py (flag_calls): new utility to trap and flag
1531 calls in functions. I need it to clean up matplotlib support.
1525 calls in functions. I need it to clean up matplotlib support.
1532 Also removed some deprecated code in genutils.
1526 Also removed some deprecated code in genutils.
1533
1527
1534 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1528 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1535 that matplotlib scripts called with %run, which don't call show()
1529 that matplotlib scripts called with %run, which don't call show()
1536 themselves, still have their plotting windows open.
1530 themselves, still have their plotting windows open.
1537
1531
1538 2005-01-05 Fernando Perez <fperez@colorado.edu>
1532 2005-01-05 Fernando Perez <fperez@colorado.edu>
1539
1533
1540 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1534 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1541 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1535 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1542
1536
1543 2004-12-19 Fernando Perez <fperez@colorado.edu>
1537 2004-12-19 Fernando Perez <fperez@colorado.edu>
1544
1538
1545 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1539 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1546 parent_runcode, which was an eyesore. The same result can be
1540 parent_runcode, which was an eyesore. The same result can be
1547 obtained with Python's regular superclass mechanisms.
1541 obtained with Python's regular superclass mechanisms.
1548
1542
1549 2004-12-17 Fernando Perez <fperez@colorado.edu>
1543 2004-12-17 Fernando Perez <fperez@colorado.edu>
1550
1544
1551 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1545 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1552 reported by Prabhu.
1546 reported by Prabhu.
1553 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1547 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1554 sys.stderr) instead of explicitly calling sys.stderr. This helps
1548 sys.stderr) instead of explicitly calling sys.stderr. This helps
1555 maintain our I/O abstractions clean, for future GUI embeddings.
1549 maintain our I/O abstractions clean, for future GUI embeddings.
1556
1550
1557 * IPython/genutils.py (info): added new utility for sys.stderr
1551 * IPython/genutils.py (info): added new utility for sys.stderr
1558 unified info message handling (thin wrapper around warn()).
1552 unified info message handling (thin wrapper around warn()).
1559
1553
1560 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1554 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1561 composite (dotted) names on verbose exceptions.
1555 composite (dotted) names on verbose exceptions.
1562 (VerboseTB.nullrepr): harden against another kind of errors which
1556 (VerboseTB.nullrepr): harden against another kind of errors which
1563 Python's inspect module can trigger, and which were crashing
1557 Python's inspect module can trigger, and which were crashing
1564 IPython. Thanks to a report by Marco Lombardi
1558 IPython. Thanks to a report by Marco Lombardi
1565 <mlombard-AT-ma010192.hq.eso.org>.
1559 <mlombard-AT-ma010192.hq.eso.org>.
1566
1560
1567 2004-12-13 *** Released version 0.6.6
1561 2004-12-13 *** Released version 0.6.6
1568
1562
1569 2004-12-12 Fernando Perez <fperez@colorado.edu>
1563 2004-12-12 Fernando Perez <fperez@colorado.edu>
1570
1564
1571 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1565 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1572 generated by pygtk upon initialization if it was built without
1566 generated by pygtk upon initialization if it was built without
1573 threads (for matplotlib users). After a crash reported by
1567 threads (for matplotlib users). After a crash reported by
1574 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1568 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1575
1569
1576 * IPython/ipmaker.py (make_IPython): fix small bug in the
1570 * IPython/ipmaker.py (make_IPython): fix small bug in the
1577 import_some parameter for multiple imports.
1571 import_some parameter for multiple imports.
1578
1572
1579 * IPython/iplib.py (ipmagic): simplified the interface of
1573 * IPython/iplib.py (ipmagic): simplified the interface of
1580 ipmagic() to take a single string argument, just as it would be
1574 ipmagic() to take a single string argument, just as it would be
1581 typed at the IPython cmd line.
1575 typed at the IPython cmd line.
1582 (ipalias): Added new ipalias() with an interface identical to
1576 (ipalias): Added new ipalias() with an interface identical to
1583 ipmagic(). This completes exposing a pure python interface to the
1577 ipmagic(). This completes exposing a pure python interface to the
1584 alias and magic system, which can be used in loops or more complex
1578 alias and magic system, which can be used in loops or more complex
1585 code where IPython's automatic line mangling is not active.
1579 code where IPython's automatic line mangling is not active.
1586
1580
1587 * IPython/genutils.py (timing): changed interface of timing to
1581 * IPython/genutils.py (timing): changed interface of timing to
1588 simply run code once, which is the most common case. timings()
1582 simply run code once, which is the most common case. timings()
1589 remains unchanged, for the cases where you want multiple runs.
1583 remains unchanged, for the cases where you want multiple runs.
1590
1584
1591 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1585 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1592 bug where Python2.2 crashes with exec'ing code which does not end
1586 bug where Python2.2 crashes with exec'ing code which does not end
1593 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1587 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1594 before.
1588 before.
1595
1589
1596 2004-12-10 Fernando Perez <fperez@colorado.edu>
1590 2004-12-10 Fernando Perez <fperez@colorado.edu>
1597
1591
1598 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1592 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1599 -t to -T, to accomodate the new -t flag in %run (the %run and
1593 -t to -T, to accomodate the new -t flag in %run (the %run and
1600 %prun options are kind of intermixed, and it's not easy to change
1594 %prun options are kind of intermixed, and it's not easy to change
1601 this with the limitations of python's getopt).
1595 this with the limitations of python's getopt).
1602
1596
1603 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1597 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1604 the execution of scripts. It's not as fine-tuned as timeit.py,
1598 the execution of scripts. It's not as fine-tuned as timeit.py,
1605 but it works from inside ipython (and under 2.2, which lacks
1599 but it works from inside ipython (and under 2.2, which lacks
1606 timeit.py). Optionally a number of runs > 1 can be given for
1600 timeit.py). Optionally a number of runs > 1 can be given for
1607 timing very short-running code.
1601 timing very short-running code.
1608
1602
1609 * IPython/genutils.py (uniq_stable): new routine which returns a
1603 * IPython/genutils.py (uniq_stable): new routine which returns a
1610 list of unique elements in any iterable, but in stable order of
1604 list of unique elements in any iterable, but in stable order of
1611 appearance. I needed this for the ultraTB fixes, and it's a handy
1605 appearance. I needed this for the ultraTB fixes, and it's a handy
1612 utility.
1606 utility.
1613
1607
1614 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1608 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1615 dotted names in Verbose exceptions. This had been broken since
1609 dotted names in Verbose exceptions. This had been broken since
1616 the very start, now x.y will properly be printed in a Verbose
1610 the very start, now x.y will properly be printed in a Verbose
1617 traceback, instead of x being shown and y appearing always as an
1611 traceback, instead of x being shown and y appearing always as an
1618 'undefined global'. Getting this to work was a bit tricky,
1612 'undefined global'. Getting this to work was a bit tricky,
1619 because by default python tokenizers are stateless. Saved by
1613 because by default python tokenizers are stateless. Saved by
1620 python's ability to easily add a bit of state to an arbitrary
1614 python's ability to easily add a bit of state to an arbitrary
1621 function (without needing to build a full-blown callable object).
1615 function (without needing to build a full-blown callable object).
1622
1616
1623 Also big cleanup of this code, which had horrendous runtime
1617 Also big cleanup of this code, which had horrendous runtime
1624 lookups of zillions of attributes for colorization. Moved all
1618 lookups of zillions of attributes for colorization. Moved all
1625 this code into a few templates, which make it cleaner and quicker.
1619 this code into a few templates, which make it cleaner and quicker.
1626
1620
1627 Printout quality was also improved for Verbose exceptions: one
1621 Printout quality was also improved for Verbose exceptions: one
1628 variable per line, and memory addresses are printed (this can be
1622 variable per line, and memory addresses are printed (this can be
1629 quite handy in nasty debugging situations, which is what Verbose
1623 quite handy in nasty debugging situations, which is what Verbose
1630 is for).
1624 is for).
1631
1625
1632 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1626 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1633 the command line as scripts to be loaded by embedded instances.
1627 the command line as scripts to be loaded by embedded instances.
1634 Doing so has the potential for an infinite recursion if there are
1628 Doing so has the potential for an infinite recursion if there are
1635 exceptions thrown in the process. This fixes a strange crash
1629 exceptions thrown in the process. This fixes a strange crash
1636 reported by Philippe MULLER <muller-AT-irit.fr>.
1630 reported by Philippe MULLER <muller-AT-irit.fr>.
1637
1631
1638 2004-12-09 Fernando Perez <fperez@colorado.edu>
1632 2004-12-09 Fernando Perez <fperez@colorado.edu>
1639
1633
1640 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1634 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1641 to reflect new names in matplotlib, which now expose the
1635 to reflect new names in matplotlib, which now expose the
1642 matlab-compatible interface via a pylab module instead of the
1636 matlab-compatible interface via a pylab module instead of the
1643 'matlab' name. The new code is backwards compatible, so users of
1637 'matlab' name. The new code is backwards compatible, so users of
1644 all matplotlib versions are OK. Patch by J. Hunter.
1638 all matplotlib versions are OK. Patch by J. Hunter.
1645
1639
1646 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1640 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1647 of __init__ docstrings for instances (class docstrings are already
1641 of __init__ docstrings for instances (class docstrings are already
1648 automatically printed). Instances with customized docstrings
1642 automatically printed). Instances with customized docstrings
1649 (indep. of the class) are also recognized and all 3 separate
1643 (indep. of the class) are also recognized and all 3 separate
1650 docstrings are printed (instance, class, constructor). After some
1644 docstrings are printed (instance, class, constructor). After some
1651 comments/suggestions by J. Hunter.
1645 comments/suggestions by J. Hunter.
1652
1646
1653 2004-12-05 Fernando Perez <fperez@colorado.edu>
1647 2004-12-05 Fernando Perez <fperez@colorado.edu>
1654
1648
1655 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1649 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1656 warnings when tab-completion fails and triggers an exception.
1650 warnings when tab-completion fails and triggers an exception.
1657
1651
1658 2004-12-03 Fernando Perez <fperez@colorado.edu>
1652 2004-12-03 Fernando Perez <fperez@colorado.edu>
1659
1653
1660 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1654 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1661 be triggered when using 'run -p'. An incorrect option flag was
1655 be triggered when using 'run -p'. An incorrect option flag was
1662 being set ('d' instead of 'D').
1656 being set ('d' instead of 'D').
1663 (manpage): fix missing escaped \- sign.
1657 (manpage): fix missing escaped \- sign.
1664
1658
1665 2004-11-30 *** Released version 0.6.5
1659 2004-11-30 *** Released version 0.6.5
1666
1660
1667 2004-11-30 Fernando Perez <fperez@colorado.edu>
1661 2004-11-30 Fernando Perez <fperez@colorado.edu>
1668
1662
1669 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1663 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1670 setting with -d option.
1664 setting with -d option.
1671
1665
1672 * setup.py (docfiles): Fix problem where the doc glob I was using
1666 * setup.py (docfiles): Fix problem where the doc glob I was using
1673 was COMPLETELY BROKEN. It was giving the right files by pure
1667 was COMPLETELY BROKEN. It was giving the right files by pure
1674 accident, but failed once I tried to include ipython.el. Note:
1668 accident, but failed once I tried to include ipython.el. Note:
1675 glob() does NOT allow you to do exclusion on multiple endings!
1669 glob() does NOT allow you to do exclusion on multiple endings!
1676
1670
1677 2004-11-29 Fernando Perez <fperez@colorado.edu>
1671 2004-11-29 Fernando Perez <fperez@colorado.edu>
1678
1672
1679 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1673 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1680 the manpage as the source. Better formatting & consistency.
1674 the manpage as the source. Better formatting & consistency.
1681
1675
1682 * IPython/Magic.py (magic_run): Added new -d option, to run
1676 * IPython/Magic.py (magic_run): Added new -d option, to run
1683 scripts under the control of the python pdb debugger. Note that
1677 scripts under the control of the python pdb debugger. Note that
1684 this required changing the %prun option -d to -D, to avoid a clash
1678 this required changing the %prun option -d to -D, to avoid a clash
1685 (since %run must pass options to %prun, and getopt is too dumb to
1679 (since %run must pass options to %prun, and getopt is too dumb to
1686 handle options with string values with embedded spaces). Thanks
1680 handle options with string values with embedded spaces). Thanks
1687 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1681 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1688 (magic_who_ls): added type matching to %who and %whos, so that one
1682 (magic_who_ls): added type matching to %who and %whos, so that one
1689 can filter their output to only include variables of certain
1683 can filter their output to only include variables of certain
1690 types. Another suggestion by Matthew.
1684 types. Another suggestion by Matthew.
1691 (magic_whos): Added memory summaries in kb and Mb for arrays.
1685 (magic_whos): Added memory summaries in kb and Mb for arrays.
1692 (magic_who): Improve formatting (break lines every 9 vars).
1686 (magic_who): Improve formatting (break lines every 9 vars).
1693
1687
1694 2004-11-28 Fernando Perez <fperez@colorado.edu>
1688 2004-11-28 Fernando Perez <fperez@colorado.edu>
1695
1689
1696 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1690 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1697 cache when empty lines were present.
1691 cache when empty lines were present.
1698
1692
1699 2004-11-24 Fernando Perez <fperez@colorado.edu>
1693 2004-11-24 Fernando Perez <fperez@colorado.edu>
1700
1694
1701 * IPython/usage.py (__doc__): document the re-activated threading
1695 * IPython/usage.py (__doc__): document the re-activated threading
1702 options for WX and GTK.
1696 options for WX and GTK.
1703
1697
1704 2004-11-23 Fernando Perez <fperez@colorado.edu>
1698 2004-11-23 Fernando Perez <fperez@colorado.edu>
1705
1699
1706 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1700 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1707 the -wthread and -gthread options, along with a new -tk one to try
1701 the -wthread and -gthread options, along with a new -tk one to try
1708 and coordinate Tk threading with wx/gtk. The tk support is very
1702 and coordinate Tk threading with wx/gtk. The tk support is very
1709 platform dependent, since it seems to require Tcl and Tk to be
1703 platform dependent, since it seems to require Tcl and Tk to be
1710 built with threads (Fedora1/2 appears NOT to have it, but in
1704 built with threads (Fedora1/2 appears NOT to have it, but in
1711 Prabhu's Debian boxes it works OK). But even with some Tk
1705 Prabhu's Debian boxes it works OK). But even with some Tk
1712 limitations, this is a great improvement.
1706 limitations, this is a great improvement.
1713
1707
1714 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1708 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1715 info in user prompts. Patch by Prabhu.
1709 info in user prompts. Patch by Prabhu.
1716
1710
1717 2004-11-18 Fernando Perez <fperez@colorado.edu>
1711 2004-11-18 Fernando Perez <fperez@colorado.edu>
1718
1712
1719 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1713 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1720 EOFErrors and bail, to avoid infinite loops if a non-terminating
1714 EOFErrors and bail, to avoid infinite loops if a non-terminating
1721 file is fed into ipython. Patch submitted in issue 19 by user,
1715 file is fed into ipython. Patch submitted in issue 19 by user,
1722 many thanks.
1716 many thanks.
1723
1717
1724 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1718 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1725 autoquote/parens in continuation prompts, which can cause lots of
1719 autoquote/parens in continuation prompts, which can cause lots of
1726 problems. Closes roundup issue 20.
1720 problems. Closes roundup issue 20.
1727
1721
1728 2004-11-17 Fernando Perez <fperez@colorado.edu>
1722 2004-11-17 Fernando Perez <fperez@colorado.edu>
1729
1723
1730 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1724 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1731 reported as debian bug #280505. I'm not sure my local changelog
1725 reported as debian bug #280505. I'm not sure my local changelog
1732 entry has the proper debian format (Jack?).
1726 entry has the proper debian format (Jack?).
1733
1727
1734 2004-11-08 *** Released version 0.6.4
1728 2004-11-08 *** Released version 0.6.4
1735
1729
1736 2004-11-08 Fernando Perez <fperez@colorado.edu>
1730 2004-11-08 Fernando Perez <fperez@colorado.edu>
1737
1731
1738 * IPython/iplib.py (init_readline): Fix exit message for Windows
1732 * IPython/iplib.py (init_readline): Fix exit message for Windows
1739 when readline is active. Thanks to a report by Eric Jones
1733 when readline is active. Thanks to a report by Eric Jones
1740 <eric-AT-enthought.com>.
1734 <eric-AT-enthought.com>.
1741
1735
1742 2004-11-07 Fernando Perez <fperez@colorado.edu>
1736 2004-11-07 Fernando Perez <fperez@colorado.edu>
1743
1737
1744 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1738 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1745 sometimes seen by win2k/cygwin users.
1739 sometimes seen by win2k/cygwin users.
1746
1740
1747 2004-11-06 Fernando Perez <fperez@colorado.edu>
1741 2004-11-06 Fernando Perez <fperez@colorado.edu>
1748
1742
1749 * IPython/iplib.py (interact): Change the handling of %Exit from
1743 * IPython/iplib.py (interact): Change the handling of %Exit from
1750 trying to propagate a SystemExit to an internal ipython flag.
1744 trying to propagate a SystemExit to an internal ipython flag.
1751 This is less elegant than using Python's exception mechanism, but
1745 This is less elegant than using Python's exception mechanism, but
1752 I can't get that to work reliably with threads, so under -pylab
1746 I can't get that to work reliably with threads, so under -pylab
1753 %Exit was hanging IPython. Cross-thread exception handling is
1747 %Exit was hanging IPython. Cross-thread exception handling is
1754 really a bitch. Thaks to a bug report by Stephen Walton
1748 really a bitch. Thaks to a bug report by Stephen Walton
1755 <stephen.walton-AT-csun.edu>.
1749 <stephen.walton-AT-csun.edu>.
1756
1750
1757 2004-11-04 Fernando Perez <fperez@colorado.edu>
1751 2004-11-04 Fernando Perez <fperez@colorado.edu>
1758
1752
1759 * IPython/iplib.py (raw_input_original): store a pointer to the
1753 * IPython/iplib.py (raw_input_original): store a pointer to the
1760 true raw_input to harden against code which can modify it
1754 true raw_input to harden against code which can modify it
1761 (wx.py.PyShell does this and would otherwise crash ipython).
1755 (wx.py.PyShell does this and would otherwise crash ipython).
1762 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1756 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1763
1757
1764 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1758 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1765 Ctrl-C problem, which does not mess up the input line.
1759 Ctrl-C problem, which does not mess up the input line.
1766
1760
1767 2004-11-03 Fernando Perez <fperez@colorado.edu>
1761 2004-11-03 Fernando Perez <fperez@colorado.edu>
1768
1762
1769 * IPython/Release.py: Changed licensing to BSD, in all files.
1763 * IPython/Release.py: Changed licensing to BSD, in all files.
1770 (name): lowercase name for tarball/RPM release.
1764 (name): lowercase name for tarball/RPM release.
1771
1765
1772 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1766 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1773 use throughout ipython.
1767 use throughout ipython.
1774
1768
1775 * IPython/Magic.py (Magic._ofind): Switch to using the new
1769 * IPython/Magic.py (Magic._ofind): Switch to using the new
1776 OInspect.getdoc() function.
1770 OInspect.getdoc() function.
1777
1771
1778 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1772 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1779 of the line currently being canceled via Ctrl-C. It's extremely
1773 of the line currently being canceled via Ctrl-C. It's extremely
1780 ugly, but I don't know how to do it better (the problem is one of
1774 ugly, but I don't know how to do it better (the problem is one of
1781 handling cross-thread exceptions).
1775 handling cross-thread exceptions).
1782
1776
1783 2004-10-28 Fernando Perez <fperez@colorado.edu>
1777 2004-10-28 Fernando Perez <fperez@colorado.edu>
1784
1778
1785 * IPython/Shell.py (signal_handler): add signal handlers to trap
1779 * IPython/Shell.py (signal_handler): add signal handlers to trap
1786 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1780 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1787 report by Francesc Alted.
1781 report by Francesc Alted.
1788
1782
1789 2004-10-21 Fernando Perez <fperez@colorado.edu>
1783 2004-10-21 Fernando Perez <fperez@colorado.edu>
1790
1784
1791 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1785 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1792 to % for pysh syntax extensions.
1786 to % for pysh syntax extensions.
1793
1787
1794 2004-10-09 Fernando Perez <fperez@colorado.edu>
1788 2004-10-09 Fernando Perez <fperez@colorado.edu>
1795
1789
1796 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1790 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1797 arrays to print a more useful summary, without calling str(arr).
1791 arrays to print a more useful summary, without calling str(arr).
1798 This avoids the problem of extremely lengthy computations which
1792 This avoids the problem of extremely lengthy computations which
1799 occur if arr is large, and appear to the user as a system lockup
1793 occur if arr is large, and appear to the user as a system lockup
1800 with 100% cpu activity. After a suggestion by Kristian Sandberg
1794 with 100% cpu activity. After a suggestion by Kristian Sandberg
1801 <Kristian.Sandberg@colorado.edu>.
1795 <Kristian.Sandberg@colorado.edu>.
1802 (Magic.__init__): fix bug in global magic escapes not being
1796 (Magic.__init__): fix bug in global magic escapes not being
1803 correctly set.
1797 correctly set.
1804
1798
1805 2004-10-08 Fernando Perez <fperez@colorado.edu>
1799 2004-10-08 Fernando Perez <fperez@colorado.edu>
1806
1800
1807 * IPython/Magic.py (__license__): change to absolute imports of
1801 * IPython/Magic.py (__license__): change to absolute imports of
1808 ipython's own internal packages, to start adapting to the absolute
1802 ipython's own internal packages, to start adapting to the absolute
1809 import requirement of PEP-328.
1803 import requirement of PEP-328.
1810
1804
1811 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1805 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1812 files, and standardize author/license marks through the Release
1806 files, and standardize author/license marks through the Release
1813 module instead of having per/file stuff (except for files with
1807 module instead of having per/file stuff (except for files with
1814 particular licenses, like the MIT/PSF-licensed codes).
1808 particular licenses, like the MIT/PSF-licensed codes).
1815
1809
1816 * IPython/Debugger.py: remove dead code for python 2.1
1810 * IPython/Debugger.py: remove dead code for python 2.1
1817
1811
1818 2004-10-04 Fernando Perez <fperez@colorado.edu>
1812 2004-10-04 Fernando Perez <fperez@colorado.edu>
1819
1813
1820 * IPython/iplib.py (ipmagic): New function for accessing magics
1814 * IPython/iplib.py (ipmagic): New function for accessing magics
1821 via a normal python function call.
1815 via a normal python function call.
1822
1816
1823 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1817 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1824 from '@' to '%', to accomodate the new @decorator syntax of python
1818 from '@' to '%', to accomodate the new @decorator syntax of python
1825 2.4.
1819 2.4.
1826
1820
1827 2004-09-29 Fernando Perez <fperez@colorado.edu>
1821 2004-09-29 Fernando Perez <fperez@colorado.edu>
1828
1822
1829 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1823 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1830 matplotlib.use to prevent running scripts which try to switch
1824 matplotlib.use to prevent running scripts which try to switch
1831 interactive backends from within ipython. This will just crash
1825 interactive backends from within ipython. This will just crash
1832 the python interpreter, so we can't allow it (but a detailed error
1826 the python interpreter, so we can't allow it (but a detailed error
1833 is given to the user).
1827 is given to the user).
1834
1828
1835 2004-09-28 Fernando Perez <fperez@colorado.edu>
1829 2004-09-28 Fernando Perez <fperez@colorado.edu>
1836
1830
1837 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1831 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1838 matplotlib-related fixes so that using @run with non-matplotlib
1832 matplotlib-related fixes so that using @run with non-matplotlib
1839 scripts doesn't pop up spurious plot windows. This requires
1833 scripts doesn't pop up spurious plot windows. This requires
1840 matplotlib >= 0.63, where I had to make some changes as well.
1834 matplotlib >= 0.63, where I had to make some changes as well.
1841
1835
1842 * IPython/ipmaker.py (make_IPython): update version requirement to
1836 * IPython/ipmaker.py (make_IPython): update version requirement to
1843 python 2.2.
1837 python 2.2.
1844
1838
1845 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1839 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1846 banner arg for embedded customization.
1840 banner arg for embedded customization.
1847
1841
1848 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1842 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1849 explicit uses of __IP as the IPython's instance name. Now things
1843 explicit uses of __IP as the IPython's instance name. Now things
1850 are properly handled via the shell.name value. The actual code
1844 are properly handled via the shell.name value. The actual code
1851 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1845 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1852 is much better than before. I'll clean things completely when the
1846 is much better than before. I'll clean things completely when the
1853 magic stuff gets a real overhaul.
1847 magic stuff gets a real overhaul.
1854
1848
1855 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1849 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1856 minor changes to debian dir.
1850 minor changes to debian dir.
1857
1851
1858 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1852 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1859 pointer to the shell itself in the interactive namespace even when
1853 pointer to the shell itself in the interactive namespace even when
1860 a user-supplied dict is provided. This is needed for embedding
1854 a user-supplied dict is provided. This is needed for embedding
1861 purposes (found by tests with Michel Sanner).
1855 purposes (found by tests with Michel Sanner).
1862
1856
1863 2004-09-27 Fernando Perez <fperez@colorado.edu>
1857 2004-09-27 Fernando Perez <fperez@colorado.edu>
1864
1858
1865 * IPython/UserConfig/ipythonrc: remove []{} from
1859 * IPython/UserConfig/ipythonrc: remove []{} from
1866 readline_remove_delims, so that things like [modname.<TAB> do
1860 readline_remove_delims, so that things like [modname.<TAB> do
1867 proper completion. This disables [].TAB, but that's a less common
1861 proper completion. This disables [].TAB, but that's a less common
1868 case than module names in list comprehensions, for example.
1862 case than module names in list comprehensions, for example.
1869 Thanks to a report by Andrea Riciputi.
1863 Thanks to a report by Andrea Riciputi.
1870
1864
1871 2004-09-09 Fernando Perez <fperez@colorado.edu>
1865 2004-09-09 Fernando Perez <fperez@colorado.edu>
1872
1866
1873 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1867 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1874 blocking problems in win32 and osx. Fix by John.
1868 blocking problems in win32 and osx. Fix by John.
1875
1869
1876 2004-09-08 Fernando Perez <fperez@colorado.edu>
1870 2004-09-08 Fernando Perez <fperez@colorado.edu>
1877
1871
1878 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1872 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1879 for Win32 and OSX. Fix by John Hunter.
1873 for Win32 and OSX. Fix by John Hunter.
1880
1874
1881 2004-08-30 *** Released version 0.6.3
1875 2004-08-30 *** Released version 0.6.3
1882
1876
1883 2004-08-30 Fernando Perez <fperez@colorado.edu>
1877 2004-08-30 Fernando Perez <fperez@colorado.edu>
1884
1878
1885 * setup.py (isfile): Add manpages to list of dependent files to be
1879 * setup.py (isfile): Add manpages to list of dependent files to be
1886 updated.
1880 updated.
1887
1881
1888 2004-08-27 Fernando Perez <fperez@colorado.edu>
1882 2004-08-27 Fernando Perez <fperez@colorado.edu>
1889
1883
1890 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1884 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1891 for now. They don't really work with standalone WX/GTK code
1885 for now. They don't really work with standalone WX/GTK code
1892 (though matplotlib IS working fine with both of those backends).
1886 (though matplotlib IS working fine with both of those backends).
1893 This will neeed much more testing. I disabled most things with
1887 This will neeed much more testing. I disabled most things with
1894 comments, so turning it back on later should be pretty easy.
1888 comments, so turning it back on later should be pretty easy.
1895
1889
1896 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1890 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1897 autocalling of expressions like r'foo', by modifying the line
1891 autocalling of expressions like r'foo', by modifying the line
1898 split regexp. Closes
1892 split regexp. Closes
1899 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1893 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1900 Riley <ipythonbugs-AT-sabi.net>.
1894 Riley <ipythonbugs-AT-sabi.net>.
1901 (InteractiveShell.mainloop): honor --nobanner with banner
1895 (InteractiveShell.mainloop): honor --nobanner with banner
1902 extensions.
1896 extensions.
1903
1897
1904 * IPython/Shell.py: Significant refactoring of all classes, so
1898 * IPython/Shell.py: Significant refactoring of all classes, so
1905 that we can really support ALL matplotlib backends and threading
1899 that we can really support ALL matplotlib backends and threading
1906 models (John spotted a bug with Tk which required this). Now we
1900 models (John spotted a bug with Tk which required this). Now we
1907 should support single-threaded, WX-threads and GTK-threads, both
1901 should support single-threaded, WX-threads and GTK-threads, both
1908 for generic code and for matplotlib.
1902 for generic code and for matplotlib.
1909
1903
1910 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1904 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1911 -pylab, to simplify things for users. Will also remove the pylab
1905 -pylab, to simplify things for users. Will also remove the pylab
1912 profile, since now all of matplotlib configuration is directly
1906 profile, since now all of matplotlib configuration is directly
1913 handled here. This also reduces startup time.
1907 handled here. This also reduces startup time.
1914
1908
1915 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1909 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1916 shell wasn't being correctly called. Also in IPShellWX.
1910 shell wasn't being correctly called. Also in IPShellWX.
1917
1911
1918 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1912 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1919 fine-tune banner.
1913 fine-tune banner.
1920
1914
1921 * IPython/numutils.py (spike): Deprecate these spike functions,
1915 * IPython/numutils.py (spike): Deprecate these spike functions,
1922 delete (long deprecated) gnuplot_exec handler.
1916 delete (long deprecated) gnuplot_exec handler.
1923
1917
1924 2004-08-26 Fernando Perez <fperez@colorado.edu>
1918 2004-08-26 Fernando Perez <fperez@colorado.edu>
1925
1919
1926 * ipython.1: Update for threading options, plus some others which
1920 * ipython.1: Update for threading options, plus some others which
1927 were missing.
1921 were missing.
1928
1922
1929 * IPython/ipmaker.py (__call__): Added -wthread option for
1923 * IPython/ipmaker.py (__call__): Added -wthread option for
1930 wxpython thread handling. Make sure threading options are only
1924 wxpython thread handling. Make sure threading options are only
1931 valid at the command line.
1925 valid at the command line.
1932
1926
1933 * scripts/ipython: moved shell selection into a factory function
1927 * scripts/ipython: moved shell selection into a factory function
1934 in Shell.py, to keep the starter script to a minimum.
1928 in Shell.py, to keep the starter script to a minimum.
1935
1929
1936 2004-08-25 Fernando Perez <fperez@colorado.edu>
1930 2004-08-25 Fernando Perez <fperez@colorado.edu>
1937
1931
1938 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1932 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1939 John. Along with some recent changes he made to matplotlib, the
1933 John. Along with some recent changes he made to matplotlib, the
1940 next versions of both systems should work very well together.
1934 next versions of both systems should work very well together.
1941
1935
1942 2004-08-24 Fernando Perez <fperez@colorado.edu>
1936 2004-08-24 Fernando Perez <fperez@colorado.edu>
1943
1937
1944 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1938 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1945 tried to switch the profiling to using hotshot, but I'm getting
1939 tried to switch the profiling to using hotshot, but I'm getting
1946 strange errors from prof.runctx() there. I may be misreading the
1940 strange errors from prof.runctx() there. I may be misreading the
1947 docs, but it looks weird. For now the profiling code will
1941 docs, but it looks weird. For now the profiling code will
1948 continue to use the standard profiler.
1942 continue to use the standard profiler.
1949
1943
1950 2004-08-23 Fernando Perez <fperez@colorado.edu>
1944 2004-08-23 Fernando Perez <fperez@colorado.edu>
1951
1945
1952 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1946 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1953 threaded shell, by John Hunter. It's not quite ready yet, but
1947 threaded shell, by John Hunter. It's not quite ready yet, but
1954 close.
1948 close.
1955
1949
1956 2004-08-22 Fernando Perez <fperez@colorado.edu>
1950 2004-08-22 Fernando Perez <fperez@colorado.edu>
1957
1951
1958 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1952 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1959 in Magic and ultraTB.
1953 in Magic and ultraTB.
1960
1954
1961 * ipython.1: document threading options in manpage.
1955 * ipython.1: document threading options in manpage.
1962
1956
1963 * scripts/ipython: Changed name of -thread option to -gthread,
1957 * scripts/ipython: Changed name of -thread option to -gthread,
1964 since this is GTK specific. I want to leave the door open for a
1958 since this is GTK specific. I want to leave the door open for a
1965 -wthread option for WX, which will most likely be necessary. This
1959 -wthread option for WX, which will most likely be necessary. This
1966 change affects usage and ipmaker as well.
1960 change affects usage and ipmaker as well.
1967
1961
1968 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1962 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1969 handle the matplotlib shell issues. Code by John Hunter
1963 handle the matplotlib shell issues. Code by John Hunter
1970 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1964 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1971 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1965 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1972 broken (and disabled for end users) for now, but it puts the
1966 broken (and disabled for end users) for now, but it puts the
1973 infrastructure in place.
1967 infrastructure in place.
1974
1968
1975 2004-08-21 Fernando Perez <fperez@colorado.edu>
1969 2004-08-21 Fernando Perez <fperez@colorado.edu>
1976
1970
1977 * ipythonrc-pylab: Add matplotlib support.
1971 * ipythonrc-pylab: Add matplotlib support.
1978
1972
1979 * matplotlib_config.py: new files for matplotlib support, part of
1973 * matplotlib_config.py: new files for matplotlib support, part of
1980 the pylab profile.
1974 the pylab profile.
1981
1975
1982 * IPython/usage.py (__doc__): documented the threading options.
1976 * IPython/usage.py (__doc__): documented the threading options.
1983
1977
1984 2004-08-20 Fernando Perez <fperez@colorado.edu>
1978 2004-08-20 Fernando Perez <fperez@colorado.edu>
1985
1979
1986 * ipython: Modified the main calling routine to handle the -thread
1980 * ipython: Modified the main calling routine to handle the -thread
1987 and -mpthread options. This needs to be done as a top-level hack,
1981 and -mpthread options. This needs to be done as a top-level hack,
1988 because it determines which class to instantiate for IPython
1982 because it determines which class to instantiate for IPython
1989 itself.
1983 itself.
1990
1984
1991 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1985 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1992 classes to support multithreaded GTK operation without blocking,
1986 classes to support multithreaded GTK operation without blocking,
1993 and matplotlib with all backends. This is a lot of still very
1987 and matplotlib with all backends. This is a lot of still very
1994 experimental code, and threads are tricky. So it may still have a
1988 experimental code, and threads are tricky. So it may still have a
1995 few rough edges... This code owes a lot to
1989 few rough edges... This code owes a lot to
1996 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1990 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1997 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1991 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1998 to John Hunter for all the matplotlib work.
1992 to John Hunter for all the matplotlib work.
1999
1993
2000 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1994 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2001 options for gtk thread and matplotlib support.
1995 options for gtk thread and matplotlib support.
2002
1996
2003 2004-08-16 Fernando Perez <fperez@colorado.edu>
1997 2004-08-16 Fernando Perez <fperez@colorado.edu>
2004
1998
2005 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1999 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2006 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2000 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2007 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2001 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2008
2002
2009 2004-08-11 Fernando Perez <fperez@colorado.edu>
2003 2004-08-11 Fernando Perez <fperez@colorado.edu>
2010
2004
2011 * setup.py (isfile): Fix build so documentation gets updated for
2005 * setup.py (isfile): Fix build so documentation gets updated for
2012 rpms (it was only done for .tgz builds).
2006 rpms (it was only done for .tgz builds).
2013
2007
2014 2004-08-10 Fernando Perez <fperez@colorado.edu>
2008 2004-08-10 Fernando Perez <fperez@colorado.edu>
2015
2009
2016 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2010 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2017
2011
2018 * iplib.py : Silence syntax error exceptions in tab-completion.
2012 * iplib.py : Silence syntax error exceptions in tab-completion.
2019
2013
2020 2004-08-05 Fernando Perez <fperez@colorado.edu>
2014 2004-08-05 Fernando Perez <fperez@colorado.edu>
2021
2015
2022 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2016 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2023 'color off' mark for continuation prompts. This was causing long
2017 'color off' mark for continuation prompts. This was causing long
2024 continuation lines to mis-wrap.
2018 continuation lines to mis-wrap.
2025
2019
2026 2004-08-01 Fernando Perez <fperez@colorado.edu>
2020 2004-08-01 Fernando Perez <fperez@colorado.edu>
2027
2021
2028 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2022 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2029 for building ipython to be a parameter. All this is necessary
2023 for building ipython to be a parameter. All this is necessary
2030 right now to have a multithreaded version, but this insane
2024 right now to have a multithreaded version, but this insane
2031 non-design will be cleaned up soon. For now, it's a hack that
2025 non-design will be cleaned up soon. For now, it's a hack that
2032 works.
2026 works.
2033
2027
2034 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2028 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2035 args in various places. No bugs so far, but it's a dangerous
2029 args in various places. No bugs so far, but it's a dangerous
2036 practice.
2030 practice.
2037
2031
2038 2004-07-31 Fernando Perez <fperez@colorado.edu>
2032 2004-07-31 Fernando Perez <fperez@colorado.edu>
2039
2033
2040 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2034 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2041 fix completion of files with dots in their names under most
2035 fix completion of files with dots in their names under most
2042 profiles (pysh was OK because the completion order is different).
2036 profiles (pysh was OK because the completion order is different).
2043
2037
2044 2004-07-27 Fernando Perez <fperez@colorado.edu>
2038 2004-07-27 Fernando Perez <fperez@colorado.edu>
2045
2039
2046 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2040 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2047 keywords manually, b/c the one in keyword.py was removed in python
2041 keywords manually, b/c the one in keyword.py was removed in python
2048 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2042 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2049 This is NOT a bug under python 2.3 and earlier.
2043 This is NOT a bug under python 2.3 and earlier.
2050
2044
2051 2004-07-26 Fernando Perez <fperez@colorado.edu>
2045 2004-07-26 Fernando Perez <fperez@colorado.edu>
2052
2046
2053 * IPython/ultraTB.py (VerboseTB.text): Add another
2047 * IPython/ultraTB.py (VerboseTB.text): Add another
2054 linecache.checkcache() call to try to prevent inspect.py from
2048 linecache.checkcache() call to try to prevent inspect.py from
2055 crashing under python 2.3. I think this fixes
2049 crashing under python 2.3. I think this fixes
2056 http://www.scipy.net/roundup/ipython/issue17.
2050 http://www.scipy.net/roundup/ipython/issue17.
2057
2051
2058 2004-07-26 *** Released version 0.6.2
2052 2004-07-26 *** Released version 0.6.2
2059
2053
2060 2004-07-26 Fernando Perez <fperez@colorado.edu>
2054 2004-07-26 Fernando Perez <fperez@colorado.edu>
2061
2055
2062 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2056 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2063 fail for any number.
2057 fail for any number.
2064 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2058 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2065 empty bookmarks.
2059 empty bookmarks.
2066
2060
2067 2004-07-26 *** Released version 0.6.1
2061 2004-07-26 *** Released version 0.6.1
2068
2062
2069 2004-07-26 Fernando Perez <fperez@colorado.edu>
2063 2004-07-26 Fernando Perez <fperez@colorado.edu>
2070
2064
2071 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2065 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2072
2066
2073 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2067 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2074 escaping '()[]{}' in filenames.
2068 escaping '()[]{}' in filenames.
2075
2069
2076 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2070 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2077 Python 2.2 users who lack a proper shlex.split.
2071 Python 2.2 users who lack a proper shlex.split.
2078
2072
2079 2004-07-19 Fernando Perez <fperez@colorado.edu>
2073 2004-07-19 Fernando Perez <fperez@colorado.edu>
2080
2074
2081 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2075 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2082 for reading readline's init file. I follow the normal chain:
2076 for reading readline's init file. I follow the normal chain:
2083 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2077 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2084 report by Mike Heeter. This closes
2078 report by Mike Heeter. This closes
2085 http://www.scipy.net/roundup/ipython/issue16.
2079 http://www.scipy.net/roundup/ipython/issue16.
2086
2080
2087 2004-07-18 Fernando Perez <fperez@colorado.edu>
2081 2004-07-18 Fernando Perez <fperez@colorado.edu>
2088
2082
2089 * IPython/iplib.py (__init__): Add better handling of '\' under
2083 * IPython/iplib.py (__init__): Add better handling of '\' under
2090 Win32 for filenames. After a patch by Ville.
2084 Win32 for filenames. After a patch by Ville.
2091
2085
2092 2004-07-17 Fernando Perez <fperez@colorado.edu>
2086 2004-07-17 Fernando Perez <fperez@colorado.edu>
2093
2087
2094 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2088 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2095 autocalling would be triggered for 'foo is bar' if foo is
2089 autocalling would be triggered for 'foo is bar' if foo is
2096 callable. I also cleaned up the autocall detection code to use a
2090 callable. I also cleaned up the autocall detection code to use a
2097 regexp, which is faster. Bug reported by Alexander Schmolck.
2091 regexp, which is faster. Bug reported by Alexander Schmolck.
2098
2092
2099 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2093 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2100 '?' in them would confuse the help system. Reported by Alex
2094 '?' in them would confuse the help system. Reported by Alex
2101 Schmolck.
2095 Schmolck.
2102
2096
2103 2004-07-16 Fernando Perez <fperez@colorado.edu>
2097 2004-07-16 Fernando Perez <fperez@colorado.edu>
2104
2098
2105 * IPython/GnuplotInteractive.py (__all__): added plot2.
2099 * IPython/GnuplotInteractive.py (__all__): added plot2.
2106
2100
2107 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2101 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2108 plotting dictionaries, lists or tuples of 1d arrays.
2102 plotting dictionaries, lists or tuples of 1d arrays.
2109
2103
2110 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2104 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2111 optimizations.
2105 optimizations.
2112
2106
2113 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2107 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2114 the information which was there from Janko's original IPP code:
2108 the information which was there from Janko's original IPP code:
2115
2109
2116 03.05.99 20:53 porto.ifm.uni-kiel.de
2110 03.05.99 20:53 porto.ifm.uni-kiel.de
2117 --Started changelog.
2111 --Started changelog.
2118 --make clear do what it say it does
2112 --make clear do what it say it does
2119 --added pretty output of lines from inputcache
2113 --added pretty output of lines from inputcache
2120 --Made Logger a mixin class, simplifies handling of switches
2114 --Made Logger a mixin class, simplifies handling of switches
2121 --Added own completer class. .string<TAB> expands to last history
2115 --Added own completer class. .string<TAB> expands to last history
2122 line which starts with string. The new expansion is also present
2116 line which starts with string. The new expansion is also present
2123 with Ctrl-r from the readline library. But this shows, who this
2117 with Ctrl-r from the readline library. But this shows, who this
2124 can be done for other cases.
2118 can be done for other cases.
2125 --Added convention that all shell functions should accept a
2119 --Added convention that all shell functions should accept a
2126 parameter_string This opens the door for different behaviour for
2120 parameter_string This opens the door for different behaviour for
2127 each function. @cd is a good example of this.
2121 each function. @cd is a good example of this.
2128
2122
2129 04.05.99 12:12 porto.ifm.uni-kiel.de
2123 04.05.99 12:12 porto.ifm.uni-kiel.de
2130 --added logfile rotation
2124 --added logfile rotation
2131 --added new mainloop method which freezes first the namespace
2125 --added new mainloop method which freezes first the namespace
2132
2126
2133 07.05.99 21:24 porto.ifm.uni-kiel.de
2127 07.05.99 21:24 porto.ifm.uni-kiel.de
2134 --added the docreader classes. Now there is a help system.
2128 --added the docreader classes. Now there is a help system.
2135 -This is only a first try. Currently it's not easy to put new
2129 -This is only a first try. Currently it's not easy to put new
2136 stuff in the indices. But this is the way to go. Info would be
2130 stuff in the indices. But this is the way to go. Info would be
2137 better, but HTML is every where and not everybody has an info
2131 better, but HTML is every where and not everybody has an info
2138 system installed and it's not so easy to change html-docs to info.
2132 system installed and it's not so easy to change html-docs to info.
2139 --added global logfile option
2133 --added global logfile option
2140 --there is now a hook for object inspection method pinfo needs to
2134 --there is now a hook for object inspection method pinfo needs to
2141 be provided for this. Can be reached by two '??'.
2135 be provided for this. Can be reached by two '??'.
2142
2136
2143 08.05.99 20:51 porto.ifm.uni-kiel.de
2137 08.05.99 20:51 porto.ifm.uni-kiel.de
2144 --added a README
2138 --added a README
2145 --bug in rc file. Something has changed so functions in the rc
2139 --bug in rc file. Something has changed so functions in the rc
2146 file need to reference the shell and not self. Not clear if it's a
2140 file need to reference the shell and not self. Not clear if it's a
2147 bug or feature.
2141 bug or feature.
2148 --changed rc file for new behavior
2142 --changed rc file for new behavior
2149
2143
2150 2004-07-15 Fernando Perez <fperez@colorado.edu>
2144 2004-07-15 Fernando Perez <fperez@colorado.edu>
2151
2145
2152 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2146 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2153 cache was falling out of sync in bizarre manners when multi-line
2147 cache was falling out of sync in bizarre manners when multi-line
2154 input was present. Minor optimizations and cleanup.
2148 input was present. Minor optimizations and cleanup.
2155
2149
2156 (Logger): Remove old Changelog info for cleanup. This is the
2150 (Logger): Remove old Changelog info for cleanup. This is the
2157 information which was there from Janko's original code:
2151 information which was there from Janko's original code:
2158
2152
2159 Changes to Logger: - made the default log filename a parameter
2153 Changes to Logger: - made the default log filename a parameter
2160
2154
2161 - put a check for lines beginning with !@? in log(). Needed
2155 - put a check for lines beginning with !@? in log(). Needed
2162 (even if the handlers properly log their lines) for mid-session
2156 (even if the handlers properly log their lines) for mid-session
2163 logging activation to work properly. Without this, lines logged
2157 logging activation to work properly. Without this, lines logged
2164 in mid session, which get read from the cache, would end up
2158 in mid session, which get read from the cache, would end up
2165 'bare' (with !@? in the open) in the log. Now they are caught
2159 'bare' (with !@? in the open) in the log. Now they are caught
2166 and prepended with a #.
2160 and prepended with a #.
2167
2161
2168 * IPython/iplib.py (InteractiveShell.init_readline): added check
2162 * IPython/iplib.py (InteractiveShell.init_readline): added check
2169 in case MagicCompleter fails to be defined, so we don't crash.
2163 in case MagicCompleter fails to be defined, so we don't crash.
2170
2164
2171 2004-07-13 Fernando Perez <fperez@colorado.edu>
2165 2004-07-13 Fernando Perez <fperez@colorado.edu>
2172
2166
2173 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2167 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2174 of EPS if the requested filename ends in '.eps'.
2168 of EPS if the requested filename ends in '.eps'.
2175
2169
2176 2004-07-04 Fernando Perez <fperez@colorado.edu>
2170 2004-07-04 Fernando Perez <fperez@colorado.edu>
2177
2171
2178 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2172 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2179 escaping of quotes when calling the shell.
2173 escaping of quotes when calling the shell.
2180
2174
2181 2004-07-02 Fernando Perez <fperez@colorado.edu>
2175 2004-07-02 Fernando Perez <fperez@colorado.edu>
2182
2176
2183 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2177 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2184 gettext not working because we were clobbering '_'. Fixes
2178 gettext not working because we were clobbering '_'. Fixes
2185 http://www.scipy.net/roundup/ipython/issue6.
2179 http://www.scipy.net/roundup/ipython/issue6.
2186
2180
2187 2004-07-01 Fernando Perez <fperez@colorado.edu>
2181 2004-07-01 Fernando Perez <fperez@colorado.edu>
2188
2182
2189 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2183 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2190 into @cd. Patch by Ville.
2184 into @cd. Patch by Ville.
2191
2185
2192 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2186 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2193 new function to store things after ipmaker runs. Patch by Ville.
2187 new function to store things after ipmaker runs. Patch by Ville.
2194 Eventually this will go away once ipmaker is removed and the class
2188 Eventually this will go away once ipmaker is removed and the class
2195 gets cleaned up, but for now it's ok. Key functionality here is
2189 gets cleaned up, but for now it's ok. Key functionality here is
2196 the addition of the persistent storage mechanism, a dict for
2190 the addition of the persistent storage mechanism, a dict for
2197 keeping data across sessions (for now just bookmarks, but more can
2191 keeping data across sessions (for now just bookmarks, but more can
2198 be implemented later).
2192 be implemented later).
2199
2193
2200 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2194 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2201 persistent across sections. Patch by Ville, I modified it
2195 persistent across sections. Patch by Ville, I modified it
2202 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2196 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2203 added a '-l' option to list all bookmarks.
2197 added a '-l' option to list all bookmarks.
2204
2198
2205 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2199 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2206 center for cleanup. Registered with atexit.register(). I moved
2200 center for cleanup. Registered with atexit.register(). I moved
2207 here the old exit_cleanup(). After a patch by Ville.
2201 here the old exit_cleanup(). After a patch by Ville.
2208
2202
2209 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2203 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2210 characters in the hacked shlex_split for python 2.2.
2204 characters in the hacked shlex_split for python 2.2.
2211
2205
2212 * IPython/iplib.py (file_matches): more fixes to filenames with
2206 * IPython/iplib.py (file_matches): more fixes to filenames with
2213 whitespace in them. It's not perfect, but limitations in python's
2207 whitespace in them. It's not perfect, but limitations in python's
2214 readline make it impossible to go further.
2208 readline make it impossible to go further.
2215
2209
2216 2004-06-29 Fernando Perez <fperez@colorado.edu>
2210 2004-06-29 Fernando Perez <fperez@colorado.edu>
2217
2211
2218 * IPython/iplib.py (file_matches): escape whitespace correctly in
2212 * IPython/iplib.py (file_matches): escape whitespace correctly in
2219 filename completions. Bug reported by Ville.
2213 filename completions. Bug reported by Ville.
2220
2214
2221 2004-06-28 Fernando Perez <fperez@colorado.edu>
2215 2004-06-28 Fernando Perez <fperez@colorado.edu>
2222
2216
2223 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2217 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2224 the history file will be called 'history-PROFNAME' (or just
2218 the history file will be called 'history-PROFNAME' (or just
2225 'history' if no profile is loaded). I was getting annoyed at
2219 'history' if no profile is loaded). I was getting annoyed at
2226 getting my Numerical work history clobbered by pysh sessions.
2220 getting my Numerical work history clobbered by pysh sessions.
2227
2221
2228 * IPython/iplib.py (InteractiveShell.__init__): Internal
2222 * IPython/iplib.py (InteractiveShell.__init__): Internal
2229 getoutputerror() function so that we can honor the system_verbose
2223 getoutputerror() function so that we can honor the system_verbose
2230 flag for _all_ system calls. I also added escaping of #
2224 flag for _all_ system calls. I also added escaping of #
2231 characters here to avoid confusing Itpl.
2225 characters here to avoid confusing Itpl.
2232
2226
2233 * IPython/Magic.py (shlex_split): removed call to shell in
2227 * IPython/Magic.py (shlex_split): removed call to shell in
2234 parse_options and replaced it with shlex.split(). The annoying
2228 parse_options and replaced it with shlex.split(). The annoying
2235 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2229 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2236 to backport it from 2.3, with several frail hacks (the shlex
2230 to backport it from 2.3, with several frail hacks (the shlex
2237 module is rather limited in 2.2). Thanks to a suggestion by Ville
2231 module is rather limited in 2.2). Thanks to a suggestion by Ville
2238 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2232 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2239 problem.
2233 problem.
2240
2234
2241 (Magic.magic_system_verbose): new toggle to print the actual
2235 (Magic.magic_system_verbose): new toggle to print the actual
2242 system calls made by ipython. Mainly for debugging purposes.
2236 system calls made by ipython. Mainly for debugging purposes.
2243
2237
2244 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2238 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2245 doesn't support persistence. Reported (and fix suggested) by
2239 doesn't support persistence. Reported (and fix suggested) by
2246 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2240 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2247
2241
2248 2004-06-26 Fernando Perez <fperez@colorado.edu>
2242 2004-06-26 Fernando Perez <fperez@colorado.edu>
2249
2243
2250 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2244 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2251 continue prompts.
2245 continue prompts.
2252
2246
2253 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2247 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2254 function (basically a big docstring) and a few more things here to
2248 function (basically a big docstring) and a few more things here to
2255 speedup startup. pysh.py is now very lightweight. We want because
2249 speedup startup. pysh.py is now very lightweight. We want because
2256 it gets execfile'd, while InterpreterExec gets imported, so
2250 it gets execfile'd, while InterpreterExec gets imported, so
2257 byte-compilation saves time.
2251 byte-compilation saves time.
2258
2252
2259 2004-06-25 Fernando Perez <fperez@colorado.edu>
2253 2004-06-25 Fernando Perez <fperez@colorado.edu>
2260
2254
2261 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2255 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2262 -NUM', which was recently broken.
2256 -NUM', which was recently broken.
2263
2257
2264 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2258 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2265 in multi-line input (but not !!, which doesn't make sense there).
2259 in multi-line input (but not !!, which doesn't make sense there).
2266
2260
2267 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2261 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2268 It's just too useful, and people can turn it off in the less
2262 It's just too useful, and people can turn it off in the less
2269 common cases where it's a problem.
2263 common cases where it's a problem.
2270
2264
2271 2004-06-24 Fernando Perez <fperez@colorado.edu>
2265 2004-06-24 Fernando Perez <fperez@colorado.edu>
2272
2266
2273 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2267 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2274 special syntaxes (like alias calling) is now allied in multi-line
2268 special syntaxes (like alias calling) is now allied in multi-line
2275 input. This is still _very_ experimental, but it's necessary for
2269 input. This is still _very_ experimental, but it's necessary for
2276 efficient shell usage combining python looping syntax with system
2270 efficient shell usage combining python looping syntax with system
2277 calls. For now it's restricted to aliases, I don't think it
2271 calls. For now it's restricted to aliases, I don't think it
2278 really even makes sense to have this for magics.
2272 really even makes sense to have this for magics.
2279
2273
2280 2004-06-23 Fernando Perez <fperez@colorado.edu>
2274 2004-06-23 Fernando Perez <fperez@colorado.edu>
2281
2275
2282 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2276 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2283 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2277 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2284
2278
2285 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2279 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2286 extensions under Windows (after code sent by Gary Bishop). The
2280 extensions under Windows (after code sent by Gary Bishop). The
2287 extensions considered 'executable' are stored in IPython's rc
2281 extensions considered 'executable' are stored in IPython's rc
2288 structure as win_exec_ext.
2282 structure as win_exec_ext.
2289
2283
2290 * IPython/genutils.py (shell): new function, like system() but
2284 * IPython/genutils.py (shell): new function, like system() but
2291 without return value. Very useful for interactive shell work.
2285 without return value. Very useful for interactive shell work.
2292
2286
2293 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2287 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2294 delete aliases.
2288 delete aliases.
2295
2289
2296 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2290 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2297 sure that the alias table doesn't contain python keywords.
2291 sure that the alias table doesn't contain python keywords.
2298
2292
2299 2004-06-21 Fernando Perez <fperez@colorado.edu>
2293 2004-06-21 Fernando Perez <fperez@colorado.edu>
2300
2294
2301 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2295 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2302 non-existent items are found in $PATH. Reported by Thorsten.
2296 non-existent items are found in $PATH. Reported by Thorsten.
2303
2297
2304 2004-06-20 Fernando Perez <fperez@colorado.edu>
2298 2004-06-20 Fernando Perez <fperez@colorado.edu>
2305
2299
2306 * IPython/iplib.py (complete): modified the completer so that the
2300 * IPython/iplib.py (complete): modified the completer so that the
2307 order of priorities can be easily changed at runtime.
2301 order of priorities can be easily changed at runtime.
2308
2302
2309 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2303 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2310 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2304 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2311
2305
2312 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2306 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2313 expand Python variables prepended with $ in all system calls. The
2307 expand Python variables prepended with $ in all system calls. The
2314 same was done to InteractiveShell.handle_shell_escape. Now all
2308 same was done to InteractiveShell.handle_shell_escape. Now all
2315 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2309 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2316 expansion of python variables and expressions according to the
2310 expansion of python variables and expressions according to the
2317 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2311 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2318
2312
2319 Though PEP-215 has been rejected, a similar (but simpler) one
2313 Though PEP-215 has been rejected, a similar (but simpler) one
2320 seems like it will go into Python 2.4, PEP-292 -
2314 seems like it will go into Python 2.4, PEP-292 -
2321 http://www.python.org/peps/pep-0292.html.
2315 http://www.python.org/peps/pep-0292.html.
2322
2316
2323 I'll keep the full syntax of PEP-215, since IPython has since the
2317 I'll keep the full syntax of PEP-215, since IPython has since the
2324 start used Ka-Ping Yee's reference implementation discussed there
2318 start used Ka-Ping Yee's reference implementation discussed there
2325 (Itpl), and I actually like the powerful semantics it offers.
2319 (Itpl), and I actually like the powerful semantics it offers.
2326
2320
2327 In order to access normal shell variables, the $ has to be escaped
2321 In order to access normal shell variables, the $ has to be escaped
2328 via an extra $. For example:
2322 via an extra $. For example:
2329
2323
2330 In [7]: PATH='a python variable'
2324 In [7]: PATH='a python variable'
2331
2325
2332 In [8]: !echo $PATH
2326 In [8]: !echo $PATH
2333 a python variable
2327 a python variable
2334
2328
2335 In [9]: !echo $$PATH
2329 In [9]: !echo $$PATH
2336 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2330 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2337
2331
2338 (Magic.parse_options): escape $ so the shell doesn't evaluate
2332 (Magic.parse_options): escape $ so the shell doesn't evaluate
2339 things prematurely.
2333 things prematurely.
2340
2334
2341 * IPython/iplib.py (InteractiveShell.call_alias): added the
2335 * IPython/iplib.py (InteractiveShell.call_alias): added the
2342 ability for aliases to expand python variables via $.
2336 ability for aliases to expand python variables via $.
2343
2337
2344 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2338 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2345 system, now there's a @rehash/@rehashx pair of magics. These work
2339 system, now there's a @rehash/@rehashx pair of magics. These work
2346 like the csh rehash command, and can be invoked at any time. They
2340 like the csh rehash command, and can be invoked at any time. They
2347 build a table of aliases to everything in the user's $PATH
2341 build a table of aliases to everything in the user's $PATH
2348 (@rehash uses everything, @rehashx is slower but only adds
2342 (@rehash uses everything, @rehashx is slower but only adds
2349 executable files). With this, the pysh.py-based shell profile can
2343 executable files). With this, the pysh.py-based shell profile can
2350 now simply call rehash upon startup, and full access to all
2344 now simply call rehash upon startup, and full access to all
2351 programs in the user's path is obtained.
2345 programs in the user's path is obtained.
2352
2346
2353 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2347 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2354 functionality is now fully in place. I removed the old dynamic
2348 functionality is now fully in place. I removed the old dynamic
2355 code generation based approach, in favor of a much lighter one
2349 code generation based approach, in favor of a much lighter one
2356 based on a simple dict. The advantage is that this allows me to
2350 based on a simple dict. The advantage is that this allows me to
2357 now have thousands of aliases with negligible cost (unthinkable
2351 now have thousands of aliases with negligible cost (unthinkable
2358 with the old system).
2352 with the old system).
2359
2353
2360 2004-06-19 Fernando Perez <fperez@colorado.edu>
2354 2004-06-19 Fernando Perez <fperez@colorado.edu>
2361
2355
2362 * IPython/iplib.py (__init__): extended MagicCompleter class to
2356 * IPython/iplib.py (__init__): extended MagicCompleter class to
2363 also complete (last in priority) on user aliases.
2357 also complete (last in priority) on user aliases.
2364
2358
2365 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2359 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2366 call to eval.
2360 call to eval.
2367 (ItplNS.__init__): Added a new class which functions like Itpl,
2361 (ItplNS.__init__): Added a new class which functions like Itpl,
2368 but allows configuring the namespace for the evaluation to occur
2362 but allows configuring the namespace for the evaluation to occur
2369 in.
2363 in.
2370
2364
2371 2004-06-18 Fernando Perez <fperez@colorado.edu>
2365 2004-06-18 Fernando Perez <fperez@colorado.edu>
2372
2366
2373 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2367 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2374 better message when 'exit' or 'quit' are typed (a common newbie
2368 better message when 'exit' or 'quit' are typed (a common newbie
2375 confusion).
2369 confusion).
2376
2370
2377 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2371 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2378 check for Windows users.
2372 check for Windows users.
2379
2373
2380 * IPython/iplib.py (InteractiveShell.user_setup): removed
2374 * IPython/iplib.py (InteractiveShell.user_setup): removed
2381 disabling of colors for Windows. I'll test at runtime and issue a
2375 disabling of colors for Windows. I'll test at runtime and issue a
2382 warning if Gary's readline isn't found, as to nudge users to
2376 warning if Gary's readline isn't found, as to nudge users to
2383 download it.
2377 download it.
2384
2378
2385 2004-06-16 Fernando Perez <fperez@colorado.edu>
2379 2004-06-16 Fernando Perez <fperez@colorado.edu>
2386
2380
2387 * IPython/genutils.py (Stream.__init__): changed to print errors
2381 * IPython/genutils.py (Stream.__init__): changed to print errors
2388 to sys.stderr. I had a circular dependency here. Now it's
2382 to sys.stderr. I had a circular dependency here. Now it's
2389 possible to run ipython as IDLE's shell (consider this pre-alpha,
2383 possible to run ipython as IDLE's shell (consider this pre-alpha,
2390 since true stdout things end up in the starting terminal instead
2384 since true stdout things end up in the starting terminal instead
2391 of IDLE's out).
2385 of IDLE's out).
2392
2386
2393 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2387 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2394 users who haven't # updated their prompt_in2 definitions. Remove
2388 users who haven't # updated their prompt_in2 definitions. Remove
2395 eventually.
2389 eventually.
2396 (multiple_replace): added credit to original ASPN recipe.
2390 (multiple_replace): added credit to original ASPN recipe.
2397
2391
2398 2004-06-15 Fernando Perez <fperez@colorado.edu>
2392 2004-06-15 Fernando Perez <fperez@colorado.edu>
2399
2393
2400 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2394 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2401 list of auto-defined aliases.
2395 list of auto-defined aliases.
2402
2396
2403 2004-06-13 Fernando Perez <fperez@colorado.edu>
2397 2004-06-13 Fernando Perez <fperez@colorado.edu>
2404
2398
2405 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2399 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2406 install was really requested (so setup.py can be used for other
2400 install was really requested (so setup.py can be used for other
2407 things under Windows).
2401 things under Windows).
2408
2402
2409 2004-06-10 Fernando Perez <fperez@colorado.edu>
2403 2004-06-10 Fernando Perez <fperez@colorado.edu>
2410
2404
2411 * IPython/Logger.py (Logger.create_log): Manually remove any old
2405 * IPython/Logger.py (Logger.create_log): Manually remove any old
2412 backup, since os.remove may fail under Windows. Fixes bug
2406 backup, since os.remove may fail under Windows. Fixes bug
2413 reported by Thorsten.
2407 reported by Thorsten.
2414
2408
2415 2004-06-09 Fernando Perez <fperez@colorado.edu>
2409 2004-06-09 Fernando Perez <fperez@colorado.edu>
2416
2410
2417 * examples/example-embed.py: fixed all references to %n (replaced
2411 * examples/example-embed.py: fixed all references to %n (replaced
2418 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2412 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2419 for all examples and the manual as well.
2413 for all examples and the manual as well.
2420
2414
2421 2004-06-08 Fernando Perez <fperez@colorado.edu>
2415 2004-06-08 Fernando Perez <fperez@colorado.edu>
2422
2416
2423 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2417 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2424 alignment and color management. All 3 prompt subsystems now
2418 alignment and color management. All 3 prompt subsystems now
2425 inherit from BasePrompt.
2419 inherit from BasePrompt.
2426
2420
2427 * tools/release: updates for windows installer build and tag rpms
2421 * tools/release: updates for windows installer build and tag rpms
2428 with python version (since paths are fixed).
2422 with python version (since paths are fixed).
2429
2423
2430 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2424 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2431 which will become eventually obsolete. Also fixed the default
2425 which will become eventually obsolete. Also fixed the default
2432 prompt_in2 to use \D, so at least new users start with the correct
2426 prompt_in2 to use \D, so at least new users start with the correct
2433 defaults.
2427 defaults.
2434 WARNING: Users with existing ipythonrc files will need to apply
2428 WARNING: Users with existing ipythonrc files will need to apply
2435 this fix manually!
2429 this fix manually!
2436
2430
2437 * setup.py: make windows installer (.exe). This is finally the
2431 * setup.py: make windows installer (.exe). This is finally the
2438 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2432 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2439 which I hadn't included because it required Python 2.3 (or recent
2433 which I hadn't included because it required Python 2.3 (or recent
2440 distutils).
2434 distutils).
2441
2435
2442 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2436 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2443 usage of new '\D' escape.
2437 usage of new '\D' escape.
2444
2438
2445 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2439 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2446 lacks os.getuid())
2440 lacks os.getuid())
2447 (CachedOutput.set_colors): Added the ability to turn coloring
2441 (CachedOutput.set_colors): Added the ability to turn coloring
2448 on/off with @colors even for manually defined prompt colors. It
2442 on/off with @colors even for manually defined prompt colors. It
2449 uses a nasty global, but it works safely and via the generic color
2443 uses a nasty global, but it works safely and via the generic color
2450 handling mechanism.
2444 handling mechanism.
2451 (Prompt2.__init__): Introduced new escape '\D' for continuation
2445 (Prompt2.__init__): Introduced new escape '\D' for continuation
2452 prompts. It represents the counter ('\#') as dots.
2446 prompts. It represents the counter ('\#') as dots.
2453 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2447 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2454 need to update their ipythonrc files and replace '%n' with '\D' in
2448 need to update their ipythonrc files and replace '%n' with '\D' in
2455 their prompt_in2 settings everywhere. Sorry, but there's
2449 their prompt_in2 settings everywhere. Sorry, but there's
2456 otherwise no clean way to get all prompts to properly align. The
2450 otherwise no clean way to get all prompts to properly align. The
2457 ipythonrc shipped with IPython has been updated.
2451 ipythonrc shipped with IPython has been updated.
2458
2452
2459 2004-06-07 Fernando Perez <fperez@colorado.edu>
2453 2004-06-07 Fernando Perez <fperez@colorado.edu>
2460
2454
2461 * setup.py (isfile): Pass local_icons option to latex2html, so the
2455 * setup.py (isfile): Pass local_icons option to latex2html, so the
2462 resulting HTML file is self-contained. Thanks to
2456 resulting HTML file is self-contained. Thanks to
2463 dryice-AT-liu.com.cn for the tip.
2457 dryice-AT-liu.com.cn for the tip.
2464
2458
2465 * pysh.py: I created a new profile 'shell', which implements a
2459 * pysh.py: I created a new profile 'shell', which implements a
2466 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2460 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2467 system shell, nor will it become one anytime soon. It's mainly
2461 system shell, nor will it become one anytime soon. It's mainly
2468 meant to illustrate the use of the new flexible bash-like prompts.
2462 meant to illustrate the use of the new flexible bash-like prompts.
2469 I guess it could be used by hardy souls for true shell management,
2463 I guess it could be used by hardy souls for true shell management,
2470 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2464 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2471 profile. This uses the InterpreterExec extension provided by
2465 profile. This uses the InterpreterExec extension provided by
2472 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2466 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2473
2467
2474 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2468 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2475 auto-align itself with the length of the previous input prompt
2469 auto-align itself with the length of the previous input prompt
2476 (taking into account the invisible color escapes).
2470 (taking into account the invisible color escapes).
2477 (CachedOutput.__init__): Large restructuring of this class. Now
2471 (CachedOutput.__init__): Large restructuring of this class. Now
2478 all three prompts (primary1, primary2, output) are proper objects,
2472 all three prompts (primary1, primary2, output) are proper objects,
2479 managed by the 'parent' CachedOutput class. The code is still a
2473 managed by the 'parent' CachedOutput class. The code is still a
2480 bit hackish (all prompts share state via a pointer to the cache),
2474 bit hackish (all prompts share state via a pointer to the cache),
2481 but it's overall far cleaner than before.
2475 but it's overall far cleaner than before.
2482
2476
2483 * IPython/genutils.py (getoutputerror): modified to add verbose,
2477 * IPython/genutils.py (getoutputerror): modified to add verbose,
2484 debug and header options. This makes the interface of all getout*
2478 debug and header options. This makes the interface of all getout*
2485 functions uniform.
2479 functions uniform.
2486 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2480 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2487
2481
2488 * IPython/Magic.py (Magic.default_option): added a function to
2482 * IPython/Magic.py (Magic.default_option): added a function to
2489 allow registering default options for any magic command. This
2483 allow registering default options for any magic command. This
2490 makes it easy to have profiles which customize the magics globally
2484 makes it easy to have profiles which customize the magics globally
2491 for a certain use. The values set through this function are
2485 for a certain use. The values set through this function are
2492 picked up by the parse_options() method, which all magics should
2486 picked up by the parse_options() method, which all magics should
2493 use to parse their options.
2487 use to parse their options.
2494
2488
2495 * IPython/genutils.py (warn): modified the warnings framework to
2489 * IPython/genutils.py (warn): modified the warnings framework to
2496 use the Term I/O class. I'm trying to slowly unify all of
2490 use the Term I/O class. I'm trying to slowly unify all of
2497 IPython's I/O operations to pass through Term.
2491 IPython's I/O operations to pass through Term.
2498
2492
2499 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2493 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2500 the secondary prompt to correctly match the length of the primary
2494 the secondary prompt to correctly match the length of the primary
2501 one for any prompt. Now multi-line code will properly line up
2495 one for any prompt. Now multi-line code will properly line up
2502 even for path dependent prompts, such as the new ones available
2496 even for path dependent prompts, such as the new ones available
2503 via the prompt_specials.
2497 via the prompt_specials.
2504
2498
2505 2004-06-06 Fernando Perez <fperez@colorado.edu>
2499 2004-06-06 Fernando Perez <fperez@colorado.edu>
2506
2500
2507 * IPython/Prompts.py (prompt_specials): Added the ability to have
2501 * IPython/Prompts.py (prompt_specials): Added the ability to have
2508 bash-like special sequences in the prompts, which get
2502 bash-like special sequences in the prompts, which get
2509 automatically expanded. Things like hostname, current working
2503 automatically expanded. Things like hostname, current working
2510 directory and username are implemented already, but it's easy to
2504 directory and username are implemented already, but it's easy to
2511 add more in the future. Thanks to a patch by W.J. van der Laan
2505 add more in the future. Thanks to a patch by W.J. van der Laan
2512 <gnufnork-AT-hetdigitalegat.nl>
2506 <gnufnork-AT-hetdigitalegat.nl>
2513 (prompt_specials): Added color support for prompt strings, so
2507 (prompt_specials): Added color support for prompt strings, so
2514 users can define arbitrary color setups for their prompts.
2508 users can define arbitrary color setups for their prompts.
2515
2509
2516 2004-06-05 Fernando Perez <fperez@colorado.edu>
2510 2004-06-05 Fernando Perez <fperez@colorado.edu>
2517
2511
2518 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2512 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2519 code to load Gary Bishop's readline and configure it
2513 code to load Gary Bishop's readline and configure it
2520 automatically. Thanks to Gary for help on this.
2514 automatically. Thanks to Gary for help on this.
2521
2515
2522 2004-06-01 Fernando Perez <fperez@colorado.edu>
2516 2004-06-01 Fernando Perez <fperez@colorado.edu>
2523
2517
2524 * IPython/Logger.py (Logger.create_log): fix bug for logging
2518 * IPython/Logger.py (Logger.create_log): fix bug for logging
2525 with no filename (previous fix was incomplete).
2519 with no filename (previous fix was incomplete).
2526
2520
2527 2004-05-25 Fernando Perez <fperez@colorado.edu>
2521 2004-05-25 Fernando Perez <fperez@colorado.edu>
2528
2522
2529 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2523 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2530 parens would get passed to the shell.
2524 parens would get passed to the shell.
2531
2525
2532 2004-05-20 Fernando Perez <fperez@colorado.edu>
2526 2004-05-20 Fernando Perez <fperez@colorado.edu>
2533
2527
2534 * IPython/Magic.py (Magic.magic_prun): changed default profile
2528 * IPython/Magic.py (Magic.magic_prun): changed default profile
2535 sort order to 'time' (the more common profiling need).
2529 sort order to 'time' (the more common profiling need).
2536
2530
2537 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2531 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2538 so that source code shown is guaranteed in sync with the file on
2532 so that source code shown is guaranteed in sync with the file on
2539 disk (also changed in psource). Similar fix to the one for
2533 disk (also changed in psource). Similar fix to the one for
2540 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2534 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2541 <yann.ledu-AT-noos.fr>.
2535 <yann.ledu-AT-noos.fr>.
2542
2536
2543 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2537 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2544 with a single option would not be correctly parsed. Closes
2538 with a single option would not be correctly parsed. Closes
2545 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2539 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2546 introduced in 0.6.0 (on 2004-05-06).
2540 introduced in 0.6.0 (on 2004-05-06).
2547
2541
2548 2004-05-13 *** Released version 0.6.0
2542 2004-05-13 *** Released version 0.6.0
2549
2543
2550 2004-05-13 Fernando Perez <fperez@colorado.edu>
2544 2004-05-13 Fernando Perez <fperez@colorado.edu>
2551
2545
2552 * debian/: Added debian/ directory to CVS, so that debian support
2546 * debian/: Added debian/ directory to CVS, so that debian support
2553 is publicly accessible. The debian package is maintained by Jack
2547 is publicly accessible. The debian package is maintained by Jack
2554 Moffit <jack-AT-xiph.org>.
2548 Moffit <jack-AT-xiph.org>.
2555
2549
2556 * Documentation: included the notes about an ipython-based system
2550 * Documentation: included the notes about an ipython-based system
2557 shell (the hypothetical 'pysh') into the new_design.pdf document,
2551 shell (the hypothetical 'pysh') into the new_design.pdf document,
2558 so that these ideas get distributed to users along with the
2552 so that these ideas get distributed to users along with the
2559 official documentation.
2553 official documentation.
2560
2554
2561 2004-05-10 Fernando Perez <fperez@colorado.edu>
2555 2004-05-10 Fernando Perez <fperez@colorado.edu>
2562
2556
2563 * IPython/Logger.py (Logger.create_log): fix recently introduced
2557 * IPython/Logger.py (Logger.create_log): fix recently introduced
2564 bug (misindented line) where logstart would fail when not given an
2558 bug (misindented line) where logstart would fail when not given an
2565 explicit filename.
2559 explicit filename.
2566
2560
2567 2004-05-09 Fernando Perez <fperez@colorado.edu>
2561 2004-05-09 Fernando Perez <fperez@colorado.edu>
2568
2562
2569 * IPython/Magic.py (Magic.parse_options): skip system call when
2563 * IPython/Magic.py (Magic.parse_options): skip system call when
2570 there are no options to look for. Faster, cleaner for the common
2564 there are no options to look for. Faster, cleaner for the common
2571 case.
2565 case.
2572
2566
2573 * Documentation: many updates to the manual: describing Windows
2567 * Documentation: many updates to the manual: describing Windows
2574 support better, Gnuplot updates, credits, misc small stuff. Also
2568 support better, Gnuplot updates, credits, misc small stuff. Also
2575 updated the new_design doc a bit.
2569 updated the new_design doc a bit.
2576
2570
2577 2004-05-06 *** Released version 0.6.0.rc1
2571 2004-05-06 *** Released version 0.6.0.rc1
2578
2572
2579 2004-05-06 Fernando Perez <fperez@colorado.edu>
2573 2004-05-06 Fernando Perez <fperez@colorado.edu>
2580
2574
2581 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2575 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2582 operations to use the vastly more efficient list/''.join() method.
2576 operations to use the vastly more efficient list/''.join() method.
2583 (FormattedTB.text): Fix
2577 (FormattedTB.text): Fix
2584 http://www.scipy.net/roundup/ipython/issue12 - exception source
2578 http://www.scipy.net/roundup/ipython/issue12 - exception source
2585 extract not updated after reload. Thanks to Mike Salib
2579 extract not updated after reload. Thanks to Mike Salib
2586 <msalib-AT-mit.edu> for pinning the source of the problem.
2580 <msalib-AT-mit.edu> for pinning the source of the problem.
2587 Fortunately, the solution works inside ipython and doesn't require
2581 Fortunately, the solution works inside ipython and doesn't require
2588 any changes to python proper.
2582 any changes to python proper.
2589
2583
2590 * IPython/Magic.py (Magic.parse_options): Improved to process the
2584 * IPython/Magic.py (Magic.parse_options): Improved to process the
2591 argument list as a true shell would (by actually using the
2585 argument list as a true shell would (by actually using the
2592 underlying system shell). This way, all @magics automatically get
2586 underlying system shell). This way, all @magics automatically get
2593 shell expansion for variables. Thanks to a comment by Alex
2587 shell expansion for variables. Thanks to a comment by Alex
2594 Schmolck.
2588 Schmolck.
2595
2589
2596 2004-04-04 Fernando Perez <fperez@colorado.edu>
2590 2004-04-04 Fernando Perez <fperez@colorado.edu>
2597
2591
2598 * IPython/iplib.py (InteractiveShell.interact): Added a special
2592 * IPython/iplib.py (InteractiveShell.interact): Added a special
2599 trap for a debugger quit exception, which is basically impossible
2593 trap for a debugger quit exception, which is basically impossible
2600 to handle by normal mechanisms, given what pdb does to the stack.
2594 to handle by normal mechanisms, given what pdb does to the stack.
2601 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2595 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2602
2596
2603 2004-04-03 Fernando Perez <fperez@colorado.edu>
2597 2004-04-03 Fernando Perez <fperez@colorado.edu>
2604
2598
2605 * IPython/genutils.py (Term): Standardized the names of the Term
2599 * IPython/genutils.py (Term): Standardized the names of the Term
2606 class streams to cin/cout/cerr, following C++ naming conventions
2600 class streams to cin/cout/cerr, following C++ naming conventions
2607 (I can't use in/out/err because 'in' is not a valid attribute
2601 (I can't use in/out/err because 'in' is not a valid attribute
2608 name).
2602 name).
2609
2603
2610 * IPython/iplib.py (InteractiveShell.interact): don't increment
2604 * IPython/iplib.py (InteractiveShell.interact): don't increment
2611 the prompt if there's no user input. By Daniel 'Dang' Griffith
2605 the prompt if there's no user input. By Daniel 'Dang' Griffith
2612 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2606 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2613 Francois Pinard.
2607 Francois Pinard.
2614
2608
2615 2004-04-02 Fernando Perez <fperez@colorado.edu>
2609 2004-04-02 Fernando Perez <fperez@colorado.edu>
2616
2610
2617 * IPython/genutils.py (Stream.__init__): Modified to survive at
2611 * IPython/genutils.py (Stream.__init__): Modified to survive at
2618 least importing in contexts where stdin/out/err aren't true file
2612 least importing in contexts where stdin/out/err aren't true file
2619 objects, such as PyCrust (they lack fileno() and mode). However,
2613 objects, such as PyCrust (they lack fileno() and mode). However,
2620 the recovery facilities which rely on these things existing will
2614 the recovery facilities which rely on these things existing will
2621 not work.
2615 not work.
2622
2616
2623 2004-04-01 Fernando Perez <fperez@colorado.edu>
2617 2004-04-01 Fernando Perez <fperez@colorado.edu>
2624
2618
2625 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2619 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2626 use the new getoutputerror() function, so it properly
2620 use the new getoutputerror() function, so it properly
2627 distinguishes stdout/err.
2621 distinguishes stdout/err.
2628
2622
2629 * IPython/genutils.py (getoutputerror): added a function to
2623 * IPython/genutils.py (getoutputerror): added a function to
2630 capture separately the standard output and error of a command.
2624 capture separately the standard output and error of a command.
2631 After a comment from dang on the mailing lists. This code is
2625 After a comment from dang on the mailing lists. This code is
2632 basically a modified version of commands.getstatusoutput(), from
2626 basically a modified version of commands.getstatusoutput(), from
2633 the standard library.
2627 the standard library.
2634
2628
2635 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2629 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2636 '!!' as a special syntax (shorthand) to access @sx.
2630 '!!' as a special syntax (shorthand) to access @sx.
2637
2631
2638 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2632 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2639 command and return its output as a list split on '\n'.
2633 command and return its output as a list split on '\n'.
2640
2634
2641 2004-03-31 Fernando Perez <fperez@colorado.edu>
2635 2004-03-31 Fernando Perez <fperez@colorado.edu>
2642
2636
2643 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2637 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2644 method to dictionaries used as FakeModule instances if they lack
2638 method to dictionaries used as FakeModule instances if they lack
2645 it. At least pydoc in python2.3 breaks for runtime-defined
2639 it. At least pydoc in python2.3 breaks for runtime-defined
2646 functions without this hack. At some point I need to _really_
2640 functions without this hack. At some point I need to _really_
2647 understand what FakeModule is doing, because it's a gross hack.
2641 understand what FakeModule is doing, because it's a gross hack.
2648 But it solves Arnd's problem for now...
2642 But it solves Arnd's problem for now...
2649
2643
2650 2004-02-27 Fernando Perez <fperez@colorado.edu>
2644 2004-02-27 Fernando Perez <fperez@colorado.edu>
2651
2645
2652 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2646 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2653 mode would behave erratically. Also increased the number of
2647 mode would behave erratically. Also increased the number of
2654 possible logs in rotate mod to 999. Thanks to Rod Holland
2648 possible logs in rotate mod to 999. Thanks to Rod Holland
2655 <rhh@StructureLABS.com> for the report and fixes.
2649 <rhh@StructureLABS.com> for the report and fixes.
2656
2650
2657 2004-02-26 Fernando Perez <fperez@colorado.edu>
2651 2004-02-26 Fernando Perez <fperez@colorado.edu>
2658
2652
2659 * IPython/genutils.py (page): Check that the curses module really
2653 * IPython/genutils.py (page): Check that the curses module really
2660 has the initscr attribute before trying to use it. For some
2654 has the initscr attribute before trying to use it. For some
2661 reason, the Solaris curses module is missing this. I think this
2655 reason, the Solaris curses module is missing this. I think this
2662 should be considered a Solaris python bug, but I'm not sure.
2656 should be considered a Solaris python bug, but I'm not sure.
2663
2657
2664 2004-01-17 Fernando Perez <fperez@colorado.edu>
2658 2004-01-17 Fernando Perez <fperez@colorado.edu>
2665
2659
2666 * IPython/genutils.py (Stream.__init__): Changes to try to make
2660 * IPython/genutils.py (Stream.__init__): Changes to try to make
2667 ipython robust against stdin/out/err being closed by the user.
2661 ipython robust against stdin/out/err being closed by the user.
2668 This is 'user error' (and blocks a normal python session, at least
2662 This is 'user error' (and blocks a normal python session, at least
2669 the stdout case). However, Ipython should be able to survive such
2663 the stdout case). However, Ipython should be able to survive such
2670 instances of abuse as gracefully as possible. To simplify the
2664 instances of abuse as gracefully as possible. To simplify the
2671 coding and maintain compatibility with Gary Bishop's Term
2665 coding and maintain compatibility with Gary Bishop's Term
2672 contributions, I've made use of classmethods for this. I think
2666 contributions, I've made use of classmethods for this. I think
2673 this introduces a dependency on python 2.2.
2667 this introduces a dependency on python 2.2.
2674
2668
2675 2004-01-13 Fernando Perez <fperez@colorado.edu>
2669 2004-01-13 Fernando Perez <fperez@colorado.edu>
2676
2670
2677 * IPython/numutils.py (exp_safe): simplified the code a bit and
2671 * IPython/numutils.py (exp_safe): simplified the code a bit and
2678 removed the need for importing the kinds module altogether.
2672 removed the need for importing the kinds module altogether.
2679
2673
2680 2004-01-06 Fernando Perez <fperez@colorado.edu>
2674 2004-01-06 Fernando Perez <fperez@colorado.edu>
2681
2675
2682 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2676 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2683 a magic function instead, after some community feedback. No
2677 a magic function instead, after some community feedback. No
2684 special syntax will exist for it, but its name is deliberately
2678 special syntax will exist for it, but its name is deliberately
2685 very short.
2679 very short.
2686
2680
2687 2003-12-20 Fernando Perez <fperez@colorado.edu>
2681 2003-12-20 Fernando Perez <fperez@colorado.edu>
2688
2682
2689 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2683 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2690 new functionality, to automagically assign the result of a shell
2684 new functionality, to automagically assign the result of a shell
2691 command to a variable. I'll solicit some community feedback on
2685 command to a variable. I'll solicit some community feedback on
2692 this before making it permanent.
2686 this before making it permanent.
2693
2687
2694 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2688 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2695 requested about callables for which inspect couldn't obtain a
2689 requested about callables for which inspect couldn't obtain a
2696 proper argspec. Thanks to a crash report sent by Etienne
2690 proper argspec. Thanks to a crash report sent by Etienne
2697 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2691 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2698
2692
2699 2003-12-09 Fernando Perez <fperez@colorado.edu>
2693 2003-12-09 Fernando Perez <fperez@colorado.edu>
2700
2694
2701 * IPython/genutils.py (page): patch for the pager to work across
2695 * IPython/genutils.py (page): patch for the pager to work across
2702 various versions of Windows. By Gary Bishop.
2696 various versions of Windows. By Gary Bishop.
2703
2697
2704 2003-12-04 Fernando Perez <fperez@colorado.edu>
2698 2003-12-04 Fernando Perez <fperez@colorado.edu>
2705
2699
2706 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2700 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2707 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2701 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2708 While I tested this and it looks ok, there may still be corner
2702 While I tested this and it looks ok, there may still be corner
2709 cases I've missed.
2703 cases I've missed.
2710
2704
2711 2003-12-01 Fernando Perez <fperez@colorado.edu>
2705 2003-12-01 Fernando Perez <fperez@colorado.edu>
2712
2706
2713 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2707 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2714 where a line like 'p,q=1,2' would fail because the automagic
2708 where a line like 'p,q=1,2' would fail because the automagic
2715 system would be triggered for @p.
2709 system would be triggered for @p.
2716
2710
2717 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2711 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2718 cleanups, code unmodified.
2712 cleanups, code unmodified.
2719
2713
2720 * IPython/genutils.py (Term): added a class for IPython to handle
2714 * IPython/genutils.py (Term): added a class for IPython to handle
2721 output. In most cases it will just be a proxy for stdout/err, but
2715 output. In most cases it will just be a proxy for stdout/err, but
2722 having this allows modifications to be made for some platforms,
2716 having this allows modifications to be made for some platforms,
2723 such as handling color escapes under Windows. All of this code
2717 such as handling color escapes under Windows. All of this code
2724 was contributed by Gary Bishop, with minor modifications by me.
2718 was contributed by Gary Bishop, with minor modifications by me.
2725 The actual changes affect many files.
2719 The actual changes affect many files.
2726
2720
2727 2003-11-30 Fernando Perez <fperez@colorado.edu>
2721 2003-11-30 Fernando Perez <fperez@colorado.edu>
2728
2722
2729 * IPython/iplib.py (file_matches): new completion code, courtesy
2723 * IPython/iplib.py (file_matches): new completion code, courtesy
2730 of Jeff Collins. This enables filename completion again under
2724 of Jeff Collins. This enables filename completion again under
2731 python 2.3, which disabled it at the C level.
2725 python 2.3, which disabled it at the C level.
2732
2726
2733 2003-11-11 Fernando Perez <fperez@colorado.edu>
2727 2003-11-11 Fernando Perez <fperez@colorado.edu>
2734
2728
2735 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2729 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2736 for Numeric.array(map(...)), but often convenient.
2730 for Numeric.array(map(...)), but often convenient.
2737
2731
2738 2003-11-05 Fernando Perez <fperez@colorado.edu>
2732 2003-11-05 Fernando Perez <fperez@colorado.edu>
2739
2733
2740 * IPython/numutils.py (frange): Changed a call from int() to
2734 * IPython/numutils.py (frange): Changed a call from int() to
2741 int(round()) to prevent a problem reported with arange() in the
2735 int(round()) to prevent a problem reported with arange() in the
2742 numpy list.
2736 numpy list.
2743
2737
2744 2003-10-06 Fernando Perez <fperez@colorado.edu>
2738 2003-10-06 Fernando Perez <fperez@colorado.edu>
2745
2739
2746 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2740 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2747 prevent crashes if sys lacks an argv attribute (it happens with
2741 prevent crashes if sys lacks an argv attribute (it happens with
2748 embedded interpreters which build a bare-bones sys module).
2742 embedded interpreters which build a bare-bones sys module).
2749 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2743 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2750
2744
2751 2003-09-24 Fernando Perez <fperez@colorado.edu>
2745 2003-09-24 Fernando Perez <fperez@colorado.edu>
2752
2746
2753 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2747 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2754 to protect against poorly written user objects where __getattr__
2748 to protect against poorly written user objects where __getattr__
2755 raises exceptions other than AttributeError. Thanks to a bug
2749 raises exceptions other than AttributeError. Thanks to a bug
2756 report by Oliver Sander <osander-AT-gmx.de>.
2750 report by Oliver Sander <osander-AT-gmx.de>.
2757
2751
2758 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2752 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2759 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2753 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2760
2754
2761 2003-09-09 Fernando Perez <fperez@colorado.edu>
2755 2003-09-09 Fernando Perez <fperez@colorado.edu>
2762
2756
2763 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2757 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2764 unpacking a list whith a callable as first element would
2758 unpacking a list whith a callable as first element would
2765 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2759 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2766 Collins.
2760 Collins.
2767
2761
2768 2003-08-25 *** Released version 0.5.0
2762 2003-08-25 *** Released version 0.5.0
2769
2763
2770 2003-08-22 Fernando Perez <fperez@colorado.edu>
2764 2003-08-22 Fernando Perez <fperez@colorado.edu>
2771
2765
2772 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2766 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2773 improperly defined user exceptions. Thanks to feedback from Mark
2767 improperly defined user exceptions. Thanks to feedback from Mark
2774 Russell <mrussell-AT-verio.net>.
2768 Russell <mrussell-AT-verio.net>.
2775
2769
2776 2003-08-20 Fernando Perez <fperez@colorado.edu>
2770 2003-08-20 Fernando Perez <fperez@colorado.edu>
2777
2771
2778 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2772 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2779 printing so that it would print multi-line string forms starting
2773 printing so that it would print multi-line string forms starting
2780 with a new line. This way the formatting is better respected for
2774 with a new line. This way the formatting is better respected for
2781 objects which work hard to make nice string forms.
2775 objects which work hard to make nice string forms.
2782
2776
2783 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2777 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2784 autocall would overtake data access for objects with both
2778 autocall would overtake data access for objects with both
2785 __getitem__ and __call__.
2779 __getitem__ and __call__.
2786
2780
2787 2003-08-19 *** Released version 0.5.0-rc1
2781 2003-08-19 *** Released version 0.5.0-rc1
2788
2782
2789 2003-08-19 Fernando Perez <fperez@colorado.edu>
2783 2003-08-19 Fernando Perez <fperez@colorado.edu>
2790
2784
2791 * IPython/deep_reload.py (load_tail): single tiny change here
2785 * IPython/deep_reload.py (load_tail): single tiny change here
2792 seems to fix the long-standing bug of dreload() failing to work
2786 seems to fix the long-standing bug of dreload() failing to work
2793 for dotted names. But this module is pretty tricky, so I may have
2787 for dotted names. But this module is pretty tricky, so I may have
2794 missed some subtlety. Needs more testing!.
2788 missed some subtlety. Needs more testing!.
2795
2789
2796 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2790 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2797 exceptions which have badly implemented __str__ methods.
2791 exceptions which have badly implemented __str__ methods.
2798 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2792 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2799 which I've been getting reports about from Python 2.3 users. I
2793 which I've been getting reports about from Python 2.3 users. I
2800 wish I had a simple test case to reproduce the problem, so I could
2794 wish I had a simple test case to reproduce the problem, so I could
2801 either write a cleaner workaround or file a bug report if
2795 either write a cleaner workaround or file a bug report if
2802 necessary.
2796 necessary.
2803
2797
2804 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2798 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2805 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2799 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2806 a bug report by Tjabo Kloppenburg.
2800 a bug report by Tjabo Kloppenburg.
2807
2801
2808 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2802 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2809 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2803 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2810 seems rather unstable. Thanks to a bug report by Tjabo
2804 seems rather unstable. Thanks to a bug report by Tjabo
2811 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2805 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2812
2806
2813 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2807 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2814 this out soon because of the critical fixes in the inner loop for
2808 this out soon because of the critical fixes in the inner loop for
2815 generators.
2809 generators.
2816
2810
2817 * IPython/Magic.py (Magic.getargspec): removed. This (and
2811 * IPython/Magic.py (Magic.getargspec): removed. This (and
2818 _get_def) have been obsoleted by OInspect for a long time, I
2812 _get_def) have been obsoleted by OInspect for a long time, I
2819 hadn't noticed that they were dead code.
2813 hadn't noticed that they were dead code.
2820 (Magic._ofind): restored _ofind functionality for a few literals
2814 (Magic._ofind): restored _ofind functionality for a few literals
2821 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2815 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2822 for things like "hello".capitalize?, since that would require a
2816 for things like "hello".capitalize?, since that would require a
2823 potentially dangerous eval() again.
2817 potentially dangerous eval() again.
2824
2818
2825 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2819 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2826 logic a bit more to clean up the escapes handling and minimize the
2820 logic a bit more to clean up the escapes handling and minimize the
2827 use of _ofind to only necessary cases. The interactive 'feel' of
2821 use of _ofind to only necessary cases. The interactive 'feel' of
2828 IPython should have improved quite a bit with the changes in
2822 IPython should have improved quite a bit with the changes in
2829 _prefilter and _ofind (besides being far safer than before).
2823 _prefilter and _ofind (besides being far safer than before).
2830
2824
2831 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2825 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2832 obscure, never reported). Edit would fail to find the object to
2826 obscure, never reported). Edit would fail to find the object to
2833 edit under some circumstances.
2827 edit under some circumstances.
2834 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2828 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2835 which were causing double-calling of generators. Those eval calls
2829 which were causing double-calling of generators. Those eval calls
2836 were _very_ dangerous, since code with side effects could be
2830 were _very_ dangerous, since code with side effects could be
2837 triggered. As they say, 'eval is evil'... These were the
2831 triggered. As they say, 'eval is evil'... These were the
2838 nastiest evals in IPython. Besides, _ofind is now far simpler,
2832 nastiest evals in IPython. Besides, _ofind is now far simpler,
2839 and it should also be quite a bit faster. Its use of inspect is
2833 and it should also be quite a bit faster. Its use of inspect is
2840 also safer, so perhaps some of the inspect-related crashes I've
2834 also safer, so perhaps some of the inspect-related crashes I've
2841 seen lately with Python 2.3 might be taken care of. That will
2835 seen lately with Python 2.3 might be taken care of. That will
2842 need more testing.
2836 need more testing.
2843
2837
2844 2003-08-17 Fernando Perez <fperez@colorado.edu>
2838 2003-08-17 Fernando Perez <fperez@colorado.edu>
2845
2839
2846 * IPython/iplib.py (InteractiveShell._prefilter): significant
2840 * IPython/iplib.py (InteractiveShell._prefilter): significant
2847 simplifications to the logic for handling user escapes. Faster
2841 simplifications to the logic for handling user escapes. Faster
2848 and simpler code.
2842 and simpler code.
2849
2843
2850 2003-08-14 Fernando Perez <fperez@colorado.edu>
2844 2003-08-14 Fernando Perez <fperez@colorado.edu>
2851
2845
2852 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2846 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2853 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2847 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2854 but it should be quite a bit faster. And the recursive version
2848 but it should be quite a bit faster. And the recursive version
2855 generated O(log N) intermediate storage for all rank>1 arrays,
2849 generated O(log N) intermediate storage for all rank>1 arrays,
2856 even if they were contiguous.
2850 even if they were contiguous.
2857 (l1norm): Added this function.
2851 (l1norm): Added this function.
2858 (norm): Added this function for arbitrary norms (including
2852 (norm): Added this function for arbitrary norms (including
2859 l-infinity). l1 and l2 are still special cases for convenience
2853 l-infinity). l1 and l2 are still special cases for convenience
2860 and speed.
2854 and speed.
2861
2855
2862 2003-08-03 Fernando Perez <fperez@colorado.edu>
2856 2003-08-03 Fernando Perez <fperez@colorado.edu>
2863
2857
2864 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2858 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2865 exceptions, which now raise PendingDeprecationWarnings in Python
2859 exceptions, which now raise PendingDeprecationWarnings in Python
2866 2.3. There were some in Magic and some in Gnuplot2.
2860 2.3. There were some in Magic and some in Gnuplot2.
2867
2861
2868 2003-06-30 Fernando Perez <fperez@colorado.edu>
2862 2003-06-30 Fernando Perez <fperez@colorado.edu>
2869
2863
2870 * IPython/genutils.py (page): modified to call curses only for
2864 * IPython/genutils.py (page): modified to call curses only for
2871 terminals where TERM=='xterm'. After problems under many other
2865 terminals where TERM=='xterm'. After problems under many other
2872 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2866 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2873
2867
2874 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2868 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2875 would be triggered when readline was absent. This was just an old
2869 would be triggered when readline was absent. This was just an old
2876 debugging statement I'd forgotten to take out.
2870 debugging statement I'd forgotten to take out.
2877
2871
2878 2003-06-20 Fernando Perez <fperez@colorado.edu>
2872 2003-06-20 Fernando Perez <fperez@colorado.edu>
2879
2873
2880 * IPython/genutils.py (clock): modified to return only user time
2874 * IPython/genutils.py (clock): modified to return only user time
2881 (not counting system time), after a discussion on scipy. While
2875 (not counting system time), after a discussion on scipy. While
2882 system time may be a useful quantity occasionally, it may much
2876 system time may be a useful quantity occasionally, it may much
2883 more easily be skewed by occasional swapping or other similar
2877 more easily be skewed by occasional swapping or other similar
2884 activity.
2878 activity.
2885
2879
2886 2003-06-05 Fernando Perez <fperez@colorado.edu>
2880 2003-06-05 Fernando Perez <fperez@colorado.edu>
2887
2881
2888 * IPython/numutils.py (identity): new function, for building
2882 * IPython/numutils.py (identity): new function, for building
2889 arbitrary rank Kronecker deltas (mostly backwards compatible with
2883 arbitrary rank Kronecker deltas (mostly backwards compatible with
2890 Numeric.identity)
2884 Numeric.identity)
2891
2885
2892 2003-06-03 Fernando Perez <fperez@colorado.edu>
2886 2003-06-03 Fernando Perez <fperez@colorado.edu>
2893
2887
2894 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2888 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2895 arguments passed to magics with spaces, to allow trailing '\' to
2889 arguments passed to magics with spaces, to allow trailing '\' to
2896 work normally (mainly for Windows users).
2890 work normally (mainly for Windows users).
2897
2891
2898 2003-05-29 Fernando Perez <fperez@colorado.edu>
2892 2003-05-29 Fernando Perez <fperez@colorado.edu>
2899
2893
2900 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2894 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2901 instead of pydoc.help. This fixes a bizarre behavior where
2895 instead of pydoc.help. This fixes a bizarre behavior where
2902 printing '%s' % locals() would trigger the help system. Now
2896 printing '%s' % locals() would trigger the help system. Now
2903 ipython behaves like normal python does.
2897 ipython behaves like normal python does.
2904
2898
2905 Note that if one does 'from pydoc import help', the bizarre
2899 Note that if one does 'from pydoc import help', the bizarre
2906 behavior returns, but this will also happen in normal python, so
2900 behavior returns, but this will also happen in normal python, so
2907 it's not an ipython bug anymore (it has to do with how pydoc.help
2901 it's not an ipython bug anymore (it has to do with how pydoc.help
2908 is implemented).
2902 is implemented).
2909
2903
2910 2003-05-22 Fernando Perez <fperez@colorado.edu>
2904 2003-05-22 Fernando Perez <fperez@colorado.edu>
2911
2905
2912 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2906 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2913 return [] instead of None when nothing matches, also match to end
2907 return [] instead of None when nothing matches, also match to end
2914 of line. Patch by Gary Bishop.
2908 of line. Patch by Gary Bishop.
2915
2909
2916 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2910 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2917 protection as before, for files passed on the command line. This
2911 protection as before, for files passed on the command line. This
2918 prevents the CrashHandler from kicking in if user files call into
2912 prevents the CrashHandler from kicking in if user files call into
2919 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2913 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2920 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2914 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2921
2915
2922 2003-05-20 *** Released version 0.4.0
2916 2003-05-20 *** Released version 0.4.0
2923
2917
2924 2003-05-20 Fernando Perez <fperez@colorado.edu>
2918 2003-05-20 Fernando Perez <fperez@colorado.edu>
2925
2919
2926 * setup.py: added support for manpages. It's a bit hackish b/c of
2920 * setup.py: added support for manpages. It's a bit hackish b/c of
2927 a bug in the way the bdist_rpm distutils target handles gzipped
2921 a bug in the way the bdist_rpm distutils target handles gzipped
2928 manpages, but it works. After a patch by Jack.
2922 manpages, but it works. After a patch by Jack.
2929
2923
2930 2003-05-19 Fernando Perez <fperez@colorado.edu>
2924 2003-05-19 Fernando Perez <fperez@colorado.edu>
2931
2925
2932 * IPython/numutils.py: added a mockup of the kinds module, since
2926 * IPython/numutils.py: added a mockup of the kinds module, since
2933 it was recently removed from Numeric. This way, numutils will
2927 it was recently removed from Numeric. This way, numutils will
2934 work for all users even if they are missing kinds.
2928 work for all users even if they are missing kinds.
2935
2929
2936 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2930 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2937 failure, which can occur with SWIG-wrapped extensions. After a
2931 failure, which can occur with SWIG-wrapped extensions. After a
2938 crash report from Prabhu.
2932 crash report from Prabhu.
2939
2933
2940 2003-05-16 Fernando Perez <fperez@colorado.edu>
2934 2003-05-16 Fernando Perez <fperez@colorado.edu>
2941
2935
2942 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2936 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2943 protect ipython from user code which may call directly
2937 protect ipython from user code which may call directly
2944 sys.excepthook (this looks like an ipython crash to the user, even
2938 sys.excepthook (this looks like an ipython crash to the user, even
2945 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2939 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2946 This is especially important to help users of WxWindows, but may
2940 This is especially important to help users of WxWindows, but may
2947 also be useful in other cases.
2941 also be useful in other cases.
2948
2942
2949 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2943 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2950 an optional tb_offset to be specified, and to preserve exception
2944 an optional tb_offset to be specified, and to preserve exception
2951 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2945 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2952
2946
2953 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2947 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2954
2948
2955 2003-05-15 Fernando Perez <fperez@colorado.edu>
2949 2003-05-15 Fernando Perez <fperez@colorado.edu>
2956
2950
2957 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2951 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2958 installing for a new user under Windows.
2952 installing for a new user under Windows.
2959
2953
2960 2003-05-12 Fernando Perez <fperez@colorado.edu>
2954 2003-05-12 Fernando Perez <fperez@colorado.edu>
2961
2955
2962 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2956 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2963 handler for Emacs comint-based lines. Currently it doesn't do
2957 handler for Emacs comint-based lines. Currently it doesn't do
2964 much (but importantly, it doesn't update the history cache). In
2958 much (but importantly, it doesn't update the history cache). In
2965 the future it may be expanded if Alex needs more functionality
2959 the future it may be expanded if Alex needs more functionality
2966 there.
2960 there.
2967
2961
2968 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2962 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2969 info to crash reports.
2963 info to crash reports.
2970
2964
2971 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2965 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2972 just like Python's -c. Also fixed crash with invalid -color
2966 just like Python's -c. Also fixed crash with invalid -color
2973 option value at startup. Thanks to Will French
2967 option value at startup. Thanks to Will French
2974 <wfrench-AT-bestweb.net> for the bug report.
2968 <wfrench-AT-bestweb.net> for the bug report.
2975
2969
2976 2003-05-09 Fernando Perez <fperez@colorado.edu>
2970 2003-05-09 Fernando Perez <fperez@colorado.edu>
2977
2971
2978 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2972 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2979 to EvalDict (it's a mapping, after all) and simplified its code
2973 to EvalDict (it's a mapping, after all) and simplified its code
2980 quite a bit, after a nice discussion on c.l.py where Gustavo
2974 quite a bit, after a nice discussion on c.l.py where Gustavo
2981 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2975 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2982
2976
2983 2003-04-30 Fernando Perez <fperez@colorado.edu>
2977 2003-04-30 Fernando Perez <fperez@colorado.edu>
2984
2978
2985 * IPython/genutils.py (timings_out): modified it to reduce its
2979 * IPython/genutils.py (timings_out): modified it to reduce its
2986 overhead in the common reps==1 case.
2980 overhead in the common reps==1 case.
2987
2981
2988 2003-04-29 Fernando Perez <fperez@colorado.edu>
2982 2003-04-29 Fernando Perez <fperez@colorado.edu>
2989
2983
2990 * IPython/genutils.py (timings_out): Modified to use the resource
2984 * IPython/genutils.py (timings_out): Modified to use the resource
2991 module, which avoids the wraparound problems of time.clock().
2985 module, which avoids the wraparound problems of time.clock().
2992
2986
2993 2003-04-17 *** Released version 0.2.15pre4
2987 2003-04-17 *** Released version 0.2.15pre4
2994
2988
2995 2003-04-17 Fernando Perez <fperez@colorado.edu>
2989 2003-04-17 Fernando Perez <fperez@colorado.edu>
2996
2990
2997 * setup.py (scriptfiles): Split windows-specific stuff over to a
2991 * setup.py (scriptfiles): Split windows-specific stuff over to a
2998 separate file, in an attempt to have a Windows GUI installer.
2992 separate file, in an attempt to have a Windows GUI installer.
2999 That didn't work, but part of the groundwork is done.
2993 That didn't work, but part of the groundwork is done.
3000
2994
3001 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2995 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3002 indent/unindent with 4 spaces. Particularly useful in combination
2996 indent/unindent with 4 spaces. Particularly useful in combination
3003 with the new auto-indent option.
2997 with the new auto-indent option.
3004
2998
3005 2003-04-16 Fernando Perez <fperez@colorado.edu>
2999 2003-04-16 Fernando Perez <fperez@colorado.edu>
3006
3000
3007 * IPython/Magic.py: various replacements of self.rc for
3001 * IPython/Magic.py: various replacements of self.rc for
3008 self.shell.rc. A lot more remains to be done to fully disentangle
3002 self.shell.rc. A lot more remains to be done to fully disentangle
3009 this class from the main Shell class.
3003 this class from the main Shell class.
3010
3004
3011 * IPython/GnuplotRuntime.py: added checks for mouse support so
3005 * IPython/GnuplotRuntime.py: added checks for mouse support so
3012 that we don't try to enable it if the current gnuplot doesn't
3006 that we don't try to enable it if the current gnuplot doesn't
3013 really support it. Also added checks so that we don't try to
3007 really support it. Also added checks so that we don't try to
3014 enable persist under Windows (where Gnuplot doesn't recognize the
3008 enable persist under Windows (where Gnuplot doesn't recognize the
3015 option).
3009 option).
3016
3010
3017 * IPython/iplib.py (InteractiveShell.interact): Added optional
3011 * IPython/iplib.py (InteractiveShell.interact): Added optional
3018 auto-indenting code, after a patch by King C. Shu
3012 auto-indenting code, after a patch by King C. Shu
3019 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3013 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3020 get along well with pasting indented code. If I ever figure out
3014 get along well with pasting indented code. If I ever figure out
3021 how to make that part go well, it will become on by default.
3015 how to make that part go well, it will become on by default.
3022
3016
3023 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3017 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3024 crash ipython if there was an unmatched '%' in the user's prompt
3018 crash ipython if there was an unmatched '%' in the user's prompt
3025 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3019 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3026
3020
3027 * IPython/iplib.py (InteractiveShell.interact): removed the
3021 * IPython/iplib.py (InteractiveShell.interact): removed the
3028 ability to ask the user whether he wants to crash or not at the
3022 ability to ask the user whether he wants to crash or not at the
3029 'last line' exception handler. Calling functions at that point
3023 'last line' exception handler. Calling functions at that point
3030 changes the stack, and the error reports would have incorrect
3024 changes the stack, and the error reports would have incorrect
3031 tracebacks.
3025 tracebacks.
3032
3026
3033 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3027 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3034 pass through a peger a pretty-printed form of any object. After a
3028 pass through a peger a pretty-printed form of any object. After a
3035 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3029 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3036
3030
3037 2003-04-14 Fernando Perez <fperez@colorado.edu>
3031 2003-04-14 Fernando Perez <fperez@colorado.edu>
3038
3032
3039 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3033 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3040 all files in ~ would be modified at first install (instead of
3034 all files in ~ would be modified at first install (instead of
3041 ~/.ipython). This could be potentially disastrous, as the
3035 ~/.ipython). This could be potentially disastrous, as the
3042 modification (make line-endings native) could damage binary files.
3036 modification (make line-endings native) could damage binary files.
3043
3037
3044 2003-04-10 Fernando Perez <fperez@colorado.edu>
3038 2003-04-10 Fernando Perez <fperez@colorado.edu>
3045
3039
3046 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3040 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3047 handle only lines which are invalid python. This now means that
3041 handle only lines which are invalid python. This now means that
3048 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3042 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3049 for the bug report.
3043 for the bug report.
3050
3044
3051 2003-04-01 Fernando Perez <fperez@colorado.edu>
3045 2003-04-01 Fernando Perez <fperez@colorado.edu>
3052
3046
3053 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3047 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3054 where failing to set sys.last_traceback would crash pdb.pm().
3048 where failing to set sys.last_traceback would crash pdb.pm().
3055 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3049 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3056 report.
3050 report.
3057
3051
3058 2003-03-25 Fernando Perez <fperez@colorado.edu>
3052 2003-03-25 Fernando Perez <fperez@colorado.edu>
3059
3053
3060 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3054 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3061 before printing it (it had a lot of spurious blank lines at the
3055 before printing it (it had a lot of spurious blank lines at the
3062 end).
3056 end).
3063
3057
3064 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3058 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3065 output would be sent 21 times! Obviously people don't use this
3059 output would be sent 21 times! Obviously people don't use this
3066 too often, or I would have heard about it.
3060 too often, or I would have heard about it.
3067
3061
3068 2003-03-24 Fernando Perez <fperez@colorado.edu>
3062 2003-03-24 Fernando Perez <fperez@colorado.edu>
3069
3063
3070 * setup.py (scriptfiles): renamed the data_files parameter from
3064 * setup.py (scriptfiles): renamed the data_files parameter from
3071 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3065 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3072 for the patch.
3066 for the patch.
3073
3067
3074 2003-03-20 Fernando Perez <fperez@colorado.edu>
3068 2003-03-20 Fernando Perez <fperez@colorado.edu>
3075
3069
3076 * IPython/genutils.py (error): added error() and fatal()
3070 * IPython/genutils.py (error): added error() and fatal()
3077 functions.
3071 functions.
3078
3072
3079 2003-03-18 *** Released version 0.2.15pre3
3073 2003-03-18 *** Released version 0.2.15pre3
3080
3074
3081 2003-03-18 Fernando Perez <fperez@colorado.edu>
3075 2003-03-18 Fernando Perez <fperez@colorado.edu>
3082
3076
3083 * setupext/install_data_ext.py
3077 * setupext/install_data_ext.py
3084 (install_data_ext.initialize_options): Class contributed by Jack
3078 (install_data_ext.initialize_options): Class contributed by Jack
3085 Moffit for fixing the old distutils hack. He is sending this to
3079 Moffit for fixing the old distutils hack. He is sending this to
3086 the distutils folks so in the future we may not need it as a
3080 the distutils folks so in the future we may not need it as a
3087 private fix.
3081 private fix.
3088
3082
3089 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3083 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3090 changes for Debian packaging. See his patch for full details.
3084 changes for Debian packaging. See his patch for full details.
3091 The old distutils hack of making the ipythonrc* files carry a
3085 The old distutils hack of making the ipythonrc* files carry a
3092 bogus .py extension is gone, at last. Examples were moved to a
3086 bogus .py extension is gone, at last. Examples were moved to a
3093 separate subdir under doc/, and the separate executable scripts
3087 separate subdir under doc/, and the separate executable scripts
3094 now live in their own directory. Overall a great cleanup. The
3088 now live in their own directory. Overall a great cleanup. The
3095 manual was updated to use the new files, and setup.py has been
3089 manual was updated to use the new files, and setup.py has been
3096 fixed for this setup.
3090 fixed for this setup.
3097
3091
3098 * IPython/PyColorize.py (Parser.usage): made non-executable and
3092 * IPython/PyColorize.py (Parser.usage): made non-executable and
3099 created a pycolor wrapper around it to be included as a script.
3093 created a pycolor wrapper around it to be included as a script.
3100
3094
3101 2003-03-12 *** Released version 0.2.15pre2
3095 2003-03-12 *** Released version 0.2.15pre2
3102
3096
3103 2003-03-12 Fernando Perez <fperez@colorado.edu>
3097 2003-03-12 Fernando Perez <fperez@colorado.edu>
3104
3098
3105 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3099 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3106 long-standing problem with garbage characters in some terminals.
3100 long-standing problem with garbage characters in some terminals.
3107 The issue was really that the \001 and \002 escapes must _only_ be
3101 The issue was really that the \001 and \002 escapes must _only_ be
3108 passed to input prompts (which call readline), but _never_ to
3102 passed to input prompts (which call readline), but _never_ to
3109 normal text to be printed on screen. I changed ColorANSI to have
3103 normal text to be printed on screen. I changed ColorANSI to have
3110 two classes: TermColors and InputTermColors, each with the
3104 two classes: TermColors and InputTermColors, each with the
3111 appropriate escapes for input prompts or normal text. The code in
3105 appropriate escapes for input prompts or normal text. The code in
3112 Prompts.py got slightly more complicated, but this very old and
3106 Prompts.py got slightly more complicated, but this very old and
3113 annoying bug is finally fixed.
3107 annoying bug is finally fixed.
3114
3108
3115 All the credit for nailing down the real origin of this problem
3109 All the credit for nailing down the real origin of this problem
3116 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3110 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3117 *Many* thanks to him for spending quite a bit of effort on this.
3111 *Many* thanks to him for spending quite a bit of effort on this.
3118
3112
3119 2003-03-05 *** Released version 0.2.15pre1
3113 2003-03-05 *** Released version 0.2.15pre1
3120
3114
3121 2003-03-03 Fernando Perez <fperez@colorado.edu>
3115 2003-03-03 Fernando Perez <fperez@colorado.edu>
3122
3116
3123 * IPython/FakeModule.py: Moved the former _FakeModule to a
3117 * IPython/FakeModule.py: Moved the former _FakeModule to a
3124 separate file, because it's also needed by Magic (to fix a similar
3118 separate file, because it's also needed by Magic (to fix a similar
3125 pickle-related issue in @run).
3119 pickle-related issue in @run).
3126
3120
3127 2003-03-02 Fernando Perez <fperez@colorado.edu>
3121 2003-03-02 Fernando Perez <fperez@colorado.edu>
3128
3122
3129 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3123 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3130 the autocall option at runtime.
3124 the autocall option at runtime.
3131 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3125 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3132 across Magic.py to start separating Magic from InteractiveShell.
3126 across Magic.py to start separating Magic from InteractiveShell.
3133 (Magic._ofind): Fixed to return proper namespace for dotted
3127 (Magic._ofind): Fixed to return proper namespace for dotted
3134 names. Before, a dotted name would always return 'not currently
3128 names. Before, a dotted name would always return 'not currently
3135 defined', because it would find the 'parent'. s.x would be found,
3129 defined', because it would find the 'parent'. s.x would be found,
3136 but since 'x' isn't defined by itself, it would get confused.
3130 but since 'x' isn't defined by itself, it would get confused.
3137 (Magic.magic_run): Fixed pickling problems reported by Ralf
3131 (Magic.magic_run): Fixed pickling problems reported by Ralf
3138 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3132 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3139 that I'd used when Mike Heeter reported similar issues at the
3133 that I'd used when Mike Heeter reported similar issues at the
3140 top-level, but now for @run. It boils down to injecting the
3134 top-level, but now for @run. It boils down to injecting the
3141 namespace where code is being executed with something that looks
3135 namespace where code is being executed with something that looks
3142 enough like a module to fool pickle.dump(). Since a pickle stores
3136 enough like a module to fool pickle.dump(). Since a pickle stores
3143 a named reference to the importing module, we need this for
3137 a named reference to the importing module, we need this for
3144 pickles to save something sensible.
3138 pickles to save something sensible.
3145
3139
3146 * IPython/ipmaker.py (make_IPython): added an autocall option.
3140 * IPython/ipmaker.py (make_IPython): added an autocall option.
3147
3141
3148 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3142 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3149 the auto-eval code. Now autocalling is an option, and the code is
3143 the auto-eval code. Now autocalling is an option, and the code is
3150 also vastly safer. There is no more eval() involved at all.
3144 also vastly safer. There is no more eval() involved at all.
3151
3145
3152 2003-03-01 Fernando Perez <fperez@colorado.edu>
3146 2003-03-01 Fernando Perez <fperez@colorado.edu>
3153
3147
3154 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3148 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3155 dict with named keys instead of a tuple.
3149 dict with named keys instead of a tuple.
3156
3150
3157 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3151 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3158
3152
3159 * setup.py (make_shortcut): Fixed message about directories
3153 * setup.py (make_shortcut): Fixed message about directories
3160 created during Windows installation (the directories were ok, just
3154 created during Windows installation (the directories were ok, just
3161 the printed message was misleading). Thanks to Chris Liechti
3155 the printed message was misleading). Thanks to Chris Liechti
3162 <cliechti-AT-gmx.net> for the heads up.
3156 <cliechti-AT-gmx.net> for the heads up.
3163
3157
3164 2003-02-21 Fernando Perez <fperez@colorado.edu>
3158 2003-02-21 Fernando Perez <fperez@colorado.edu>
3165
3159
3166 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3160 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3167 of ValueError exception when checking for auto-execution. This
3161 of ValueError exception when checking for auto-execution. This
3168 one is raised by things like Numeric arrays arr.flat when the
3162 one is raised by things like Numeric arrays arr.flat when the
3169 array is non-contiguous.
3163 array is non-contiguous.
3170
3164
3171 2003-01-31 Fernando Perez <fperez@colorado.edu>
3165 2003-01-31 Fernando Perez <fperez@colorado.edu>
3172
3166
3173 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3167 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3174 not return any value at all (even though the command would get
3168 not return any value at all (even though the command would get
3175 executed).
3169 executed).
3176 (xsys): Flush stdout right after printing the command to ensure
3170 (xsys): Flush stdout right after printing the command to ensure
3177 proper ordering of commands and command output in the total
3171 proper ordering of commands and command output in the total
3178 output.
3172 output.
3179 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3173 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3180 system/getoutput as defaults. The old ones are kept for
3174 system/getoutput as defaults. The old ones are kept for
3181 compatibility reasons, so no code which uses this library needs
3175 compatibility reasons, so no code which uses this library needs
3182 changing.
3176 changing.
3183
3177
3184 2003-01-27 *** Released version 0.2.14
3178 2003-01-27 *** Released version 0.2.14
3185
3179
3186 2003-01-25 Fernando Perez <fperez@colorado.edu>
3180 2003-01-25 Fernando Perez <fperez@colorado.edu>
3187
3181
3188 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3182 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3189 functions defined in previous edit sessions could not be re-edited
3183 functions defined in previous edit sessions could not be re-edited
3190 (because the temp files were immediately removed). Now temp files
3184 (because the temp files were immediately removed). Now temp files
3191 are removed only at IPython's exit.
3185 are removed only at IPython's exit.
3192 (Magic.magic_run): Improved @run to perform shell-like expansions
3186 (Magic.magic_run): Improved @run to perform shell-like expansions
3193 on its arguments (~users and $VARS). With this, @run becomes more
3187 on its arguments (~users and $VARS). With this, @run becomes more
3194 like a normal command-line.
3188 like a normal command-line.
3195
3189
3196 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3190 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3197 bugs related to embedding and cleaned up that code. A fairly
3191 bugs related to embedding and cleaned up that code. A fairly
3198 important one was the impossibility to access the global namespace
3192 important one was the impossibility to access the global namespace
3199 through the embedded IPython (only local variables were visible).
3193 through the embedded IPython (only local variables were visible).
3200
3194
3201 2003-01-14 Fernando Perez <fperez@colorado.edu>
3195 2003-01-14 Fernando Perez <fperez@colorado.edu>
3202
3196
3203 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3197 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3204 auto-calling to be a bit more conservative. Now it doesn't get
3198 auto-calling to be a bit more conservative. Now it doesn't get
3205 triggered if any of '!=()<>' are in the rest of the input line, to
3199 triggered if any of '!=()<>' are in the rest of the input line, to
3206 allow comparing callables. Thanks to Alex for the heads up.
3200 allow comparing callables. Thanks to Alex for the heads up.
3207
3201
3208 2003-01-07 Fernando Perez <fperez@colorado.edu>
3202 2003-01-07 Fernando Perez <fperez@colorado.edu>
3209
3203
3210 * IPython/genutils.py (page): fixed estimation of the number of
3204 * IPython/genutils.py (page): fixed estimation of the number of
3211 lines in a string to be paged to simply count newlines. This
3205 lines in a string to be paged to simply count newlines. This
3212 prevents over-guessing due to embedded escape sequences. A better
3206 prevents over-guessing due to embedded escape sequences. A better
3213 long-term solution would involve stripping out the control chars
3207 long-term solution would involve stripping out the control chars
3214 for the count, but it's potentially so expensive I just don't
3208 for the count, but it's potentially so expensive I just don't
3215 think it's worth doing.
3209 think it's worth doing.
3216
3210
3217 2002-12-19 *** Released version 0.2.14pre50
3211 2002-12-19 *** Released version 0.2.14pre50
3218
3212
3219 2002-12-19 Fernando Perez <fperez@colorado.edu>
3213 2002-12-19 Fernando Perez <fperez@colorado.edu>
3220
3214
3221 * tools/release (version): Changed release scripts to inform
3215 * tools/release (version): Changed release scripts to inform
3222 Andrea and build a NEWS file with a list of recent changes.
3216 Andrea and build a NEWS file with a list of recent changes.
3223
3217
3224 * IPython/ColorANSI.py (__all__): changed terminal detection
3218 * IPython/ColorANSI.py (__all__): changed terminal detection
3225 code. Seems to work better for xterms without breaking
3219 code. Seems to work better for xterms without breaking
3226 konsole. Will need more testing to determine if WinXP and Mac OSX
3220 konsole. Will need more testing to determine if WinXP and Mac OSX
3227 also work ok.
3221 also work ok.
3228
3222
3229 2002-12-18 *** Released version 0.2.14pre49
3223 2002-12-18 *** Released version 0.2.14pre49
3230
3224
3231 2002-12-18 Fernando Perez <fperez@colorado.edu>
3225 2002-12-18 Fernando Perez <fperez@colorado.edu>
3232
3226
3233 * Docs: added new info about Mac OSX, from Andrea.
3227 * Docs: added new info about Mac OSX, from Andrea.
3234
3228
3235 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3229 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3236 allow direct plotting of python strings whose format is the same
3230 allow direct plotting of python strings whose format is the same
3237 of gnuplot data files.
3231 of gnuplot data files.
3238
3232
3239 2002-12-16 Fernando Perez <fperez@colorado.edu>
3233 2002-12-16 Fernando Perez <fperez@colorado.edu>
3240
3234
3241 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3235 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3242 value of exit question to be acknowledged.
3236 value of exit question to be acknowledged.
3243
3237
3244 2002-12-03 Fernando Perez <fperez@colorado.edu>
3238 2002-12-03 Fernando Perez <fperez@colorado.edu>
3245
3239
3246 * IPython/ipmaker.py: removed generators, which had been added
3240 * IPython/ipmaker.py: removed generators, which had been added
3247 by mistake in an earlier debugging run. This was causing trouble
3241 by mistake in an earlier debugging run. This was causing trouble
3248 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3242 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3249 for pointing this out.
3243 for pointing this out.
3250
3244
3251 2002-11-17 Fernando Perez <fperez@colorado.edu>
3245 2002-11-17 Fernando Perez <fperez@colorado.edu>
3252
3246
3253 * Manual: updated the Gnuplot section.
3247 * Manual: updated the Gnuplot section.
3254
3248
3255 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3249 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3256 a much better split of what goes in Runtime and what goes in
3250 a much better split of what goes in Runtime and what goes in
3257 Interactive.
3251 Interactive.
3258
3252
3259 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3253 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3260 being imported from iplib.
3254 being imported from iplib.
3261
3255
3262 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3256 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3263 for command-passing. Now the global Gnuplot instance is called
3257 for command-passing. Now the global Gnuplot instance is called
3264 'gp' instead of 'g', which was really a far too fragile and
3258 'gp' instead of 'g', which was really a far too fragile and
3265 common name.
3259 common name.
3266
3260
3267 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3261 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3268 bounding boxes generated by Gnuplot for square plots.
3262 bounding boxes generated by Gnuplot for square plots.
3269
3263
3270 * IPython/genutils.py (popkey): new function added. I should
3264 * IPython/genutils.py (popkey): new function added. I should
3271 suggest this on c.l.py as a dict method, it seems useful.
3265 suggest this on c.l.py as a dict method, it seems useful.
3272
3266
3273 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3267 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3274 to transparently handle PostScript generation. MUCH better than
3268 to transparently handle PostScript generation. MUCH better than
3275 the previous plot_eps/replot_eps (which I removed now). The code
3269 the previous plot_eps/replot_eps (which I removed now). The code
3276 is also fairly clean and well documented now (including
3270 is also fairly clean and well documented now (including
3277 docstrings).
3271 docstrings).
3278
3272
3279 2002-11-13 Fernando Perez <fperez@colorado.edu>
3273 2002-11-13 Fernando Perez <fperez@colorado.edu>
3280
3274
3281 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3275 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3282 (inconsistent with options).
3276 (inconsistent with options).
3283
3277
3284 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3278 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3285 manually disabled, I don't know why. Fixed it.
3279 manually disabled, I don't know why. Fixed it.
3286 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3280 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3287 eps output.
3281 eps output.
3288
3282
3289 2002-11-12 Fernando Perez <fperez@colorado.edu>
3283 2002-11-12 Fernando Perez <fperez@colorado.edu>
3290
3284
3291 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3285 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3292 don't propagate up to caller. Fixes crash reported by François
3286 don't propagate up to caller. Fixes crash reported by François
3293 Pinard.
3287 Pinard.
3294
3288
3295 2002-11-09 Fernando Perez <fperez@colorado.edu>
3289 2002-11-09 Fernando Perez <fperez@colorado.edu>
3296
3290
3297 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3291 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3298 history file for new users.
3292 history file for new users.
3299 (make_IPython): fixed bug where initial install would leave the
3293 (make_IPython): fixed bug where initial install would leave the
3300 user running in the .ipython dir.
3294 user running in the .ipython dir.
3301 (make_IPython): fixed bug where config dir .ipython would be
3295 (make_IPython): fixed bug where config dir .ipython would be
3302 created regardless of the given -ipythondir option. Thanks to Cory
3296 created regardless of the given -ipythondir option. Thanks to Cory
3303 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3297 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3304
3298
3305 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3299 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3306 type confirmations. Will need to use it in all of IPython's code
3300 type confirmations. Will need to use it in all of IPython's code
3307 consistently.
3301 consistently.
3308
3302
3309 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3303 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3310 context to print 31 lines instead of the default 5. This will make
3304 context to print 31 lines instead of the default 5. This will make
3311 the crash reports extremely detailed in case the problem is in
3305 the crash reports extremely detailed in case the problem is in
3312 libraries I don't have access to.
3306 libraries I don't have access to.
3313
3307
3314 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3308 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3315 line of defense' code to still crash, but giving users fair
3309 line of defense' code to still crash, but giving users fair
3316 warning. I don't want internal errors to go unreported: if there's
3310 warning. I don't want internal errors to go unreported: if there's
3317 an internal problem, IPython should crash and generate a full
3311 an internal problem, IPython should crash and generate a full
3318 report.
3312 report.
3319
3313
3320 2002-11-08 Fernando Perez <fperez@colorado.edu>
3314 2002-11-08 Fernando Perez <fperez@colorado.edu>
3321
3315
3322 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3316 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3323 otherwise uncaught exceptions which can appear if people set
3317 otherwise uncaught exceptions which can appear if people set
3324 sys.stdout to something badly broken. Thanks to a crash report
3318 sys.stdout to something badly broken. Thanks to a crash report
3325 from henni-AT-mail.brainbot.com.
3319 from henni-AT-mail.brainbot.com.
3326
3320
3327 2002-11-04 Fernando Perez <fperez@colorado.edu>
3321 2002-11-04 Fernando Perez <fperez@colorado.edu>
3328
3322
3329 * IPython/iplib.py (InteractiveShell.interact): added
3323 * IPython/iplib.py (InteractiveShell.interact): added
3330 __IPYTHON__active to the builtins. It's a flag which goes on when
3324 __IPYTHON__active to the builtins. It's a flag which goes on when
3331 the interaction starts and goes off again when it stops. This
3325 the interaction starts and goes off again when it stops. This
3332 allows embedding code to detect being inside IPython. Before this
3326 allows embedding code to detect being inside IPython. Before this
3333 was done via __IPYTHON__, but that only shows that an IPython
3327 was done via __IPYTHON__, but that only shows that an IPython
3334 instance has been created.
3328 instance has been created.
3335
3329
3336 * IPython/Magic.py (Magic.magic_env): I realized that in a
3330 * IPython/Magic.py (Magic.magic_env): I realized that in a
3337 UserDict, instance.data holds the data as a normal dict. So I
3331 UserDict, instance.data holds the data as a normal dict. So I
3338 modified @env to return os.environ.data instead of rebuilding a
3332 modified @env to return os.environ.data instead of rebuilding a
3339 dict by hand.
3333 dict by hand.
3340
3334
3341 2002-11-02 Fernando Perez <fperez@colorado.edu>
3335 2002-11-02 Fernando Perez <fperez@colorado.edu>
3342
3336
3343 * IPython/genutils.py (warn): changed so that level 1 prints no
3337 * IPython/genutils.py (warn): changed so that level 1 prints no
3344 header. Level 2 is now the default (with 'WARNING' header, as
3338 header. Level 2 is now the default (with 'WARNING' header, as
3345 before). I think I tracked all places where changes were needed in
3339 before). I think I tracked all places where changes were needed in
3346 IPython, but outside code using the old level numbering may have
3340 IPython, but outside code using the old level numbering may have
3347 broken.
3341 broken.
3348
3342
3349 * IPython/iplib.py (InteractiveShell.runcode): added this to
3343 * IPython/iplib.py (InteractiveShell.runcode): added this to
3350 handle the tracebacks in SystemExit traps correctly. The previous
3344 handle the tracebacks in SystemExit traps correctly. The previous
3351 code (through interact) was printing more of the stack than
3345 code (through interact) was printing more of the stack than
3352 necessary, showing IPython internal code to the user.
3346 necessary, showing IPython internal code to the user.
3353
3347
3354 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3348 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3355 default. Now that the default at the confirmation prompt is yes,
3349 default. Now that the default at the confirmation prompt is yes,
3356 it's not so intrusive. François' argument that ipython sessions
3350 it's not so intrusive. François' argument that ipython sessions
3357 tend to be complex enough not to lose them from an accidental C-d,
3351 tend to be complex enough not to lose them from an accidental C-d,
3358 is a valid one.
3352 is a valid one.
3359
3353
3360 * IPython/iplib.py (InteractiveShell.interact): added a
3354 * IPython/iplib.py (InteractiveShell.interact): added a
3361 showtraceback() call to the SystemExit trap, and modified the exit
3355 showtraceback() call to the SystemExit trap, and modified the exit
3362 confirmation to have yes as the default.
3356 confirmation to have yes as the default.
3363
3357
3364 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3358 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3365 this file. It's been gone from the code for a long time, this was
3359 this file. It's been gone from the code for a long time, this was
3366 simply leftover junk.
3360 simply leftover junk.
3367
3361
3368 2002-11-01 Fernando Perez <fperez@colorado.edu>
3362 2002-11-01 Fernando Perez <fperez@colorado.edu>
3369
3363
3370 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3364 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3371 added. If set, IPython now traps EOF and asks for
3365 added. If set, IPython now traps EOF and asks for
3372 confirmation. After a request by François Pinard.
3366 confirmation. After a request by François Pinard.
3373
3367
3374 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3368 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3375 of @abort, and with a new (better) mechanism for handling the
3369 of @abort, and with a new (better) mechanism for handling the
3376 exceptions.
3370 exceptions.
3377
3371
3378 2002-10-27 Fernando Perez <fperez@colorado.edu>
3372 2002-10-27 Fernando Perez <fperez@colorado.edu>
3379
3373
3380 * IPython/usage.py (__doc__): updated the --help information and
3374 * IPython/usage.py (__doc__): updated the --help information and
3381 the ipythonrc file to indicate that -log generates
3375 the ipythonrc file to indicate that -log generates
3382 ./ipython.log. Also fixed the corresponding info in @logstart.
3376 ./ipython.log. Also fixed the corresponding info in @logstart.
3383 This and several other fixes in the manuals thanks to reports by
3377 This and several other fixes in the manuals thanks to reports by
3384 François Pinard <pinard-AT-iro.umontreal.ca>.
3378 François Pinard <pinard-AT-iro.umontreal.ca>.
3385
3379
3386 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3380 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3387 refer to @logstart (instead of @log, which doesn't exist).
3381 refer to @logstart (instead of @log, which doesn't exist).
3388
3382
3389 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3383 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3390 AttributeError crash. Thanks to Christopher Armstrong
3384 AttributeError crash. Thanks to Christopher Armstrong
3391 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3385 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3392 introduced recently (in 0.2.14pre37) with the fix to the eval
3386 introduced recently (in 0.2.14pre37) with the fix to the eval
3393 problem mentioned below.
3387 problem mentioned below.
3394
3388
3395 2002-10-17 Fernando Perez <fperez@colorado.edu>
3389 2002-10-17 Fernando Perez <fperez@colorado.edu>
3396
3390
3397 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3391 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3398 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3392 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3399
3393
3400 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3394 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3401 this function to fix a problem reported by Alex Schmolck. He saw
3395 this function to fix a problem reported by Alex Schmolck. He saw
3402 it with list comprehensions and generators, which were getting
3396 it with list comprehensions and generators, which were getting
3403 called twice. The real problem was an 'eval' call in testing for
3397 called twice. The real problem was an 'eval' call in testing for
3404 automagic which was evaluating the input line silently.
3398 automagic which was evaluating the input line silently.
3405
3399
3406 This is a potentially very nasty bug, if the input has side
3400 This is a potentially very nasty bug, if the input has side
3407 effects which must not be repeated. The code is much cleaner now,
3401 effects which must not be repeated. The code is much cleaner now,
3408 without any blanket 'except' left and with a regexp test for
3402 without any blanket 'except' left and with a regexp test for
3409 actual function names.
3403 actual function names.
3410
3404
3411 But an eval remains, which I'm not fully comfortable with. I just
3405 But an eval remains, which I'm not fully comfortable with. I just
3412 don't know how to find out if an expression could be a callable in
3406 don't know how to find out if an expression could be a callable in
3413 the user's namespace without doing an eval on the string. However
3407 the user's namespace without doing an eval on the string. However
3414 that string is now much more strictly checked so that no code
3408 that string is now much more strictly checked so that no code
3415 slips by, so the eval should only happen for things that can
3409 slips by, so the eval should only happen for things that can
3416 really be only function/method names.
3410 really be only function/method names.
3417
3411
3418 2002-10-15 Fernando Perez <fperez@colorado.edu>
3412 2002-10-15 Fernando Perez <fperez@colorado.edu>
3419
3413
3420 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3414 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3421 OSX information to main manual, removed README_Mac_OSX file from
3415 OSX information to main manual, removed README_Mac_OSX file from
3422 distribution. Also updated credits for recent additions.
3416 distribution. Also updated credits for recent additions.
3423
3417
3424 2002-10-10 Fernando Perez <fperez@colorado.edu>
3418 2002-10-10 Fernando Perez <fperez@colorado.edu>
3425
3419
3426 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3420 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3427 terminal-related issues. Many thanks to Andrea Riciputi
3421 terminal-related issues. Many thanks to Andrea Riciputi
3428 <andrea.riciputi-AT-libero.it> for writing it.
3422 <andrea.riciputi-AT-libero.it> for writing it.
3429
3423
3430 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3424 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3431 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3425 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3432
3426
3433 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3427 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3434 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3428 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3435 <syver-en-AT-online.no> who both submitted patches for this problem.
3429 <syver-en-AT-online.no> who both submitted patches for this problem.
3436
3430
3437 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3431 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3438 global embedding to make sure that things don't overwrite user
3432 global embedding to make sure that things don't overwrite user
3439 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3433 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3440
3434
3441 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3435 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3442 compatibility. Thanks to Hayden Callow
3436 compatibility. Thanks to Hayden Callow
3443 <h.callow-AT-elec.canterbury.ac.nz>
3437 <h.callow-AT-elec.canterbury.ac.nz>
3444
3438
3445 2002-10-04 Fernando Perez <fperez@colorado.edu>
3439 2002-10-04 Fernando Perez <fperez@colorado.edu>
3446
3440
3447 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3441 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3448 Gnuplot.File objects.
3442 Gnuplot.File objects.
3449
3443
3450 2002-07-23 Fernando Perez <fperez@colorado.edu>
3444 2002-07-23 Fernando Perez <fperez@colorado.edu>
3451
3445
3452 * IPython/genutils.py (timing): Added timings() and timing() for
3446 * IPython/genutils.py (timing): Added timings() and timing() for
3453 quick access to the most commonly needed data, the execution
3447 quick access to the most commonly needed data, the execution
3454 times. Old timing() renamed to timings_out().
3448 times. Old timing() renamed to timings_out().
3455
3449
3456 2002-07-18 Fernando Perez <fperez@colorado.edu>
3450 2002-07-18 Fernando Perez <fperez@colorado.edu>
3457
3451
3458 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3452 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3459 bug with nested instances disrupting the parent's tab completion.
3453 bug with nested instances disrupting the parent's tab completion.
3460
3454
3461 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3455 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3462 all_completions code to begin the emacs integration.
3456 all_completions code to begin the emacs integration.
3463
3457
3464 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3458 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3465 argument to allow titling individual arrays when plotting.
3459 argument to allow titling individual arrays when plotting.
3466
3460
3467 2002-07-15 Fernando Perez <fperez@colorado.edu>
3461 2002-07-15 Fernando Perez <fperez@colorado.edu>
3468
3462
3469 * setup.py (make_shortcut): changed to retrieve the value of
3463 * setup.py (make_shortcut): changed to retrieve the value of
3470 'Program Files' directory from the registry (this value changes in
3464 'Program Files' directory from the registry (this value changes in
3471 non-english versions of Windows). Thanks to Thomas Fanslau
3465 non-english versions of Windows). Thanks to Thomas Fanslau
3472 <tfanslau-AT-gmx.de> for the report.
3466 <tfanslau-AT-gmx.de> for the report.
3473
3467
3474 2002-07-10 Fernando Perez <fperez@colorado.edu>
3468 2002-07-10 Fernando Perez <fperez@colorado.edu>
3475
3469
3476 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3470 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3477 a bug in pdb, which crashes if a line with only whitespace is
3471 a bug in pdb, which crashes if a line with only whitespace is
3478 entered. Bug report submitted to sourceforge.
3472 entered. Bug report submitted to sourceforge.
3479
3473
3480 2002-07-09 Fernando Perez <fperez@colorado.edu>
3474 2002-07-09 Fernando Perez <fperez@colorado.edu>
3481
3475
3482 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3476 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3483 reporting exceptions (it's a bug in inspect.py, I just set a
3477 reporting exceptions (it's a bug in inspect.py, I just set a
3484 workaround).
3478 workaround).
3485
3479
3486 2002-07-08 Fernando Perez <fperez@colorado.edu>
3480 2002-07-08 Fernando Perez <fperez@colorado.edu>
3487
3481
3488 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3482 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3489 __IPYTHON__ in __builtins__ to show up in user_ns.
3483 __IPYTHON__ in __builtins__ to show up in user_ns.
3490
3484
3491 2002-07-03 Fernando Perez <fperez@colorado.edu>
3485 2002-07-03 Fernando Perez <fperez@colorado.edu>
3492
3486
3493 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3487 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3494 name from @gp_set_instance to @gp_set_default.
3488 name from @gp_set_instance to @gp_set_default.
3495
3489
3496 * IPython/ipmaker.py (make_IPython): default editor value set to
3490 * IPython/ipmaker.py (make_IPython): default editor value set to
3497 '0' (a string), to match the rc file. Otherwise will crash when
3491 '0' (a string), to match the rc file. Otherwise will crash when
3498 .strip() is called on it.
3492 .strip() is called on it.
3499
3493
3500
3494
3501 2002-06-28 Fernando Perez <fperez@colorado.edu>
3495 2002-06-28 Fernando Perez <fperez@colorado.edu>
3502
3496
3503 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3497 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3504 of files in current directory when a file is executed via
3498 of files in current directory when a file is executed via
3505 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3499 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3506
3500
3507 * setup.py (manfiles): fix for rpm builds, submitted by RA
3501 * setup.py (manfiles): fix for rpm builds, submitted by RA
3508 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3502 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3509
3503
3510 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3504 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3511 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3505 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3512 string!). A. Schmolck caught this one.
3506 string!). A. Schmolck caught this one.
3513
3507
3514 2002-06-27 Fernando Perez <fperez@colorado.edu>
3508 2002-06-27 Fernando Perez <fperez@colorado.edu>
3515
3509
3516 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3510 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3517 defined files at the cmd line. __name__ wasn't being set to
3511 defined files at the cmd line. __name__ wasn't being set to
3518 __main__.
3512 __main__.
3519
3513
3520 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3514 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3521 regular lists and tuples besides Numeric arrays.
3515 regular lists and tuples besides Numeric arrays.
3522
3516
3523 * IPython/Prompts.py (CachedOutput.__call__): Added output
3517 * IPython/Prompts.py (CachedOutput.__call__): Added output
3524 supression for input ending with ';'. Similar to Mathematica and
3518 supression for input ending with ';'. Similar to Mathematica and
3525 Matlab. The _* vars and Out[] list are still updated, just like
3519 Matlab. The _* vars and Out[] list are still updated, just like
3526 Mathematica behaves.
3520 Mathematica behaves.
3527
3521
3528 2002-06-25 Fernando Perez <fperez@colorado.edu>
3522 2002-06-25 Fernando Perez <fperez@colorado.edu>
3529
3523
3530 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3524 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3531 .ini extensions for profiels under Windows.
3525 .ini extensions for profiels under Windows.
3532
3526
3533 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3527 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3534 string form. Fix contributed by Alexander Schmolck
3528 string form. Fix contributed by Alexander Schmolck
3535 <a.schmolck-AT-gmx.net>
3529 <a.schmolck-AT-gmx.net>
3536
3530
3537 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3531 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3538 pre-configured Gnuplot instance.
3532 pre-configured Gnuplot instance.
3539
3533
3540 2002-06-21 Fernando Perez <fperez@colorado.edu>
3534 2002-06-21 Fernando Perez <fperez@colorado.edu>
3541
3535
3542 * IPython/numutils.py (exp_safe): new function, works around the
3536 * IPython/numutils.py (exp_safe): new function, works around the
3543 underflow problems in Numeric.
3537 underflow problems in Numeric.
3544 (log2): New fn. Safe log in base 2: returns exact integer answer
3538 (log2): New fn. Safe log in base 2: returns exact integer answer
3545 for exact integer powers of 2.
3539 for exact integer powers of 2.
3546
3540
3547 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3541 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3548 properly.
3542 properly.
3549
3543
3550 2002-06-20 Fernando Perez <fperez@colorado.edu>
3544 2002-06-20 Fernando Perez <fperez@colorado.edu>
3551
3545
3552 * IPython/genutils.py (timing): new function like
3546 * IPython/genutils.py (timing): new function like
3553 Mathematica's. Similar to time_test, but returns more info.
3547 Mathematica's. Similar to time_test, but returns more info.
3554
3548
3555 2002-06-18 Fernando Perez <fperez@colorado.edu>
3549 2002-06-18 Fernando Perez <fperez@colorado.edu>
3556
3550
3557 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3551 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3558 according to Mike Heeter's suggestions.
3552 according to Mike Heeter's suggestions.
3559
3553
3560 2002-06-16 Fernando Perez <fperez@colorado.edu>
3554 2002-06-16 Fernando Perez <fperez@colorado.edu>
3561
3555
3562 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3556 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3563 system. GnuplotMagic is gone as a user-directory option. New files
3557 system. GnuplotMagic is gone as a user-directory option. New files
3564 make it easier to use all the gnuplot stuff both from external
3558 make it easier to use all the gnuplot stuff both from external
3565 programs as well as from IPython. Had to rewrite part of
3559 programs as well as from IPython. Had to rewrite part of
3566 hardcopy() b/c of a strange bug: often the ps files simply don't
3560 hardcopy() b/c of a strange bug: often the ps files simply don't
3567 get created, and require a repeat of the command (often several
3561 get created, and require a repeat of the command (often several
3568 times).
3562 times).
3569
3563
3570 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3564 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3571 resolve output channel at call time, so that if sys.stderr has
3565 resolve output channel at call time, so that if sys.stderr has
3572 been redirected by user this gets honored.
3566 been redirected by user this gets honored.
3573
3567
3574 2002-06-13 Fernando Perez <fperez@colorado.edu>
3568 2002-06-13 Fernando Perez <fperez@colorado.edu>
3575
3569
3576 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3570 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3577 IPShell. Kept a copy with the old names to avoid breaking people's
3571 IPShell. Kept a copy with the old names to avoid breaking people's
3578 embedded code.
3572 embedded code.
3579
3573
3580 * IPython/ipython: simplified it to the bare minimum after
3574 * IPython/ipython: simplified it to the bare minimum after
3581 Holger's suggestions. Added info about how to use it in
3575 Holger's suggestions. Added info about how to use it in
3582 PYTHONSTARTUP.
3576 PYTHONSTARTUP.
3583
3577
3584 * IPython/Shell.py (IPythonShell): changed the options passing
3578 * IPython/Shell.py (IPythonShell): changed the options passing
3585 from a string with funky %s replacements to a straight list. Maybe
3579 from a string with funky %s replacements to a straight list. Maybe
3586 a bit more typing, but it follows sys.argv conventions, so there's
3580 a bit more typing, but it follows sys.argv conventions, so there's
3587 less special-casing to remember.
3581 less special-casing to remember.
3588
3582
3589 2002-06-12 Fernando Perez <fperez@colorado.edu>
3583 2002-06-12 Fernando Perez <fperez@colorado.edu>
3590
3584
3591 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3585 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3592 command. Thanks to a suggestion by Mike Heeter.
3586 command. Thanks to a suggestion by Mike Heeter.
3593 (Magic.magic_pfile): added behavior to look at filenames if given
3587 (Magic.magic_pfile): added behavior to look at filenames if given
3594 arg is not a defined object.
3588 arg is not a defined object.
3595 (Magic.magic_save): New @save function to save code snippets. Also
3589 (Magic.magic_save): New @save function to save code snippets. Also
3596 a Mike Heeter idea.
3590 a Mike Heeter idea.
3597
3591
3598 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3592 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3599 plot() and replot(). Much more convenient now, especially for
3593 plot() and replot(). Much more convenient now, especially for
3600 interactive use.
3594 interactive use.
3601
3595
3602 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3596 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3603 filenames.
3597 filenames.
3604
3598
3605 2002-06-02 Fernando Perez <fperez@colorado.edu>
3599 2002-06-02 Fernando Perez <fperez@colorado.edu>
3606
3600
3607 * IPython/Struct.py (Struct.__init__): modified to admit
3601 * IPython/Struct.py (Struct.__init__): modified to admit
3608 initialization via another struct.
3602 initialization via another struct.
3609
3603
3610 * IPython/genutils.py (SystemExec.__init__): New stateful
3604 * IPython/genutils.py (SystemExec.__init__): New stateful
3611 interface to xsys and bq. Useful for writing system scripts.
3605 interface to xsys and bq. Useful for writing system scripts.
3612
3606
3613 2002-05-30 Fernando Perez <fperez@colorado.edu>
3607 2002-05-30 Fernando Perez <fperez@colorado.edu>
3614
3608
3615 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3609 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3616 documents. This will make the user download smaller (it's getting
3610 documents. This will make the user download smaller (it's getting
3617 too big).
3611 too big).
3618
3612
3619 2002-05-29 Fernando Perez <fperez@colorado.edu>
3613 2002-05-29 Fernando Perez <fperez@colorado.edu>
3620
3614
3621 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3615 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3622 fix problems with shelve and pickle. Seems to work, but I don't
3616 fix problems with shelve and pickle. Seems to work, but I don't
3623 know if corner cases break it. Thanks to Mike Heeter
3617 know if corner cases break it. Thanks to Mike Heeter
3624 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3618 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3625
3619
3626 2002-05-24 Fernando Perez <fperez@colorado.edu>
3620 2002-05-24 Fernando Perez <fperez@colorado.edu>
3627
3621
3628 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3622 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3629 macros having broken.
3623 macros having broken.
3630
3624
3631 2002-05-21 Fernando Perez <fperez@colorado.edu>
3625 2002-05-21 Fernando Perez <fperez@colorado.edu>
3632
3626
3633 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3627 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3634 introduced logging bug: all history before logging started was
3628 introduced logging bug: all history before logging started was
3635 being written one character per line! This came from the redesign
3629 being written one character per line! This came from the redesign
3636 of the input history as a special list which slices to strings,
3630 of the input history as a special list which slices to strings,
3637 not to lists.
3631 not to lists.
3638
3632
3639 2002-05-20 Fernando Perez <fperez@colorado.edu>
3633 2002-05-20 Fernando Perez <fperez@colorado.edu>
3640
3634
3641 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3635 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3642 be an attribute of all classes in this module. The design of these
3636 be an attribute of all classes in this module. The design of these
3643 classes needs some serious overhauling.
3637 classes needs some serious overhauling.
3644
3638
3645 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3639 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3646 which was ignoring '_' in option names.
3640 which was ignoring '_' in option names.
3647
3641
3648 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3642 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3649 'Verbose_novars' to 'Context' and made it the new default. It's a
3643 'Verbose_novars' to 'Context' and made it the new default. It's a
3650 bit more readable and also safer than verbose.
3644 bit more readable and also safer than verbose.
3651
3645
3652 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3646 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3653 triple-quoted strings.
3647 triple-quoted strings.
3654
3648
3655 * IPython/OInspect.py (__all__): new module exposing the object
3649 * IPython/OInspect.py (__all__): new module exposing the object
3656 introspection facilities. Now the corresponding magics are dummy
3650 introspection facilities. Now the corresponding magics are dummy
3657 wrappers around this. Having this module will make it much easier
3651 wrappers around this. Having this module will make it much easier
3658 to put these functions into our modified pdb.
3652 to put these functions into our modified pdb.
3659 This new object inspector system uses the new colorizing module,
3653 This new object inspector system uses the new colorizing module,
3660 so source code and other things are nicely syntax highlighted.
3654 so source code and other things are nicely syntax highlighted.
3661
3655
3662 2002-05-18 Fernando Perez <fperez@colorado.edu>
3656 2002-05-18 Fernando Perez <fperez@colorado.edu>
3663
3657
3664 * IPython/ColorANSI.py: Split the coloring tools into a separate
3658 * IPython/ColorANSI.py: Split the coloring tools into a separate
3665 module so I can use them in other code easier (they were part of
3659 module so I can use them in other code easier (they were part of
3666 ultraTB).
3660 ultraTB).
3667
3661
3668 2002-05-17 Fernando Perez <fperez@colorado.edu>
3662 2002-05-17 Fernando Perez <fperez@colorado.edu>
3669
3663
3670 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3664 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3671 fixed it to set the global 'g' also to the called instance, as
3665 fixed it to set the global 'g' also to the called instance, as
3672 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3666 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3673 user's 'g' variables).
3667 user's 'g' variables).
3674
3668
3675 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3669 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3676 global variables (aliases to _ih,_oh) so that users which expect
3670 global variables (aliases to _ih,_oh) so that users which expect
3677 In[5] or Out[7] to work aren't unpleasantly surprised.
3671 In[5] or Out[7] to work aren't unpleasantly surprised.
3678 (InputList.__getslice__): new class to allow executing slices of
3672 (InputList.__getslice__): new class to allow executing slices of
3679 input history directly. Very simple class, complements the use of
3673 input history directly. Very simple class, complements the use of
3680 macros.
3674 macros.
3681
3675
3682 2002-05-16 Fernando Perez <fperez@colorado.edu>
3676 2002-05-16 Fernando Perez <fperez@colorado.edu>
3683
3677
3684 * setup.py (docdirbase): make doc directory be just doc/IPython
3678 * setup.py (docdirbase): make doc directory be just doc/IPython
3685 without version numbers, it will reduce clutter for users.
3679 without version numbers, it will reduce clutter for users.
3686
3680
3687 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3681 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3688 execfile call to prevent possible memory leak. See for details:
3682 execfile call to prevent possible memory leak. See for details:
3689 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3683 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3690
3684
3691 2002-05-15 Fernando Perez <fperez@colorado.edu>
3685 2002-05-15 Fernando Perez <fperez@colorado.edu>
3692
3686
3693 * IPython/Magic.py (Magic.magic_psource): made the object
3687 * IPython/Magic.py (Magic.magic_psource): made the object
3694 introspection names be more standard: pdoc, pdef, pfile and
3688 introspection names be more standard: pdoc, pdef, pfile and
3695 psource. They all print/page their output, and it makes
3689 psource. They all print/page their output, and it makes
3696 remembering them easier. Kept old names for compatibility as
3690 remembering them easier. Kept old names for compatibility as
3697 aliases.
3691 aliases.
3698
3692
3699 2002-05-14 Fernando Perez <fperez@colorado.edu>
3693 2002-05-14 Fernando Perez <fperez@colorado.edu>
3700
3694
3701 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3695 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3702 what the mouse problem was. The trick is to use gnuplot with temp
3696 what the mouse problem was. The trick is to use gnuplot with temp
3703 files and NOT with pipes (for data communication), because having
3697 files and NOT with pipes (for data communication), because having
3704 both pipes and the mouse on is bad news.
3698 both pipes and the mouse on is bad news.
3705
3699
3706 2002-05-13 Fernando Perez <fperez@colorado.edu>
3700 2002-05-13 Fernando Perez <fperez@colorado.edu>
3707
3701
3708 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3702 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3709 bug. Information would be reported about builtins even when
3703 bug. Information would be reported about builtins even when
3710 user-defined functions overrode them.
3704 user-defined functions overrode them.
3711
3705
3712 2002-05-11 Fernando Perez <fperez@colorado.edu>
3706 2002-05-11 Fernando Perez <fperez@colorado.edu>
3713
3707
3714 * IPython/__init__.py (__all__): removed FlexCompleter from
3708 * IPython/__init__.py (__all__): removed FlexCompleter from
3715 __all__ so that things don't fail in platforms without readline.
3709 __all__ so that things don't fail in platforms without readline.
3716
3710
3717 2002-05-10 Fernando Perez <fperez@colorado.edu>
3711 2002-05-10 Fernando Perez <fperez@colorado.edu>
3718
3712
3719 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3713 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3720 it requires Numeric, effectively making Numeric a dependency for
3714 it requires Numeric, effectively making Numeric a dependency for
3721 IPython.
3715 IPython.
3722
3716
3723 * Released 0.2.13
3717 * Released 0.2.13
3724
3718
3725 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3719 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3726 profiler interface. Now all the major options from the profiler
3720 profiler interface. Now all the major options from the profiler
3727 module are directly supported in IPython, both for single
3721 module are directly supported in IPython, both for single
3728 expressions (@prun) and for full programs (@run -p).
3722 expressions (@prun) and for full programs (@run -p).
3729
3723
3730 2002-05-09 Fernando Perez <fperez@colorado.edu>
3724 2002-05-09 Fernando Perez <fperez@colorado.edu>
3731
3725
3732 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3726 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3733 magic properly formatted for screen.
3727 magic properly formatted for screen.
3734
3728
3735 * setup.py (make_shortcut): Changed things to put pdf version in
3729 * setup.py (make_shortcut): Changed things to put pdf version in
3736 doc/ instead of doc/manual (had to change lyxport a bit).
3730 doc/ instead of doc/manual (had to change lyxport a bit).
3737
3731
3738 * IPython/Magic.py (Profile.string_stats): made profile runs go
3732 * IPython/Magic.py (Profile.string_stats): made profile runs go
3739 through pager (they are long and a pager allows searching, saving,
3733 through pager (they are long and a pager allows searching, saving,
3740 etc.)
3734 etc.)
3741
3735
3742 2002-05-08 Fernando Perez <fperez@colorado.edu>
3736 2002-05-08 Fernando Perez <fperez@colorado.edu>
3743
3737
3744 * Released 0.2.12
3738 * Released 0.2.12
3745
3739
3746 2002-05-06 Fernando Perez <fperez@colorado.edu>
3740 2002-05-06 Fernando Perez <fperez@colorado.edu>
3747
3741
3748 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3742 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3749 introduced); 'hist n1 n2' was broken.
3743 introduced); 'hist n1 n2' was broken.
3750 (Magic.magic_pdb): added optional on/off arguments to @pdb
3744 (Magic.magic_pdb): added optional on/off arguments to @pdb
3751 (Magic.magic_run): added option -i to @run, which executes code in
3745 (Magic.magic_run): added option -i to @run, which executes code in
3752 the IPython namespace instead of a clean one. Also added @irun as
3746 the IPython namespace instead of a clean one. Also added @irun as
3753 an alias to @run -i.
3747 an alias to @run -i.
3754
3748
3755 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3749 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3756 fixed (it didn't really do anything, the namespaces were wrong).
3750 fixed (it didn't really do anything, the namespaces were wrong).
3757
3751
3758 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3752 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3759
3753
3760 * IPython/__init__.py (__all__): Fixed package namespace, now
3754 * IPython/__init__.py (__all__): Fixed package namespace, now
3761 'import IPython' does give access to IPython.<all> as
3755 'import IPython' does give access to IPython.<all> as
3762 expected. Also renamed __release__ to Release.
3756 expected. Also renamed __release__ to Release.
3763
3757
3764 * IPython/Debugger.py (__license__): created new Pdb class which
3758 * IPython/Debugger.py (__license__): created new Pdb class which
3765 functions like a drop-in for the normal pdb.Pdb but does NOT
3759 functions like a drop-in for the normal pdb.Pdb but does NOT
3766 import readline by default. This way it doesn't muck up IPython's
3760 import readline by default. This way it doesn't muck up IPython's
3767 readline handling, and now tab-completion finally works in the
3761 readline handling, and now tab-completion finally works in the
3768 debugger -- sort of. It completes things globally visible, but the
3762 debugger -- sort of. It completes things globally visible, but the
3769 completer doesn't track the stack as pdb walks it. That's a bit
3763 completer doesn't track the stack as pdb walks it. That's a bit
3770 tricky, and I'll have to implement it later.
3764 tricky, and I'll have to implement it later.
3771
3765
3772 2002-05-05 Fernando Perez <fperez@colorado.edu>
3766 2002-05-05 Fernando Perez <fperez@colorado.edu>
3773
3767
3774 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3768 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3775 magic docstrings when printed via ? (explicit \'s were being
3769 magic docstrings when printed via ? (explicit \'s were being
3776 printed).
3770 printed).
3777
3771
3778 * IPython/ipmaker.py (make_IPython): fixed namespace
3772 * IPython/ipmaker.py (make_IPython): fixed namespace
3779 identification bug. Now variables loaded via logs or command-line
3773 identification bug. Now variables loaded via logs or command-line
3780 files are recognized in the interactive namespace by @who.
3774 files are recognized in the interactive namespace by @who.
3781
3775
3782 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3776 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3783 log replay system stemming from the string form of Structs.
3777 log replay system stemming from the string form of Structs.
3784
3778
3785 * IPython/Magic.py (Macro.__init__): improved macros to properly
3779 * IPython/Magic.py (Macro.__init__): improved macros to properly
3786 handle magic commands in them.
3780 handle magic commands in them.
3787 (Magic.magic_logstart): usernames are now expanded so 'logstart
3781 (Magic.magic_logstart): usernames are now expanded so 'logstart
3788 ~/mylog' now works.
3782 ~/mylog' now works.
3789
3783
3790 * IPython/iplib.py (complete): fixed bug where paths starting with
3784 * IPython/iplib.py (complete): fixed bug where paths starting with
3791 '/' would be completed as magic names.
3785 '/' would be completed as magic names.
3792
3786
3793 2002-05-04 Fernando Perez <fperez@colorado.edu>
3787 2002-05-04 Fernando Perez <fperez@colorado.edu>
3794
3788
3795 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3789 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3796 allow running full programs under the profiler's control.
3790 allow running full programs under the profiler's control.
3797
3791
3798 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3792 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3799 mode to report exceptions verbosely but without formatting
3793 mode to report exceptions verbosely but without formatting
3800 variables. This addresses the issue of ipython 'freezing' (it's
3794 variables. This addresses the issue of ipython 'freezing' (it's
3801 not frozen, but caught in an expensive formatting loop) when huge
3795 not frozen, but caught in an expensive formatting loop) when huge
3802 variables are in the context of an exception.
3796 variables are in the context of an exception.
3803 (VerboseTB.text): Added '--->' markers at line where exception was
3797 (VerboseTB.text): Added '--->' markers at line where exception was
3804 triggered. Much clearer to read, especially in NoColor modes.
3798 triggered. Much clearer to read, especially in NoColor modes.
3805
3799
3806 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3800 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3807 implemented in reverse when changing to the new parse_options().
3801 implemented in reverse when changing to the new parse_options().
3808
3802
3809 2002-05-03 Fernando Perez <fperez@colorado.edu>
3803 2002-05-03 Fernando Perez <fperez@colorado.edu>
3810
3804
3811 * IPython/Magic.py (Magic.parse_options): new function so that
3805 * IPython/Magic.py (Magic.parse_options): new function so that
3812 magics can parse options easier.
3806 magics can parse options easier.
3813 (Magic.magic_prun): new function similar to profile.run(),
3807 (Magic.magic_prun): new function similar to profile.run(),
3814 suggested by Chris Hart.
3808 suggested by Chris Hart.
3815 (Magic.magic_cd): fixed behavior so that it only changes if
3809 (Magic.magic_cd): fixed behavior so that it only changes if
3816 directory actually is in history.
3810 directory actually is in history.
3817
3811
3818 * IPython/usage.py (__doc__): added information about potential
3812 * IPython/usage.py (__doc__): added information about potential
3819 slowness of Verbose exception mode when there are huge data
3813 slowness of Verbose exception mode when there are huge data
3820 structures to be formatted (thanks to Archie Paulson).
3814 structures to be formatted (thanks to Archie Paulson).
3821
3815
3822 * IPython/ipmaker.py (make_IPython): Changed default logging
3816 * IPython/ipmaker.py (make_IPython): Changed default logging
3823 (when simply called with -log) to use curr_dir/ipython.log in
3817 (when simply called with -log) to use curr_dir/ipython.log in
3824 rotate mode. Fixed crash which was occuring with -log before
3818 rotate mode. Fixed crash which was occuring with -log before
3825 (thanks to Jim Boyle).
3819 (thanks to Jim Boyle).
3826
3820
3827 2002-05-01 Fernando Perez <fperez@colorado.edu>
3821 2002-05-01 Fernando Perez <fperez@colorado.edu>
3828
3822
3829 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3823 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3830 was nasty -- though somewhat of a corner case).
3824 was nasty -- though somewhat of a corner case).
3831
3825
3832 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3826 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3833 text (was a bug).
3827 text (was a bug).
3834
3828
3835 2002-04-30 Fernando Perez <fperez@colorado.edu>
3829 2002-04-30 Fernando Perez <fperez@colorado.edu>
3836
3830
3837 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3831 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3838 a print after ^D or ^C from the user so that the In[] prompt
3832 a print after ^D or ^C from the user so that the In[] prompt
3839 doesn't over-run the gnuplot one.
3833 doesn't over-run the gnuplot one.
3840
3834
3841 2002-04-29 Fernando Perez <fperez@colorado.edu>
3835 2002-04-29 Fernando Perez <fperez@colorado.edu>
3842
3836
3843 * Released 0.2.10
3837 * Released 0.2.10
3844
3838
3845 * IPython/__release__.py (version): get date dynamically.
3839 * IPython/__release__.py (version): get date dynamically.
3846
3840
3847 * Misc. documentation updates thanks to Arnd's comments. Also ran
3841 * Misc. documentation updates thanks to Arnd's comments. Also ran
3848 a full spellcheck on the manual (hadn't been done in a while).
3842 a full spellcheck on the manual (hadn't been done in a while).
3849
3843
3850 2002-04-27 Fernando Perez <fperez@colorado.edu>
3844 2002-04-27 Fernando Perez <fperez@colorado.edu>
3851
3845
3852 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3846 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3853 starting a log in mid-session would reset the input history list.
3847 starting a log in mid-session would reset the input history list.
3854
3848
3855 2002-04-26 Fernando Perez <fperez@colorado.edu>
3849 2002-04-26 Fernando Perez <fperez@colorado.edu>
3856
3850
3857 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3851 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3858 all files were being included in an update. Now anything in
3852 all files were being included in an update. Now anything in
3859 UserConfig that matches [A-Za-z]*.py will go (this excludes
3853 UserConfig that matches [A-Za-z]*.py will go (this excludes
3860 __init__.py)
3854 __init__.py)
3861
3855
3862 2002-04-25 Fernando Perez <fperez@colorado.edu>
3856 2002-04-25 Fernando Perez <fperez@colorado.edu>
3863
3857
3864 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3858 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3865 to __builtins__ so that any form of embedded or imported code can
3859 to __builtins__ so that any form of embedded or imported code can
3866 test for being inside IPython.
3860 test for being inside IPython.
3867
3861
3868 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3862 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3869 changed to GnuplotMagic because it's now an importable module,
3863 changed to GnuplotMagic because it's now an importable module,
3870 this makes the name follow that of the standard Gnuplot module.
3864 this makes the name follow that of the standard Gnuplot module.
3871 GnuplotMagic can now be loaded at any time in mid-session.
3865 GnuplotMagic can now be loaded at any time in mid-session.
3872
3866
3873 2002-04-24 Fernando Perez <fperez@colorado.edu>
3867 2002-04-24 Fernando Perez <fperez@colorado.edu>
3874
3868
3875 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3869 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3876 the globals (IPython has its own namespace) and the
3870 the globals (IPython has its own namespace) and the
3877 PhysicalQuantity stuff is much better anyway.
3871 PhysicalQuantity stuff is much better anyway.
3878
3872
3879 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3873 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3880 embedding example to standard user directory for
3874 embedding example to standard user directory for
3881 distribution. Also put it in the manual.
3875 distribution. Also put it in the manual.
3882
3876
3883 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3877 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3884 instance as first argument (so it doesn't rely on some obscure
3878 instance as first argument (so it doesn't rely on some obscure
3885 hidden global).
3879 hidden global).
3886
3880
3887 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3881 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3888 delimiters. While it prevents ().TAB from working, it allows
3882 delimiters. While it prevents ().TAB from working, it allows
3889 completions in open (... expressions. This is by far a more common
3883 completions in open (... expressions. This is by far a more common
3890 case.
3884 case.
3891
3885
3892 2002-04-23 Fernando Perez <fperez@colorado.edu>
3886 2002-04-23 Fernando Perez <fperez@colorado.edu>
3893
3887
3894 * IPython/Extensions/InterpreterPasteInput.py: new
3888 * IPython/Extensions/InterpreterPasteInput.py: new
3895 syntax-processing module for pasting lines with >>> or ... at the
3889 syntax-processing module for pasting lines with >>> or ... at the
3896 start.
3890 start.
3897
3891
3898 * IPython/Extensions/PhysicalQ_Interactive.py
3892 * IPython/Extensions/PhysicalQ_Interactive.py
3899 (PhysicalQuantityInteractive.__int__): fixed to work with either
3893 (PhysicalQuantityInteractive.__int__): fixed to work with either
3900 Numeric or math.
3894 Numeric or math.
3901
3895
3902 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3896 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3903 provided profiles. Now we have:
3897 provided profiles. Now we have:
3904 -math -> math module as * and cmath with its own namespace.
3898 -math -> math module as * and cmath with its own namespace.
3905 -numeric -> Numeric as *, plus gnuplot & grace
3899 -numeric -> Numeric as *, plus gnuplot & grace
3906 -physics -> same as before
3900 -physics -> same as before
3907
3901
3908 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3902 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3909 user-defined magics wouldn't be found by @magic if they were
3903 user-defined magics wouldn't be found by @magic if they were
3910 defined as class methods. Also cleaned up the namespace search
3904 defined as class methods. Also cleaned up the namespace search
3911 logic and the string building (to use %s instead of many repeated
3905 logic and the string building (to use %s instead of many repeated
3912 string adds).
3906 string adds).
3913
3907
3914 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3908 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3915 of user-defined magics to operate with class methods (cleaner, in
3909 of user-defined magics to operate with class methods (cleaner, in
3916 line with the gnuplot code).
3910 line with the gnuplot code).
3917
3911
3918 2002-04-22 Fernando Perez <fperez@colorado.edu>
3912 2002-04-22 Fernando Perez <fperez@colorado.edu>
3919
3913
3920 * setup.py: updated dependency list so that manual is updated when
3914 * setup.py: updated dependency list so that manual is updated when
3921 all included files change.
3915 all included files change.
3922
3916
3923 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3917 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3924 the delimiter removal option (the fix is ugly right now).
3918 the delimiter removal option (the fix is ugly right now).
3925
3919
3926 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3920 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3927 all of the math profile (quicker loading, no conflict between
3921 all of the math profile (quicker loading, no conflict between
3928 g-9.8 and g-gnuplot).
3922 g-9.8 and g-gnuplot).
3929
3923
3930 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3924 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3931 name of post-mortem files to IPython_crash_report.txt.
3925 name of post-mortem files to IPython_crash_report.txt.
3932
3926
3933 * Cleanup/update of the docs. Added all the new readline info and
3927 * Cleanup/update of the docs. Added all the new readline info and
3934 formatted all lists as 'real lists'.
3928 formatted all lists as 'real lists'.
3935
3929
3936 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3930 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3937 tab-completion options, since the full readline parse_and_bind is
3931 tab-completion options, since the full readline parse_and_bind is
3938 now accessible.
3932 now accessible.
3939
3933
3940 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3934 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3941 handling of readline options. Now users can specify any string to
3935 handling of readline options. Now users can specify any string to
3942 be passed to parse_and_bind(), as well as the delimiters to be
3936 be passed to parse_and_bind(), as well as the delimiters to be
3943 removed.
3937 removed.
3944 (InteractiveShell.__init__): Added __name__ to the global
3938 (InteractiveShell.__init__): Added __name__ to the global
3945 namespace so that things like Itpl which rely on its existence
3939 namespace so that things like Itpl which rely on its existence
3946 don't crash.
3940 don't crash.
3947 (InteractiveShell._prefilter): Defined the default with a _ so
3941 (InteractiveShell._prefilter): Defined the default with a _ so
3948 that prefilter() is easier to override, while the default one
3942 that prefilter() is easier to override, while the default one
3949 remains available.
3943 remains available.
3950
3944
3951 2002-04-18 Fernando Perez <fperez@colorado.edu>
3945 2002-04-18 Fernando Perez <fperez@colorado.edu>
3952
3946
3953 * Added information about pdb in the docs.
3947 * Added information about pdb in the docs.
3954
3948
3955 2002-04-17 Fernando Perez <fperez@colorado.edu>
3949 2002-04-17 Fernando Perez <fperez@colorado.edu>
3956
3950
3957 * IPython/ipmaker.py (make_IPython): added rc_override option to
3951 * IPython/ipmaker.py (make_IPython): added rc_override option to
3958 allow passing config options at creation time which may override
3952 allow passing config options at creation time which may override
3959 anything set in the config files or command line. This is
3953 anything set in the config files or command line. This is
3960 particularly useful for configuring embedded instances.
3954 particularly useful for configuring embedded instances.
3961
3955
3962 2002-04-15 Fernando Perez <fperez@colorado.edu>
3956 2002-04-15 Fernando Perez <fperez@colorado.edu>
3963
3957
3964 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3958 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3965 crash embedded instances because of the input cache falling out of
3959 crash embedded instances because of the input cache falling out of
3966 sync with the output counter.
3960 sync with the output counter.
3967
3961
3968 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3962 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3969 mode which calls pdb after an uncaught exception in IPython itself.
3963 mode which calls pdb after an uncaught exception in IPython itself.
3970
3964
3971 2002-04-14 Fernando Perez <fperez@colorado.edu>
3965 2002-04-14 Fernando Perez <fperez@colorado.edu>
3972
3966
3973 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3967 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3974 readline, fix it back after each call.
3968 readline, fix it back after each call.
3975
3969
3976 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3970 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3977 method to force all access via __call__(), which guarantees that
3971 method to force all access via __call__(), which guarantees that
3978 traceback references are properly deleted.
3972 traceback references are properly deleted.
3979
3973
3980 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3974 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3981 improve printing when pprint is in use.
3975 improve printing when pprint is in use.
3982
3976
3983 2002-04-13 Fernando Perez <fperez@colorado.edu>
3977 2002-04-13 Fernando Perez <fperez@colorado.edu>
3984
3978
3985 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3979 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3986 exceptions aren't caught anymore. If the user triggers one, he
3980 exceptions aren't caught anymore. If the user triggers one, he
3987 should know why he's doing it and it should go all the way up,
3981 should know why he's doing it and it should go all the way up,
3988 just like any other exception. So now @abort will fully kill the
3982 just like any other exception. So now @abort will fully kill the
3989 embedded interpreter and the embedding code (unless that happens
3983 embedded interpreter and the embedding code (unless that happens
3990 to catch SystemExit).
3984 to catch SystemExit).
3991
3985
3992 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3986 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3993 and a debugger() method to invoke the interactive pdb debugger
3987 and a debugger() method to invoke the interactive pdb debugger
3994 after printing exception information. Also added the corresponding
3988 after printing exception information. Also added the corresponding
3995 -pdb option and @pdb magic to control this feature, and updated
3989 -pdb option and @pdb magic to control this feature, and updated
3996 the docs. After a suggestion from Christopher Hart
3990 the docs. After a suggestion from Christopher Hart
3997 (hart-AT-caltech.edu).
3991 (hart-AT-caltech.edu).
3998
3992
3999 2002-04-12 Fernando Perez <fperez@colorado.edu>
3993 2002-04-12 Fernando Perez <fperez@colorado.edu>
4000
3994
4001 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3995 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4002 the exception handlers defined by the user (not the CrashHandler)
3996 the exception handlers defined by the user (not the CrashHandler)
4003 so that user exceptions don't trigger an ipython bug report.
3997 so that user exceptions don't trigger an ipython bug report.
4004
3998
4005 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3999 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4006 configurable (it should have always been so).
4000 configurable (it should have always been so).
4007
4001
4008 2002-03-26 Fernando Perez <fperez@colorado.edu>
4002 2002-03-26 Fernando Perez <fperez@colorado.edu>
4009
4003
4010 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4004 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4011 and there to fix embedding namespace issues. This should all be
4005 and there to fix embedding namespace issues. This should all be
4012 done in a more elegant way.
4006 done in a more elegant way.
4013
4007
4014 2002-03-25 Fernando Perez <fperez@colorado.edu>
4008 2002-03-25 Fernando Perez <fperez@colorado.edu>
4015
4009
4016 * IPython/genutils.py (get_home_dir): Try to make it work under
4010 * IPython/genutils.py (get_home_dir): Try to make it work under
4017 win9x also.
4011 win9x also.
4018
4012
4019 2002-03-20 Fernando Perez <fperez@colorado.edu>
4013 2002-03-20 Fernando Perez <fperez@colorado.edu>
4020
4014
4021 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4015 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4022 sys.displayhook untouched upon __init__.
4016 sys.displayhook untouched upon __init__.
4023
4017
4024 2002-03-19 Fernando Perez <fperez@colorado.edu>
4018 2002-03-19 Fernando Perez <fperez@colorado.edu>
4025
4019
4026 * Released 0.2.9 (for embedding bug, basically).
4020 * Released 0.2.9 (for embedding bug, basically).
4027
4021
4028 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4022 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4029 exceptions so that enclosing shell's state can be restored.
4023 exceptions so that enclosing shell's state can be restored.
4030
4024
4031 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4025 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4032 naming conventions in the .ipython/ dir.
4026 naming conventions in the .ipython/ dir.
4033
4027
4034 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4028 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4035 from delimiters list so filenames with - in them get expanded.
4029 from delimiters list so filenames with - in them get expanded.
4036
4030
4037 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4031 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4038 sys.displayhook not being properly restored after an embedded call.
4032 sys.displayhook not being properly restored after an embedded call.
4039
4033
4040 2002-03-18 Fernando Perez <fperez@colorado.edu>
4034 2002-03-18 Fernando Perez <fperez@colorado.edu>
4041
4035
4042 * Released 0.2.8
4036 * Released 0.2.8
4043
4037
4044 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4038 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4045 some files weren't being included in a -upgrade.
4039 some files weren't being included in a -upgrade.
4046 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4040 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4047 on' so that the first tab completes.
4041 on' so that the first tab completes.
4048 (InteractiveShell.handle_magic): fixed bug with spaces around
4042 (InteractiveShell.handle_magic): fixed bug with spaces around
4049 quotes breaking many magic commands.
4043 quotes breaking many magic commands.
4050
4044
4051 * setup.py: added note about ignoring the syntax error messages at
4045 * setup.py: added note about ignoring the syntax error messages at
4052 installation.
4046 installation.
4053
4047
4054 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4048 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4055 streamlining the gnuplot interface, now there's only one magic @gp.
4049 streamlining the gnuplot interface, now there's only one magic @gp.
4056
4050
4057 2002-03-17 Fernando Perez <fperez@colorado.edu>
4051 2002-03-17 Fernando Perez <fperez@colorado.edu>
4058
4052
4059 * IPython/UserConfig/magic_gnuplot.py: new name for the
4053 * IPython/UserConfig/magic_gnuplot.py: new name for the
4060 example-magic_pm.py file. Much enhanced system, now with a shell
4054 example-magic_pm.py file. Much enhanced system, now with a shell
4061 for communicating directly with gnuplot, one command at a time.
4055 for communicating directly with gnuplot, one command at a time.
4062
4056
4063 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4057 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4064 setting __name__=='__main__'.
4058 setting __name__=='__main__'.
4065
4059
4066 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4060 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4067 mini-shell for accessing gnuplot from inside ipython. Should
4061 mini-shell for accessing gnuplot from inside ipython. Should
4068 extend it later for grace access too. Inspired by Arnd's
4062 extend it later for grace access too. Inspired by Arnd's
4069 suggestion.
4063 suggestion.
4070
4064
4071 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4065 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4072 calling magic functions with () in their arguments. Thanks to Arnd
4066 calling magic functions with () in their arguments. Thanks to Arnd
4073 Baecker for pointing this to me.
4067 Baecker for pointing this to me.
4074
4068
4075 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4069 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4076 infinitely for integer or complex arrays (only worked with floats).
4070 infinitely for integer or complex arrays (only worked with floats).
4077
4071
4078 2002-03-16 Fernando Perez <fperez@colorado.edu>
4072 2002-03-16 Fernando Perez <fperez@colorado.edu>
4079
4073
4080 * setup.py: Merged setup and setup_windows into a single script
4074 * setup.py: Merged setup and setup_windows into a single script
4081 which properly handles things for windows users.
4075 which properly handles things for windows users.
4082
4076
4083 2002-03-15 Fernando Perez <fperez@colorado.edu>
4077 2002-03-15 Fernando Perez <fperez@colorado.edu>
4084
4078
4085 * Big change to the manual: now the magics are all automatically
4079 * Big change to the manual: now the magics are all automatically
4086 documented. This information is generated from their docstrings
4080 documented. This information is generated from their docstrings
4087 and put in a latex file included by the manual lyx file. This way
4081 and put in a latex file included by the manual lyx file. This way
4088 we get always up to date information for the magics. The manual
4082 we get always up to date information for the magics. The manual
4089 now also has proper version information, also auto-synced.
4083 now also has proper version information, also auto-synced.
4090
4084
4091 For this to work, an undocumented --magic_docstrings option was added.
4085 For this to work, an undocumented --magic_docstrings option was added.
4092
4086
4093 2002-03-13 Fernando Perez <fperez@colorado.edu>
4087 2002-03-13 Fernando Perez <fperez@colorado.edu>
4094
4088
4095 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4089 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4096 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4090 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4097
4091
4098 2002-03-12 Fernando Perez <fperez@colorado.edu>
4092 2002-03-12 Fernando Perez <fperez@colorado.edu>
4099
4093
4100 * IPython/ultraTB.py (TermColors): changed color escapes again to
4094 * IPython/ultraTB.py (TermColors): changed color escapes again to
4101 fix the (old, reintroduced) line-wrapping bug. Basically, if
4095 fix the (old, reintroduced) line-wrapping bug. Basically, if
4102 \001..\002 aren't given in the color escapes, lines get wrapped
4096 \001..\002 aren't given in the color escapes, lines get wrapped
4103 weirdly. But giving those screws up old xterms and emacs terms. So
4097 weirdly. But giving those screws up old xterms and emacs terms. So
4104 I added some logic for emacs terms to be ok, but I can't identify old
4098 I added some logic for emacs terms to be ok, but I can't identify old
4105 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4099 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4106
4100
4107 2002-03-10 Fernando Perez <fperez@colorado.edu>
4101 2002-03-10 Fernando Perez <fperez@colorado.edu>
4108
4102
4109 * IPython/usage.py (__doc__): Various documentation cleanups and
4103 * IPython/usage.py (__doc__): Various documentation cleanups and
4110 updates, both in usage docstrings and in the manual.
4104 updates, both in usage docstrings and in the manual.
4111
4105
4112 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4106 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4113 handling of caching. Set minimum acceptabe value for having a
4107 handling of caching. Set minimum acceptabe value for having a
4114 cache at 20 values.
4108 cache at 20 values.
4115
4109
4116 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4110 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4117 install_first_time function to a method, renamed it and added an
4111 install_first_time function to a method, renamed it and added an
4118 'upgrade' mode. Now people can update their config directory with
4112 'upgrade' mode. Now people can update their config directory with
4119 a simple command line switch (-upgrade, also new).
4113 a simple command line switch (-upgrade, also new).
4120
4114
4121 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4115 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4122 @file (convenient for automagic users under Python >= 2.2).
4116 @file (convenient for automagic users under Python >= 2.2).
4123 Removed @files (it seemed more like a plural than an abbrev. of
4117 Removed @files (it seemed more like a plural than an abbrev. of
4124 'file show').
4118 'file show').
4125
4119
4126 * IPython/iplib.py (install_first_time): Fixed crash if there were
4120 * IPython/iplib.py (install_first_time): Fixed crash if there were
4127 backup files ('~') in .ipython/ install directory.
4121 backup files ('~') in .ipython/ install directory.
4128
4122
4129 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4123 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4130 system. Things look fine, but these changes are fairly
4124 system. Things look fine, but these changes are fairly
4131 intrusive. Test them for a few days.
4125 intrusive. Test them for a few days.
4132
4126
4133 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4127 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4134 the prompts system. Now all in/out prompt strings are user
4128 the prompts system. Now all in/out prompt strings are user
4135 controllable. This is particularly useful for embedding, as one
4129 controllable. This is particularly useful for embedding, as one
4136 can tag embedded instances with particular prompts.
4130 can tag embedded instances with particular prompts.
4137
4131
4138 Also removed global use of sys.ps1/2, which now allows nested
4132 Also removed global use of sys.ps1/2, which now allows nested
4139 embeddings without any problems. Added command-line options for
4133 embeddings without any problems. Added command-line options for
4140 the prompt strings.
4134 the prompt strings.
4141
4135
4142 2002-03-08 Fernando Perez <fperez@colorado.edu>
4136 2002-03-08 Fernando Perez <fperez@colorado.edu>
4143
4137
4144 * IPython/UserConfig/example-embed-short.py (ipshell): added
4138 * IPython/UserConfig/example-embed-short.py (ipshell): added
4145 example file with the bare minimum code for embedding.
4139 example file with the bare minimum code for embedding.
4146
4140
4147 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4141 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4148 functionality for the embeddable shell to be activated/deactivated
4142 functionality for the embeddable shell to be activated/deactivated
4149 either globally or at each call.
4143 either globally or at each call.
4150
4144
4151 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4145 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4152 rewriting the prompt with '--->' for auto-inputs with proper
4146 rewriting the prompt with '--->' for auto-inputs with proper
4153 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4147 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4154 this is handled by the prompts class itself, as it should.
4148 this is handled by the prompts class itself, as it should.
4155
4149
4156 2002-03-05 Fernando Perez <fperez@colorado.edu>
4150 2002-03-05 Fernando Perez <fperez@colorado.edu>
4157
4151
4158 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4152 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4159 @logstart to avoid name clashes with the math log function.
4153 @logstart to avoid name clashes with the math log function.
4160
4154
4161 * Big updates to X/Emacs section of the manual.
4155 * Big updates to X/Emacs section of the manual.
4162
4156
4163 * Removed ipython_emacs. Milan explained to me how to pass
4157 * Removed ipython_emacs. Milan explained to me how to pass
4164 arguments to ipython through Emacs. Some day I'm going to end up
4158 arguments to ipython through Emacs. Some day I'm going to end up
4165 learning some lisp...
4159 learning some lisp...
4166
4160
4167 2002-03-04 Fernando Perez <fperez@colorado.edu>
4161 2002-03-04 Fernando Perez <fperez@colorado.edu>
4168
4162
4169 * IPython/ipython_emacs: Created script to be used as the
4163 * IPython/ipython_emacs: Created script to be used as the
4170 py-python-command Emacs variable so we can pass IPython
4164 py-python-command Emacs variable so we can pass IPython
4171 parameters. I can't figure out how to tell Emacs directly to pass
4165 parameters. I can't figure out how to tell Emacs directly to pass
4172 parameters to IPython, so a dummy shell script will do it.
4166 parameters to IPython, so a dummy shell script will do it.
4173
4167
4174 Other enhancements made for things to work better under Emacs'
4168 Other enhancements made for things to work better under Emacs'
4175 various types of terminals. Many thanks to Milan Zamazal
4169 various types of terminals. Many thanks to Milan Zamazal
4176 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4170 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4177
4171
4178 2002-03-01 Fernando Perez <fperez@colorado.edu>
4172 2002-03-01 Fernando Perez <fperez@colorado.edu>
4179
4173
4180 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4174 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4181 that loading of readline is now optional. This gives better
4175 that loading of readline is now optional. This gives better
4182 control to emacs users.
4176 control to emacs users.
4183
4177
4184 * IPython/ultraTB.py (__date__): Modified color escape sequences
4178 * IPython/ultraTB.py (__date__): Modified color escape sequences
4185 and now things work fine under xterm and in Emacs' term buffers
4179 and now things work fine under xterm and in Emacs' term buffers
4186 (though not shell ones). Well, in emacs you get colors, but all
4180 (though not shell ones). Well, in emacs you get colors, but all
4187 seem to be 'light' colors (no difference between dark and light
4181 seem to be 'light' colors (no difference between dark and light
4188 ones). But the garbage chars are gone, and also in xterms. It
4182 ones). But the garbage chars are gone, and also in xterms. It
4189 seems that now I'm using 'cleaner' ansi sequences.
4183 seems that now I'm using 'cleaner' ansi sequences.
4190
4184
4191 2002-02-21 Fernando Perez <fperez@colorado.edu>
4185 2002-02-21 Fernando Perez <fperez@colorado.edu>
4192
4186
4193 * Released 0.2.7 (mainly to publish the scoping fix).
4187 * Released 0.2.7 (mainly to publish the scoping fix).
4194
4188
4195 * IPython/Logger.py (Logger.logstate): added. A corresponding
4189 * IPython/Logger.py (Logger.logstate): added. A corresponding
4196 @logstate magic was created.
4190 @logstate magic was created.
4197
4191
4198 * IPython/Magic.py: fixed nested scoping problem under Python
4192 * IPython/Magic.py: fixed nested scoping problem under Python
4199 2.1.x (automagic wasn't working).
4193 2.1.x (automagic wasn't working).
4200
4194
4201 2002-02-20 Fernando Perez <fperez@colorado.edu>
4195 2002-02-20 Fernando Perez <fperez@colorado.edu>
4202
4196
4203 * Released 0.2.6.
4197 * Released 0.2.6.
4204
4198
4205 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4199 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4206 option so that logs can come out without any headers at all.
4200 option so that logs can come out without any headers at all.
4207
4201
4208 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4202 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4209 SciPy.
4203 SciPy.
4210
4204
4211 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4205 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4212 that embedded IPython calls don't require vars() to be explicitly
4206 that embedded IPython calls don't require vars() to be explicitly
4213 passed. Now they are extracted from the caller's frame (code
4207 passed. Now they are extracted from the caller's frame (code
4214 snatched from Eric Jones' weave). Added better documentation to
4208 snatched from Eric Jones' weave). Added better documentation to
4215 the section on embedding and the example file.
4209 the section on embedding and the example file.
4216
4210
4217 * IPython/genutils.py (page): Changed so that under emacs, it just
4211 * IPython/genutils.py (page): Changed so that under emacs, it just
4218 prints the string. You can then page up and down in the emacs
4212 prints the string. You can then page up and down in the emacs
4219 buffer itself. This is how the builtin help() works.
4213 buffer itself. This is how the builtin help() works.
4220
4214
4221 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4215 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4222 macro scoping: macros need to be executed in the user's namespace
4216 macro scoping: macros need to be executed in the user's namespace
4223 to work as if they had been typed by the user.
4217 to work as if they had been typed by the user.
4224
4218
4225 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4219 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4226 execute automatically (no need to type 'exec...'). They then
4220 execute automatically (no need to type 'exec...'). They then
4227 behave like 'true macros'. The printing system was also modified
4221 behave like 'true macros'. The printing system was also modified
4228 for this to work.
4222 for this to work.
4229
4223
4230 2002-02-19 Fernando Perez <fperez@colorado.edu>
4224 2002-02-19 Fernando Perez <fperez@colorado.edu>
4231
4225
4232 * IPython/genutils.py (page_file): new function for paging files
4226 * IPython/genutils.py (page_file): new function for paging files
4233 in an OS-independent way. Also necessary for file viewing to work
4227 in an OS-independent way. Also necessary for file viewing to work
4234 well inside Emacs buffers.
4228 well inside Emacs buffers.
4235 (page): Added checks for being in an emacs buffer.
4229 (page): Added checks for being in an emacs buffer.
4236 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4230 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4237 same bug in iplib.
4231 same bug in iplib.
4238
4232
4239 2002-02-18 Fernando Perez <fperez@colorado.edu>
4233 2002-02-18 Fernando Perez <fperez@colorado.edu>
4240
4234
4241 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4235 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4242 of readline so that IPython can work inside an Emacs buffer.
4236 of readline so that IPython can work inside an Emacs buffer.
4243
4237
4244 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4238 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4245 method signatures (they weren't really bugs, but it looks cleaner
4239 method signatures (they weren't really bugs, but it looks cleaner
4246 and keeps PyChecker happy).
4240 and keeps PyChecker happy).
4247
4241
4248 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4242 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4249 for implementing various user-defined hooks. Currently only
4243 for implementing various user-defined hooks. Currently only
4250 display is done.
4244 display is done.
4251
4245
4252 * IPython/Prompts.py (CachedOutput._display): changed display
4246 * IPython/Prompts.py (CachedOutput._display): changed display
4253 functions so that they can be dynamically changed by users easily.
4247 functions so that they can be dynamically changed by users easily.
4254
4248
4255 * IPython/Extensions/numeric_formats.py (num_display): added an
4249 * IPython/Extensions/numeric_formats.py (num_display): added an
4256 extension for printing NumPy arrays in flexible manners. It
4250 extension for printing NumPy arrays in flexible manners. It
4257 doesn't do anything yet, but all the structure is in
4251 doesn't do anything yet, but all the structure is in
4258 place. Ultimately the plan is to implement output format control
4252 place. Ultimately the plan is to implement output format control
4259 like in Octave.
4253 like in Octave.
4260
4254
4261 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4255 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4262 methods are found at run-time by all the automatic machinery.
4256 methods are found at run-time by all the automatic machinery.
4263
4257
4264 2002-02-17 Fernando Perez <fperez@colorado.edu>
4258 2002-02-17 Fernando Perez <fperez@colorado.edu>
4265
4259
4266 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4260 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4267 whole file a little.
4261 whole file a little.
4268
4262
4269 * ToDo: closed this document. Now there's a new_design.lyx
4263 * ToDo: closed this document. Now there's a new_design.lyx
4270 document for all new ideas. Added making a pdf of it for the
4264 document for all new ideas. Added making a pdf of it for the
4271 end-user distro.
4265 end-user distro.
4272
4266
4273 * IPython/Logger.py (Logger.switch_log): Created this to replace
4267 * IPython/Logger.py (Logger.switch_log): Created this to replace
4274 logon() and logoff(). It also fixes a nasty crash reported by
4268 logon() and logoff(). It also fixes a nasty crash reported by
4275 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4269 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4276
4270
4277 * IPython/iplib.py (complete): got auto-completion to work with
4271 * IPython/iplib.py (complete): got auto-completion to work with
4278 automagic (I had wanted this for a long time).
4272 automagic (I had wanted this for a long time).
4279
4273
4280 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4274 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4281 to @file, since file() is now a builtin and clashes with automagic
4275 to @file, since file() is now a builtin and clashes with automagic
4282 for @file.
4276 for @file.
4283
4277
4284 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4278 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4285 of this was previously in iplib, which had grown to more than 2000
4279 of this was previously in iplib, which had grown to more than 2000
4286 lines, way too long. No new functionality, but it makes managing
4280 lines, way too long. No new functionality, but it makes managing
4287 the code a bit easier.
4281 the code a bit easier.
4288
4282
4289 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4283 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4290 information to crash reports.
4284 information to crash reports.
4291
4285
4292 2002-02-12 Fernando Perez <fperez@colorado.edu>
4286 2002-02-12 Fernando Perez <fperez@colorado.edu>
4293
4287
4294 * Released 0.2.5.
4288 * Released 0.2.5.
4295
4289
4296 2002-02-11 Fernando Perez <fperez@colorado.edu>
4290 2002-02-11 Fernando Perez <fperez@colorado.edu>
4297
4291
4298 * Wrote a relatively complete Windows installer. It puts
4292 * Wrote a relatively complete Windows installer. It puts
4299 everything in place, creates Start Menu entries and fixes the
4293 everything in place, creates Start Menu entries and fixes the
4300 color issues. Nothing fancy, but it works.
4294 color issues. Nothing fancy, but it works.
4301
4295
4302 2002-02-10 Fernando Perez <fperez@colorado.edu>
4296 2002-02-10 Fernando Perez <fperez@colorado.edu>
4303
4297
4304 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4298 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4305 os.path.expanduser() call so that we can type @run ~/myfile.py and
4299 os.path.expanduser() call so that we can type @run ~/myfile.py and
4306 have thigs work as expected.
4300 have thigs work as expected.
4307
4301
4308 * IPython/genutils.py (page): fixed exception handling so things
4302 * IPython/genutils.py (page): fixed exception handling so things
4309 work both in Unix and Windows correctly. Quitting a pager triggers
4303 work both in Unix and Windows correctly. Quitting a pager triggers
4310 an IOError/broken pipe in Unix, and in windows not finding a pager
4304 an IOError/broken pipe in Unix, and in windows not finding a pager
4311 is also an IOError, so I had to actually look at the return value
4305 is also an IOError, so I had to actually look at the return value
4312 of the exception, not just the exception itself. Should be ok now.
4306 of the exception, not just the exception itself. Should be ok now.
4313
4307
4314 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4308 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4315 modified to allow case-insensitive color scheme changes.
4309 modified to allow case-insensitive color scheme changes.
4316
4310
4317 2002-02-09 Fernando Perez <fperez@colorado.edu>
4311 2002-02-09 Fernando Perez <fperez@colorado.edu>
4318
4312
4319 * IPython/genutils.py (native_line_ends): new function to leave
4313 * IPython/genutils.py (native_line_ends): new function to leave
4320 user config files with os-native line-endings.
4314 user config files with os-native line-endings.
4321
4315
4322 * README and manual updates.
4316 * README and manual updates.
4323
4317
4324 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4318 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4325 instead of StringType to catch Unicode strings.
4319 instead of StringType to catch Unicode strings.
4326
4320
4327 * IPython/genutils.py (filefind): fixed bug for paths with
4321 * IPython/genutils.py (filefind): fixed bug for paths with
4328 embedded spaces (very common in Windows).
4322 embedded spaces (very common in Windows).
4329
4323
4330 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4324 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4331 files under Windows, so that they get automatically associated
4325 files under Windows, so that they get automatically associated
4332 with a text editor. Windows makes it a pain to handle
4326 with a text editor. Windows makes it a pain to handle
4333 extension-less files.
4327 extension-less files.
4334
4328
4335 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4329 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4336 warning about readline only occur for Posix. In Windows there's no
4330 warning about readline only occur for Posix. In Windows there's no
4337 way to get readline, so why bother with the warning.
4331 way to get readline, so why bother with the warning.
4338
4332
4339 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4333 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4340 for __str__ instead of dir(self), since dir() changed in 2.2.
4334 for __str__ instead of dir(self), since dir() changed in 2.2.
4341
4335
4342 * Ported to Windows! Tested on XP, I suspect it should work fine
4336 * Ported to Windows! Tested on XP, I suspect it should work fine
4343 on NT/2000, but I don't think it will work on 98 et al. That
4337 on NT/2000, but I don't think it will work on 98 et al. That
4344 series of Windows is such a piece of junk anyway that I won't try
4338 series of Windows is such a piece of junk anyway that I won't try
4345 porting it there. The XP port was straightforward, showed a few
4339 porting it there. The XP port was straightforward, showed a few
4346 bugs here and there (fixed all), in particular some string
4340 bugs here and there (fixed all), in particular some string
4347 handling stuff which required considering Unicode strings (which
4341 handling stuff which required considering Unicode strings (which
4348 Windows uses). This is good, but hasn't been too tested :) No
4342 Windows uses). This is good, but hasn't been too tested :) No
4349 fancy installer yet, I'll put a note in the manual so people at
4343 fancy installer yet, I'll put a note in the manual so people at
4350 least make manually a shortcut.
4344 least make manually a shortcut.
4351
4345
4352 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4346 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4353 into a single one, "colors". This now controls both prompt and
4347 into a single one, "colors". This now controls both prompt and
4354 exception color schemes, and can be changed both at startup
4348 exception color schemes, and can be changed both at startup
4355 (either via command-line switches or via ipythonrc files) and at
4349 (either via command-line switches or via ipythonrc files) and at
4356 runtime, with @colors.
4350 runtime, with @colors.
4357 (Magic.magic_run): renamed @prun to @run and removed the old
4351 (Magic.magic_run): renamed @prun to @run and removed the old
4358 @run. The two were too similar to warrant keeping both.
4352 @run. The two were too similar to warrant keeping both.
4359
4353
4360 2002-02-03 Fernando Perez <fperez@colorado.edu>
4354 2002-02-03 Fernando Perez <fperez@colorado.edu>
4361
4355
4362 * IPython/iplib.py (install_first_time): Added comment on how to
4356 * IPython/iplib.py (install_first_time): Added comment on how to
4363 configure the color options for first-time users. Put a <return>
4357 configure the color options for first-time users. Put a <return>
4364 request at the end so that small-terminal users get a chance to
4358 request at the end so that small-terminal users get a chance to
4365 read the startup info.
4359 read the startup info.
4366
4360
4367 2002-01-23 Fernando Perez <fperez@colorado.edu>
4361 2002-01-23 Fernando Perez <fperez@colorado.edu>
4368
4362
4369 * IPython/iplib.py (CachedOutput.update): Changed output memory
4363 * IPython/iplib.py (CachedOutput.update): Changed output memory
4370 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4364 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4371 input history we still use _i. Did this b/c these variable are
4365 input history we still use _i. Did this b/c these variable are
4372 very commonly used in interactive work, so the less we need to
4366 very commonly used in interactive work, so the less we need to
4373 type the better off we are.
4367 type the better off we are.
4374 (Magic.magic_prun): updated @prun to better handle the namespaces
4368 (Magic.magic_prun): updated @prun to better handle the namespaces
4375 the file will run in, including a fix for __name__ not being set
4369 the file will run in, including a fix for __name__ not being set
4376 before.
4370 before.
4377
4371
4378 2002-01-20 Fernando Perez <fperez@colorado.edu>
4372 2002-01-20 Fernando Perez <fperez@colorado.edu>
4379
4373
4380 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4374 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4381 extra garbage for Python 2.2. Need to look more carefully into
4375 extra garbage for Python 2.2. Need to look more carefully into
4382 this later.
4376 this later.
4383
4377
4384 2002-01-19 Fernando Perez <fperez@colorado.edu>
4378 2002-01-19 Fernando Perez <fperez@colorado.edu>
4385
4379
4386 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4380 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4387 display SyntaxError exceptions properly formatted when they occur
4381 display SyntaxError exceptions properly formatted when they occur
4388 (they can be triggered by imported code).
4382 (they can be triggered by imported code).
4389
4383
4390 2002-01-18 Fernando Perez <fperez@colorado.edu>
4384 2002-01-18 Fernando Perez <fperez@colorado.edu>
4391
4385
4392 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4386 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4393 SyntaxError exceptions are reported nicely formatted, instead of
4387 SyntaxError exceptions are reported nicely formatted, instead of
4394 spitting out only offset information as before.
4388 spitting out only offset information as before.
4395 (Magic.magic_prun): Added the @prun function for executing
4389 (Magic.magic_prun): Added the @prun function for executing
4396 programs with command line args inside IPython.
4390 programs with command line args inside IPython.
4397
4391
4398 2002-01-16 Fernando Perez <fperez@colorado.edu>
4392 2002-01-16 Fernando Perez <fperez@colorado.edu>
4399
4393
4400 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4394 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4401 to *not* include the last item given in a range. This brings their
4395 to *not* include the last item given in a range. This brings their
4402 behavior in line with Python's slicing:
4396 behavior in line with Python's slicing:
4403 a[n1:n2] -> a[n1]...a[n2-1]
4397 a[n1:n2] -> a[n1]...a[n2-1]
4404 It may be a bit less convenient, but I prefer to stick to Python's
4398 It may be a bit less convenient, but I prefer to stick to Python's
4405 conventions *everywhere*, so users never have to wonder.
4399 conventions *everywhere*, so users never have to wonder.
4406 (Magic.magic_macro): Added @macro function to ease the creation of
4400 (Magic.magic_macro): Added @macro function to ease the creation of
4407 macros.
4401 macros.
4408
4402
4409 2002-01-05 Fernando Perez <fperez@colorado.edu>
4403 2002-01-05 Fernando Perez <fperez@colorado.edu>
4410
4404
4411 * Released 0.2.4.
4405 * Released 0.2.4.
4412
4406
4413 * IPython/iplib.py (Magic.magic_pdef):
4407 * IPython/iplib.py (Magic.magic_pdef):
4414 (InteractiveShell.safe_execfile): report magic lines and error
4408 (InteractiveShell.safe_execfile): report magic lines and error
4415 lines without line numbers so one can easily copy/paste them for
4409 lines without line numbers so one can easily copy/paste them for
4416 re-execution.
4410 re-execution.
4417
4411
4418 * Updated manual with recent changes.
4412 * Updated manual with recent changes.
4419
4413
4420 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4414 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4421 docstring printing when class? is called. Very handy for knowing
4415 docstring printing when class? is called. Very handy for knowing
4422 how to create class instances (as long as __init__ is well
4416 how to create class instances (as long as __init__ is well
4423 documented, of course :)
4417 documented, of course :)
4424 (Magic.magic_doc): print both class and constructor docstrings.
4418 (Magic.magic_doc): print both class and constructor docstrings.
4425 (Magic.magic_pdef): give constructor info if passed a class and
4419 (Magic.magic_pdef): give constructor info if passed a class and
4426 __call__ info for callable object instances.
4420 __call__ info for callable object instances.
4427
4421
4428 2002-01-04 Fernando Perez <fperez@colorado.edu>
4422 2002-01-04 Fernando Perez <fperez@colorado.edu>
4429
4423
4430 * Made deep_reload() off by default. It doesn't always work
4424 * Made deep_reload() off by default. It doesn't always work
4431 exactly as intended, so it's probably safer to have it off. It's
4425 exactly as intended, so it's probably safer to have it off. It's
4432 still available as dreload() anyway, so nothing is lost.
4426 still available as dreload() anyway, so nothing is lost.
4433
4427
4434 2002-01-02 Fernando Perez <fperez@colorado.edu>
4428 2002-01-02 Fernando Perez <fperez@colorado.edu>
4435
4429
4436 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4430 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4437 so I wanted an updated release).
4431 so I wanted an updated release).
4438
4432
4439 2001-12-27 Fernando Perez <fperez@colorado.edu>
4433 2001-12-27 Fernando Perez <fperez@colorado.edu>
4440
4434
4441 * IPython/iplib.py (InteractiveShell.interact): Added the original
4435 * IPython/iplib.py (InteractiveShell.interact): Added the original
4442 code from 'code.py' for this module in order to change the
4436 code from 'code.py' for this module in order to change the
4443 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4437 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4444 the history cache would break when the user hit Ctrl-C, and
4438 the history cache would break when the user hit Ctrl-C, and
4445 interact() offers no way to add any hooks to it.
4439 interact() offers no way to add any hooks to it.
4446
4440
4447 2001-12-23 Fernando Perez <fperez@colorado.edu>
4441 2001-12-23 Fernando Perez <fperez@colorado.edu>
4448
4442
4449 * setup.py: added check for 'MANIFEST' before trying to remove
4443 * setup.py: added check for 'MANIFEST' before trying to remove
4450 it. Thanks to Sean Reifschneider.
4444 it. Thanks to Sean Reifschneider.
4451
4445
4452 2001-12-22 Fernando Perez <fperez@colorado.edu>
4446 2001-12-22 Fernando Perez <fperez@colorado.edu>
4453
4447
4454 * Released 0.2.2.
4448 * Released 0.2.2.
4455
4449
4456 * Finished (reasonably) writing the manual. Later will add the
4450 * Finished (reasonably) writing the manual. Later will add the
4457 python-standard navigation stylesheets, but for the time being
4451 python-standard navigation stylesheets, but for the time being
4458 it's fairly complete. Distribution will include html and pdf
4452 it's fairly complete. Distribution will include html and pdf
4459 versions.
4453 versions.
4460
4454
4461 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4455 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4462 (MayaVi author).
4456 (MayaVi author).
4463
4457
4464 2001-12-21 Fernando Perez <fperez@colorado.edu>
4458 2001-12-21 Fernando Perez <fperez@colorado.edu>
4465
4459
4466 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4460 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4467 good public release, I think (with the manual and the distutils
4461 good public release, I think (with the manual and the distutils
4468 installer). The manual can use some work, but that can go
4462 installer). The manual can use some work, but that can go
4469 slowly. Otherwise I think it's quite nice for end users. Next
4463 slowly. Otherwise I think it's quite nice for end users. Next
4470 summer, rewrite the guts of it...
4464 summer, rewrite the guts of it...
4471
4465
4472 * Changed format of ipythonrc files to use whitespace as the
4466 * Changed format of ipythonrc files to use whitespace as the
4473 separator instead of an explicit '='. Cleaner.
4467 separator instead of an explicit '='. Cleaner.
4474
4468
4475 2001-12-20 Fernando Perez <fperez@colorado.edu>
4469 2001-12-20 Fernando Perez <fperez@colorado.edu>
4476
4470
4477 * Started a manual in LyX. For now it's just a quick merge of the
4471 * Started a manual in LyX. For now it's just a quick merge of the
4478 various internal docstrings and READMEs. Later it may grow into a
4472 various internal docstrings and READMEs. Later it may grow into a
4479 nice, full-blown manual.
4473 nice, full-blown manual.
4480
4474
4481 * Set up a distutils based installer. Installation should now be
4475 * Set up a distutils based installer. Installation should now be
4482 trivially simple for end-users.
4476 trivially simple for end-users.
4483
4477
4484 2001-12-11 Fernando Perez <fperez@colorado.edu>
4478 2001-12-11 Fernando Perez <fperez@colorado.edu>
4485
4479
4486 * Released 0.2.0. First public release, announced it at
4480 * Released 0.2.0. First public release, announced it at
4487 comp.lang.python. From now on, just bugfixes...
4481 comp.lang.python. From now on, just bugfixes...
4488
4482
4489 * Went through all the files, set copyright/license notices and
4483 * Went through all the files, set copyright/license notices and
4490 cleaned up things. Ready for release.
4484 cleaned up things. Ready for release.
4491
4485
4492 2001-12-10 Fernando Perez <fperez@colorado.edu>
4486 2001-12-10 Fernando Perez <fperez@colorado.edu>
4493
4487
4494 * Changed the first-time installer not to use tarfiles. It's more
4488 * Changed the first-time installer not to use tarfiles. It's more
4495 robust now and less unix-dependent. Also makes it easier for
4489 robust now and less unix-dependent. Also makes it easier for
4496 people to later upgrade versions.
4490 people to later upgrade versions.
4497
4491
4498 * Changed @exit to @abort to reflect the fact that it's pretty
4492 * Changed @exit to @abort to reflect the fact that it's pretty
4499 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4493 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4500 becomes significant only when IPyhton is embedded: in that case,
4494 becomes significant only when IPyhton is embedded: in that case,
4501 C-D closes IPython only, but @abort kills the enclosing program
4495 C-D closes IPython only, but @abort kills the enclosing program
4502 too (unless it had called IPython inside a try catching
4496 too (unless it had called IPython inside a try catching
4503 SystemExit).
4497 SystemExit).
4504
4498
4505 * Created Shell module which exposes the actuall IPython Shell
4499 * Created Shell module which exposes the actuall IPython Shell
4506 classes, currently the normal and the embeddable one. This at
4500 classes, currently the normal and the embeddable one. This at
4507 least offers a stable interface we won't need to change when
4501 least offers a stable interface we won't need to change when
4508 (later) the internals are rewritten. That rewrite will be confined
4502 (later) the internals are rewritten. That rewrite will be confined
4509 to iplib and ipmaker, but the Shell interface should remain as is.
4503 to iplib and ipmaker, but the Shell interface should remain as is.
4510
4504
4511 * Added embed module which offers an embeddable IPShell object,
4505 * Added embed module which offers an embeddable IPShell object,
4512 useful to fire up IPython *inside* a running program. Great for
4506 useful to fire up IPython *inside* a running program. Great for
4513 debugging or dynamical data analysis.
4507 debugging or dynamical data analysis.
4514
4508
4515 2001-12-08 Fernando Perez <fperez@colorado.edu>
4509 2001-12-08 Fernando Perez <fperez@colorado.edu>
4516
4510
4517 * Fixed small bug preventing seeing info from methods of defined
4511 * Fixed small bug preventing seeing info from methods of defined
4518 objects (incorrect namespace in _ofind()).
4512 objects (incorrect namespace in _ofind()).
4519
4513
4520 * Documentation cleanup. Moved the main usage docstrings to a
4514 * Documentation cleanup. Moved the main usage docstrings to a
4521 separate file, usage.py (cleaner to maintain, and hopefully in the
4515 separate file, usage.py (cleaner to maintain, and hopefully in the
4522 future some perlpod-like way of producing interactive, man and
4516 future some perlpod-like way of producing interactive, man and
4523 html docs out of it will be found).
4517 html docs out of it will be found).
4524
4518
4525 * Added @profile to see your profile at any time.
4519 * Added @profile to see your profile at any time.
4526
4520
4527 * Added @p as an alias for 'print'. It's especially convenient if
4521 * Added @p as an alias for 'print'. It's especially convenient if
4528 using automagic ('p x' prints x).
4522 using automagic ('p x' prints x).
4529
4523
4530 * Small cleanups and fixes after a pychecker run.
4524 * Small cleanups and fixes after a pychecker run.
4531
4525
4532 * Changed the @cd command to handle @cd - and @cd -<n> for
4526 * Changed the @cd command to handle @cd - and @cd -<n> for
4533 visiting any directory in _dh.
4527 visiting any directory in _dh.
4534
4528
4535 * Introduced _dh, a history of visited directories. @dhist prints
4529 * Introduced _dh, a history of visited directories. @dhist prints
4536 it out with numbers.
4530 it out with numbers.
4537
4531
4538 2001-12-07 Fernando Perez <fperez@colorado.edu>
4532 2001-12-07 Fernando Perez <fperez@colorado.edu>
4539
4533
4540 * Released 0.1.22
4534 * Released 0.1.22
4541
4535
4542 * Made initialization a bit more robust against invalid color
4536 * Made initialization a bit more robust against invalid color
4543 options in user input (exit, not traceback-crash).
4537 options in user input (exit, not traceback-crash).
4544
4538
4545 * Changed the bug crash reporter to write the report only in the
4539 * Changed the bug crash reporter to write the report only in the
4546 user's .ipython directory. That way IPython won't litter people's
4540 user's .ipython directory. That way IPython won't litter people's
4547 hard disks with crash files all over the place. Also print on
4541 hard disks with crash files all over the place. Also print on
4548 screen the necessary mail command.
4542 screen the necessary mail command.
4549
4543
4550 * With the new ultraTB, implemented LightBG color scheme for light
4544 * With the new ultraTB, implemented LightBG color scheme for light
4551 background terminals. A lot of people like white backgrounds, so I
4545 background terminals. A lot of people like white backgrounds, so I
4552 guess we should at least give them something readable.
4546 guess we should at least give them something readable.
4553
4547
4554 2001-12-06 Fernando Perez <fperez@colorado.edu>
4548 2001-12-06 Fernando Perez <fperez@colorado.edu>
4555
4549
4556 * Modified the structure of ultraTB. Now there's a proper class
4550 * Modified the structure of ultraTB. Now there's a proper class
4557 for tables of color schemes which allow adding schemes easily and
4551 for tables of color schemes which allow adding schemes easily and
4558 switching the active scheme without creating a new instance every
4552 switching the active scheme without creating a new instance every
4559 time (which was ridiculous). The syntax for creating new schemes
4553 time (which was ridiculous). The syntax for creating new schemes
4560 is also cleaner. I think ultraTB is finally done, with a clean
4554 is also cleaner. I think ultraTB is finally done, with a clean
4561 class structure. Names are also much cleaner (now there's proper
4555 class structure. Names are also much cleaner (now there's proper
4562 color tables, no need for every variable to also have 'color' in
4556 color tables, no need for every variable to also have 'color' in
4563 its name).
4557 its name).
4564
4558
4565 * Broke down genutils into separate files. Now genutils only
4559 * Broke down genutils into separate files. Now genutils only
4566 contains utility functions, and classes have been moved to their
4560 contains utility functions, and classes have been moved to their
4567 own files (they had enough independent functionality to warrant
4561 own files (they had enough independent functionality to warrant
4568 it): ConfigLoader, OutputTrap, Struct.
4562 it): ConfigLoader, OutputTrap, Struct.
4569
4563
4570 2001-12-05 Fernando Perez <fperez@colorado.edu>
4564 2001-12-05 Fernando Perez <fperez@colorado.edu>
4571
4565
4572 * IPython turns 21! Released version 0.1.21, as a candidate for
4566 * IPython turns 21! Released version 0.1.21, as a candidate for
4573 public consumption. If all goes well, release in a few days.
4567 public consumption. If all goes well, release in a few days.
4574
4568
4575 * Fixed path bug (files in Extensions/ directory wouldn't be found
4569 * Fixed path bug (files in Extensions/ directory wouldn't be found
4576 unless IPython/ was explicitly in sys.path).
4570 unless IPython/ was explicitly in sys.path).
4577
4571
4578 * Extended the FlexCompleter class as MagicCompleter to allow
4572 * Extended the FlexCompleter class as MagicCompleter to allow
4579 completion of @-starting lines.
4573 completion of @-starting lines.
4580
4574
4581 * Created __release__.py file as a central repository for release
4575 * Created __release__.py file as a central repository for release
4582 info that other files can read from.
4576 info that other files can read from.
4583
4577
4584 * Fixed small bug in logging: when logging was turned on in
4578 * Fixed small bug in logging: when logging was turned on in
4585 mid-session, old lines with special meanings (!@?) were being
4579 mid-session, old lines with special meanings (!@?) were being
4586 logged without the prepended comment, which is necessary since
4580 logged without the prepended comment, which is necessary since
4587 they are not truly valid python syntax. This should make session
4581 they are not truly valid python syntax. This should make session
4588 restores produce less errors.
4582 restores produce less errors.
4589
4583
4590 * The namespace cleanup forced me to make a FlexCompleter class
4584 * The namespace cleanup forced me to make a FlexCompleter class
4591 which is nothing but a ripoff of rlcompleter, but with selectable
4585 which is nothing but a ripoff of rlcompleter, but with selectable
4592 namespace (rlcompleter only works in __main__.__dict__). I'll try
4586 namespace (rlcompleter only works in __main__.__dict__). I'll try
4593 to submit a note to the authors to see if this change can be
4587 to submit a note to the authors to see if this change can be
4594 incorporated in future rlcompleter releases (Dec.6: done)
4588 incorporated in future rlcompleter releases (Dec.6: done)
4595
4589
4596 * More fixes to namespace handling. It was a mess! Now all
4590 * More fixes to namespace handling. It was a mess! Now all
4597 explicit references to __main__.__dict__ are gone (except when
4591 explicit references to __main__.__dict__ are gone (except when
4598 really needed) and everything is handled through the namespace
4592 really needed) and everything is handled through the namespace
4599 dicts in the IPython instance. We seem to be getting somewhere
4593 dicts in the IPython instance. We seem to be getting somewhere
4600 with this, finally...
4594 with this, finally...
4601
4595
4602 * Small documentation updates.
4596 * Small documentation updates.
4603
4597
4604 * Created the Extensions directory under IPython (with an
4598 * Created the Extensions directory under IPython (with an
4605 __init__.py). Put the PhysicalQ stuff there. This directory should
4599 __init__.py). Put the PhysicalQ stuff there. This directory should
4606 be used for all special-purpose extensions.
4600 be used for all special-purpose extensions.
4607
4601
4608 * File renaming:
4602 * File renaming:
4609 ipythonlib --> ipmaker
4603 ipythonlib --> ipmaker
4610 ipplib --> iplib
4604 ipplib --> iplib
4611 This makes a bit more sense in terms of what these files actually do.
4605 This makes a bit more sense in terms of what these files actually do.
4612
4606
4613 * Moved all the classes and functions in ipythonlib to ipplib, so
4607 * Moved all the classes and functions in ipythonlib to ipplib, so
4614 now ipythonlib only has make_IPython(). This will ease up its
4608 now ipythonlib only has make_IPython(). This will ease up its
4615 splitting in smaller functional chunks later.
4609 splitting in smaller functional chunks later.
4616
4610
4617 * Cleaned up (done, I think) output of @whos. Better column
4611 * Cleaned up (done, I think) output of @whos. Better column
4618 formatting, and now shows str(var) for as much as it can, which is
4612 formatting, and now shows str(var) for as much as it can, which is
4619 typically what one gets with a 'print var'.
4613 typically what one gets with a 'print var'.
4620
4614
4621 2001-12-04 Fernando Perez <fperez@colorado.edu>
4615 2001-12-04 Fernando Perez <fperez@colorado.edu>
4622
4616
4623 * Fixed namespace problems. Now builtin/IPyhton/user names get
4617 * Fixed namespace problems. Now builtin/IPyhton/user names get
4624 properly reported in their namespace. Internal namespace handling
4618 properly reported in their namespace. Internal namespace handling
4625 is finally getting decent (not perfect yet, but much better than
4619 is finally getting decent (not perfect yet, but much better than
4626 the ad-hoc mess we had).
4620 the ad-hoc mess we had).
4627
4621
4628 * Removed -exit option. If people just want to run a python
4622 * Removed -exit option. If people just want to run a python
4629 script, that's what the normal interpreter is for. Less
4623 script, that's what the normal interpreter is for. Less
4630 unnecessary options, less chances for bugs.
4624 unnecessary options, less chances for bugs.
4631
4625
4632 * Added a crash handler which generates a complete post-mortem if
4626 * Added a crash handler which generates a complete post-mortem if
4633 IPython crashes. This will help a lot in tracking bugs down the
4627 IPython crashes. This will help a lot in tracking bugs down the
4634 road.
4628 road.
4635
4629
4636 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4630 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4637 which were boud to functions being reassigned would bypass the
4631 which were boud to functions being reassigned would bypass the
4638 logger, breaking the sync of _il with the prompt counter. This
4632 logger, breaking the sync of _il with the prompt counter. This
4639 would then crash IPython later when a new line was logged.
4633 would then crash IPython later when a new line was logged.
4640
4634
4641 2001-12-02 Fernando Perez <fperez@colorado.edu>
4635 2001-12-02 Fernando Perez <fperez@colorado.edu>
4642
4636
4643 * Made IPython a package. This means people don't have to clutter
4637 * Made IPython a package. This means people don't have to clutter
4644 their sys.path with yet another directory. Changed the INSTALL
4638 their sys.path with yet another directory. Changed the INSTALL
4645 file accordingly.
4639 file accordingly.
4646
4640
4647 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4641 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4648 sorts its output (so @who shows it sorted) and @whos formats the
4642 sorts its output (so @who shows it sorted) and @whos formats the
4649 table according to the width of the first column. Nicer, easier to
4643 table according to the width of the first column. Nicer, easier to
4650 read. Todo: write a generic table_format() which takes a list of
4644 read. Todo: write a generic table_format() which takes a list of
4651 lists and prints it nicely formatted, with optional row/column
4645 lists and prints it nicely formatted, with optional row/column
4652 separators and proper padding and justification.
4646 separators and proper padding and justification.
4653
4647
4654 * Released 0.1.20
4648 * Released 0.1.20
4655
4649
4656 * Fixed bug in @log which would reverse the inputcache list (a
4650 * Fixed bug in @log which would reverse the inputcache list (a
4657 copy operation was missing).
4651 copy operation was missing).
4658
4652
4659 * Code cleanup. @config was changed to use page(). Better, since
4653 * Code cleanup. @config was changed to use page(). Better, since
4660 its output is always quite long.
4654 its output is always quite long.
4661
4655
4662 * Itpl is back as a dependency. I was having too many problems
4656 * Itpl is back as a dependency. I was having too many problems
4663 getting the parametric aliases to work reliably, and it's just
4657 getting the parametric aliases to work reliably, and it's just
4664 easier to code weird string operations with it than playing %()s
4658 easier to code weird string operations with it than playing %()s
4665 games. It's only ~6k, so I don't think it's too big a deal.
4659 games. It's only ~6k, so I don't think it's too big a deal.
4666
4660
4667 * Found (and fixed) a very nasty bug with history. !lines weren't
4661 * Found (and fixed) a very nasty bug with history. !lines weren't
4668 getting cached, and the out of sync caches would crash
4662 getting cached, and the out of sync caches would crash
4669 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4663 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4670 division of labor a bit better. Bug fixed, cleaner structure.
4664 division of labor a bit better. Bug fixed, cleaner structure.
4671
4665
4672 2001-12-01 Fernando Perez <fperez@colorado.edu>
4666 2001-12-01 Fernando Perez <fperez@colorado.edu>
4673
4667
4674 * Released 0.1.19
4668 * Released 0.1.19
4675
4669
4676 * Added option -n to @hist to prevent line number printing. Much
4670 * Added option -n to @hist to prevent line number printing. Much
4677 easier to copy/paste code this way.
4671 easier to copy/paste code this way.
4678
4672
4679 * Created global _il to hold the input list. Allows easy
4673 * Created global _il to hold the input list. Allows easy
4680 re-execution of blocks of code by slicing it (inspired by Janko's
4674 re-execution of blocks of code by slicing it (inspired by Janko's
4681 comment on 'macros').
4675 comment on 'macros').
4682
4676
4683 * Small fixes and doc updates.
4677 * Small fixes and doc updates.
4684
4678
4685 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4679 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4686 much too fragile with automagic. Handles properly multi-line
4680 much too fragile with automagic. Handles properly multi-line
4687 statements and takes parameters.
4681 statements and takes parameters.
4688
4682
4689 2001-11-30 Fernando Perez <fperez@colorado.edu>
4683 2001-11-30 Fernando Perez <fperez@colorado.edu>
4690
4684
4691 * Version 0.1.18 released.
4685 * Version 0.1.18 released.
4692
4686
4693 * Fixed nasty namespace bug in initial module imports.
4687 * Fixed nasty namespace bug in initial module imports.
4694
4688
4695 * Added copyright/license notes to all code files (except
4689 * Added copyright/license notes to all code files (except
4696 DPyGetOpt). For the time being, LGPL. That could change.
4690 DPyGetOpt). For the time being, LGPL. That could change.
4697
4691
4698 * Rewrote a much nicer README, updated INSTALL, cleaned up
4692 * Rewrote a much nicer README, updated INSTALL, cleaned up
4699 ipythonrc-* samples.
4693 ipythonrc-* samples.
4700
4694
4701 * Overall code/documentation cleanup. Basically ready for
4695 * Overall code/documentation cleanup. Basically ready for
4702 release. Only remaining thing: licence decision (LGPL?).
4696 release. Only remaining thing: licence decision (LGPL?).
4703
4697
4704 * Converted load_config to a class, ConfigLoader. Now recursion
4698 * Converted load_config to a class, ConfigLoader. Now recursion
4705 control is better organized. Doesn't include the same file twice.
4699 control is better organized. Doesn't include the same file twice.
4706
4700
4707 2001-11-29 Fernando Perez <fperez@colorado.edu>
4701 2001-11-29 Fernando Perez <fperez@colorado.edu>
4708
4702
4709 * Got input history working. Changed output history variables from
4703 * Got input history working. Changed output history variables from
4710 _p to _o so that _i is for input and _o for output. Just cleaner
4704 _p to _o so that _i is for input and _o for output. Just cleaner
4711 convention.
4705 convention.
4712
4706
4713 * Implemented parametric aliases. This pretty much allows the
4707 * Implemented parametric aliases. This pretty much allows the
4714 alias system to offer full-blown shell convenience, I think.
4708 alias system to offer full-blown shell convenience, I think.
4715
4709
4716 * Version 0.1.17 released, 0.1.18 opened.
4710 * Version 0.1.17 released, 0.1.18 opened.
4717
4711
4718 * dot_ipython/ipythonrc (alias): added documentation.
4712 * dot_ipython/ipythonrc (alias): added documentation.
4719 (xcolor): Fixed small bug (xcolors -> xcolor)
4713 (xcolor): Fixed small bug (xcolors -> xcolor)
4720
4714
4721 * Changed the alias system. Now alias is a magic command to define
4715 * Changed the alias system. Now alias is a magic command to define
4722 aliases just like the shell. Rationale: the builtin magics should
4716 aliases just like the shell. Rationale: the builtin magics should
4723 be there for things deeply connected to IPython's
4717 be there for things deeply connected to IPython's
4724 architecture. And this is a much lighter system for what I think
4718 architecture. And this is a much lighter system for what I think
4725 is the really important feature: allowing users to define quickly
4719 is the really important feature: allowing users to define quickly
4726 magics that will do shell things for them, so they can customize
4720 magics that will do shell things for them, so they can customize
4727 IPython easily to match their work habits. If someone is really
4721 IPython easily to match their work habits. If someone is really
4728 desperate to have another name for a builtin alias, they can
4722 desperate to have another name for a builtin alias, they can
4729 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4723 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4730 works.
4724 works.
4731
4725
4732 2001-11-28 Fernando Perez <fperez@colorado.edu>
4726 2001-11-28 Fernando Perez <fperez@colorado.edu>
4733
4727
4734 * Changed @file so that it opens the source file at the proper
4728 * Changed @file so that it opens the source file at the proper
4735 line. Since it uses less, if your EDITOR environment is
4729 line. Since it uses less, if your EDITOR environment is
4736 configured, typing v will immediately open your editor of choice
4730 configured, typing v will immediately open your editor of choice
4737 right at the line where the object is defined. Not as quick as
4731 right at the line where the object is defined. Not as quick as
4738 having a direct @edit command, but for all intents and purposes it
4732 having a direct @edit command, but for all intents and purposes it
4739 works. And I don't have to worry about writing @edit to deal with
4733 works. And I don't have to worry about writing @edit to deal with
4740 all the editors, less does that.
4734 all the editors, less does that.
4741
4735
4742 * Version 0.1.16 released, 0.1.17 opened.
4736 * Version 0.1.16 released, 0.1.17 opened.
4743
4737
4744 * Fixed some nasty bugs in the page/page_dumb combo that could
4738 * Fixed some nasty bugs in the page/page_dumb combo that could
4745 crash IPython.
4739 crash IPython.
4746
4740
4747 2001-11-27 Fernando Perez <fperez@colorado.edu>
4741 2001-11-27 Fernando Perez <fperez@colorado.edu>
4748
4742
4749 * Version 0.1.15 released, 0.1.16 opened.
4743 * Version 0.1.15 released, 0.1.16 opened.
4750
4744
4751 * Finally got ? and ?? to work for undefined things: now it's
4745 * Finally got ? and ?? to work for undefined things: now it's
4752 possible to type {}.get? and get information about the get method
4746 possible to type {}.get? and get information about the get method
4753 of dicts, or os.path? even if only os is defined (so technically
4747 of dicts, or os.path? even if only os is defined (so technically
4754 os.path isn't). Works at any level. For example, after import os,
4748 os.path isn't). Works at any level. For example, after import os,
4755 os?, os.path?, os.path.abspath? all work. This is great, took some
4749 os?, os.path?, os.path.abspath? all work. This is great, took some
4756 work in _ofind.
4750 work in _ofind.
4757
4751
4758 * Fixed more bugs with logging. The sanest way to do it was to add
4752 * Fixed more bugs with logging. The sanest way to do it was to add
4759 to @log a 'mode' parameter. Killed two in one shot (this mode
4753 to @log a 'mode' parameter. Killed two in one shot (this mode
4760 option was a request of Janko's). I think it's finally clean
4754 option was a request of Janko's). I think it's finally clean
4761 (famous last words).
4755 (famous last words).
4762
4756
4763 * Added a page_dumb() pager which does a decent job of paging on
4757 * Added a page_dumb() pager which does a decent job of paging on
4764 screen, if better things (like less) aren't available. One less
4758 screen, if better things (like less) aren't available. One less
4765 unix dependency (someday maybe somebody will port this to
4759 unix dependency (someday maybe somebody will port this to
4766 windows).
4760 windows).
4767
4761
4768 * Fixed problem in magic_log: would lock of logging out if log
4762 * Fixed problem in magic_log: would lock of logging out if log
4769 creation failed (because it would still think it had succeeded).
4763 creation failed (because it would still think it had succeeded).
4770
4764
4771 * Improved the page() function using curses to auto-detect screen
4765 * Improved the page() function using curses to auto-detect screen
4772 size. Now it can make a much better decision on whether to print
4766 size. Now it can make a much better decision on whether to print
4773 or page a string. Option screen_length was modified: a value 0
4767 or page a string. Option screen_length was modified: a value 0
4774 means auto-detect, and that's the default now.
4768 means auto-detect, and that's the default now.
4775
4769
4776 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4770 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4777 go out. I'll test it for a few days, then talk to Janko about
4771 go out. I'll test it for a few days, then talk to Janko about
4778 licences and announce it.
4772 licences and announce it.
4779
4773
4780 * Fixed the length of the auto-generated ---> prompt which appears
4774 * Fixed the length of the auto-generated ---> prompt which appears
4781 for auto-parens and auto-quotes. Getting this right isn't trivial,
4775 for auto-parens and auto-quotes. Getting this right isn't trivial,
4782 with all the color escapes, different prompt types and optional
4776 with all the color escapes, different prompt types and optional
4783 separators. But it seems to be working in all the combinations.
4777 separators. But it seems to be working in all the combinations.
4784
4778
4785 2001-11-26 Fernando Perez <fperez@colorado.edu>
4779 2001-11-26 Fernando Perez <fperez@colorado.edu>
4786
4780
4787 * Wrote a regexp filter to get option types from the option names
4781 * Wrote a regexp filter to get option types from the option names
4788 string. This eliminates the need to manually keep two duplicate
4782 string. This eliminates the need to manually keep two duplicate
4789 lists.
4783 lists.
4790
4784
4791 * Removed the unneeded check_option_names. Now options are handled
4785 * Removed the unneeded check_option_names. Now options are handled
4792 in a much saner manner and it's easy to visually check that things
4786 in a much saner manner and it's easy to visually check that things
4793 are ok.
4787 are ok.
4794
4788
4795 * Updated version numbers on all files I modified to carry a
4789 * Updated version numbers on all files I modified to carry a
4796 notice so Janko and Nathan have clear version markers.
4790 notice so Janko and Nathan have clear version markers.
4797
4791
4798 * Updated docstring for ultraTB with my changes. I should send
4792 * Updated docstring for ultraTB with my changes. I should send
4799 this to Nathan.
4793 this to Nathan.
4800
4794
4801 * Lots of small fixes. Ran everything through pychecker again.
4795 * Lots of small fixes. Ran everything through pychecker again.
4802
4796
4803 * Made loading of deep_reload an cmd line option. If it's not too
4797 * Made loading of deep_reload an cmd line option. If it's not too
4804 kosher, now people can just disable it. With -nodeep_reload it's
4798 kosher, now people can just disable it. With -nodeep_reload it's
4805 still available as dreload(), it just won't overwrite reload().
4799 still available as dreload(), it just won't overwrite reload().
4806
4800
4807 * Moved many options to the no| form (-opt and -noopt
4801 * Moved many options to the no| form (-opt and -noopt
4808 accepted). Cleaner.
4802 accepted). Cleaner.
4809
4803
4810 * Changed magic_log so that if called with no parameters, it uses
4804 * Changed magic_log so that if called with no parameters, it uses
4811 'rotate' mode. That way auto-generated logs aren't automatically
4805 'rotate' mode. That way auto-generated logs aren't automatically
4812 over-written. For normal logs, now a backup is made if it exists
4806 over-written. For normal logs, now a backup is made if it exists
4813 (only 1 level of backups). A new 'backup' mode was added to the
4807 (only 1 level of backups). A new 'backup' mode was added to the
4814 Logger class to support this. This was a request by Janko.
4808 Logger class to support this. This was a request by Janko.
4815
4809
4816 * Added @logoff/@logon to stop/restart an active log.
4810 * Added @logoff/@logon to stop/restart an active log.
4817
4811
4818 * Fixed a lot of bugs in log saving/replay. It was pretty
4812 * Fixed a lot of bugs in log saving/replay. It was pretty
4819 broken. Now special lines (!@,/) appear properly in the command
4813 broken. Now special lines (!@,/) appear properly in the command
4820 history after a log replay.
4814 history after a log replay.
4821
4815
4822 * Tried and failed to implement full session saving via pickle. My
4816 * Tried and failed to implement full session saving via pickle. My
4823 idea was to pickle __main__.__dict__, but modules can't be
4817 idea was to pickle __main__.__dict__, but modules can't be
4824 pickled. This would be a better alternative to replaying logs, but
4818 pickled. This would be a better alternative to replaying logs, but
4825 seems quite tricky to get to work. Changed -session to be called
4819 seems quite tricky to get to work. Changed -session to be called
4826 -logplay, which more accurately reflects what it does. And if we
4820 -logplay, which more accurately reflects what it does. And if we
4827 ever get real session saving working, -session is now available.
4821 ever get real session saving working, -session is now available.
4828
4822
4829 * Implemented color schemes for prompts also. As for tracebacks,
4823 * Implemented color schemes for prompts also. As for tracebacks,
4830 currently only NoColor and Linux are supported. But now the
4824 currently only NoColor and Linux are supported. But now the
4831 infrastructure is in place, based on a generic ColorScheme
4825 infrastructure is in place, based on a generic ColorScheme
4832 class. So writing and activating new schemes both for the prompts
4826 class. So writing and activating new schemes both for the prompts
4833 and the tracebacks should be straightforward.
4827 and the tracebacks should be straightforward.
4834
4828
4835 * Version 0.1.13 released, 0.1.14 opened.
4829 * Version 0.1.13 released, 0.1.14 opened.
4836
4830
4837 * Changed handling of options for output cache. Now counter is
4831 * Changed handling of options for output cache. Now counter is
4838 hardwired starting at 1 and one specifies the maximum number of
4832 hardwired starting at 1 and one specifies the maximum number of
4839 entries *in the outcache* (not the max prompt counter). This is
4833 entries *in the outcache* (not the max prompt counter). This is
4840 much better, since many statements won't increase the cache
4834 much better, since many statements won't increase the cache
4841 count. It also eliminated some confusing options, now there's only
4835 count. It also eliminated some confusing options, now there's only
4842 one: cache_size.
4836 one: cache_size.
4843
4837
4844 * Added 'alias' magic function and magic_alias option in the
4838 * Added 'alias' magic function and magic_alias option in the
4845 ipythonrc file. Now the user can easily define whatever names he
4839 ipythonrc file. Now the user can easily define whatever names he
4846 wants for the magic functions without having to play weird
4840 wants for the magic functions without having to play weird
4847 namespace games. This gives IPython a real shell-like feel.
4841 namespace games. This gives IPython a real shell-like feel.
4848
4842
4849 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4843 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4850 @ or not).
4844 @ or not).
4851
4845
4852 This was one of the last remaining 'visible' bugs (that I know
4846 This was one of the last remaining 'visible' bugs (that I know
4853 of). I think if I can clean up the session loading so it works
4847 of). I think if I can clean up the session loading so it works
4854 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4848 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4855 about licensing).
4849 about licensing).
4856
4850
4857 2001-11-25 Fernando Perez <fperez@colorado.edu>
4851 2001-11-25 Fernando Perez <fperez@colorado.edu>
4858
4852
4859 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4853 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4860 there's a cleaner distinction between what ? and ?? show.
4854 there's a cleaner distinction between what ? and ?? show.
4861
4855
4862 * Added screen_length option. Now the user can define his own
4856 * Added screen_length option. Now the user can define his own
4863 screen size for page() operations.
4857 screen size for page() operations.
4864
4858
4865 * Implemented magic shell-like functions with automatic code
4859 * Implemented magic shell-like functions with automatic code
4866 generation. Now adding another function is just a matter of adding
4860 generation. Now adding another function is just a matter of adding
4867 an entry to a dict, and the function is dynamically generated at
4861 an entry to a dict, and the function is dynamically generated at
4868 run-time. Python has some really cool features!
4862 run-time. Python has some really cool features!
4869
4863
4870 * Renamed many options to cleanup conventions a little. Now all
4864 * Renamed many options to cleanup conventions a little. Now all
4871 are lowercase, and only underscores where needed. Also in the code
4865 are lowercase, and only underscores where needed. Also in the code
4872 option name tables are clearer.
4866 option name tables are clearer.
4873
4867
4874 * Changed prompts a little. Now input is 'In [n]:' instead of
4868 * Changed prompts a little. Now input is 'In [n]:' instead of
4875 'In[n]:='. This allows it the numbers to be aligned with the
4869 'In[n]:='. This allows it the numbers to be aligned with the
4876 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4870 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4877 Python (it was a Mathematica thing). The '...' continuation prompt
4871 Python (it was a Mathematica thing). The '...' continuation prompt
4878 was also changed a little to align better.
4872 was also changed a little to align better.
4879
4873
4880 * Fixed bug when flushing output cache. Not all _p<n> variables
4874 * Fixed bug when flushing output cache. Not all _p<n> variables
4881 exist, so their deletion needs to be wrapped in a try:
4875 exist, so their deletion needs to be wrapped in a try:
4882
4876
4883 * Figured out how to properly use inspect.formatargspec() (it
4877 * Figured out how to properly use inspect.formatargspec() (it
4884 requires the args preceded by *). So I removed all the code from
4878 requires the args preceded by *). So I removed all the code from
4885 _get_pdef in Magic, which was just replicating that.
4879 _get_pdef in Magic, which was just replicating that.
4886
4880
4887 * Added test to prefilter to allow redefining magic function names
4881 * Added test to prefilter to allow redefining magic function names
4888 as variables. This is ok, since the @ form is always available,
4882 as variables. This is ok, since the @ form is always available,
4889 but whe should allow the user to define a variable called 'ls' if
4883 but whe should allow the user to define a variable called 'ls' if
4890 he needs it.
4884 he needs it.
4891
4885
4892 * Moved the ToDo information from README into a separate ToDo.
4886 * Moved the ToDo information from README into a separate ToDo.
4893
4887
4894 * General code cleanup and small bugfixes. I think it's close to a
4888 * General code cleanup and small bugfixes. I think it's close to a
4895 state where it can be released, obviously with a big 'beta'
4889 state where it can be released, obviously with a big 'beta'
4896 warning on it.
4890 warning on it.
4897
4891
4898 * Got the magic function split to work. Now all magics are defined
4892 * Got the magic function split to work. Now all magics are defined
4899 in a separate class. It just organizes things a bit, and now
4893 in a separate class. It just organizes things a bit, and now
4900 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4894 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4901 was too long).
4895 was too long).
4902
4896
4903 * Changed @clear to @reset to avoid potential confusions with
4897 * Changed @clear to @reset to avoid potential confusions with
4904 the shell command clear. Also renamed @cl to @clear, which does
4898 the shell command clear. Also renamed @cl to @clear, which does
4905 exactly what people expect it to from their shell experience.
4899 exactly what people expect it to from their shell experience.
4906
4900
4907 Added a check to the @reset command (since it's so
4901 Added a check to the @reset command (since it's so
4908 destructive, it's probably a good idea to ask for confirmation).
4902 destructive, it's probably a good idea to ask for confirmation).
4909 But now reset only works for full namespace resetting. Since the
4903 But now reset only works for full namespace resetting. Since the
4910 del keyword is already there for deleting a few specific
4904 del keyword is already there for deleting a few specific
4911 variables, I don't see the point of having a redundant magic
4905 variables, I don't see the point of having a redundant magic
4912 function for the same task.
4906 function for the same task.
4913
4907
4914 2001-11-24 Fernando Perez <fperez@colorado.edu>
4908 2001-11-24 Fernando Perez <fperez@colorado.edu>
4915
4909
4916 * Updated the builtin docs (esp. the ? ones).
4910 * Updated the builtin docs (esp. the ? ones).
4917
4911
4918 * Ran all the code through pychecker. Not terribly impressed with
4912 * Ran all the code through pychecker. Not terribly impressed with
4919 it: lots of spurious warnings and didn't really find anything of
4913 it: lots of spurious warnings and didn't really find anything of
4920 substance (just a few modules being imported and not used).
4914 substance (just a few modules being imported and not used).
4921
4915
4922 * Implemented the new ultraTB functionality into IPython. New
4916 * Implemented the new ultraTB functionality into IPython. New
4923 option: xcolors. This chooses color scheme. xmode now only selects
4917 option: xcolors. This chooses color scheme. xmode now only selects
4924 between Plain and Verbose. Better orthogonality.
4918 between Plain and Verbose. Better orthogonality.
4925
4919
4926 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4920 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4927 mode and color scheme for the exception handlers. Now it's
4921 mode and color scheme for the exception handlers. Now it's
4928 possible to have the verbose traceback with no coloring.
4922 possible to have the verbose traceback with no coloring.
4929
4923
4930 2001-11-23 Fernando Perez <fperez@colorado.edu>
4924 2001-11-23 Fernando Perez <fperez@colorado.edu>
4931
4925
4932 * Version 0.1.12 released, 0.1.13 opened.
4926 * Version 0.1.12 released, 0.1.13 opened.
4933
4927
4934 * Removed option to set auto-quote and auto-paren escapes by
4928 * Removed option to set auto-quote and auto-paren escapes by
4935 user. The chances of breaking valid syntax are just too high. If
4929 user. The chances of breaking valid syntax are just too high. If
4936 someone *really* wants, they can always dig into the code.
4930 someone *really* wants, they can always dig into the code.
4937
4931
4938 * Made prompt separators configurable.
4932 * Made prompt separators configurable.
4939
4933
4940 2001-11-22 Fernando Perez <fperez@colorado.edu>
4934 2001-11-22 Fernando Perez <fperez@colorado.edu>
4941
4935
4942 * Small bugfixes in many places.
4936 * Small bugfixes in many places.
4943
4937
4944 * Removed the MyCompleter class from ipplib. It seemed redundant
4938 * Removed the MyCompleter class from ipplib. It seemed redundant
4945 with the C-p,C-n history search functionality. Less code to
4939 with the C-p,C-n history search functionality. Less code to
4946 maintain.
4940 maintain.
4947
4941
4948 * Moved all the original ipython.py code into ipythonlib.py. Right
4942 * Moved all the original ipython.py code into ipythonlib.py. Right
4949 now it's just one big dump into a function called make_IPython, so
4943 now it's just one big dump into a function called make_IPython, so
4950 no real modularity has been gained. But at least it makes the
4944 no real modularity has been gained. But at least it makes the
4951 wrapper script tiny, and since ipythonlib is a module, it gets
4945 wrapper script tiny, and since ipythonlib is a module, it gets
4952 compiled and startup is much faster.
4946 compiled and startup is much faster.
4953
4947
4954 This is a reasobably 'deep' change, so we should test it for a
4948 This is a reasobably 'deep' change, so we should test it for a
4955 while without messing too much more with the code.
4949 while without messing too much more with the code.
4956
4950
4957 2001-11-21 Fernando Perez <fperez@colorado.edu>
4951 2001-11-21 Fernando Perez <fperez@colorado.edu>
4958
4952
4959 * Version 0.1.11 released, 0.1.12 opened for further work.
4953 * Version 0.1.11 released, 0.1.12 opened for further work.
4960
4954
4961 * Removed dependency on Itpl. It was only needed in one place. It
4955 * Removed dependency on Itpl. It was only needed in one place. It
4962 would be nice if this became part of python, though. It makes life
4956 would be nice if this became part of python, though. It makes life
4963 *a lot* easier in some cases.
4957 *a lot* easier in some cases.
4964
4958
4965 * Simplified the prefilter code a bit. Now all handlers are
4959 * Simplified the prefilter code a bit. Now all handlers are
4966 expected to explicitly return a value (at least a blank string).
4960 expected to explicitly return a value (at least a blank string).
4967
4961
4968 * Heavy edits in ipplib. Removed the help system altogether. Now
4962 * Heavy edits in ipplib. Removed the help system altogether. Now
4969 obj?/?? is used for inspecting objects, a magic @doc prints
4963 obj?/?? is used for inspecting objects, a magic @doc prints
4970 docstrings, and full-blown Python help is accessed via the 'help'
4964 docstrings, and full-blown Python help is accessed via the 'help'
4971 keyword. This cleans up a lot of code (less to maintain) and does
4965 keyword. This cleans up a lot of code (less to maintain) and does
4972 the job. Since 'help' is now a standard Python component, might as
4966 the job. Since 'help' is now a standard Python component, might as
4973 well use it and remove duplicate functionality.
4967 well use it and remove duplicate functionality.
4974
4968
4975 Also removed the option to use ipplib as a standalone program. By
4969 Also removed the option to use ipplib as a standalone program. By
4976 now it's too dependent on other parts of IPython to function alone.
4970 now it's too dependent on other parts of IPython to function alone.
4977
4971
4978 * Fixed bug in genutils.pager. It would crash if the pager was
4972 * Fixed bug in genutils.pager. It would crash if the pager was
4979 exited immediately after opening (broken pipe).
4973 exited immediately after opening (broken pipe).
4980
4974
4981 * Trimmed down the VerboseTB reporting a little. The header is
4975 * Trimmed down the VerboseTB reporting a little. The header is
4982 much shorter now and the repeated exception arguments at the end
4976 much shorter now and the repeated exception arguments at the end
4983 have been removed. For interactive use the old header seemed a bit
4977 have been removed. For interactive use the old header seemed a bit
4984 excessive.
4978 excessive.
4985
4979
4986 * Fixed small bug in output of @whos for variables with multi-word
4980 * Fixed small bug in output of @whos for variables with multi-word
4987 types (only first word was displayed).
4981 types (only first word was displayed).
4988
4982
4989 2001-11-17 Fernando Perez <fperez@colorado.edu>
4983 2001-11-17 Fernando Perez <fperez@colorado.edu>
4990
4984
4991 * Version 0.1.10 released, 0.1.11 opened for further work.
4985 * Version 0.1.10 released, 0.1.11 opened for further work.
4992
4986
4993 * Modified dirs and friends. dirs now *returns* the stack (not
4987 * Modified dirs and friends. dirs now *returns* the stack (not
4994 prints), so one can manipulate it as a variable. Convenient to
4988 prints), so one can manipulate it as a variable. Convenient to
4995 travel along many directories.
4989 travel along many directories.
4996
4990
4997 * Fixed bug in magic_pdef: would only work with functions with
4991 * Fixed bug in magic_pdef: would only work with functions with
4998 arguments with default values.
4992 arguments with default values.
4999
4993
5000 2001-11-14 Fernando Perez <fperez@colorado.edu>
4994 2001-11-14 Fernando Perez <fperez@colorado.edu>
5001
4995
5002 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4996 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5003 example with IPython. Various other minor fixes and cleanups.
4997 example with IPython. Various other minor fixes and cleanups.
5004
4998
5005 * Version 0.1.9 released, 0.1.10 opened for further work.
4999 * Version 0.1.9 released, 0.1.10 opened for further work.
5006
5000
5007 * Added sys.path to the list of directories searched in the
5001 * Added sys.path to the list of directories searched in the
5008 execfile= option. It used to be the current directory and the
5002 execfile= option. It used to be the current directory and the
5009 user's IPYTHONDIR only.
5003 user's IPYTHONDIR only.
5010
5004
5011 2001-11-13 Fernando Perez <fperez@colorado.edu>
5005 2001-11-13 Fernando Perez <fperez@colorado.edu>
5012
5006
5013 * Reinstated the raw_input/prefilter separation that Janko had
5007 * Reinstated the raw_input/prefilter separation that Janko had
5014 initially. This gives a more convenient setup for extending the
5008 initially. This gives a more convenient setup for extending the
5015 pre-processor from the outside: raw_input always gets a string,
5009 pre-processor from the outside: raw_input always gets a string,
5016 and prefilter has to process it. We can then redefine prefilter
5010 and prefilter has to process it. We can then redefine prefilter
5017 from the outside and implement extensions for special
5011 from the outside and implement extensions for special
5018 purposes.
5012 purposes.
5019
5013
5020 Today I got one for inputting PhysicalQuantity objects
5014 Today I got one for inputting PhysicalQuantity objects
5021 (from Scientific) without needing any function calls at
5015 (from Scientific) without needing any function calls at
5022 all. Extremely convenient, and it's all done as a user-level
5016 all. Extremely convenient, and it's all done as a user-level
5023 extension (no IPython code was touched). Now instead of:
5017 extension (no IPython code was touched). Now instead of:
5024 a = PhysicalQuantity(4.2,'m/s**2')
5018 a = PhysicalQuantity(4.2,'m/s**2')
5025 one can simply say
5019 one can simply say
5026 a = 4.2 m/s**2
5020 a = 4.2 m/s**2
5027 or even
5021 or even
5028 a = 4.2 m/s^2
5022 a = 4.2 m/s^2
5029
5023
5030 I use this, but it's also a proof of concept: IPython really is
5024 I use this, but it's also a proof of concept: IPython really is
5031 fully user-extensible, even at the level of the parsing of the
5025 fully user-extensible, even at the level of the parsing of the
5032 command line. It's not trivial, but it's perfectly doable.
5026 command line. It's not trivial, but it's perfectly doable.
5033
5027
5034 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5028 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5035 the problem of modules being loaded in the inverse order in which
5029 the problem of modules being loaded in the inverse order in which
5036 they were defined in
5030 they were defined in
5037
5031
5038 * Version 0.1.8 released, 0.1.9 opened for further work.
5032 * Version 0.1.8 released, 0.1.9 opened for further work.
5039
5033
5040 * Added magics pdef, source and file. They respectively show the
5034 * Added magics pdef, source and file. They respectively show the
5041 definition line ('prototype' in C), source code and full python
5035 definition line ('prototype' in C), source code and full python
5042 file for any callable object. The object inspector oinfo uses
5036 file for any callable object. The object inspector oinfo uses
5043 these to show the same information.
5037 these to show the same information.
5044
5038
5045 * Version 0.1.7 released, 0.1.8 opened for further work.
5039 * Version 0.1.7 released, 0.1.8 opened for further work.
5046
5040
5047 * Separated all the magic functions into a class called Magic. The
5041 * Separated all the magic functions into a class called Magic. The
5048 InteractiveShell class was becoming too big for Xemacs to handle
5042 InteractiveShell class was becoming too big for Xemacs to handle
5049 (de-indenting a line would lock it up for 10 seconds while it
5043 (de-indenting a line would lock it up for 10 seconds while it
5050 backtracked on the whole class!)
5044 backtracked on the whole class!)
5051
5045
5052 FIXME: didn't work. It can be done, but right now namespaces are
5046 FIXME: didn't work. It can be done, but right now namespaces are
5053 all messed up. Do it later (reverted it for now, so at least
5047 all messed up. Do it later (reverted it for now, so at least
5054 everything works as before).
5048 everything works as before).
5055
5049
5056 * Got the object introspection system (magic_oinfo) working! I
5050 * Got the object introspection system (magic_oinfo) working! I
5057 think this is pretty much ready for release to Janko, so he can
5051 think this is pretty much ready for release to Janko, so he can
5058 test it for a while and then announce it. Pretty much 100% of what
5052 test it for a while and then announce it. Pretty much 100% of what
5059 I wanted for the 'phase 1' release is ready. Happy, tired.
5053 I wanted for the 'phase 1' release is ready. Happy, tired.
5060
5054
5061 2001-11-12 Fernando Perez <fperez@colorado.edu>
5055 2001-11-12 Fernando Perez <fperez@colorado.edu>
5062
5056
5063 * Version 0.1.6 released, 0.1.7 opened for further work.
5057 * Version 0.1.6 released, 0.1.7 opened for further work.
5064
5058
5065 * Fixed bug in printing: it used to test for truth before
5059 * Fixed bug in printing: it used to test for truth before
5066 printing, so 0 wouldn't print. Now checks for None.
5060 printing, so 0 wouldn't print. Now checks for None.
5067
5061
5068 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5062 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5069 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5063 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5070 reaches by hand into the outputcache. Think of a better way to do
5064 reaches by hand into the outputcache. Think of a better way to do
5071 this later.
5065 this later.
5072
5066
5073 * Various small fixes thanks to Nathan's comments.
5067 * Various small fixes thanks to Nathan's comments.
5074
5068
5075 * Changed magic_pprint to magic_Pprint. This way it doesn't
5069 * Changed magic_pprint to magic_Pprint. This way it doesn't
5076 collide with pprint() and the name is consistent with the command
5070 collide with pprint() and the name is consistent with the command
5077 line option.
5071 line option.
5078
5072
5079 * Changed prompt counter behavior to be fully like
5073 * Changed prompt counter behavior to be fully like
5080 Mathematica's. That is, even input that doesn't return a result
5074 Mathematica's. That is, even input that doesn't return a result
5081 raises the prompt counter. The old behavior was kind of confusing
5075 raises the prompt counter. The old behavior was kind of confusing
5082 (getting the same prompt number several times if the operation
5076 (getting the same prompt number several times if the operation
5083 didn't return a result).
5077 didn't return a result).
5084
5078
5085 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5079 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5086
5080
5087 * Fixed -Classic mode (wasn't working anymore).
5081 * Fixed -Classic mode (wasn't working anymore).
5088
5082
5089 * Added colored prompts using Nathan's new code. Colors are
5083 * Added colored prompts using Nathan's new code. Colors are
5090 currently hardwired, they can be user-configurable. For
5084 currently hardwired, they can be user-configurable. For
5091 developers, they can be chosen in file ipythonlib.py, at the
5085 developers, they can be chosen in file ipythonlib.py, at the
5092 beginning of the CachedOutput class def.
5086 beginning of the CachedOutput class def.
5093
5087
5094 2001-11-11 Fernando Perez <fperez@colorado.edu>
5088 2001-11-11 Fernando Perez <fperez@colorado.edu>
5095
5089
5096 * Version 0.1.5 released, 0.1.6 opened for further work.
5090 * Version 0.1.5 released, 0.1.6 opened for further work.
5097
5091
5098 * Changed magic_env to *return* the environment as a dict (not to
5092 * Changed magic_env to *return* the environment as a dict (not to
5099 print it). This way it prints, but it can also be processed.
5093 print it). This way it prints, but it can also be processed.
5100
5094
5101 * Added Verbose exception reporting to interactive
5095 * Added Verbose exception reporting to interactive
5102 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5096 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5103 traceback. Had to make some changes to the ultraTB file. This is
5097 traceback. Had to make some changes to the ultraTB file. This is
5104 probably the last 'big' thing in my mental todo list. This ties
5098 probably the last 'big' thing in my mental todo list. This ties
5105 in with the next entry:
5099 in with the next entry:
5106
5100
5107 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5101 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5108 has to specify is Plain, Color or Verbose for all exception
5102 has to specify is Plain, Color or Verbose for all exception
5109 handling.
5103 handling.
5110
5104
5111 * Removed ShellServices option. All this can really be done via
5105 * Removed ShellServices option. All this can really be done via
5112 the magic system. It's easier to extend, cleaner and has automatic
5106 the magic system. It's easier to extend, cleaner and has automatic
5113 namespace protection and documentation.
5107 namespace protection and documentation.
5114
5108
5115 2001-11-09 Fernando Perez <fperez@colorado.edu>
5109 2001-11-09 Fernando Perez <fperez@colorado.edu>
5116
5110
5117 * Fixed bug in output cache flushing (missing parameter to
5111 * Fixed bug in output cache flushing (missing parameter to
5118 __init__). Other small bugs fixed (found using pychecker).
5112 __init__). Other small bugs fixed (found using pychecker).
5119
5113
5120 * Version 0.1.4 opened for bugfixing.
5114 * Version 0.1.4 opened for bugfixing.
5121
5115
5122 2001-11-07 Fernando Perez <fperez@colorado.edu>
5116 2001-11-07 Fernando Perez <fperez@colorado.edu>
5123
5117
5124 * Version 0.1.3 released, mainly because of the raw_input bug.
5118 * Version 0.1.3 released, mainly because of the raw_input bug.
5125
5119
5126 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5120 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5127 and when testing for whether things were callable, a call could
5121 and when testing for whether things were callable, a call could
5128 actually be made to certain functions. They would get called again
5122 actually be made to certain functions. They would get called again
5129 once 'really' executed, with a resulting double call. A disaster
5123 once 'really' executed, with a resulting double call. A disaster
5130 in many cases (list.reverse() would never work!).
5124 in many cases (list.reverse() would never work!).
5131
5125
5132 * Removed prefilter() function, moved its code to raw_input (which
5126 * Removed prefilter() function, moved its code to raw_input (which
5133 after all was just a near-empty caller for prefilter). This saves
5127 after all was just a near-empty caller for prefilter). This saves
5134 a function call on every prompt, and simplifies the class a tiny bit.
5128 a function call on every prompt, and simplifies the class a tiny bit.
5135
5129
5136 * Fix _ip to __ip name in magic example file.
5130 * Fix _ip to __ip name in magic example file.
5137
5131
5138 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5132 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5139 work with non-gnu versions of tar.
5133 work with non-gnu versions of tar.
5140
5134
5141 2001-11-06 Fernando Perez <fperez@colorado.edu>
5135 2001-11-06 Fernando Perez <fperez@colorado.edu>
5142
5136
5143 * Version 0.1.2. Just to keep track of the recent changes.
5137 * Version 0.1.2. Just to keep track of the recent changes.
5144
5138
5145 * Fixed nasty bug in output prompt routine. It used to check 'if
5139 * Fixed nasty bug in output prompt routine. It used to check 'if
5146 arg != None...'. Problem is, this fails if arg implements a
5140 arg != None...'. Problem is, this fails if arg implements a
5147 special comparison (__cmp__) which disallows comparing to
5141 special comparison (__cmp__) which disallows comparing to
5148 None. Found it when trying to use the PhysicalQuantity module from
5142 None. Found it when trying to use the PhysicalQuantity module from
5149 ScientificPython.
5143 ScientificPython.
5150
5144
5151 2001-11-05 Fernando Perez <fperez@colorado.edu>
5145 2001-11-05 Fernando Perez <fperez@colorado.edu>
5152
5146
5153 * Also added dirs. Now the pushd/popd/dirs family functions
5147 * Also added dirs. Now the pushd/popd/dirs family functions
5154 basically like the shell, with the added convenience of going home
5148 basically like the shell, with the added convenience of going home
5155 when called with no args.
5149 when called with no args.
5156
5150
5157 * pushd/popd slightly modified to mimic shell behavior more
5151 * pushd/popd slightly modified to mimic shell behavior more
5158 closely.
5152 closely.
5159
5153
5160 * Added env,pushd,popd from ShellServices as magic functions. I
5154 * Added env,pushd,popd from ShellServices as magic functions. I
5161 think the cleanest will be to port all desired functions from
5155 think the cleanest will be to port all desired functions from
5162 ShellServices as magics and remove ShellServices altogether. This
5156 ShellServices as magics and remove ShellServices altogether. This
5163 will provide a single, clean way of adding functionality
5157 will provide a single, clean way of adding functionality
5164 (shell-type or otherwise) to IP.
5158 (shell-type or otherwise) to IP.
5165
5159
5166 2001-11-04 Fernando Perez <fperez@colorado.edu>
5160 2001-11-04 Fernando Perez <fperez@colorado.edu>
5167
5161
5168 * Added .ipython/ directory to sys.path. This way users can keep
5162 * Added .ipython/ directory to sys.path. This way users can keep
5169 customizations there and access them via import.
5163 customizations there and access them via import.
5170
5164
5171 2001-11-03 Fernando Perez <fperez@colorado.edu>
5165 2001-11-03 Fernando Perez <fperez@colorado.edu>
5172
5166
5173 * Opened version 0.1.1 for new changes.
5167 * Opened version 0.1.1 for new changes.
5174
5168
5175 * Changed version number to 0.1.0: first 'public' release, sent to
5169 * Changed version number to 0.1.0: first 'public' release, sent to
5176 Nathan and Janko.
5170 Nathan and Janko.
5177
5171
5178 * Lots of small fixes and tweaks.
5172 * Lots of small fixes and tweaks.
5179
5173
5180 * Minor changes to whos format. Now strings are shown, snipped if
5174 * Minor changes to whos format. Now strings are shown, snipped if
5181 too long.
5175 too long.
5182
5176
5183 * Changed ShellServices to work on __main__ so they show up in @who
5177 * Changed ShellServices to work on __main__ so they show up in @who
5184
5178
5185 * Help also works with ? at the end of a line:
5179 * Help also works with ? at the end of a line:
5186 ?sin and sin?
5180 ?sin and sin?
5187 both produce the same effect. This is nice, as often I use the
5181 both produce the same effect. This is nice, as often I use the
5188 tab-complete to find the name of a method, but I used to then have
5182 tab-complete to find the name of a method, but I used to then have
5189 to go to the beginning of the line to put a ? if I wanted more
5183 to go to the beginning of the line to put a ? if I wanted more
5190 info. Now I can just add the ? and hit return. Convenient.
5184 info. Now I can just add the ? and hit return. Convenient.
5191
5185
5192 2001-11-02 Fernando Perez <fperez@colorado.edu>
5186 2001-11-02 Fernando Perez <fperez@colorado.edu>
5193
5187
5194 * Python version check (>=2.1) added.
5188 * Python version check (>=2.1) added.
5195
5189
5196 * Added LazyPython documentation. At this point the docs are quite
5190 * Added LazyPython documentation. At this point the docs are quite
5197 a mess. A cleanup is in order.
5191 a mess. A cleanup is in order.
5198
5192
5199 * Auto-installer created. For some bizarre reason, the zipfiles
5193 * Auto-installer created. For some bizarre reason, the zipfiles
5200 module isn't working on my system. So I made a tar version
5194 module isn't working on my system. So I made a tar version
5201 (hopefully the command line options in various systems won't kill
5195 (hopefully the command line options in various systems won't kill
5202 me).
5196 me).
5203
5197
5204 * Fixes to Struct in genutils. Now all dictionary-like methods are
5198 * Fixes to Struct in genutils. Now all dictionary-like methods are
5205 protected (reasonably).
5199 protected (reasonably).
5206
5200
5207 * Added pager function to genutils and changed ? to print usage
5201 * Added pager function to genutils and changed ? to print usage
5208 note through it (it was too long).
5202 note through it (it was too long).
5209
5203
5210 * Added the LazyPython functionality. Works great! I changed the
5204 * Added the LazyPython functionality. Works great! I changed the
5211 auto-quote escape to ';', it's on home row and next to '. But
5205 auto-quote escape to ';', it's on home row and next to '. But
5212 both auto-quote and auto-paren (still /) escapes are command-line
5206 both auto-quote and auto-paren (still /) escapes are command-line
5213 parameters.
5207 parameters.
5214
5208
5215
5209
5216 2001-11-01 Fernando Perez <fperez@colorado.edu>
5210 2001-11-01 Fernando Perez <fperez@colorado.edu>
5217
5211
5218 * Version changed to 0.0.7. Fairly large change: configuration now
5212 * Version changed to 0.0.7. Fairly large change: configuration now
5219 is all stored in a directory, by default .ipython. There, all
5213 is all stored in a directory, by default .ipython. There, all
5220 config files have normal looking names (not .names)
5214 config files have normal looking names (not .names)
5221
5215
5222 * Version 0.0.6 Released first to Lucas and Archie as a test
5216 * Version 0.0.6 Released first to Lucas and Archie as a test
5223 run. Since it's the first 'semi-public' release, change version to
5217 run. Since it's the first 'semi-public' release, change version to
5224 > 0.0.6 for any changes now.
5218 > 0.0.6 for any changes now.
5225
5219
5226 * Stuff I had put in the ipplib.py changelog:
5220 * Stuff I had put in the ipplib.py changelog:
5227
5221
5228 Changes to InteractiveShell:
5222 Changes to InteractiveShell:
5229
5223
5230 - Made the usage message a parameter.
5224 - Made the usage message a parameter.
5231
5225
5232 - Require the name of the shell variable to be given. It's a bit
5226 - Require the name of the shell variable to be given. It's a bit
5233 of a hack, but allows the name 'shell' not to be hardwire in the
5227 of a hack, but allows the name 'shell' not to be hardwire in the
5234 magic (@) handler, which is problematic b/c it requires
5228 magic (@) handler, which is problematic b/c it requires
5235 polluting the global namespace with 'shell'. This in turn is
5229 polluting the global namespace with 'shell'. This in turn is
5236 fragile: if a user redefines a variable called shell, things
5230 fragile: if a user redefines a variable called shell, things
5237 break.
5231 break.
5238
5232
5239 - magic @: all functions available through @ need to be defined
5233 - magic @: all functions available through @ need to be defined
5240 as magic_<name>, even though they can be called simply as
5234 as magic_<name>, even though they can be called simply as
5241 @<name>. This allows the special command @magic to gather
5235 @<name>. This allows the special command @magic to gather
5242 information automatically about all existing magic functions,
5236 information automatically about all existing magic functions,
5243 even if they are run-time user extensions, by parsing the shell
5237 even if they are run-time user extensions, by parsing the shell
5244 instance __dict__ looking for special magic_ names.
5238 instance __dict__ looking for special magic_ names.
5245
5239
5246 - mainloop: added *two* local namespace parameters. This allows
5240 - mainloop: added *two* local namespace parameters. This allows
5247 the class to differentiate between parameters which were there
5241 the class to differentiate between parameters which were there
5248 before and after command line initialization was processed. This
5242 before and after command line initialization was processed. This
5249 way, later @who can show things loaded at startup by the
5243 way, later @who can show things loaded at startup by the
5250 user. This trick was necessary to make session saving/reloading
5244 user. This trick was necessary to make session saving/reloading
5251 really work: ideally after saving/exiting/reloading a session,
5245 really work: ideally after saving/exiting/reloading a session,
5252 *everythin* should look the same, including the output of @who. I
5246 *everythin* should look the same, including the output of @who. I
5253 was only able to make this work with this double namespace
5247 was only able to make this work with this double namespace
5254 trick.
5248 trick.
5255
5249
5256 - added a header to the logfile which allows (almost) full
5250 - added a header to the logfile which allows (almost) full
5257 session restoring.
5251 session restoring.
5258
5252
5259 - prepend lines beginning with @ or !, with a and log
5253 - prepend lines beginning with @ or !, with a and log
5260 them. Why? !lines: may be useful to know what you did @lines:
5254 them. Why? !lines: may be useful to know what you did @lines:
5261 they may affect session state. So when restoring a session, at
5255 they may affect session state. So when restoring a session, at
5262 least inform the user of their presence. I couldn't quite get
5256 least inform the user of their presence. I couldn't quite get
5263 them to properly re-execute, but at least the user is warned.
5257 them to properly re-execute, but at least the user is warned.
5264
5258
5265 * Started ChangeLog.
5259 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now